nodefony 10.0.0-alpha.6 → 10.0.0-alpha.7

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 (89) hide show
  1. package/.ai/symbols.json +551 -19
  2. package/README.md +0 -1
  3. package/bin/nodefony +35 -0
  4. package/dist/client/Service.js +18 -1
  5. package/dist/client/runtime/packageInstances.js +56 -0
  6. package/dist/client/types/src/Service.d.ts +0 -15
  7. package/dist/client/types/src/runtime/packageInstances.d.ts +75 -0
  8. package/dist/node/Nodefony.js +5 -2
  9. package/dist/node/Service.js +18 -1
  10. package/dist/node/cli/aiSyncReport.js +11 -1
  11. package/dist/node/cli/create.js +2 -2
  12. package/dist/node/cli/env.js +10 -0
  13. package/dist/node/cli/envReport.js +1 -0
  14. package/dist/node/cli/image/index.js +156 -0
  15. package/dist/node/cli/image/suspectFiles.js +91 -0
  16. package/dist/node/cli/image/tarLayers.js +314 -0
  17. package/dist/node/cli/scaffold/engine.js +185 -33
  18. package/dist/node/cli/scaffold/help.js +7 -2
  19. package/dist/node/cli/scaffold/routePaths.js +103 -0
  20. package/dist/node/cli/scaffold/versions.js +12 -12
  21. package/dist/node/config/defineConfig.js +41 -7
  22. package/dist/node/index.js +3 -3
  23. package/dist/node/kernel/BootConfigurationError.js +13 -0
  24. package/dist/node/kernel/CliKernel.js +4 -0
  25. package/dist/node/kernel/Kernel.js +125 -4
  26. package/dist/node/kernel/bootConfigDiagnosis.js +86 -0
  27. package/dist/node/kernel/checks/projectScope.js +124 -0
  28. package/dist/node/kernel/checks/runDoctor.js +3 -49
  29. package/dist/node/kernel/checks/wiring.js +64 -16
  30. package/dist/node/kernel/commands/ImageCommand.js +43 -0
  31. package/dist/node/kernel/commands/InspectCommand.js +15 -1
  32. package/dist/node/kernel/commands/StatusCommand.js +2 -2
  33. package/dist/node/kernel/inspect/adminSubjects.js +7 -1
  34. package/dist/node/package.js +1 -1
  35. package/dist/node/runtime/packageInstances.js +90 -0
  36. package/dist/node/runtime/uuidV7.js +81 -0
  37. package/dist/node/service/cluster/topology.js +3 -1
  38. package/dist/node/service/dev/DevSupervisor.js +27 -4
  39. package/dist/node/service/dev/detachedStart.js +11 -7
  40. package/dist/node/service/dev/devProcess.js +104 -1
  41. package/dist/node/service/dev/devStatusReport.js +26 -9
  42. package/dist/types/Service.d.ts +0 -15
  43. package/dist/types/bin/resolveLocalCli.d.ts +30 -0
  44. package/dist/types/cli/aiSyncReport.d.ts +11 -1
  45. package/dist/types/cli/envReport.d.ts +27 -0
  46. package/dist/types/cli/image/index.d.ts +31 -0
  47. package/dist/types/cli/image/suspectFiles.d.ts +78 -0
  48. package/dist/types/cli/image/tarLayers.d.ts +73 -0
  49. package/dist/types/cli/scaffold/engine.d.ts +24 -0
  50. package/dist/types/cli/scaffold/routePaths.d.ts +84 -0
  51. package/dist/types/config/defineConfig.d.ts +31 -0
  52. package/dist/types/index.d.ts +3 -2
  53. package/dist/types/kernel/BootConfigurationError.d.ts +12 -0
  54. package/dist/types/kernel/Kernel.d.ts +74 -0
  55. package/dist/types/kernel/bootConfigDiagnosis.d.ts +100 -0
  56. package/dist/types/kernel/checks/projectScope.d.ts +66 -0
  57. package/dist/types/kernel/checks/wiring.d.ts +28 -1
  58. package/dist/types/kernel/commands/ImageCommand.d.ts +29 -0
  59. package/dist/types/kernel/inspect/adminSubjects.d.ts +9 -0
  60. package/dist/types/runtime/packageInstances.d.ts +75 -0
  61. package/dist/types/runtime/uuidV7.d.ts +31 -0
  62. package/dist/types/service/dev/detachedStart.d.ts +8 -3
  63. package/dist/types/service/dev/devProcess.d.ts +79 -0
  64. package/dist/types/service/dev/devStatusReport.d.ts +25 -4
  65. package/docs/cli.md +23 -0
  66. package/man/nodefony.1 +4 -1
  67. package/package.json +14 -14
  68. package/templates/app/agents/AGENTS.md.tpl +45 -683
  69. package/templates/app/agents/POINTEUR.md.tpl +5 -0
  70. package/templates/app/agents/nodefony/ajouter-une-brique.md.tpl +60 -0
  71. package/templates/app/agents/nodefony/avant-de-coder.md.tpl +76 -0
  72. package/templates/app/agents/nodefony/commandes.md.tpl +44 -0
  73. package/templates/app/agents/nodefony/depannage.md.tpl +39 -0
  74. package/templates/app/agents/nodefony/donnees-et-fichiers.md.tpl +31 -0
  75. package/templates/app/agents/nodefony/inspecter-l-app.md.tpl +174 -0
  76. package/templates/app/agents/nodefony/lancer-le-serveur.md.tpl +50 -0
  77. package/templates/app/agents/nodefony/securite-et-droits.md.tpl +129 -0
  78. package/templates/app/agents/nodefony/temps-reel.md.tpl +3 -0
  79. package/templates/app/agents/nodefony/variables-d-environnement.md.tpl +56 -0
  80. package/templates/app/base/Dockerfile.tpl +55 -6
  81. package/templates/app/base/README.md.tpl +40 -0
  82. package/templates/app/base/github/workflows/ci.yml.tpl +20 -0
  83. package/templates/app/base/gitlab-ci.yml.tpl +55 -0
  84. package/templates/app/base/nodefony.config.ts.tpl +26 -4
  85. package/templates/app/base/tests/e2e.setup.ts.tpl +17 -0
  86. package/templates/app/base/tests/e2e.test.ts.tpl +22 -3
  87. package/templates/app/complete/deploy/migrate-job.yaml.tpl +12 -0
  88. package/templates/app/complete/github/workflows/production.yml.tpl +447 -0
  89. package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +24 -39
package/.ai/symbols.json CHANGED
@@ -2,14 +2,14 @@
2
2
  "version": "2.0.0",
3
3
  "repoRoot": ".",
4
4
  "stats": {
5
- "files": 832,
6
- "symbols": 4076,
7
- "classes": 392,
8
- "interfaces": 1092,
9
- "types": 449,
5
+ "files": 842,
6
+ "symbols": 4140,
7
+ "classes": 394,
8
+ "interfaces": 1104,
9
+ "types": 451,
10
10
  "enums": 4,
11
- "functions": 1732,
12
- "constants": 407
11
+ "functions": 1778,
12
+ "constants": 409
13
13
  },
14
14
  "symbols": {
15
15
  "Cli": {
@@ -254,8 +254,7 @@
254
254
  "implements": [
255
255
  "IService"
256
256
  ],
257
- "decorators": [],
258
- "description": "Brique de base de tout composant Nodefony — câble un nom, un {@link Container} DI, un {@link Syslog} et un bus d'événements {@link Event} (notificationsCenter). Tous les services, modules, kernels …"
257
+ "decorators": []
259
258
  },
260
259
  "isArray": {
261
260
  "name": "isArray",
@@ -584,6 +583,14 @@
584
583
  "module": "@nodefony/core",
585
584
  "description": "Décision du lanceur : exécuter soi-même, ou passer la main au CLI de l'app."
586
585
  },
586
+ "alignArgvWithDelegate": {
587
+ "name": "alignArgvWithDelegate",
588
+ "kind": "function",
589
+ "file": "src/nodefony/src/bin/resolveLocalCli.ts",
590
+ "exported": true,
591
+ "module": "@nodefony/core",
592
+ "description": "Aligne `argv[1]` sur le CLI RÉELLEMENT exécuté après une délégation. 🔴 POURQUOI C'EST NÉCESSAIRE, et ce que ça a coûté de ne pas le faire. La délégation charge le CLI de l'application par `import(…"
593
+ },
587
594
  "resolveLocalCli": {
588
595
  "name": "resolveLocalCli",
589
596
  "kind": "function",
@@ -2949,6 +2956,14 @@
2949
2956
  "module": "@nodefony/core",
2950
2957
  "description": "Garde de type : `value` est-il un descripteur produit par {@link defineConfig} ? Utilisé par le Kernel (`loadApp`, Lot 4) pour distinguer une app moderne (`export default defineConfig(…)`) d'une co…"
2951
2958
  },
2959
+ "CONFIG_DESCRIPTOR_KEY": {
2960
+ "name": "CONFIG_DESCRIPTOR_KEY",
2961
+ "kind": "const",
2962
+ "file": "src/nodefony/src/config/defineConfig.ts",
2963
+ "exported": true,
2964
+ "module": "@nodefony/core",
2965
+ "description": "Marque (brand) d'un descripteur de config. Non exportée → un objet quelconque ne peut pas se faire passer pour un descripteur, et le type public {@link AppConfigDescriptor} reste propre. 🔴 `Symbol…"
2966
+ },
2952
2967
  "EnvVarMeta": {
2953
2968
  "name": "EnvVarMeta",
2954
2969
  "kind": "interface",
@@ -3675,6 +3690,47 @@
3675
3690
  "implements": [],
3676
3691
  "decorators": []
3677
3692
  },
3693
+ "IEmptyManifestFacts": {
3694
+ "name": "IEmptyManifestFacts",
3695
+ "kind": "interface",
3696
+ "file": "src/nodefony/src/kernel/bootConfigDiagnosis.ts",
3697
+ "exported": true,
3698
+ "module": "@nodefony/core",
3699
+ "extends": null,
3700
+ "description": "Entrée du diagnostic — les trois faits constatés au boot."
3701
+ },
3702
+ "AppConfigOrigin": {
3703
+ "name": "AppConfigOrigin",
3704
+ "kind": "type",
3705
+ "file": "src/nodefony/src/kernel/bootConfigDiagnosis.ts",
3706
+ "exported": true,
3707
+ "module": "@nodefony/core",
3708
+ "description": "Diagnostic d'un manifeste de modules VIDE au boot. Un manifeste vide sous profil serveur produit toujours le même symptôme — aucun module monté, aucun serveur en écoute, sortie 69 — alors qu'il rec…"
3709
+ },
3710
+ "isForeignDescriptor": {
3711
+ "name": "isForeignDescriptor",
3712
+ "kind": "function",
3713
+ "file": "src/nodefony/src/kernel/bootConfigDiagnosis.ts",
3714
+ "exported": true,
3715
+ "module": "@nodefony/core",
3716
+ "description": "Détecte un descripteur produit par une AUTRE instance du module `nodefony`. 🔴 CE QUE CETTE GARDE RATTRAPE, et pourquoi elle ne peut pas être un test. Deux copies du module `nodefony` chargées dans…"
3717
+ },
3718
+ "foreignPackageWarning": {
3719
+ "name": "foreignPackageWarning",
3720
+ "kind": "function",
3721
+ "file": "src/nodefony/src/kernel/bootConfigDiagnosis.ts",
3722
+ "exported": true,
3723
+ "module": "@nodefony/core",
3724
+ "description": "Constat émis quand la configuration de l'application a été résolue par une AUTRE copie du framework — c'est-à-dire quand deux paquets `nodefony` tournent dans ce process, et que la copie fautive es…"
3725
+ },
3726
+ "diagnoseEmptyManifest": {
3727
+ "name": "diagnoseEmptyManifest",
3728
+ "kind": "function",
3729
+ "file": "src/nodefony/src/kernel/bootConfigDiagnosis.ts",
3730
+ "exported": true,
3731
+ "module": "@nodefony/core",
3732
+ "description": "Nomme la cause probable d'un manifeste vide, ou `null` s'il n'y a rien à dire. Ne parle QUE sous profil serveur : une commande console ou un test qui boote sans manifeste est un cas nominal, et une…"
3733
+ },
3678
3734
  "BootConfigurationError": {
3679
3735
  "name": "BootConfigurationError",
3680
3736
  "kind": "class",
@@ -5186,6 +5242,47 @@
5186
5242
  "exported": true,
5187
5243
  "module": "@nodefony/core"
5188
5244
  },
5245
+ "INodefonyPackageInstance": {
5246
+ "name": "INodefonyPackageInstance",
5247
+ "kind": "interface",
5248
+ "file": "src/nodefony/src/runtime/packageInstances.ts",
5249
+ "exported": true,
5250
+ "module": "@nodefony/core",
5251
+ "extends": null,
5252
+ "description": "Une copie du paquet `nodefony` évaluée dans ce process."
5253
+ },
5254
+ "registerPackageInstance": {
5255
+ "name": "registerPackageInstance",
5256
+ "kind": "function",
5257
+ "file": "src/nodefony/src/runtime/packageInstances.ts",
5258
+ "exported": true,
5259
+ "module": "@nodefony/core",
5260
+ "description": "Inscrit la copie courante. Appelé UNE fois, à l'évaluation de `Nodefony.ts`. Idempotent par URL : un même module réévalué (rechargement de test, double import par deux spécificateurs qui résolvent …"
5261
+ },
5262
+ "listPackageInstances": {
5263
+ "name": "listPackageInstances",
5264
+ "kind": "function",
5265
+ "file": "src/nodefony/src/runtime/packageInstances.ts",
5266
+ "exported": true,
5267
+ "module": "@nodefony/core",
5268
+ "description": "Les copies inscrites, dans leur ordre d'évaluation."
5269
+ },
5270
+ "isPackageDuplicated": {
5271
+ "name": "isPackageDuplicated",
5272
+ "kind": "function",
5273
+ "file": "src/nodefony/src/runtime/packageInstances.ts",
5274
+ "exported": true,
5275
+ "module": "@nodefony/core",
5276
+ "description": "Y a-t-il plus d'une copie du paquet dans ce process ?"
5277
+ },
5278
+ "packageDualityReport": {
5279
+ "name": "packageDualityReport",
5280
+ "kind": "function",
5281
+ "file": "src/nodefony/src/runtime/packageInstances.ts",
5282
+ "exported": true,
5283
+ "module": "@nodefony/core",
5284
+ "description": "Texte destiné à un humain décrivant la dualité constatée — les chemins des copies d'abord, parce que c'est la seule information qui permette d'agir. Le geste proposé n'est pas décoratif : sans lui,…"
5285
+ },
5189
5286
  "FacetCount": {
5190
5287
  "name": "FacetCount",
5191
5288
  "kind": "type",
@@ -5459,6 +5556,30 @@
5459
5556
  "extends": null,
5460
5557
  "description": "Per-request state propagated transparently across the async pipeline. Set by HttpKernel at request entry (`handleHttp` / `handleWebsocket`) and accessible from any downstream service (logs, ORM, se…"
5461
5558
  },
5559
+ "composeUuidV7": {
5560
+ "name": "composeUuidV7",
5561
+ "kind": "function",
5562
+ "file": "src/nodefony/src/runtime/uuidV7.ts",
5563
+ "exported": true,
5564
+ "module": "@nodefony/core",
5565
+ "description": "Compose un UUID v7 conforme à la RFC 9562 §5.7. Disposition des 128 bits : 48 bits d'horodatage Unix en millisecondes (gros-boutiste), 4 bits de version (`7`), 12 bits aléatoires, 2 bits de variant…"
5566
+ },
5567
+ "randomUuidV7": {
5568
+ "name": "randomUuidV7",
5569
+ "kind": "function",
5570
+ "file": "src/nodefony/src/runtime/uuidV7.ts",
5571
+ "exported": true,
5572
+ "module": "@nodefony/core",
5573
+ "description": "Un UUID v7 — natif si ce Node sait le faire, composé ici sinon."
5574
+ },
5575
+ "usesNativeUuidV7": {
5576
+ "name": "usesNativeUuidV7",
5577
+ "kind": "function",
5578
+ "file": "src/nodefony/src/runtime/uuidV7.ts",
5579
+ "exported": true,
5580
+ "module": "@nodefony/core",
5581
+ "description": "Cette exécution emploie-t-elle l'implémentation de Node ? Exposé pour que le banc puisse le CONSTATER au lieu de le déduire d'un numéro de version — une capacité se constate, elle ne se déduit pas."
5582
+ },
5462
5583
  "TimeoutError": {
5463
5584
  "name": "TimeoutError",
5464
5585
  "kind": "class",
@@ -6222,6 +6343,108 @@
6222
6343
  "module": "@nodefony/redis",
6223
6344
  "description": "Enregistre les fabriques de stores Redis dans les registres de `@nodefony/security`. Idempotent (guards) — rejouable sans effet."
6224
6345
  },
6346
+ "IImageCheckRequest": {
6347
+ "name": "IImageCheckRequest",
6348
+ "kind": "interface",
6349
+ "file": "src/nodefony/src/cli/image/index.ts",
6350
+ "exported": true,
6351
+ "module": "@nodefony/core",
6352
+ "extends": null,
6353
+ "description": "Ce que la ligne de commande demande."
6354
+ },
6355
+ "parseImageCheckArgv": {
6356
+ "name": "parseImageCheckArgv",
6357
+ "kind": "function",
6358
+ "file": "src/nodefony/src/cli/image/index.ts",
6359
+ "exported": true,
6360
+ "module": "@nodefony/core",
6361
+ "description": "Parse l'argv après le mot `image:check`."
6362
+ },
6363
+ "runImageCheckCommand": {
6364
+ "name": "runImageCheckCommand",
6365
+ "kind": "function",
6366
+ "file": "src/nodefony/src/cli/image/index.ts",
6367
+ "exported": true,
6368
+ "module": "@nodefony/core",
6369
+ "description": "Rend le verdict sur une image, ou sur l'inventaire de ses chemins. 🔴 **Un contrôle qui n'a pas pu regarder n'est pas un contrôle favorable.** Il rend `EX_UNAVAILABLE` (69), et non 0 : un appelant …"
6370
+ },
6371
+ "detectSuspectFiles": {
6372
+ "name": "detectSuspectFiles",
6373
+ "kind": "function",
6374
+ "file": "src/nodefony/src/cli/image/suspectFiles.ts",
6375
+ "exported": true,
6376
+ "module": "@nodefony/core",
6377
+ "description": "**Ce qui n'a rien à faire dans un artefact publié** — tarball npm ou image de conteneur. La règle porte sur des NOMS, et c'est délibéré : ce n'est pas un scanner de secrets par contenu (c'est le mé…"
6378
+ },
6379
+ "detectSuspectImageFiles": {
6380
+ "name": "detectSuspectImageFiles",
6381
+ "kind": "function",
6382
+ "file": "src/nodefony/src/cli/image/suspectFiles.ts",
6383
+ "exported": true,
6384
+ "module": "@nodefony/core",
6385
+ "description": "La MÊME règle, appliquée à l'inventaire d'une image de conteneur. L'image publiée était le seul artefact que rien ne regardait : la `10.0.0-alpha.4` embarquait `nodefony/config/certificates/server/…"
6386
+ },
6387
+ "BlindCheckError": {
6388
+ "name": "BlindCheckError",
6389
+ "kind": "class",
6390
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6391
+ "exported": true,
6392
+ "module": "@nodefony/core",
6393
+ "extends": "Error",
6394
+ "implements": [],
6395
+ "decorators": [],
6396
+ "description": "Le contrôle n'a pas pu regarder — distinct d'un verdict défavorable. Un appelant qui confond les deux publie une image que personne n'a vue : le code de sortie qui en découle doit donc être non nul…"
6397
+ },
6398
+ "IImageContents": {
6399
+ "name": "IImageContents",
6400
+ "kind": "interface",
6401
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6402
+ "exported": true,
6403
+ "module": "@nodefony/core",
6404
+ "extends": null,
6405
+ "description": "Ce qu'une lecture d'image rend : ses chemins, et combien de couches."
6406
+ },
6407
+ "ISavedImage": {
6408
+ "name": "ISavedImage",
6409
+ "kind": "interface",
6410
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6411
+ "exported": true,
6412
+ "module": "@nodefony/core",
6413
+ "extends": null,
6414
+ "description": "Ce qu'un `docker save` laisse derrière lui, à nettoyer par l'appelant."
6415
+ },
6416
+ "readTarHeader": {
6417
+ "name": "readTarHeader",
6418
+ "kind": "function",
6419
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6420
+ "exported": true,
6421
+ "module": "@nodefony/core",
6422
+ "description": "Décode un en-tête tar de 512 octets."
6423
+ },
6424
+ "tarPathsFromStream": {
6425
+ "name": "tarPathsFromStream",
6426
+ "kind": "function",
6427
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6428
+ "exported": true,
6429
+ "module": "@nodefony/core",
6430
+ "description": "Rend tous les chemins d'une archive tar lue en FLUX, mémoire bornée. Gère les trois façons d'écrire un nom long, parce que les couches d'image en sont pleines (`node_modules/…`) : le champ `prefix`…"
6431
+ },
6432
+ "imageContents": {
6433
+ "name": "imageContents",
6434
+ "kind": "function",
6435
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6436
+ "exported": true,
6437
+ "module": "@nodefony/core",
6438
+ "description": "Tous les chemins de toutes les couches d'une image, dédoublonnés."
6439
+ },
6440
+ "saveImage": {
6441
+ "name": "saveImage",
6442
+ "kind": "function",
6443
+ "file": "src/nodefony/src/cli/image/tarLayers.ts",
6444
+ "exported": true,
6445
+ "module": "@nodefony/core",
6446
+ "description": "`docker save` dans un fichier temporaire, supprimé par l'appelant."
6447
+ },
6225
6448
  "ScaffoldDestinationError": {
6226
6449
  "name": "ScaffoldDestinationError",
6227
6450
  "kind": "class",
@@ -6383,6 +6606,14 @@
6383
6606
  "module": "@nodefony/core",
6384
6607
  "description": "Complète et VALIDE des réponses partielles contre la spec d'un type : défauts appliqués, patterns vérifiés, choix contraints à leur liste. Le contexte des templates est donc complet PAR CONSTRUCTIO…"
6385
6608
  },
6609
+ "toNativeRelativePath": {
6610
+ "name": "toNativeRelativePath",
6611
+ "kind": "function",
6612
+ "file": "src/nodefony/src/cli/scaffold/engine.ts",
6613
+ "exported": true,
6614
+ "module": "@nodefony/core",
6615
+ "description": "Un chemin DÉCLARÉ en `/` ramené à la grammaire de la plateforme. Certains chemins du scaffold sont écrits en `/` à leur source, et c'est juste : `.github/copilot-instructions.md` est un nom que la …"
6616
+ },
6386
6617
  "writeAgentPointers": {
6387
6618
  "name": "writeAgentPointers",
6388
6619
  "kind": "function",
@@ -6849,6 +7080,55 @@
6849
7080
  "exported": true,
6850
7081
  "module": "@nodefony/core"
6851
7082
  },
7083
+ "ISiblingRoute": {
7084
+ "name": "ISiblingRoute",
7085
+ "kind": "interface",
7086
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7087
+ "exported": true,
7088
+ "module": "@nodefony/core",
7089
+ "extends": null,
7090
+ "description": "Une route voisine qu'une garde de controller ne couvre pas."
7091
+ },
7092
+ "declaredRoutePaths": {
7093
+ "name": "declaredRoutePaths",
7094
+ "kind": "function",
7095
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7096
+ "exported": true,
7097
+ "module": "@nodefony/core",
7098
+ "description": "Les chemins de route qu'une source déclare."
7099
+ },
7100
+ "isUnderPrefix": {
7101
+ "name": "isUnderPrefix",
7102
+ "kind": "function",
7103
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7104
+ "exported": true,
7105
+ "module": "@nodefony/core",
7106
+ "description": "`candidate` est-il SOUS `prefix` — au sens des segments, pas des caractères ? La comparaison littérale ferait de `/api/accounts` un enfant de `/api/account`, et le générateur signalerait une route …"
7107
+ },
7108
+ "controllerPrefix": {
7109
+ "name": "controllerPrefix",
7110
+ "kind": "function",
7111
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7112
+ "exported": true,
7113
+ "module": "@nodefony/core",
7114
+ "description": "Le PRÉFIXE d'un controller, tel que `@controller(\"…\")` le déclare. C'est lui, et non les `@route`, qui dit sous quel espace le controller sert : le `path:` d'une action est RELATIF à ce préfixe. Ch…"
7115
+ },
7116
+ "openSiblingRoutes": {
7117
+ "name": "openSiblingRoutes",
7118
+ "kind": "function",
7119
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7120
+ "exported": true,
7121
+ "module": "@nodefony/core",
7122
+ "description": "Les routes d'AUTRES fichiers qui partagent le préfixe, et que la garde ne couvre donc pas. Protéger un controller par un rôle a l'apparence de fermer un espace ; cela ferme un FICHIER. Toute route …"
7123
+ },
7124
+ "ROUTE_PATH_RE": {
7125
+ "name": "ROUTE_PATH_RE",
7126
+ "kind": "const",
7127
+ "file": "src/nodefony/src/cli/scaffold/routePaths.ts",
7128
+ "exported": true,
7129
+ "module": "@nodefony/core",
7130
+ "description": "Les chemins de route DÉCLARÉS dans une source, et leurs voisins de préfixe. Deux outils en ont besoin et n'ont pas la même question : le vérificateur cherche un segment écrit à la mode d'un autre f…"
7131
+ },
6852
7132
  "IScaffoldQuestion": {
6853
7133
  "name": "IScaffoldQuestion",
6854
7134
  "kind": "interface",
@@ -9320,6 +9600,47 @@
9320
9600
  "module": "@nodefony/core",
9321
9601
  "description": "Analyse les paquets et rend les manquements trouvés."
9322
9602
  },
9603
+ "IConfigInconsistency": {
9604
+ "name": "IConfigInconsistency",
9605
+ "kind": "interface",
9606
+ "file": "src/nodefony/src/kernel/checks/projectScope.ts",
9607
+ "exported": true,
9608
+ "module": "@nodefony/core",
9609
+ "extends": null,
9610
+ "description": "Une valeur effective que l'état du projet contredit."
9611
+ },
9612
+ "wiringTargets": {
9613
+ "name": "wiringTargets",
9614
+ "kind": "function",
9615
+ "file": "src/nodefony/src/kernel/checks/projectScope.ts",
9616
+ "exported": true,
9617
+ "module": "@nodefony/core",
9618
+ "description": "Cibles du contrôle de câblage : l'application elle-même, et chaque module. Ce n'est pas la même liste que celle des paquets : un contrôle de dépendances s'intéresse à ce qui porte un `package.json`…"
9619
+ },
9620
+ "appEnvironment": {
9621
+ "name": "appEnvironment",
9622
+ "kind": "function",
9623
+ "file": "src/nodefony/src/kernel/checks/projectScope.ts",
9624
+ "exported": true,
9625
+ "module": "@nodefony/core",
9626
+ "description": "L'environnement que l'APPLICATION verrait, depuis ce poste. `process.env` ne porte que ce que le terminal a posé ; l'application, elle, lit d'abord sa cascade `.env*`. Un diagnostic qui l'ignore ac…"
9627
+ },
9628
+ "declaredDialectExceptions": {
9629
+ "name": "declaredDialectExceptions",
9630
+ "kind": "function",
9631
+ "file": "src/nodefony/src/kernel/checks/projectScope.ts",
9632
+ "exported": true,
9633
+ "module": "@nodefony/core",
9634
+ "description": "Les divergences de dialecte que le projet ASSUME, déclarées dans son `package.json` (`nodefony.doctor.entityDialect`). Elles se lisent ici parce que tout appelant doit les respecter : avertir là où…"
9635
+ },
9636
+ "configInconsistencies": {
9637
+ "name": "configInconsistencies",
9638
+ "kind": "function",
9639
+ "file": "src/nodefony/src/kernel/checks/projectScope.ts",
9640
+ "exported": true,
9641
+ "module": "@nodefony/core",
9642
+ "description": "Les valeurs effectives que l'état du projet contredit. Une variable peut être posée au bon endroit, avec la bonne provenance, et rendre l'application inexploitable. Le cas mesuré : `NF_DATABASE_URL…"
9643
+ },
9323
9644
  "IReadinessFinding": {
9324
9645
  "name": "IReadinessFinding",
9325
9646
  "kind": "interface",
@@ -10083,6 +10404,22 @@
10083
10404
  "module": "@nodefony/core",
10084
10405
  "extends": null
10085
10406
  },
10407
+ "requiredColumns": {
10408
+ "name": "requiredColumns",
10409
+ "kind": "function",
10410
+ "file": "src/nodefony/src/kernel/checks/wiring.ts",
10411
+ "exported": true,
10412
+ "module": "@nodefony/core",
10413
+ "description": "Les colonnes qu'une entité rend OBLIGATOIRES sans leur donner de défaut. Une colonne `notNull()` sans `default`/`$defaultFn` n'accepte rien d'absent : si le contrat d'entrée la laisse facultative, …"
10414
+ },
10415
+ "optionalInputFields": {
10416
+ "name": "optionalInputFields",
10417
+ "kind": "function",
10418
+ "file": "src/nodefony/src/kernel/checks/wiring.ts",
10419
+ "exported": true,
10420
+ "module": "@nodefony/core",
10421
+ "description": "Les champs qu'un contrat de CRÉATION déclare facultatifs. Le schéma de mise à jour est volontairement ignoré : un `.partial()` rend tout facultatif, et c'est son rôle — une modification ne renvoie …"
10422
+ },
10086
10423
  "checkWiring": {
10087
10424
  "name": "checkWiring",
10088
10425
  "kind": "function",
@@ -10220,6 +10557,17 @@
10220
10557
  "decorators": [],
10221
10558
  "description": "Commande `nodefony git:hooks` — hooks git natifs (`core.hooksPath`), zéro dépendance. **Exécutée en « standalone » (zéro boot).** L'enregistrement ici sert au help (`nodefony --help`) et à la compl…"
10222
10559
  },
10560
+ "Image": {
10561
+ "name": "Image",
10562
+ "kind": "class",
10563
+ "file": "src/nodefony/src/kernel/commands/ImageCommand.ts",
10564
+ "exported": true,
10565
+ "module": "@nodefony/core",
10566
+ "extends": "Command",
10567
+ "implements": [],
10568
+ "decorators": [],
10569
+ "description": "Commande `nodefony image:check` — refuse une image qui embarque un secret. **Exécutée en « standalone » (zéro boot)**, comme `doctor`, `env` et `symbols` : l'enregistrement ici sert au help. Elle l…"
10570
+ },
10223
10571
  "Inspect": {
10224
10572
  "name": "Inspect",
10225
10573
  "kind": "class",
@@ -11197,6 +11545,24 @@
11197
11545
  "extends": null,
11198
11546
  "description": "Ce que le serveur publie sur lui-même une fois ses serveurs en écoute."
11199
11547
  },
11548
+ "PortShift": {
11549
+ "name": "PortShift",
11550
+ "kind": "interface",
11551
+ "file": "src/nodefony/src/service/dev/devProcess.ts",
11552
+ "exported": true,
11553
+ "module": "@nodefony/core",
11554
+ "extends": null,
11555
+ "description": "Un décalage de ports CONSTATÉ : ce que la config demandait, ce qui sert."
11556
+ },
11557
+ "ReadyAnnouncement": {
11558
+ "name": "ReadyAnnouncement",
11559
+ "kind": "interface",
11560
+ "file": "src/nodefony/src/service/dev/devProcess.ts",
11561
+ "exported": true,
11562
+ "module": "@nodefony/core",
11563
+ "extends": null,
11564
+ "description": "Ce qu'un démarrage annonce de l'endroit où il sert."
11565
+ },
11200
11566
  "SupervisorLock": {
11201
11567
  "name": "SupervisorLock",
11202
11568
  "kind": "interface",
@@ -11348,6 +11714,30 @@
11348
11714
  "module": "@nodefony/core",
11349
11715
  "description": "Lit qui retient la mise en service, ou `null`. **Un fichier dont le process est MORT est ignoré** : sinon `status` nommerait le contributeur d'un serveur d'hier, ce qui est pire que de ne rien nomm…"
11350
11716
  },
11717
+ "servedUrl": {
11718
+ "name": "servedUrl",
11719
+ "kind": "function",
11720
+ "file": "src/nodefony/src/service/dev/devProcess.ts",
11721
+ "exported": true,
11722
+ "module": "@nodefony/core",
11723
+ "description": "L'adresse où TAPER pour atteindre un serveur qui écoute sur `host:port`. Une adresse d'écoute et une adresse de client sont deux choses : `0.0.0.0` et `::` disent « toutes les interfaces », ce qu'a…"
11724
+ },
11725
+ "detectPortShift": {
11726
+ "name": "detectPortShift",
11727
+ "kind": "function",
11728
+ "file": "src/nodefony/src/service/dev/devProcess.ts",
11729
+ "exported": true,
11730
+ "module": "@nodefony/core",
11731
+ "description": "Le décalage de ports d'un runtime, ou `null` s'il sert bien ce qu'on lui a demandé. `servers.portPolicy: \"auto\"` (défaut en développement) fait glisser l'écoute au prochain port libre quand le port…"
11732
+ },
11733
+ "readyAnnouncement": {
11734
+ "name": "readyAnnouncement",
11735
+ "kind": "function",
11736
+ "file": "src/nodefony/src/service/dev/devProcess.ts",
11737
+ "exported": true,
11738
+ "module": "@nodefony/core",
11739
+ "description": "Ce qu'un démarrage doit DIRE de l'endroit où il sert. Un serveur qui démarre sans dire son adresse laisse interroger celle qu'on croyait — c'est-à-dire, quand le port a glissé, l'application VOISIN…"
11740
+ },
11351
11741
  "writeRuntimeState": {
11352
11742
  "name": "writeRuntimeState",
11353
11743
  "kind": "function",
@@ -16897,7 +17287,7 @@
16897
17287
  "file": "src/packages/@nodefony/frontend/nodefony/service/ViteProcessSupervisor.ts",
16898
17288
  "exported": true,
16899
17289
  "module": "@nodefony/frontend",
16900
- "description": "Un texte (message d'erreur OU sortie brute de Vite) dénonce-t-il un port occupé ? **Source UNIQUE** de cette décision. Elle était dupliquée en deux regex qui ont divergé : l'une cherchait `port X i…"
17290
+ "description": "Un texte (message d'erreur OU sortie brute de Vite) dénonce-t-il un conflit de port FATAL — c'est-à-dire un port que vite n'a PAS pu prendre ? **Source UNIQUE** de cette décision. Elle était dupliq…"
16901
17291
  },
16902
17292
  "startupTimeoutMessage": {
16903
17293
  "name": "startupTimeoutMessage",
@@ -22172,6 +22562,22 @@
22172
22562
  "module": "@nodefony/drizzle",
22173
22563
  "description": "Ce qu'une migration s'apprête à DÉTRUIRE — constaté avant d'appliquer. ## Pourquoi ce garde existe, alors qu'aucun outil de migration n'en a La question posée était : « faut-il sauvegarder la base …"
22174
22564
  },
22565
+ "rebuiltTables": {
22566
+ "name": "rebuiltTables",
22567
+ "kind": "function",
22568
+ "file": "src/packages/@nodefony/drizzle/nodefony/src/migrator/destructive.ts",
22569
+ "exported": true,
22570
+ "module": "@nodefony/drizzle",
22571
+ "description": "Les tables qu'une migration RECONSTRUIT, par la ronde que SQLite impose. 🔴 **La convention de nommage n'est PAS la règle.** La version précédente cherchait le préfixe `__new_` que produit l'outil …"
22572
+ },
22573
+ "droppedTables": {
22574
+ "name": "droppedTables",
22575
+ "kind": "function",
22576
+ "file": "src/packages/@nodefony/drizzle/nodefony/src/migrator/destructive.ts",
22577
+ "exported": true,
22578
+ "module": "@nodefony/drizzle",
22579
+ "description": "Les tables qu'un SQL SUPPRIME, dans l'ordre où il les nomme. Exportée pour que l'audit de génération et celui d'application lisent la MÊME chose : deux extractions écrites séparément divergeraient,…"
22580
+ },
22175
22581
  "scanDestructive": {
22176
22582
  "name": "scanDestructive",
22177
22583
  "kind": "function",
@@ -24393,6 +24799,23 @@
24393
24799
  "module": "@nodefony/http",
24394
24800
  "description": "Options d'une session (sous-ensemble de `module.options.session`). Cookie-only : plus de `use_trans_sid`/`use_only_cookies` — un identifiant de session ne voyage JAMAIS dans l'URL (OWASP Session Ma…"
24395
24801
  },
24802
+ "ISessionStoreFailure": {
24803
+ "name": "ISessionStoreFailure",
24804
+ "kind": "interface",
24805
+ "file": "src/packages/@nodefony/http/nodefony/src/session/sessionStoreFailure.ts",
24806
+ "exported": true,
24807
+ "module": "@nodefony/http",
24808
+ "extends": null,
24809
+ "description": "Ce qu'on répond quand le stockage de session est inutilisable. Une requête doit TOUJOURS recevoir une réponse. La sauvegarde de session a lieu juste avant l'écriture des en-têtes : une exception qu…"
24810
+ },
24811
+ "describeSessionStoreFailure": {
24812
+ "name": "describeSessionStoreFailure",
24813
+ "kind": "function",
24814
+ "file": "src/packages/@nodefony/http/nodefony/src/session/sessionStoreFailure.ts",
24815
+ "exported": true,
24816
+ "module": "@nodefony/http",
24817
+ "description": "Compose la réponse et le journal d'une panne du stockage de session."
24818
+ },
24396
24819
  "MongooseOrm": {
24397
24820
  "name": "MongooseOrm",
24398
24821
  "kind": "class",
@@ -27790,6 +28213,7 @@
27790
28213
  "BootConfigurationError",
27791
28214
  "RpcError",
27792
28215
  "TimeoutError",
28216
+ "BlindCheckError",
27793
28217
  "ScaffoldDestinationError",
27794
28218
  "EntityFieldError",
27795
28219
  "AgentError",
@@ -27917,6 +28341,7 @@
27917
28341
  "Check",
27918
28342
  "Env",
27919
28343
  "GitHooks",
28344
+ "Image",
27920
28345
  "Inspect",
27921
28346
  "Install",
27922
28347
  "Licenses",
@@ -28523,6 +28948,7 @@
28523
28948
  "src/nodefony/src/kernel/commands/DoctorCommand.ts",
28524
28949
  "src/nodefony/src/kernel/commands/EnvCommand.ts",
28525
28950
  "src/nodefony/src/kernel/commands/GitHooksCommand.ts",
28951
+ "src/nodefony/src/kernel/commands/ImageCommand.ts",
28526
28952
  "src/nodefony/src/kernel/commands/InspectCommand.ts",
28527
28953
  "src/nodefony/src/kernel/commands/InstallCommand.ts",
28528
28954
  "src/nodefony/src/kernel/commands/LicensesCommand.ts",
@@ -29002,6 +29428,12 @@
29002
29428
  "src/nodefony/src/Event.ts",
29003
29429
  "src/nodefony/src/service/dev/DevSupervisor.ts"
29004
29430
  ],
29431
+ "randomUuidV7": [
29432
+ "src/nodefony/src/Nodefony.ts"
29433
+ ],
29434
+ "registerPackageInstance": [
29435
+ "src/nodefony/src/Nodefony.ts"
29436
+ ],
29005
29437
  "IService": [
29006
29438
  "src/nodefony/src/Service.ts",
29007
29439
  "src/nodefony/src/types/IKernel.ts",
@@ -29025,6 +29457,10 @@
29025
29457
  "src/nodefony/src/types/IContainer.ts",
29026
29458
  "src/nodefony/src/types/IService.ts"
29027
29459
  ],
29460
+ "isPackageDuplicated": [
29461
+ "src/nodefony/src/Service.ts",
29462
+ "src/nodefony/src/kernel/Kernel.ts"
29463
+ ],
29028
29464
  "EventDefaultInterface": [
29029
29465
  "src/nodefony/src/Service.ts",
29030
29466
  "src/nodefony/src/types/IService.ts"
@@ -30589,6 +31025,9 @@
30589
31025
  "resolveLocalCli": [
30590
31026
  "src/nodefony/src/bin/nodefony.ts"
30591
31027
  ],
31028
+ "alignArgvWithDelegate": [
31029
+ "src/nodefony/src/bin/nodefony.ts"
31030
+ ],
30592
31031
  "DEBUG_ENV": [
30593
31032
  "src/nodefony/src/bin/nodefony.ts"
30594
31033
  ],
@@ -30651,6 +31090,7 @@
30651
31090
  "src/nodefony/src/cli/env.ts",
30652
31091
  "src/nodefony/src/cli/gitHooks.ts",
30653
31092
  "src/nodefony/src/cli/symbols.ts",
31093
+ "src/nodefony/src/cli/image/index.ts",
30654
31094
  "src/nodefony/src/service/dev/devStatusReport.ts"
30655
31095
  ],
30656
31096
  "printUsageError": [
@@ -30661,7 +31101,8 @@
30661
31101
  "src/nodefony/src/cli/create.ts",
30662
31102
  "src/nodefony/src/cli/env.ts",
30663
31103
  "src/nodefony/src/cli/gitHooks.ts",
30664
- "src/nodefony/src/cli/symbols.ts"
31104
+ "src/nodefony/src/cli/symbols.ts",
31105
+ "src/nodefony/src/cli/image/index.ts"
30665
31106
  ],
30666
31107
  "IUsagePage": [
30667
31108
  "src/nodefony/src/cli/aiMcp.ts",
@@ -30672,6 +31113,7 @@
30672
31113
  "src/nodefony/src/cli/env.ts",
30673
31114
  "src/nodefony/src/cli/gitHooks.ts",
30674
31115
  "src/nodefony/src/cli/symbols.ts",
31116
+ "src/nodefony/src/cli/image/index.ts",
30675
31117
  "src/nodefony/src/cli/scaffold/help.ts",
30676
31118
  "src/nodefony/src/service/dev/devStatusReport.ts"
30677
31119
  ],
@@ -30687,13 +31129,16 @@
30687
31129
  "src/nodefony/src/cli/env.ts",
30688
31130
  "src/nodefony/src/cli/gitHooks.ts",
30689
31131
  "src/nodefony/src/cli/symbols.ts",
31132
+ "src/nodefony/src/kernel/BootConfigurationError.ts",
30690
31133
  "src/nodefony/src/kernel/CliKernel.ts",
30691
31134
  "src/nodefony/src/kernel/Kernel.ts",
31135
+ "src/nodefony/src/cli/image/index.ts",
30692
31136
  "src/nodefony/src/kernel/commands/InspectCommand.ts",
30693
31137
  "src/nodefony/src/kernel/commands/LicensesCommand.ts",
30694
31138
  "src/nodefony/src/kernel/commands/OutdatedCommand.ts",
30695
31139
  "src/nodefony/src/kernel/commands/runtimeLauncher.ts",
30696
31140
  "src/nodefony/src/service/dev/detachedStart.ts",
31141
+ "src/nodefony/src/service/dev/devStatusReport.ts",
30697
31142
  "src/nodefony/src/service/dev/DevSupervisor.ts"
30698
31143
  ],
30699
31144
  "chargePrompts": [
@@ -30805,6 +31250,7 @@
30805
31250
  "src/nodefony/src/cli/env.ts",
30806
31251
  "src/nodefony/src/cli/gitHooks.ts",
30807
31252
  "src/nodefony/src/cli/symbols.ts",
31253
+ "src/nodefony/src/cli/image/index.ts",
30808
31254
  "src/nodefony/src/kernel/checks/runDoctor.ts"
30809
31255
  ],
30810
31256
  "buildCard": [
@@ -30838,6 +31284,12 @@
30838
31284
  "src/nodefony/src/kernel/commands/MenuCommand.ts",
30839
31285
  "src/packages/@nodefony/studio/nodefony/service/ScaffoldService.ts"
30840
31286
  ],
31287
+ "FRONTEND_CHOICES": [
31288
+ "src/nodefony/src/cli/create.ts",
31289
+ "src/nodefony/src/cli/scaffold/engine.ts",
31290
+ "src/nodefony/src/kernel/commands/CreateCommand.ts",
31291
+ "src/packages/@nodefony/frontend/nodefony/service/FrontendService.ts"
31292
+ ],
30841
31293
  "getScaffoldSpec": [
30842
31294
  "src/nodefony/src/cli/create.ts",
30843
31295
  "src/nodefony/src/cli/scaffold/engine.ts",
@@ -30926,6 +31378,9 @@
30926
31378
  "src/nodefony/src/cli/create.ts",
30927
31379
  "src/nodefony/src/kernel/commands/DoctorCommand.ts"
30928
31380
  ],
31381
+ "configInconsistencies": [
31382
+ "src/nodefony/src/cli/env.ts"
31383
+ ],
30929
31384
  "envFileOrder": [
30930
31385
  "src/nodefony/src/cli/env.ts",
30931
31386
  "src/nodefony/src/cli/scaffold/engine.ts"
@@ -31204,6 +31659,7 @@
31204
31659
  "src/nodefony/src/kernel/commands/DoctorCommand.ts",
31205
31660
  "src/nodefony/src/kernel/commands/EnvCommand.ts",
31206
31661
  "src/nodefony/src/kernel/commands/GitHooksCommand.ts",
31662
+ "src/nodefony/src/kernel/commands/ImageCommand.ts",
31207
31663
  "src/nodefony/src/kernel/commands/InspectCommand.ts",
31208
31664
  "src/nodefony/src/kernel/commands/InstallCommand.ts",
31209
31665
  "src/nodefony/src/kernel/commands/LicensesCommand.ts",
@@ -31311,10 +31767,14 @@
31311
31767
  "src/nodefony/src/finder/FileResult.ts",
31312
31768
  "src/nodefony/src/finder/Finder.ts"
31313
31769
  ],
31770
+ "CONFIG_DESCRIPTOR_KEY": [
31771
+ "src/nodefony/src/kernel/bootConfigDiagnosis.ts"
31772
+ ],
31314
31773
  "toImportSpecifier": [
31315
31774
  "src/nodefony/src/kernel/CliKernel.ts",
31316
31775
  "src/nodefony/src/kernel/Kernel.ts",
31317
- "src/nodefony/src/kernel/Module.ts"
31776
+ "src/nodefony/src/kernel/Module.ts",
31777
+ "src/nodefony/src/service/cluster/topology.ts"
31318
31778
  ],
31319
31779
  "CliDefaultOptions": [
31320
31780
  "src/nodefony/src/kernel/CliKernel.ts"
@@ -31452,6 +31912,13 @@
31452
31912
  "src/nodefony/src/kernel/CliKernel.ts",
31453
31913
  "src/nodefony/src/kernel/commands/SymbolsCommand.ts"
31454
31914
  ],
31915
+ "Image": [
31916
+ "src/nodefony/src/kernel/CliKernel.ts"
31917
+ ],
31918
+ "runImageCheckCommand": [
31919
+ "src/nodefony/src/kernel/CliKernel.ts",
31920
+ "src/nodefony/src/kernel/commands/ImageCommand.ts"
31921
+ ],
31455
31922
  "runAiSyncCommand": [
31456
31923
  "src/nodefony/src/kernel/CliKernel.ts",
31457
31924
  "src/nodefony/src/kernel/commands/AiSyncCommand.ts"
@@ -31656,6 +32123,24 @@
31656
32123
  "src/packages/@nodefony/security/nodefony/config/defineModuleConfig.ts",
31657
32124
  "src/packages/@nodefony/user/nodefony/src/userContract.ts"
31658
32125
  ],
32126
+ "listPackageInstances": [
32127
+ "src/nodefony/src/kernel/Kernel.ts"
32128
+ ],
32129
+ "packageDualityReport": [
32130
+ "src/nodefony/src/kernel/Kernel.ts"
32131
+ ],
32132
+ "diagnoseEmptyManifest": [
32133
+ "src/nodefony/src/kernel/Kernel.ts"
32134
+ ],
32135
+ "isForeignDescriptor": [
32136
+ "src/nodefony/src/kernel/Kernel.ts"
32137
+ ],
32138
+ "foreignPackageWarning": [
32139
+ "src/nodefony/src/kernel/Kernel.ts"
32140
+ ],
32141
+ "AppConfigOrigin": [
32142
+ "src/nodefony/src/kernel/Kernel.ts"
32143
+ ],
31659
32144
  "IBootReport": [
31660
32145
  "src/nodefony/src/kernel/Kernel.ts",
31661
32146
  "src/nodefony/src/types/IKernel.ts",
@@ -31967,6 +32452,7 @@
31967
32452
  "src/nodefony/src/kernel/checks/runDoctor.ts",
31968
32453
  "src/nodefony/src/service/dev/detachedStart.ts",
31969
32454
  "src/nodefony/src/service/dev/devProjects.ts",
32455
+ "src/nodefony/src/service/dev/devStatusReport.ts",
31970
32456
  "src/nodefony/src/service/dev/devStop.ts",
31971
32457
  "src/nodefony/src/service/dev/DevSupervisor.ts"
31972
32458
  ],
@@ -32305,6 +32791,18 @@
32305
32791
  "RedisWebAuthnCredentialStore": [
32306
32792
  "src/packages/@nodefony/redis/nodefony/registerStores.ts"
32307
32793
  ],
32794
+ "detectSuspectImageFiles": [
32795
+ "src/nodefony/src/cli/image/index.ts"
32796
+ ],
32797
+ "BlindCheckError": [
32798
+ "src/nodefony/src/cli/image/index.ts"
32799
+ ],
32800
+ "imageContents": [
32801
+ "src/nodefony/src/cli/image/index.ts"
32802
+ ],
32803
+ "saveImage": [
32804
+ "src/nodefony/src/cli/image/index.ts"
32805
+ ],
32308
32806
  "pointeursInstructions": [
32309
32807
  "src/nodefony/src/cli/scaffold/engine.ts"
32310
32808
  ],
@@ -32422,6 +32920,9 @@
32422
32920
  "TPresetChoice": [
32423
32921
  "src/nodefony/src/cli/scaffold/engine.ts"
32424
32922
  ],
32923
+ "openSiblingRoutes": [
32924
+ "src/nodefony/src/cli/scaffold/engine.ts"
32925
+ ],
32425
32926
  "flagFor": [
32426
32927
  "src/nodefony/src/cli/scaffold/help.ts"
32427
32928
  ],
@@ -32785,6 +33286,7 @@
32785
33286
  "src/nodefony/src/kernel/inspect/adminSubjects.ts",
32786
33287
  "src/modules/test/nodefony/admin/TestAdminApi.ts",
32787
33288
  "src/packages/@nodefony/framework/nodefony/controller/AdminApiController.ts",
33289
+ "src/packages/@nodefony/framework/nodefony/src/FrameworkAdminApi.ts",
32788
33290
  "src/packages/@nodefony/framework/nodefony/src/KernelAdminApi.ts",
32789
33291
  "src/packages/@nodefony/framework/nodefony/src/SyslogAdminApi.ts",
32790
33292
  "src/packages/@nodefony/http/nodefony/service/HttpAdminApi.ts",
@@ -32854,6 +33356,13 @@
32854
33356
  "src/nodefony/src/kernel/checks/surface.ts",
32855
33357
  "src/nodefony/src/kernel/checks/wiring.ts"
32856
33358
  ],
33359
+ "resolveEnvCascade": [
33360
+ "src/nodefony/src/kernel/checks/projectScope.ts"
33361
+ ],
33362
+ "checkSurface": [
33363
+ "src/nodefony/src/kernel/checks/projectScope.ts",
33364
+ "src/nodefony/src/kernel/checks/runDoctor.ts"
33365
+ ],
32857
33366
  "buildProjectEnvReport": [
32858
33367
  "src/nodefony/src/kernel/checks/readiness.ts"
32859
33368
  ],
@@ -32945,9 +33454,6 @@
32945
33454
  "readLastBoots": [
32946
33455
  "src/nodefony/src/kernel/checks/runDoctor.ts"
32947
33456
  ],
32948
- "resolveEnvCascade": [
32949
- "src/nodefony/src/kernel/checks/runDoctor.ts"
32950
- ],
32951
33457
  "IInfraProbe": [
32952
33458
  "src/nodefony/src/kernel/checks/runDoctor.ts"
32953
33459
  ],
@@ -32972,7 +33478,10 @@
32972
33478
  "IFreshnessResult": [
32973
33479
  "src/nodefony/src/kernel/checks/runDoctor.ts"
32974
33480
  ],
32975
- "checkSurface": [
33481
+ "appEnvironment": [
33482
+ "src/nodefony/src/kernel/checks/runDoctor.ts"
33483
+ ],
33484
+ "wiringTargets": [
32976
33485
  "src/nodefony/src/kernel/checks/runDoctor.ts"
32977
33486
  ],
32978
33487
  "ISurfaceResult": [
@@ -33031,6 +33540,9 @@
33031
33540
  "src/nodefony/src/kernel/checks/surface.ts",
33032
33541
  "src/nodefony/src/kernel/checks/wiring.ts"
33033
33542
  ],
33543
+ "ROUTE_PATH_RE": [
33544
+ "src/nodefony/src/kernel/checks/wiring.ts"
33545
+ ],
33034
33546
  "reservedFragmentFiles": [
33035
33547
  "src/nodefony/src/kernel/checks/wiring.ts"
33036
33548
  ],
@@ -33049,6 +33561,7 @@
33049
33561
  "src/nodefony/src/kernel/commands/DoctorCommand.ts",
33050
33562
  "src/nodefony/src/kernel/commands/EnvCommand.ts",
33051
33563
  "src/nodefony/src/kernel/commands/GitHooksCommand.ts",
33564
+ "src/nodefony/src/kernel/commands/ImageCommand.ts",
33052
33565
  "src/nodefony/src/kernel/commands/InspectCommand.ts",
33053
33566
  "src/nodefony/src/kernel/commands/InstallCommand.ts",
33054
33567
  "src/nodefony/src/kernel/commands/LicensesCommand.ts",
@@ -33098,9 +33611,6 @@
33098
33611
  "CREATE_TYPES": [
33099
33612
  "src/nodefony/src/kernel/commands/CreateCommand.ts"
33100
33613
  ],
33101
- "FRONTEND_CHOICES": [
33102
- "src/nodefony/src/kernel/commands/CreateCommand.ts"
33103
- ],
33104
33614
  "PRESET_CHOICES": [
33105
33615
  "src/nodefony/src/kernel/commands/CreateCommand.ts"
33106
33616
  ],
@@ -33291,6 +33801,10 @@
33291
33801
  "src/nodefony/src/service/dev/devStop.ts",
33292
33802
  "src/nodefony/src/service/dev/DevSupervisor.ts"
33293
33803
  ],
33804
+ "detectPortShift": [
33805
+ "src/nodefony/src/service/dev/detachedStart.ts",
33806
+ "src/nodefony/src/service/dev/devStatusReport.ts"
33807
+ ],
33294
33808
  "formatForeignRuntimes": [
33295
33809
  "src/nodefony/src/service/dev/detachedStart.ts",
33296
33810
  "src/nodefony/src/service/dev/devStatusReport.ts",
@@ -33360,6 +33874,9 @@
33360
33874
  "DiscoverOptions": [
33361
33875
  "src/nodefony/src/service/dev/devStatusReport.ts"
33362
33876
  ],
33877
+ "PortShift": [
33878
+ "src/nodefony/src/service/dev/devStatusReport.ts"
33879
+ ],
33363
33880
  "buildProjectTable": [
33364
33881
  "src/nodefony/src/service/dev/devStatusReport.ts",
33365
33882
  "src/nodefony/src/service/dev/devStop.ts"
@@ -33398,6 +33915,9 @@
33398
33915
  "missingWorkspaceDists": [
33399
33916
  "src/nodefony/src/service/dev/DevSupervisor.ts"
33400
33917
  ],
33918
+ "readyAnnouncement": [
33919
+ "src/nodefony/src/service/dev/DevSupervisor.ts"
33920
+ ],
33401
33921
  "identifyProcess": [
33402
33922
  "src/nodefony/src/service/dev/DevSupervisor.ts"
33403
33923
  ],
@@ -35529,6 +36049,9 @@
35529
36049
  "writeRuntimeState": [
35530
36050
  "src/packages/@nodefony/http/nodefony/service/http-kernel.ts"
35531
36051
  ],
36052
+ "servedUrl": [
36053
+ "src/packages/@nodefony/http/nodefony/service/http-kernel.ts"
36054
+ ],
35532
36055
  "buildTrustProxy": [
35533
36056
  "src/packages/@nodefony/http/nodefony/service/http-kernel.ts"
35534
36057
  ],
@@ -36797,6 +37320,12 @@
36797
37320
  "introspectFailed": [
36798
37321
  "src/packages/@nodefony/drizzle/nodefony/src/migrator/kit.ts"
36799
37322
  ],
37323
+ "droppedTables": [
37324
+ "src/packages/@nodefony/drizzle/nodefony/src/migrator/kit.ts"
37325
+ ],
37326
+ "rebuiltTables": [
37327
+ "src/packages/@nodefony/drizzle/nodefony/src/migrator/kit.ts"
37328
+ ],
36800
37329
  "knownConnectors": [
36801
37330
  "src/packages/@nodefony/drizzle/nodefony/src/migrator/refusals.ts"
36802
37331
  ],
@@ -37454,6 +37983,9 @@
37454
37983
  "src/packages/@nodefony/http/nodefony/src/context/http/HttpContext.ts",
37455
37984
  "src/packages/@nodefony/http/nodefony/src/context/websocket/WebsocketContext.ts"
37456
37985
  ],
37986
+ "describeSessionStoreFailure": [
37987
+ "src/packages/@nodefony/http/nodefony/src/context/http/HttpContext.ts"
37988
+ ],
37457
37989
  "Cookies": [
37458
37990
  "src/packages/@nodefony/http/nodefony/src/context/http/Request.ts"
37459
37991
  ],