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
21 lines
920 B
TypeScript
21 lines
920 B
TypeScript
import type { AlgoConfig, Axe } from './types.js';
|
|
import { AXES } from './types.js';
|
|
export type AxesActifs = Partial<Record<Axe, boolean>>;
|
|
/**
|
|
* Transforme algo-config pour neutraliser les axes désactivés.
|
|
* - poids_axes_base[axe] = 0 pour tout axe inactif
|
|
* - tous les deltas de modulateurs référençant un axe inactif sont retirés
|
|
* - marqueur `_axes_desactives` (lu par reajuste.ts pour ne pas réinjecter
|
|
* des postes optionnels dans un axe éteint lors du CAS B underspend)
|
|
*
|
|
* @param config — algo-config.json parsé (non muté)
|
|
* @returns nouvelle config
|
|
*/
|
|
export declare function configPourAxes(config: AlgoConfig, actifs: AxesActifs | null | undefined): AlgoConfig;
|
|
/**
|
|
* Vrai si au moins un axe est actif (0 axe actif = état vide géré par l'UI,
|
|
* l'algo ne doit pas tourner).
|
|
*/
|
|
export declare function auMoinsUnAxe(actifs: AxesActifs | null | undefined): boolean;
|
|
export { AXES };
|