nodefony 10.0.0-alpha.3 → 10.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.ai/symbols.json +421 -93
  2. package/dist/client/types/src/config/infra.d.ts +29 -1
  3. package/dist/node/cli/agentTargets.js +3 -3
  4. package/dist/node/cli/aiMcp.js +85 -14
  5. package/dist/node/cli/create.js +96 -25
  6. package/dist/node/cli/execPortable.js +44 -1
  7. package/dist/node/cli/scaffold/engine.js +41 -9
  8. package/dist/node/cli/scaffold/versions.js +1 -1
  9. package/dist/node/cli/tableReport.js +47 -16
  10. package/dist/node/config/configProvenance.js +68 -1
  11. package/dist/node/config/defineEnv.js +2 -2
  12. package/dist/node/config/infra.js +62 -11
  13. package/dist/node/config/schemaCatalog.js +83 -0
  14. package/dist/node/index.js +7 -5
  15. package/dist/node/kernel/Kernel.js +5 -4
  16. package/dist/node/kernel/Module.js +44 -0
  17. package/dist/node/kernel/checks/readiness.js +14 -17
  18. package/dist/node/kernel/checks/renderReport.js +3 -1
  19. package/dist/node/kernel/checks/runDoctor.js +100 -1
  20. package/dist/node/kernel/checks/sourceText.js +306 -3
  21. package/dist/node/kernel/checks/surface.js +6 -7
  22. package/dist/node/kernel/checks/wiring.js +30 -11
  23. package/dist/node/kernel/commands/AiMcpCommand.js +2 -0
  24. package/dist/node/kernel/commands/BuildCommand.js +4 -3
  25. package/dist/node/kernel/commands/CreateCommand.js +5 -2
  26. package/dist/node/kernel/commands/InspectCommand.js +2 -1
  27. package/dist/node/kernel/commands/MenuCommand.js +4 -3
  28. package/dist/node/kernel/inspect/adminSubjects.js +8 -0
  29. package/dist/node/package.js +1 -1
  30. package/dist/types/cli/agentTargets.d.ts +4 -4
  31. package/dist/types/cli/aiMcp.d.ts +50 -3
  32. package/dist/types/cli/create.d.ts +44 -4
  33. package/dist/types/cli/execPortable.d.ts +45 -0
  34. package/dist/types/cli/scaffold/engine.d.ts +1 -1
  35. package/dist/types/cli/tableReport.d.ts +9 -0
  36. package/dist/types/config/configProvenance.d.ts +40 -0
  37. package/dist/types/config/defineEnv.d.ts +10 -2
  38. package/dist/types/config/index.d.ts +1 -1
  39. package/dist/types/config/infra.d.ts +29 -1
  40. package/dist/types/config/schemaCatalog.d.ts +62 -0
  41. package/dist/types/index.d.ts +10 -5
  42. package/dist/types/kernel/Module.d.ts +20 -0
  43. package/dist/types/kernel/checks/readiness.d.ts +41 -1
  44. package/dist/types/kernel/checks/sourceText.d.ts +176 -14
  45. package/dist/types/kernel/checks/wiring.d.ts +1 -1
  46. package/dist/types/kernel/commands/AiMcpCommand.d.ts +2 -0
  47. package/dist/types/kernel/inspect/adminSubjects.d.ts +20 -0
  48. package/man/nodefony.1 +1 -1
  49. package/package.json +11 -11
  50. package/templates/app/agents/AGENTS.md.tpl +16 -8
  51. package/templates/app/base/README.md.tpl +26 -1
  52. package/templates/app/base/env.ts.tpl +20 -1
  53. package/templates/app/base/index.ts.tpl +11 -1
  54. package/templates/app/base/nodefony/config/devkit.ts.tpl +56 -0
  55. package/templates/app/base/nodefony.config.ts.tpl +46 -182
  56. package/templates/app/base/prettierignore.tpl +9 -0
  57. package/templates/app/base/tests/config.test.ts.tpl +20 -2
  58. package/templates/app/base/tests/migrations.e2e.test.ts.tpl +5 -1
  59. package/templates/app/complete/nodefony/config/security.ts.tpl +169 -0
  60. package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +22 -7
  61. package/templates/app/frontend/svelte/frontend/svelte.config.js.tpl +10 -0
  62. package/templates/command/nodefony/command/__NAME__.ts.tpl +17 -0
  63. package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +1 -2
  64. package/templates/module/base/index.ts.tpl +9 -3
  65. package/templates/module/base/nodefony/config/config.ts.tpl +3 -3
  66. package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +3 -3
  67. package/templates/module/base/package.json.tpl +2 -0
  68. package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +3 -3
package/.ai/symbols.json CHANGED
@@ -2,14 +2,14 @@
2
2
  "version": "2.0.0",
3
3
  "repoRoot": ".",
4
4
  "stats": {
5
- "files": 818,
6
- "symbols": 3939,
5
+ "files": 821,
6
+ "symbols": 3980,
7
7
  "classes": 388,
8
- "interfaces": 1069,
9
- "types": 446,
8
+ "interfaces": 1078,
9
+ "types": 447,
10
10
  "enums": 4,
11
- "functions": 1641,
12
- "constants": 391
11
+ "functions": 1670,
12
+ "constants": 393
13
13
  },
14
14
  "symbols": {
15
15
  "Cli": {
@@ -666,8 +666,8 @@
666
666
  "extends": null,
667
667
  "description": "Ce qu'il faut savoir pour composer la déclaration chez un agent."
668
668
  },
669
- "VoieDeclaration": {
670
- "name": "VoieDeclaration",
669
+ "DeclarationChannel": {
670
+ "name": "DeclarationChannel",
671
671
  "kind": "type",
672
672
  "file": "src/nodefony/src/cli/agentTargets.ts",
673
673
  "exported": true,
@@ -803,6 +803,14 @@
803
803
  "module": "@nodefony/core",
804
804
  "description": "Déduit l'origine du serveur de développement. ⚠️ **Le port en clair est préféré au port TLS**, et ce n'est pas une négligence : en développement le certificat est auto-signé, et un client MCP qui l…"
805
805
  },
806
+ "chainedTokenNote": {
807
+ "name": "chainedTokenNote",
808
+ "kind": "function",
809
+ "file": "src/nodefony/src/cli/aiMcp.ts",
810
+ "exported": true,
811
+ "module": "@nodefony/core",
812
+ "description": "Ce qu'on dit quand `security:token`, enchaîné, n'a pas rendu 0 — ou `null` s'il a réussi. PURE : c'est la phrase que l'utilisateur lit à la place d'une stack trace. L'enfant a déjà dit POURQUOI (ba…"
813
+ },
806
814
  "tokenState": {
807
815
  "name": "tokenState",
808
816
  "kind": "function",
@@ -842,6 +850,14 @@
842
850
  "module": "@nodefony/core",
843
851
  "description": "Déclare (ou retire) la porte MCP chez chaque agent, **par SA propre CLI**. ⭐ La règle qui gouverne cette fonction : **on n'écrit pas le fichier de configuration d'un outil tiers.** Son format lui a…"
844
852
  },
853
+ "targetsToDeclare": {
854
+ "name": "targetsToDeclare",
855
+ "kind": "function",
856
+ "file": "src/nodefony/src/cli/aiMcp.ts",
857
+ "exported": true,
858
+ "module": "@nodefony/core",
859
+ "description": "Les agents dont le compte rendu doit PARLER, quand `--agent` a été donné. PURE. `--agent none` veut dire « aucune CLI à lancer », pas « personne » : l'agent servi par le fichier de projet (Claude C…"
860
+ },
845
861
  "renderDeclarations": {
846
862
  "name": "renderDeclarations",
847
863
  "kind": "function",
@@ -1380,6 +1396,14 @@
1380
1396
  "module": "@nodefony/core",
1381
1397
  "description": "Le code de sortie de `create`, décidé à part — parce qu'il se teste. Le défaut qu'il ferme : la commande affichait « npm run build a échoué » puis rendait **0**. L'application existait bien, c'est …"
1382
1398
  },
1399
+ "migrationFailureCause": {
1400
+ "name": "migrationFailureCause",
1401
+ "kind": "function",
1402
+ "file": "src/nodefony/src/cli/create.ts",
1403
+ "exported": true,
1404
+ "module": "@nodefony/core",
1405
+ "description": "Ce qu'on dit d'un `orm:generate` qui a échoué — PURE, à partir de ce que le processus a VRAIMENT écrit. 🔴 Un message inventé ici enverrait chercher la panne ailleurs, et un code nu (« code 70 ») n…"
1406
+ },
1383
1407
  "shouldAskForType": {
1384
1408
  "name": "shouldAskForType",
1385
1409
  "kind": "function",
@@ -1520,6 +1544,15 @@
1520
1544
  "module": "@nodefony/core",
1521
1545
  "description": "Construit le rapport d'environnement."
1522
1546
  },
1547
+ "IPortableSpawn": {
1548
+ "name": "IPortableSpawn",
1549
+ "kind": "interface",
1550
+ "file": "src/nodefony/src/cli/execPortable.ts",
1551
+ "exported": true,
1552
+ "module": "@nodefony/core",
1553
+ "extends": null,
1554
+ "description": "Ce qu'il faut donner à `spawn`/`spawnSync` pour lancer `command args…` sur ce système — SANS jamais confier des arguments à un shell. ## Le défaut que `needsShell` seul a laissé passer `spawnSync(\"…"
1555
+ },
1523
1556
  "needsShell": {
1524
1557
  "name": "needsShell",
1525
1558
  "kind": "function",
@@ -1528,6 +1561,14 @@
1528
1561
  "module": "@nodefony/core",
1529
1562
  "description": "Lancer un exécutable de l'écosystème npm, sur les trois systèmes. ## Le défaut, et pourquoi il ne se voit jamais sur un poste de développement Sous Windows, `npm`, `npx`, `prettier` et compagnie ne…"
1530
1563
  },
1564
+ "portableSpawn": {
1565
+ "name": "portableSpawn",
1566
+ "kind": "function",
1567
+ "file": "src/nodefony/src/cli/execPortable.ts",
1568
+ "exported": true,
1569
+ "module": "@nodefony/core",
1570
+ "description": "Compose la commande portable — voir {@link IPortableSpawn}. La plateforme, la grammaire de chemins et l'interpréteur sont INJECTÉS pour la même raison que dans {@link needsShell} : la branche Windo…"
1571
+ },
1531
1572
  "parseGitHooksArgv": {
1532
1573
  "name": "parseGitHooksArgv",
1533
1574
  "kind": "function",
@@ -2595,6 +2636,15 @@
2595
2636
  "extends": null,
2596
2637
  "description": "Une clé `reserved` que l'app (ou l'env) a posée à une valeur non-défaut."
2597
2638
  },
2639
+ "IOverwrittenLeaf": {
2640
+ "name": "IOverwrittenLeaf",
2641
+ "kind": "interface",
2642
+ "file": "src/nodefony/src/config/configProvenance.ts",
2643
+ "exported": true,
2644
+ "module": "@nodefony/core",
2645
+ "extends": null,
2646
+ "description": "Une feuille de configuration que `override` remplace dans `base`."
2647
+ },
2598
2648
  "ConfigOrigin": {
2599
2649
  "name": "ConfigOrigin",
2600
2650
  "kind": "type",
@@ -2627,6 +2677,22 @@
2627
2677
  "module": "@nodefony/core",
2628
2678
  "description": "Trouve les clés `reserved` du JSON Schema d'un module que la config résolue a fait DÉVIER de leur défaut — i.e. qu'une application a posées en croyant régler un comportement, alors qu'elles sont in…"
2629
2679
  },
2680
+ "findOverwrittenLeaves": {
2681
+ "name": "findOverwrittenLeaves",
2682
+ "kind": "function",
2683
+ "file": "src/nodefony/src/config/configProvenance.ts",
2684
+ "exported": true,
2685
+ "module": "@nodefony/core",
2686
+ "description": "Les feuilles de `base` que `override` REMPLACE — jamais celles qu'il complète. Descend tant que les deux côtés sont des objets simples ; ailleurs, une clé présente des deux côtés avec deux valeurs …"
2687
+ },
2688
+ "aggregateProvenance": {
2689
+ "name": "aggregateProvenance",
2690
+ "kind": "function",
2691
+ "file": "src/nodefony/src/config/configProvenance.ts",
2692
+ "exported": true,
2693
+ "module": "@nodefony/core",
2694
+ "description": "L'origine d'une clé du CATALOGUE, agrégée depuis la provenance par feuille. `computeConfigProvenance` descend dans un objet dès que les deux côtés en sont un : pour un objet LIBRE (`areas`, `roleHi…"
2695
+ },
2630
2696
  "defaultAppConfig": {
2631
2697
  "name": "defaultAppConfig",
2632
2698
  "kind": "const",
@@ -3028,6 +3094,14 @@
3028
3094
  "module": "@nodefony/core",
3029
3095
  "description": "Résout les 3 infra déclarée depuis l'environnement. Fonction PURE (aucun kernel) : consommée par le Kernel (1 fois, mémoïsé), par le contexte `defineConfig` (`ctx.infra`) et par les builders de con…"
3030
3096
  },
3097
+ "durableStoreRemedy": {
3098
+ "name": "durableStoreRemedy",
3099
+ "kind": "function",
3100
+ "file": "src/nodefony/src/config/infra.ts",
3101
+ "exported": true,
3102
+ "module": "@nodefony/core",
3103
+ "description": "Le REMÈDE à nommer quand une brique durable se retrouve en mémoire. Une seule implémentation, parce qu'il y a deux causes et qu'en nommer une seule envoie corriger la mauvaise chose : conseiller « …"
3104
+ },
3031
3105
  "resolveAutoStore": {
3032
3106
  "name": "resolveAutoStore",
3033
3107
  "kind": "function",
@@ -3157,6 +3231,23 @@
3157
3231
  "module": "@nodefony/core",
3158
3232
  "description": "Schéma de la config app résolue. Exposé pour l'introspection (Studio : `z.toJSONSchema(appConfigSchema)` → panneau de config + formulaire éditable). Chaque champ porte un `.describe()` FR (rôle + d…"
3159
3233
  },
3234
+ "ISchemaLeaf": {
3235
+ "name": "ISchemaLeaf",
3236
+ "kind": "interface",
3237
+ "file": "src/nodefony/src/config/schemaCatalog.ts",
3238
+ "exported": true,
3239
+ "module": "@nodefony/core",
3240
+ "extends": null,
3241
+ "description": "Aplatissement d'un JSON Schema de configuration en CATALOGUE de réglages. ⭐ TL;DR : rend, pour un module, la liste des clés qu'on a le droit d'écrire dans `use(\"@nodefony/x\", { … })` — chemin point…"
3242
+ },
3243
+ "flattenConfigSchema": {
3244
+ "name": "flattenConfigSchema",
3245
+ "kind": "function",
3246
+ "file": "src/nodefony/src/config/schemaCatalog.ts",
3247
+ "exported": true,
3248
+ "module": "@nodefony/core",
3249
+ "description": "Aplatit un JSON Schema de module en catalogue de réglages assignables."
3250
+ },
3160
3251
  "ModuleEntryInput": {
3161
3252
  "name": "ModuleEntryInput",
3162
3253
  "kind": "interface",
@@ -8953,8 +9044,8 @@
8953
9044
  "extends": null,
8954
9045
  "description": "Ce que le contrôle a pu regarder — et ce qu'il n'a PAS pu."
8955
9046
  },
8956
- "IPortProbe": {
8957
- "name": "IPortProbe",
9047
+ "IInfraProbe": {
9048
+ "name": "IInfraProbe",
8958
9049
  "kind": "interface",
8959
9050
  "file": "src/nodefony/src/kernel/checks/readiness.ts",
8960
9051
  "exported": true,
@@ -8962,6 +9053,23 @@
8962
9053
  "extends": null,
8963
9054
  "description": "Le VERDICT d'une sonde de port, injecté — jamais mesuré ici. Une capacité se CONSTATE et se transmet ; la faire mesurer par la règle l'aurait rendue inéprouvable sans ouvrir de vrais ports, donc no…"
8964
9055
  },
9056
+ "IInfraTarget": {
9057
+ "name": "IInfraTarget",
9058
+ "kind": "interface",
9059
+ "file": "src/nodefony/src/kernel/checks/readiness.ts",
9060
+ "exported": true,
9061
+ "module": "@nodefony/core",
9062
+ "extends": null,
9063
+ "description": "Une infrastructure déclarée, telle que la sonde l'a lue."
9064
+ },
9065
+ "IPortProbe": {
9066
+ "name": "IPortProbe",
9067
+ "kind": "interface",
9068
+ "file": "src/nodefony/src/kernel/checks/readiness.ts",
9069
+ "exported": true,
9070
+ "module": "@nodefony/core",
9071
+ "extends": null
9072
+ },
8965
9073
  "ITrackedEnvProbe": {
8966
9074
  "name": "ITrackedEnvProbe",
8967
9075
  "kind": "interface",
@@ -9418,13 +9526,87 @@
9418
9526
  "module": "@nodefony/core",
9419
9527
  "description": "Rend le rapport de `doctor` alors que l'application vient d'échouer à démarrer. 🔴 C'est le cas POUR lequel la commande existe. `--live` sort du fast-path et demande un boot : sans ce chemin, une a…"
9420
9528
  },
9529
+ "IManifestReader": {
9530
+ "name": "IManifestReader",
9531
+ "kind": "interface",
9532
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9533
+ "exported": true,
9534
+ "module": "@nodefony/core",
9535
+ "extends": null,
9536
+ "description": "De quoi lire une arborescence — le disque, ou ce qu'un scaffold s'apprête à écrire. L'injection n'est pas un confort de test : le générateur travaille sur des fichiers EN ATTENTE (`ScaffoldWriter`,…"
9537
+ },
9538
+ "IManifestSource": {
9539
+ "name": "IManifestSource",
9540
+ "kind": "interface",
9541
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9542
+ "exported": true,
9543
+ "module": "@nodefony/core",
9544
+ "extends": null,
9545
+ "description": "Un fichier du manifeste, et son texte."
9546
+ },
9421
9547
  "withoutComments": {
9422
9548
  "name": "withoutComments",
9423
9549
  "kind": "function",
9424
9550
  "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9425
9551
  "exported": true,
9426
9552
  "module": "@nodefony/core",
9427
- "description": "Le texte d'une source, tel que les contrôles de `doctor` doivent le lire. 🔴 Cette règle était écrite TROIS fois — `surface`, `readiness`, `wiring` — et elle avait déjà divergé : deux copies coupai…"
9553
+ "description": "Le CODE d'une source : son texte privé de ses commentaires. Un contrôle qui lit le texte brut accuse la documentation qu'il croise. Le cas est vécu, et il n'est pas théorique : le contrôleur écrit …"
9554
+ },
9555
+ "isReservedFragmentName": {
9556
+ "name": "isReservedFragmentName",
9557
+ "kind": "function",
9558
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9559
+ "exported": true,
9560
+ "module": "@nodefony/core",
9561
+ "description": "Le nom appartient-il au chargement d'un MODULE, et non à un fragment ? `config.ts` et `*.config.ts` sont ce qu'un module importe lui-même (`nodefony create module` les produit) ; un fragment de man…"
9562
+ },
9563
+ "reservedFragmentFiles": {
9564
+ "name": "reservedFragmentFiles",
9565
+ "kind": "function",
9566
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9567
+ "exported": true,
9568
+ "module": "@nodefony/core",
9569
+ "description": "Les fichiers de `<app>/nodefony/config/` qui portent un nom RÉSERVÉ — hors sous-dossiers, dont `cluster/`, lu par chemin par le process maître. Un tel fichier est ignoré par tous les lecteurs du ma…"
9570
+ },
9571
+ "fragmentsWithoutSatisfies": {
9572
+ "name": "fragmentsWithoutSatisfies",
9573
+ "kind": "function",
9574
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9575
+ "exported": true,
9576
+ "module": "@nodefony/core",
9577
+ "description": "Les fragments qui rendent une configuration SANS `satisfies`. ## Pourquoi cette garde existe Écrite dans le manifeste, `use(\"@nodefony/http\", { … })` fait vérifier le littéral AU POINT D'APPEL : un…"
9578
+ },
9579
+ "readManifestSources": {
9580
+ "name": "readManifestSources",
9581
+ "kind": "function",
9582
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9583
+ "exported": true,
9584
+ "module": "@nodefony/core",
9585
+ "description": "Rend TOUS les textes qui composent le manifeste d'une application. ⭐ TL;DR : `nodefony.config.ts` d'abord, puis les fragments de `nodefony/config/*.ts`. Tout contrôle qui cherche un motif dans « la…"
9586
+ },
9587
+ "manifestFileWith": {
9588
+ "name": "manifestFileWith",
9589
+ "kind": "function",
9590
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9591
+ "exported": true,
9592
+ "module": "@nodefony/core",
9593
+ "description": "Le fichier du manifeste qui porte un motif — celui qu'un ÉCRIVAIN doit modifier. Lire suffit à concaténer les sources ; écrire non. Le générateur ancre `roleHierarchy` et lit `connectors` : le jour…"
9594
+ },
9595
+ "readManifestCode": {
9596
+ "name": "readManifestCode",
9597
+ "kind": "function",
9598
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9599
+ "exported": true,
9600
+ "module": "@nodefony/core",
9601
+ "description": "Le CODE du manifeste entier — racine puis fragments, commentaires retirés, concaténés — pour les lecteurs qui cherchent un motif sans avoir à savoir quel fichier le porte (`security:secrets`, l'éta…"
9602
+ },
9603
+ "diskManifestReader": {
9604
+ "name": "diskManifestReader",
9605
+ "kind": "const",
9606
+ "file": "src/nodefony/src/kernel/checks/sourceText.ts",
9607
+ "exported": true,
9608
+ "module": "@nodefony/core",
9609
+ "description": "LE lecteur du disque — l'implémentation unique que les contrôles, le scaffold hors simulation et les bancs passent à {@link readManifestSources}. Il était recopié trois fois (`surface`, `wiring`, u…"
9428
9610
  },
9429
9611
  "IOpening": {
9430
9612
  "name": "IOpening",
@@ -12874,16 +13056,16 @@
12874
13056
  "implements": [],
12875
13057
  "decorators": []
12876
13058
  },
12877
- "DevkitConfigInput": {
12878
- "name": "DevkitConfigInput",
13059
+ "IDevkitConfigInput": {
13060
+ "name": "IDevkitConfigInput",
12879
13061
  "kind": "type",
12880
13062
  "file": "src/packages/@nodefony/devkit/nodefony/config/config.ts",
12881
13063
  "exported": true,
12882
13064
  "module": "@nodefony/devkit",
12883
13065
  "description": "Config telle que l'APP l'écrit dans `use()` — tous les champs optionnels."
12884
13066
  },
12885
- "DevkitConfig": {
12886
- "name": "DevkitConfig",
13067
+ "IDevkitConfig": {
13068
+ "name": "IDevkitConfig",
12887
13069
  "kind": "type",
12888
13070
  "file": "src/packages/@nodefony/devkit/nodefony/config/config.ts",
12889
13071
  "exported": true,
@@ -13002,16 +13184,16 @@
13002
13184
  ],
13003
13185
  "description": "Service principal du module — la logique vit ici, pas dans les controllers (un controller traduit du HTTP/WS ; un service, lui, est réutilisable par la CLI, un job, un autre module). Cycle : `const…"
13004
13186
  },
13005
- "DocumentationConfig": {
13006
- "name": "DocumentationConfig",
13187
+ "IDocumentationConfig": {
13188
+ "name": "IDocumentationConfig",
13007
13189
  "kind": "type",
13008
13190
  "file": "src/packages/@nodefony/documentation/nodefony/config/config.ts",
13009
13191
  "exported": true,
13010
13192
  "module": "@nodefony/documentation",
13011
13193
  "description": "Type de sortie (config normalisée + défauts appliqués)."
13012
13194
  },
13013
- "DocumentationConfigInput": {
13014
- "name": "DocumentationConfigInput",
13195
+ "IDocumentationConfigInput": {
13196
+ "name": "IDocumentationConfigInput",
13015
13197
  "kind": "type",
13016
13198
  "file": "src/packages/@nodefony/documentation/nodefony/config/config.ts",
13017
13199
  "exported": true,
@@ -13444,8 +13626,8 @@
13444
13626
  "module": "@nodefony/drizzle",
13445
13627
  "description": "Conduite face à une base qui a divergé du schéma déclaré."
13446
13628
  },
13447
- "DrizzleConfig": {
13448
- "name": "DrizzleConfig",
13629
+ "IDrizzleConfig": {
13630
+ "name": "IDrizzleConfig",
13449
13631
  "kind": "type",
13450
13632
  "file": "src/packages/@nodefony/drizzle/nodefony/config/config.ts",
13451
13633
  "exported": true,
@@ -14003,7 +14185,7 @@
14003
14185
  "module": "@nodefony/drizzle",
14004
14186
  "description": "Nom logique de l'entité (clé de lookup `getRepository`)."
14005
14187
  },
14006
- "IDrizzleConfig": {
14188
+ "@nodefony/drizzle:IDrizzleConfig": {
14007
14189
  "name": "IDrizzleConfig",
14008
14190
  "kind": "type",
14009
14191
  "file": "src/packages/@nodefony/drizzle/nodefony/interfaces/IDrizzleConfig.ts",
@@ -14383,16 +14565,16 @@
14383
14565
  "decorators": [],
14384
14566
  "description": "Stockage de session **Drizzle** (driver `better-sqlite3`), branché sur `@nodefony/orm-core`. Implémente le contrat {@link ISessionStorage} consommé par le `SessionsService` de `@nodefony/http` — st…"
14385
14567
  },
14386
- "FrameworkConfig": {
14387
- "name": "FrameworkConfig",
14568
+ "IFrameworkConfig": {
14569
+ "name": "IFrameworkConfig",
14388
14570
  "kind": "type",
14389
14571
  "file": "src/packages/@nodefony/framework/nodefony/config/config.ts",
14390
14572
  "exported": true,
14391
14573
  "module": "@nodefony/framework",
14392
14574
  "description": "Type de sortie (config normalisée + défauts appliqués)."
14393
14575
  },
14394
- "FrameworkConfigInput": {
14395
- "name": "FrameworkConfigInput",
14576
+ "IFrameworkConfigInput": {
14577
+ "name": "IFrameworkConfigInput",
14396
14578
  "kind": "type",
14397
14579
  "file": "src/packages/@nodefony/framework/nodefony/config/config.ts",
14398
14580
  "exported": true,
@@ -15863,6 +16045,15 @@
15863
16045
  "extends": null,
15864
16046
  "description": "Entrée config d'un module : valeurs redactées + schéma + provenance par champ."
15865
16047
  },
16048
+ "ISchemaCatalogRow": {
16049
+ "name": "ISchemaCatalogRow",
16050
+ "kind": "interface",
16051
+ "file": "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts",
16052
+ "exported": true,
16053
+ "module": "@nodefony/framework",
16054
+ "extends": null,
16055
+ "description": "Une clé assignable du catalogue de configuration — ce qu'on a le DROIT d'écrire, par opposition à {@link IConfigEntry} qui dit ce QUI EST écrit. Les noms de champs deviennent les en-têtes de colonn…"
16056
+ },
15866
16057
  "safeConfig": {
15867
16058
  "name": "safeConfig",
15868
16059
  "kind": "function",
@@ -16149,8 +16340,8 @@
16149
16340
  "decorators": [],
16150
16341
  "description": "`nodefony frontend:status` — lit l'état du superviseur Vite. Utilisé par Vision (Phase 10) pour afficher l'état du builder dans son tableau de bord admin."
16151
16342
  },
16152
- "FrontendConfig": {
16153
- "name": "FrontendConfig",
16343
+ "IFrontendConfig": {
16344
+ "name": "IFrontendConfig",
16154
16345
  "kind": "type",
16155
16346
  "file": "src/packages/@nodefony/frontend/nodefony/config/config.ts",
16156
16347
  "exported": true,
@@ -16455,6 +16646,14 @@
16455
16646
  "module": "@nodefony/frontend",
16456
16647
  "description": "Hôte utilisable par un NAVIGATEUR pour une adresse d'écoute donnée. `0.0.0.0`/`::` sont des adresses d'ÉCOUTE (toutes interfaces), pas des destinations : dérivées telles quelles dans une URL, elles…"
16457
16648
  },
16649
+ "isLoopbackHostname": {
16650
+ "name": "isLoopbackHostname",
16651
+ "kind": "function",
16652
+ "file": "src/packages/@nodefony/frontend/nodefony/src/remoteDev.ts",
16653
+ "exported": true,
16654
+ "module": "@nodefony/frontend",
16655
+ "description": "Le client est-il arrivé par la BOUCLE LOCALE de la machine qui sert ? Ce n'est pas une commodité : c'est un fait vérifiable qui prime sur toute déduction faite au démarrage. Une plateforme de dev d…"
16656
+ },
16458
16657
  "isValidOriginTemplate": {
16459
16658
  "name": "isValidOriginTemplate",
16460
16659
  "kind": "function",
@@ -16554,16 +16753,16 @@
16554
16753
  "decorators": [],
16555
16754
  "description": "Commande CLI `proxy:generate <nginx|haproxy>` — génère une configuration reverse-proxy DÉRIVÉE de l'introspection Nodefony (domaines de confiance, dossiers statiques servis, ports). Évite d'écrire …"
16556
16755
  },
16557
- "HttpConfig": {
16558
- "name": "HttpConfig",
16756
+ "IHttpConfig": {
16757
+ "name": "IHttpConfig",
16559
16758
  "kind": "type",
16560
16759
  "file": "src/packages/@nodefony/http/nodefony/config/config.ts",
16561
16760
  "exported": true,
16562
16761
  "module": "@nodefony/http",
16563
16762
  "description": "Type de sortie (config normalisée + défauts appliqués)."
16564
16763
  },
16565
- "HttpConfigInput": {
16566
- "name": "HttpConfigInput",
16764
+ "IHttpConfigInput": {
16765
+ "name": "IHttpConfigInput",
16567
16766
  "kind": "type",
16568
16767
  "file": "src/packages/@nodefony/http/nodefony/config/config.ts",
16569
16768
  "exported": true,
@@ -16767,22 +16966,6 @@
16767
16966
  "extends": null,
16768
16967
  "description": "Unified error rendering contract — HTTP + WebSocket. The default implementation preserves the legacy Nodefony JSON error shape: { code, message, error: HttpError.toJSON(), nodefony: { requestId, sc…"
16769
16968
  },
16770
- "IHttpConfig": {
16771
- "name": "IHttpConfig",
16772
- "kind": "type",
16773
- "file": "src/packages/@nodefony/http/nodefony/interfaces/IHttpConfig.ts",
16774
- "exported": true,
16775
- "module": "@nodefony/http",
16776
- "description": "Configuration validée de `@nodefony/http` (sortie du parse Zod + défauts kernel appliqués par le builder). Source de vérité = `../config/config.ts`."
16777
- },
16778
- "IHttpConfigInput": {
16779
- "name": "IHttpConfigInput",
16780
- "kind": "type",
16781
- "file": "src/packages/@nodefony/http/nodefony/interfaces/IHttpConfig.ts",
16782
- "exported": true,
16783
- "module": "@nodefony/http",
16784
- "description": "Configuration brute fournie par l'application (toutes sections optionnelles — les sections omises reçoivent leurs défauts). Entrée du builder {@link import(\"../config/defineModuleConfig\").defineHtt…"
16785
- },
16786
16969
  "IHttpKernel": {
16787
16970
  "name": "IHttpKernel",
16788
16971
  "kind": "interface",
@@ -17063,13 +17246,14 @@
17063
17246
  "decorators": [],
17064
17247
  "description": "Service de fourniture du certificat TLS du serveur HTTPS/WSS. Trois stratégies : `explicit` (certificat fourni en config — le cas de PRODUCTION), `mkcert` (CA locale trustée, confort de dev) et `se…"
17065
17248
  },
17066
- "OpensslOptions": {
17067
- "name": "OpensslOptions",
17249
+ "SelfSignedOptions": {
17250
+ "name": "SelfSignedOptions",
17068
17251
  "kind": "interface",
17069
17252
  "file": "src/packages/@nodefony/http/nodefony/service/certificates.ts",
17070
17253
  "exported": true,
17071
17254
  "module": "@nodefony/http",
17072
- "extends": null
17255
+ "extends": null,
17256
+ "description": "Options de génération du certificat AUTO-SIGNÉ (node-forge, JavaScript pur — aucun binaire externe n'est invoqué). ⚠️ Portée : ces réglages ne valent QUE pour la stratégie `selfsigned`. Sous `mkcer…"
17073
17257
  },
17074
17258
  "CertificateDevOptions": {
17075
17259
  "name": "CertificateDevOptions",
@@ -17610,8 +17794,8 @@
17610
17794
  "module": "@nodefony/memory",
17611
17795
  "extends": null
17612
17796
  },
17613
- "MongooseConfig": {
17614
- "name": "MongooseConfig",
17797
+ "IMongooseConfig": {
17798
+ "name": "IMongooseConfig",
17615
17799
  "kind": "type",
17616
17800
  "file": "src/packages/@nodefony/mongoose/nodefony/config/config.ts",
17617
17801
  "exported": true,
@@ -17851,7 +18035,7 @@
17851
18035
  "module": "@nodefony/mongoose",
17852
18036
  "description": "Nom logique de l'entité (clé de lookup `getRepository`)."
17853
18037
  },
17854
- "IMongooseConfig": {
18038
+ "@nodefony/mongoose:IMongooseConfig": {
17855
18039
  "name": "IMongooseConfig",
17856
18040
  "kind": "type",
17857
18041
  "file": "src/packages/@nodefony/mongoose/nodefony/interfaces/IMongooseConfig.ts",
@@ -18854,8 +19038,8 @@
18854
19038
  ],
18855
19039
  "decorators": []
18856
19040
  },
18857
- "RealtimeConfig": {
18858
- "name": "RealtimeConfig",
19041
+ "IRealtimeSchemaConfig": {
19042
+ "name": "IRealtimeSchemaConfig",
18859
19043
  "kind": "type",
18860
19044
  "file": "src/packages/@nodefony/realtime/nodefony/config/config.ts",
18861
19045
  "exported": true,
@@ -19226,8 +19410,8 @@
19226
19410
  "module": "@nodefony/realtime",
19227
19411
  "description": "Monte un controller temps réel sur une fausse connexion et rend de quoi le piloter. La fabrique reçoit le contexte à passer au constructeur : c'est la seule chose que le harnais ne peut pas deviner…"
19228
19412
  },
19229
- "RedisConfig": {
19230
- "name": "RedisConfig",
19413
+ "IRedisConfig": {
19414
+ "name": "IRedisConfig",
19231
19415
  "kind": "type",
19232
19416
  "file": "src/packages/@nodefony/redis/nodefony/config/config.ts",
19233
19417
  "exported": true,
@@ -19257,7 +19441,7 @@
19257
19441
  "module": "@nodefony/redis",
19258
19442
  "description": "JSON Schema introspectable de la config Redis — destiné au formulaire d'édition Studio (futur) et à la documentation générée."
19259
19443
  },
19260
- "IRedisConfig": {
19444
+ "@nodefony/redis:IRedisConfig": {
19261
19445
  "name": "IRedisConfig",
19262
19446
  "kind": "type",
19263
19447
  "file": "src/packages/@nodefony/redis/nodefony/interfaces/IRedisConfig.ts",
@@ -20234,6 +20418,15 @@
20234
20418
  "decorators": [],
20235
20419
  "description": "**Social login OAuth 2.0** (P6 J9) — orchestrateur du flux *Authorization Code*. Posture OAuth 2.1 (RFC 9700) : Authorization Code uniquement (jamais implicit / ROPC), **PKCE S256** quand le fourni…"
20236
20420
  },
20421
+ "IOAuthDisplayProvider": {
20422
+ "name": "IOAuthDisplayProvider",
20423
+ "kind": "interface",
20424
+ "file": "src/packages/@nodefony/security/nodefony/service/oauth2.ts",
20425
+ "exported": true,
20426
+ "module": "@nodefony/security",
20427
+ "extends": null,
20428
+ "description": "Un fournisseur tel que l'écran de connexion doit le présenter."
20429
+ },
20237
20430
  "IOAuthAuthorization": {
20238
20431
  "name": "IOAuthAuthorization",
20239
20432
  "kind": "interface",
@@ -20243,6 +20436,14 @@
20243
20436
  "extends": null,
20244
20437
  "description": "Données à porter en session entre `authorize` et `callback` (anti-replay)."
20245
20438
  },
20439
+ "oauthDisplayLabel": {
20440
+ "name": "oauthDisplayLabel",
20441
+ "kind": "function",
20442
+ "file": "src/packages/@nodefony/security/nodefony/service/oauth2.ts",
20443
+ "exported": true,
20444
+ "module": "@nodefony/security",
20445
+ "description": "Libellé affichable d'un fournisseur, quand sa configuration n'en donne pas. Un écran de connexion ne doit JAMAIS montrer un identifiant technique brut : `mon-idp-interne` sur un bouton ne dit rien …"
20446
+ },
20246
20447
  "SecurityHeaders": {
20247
20448
  "name": "SecurityHeaders",
20248
20449
  "kind": "class",
@@ -20436,6 +20637,37 @@
20436
20637
  "module": "@nodefony/security",
20437
20638
  "description": "Résout l'identité portée par une session (l'identifiant stocké dans le blob) en utilisateur VIVANT — re-fetch systématique auprès du provider. C'est LE choix structurant de la session BFF : la sess…"
20438
20639
  },
20640
+ "IStudioConfig": {
20641
+ "name": "IStudioConfig",
20642
+ "kind": "type",
20643
+ "file": "src/packages/@nodefony/studio/nodefony/config/config.ts",
20644
+ "exported": true,
20645
+ "module": "@nodefony/studio",
20646
+ "description": "Type de sortie (config normalisée + défauts appliqués)."
20647
+ },
20648
+ "studioConfigSchema": {
20649
+ "name": "studioConfigSchema",
20650
+ "kind": "const",
20651
+ "file": "src/packages/@nodefony/studio/nodefony/config/config.ts",
20652
+ "exported": true,
20653
+ "module": "@nodefony/studio"
20654
+ },
20655
+ "defineStudioConfig": {
20656
+ "name": "defineStudioConfig",
20657
+ "kind": "function",
20658
+ "file": "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts",
20659
+ "exported": true,
20660
+ "module": "@nodefony/studio",
20661
+ "description": "Builder type-safe de la configuration de `@nodefony/studio`. ⭐ TL;DR : MACHINERIE DE BOOT — on n'édite (presque) jamais ce fichier. Même pattern que `nodefony.config.ts` ↔ `defineConfig()` du core …"
20662
+ },
20663
+ "studioConfigJsonSchema": {
20664
+ "name": "studioConfigJsonSchema",
20665
+ "kind": "function",
20666
+ "file": "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts",
20667
+ "exported": true,
20668
+ "module": "@nodefony/studio",
20669
+ "description": "JSON Schema introspectable de la config Studio — destiné au formulaire d'édition Studio et à la documentation générée."
20670
+ },
20439
20671
  "StudioController": {
20440
20672
  "name": "StudioController",
20441
20673
  "kind": "class",
@@ -20475,6 +20707,22 @@
20475
20707
  ],
20476
20708
  "description": "StudioRealtimeController — endpoint WebSocket temps réel permanent de Studio. Route : `WS /nodefony/studio/api/realtime`. Protocole : **JSON-RPC 2.0**. Dérive de {@link RealtimeController} (framewo…"
20477
20709
  },
20710
+ "@nodefony/studio:IStudioConfig": {
20711
+ "name": "IStudioConfig",
20712
+ "kind": "type",
20713
+ "file": "src/packages/@nodefony/studio/nodefony/interfaces/IStudioConfig.ts",
20714
+ "exported": true,
20715
+ "module": "@nodefony/studio",
20716
+ "description": "Configuration normalisée et gelée de `@nodefony/studio` (sortie du builder `defineStudioConfig`, lue par le module et ses controllers). Type dérivé du schéma Zod — NE PAS redéclarer les champs à la…"
20717
+ },
20718
+ "IStudioConfigInput": {
20719
+ "name": "IStudioConfigInput",
20720
+ "kind": "type",
20721
+ "file": "src/packages/@nodefony/studio/nodefony/interfaces/IStudioConfig.ts",
20722
+ "exported": true,
20723
+ "module": "@nodefony/studio",
20724
+ "description": "Entrée du builder `defineStudioConfig` — tous les champs portant un défaut sont optionnels (l'app ne fournit que ce qu'elle surcharge). C'est CE type que le registre `NodefonyModuleConfig` enregist…"
20725
+ },
20478
20726
  "createClusterOrmTicker": {
20479
20727
  "name": "createClusterOrmTicker",
20480
20728
  "kind": "function",
@@ -23085,8 +23333,8 @@
23085
23333
  "module": "@nodefony/http",
23086
23334
  "description": "Un pattern de domaine : string (exact ou `*`-wildcard) ou `RegExp` (libre)."
23087
23335
  },
23088
- "TrustedHostsConfig": {
23089
- "name": "TrustedHostsConfig",
23336
+ "ITrustedHostsConfig": {
23337
+ "name": "ITrustedHostsConfig",
23090
23338
  "kind": "type",
23091
23339
  "file": "src/packages/@nodefony/http/nodefony/src/context/domainMatcher.ts",
23092
23340
  "exported": true,
@@ -28505,7 +28753,7 @@
28505
28753
  "VueController": [
28506
28754
  "src/modules/test-frontend-vue/index.ts"
28507
28755
  ],
28508
- "DevkitConfigInput": [
28756
+ "IDevkitConfigInput": [
28509
28757
  "src/packages/@nodefony/devkit/index.ts",
28510
28758
  "src/packages/@nodefony/devkit/nodefony/config/defineModuleConfig.ts"
28511
28759
  ],
@@ -28532,12 +28780,12 @@
28532
28780
  "documentationConfigJsonSchema": [
28533
28781
  "src/packages/@nodefony/documentation/index.ts"
28534
28782
  ],
28535
- "DocumentationConfig": [
28783
+ "IDocumentationConfig": [
28536
28784
  "src/packages/@nodefony/documentation/index.ts",
28537
28785
  "src/packages/@nodefony/documentation/nodefony/config/defineModuleConfig.ts",
28538
28786
  "src/packages/@nodefony/documentation/nodefony/service/DocumentationService.ts"
28539
28787
  ],
28540
- "DocumentationConfigInput": [
28788
+ "IDocumentationConfigInput": [
28541
28789
  "src/packages/@nodefony/documentation/index.ts"
28542
28790
  ],
28543
28791
  "DocumentationService": [
@@ -28638,6 +28886,28 @@
28638
28886
  "src/packages/@nodefony/security/nodefony/service/webhooks.ts",
28639
28887
  "src/packages/@nodefony/http/nodefony/service/sessions/sessions-service.ts"
28640
28888
  ],
28889
+ "runNeedsExternalServices": [
28890
+ "src/packages/@nodefony/framework/index.ts",
28891
+ "src/packages/@nodefony/redis/nodefony/registerStores.ts",
28892
+ "src/packages/@nodefony/drizzle/nodefony/service/DrizzleService.ts",
28893
+ "src/packages/@nodefony/mongoose/nodefony/service/MongooseService.ts",
28894
+ "src/packages/@nodefony/redis/nodefony/service/redis.ts",
28895
+ "src/packages/@nodefony/security/nodefony/service/auditService.ts",
28896
+ "src/packages/@nodefony/security/nodefony/service/tokenService.ts",
28897
+ "src/packages/@nodefony/security/nodefony/service/totp.ts",
28898
+ "src/packages/@nodefony/security/nodefony/service/webAuthn.ts",
28899
+ "src/packages/@nodefony/security/nodefony/service/webhooks.ts",
28900
+ "src/packages/@nodefony/http/nodefony/service/sessions/sessions-service.ts"
28901
+ ],
28902
+ "durableStoreRemedy": [
28903
+ "src/packages/@nodefony/framework/index.ts",
28904
+ "src/packages/@nodefony/redis/nodefony/registerStores.ts",
28905
+ "src/packages/@nodefony/security/nodefony/service/auditService.ts",
28906
+ "src/packages/@nodefony/security/nodefony/service/tokenService.ts",
28907
+ "src/packages/@nodefony/security/nodefony/service/totp.ts",
28908
+ "src/packages/@nodefony/security/nodefony/service/webAuthn.ts",
28909
+ "src/packages/@nodefony/security/nodefony/service/webhooks.ts"
28910
+ ],
28641
28911
  "readStoreLocation": [
28642
28912
  "src/packages/@nodefony/framework/index.ts",
28643
28913
  "src/packages/@nodefony/security/nodefony/service/auditService.ts",
@@ -28666,11 +28936,11 @@
28666
28936
  "src/packages/@nodefony/framework/nodefony/src/FrameworkAdminApi.ts",
28667
28937
  "src/packages/@nodefony/studio/nodefony/controller/StudioRealtimeController.ts"
28668
28938
  ],
28669
- "FrameworkConfigInput": [
28939
+ "IFrameworkConfigInput": [
28670
28940
  "src/packages/@nodefony/framework/index.ts",
28671
28941
  "src/packages/@nodefony/framework/nodefony/config/defineModuleConfig.ts"
28672
28942
  ],
28673
- "FrameworkConfig": [
28943
+ "IFrameworkConfig": [
28674
28944
  "src/packages/@nodefony/framework/index.ts",
28675
28945
  "src/packages/@nodefony/framework/nodefony/config/defineModuleConfig.ts",
28676
28946
  "src/packages/@nodefony/framework/nodefony/src/idempotencyStoreRegistry.ts"
@@ -29200,7 +29470,7 @@
29200
29470
  "IFrontendConfigInput": [
29201
29471
  "src/packages/@nodefony/frontend/index.ts"
29202
29472
  ],
29203
- "FrontendConfig": [
29473
+ "IFrontendConfig": [
29204
29474
  "src/packages/@nodefony/frontend/index.ts",
29205
29475
  "src/packages/@nodefony/frontend/nodefony/config/defineModuleConfig.ts",
29206
29476
  "src/packages/@nodefony/frontend/nodefony/service/FrontendService.ts"
@@ -29668,9 +29938,20 @@
29668
29938
  "PrebuiltUi": [
29669
29939
  "src/packages/@nodefony/studio/index.ts"
29670
29940
  ],
29671
- "UiDeliveryMode": [
29941
+ "defineStudioConfig": [
29942
+ "src/packages/@nodefony/studio/index.ts"
29943
+ ],
29944
+ "studioConfigJsonSchema": [
29672
29945
  "src/packages/@nodefony/studio/index.ts"
29673
29946
  ],
29947
+ "IStudioConfig": [
29948
+ "src/packages/@nodefony/studio/index.ts",
29949
+ "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts"
29950
+ ],
29951
+ "IStudioConfigInput": [
29952
+ "src/packages/@nodefony/studio/index.ts",
29953
+ "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts"
29954
+ ],
29674
29955
  "StudioController": [
29675
29956
  "src/packages/@nodefony/studio/index.ts"
29676
29957
  ],
@@ -29915,7 +30196,7 @@
29915
30196
  "OPTION_SUGGESTIONS": [
29916
30197
  "src/nodefony/src/cli/completion.ts"
29917
30198
  ],
29918
- "needsShell": [
30199
+ "portableSpawn": [
29919
30200
  "src/nodefony/src/cli/create.ts",
29920
30201
  "src/nodefony/src/kernel/commands/BuildCommand.ts",
29921
30202
  "src/nodefony/src/kernel/commands/MenuCommand.ts",
@@ -29940,13 +30221,15 @@
29940
30221
  "src/nodefony/src/cli/create.ts"
29941
30222
  ],
29942
30223
  "FRONTEND_CHOICES": [
29943
- "src/nodefony/src/cli/create.ts"
30224
+ "src/nodefony/src/cli/create.ts",
30225
+ "src/nodefony/src/kernel/commands/CreateCommand.ts"
29944
30226
  ],
29945
30227
  "MODULE_CONTROLLER_CHOICES": [
29946
30228
  "src/nodefony/src/cli/create.ts"
29947
30229
  ],
29948
30230
  "PRESET_CHOICES": [
29949
- "src/nodefony/src/cli/create.ts"
30231
+ "src/nodefony/src/cli/create.ts",
30232
+ "src/nodefony/src/kernel/commands/CreateCommand.ts"
29950
30233
  ],
29951
30234
  "findPackageRoot": [
29952
30235
  "src/nodefony/src/cli/create.ts"
@@ -30054,7 +30337,8 @@
30054
30337
  "pathLooksSecret": [
30055
30338
  "src/nodefony/src/cli/envReport.ts",
30056
30339
  "src/nodefony/src/config/defineConfig.ts",
30057
- "src/nodefony/src/kernel/Kernel.ts"
30340
+ "src/nodefony/src/kernel/Kernel.ts",
30341
+ "src/nodefony/src/kernel/Module.ts"
30058
30342
  ],
30059
30343
  "isEnvVarRequired": [
30060
30344
  "src/nodefony/src/cli/envReport.ts"
@@ -30669,11 +30953,13 @@
30669
30953
  "src/nodefony/src/kernel/Kernel.ts"
30670
30954
  ],
30671
30955
  "readResolvedPath": [
30672
- "src/nodefony/src/kernel/Kernel.ts"
30956
+ "src/nodefony/src/kernel/Kernel.ts",
30957
+ "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
30673
30958
  ],
30674
30959
  "resolveInfra": [
30675
30960
  "src/nodefony/src/kernel/Kernel.ts",
30676
30961
  "src/nodefony/src/cli/scaffold/engine.ts",
30962
+ "src/nodefony/src/kernel/checks/runDoctor.ts",
30677
30963
  "src/packages/@nodefony/drizzle/nodefony/config/defineModuleConfig.ts",
30678
30964
  "src/packages/@nodefony/mongoose/nodefony/config/defineModuleConfig.ts",
30679
30965
  "src/packages/@nodefony/redis/nodefony/config/defineModuleConfig.ts"
@@ -30781,6 +31067,9 @@
30781
31067
  "src/nodefony/src/kernel/Module.ts",
30782
31068
  "src/nodefony/src/types/IModule.ts"
30783
31069
  ],
31070
+ "findOverwrittenLeaves": [
31071
+ "src/nodefony/src/kernel/Module.ts"
31072
+ ],
30784
31073
  "tagListener": [
30785
31074
  "src/nodefony/src/kernel/Module.ts"
30786
31075
  ],
@@ -31453,6 +31742,17 @@
31453
31742
  "src/nodefony/src/cli/scaffold/engine.ts",
31454
31743
  "src/nodefony/src/cli/scaffold/format.ts"
31455
31744
  ],
31745
+ "manifestFileWith": [
31746
+ "src/nodefony/src/cli/scaffold/engine.ts",
31747
+ "src/packages/@nodefony/security/nodefony/command/security-secrets.ts"
31748
+ ],
31749
+ "withoutComments": [
31750
+ "src/nodefony/src/cli/scaffold/engine.ts",
31751
+ "src/nodefony/src/kernel/checks/freshness.ts",
31752
+ "src/nodefony/src/kernel/checks/readiness.ts",
31753
+ "src/nodefony/src/kernel/checks/surface.ts",
31754
+ "src/nodefony/src/kernel/checks/wiring.ts"
31755
+ ],
31456
31756
  "IScaffoldTypeSpec": [
31457
31757
  "src/nodefony/src/cli/scaffold/engine.ts",
31458
31758
  "src/nodefony/src/cli/scaffold/interactive.ts"
@@ -31862,12 +32162,6 @@
31862
32162
  "isTestFile": [
31863
32163
  "src/nodefony/src/kernel/checks/freshness.ts"
31864
32164
  ],
31865
- "withoutComments": [
31866
- "src/nodefony/src/kernel/checks/freshness.ts",
31867
- "src/nodefony/src/kernel/checks/readiness.ts",
31868
- "src/nodefony/src/kernel/checks/surface.ts",
31869
- "src/nodefony/src/kernel/checks/wiring.ts"
31870
- ],
31871
32165
  "IModuleGated": [
31872
32166
  "src/nodefony/src/kernel/checks/gating.ts",
31873
32167
  "src/nodefony/src/kernel/checks/live.ts"
@@ -31901,6 +32195,16 @@
31901
32195
  "buildProjectEnvReport": [
31902
32196
  "src/nodefony/src/kernel/checks/readiness.ts"
31903
32197
  ],
32198
+ "readManifestCode": [
32199
+ "src/nodefony/src/kernel/checks/readiness.ts",
32200
+ "src/packages/@nodefony/security/nodefony/command/security-secrets.ts"
32201
+ ],
32202
+ "diskManifestReader": [
32203
+ "src/nodefony/src/kernel/checks/readiness.ts",
32204
+ "src/nodefony/src/kernel/checks/surface.ts",
32205
+ "src/nodefony/src/kernel/checks/wiring.ts",
32206
+ "src/packages/@nodefony/security/nodefony/command/security-secrets.ts"
32207
+ ],
31904
32208
  "pluralize": [
31905
32209
  "src/nodefony/src/kernel/checks/renderReport.ts"
31906
32210
  ],
@@ -31982,6 +32286,12 @@
31982
32286
  "resolveEnvCascade": [
31983
32287
  "src/nodefony/src/kernel/checks/runDoctor.ts"
31984
32288
  ],
32289
+ "IInfraProbe": [
32290
+ "src/nodefony/src/kernel/checks/runDoctor.ts"
32291
+ ],
32292
+ "IInfraTarget": [
32293
+ "src/nodefony/src/kernel/checks/runDoctor.ts"
32294
+ ],
31985
32295
  "checkReadiness": [
31986
32296
  "src/nodefony/src/kernel/checks/runDoctor.ts"
31987
32297
  ],
@@ -32051,6 +32361,16 @@
32051
32361
  "renderReport": [
32052
32362
  "src/nodefony/src/kernel/checks/runDoctor.ts"
32053
32363
  ],
32364
+ "readManifestSources": [
32365
+ "src/nodefony/src/kernel/checks/surface.ts",
32366
+ "src/nodefony/src/kernel/checks/wiring.ts"
32367
+ ],
32368
+ "reservedFragmentFiles": [
32369
+ "src/nodefony/src/kernel/checks/wiring.ts"
32370
+ ],
32371
+ "fragmentsWithoutSatisfies": [
32372
+ "src/nodefony/src/kernel/checks/wiring.ts"
32373
+ ],
32054
32374
  "OptionsCommandInterface": [
32055
32375
  "src/nodefony/src/kernel/commands/AiMcpCommand.ts",
32056
32376
  "src/nodefony/src/kernel/commands/AiSyncCommand.ts",
@@ -32832,7 +33152,7 @@
32832
33152
  "devkitConfigSchema": [
32833
33153
  "src/packages/@nodefony/devkit/nodefony/config/defineModuleConfig.ts"
32834
33154
  ],
32835
- "DevkitConfig": [
33155
+ "IDevkitConfig": [
32836
33156
  "src/packages/@nodefony/devkit/nodefony/config/defineModuleConfig.ts",
32837
33157
  "src/packages/@nodefony/devkit/nodefony/interfaces/IDevkitService.ts",
32838
33158
  "src/packages/@nodefony/devkit/nodefony/service/DevkitService.ts"
@@ -32847,7 +33167,8 @@
32847
33167
  "src/packages/@nodefony/mongoose/nodefony/config/defineModuleConfig.ts",
32848
33168
  "src/packages/@nodefony/realtime/nodefony/config/defineModuleConfig.ts",
32849
33169
  "src/packages/@nodefony/redis/nodefony/config/defineModuleConfig.ts",
32850
- "src/packages/@nodefony/security/nodefony/config/defineModuleConfig.ts"
33170
+ "src/packages/@nodefony/security/nodefony/config/defineModuleConfig.ts",
33171
+ "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts"
32851
33172
  ],
32852
33173
  "IDevkitService": [
32853
33174
  "src/packages/@nodefony/devkit/nodefony/controllers/DevkitController.ts",
@@ -33433,10 +33754,6 @@
33433
33754
  "src/packages/@nodefony/drizzle/nodefony/migrations-schema/postgres.ts",
33434
33755
  "src/packages/@nodefony/drizzle/nodefony/migrations-schema/sqlite.ts"
33435
33756
  ],
33436
- "runNeedsExternalServices": [
33437
- "src/packages/@nodefony/drizzle/nodefony/service/DrizzleService.ts",
33438
- "src/packages/@nodefony/mongoose/nodefony/service/MongooseService.ts"
33439
- ],
33440
33757
  "queryFlowMonitor": [
33441
33758
  "src/packages/@nodefony/drizzle/nodefony/service/DrizzleService.ts",
33442
33759
  "src/packages/@nodefony/mongoose/nodefony/service/MongooseService.ts",
@@ -34146,9 +34463,15 @@
34146
34463
  "computeConfigProvenance": [
34147
34464
  "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
34148
34465
  ],
34466
+ "aggregateProvenance": [
34467
+ "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
34468
+ ],
34149
34469
  "extractJsonSchemaDefaults": [
34150
34470
  "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
34151
34471
  ],
34472
+ "flattenConfigSchema": [
34473
+ "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
34474
+ ],
34152
34475
  "extractMarkdownSection": [
34153
34476
  "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts"
34154
34477
  ],
@@ -34362,6 +34685,10 @@
34362
34685
  "isValidOriginTemplate": [
34363
34686
  "src/packages/@nodefony/frontend/nodefony/service/FrontendService.ts"
34364
34687
  ],
34688
+ "isLoopbackHostname": [
34689
+ "src/packages/@nodefony/frontend/nodefony/service/FrontendService.ts",
34690
+ "src/packages/@nodefony/frontend/nodefony/src/template/TemplateHelper.ts"
34691
+ ],
34365
34692
  "PORT_PLACEHOLDER": [
34366
34693
  "src/packages/@nodefony/frontend/nodefony/service/FrontendService.ts",
34367
34694
  "src/packages/@nodefony/frontend/nodefony/service/ViteProcessSupervisor.ts"
@@ -34430,12 +34757,6 @@
34430
34757
  "src/packages/@nodefony/http/nodefony/service/request-logger.ts",
34431
34758
  "src/packages/@nodefony/http/nodefony/src/context/websocket/WebsocketContext.ts"
34432
34759
  ],
34433
- "HttpConfig": [
34434
- "src/packages/@nodefony/http/nodefony/interfaces/IHttpConfig.ts"
34435
- ],
34436
- "HttpConfigInput": [
34437
- "src/packages/@nodefony/http/nodefony/interfaces/IHttpConfig.ts"
34438
- ],
34439
34760
  "ServerType": [
34440
34761
  "src/packages/@nodefony/http/nodefony/interfaces/IHttpKernel.ts",
34441
34762
  "src/packages/@nodefony/http/nodefony/service/servers/server-http.ts",
@@ -34521,7 +34842,7 @@
34521
34842
  "compileTrustedHosts": [
34522
34843
  "src/packages/@nodefony/http/nodefony/service/http-kernel.ts"
34523
34844
  ],
34524
- "TrustedHostsConfig": [
34845
+ "ITrustedHostsConfig": [
34525
34846
  "src/packages/@nodefony/http/nodefony/service/http-kernel.ts"
34526
34847
  ],
34527
34848
  "Statics": [
@@ -34854,7 +35175,7 @@
34854
35175
  "realtimeConfigSchema": [
34855
35176
  "src/packages/@nodefony/realtime/nodefony/config/defineModuleConfig.ts"
34856
35177
  ],
34857
- "RealtimeConfig": [
35178
+ "IRealtimeSchemaConfig": [
34858
35179
  "src/packages/@nodefony/realtime/nodefony/config/defineModuleConfig.ts"
34859
35180
  ],
34860
35181
  "RpcActionHandler": [
@@ -35457,6 +35778,13 @@
35457
35778
  "src/packages/@nodefony/security/nodefony/src/sessionIdentity.ts",
35458
35779
  "src/packages/@nodefony/user/nodefony/service/UserService.ts"
35459
35780
  ],
35781
+ "UiDeliveryMode": [
35782
+ "src/packages/@nodefony/studio/nodefony/config/config.ts"
35783
+ ],
35784
+ "studioConfigSchema": [
35785
+ "src/packages/@nodefony/studio/nodefony/config/defineModuleConfig.ts",
35786
+ "src/packages/@nodefony/studio/nodefony/interfaces/IStudioConfig.ts"
35787
+ ],
35460
35788
  "readStatsSnapshot": [
35461
35789
  "src/packages/@nodefony/studio/nodefony/controller/StudioController.ts"
35462
35790
  ],