LOT P1.0 : paquet @transformer/moteurs v0.1.0

Extraction du cœur autonomie de calculs.trans-former.fr (12 modules, sans
singleton, couplages sans mutation, console derrière debug), découpage en trois
moteurs d'axe + intégrateur (mode global = calculs, mode par_axe = plateforme),
moteurs commun.contexte (Corse 2A/2B, DOM 97x corrigés) et commun.geometrie,
table des coefficients harmonisés (docs/CONSTANTES.md pour Jules, R-7),
validation structurelle des données (schemas/), tests hors ligne : 28 assertions
d'origine + épingle générée depuis le code d'astro-pro + écarts d'harmonisation
figés + contrat des moteurs. dist/ committé.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019UBHYPdeQYy2m1GVJp6b12
This commit is contained in:
Jules
2026-09-28 17:06:49 +02:00
co-authored by Claude Fable 5.1
commit 69809df5d1
123 changed files with 13225 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
import type { Moteur } from './contrat.js';
import { type TableCoefficients } from './coefficients.js';
export interface EntreesGeometrie {
/** Emprise au sol du bâti (m²). */
emprise_m2: number;
/** Nombre de niveaux habitables (1 = plain-pied). */
niveaux?: number;
/** Hauteur totale du bâti hors combles (m) ; sinon niveaux × hauteur d'étage par défaut. */
hauteur_m?: number;
/** Pente du toit (degrés) ; sinon pente par défaut. */
pente_toit_deg?: number;
/** Côtés mitoyens (0, 1 ou 2). */
mitoyennete?: 0 | 1 | 2;
/** Surface habitable connue (DPE, acte) : remplace l'estimation. */
surface_habitable_m2?: number;
}
export interface DonneesGeometrie {
coefficients?: TableCoefficients;
}
export interface SortiesGeometrie {
/** Surface habitable, connue ou estimée (m²). */
shab_m2: number;
shab_estimee: boolean;
perimetre_m: number;
/** Périmètre exposé après retrait des côtés mitoyens (m). */
perimetre_expose_m: number;
murs_exterieurs_m2: number;
murs_opaques_m2: number;
vitrage_m2: number;
toiture_m2: number;
plancher_bas_m2: number;
volume_m3: number;
hauteur_m: number;
hauteur_etage_m: number;
}
export declare function calculeGeometrie(entrees: EntreesGeometrie, coefficients?: TableCoefficients): import("./contrat.js").Resultat<SortiesGeometrie>;
export declare const geometrie: Moteur<EntreesGeometrie, DonneesGeometrie, SortiesGeometrie>;