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:
Vendored
+69
@@ -0,0 +1,69 @@
|
||||
export type Orientation = 'sud' | 'sud-est' | 'sud-ouest' | 'est' | 'ouest' | 'nord';
|
||||
export type ClasseRt = 'H1' | 'H2' | 'H3';
|
||||
export interface Coefficient<T = number> {
|
||||
valeur: T;
|
||||
/** Document ou norme qui fixe la valeur ; « heuristique … » si non sourcée. */
|
||||
source: string;
|
||||
/** Date du document source (AAAA-MM-JJ). */
|
||||
date: string;
|
||||
/** Fourchette, variante, réserve : ce que Jules doit savoir pour mettre un veto. */
|
||||
note?: string;
|
||||
}
|
||||
export interface TableCoefficients {
|
||||
/** Rendement de captage d'une toiture (part de la pluie réellement collectée). */
|
||||
captage_rendement: Coefficient;
|
||||
/** Rendement par type de toiture, pour un formulaire enrichi (non utilisé par les moteurs v0.1). */
|
||||
captage_rendement_par_toiture: Coefficient<Record<'tuile' | 'ardoise' | 'gravillonnee' | 'vegetalisee', number>>;
|
||||
/** Besoin domestique total, litres par jour et par personne. */
|
||||
besoin_eau_l_j_pers: Coefficient;
|
||||
/** Part du besoin substituable par l'eau de pluie (WC, douche, lessive, jardin). */
|
||||
part_eau_substituable: Coefficient;
|
||||
/** Facteur de production PV selon l'orientation du toit (sud 30° = 1). */
|
||||
orientation_pv: Coefficient<Record<Orientation, number>>;
|
||||
/** Productible PV annuel (kWh/kWc/an), par zone : `par` dit quelle clé du contexte indexe la table. */
|
||||
productible_pv_kwh_kwc: Coefficient<{
|
||||
par: 'zone_rt' | 'zone_biogeo_code';
|
||||
table: Record<string, number>;
|
||||
defaut: number;
|
||||
}>;
|
||||
/** Part de la production PV autoconsommée, sans batterie. */
|
||||
autoconso_sans_batterie: Coefficient;
|
||||
/** Part de la production PV autoconsommée, avec 10 kWh de batterie. */
|
||||
autoconso_avec_batterie_10kwh: Coefficient;
|
||||
/** Besoin d'électricité spécifique, kWh par personne et par an (hors chauffage électrique). */
|
||||
besoin_elec_kwh_pers_an: Coefficient;
|
||||
/** DJU base 18 par défaut, par classe de zone RT, si la ligne climat n'en porte pas. */
|
||||
dju_defaut_par_classe_rt: Coefficient<Record<ClasseRt, number>>;
|
||||
/** Mètres linéaires de haie fruitière par personne pour couvrir les fruits d'un foyer. */
|
||||
ml_haie_par_pers: Coefficient;
|
||||
/** Contexte climatique appliqué quand le département est inconnu (déclaré en avertissement). */
|
||||
contexte_defaut: Coefficient<{
|
||||
zone_rt: string;
|
||||
zone_biogeo_code: number;
|
||||
pluviometrie_mm: number;
|
||||
dju: number;
|
||||
}>;
|
||||
/** SHAB estimée = emprise × niveaux × ce ratio (murs, refends, escalier). */
|
||||
geometrie_ratio_shab_emprise: Coefficient;
|
||||
/** Surface vitrée = SHAB × ce ratio. */
|
||||
geometrie_ratio_vitrage_shab: Coefficient;
|
||||
/** Hauteur d'un niveau par défaut (m), si la hauteur totale n'est pas connue. */
|
||||
geometrie_hauteur_etage_m: Coefficient;
|
||||
/** Périmètre estimé = 4 × √(emprise × facteur) (rectangle allongé). */
|
||||
geometrie_facteur_perimetre: Coefficient;
|
||||
/** Part du périmètre retirée par côté mitoyen. */
|
||||
geometrie_part_mur_mitoyen: Coefficient;
|
||||
/** Majoration de la surface de toiture (débords, recouvrements). */
|
||||
geometrie_majoration_toiture: Coefficient;
|
||||
/** Pente de toit par défaut (degrés) si inconnue. */
|
||||
geometrie_pente_defaut_deg: Coefficient;
|
||||
}
|
||||
/** Table harmonisée (LOT P1.0, 28/09/2026). Référence tant que Jules ne met pas de veto (R-7). */
|
||||
export declare const COEFFICIENTS: TableCoefficients;
|
||||
/** Clés de la table, pour valider un jeu de coefficients injecté (fixture, veto). */
|
||||
export declare const CLES_COEFFICIENTS: (keyof TableCoefficients)[];
|
||||
/**
|
||||
* Vérifie qu'un objet a la forme d'une table de coefficients (toutes les clés,
|
||||
* chaque entrée avec valeur, source et date). Renvoie la liste des défauts.
|
||||
*/
|
||||
export declare function verifieTableCoefficients(table: unknown): string[];
|
||||
Reference in New Issue
Block a user