@empire-builder-kit/nx 1.0.0-beta.9 → 1.0.0-rc.2

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 (824) hide show
  1. package/NOTICE +6 -0
  2. package/README.md +113 -3
  3. package/executors.json +30 -0
  4. package/package.json +84 -6
  5. package/src/api-contract/baseline-update.d.ts +82 -0
  6. package/src/api-contract/baseline-update.js +225 -0
  7. package/src/api-contract/baseline-update.js.map +1 -0
  8. package/src/api-contract/compatibility.d.ts +30 -0
  9. package/src/api-contract/compatibility.js +643 -0
  10. package/src/api-contract/compatibility.js.map +1 -0
  11. package/src/api-contract/contract-graph.d.ts +35 -0
  12. package/src/api-contract/contract-graph.js +141 -0
  13. package/src/api-contract/contract-graph.js.map +1 -0
  14. package/src/api-contract/evidence.d.ts +23 -0
  15. package/src/api-contract/evidence.js +87 -0
  16. package/src/api-contract/evidence.js.map +1 -0
  17. package/src/api-contract/index.d.ts +6 -0
  18. package/src/api-contract/index.js +10 -0
  19. package/src/api-contract/index.js.map +1 -0
  20. package/src/api-contract/model.d.ts +144 -0
  21. package/src/api-contract/model.fixtures.d.ts +2 -0
  22. package/src/api-contract/model.fixtures.js +81 -0
  23. package/src/api-contract/model.fixtures.js.map +1 -0
  24. package/src/api-contract/model.js +993 -0
  25. package/src/api-contract/model.js.map +1 -0
  26. package/src/api-contract/rollout.d.ts +32 -0
  27. package/src/api-contract/rollout.js +88 -0
  28. package/src/api-contract/rollout.js.map +1 -0
  29. package/src/authorization/compatibility.d.ts +62 -0
  30. package/src/authorization/compatibility.js +175 -0
  31. package/src/authorization/compatibility.js.map +1 -0
  32. package/src/authorization/index.d.ts +1 -0
  33. package/src/authorization/index.js +5 -0
  34. package/src/authorization/index.js.map +1 -0
  35. package/src/blueprints/execution.d.ts +25 -1
  36. package/src/blueprints/execution.js +246 -83
  37. package/src/blueprints/execution.js.map +1 -1
  38. package/src/blueprints/external-sandbox.d.ts +53 -0
  39. package/src/blueprints/external-sandbox.js +1182 -0
  40. package/src/blueprints/external-sandbox.js.map +1 -0
  41. package/src/blueprints/manifest.d.ts +42 -2
  42. package/src/blueprints/manifest.js +82 -27
  43. package/src/blueprints/manifest.js.map +1 -1
  44. package/src/blueprints/resolver.d.ts +14 -5
  45. package/src/blueprints/resolver.js +228 -68
  46. package/src/blueprints/resolver.js.map +1 -1
  47. package/src/cli/agent-command.d.ts +30 -0
  48. package/src/cli/agent-command.js +204 -0
  49. package/src/cli/agent-command.js.map +1 -0
  50. package/src/cli/agent-runtime.d.ts +25 -0
  51. package/src/cli/agent-runtime.js +488 -0
  52. package/src/cli/agent-runtime.js.map +1 -0
  53. package/src/cli/blueprint-authority.d.ts +9 -0
  54. package/src/cli/blueprint-authority.js +43 -0
  55. package/src/cli/blueprint-authority.js.map +1 -0
  56. package/src/cli/blueprint-command.d.ts +24 -0
  57. package/src/cli/blueprint-command.js +63 -0
  58. package/src/cli/blueprint-command.js.map +1 -0
  59. package/src/cli/bootstrap.d.ts +31 -0
  60. package/src/cli/bootstrap.js +165 -0
  61. package/src/cli/bootstrap.js.map +1 -0
  62. package/src/cli/dev-command.d.ts +92 -0
  63. package/src/cli/dev-command.js +561 -0
  64. package/src/cli/dev-command.js.map +1 -0
  65. package/src/cli/main.d.ts +131 -0
  66. package/src/cli/main.js +1199 -0
  67. package/src/cli/main.js.map +1 -0
  68. package/src/cli/output.d.ts +19 -0
  69. package/src/cli/output.js +51 -0
  70. package/src/cli/output.js.map +1 -0
  71. package/src/cli/personal-secret-runtime.d.ts +81 -0
  72. package/src/cli/personal-secret-runtime.js +567 -0
  73. package/src/cli/personal-secret-runtime.js.map +1 -0
  74. package/src/cli/secret-terminal.d.ts +12 -0
  75. package/src/cli/secret-terminal.js +128 -0
  76. package/src/cli/secret-terminal.js.map +1 -0
  77. package/src/container-images.d.ts +1 -0
  78. package/src/container-images.js +5 -0
  79. package/src/container-images.js.map +1 -0
  80. package/src/data-lifecycle/index.d.ts +3 -0
  81. package/src/data-lifecycle/index.js +7 -0
  82. package/src/data-lifecycle/index.js.map +1 -0
  83. package/src/data-lifecycle/model.d.ts +172 -0
  84. package/src/data-lifecycle/model.fixtures.d.ts +2 -0
  85. package/src/data-lifecycle/model.fixtures.js +244 -0
  86. package/src/data-lifecycle/model.fixtures.js.map +1 -0
  87. package/src/data-lifecycle/model.js +95 -0
  88. package/src/data-lifecycle/model.js.map +1 -0
  89. package/src/data-lifecycle/sensitive-artifacts.d.ts +28 -0
  90. package/src/data-lifecycle/sensitive-artifacts.js +146 -0
  91. package/src/data-lifecycle/sensitive-artifacts.js.map +1 -0
  92. package/src/data-lifecycle/validation.d.ts +32 -0
  93. package/src/data-lifecycle/validation.js +837 -0
  94. package/src/data-lifecycle/validation.js.map +1 -0
  95. package/src/database-retirement/contract.d.ts +68 -0
  96. package/src/database-retirement/contract.js +166 -0
  97. package/src/database-retirement/contract.js.map +1 -0
  98. package/src/database-retirement/index.d.ts +1 -0
  99. package/src/database-retirement/index.js +5 -0
  100. package/src/database-retirement/index.js.map +1 -0
  101. package/src/deterministic-order.d.ts +2 -0
  102. package/src/deterministic-order.js +7 -0
  103. package/src/deterministic-order.js.map +1 -0
  104. package/src/developer-agent/context.d.ts +27 -0
  105. package/src/developer-agent/context.js +497 -0
  106. package/src/developer-agent/context.js.map +1 -0
  107. package/src/developer-agent/generator-planning.d.ts +34 -0
  108. package/src/developer-agent/generator-planning.js +645 -0
  109. package/src/developer-agent/generator-planning.js.map +1 -0
  110. package/src/developer-agent/generator-preview.d.ts +8 -0
  111. package/src/developer-agent/generator-preview.js +650 -0
  112. package/src/developer-agent/generator-preview.js.map +1 -0
  113. package/src/developer-agent/git-inspection.d.ts +108 -0
  114. package/src/developer-agent/git-inspection.js +815 -0
  115. package/src/developer-agent/git-inspection.js.map +1 -0
  116. package/src/developer-agent/handoff.d.ts +43 -0
  117. package/src/developer-agent/handoff.js +698 -0
  118. package/src/developer-agent/handoff.js.map +1 -0
  119. package/src/developer-agent/index.d.ts +10 -0
  120. package/src/developer-agent/index.js +14 -0
  121. package/src/developer-agent/index.js.map +1 -0
  122. package/src/developer-agent/model.d.ts +481 -0
  123. package/src/developer-agent/model.js +143 -0
  124. package/src/developer-agent/model.js.map +1 -0
  125. package/src/developer-agent/operation-registry.d.ts +45 -0
  126. package/src/developer-agent/operation-registry.js +1255 -0
  127. package/src/developer-agent/operation-registry.js.map +1 -0
  128. package/src/developer-agent/ordering.d.ts +9 -0
  129. package/src/developer-agent/ordering.js +15 -0
  130. package/src/developer-agent/ordering.js.map +1 -0
  131. package/src/developer-agent/planning.d.ts +18 -0
  132. package/src/developer-agent/planning.js +447 -0
  133. package/src/developer-agent/planning.js.map +1 -0
  134. package/src/developer-agent/preview-changes.d.ts +26 -0
  135. package/src/developer-agent/preview-changes.js +203 -0
  136. package/src/developer-agent/preview-changes.js.map +1 -0
  137. package/src/developer-agent/preview-source.d.ts +2 -0
  138. package/src/developer-agent/preview-source.js +16 -0
  139. package/src/developer-agent/preview-source.js.map +1 -0
  140. package/src/developer-agent/validation.d.ts +18 -0
  141. package/src/developer-agent/validation.js +2617 -0
  142. package/src/developer-agent/validation.js.map +1 -0
  143. package/src/developer-agent/workspace-inspection.d.ts +20 -0
  144. package/src/developer-agent/workspace-inspection.js +1134 -0
  145. package/src/developer-agent/workspace-inspection.js.map +1 -0
  146. package/src/developer-agent/workspace-path.d.ts +6 -0
  147. package/src/developer-agent/workspace-path.js +22 -0
  148. package/src/developer-agent/workspace-path.js.map +1 -0
  149. package/src/executors/blueprint-trust/blueprint-trust.d.ts +29 -0
  150. package/src/executors/blueprint-trust/blueprint-trust.js +115 -0
  151. package/src/executors/blueprint-trust/blueprint-trust.js.map +1 -0
  152. package/src/executors/blueprint-trust/schema.json +27 -0
  153. package/src/executors/blueprint-verification/blueprint-verification.d.ts +13 -0
  154. package/src/executors/blueprint-verification/blueprint-verification.js +110 -0
  155. package/src/executors/blueprint-verification/blueprint-verification.js.map +1 -0
  156. package/src/executors/blueprint-verification/schema.json +44 -0
  157. package/src/executors/deployment-plan/deployment-plan.js +1 -0
  158. package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
  159. package/src/executors/dev-doctor/dev-doctor.d.ts +19 -5
  160. package/src/executors/dev-doctor/dev-doctor.js +186 -32
  161. package/src/executors/dev-doctor/dev-doctor.js.map +1 -1
  162. package/src/executors/dev-doctor/schema.json +1 -6
  163. package/src/executors/dev-setup/dev-setup.d.ts +7 -1
  164. package/src/executors/dev-setup/dev-setup.js +14 -3
  165. package/src/executors/dev-setup/dev-setup.js.map +1 -1
  166. package/src/executors/developer-context/developer-context.d.ts +38 -0
  167. package/src/executors/developer-context/developer-context.js +78 -0
  168. package/src/executors/developer-context/developer-context.js.map +1 -0
  169. package/src/executors/developer-context/schema.json +87 -0
  170. package/src/executors/fleet/fleet.d.ts +12 -43
  171. package/src/executors/fleet/fleet.js +120 -500
  172. package/src/executors/fleet/fleet.js.map +1 -1
  173. package/src/executors/fleet/schema.json +64 -14
  174. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  175. package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
  176. package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
  177. package/src/executors/github-bootstrap/schema.json +5 -0
  178. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +144 -0
  179. package/src/executors/infrastructure-plan/infrastructure-plan.js +3320 -0
  180. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -0
  181. package/src/executors/infrastructure-plan/schema.json +78 -0
  182. package/src/executors/secret-guardrails/schema.json +6 -0
  183. package/src/executors/secret-guardrails/secret-guardrails.d.ts +3 -0
  184. package/src/executors/secret-guardrails/secret-guardrails.js +44 -0
  185. package/src/executors/secret-guardrails/secret-guardrails.js.map +1 -0
  186. package/src/executors/secret-metadata/schema.json +31 -0
  187. package/src/executors/secret-metadata/secret-metadata.d.ts +32 -0
  188. package/src/executors/secret-metadata/secret-metadata.js +131 -0
  189. package/src/executors/secret-metadata/secret-metadata.js.map +1 -0
  190. package/src/executors/sst-lifecycle/logging-preflight.d.ts +17 -0
  191. package/src/executors/sst-lifecycle/logging-preflight.js +196 -0
  192. package/src/executors/sst-lifecycle/logging-preflight.js.map +1 -0
  193. package/src/executors/sst-lifecycle/run-sst-command.d.ts +23 -3
  194. package/src/executors/sst-lifecycle/run-sst-command.js +113 -10
  195. package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
  196. package/src/executors/sst-lifecycle/schema.json +9 -5
  197. package/src/executors/sst-lifecycle/secret-preflight.d.ts +25 -0
  198. package/src/executors/sst-lifecycle/secret-preflight.js +119 -0
  199. package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -0
  200. package/src/foundation/discovery.d.ts +17 -1
  201. package/src/foundation/discovery.js +16 -1
  202. package/src/foundation/discovery.js.map +1 -1
  203. package/src/foundation/index.d.ts +3 -0
  204. package/src/foundation/index.js +3 -0
  205. package/src/foundation/index.js.map +1 -1
  206. package/src/foundation/local-database-contract.d.ts +1 -0
  207. package/src/foundation/local-database-contract.js +3 -0
  208. package/src/foundation/local-database-contract.js.map +1 -1
  209. package/src/foundation/logging-preflight.d.ts +30 -0
  210. package/src/foundation/logging-preflight.js +138 -0
  211. package/src/foundation/logging-preflight.js.map +1 -0
  212. package/src/foundation/logging.d.ts +70 -0
  213. package/src/foundation/logging.js +133 -0
  214. package/src/foundation/logging.js.map +1 -0
  215. package/src/foundation/preflight.d.ts +9 -0
  216. package/src/foundation/preflight.js +58 -2
  217. package/src/foundation/preflight.js.map +1 -1
  218. package/src/foundation/provision-database-bindings.d.ts +9 -1
  219. package/src/foundation/provision-database-bindings.js +25 -5
  220. package/src/foundation/provision-database-bindings.js.map +1 -1
  221. package/src/foundation/provision-logical-database.d.ts +10 -2
  222. package/src/foundation/provision-logical-database.js +68 -113
  223. package/src/foundation/provision-logical-database.js.map +1 -1
  224. package/src/foundation/router-origin-proof.d.ts +2 -0
  225. package/src/foundation/router-origin-proof.js +25 -0
  226. package/src/foundation/router-origin-proof.js.map +1 -0
  227. package/src/foundation/stages.d.ts +1 -0
  228. package/src/foundation/stages.js +9 -1
  229. package/src/foundation/stages.js.map +1 -1
  230. package/src/frontend-security/index.d.ts +1 -0
  231. package/src/frontend-security/index.js +5 -0
  232. package/src/frontend-security/index.js.map +1 -0
  233. package/src/frontend-security/security-headers.d.ts +50 -0
  234. package/src/frontend-security/security-headers.js +418 -0
  235. package/src/frontend-security/security-headers.js.map +1 -0
  236. package/src/generators/feature-registry.d.ts +13 -0
  237. package/src/generators/feature-registry.js +73 -0
  238. package/src/generators/feature-registry.js.map +1 -0
  239. package/src/generators/function/function.d.ts +1 -1
  240. package/src/generators/function/function.js +51 -6
  241. package/src/generators/function/function.js.map +1 -1
  242. package/src/generators/function/schema.d.ts +1 -0
  243. package/src/generators/function/schema.json +6 -1
  244. package/src/generators/logging-registry.d.ts +13 -0
  245. package/src/generators/logging-registry.js +62 -0
  246. package/src/generators/logging-registry.js.map +1 -0
  247. package/src/generators/post-generation-install.d.ts +67 -0
  248. package/src/generators/post-generation-install.js +3308 -0
  249. package/src/generators/post-generation-install.js.map +1 -0
  250. package/src/generators/preset/generator.js +3 -0
  251. package/src/generators/preset/generator.js.map +1 -1
  252. package/src/generators/preset/tool-versions.d.ts +18 -0
  253. package/src/generators/preset/tool-versions.js +22 -0
  254. package/src/generators/preset/tool-versions.js.map +1 -0
  255. package/src/generators/preset/workspace-files-developer-agent.d.ts +14 -0
  256. package/src/generators/preset/workspace-files-developer-agent.js +511 -0
  257. package/src/generators/preset/workspace-files-developer-agent.js.map +1 -0
  258. package/src/generators/preset/workspace-files-foundation-workload-roles.d.ts +6 -0
  259. package/src/generators/preset/workspace-files-foundation-workload-roles.js +406 -0
  260. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +1 -0
  261. package/src/generators/preset/workspace-files-performance-cost.d.ts +66 -0
  262. package/src/generators/preset/workspace-files-performance-cost.js +866 -0
  263. package/src/generators/preset/workspace-files-performance-cost.js.map +1 -0
  264. package/src/generators/preset/workspace-files-performance-load.d.ts +73 -0
  265. package/src/generators/preset/workspace-files-performance-load.js +801 -0
  266. package/src/generators/preset/workspace-files-performance-load.js.map +1 -0
  267. package/src/generators/preset/workspace-files-workload-role-baseline.d.ts +9 -0
  268. package/src/generators/preset/workspace-files-workload-role-baseline.js +1102 -0
  269. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +1 -0
  270. package/src/generators/preset/workspace-files.d.ts +14 -1
  271. package/src/generators/preset/workspace-files.js +8189 -245
  272. package/src/generators/preset/workspace-files.js.map +1 -1
  273. package/src/generators/repository-policy/repository-policy.js +3 -47
  274. package/src/generators/repository-policy/repository-policy.js.map +1 -1
  275. package/src/generators/slice/built-in-plan-api-contract-files.d.ts +2 -0
  276. package/src/generators/slice/built-in-plan-api-contract-files.js +2656 -0
  277. package/src/generators/slice/built-in-plan-api-contract-files.js.map +1 -0
  278. package/src/generators/slice/built-in-plan-api-files.d.ts +2 -0
  279. package/src/generators/slice/built-in-plan-api-files.js +1186 -0
  280. package/src/generators/slice/built-in-plan-api-files.js.map +1 -0
  281. package/src/generators/slice/built-in-plan-async-work-files.d.ts +2 -0
  282. package/src/generators/slice/built-in-plan-async-work-files.js +7903 -0
  283. package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -0
  284. package/src/generators/slice/built-in-plan-authorization-files.d.ts +2 -0
  285. package/src/generators/slice/built-in-plan-authorization-files.js +2314 -0
  286. package/src/generators/slice/built-in-plan-authorization-files.js.map +1 -0
  287. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.d.ts +2 -0
  288. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +559 -0
  289. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -0
  290. package/src/generators/slice/built-in-plan-data-deletion-files.d.ts +2 -0
  291. package/src/generators/slice/built-in-plan-data-deletion-files.js +1101 -0
  292. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +1 -0
  293. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.d.ts +2 -0
  294. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +249 -0
  295. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -0
  296. package/src/generators/slice/built-in-plan-data-files.d.ts +2 -0
  297. package/src/generators/slice/built-in-plan-data-files.js +1530 -0
  298. package/src/generators/slice/built-in-plan-data-files.js.map +1 -0
  299. package/src/generators/slice/built-in-plan-data-lifecycle-files.d.ts +2 -0
  300. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +750 -0
  301. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +1 -0
  302. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.d.ts +2 -0
  303. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +828 -0
  304. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -0
  305. package/src/generators/slice/built-in-plan-data-retention-job-files.d.ts +2 -0
  306. package/src/generators/slice/built-in-plan-data-retention-job-files.js +2604 -0
  307. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +1 -0
  308. package/src/generators/slice/built-in-plan-data-retention-launcher-files.d.ts +2 -0
  309. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +144 -0
  310. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -0
  311. package/src/generators/slice/built-in-plan-data-rights-files.d.ts +2 -0
  312. package/src/generators/slice/built-in-plan-data-rights-files.js +4628 -0
  313. package/src/generators/slice/built-in-plan-data-rights-files.js.map +1 -0
  314. package/src/generators/slice/built-in-plan-database-lifecycle-files.d.ts +2 -0
  315. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +1901 -0
  316. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -0
  317. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.d.ts +2 -0
  318. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +485 -0
  319. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -0
  320. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -0
  321. package/src/generators/slice/built-in-plan-foundation-files.js +184 -0
  322. package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -0
  323. package/src/generators/slice/built-in-plan-frontend-files.d.ts +2 -0
  324. package/src/generators/slice/built-in-plan-frontend-files.js +2233 -0
  325. package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -0
  326. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +2 -0
  327. package/src/generators/slice/built-in-plan-infrastructure-files.js +3038 -0
  328. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -0
  329. package/src/generators/slice/built-in-plan-infrastructure-safety-files.d.ts +2 -0
  330. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +312 -0
  331. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +1 -0
  332. package/src/generators/slice/built-in-plan-metadata-files.d.ts +3 -0
  333. package/src/generators/slice/built-in-plan-metadata-files.js +219 -0
  334. package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -0
  335. package/src/generators/slice/built-in-plan-operations-files.d.ts +2 -0
  336. package/src/generators/slice/built-in-plan-operations-files.js +630 -0
  337. package/src/generators/slice/built-in-plan-operations-files.js.map +1 -0
  338. package/src/generators/slice/built-in-plan-performance-files.d.ts +3 -0
  339. package/src/generators/slice/built-in-plan-performance-files.js +3293 -0
  340. package/src/generators/slice/built-in-plan-performance-files.js.map +1 -0
  341. package/src/generators/slice/built-in-plan-project-files.d.ts +3 -0
  342. package/src/generators/slice/built-in-plan-project-files.js +979 -0
  343. package/src/generators/slice/built-in-plan-project-files.js.map +1 -0
  344. package/src/generators/slice/built-in-plan-release-files.d.ts +2 -0
  345. package/src/generators/slice/built-in-plan-release-files.js +6387 -0
  346. package/src/generators/slice/built-in-plan-release-files.js.map +1 -0
  347. package/src/generators/slice/built-in-plan-reliability-files.d.ts +2 -0
  348. package/src/generators/slice/built-in-plan-reliability-files.js +4499 -0
  349. package/src/generators/slice/built-in-plan-reliability-files.js.map +1 -0
  350. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +2 -0
  351. package/src/generators/slice/built-in-plan-secret-runtime-files.js +1004 -0
  352. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -0
  353. package/src/generators/slice/built-in-plan-shared.d.ts +53 -0
  354. package/src/generators/slice/built-in-plan-shared.js +113 -0
  355. package/src/generators/slice/built-in-plan-shared.js.map +1 -0
  356. package/src/generators/slice/built-in-plan-testing-files.d.ts +2 -0
  357. package/src/generators/slice/built-in-plan-testing-files.js +2356 -0
  358. package/src/generators/slice/built-in-plan-testing-files.js.map +1 -0
  359. package/src/generators/slice/built-in-plan-verification-files.d.ts +2 -0
  360. package/src/generators/slice/built-in-plan-verification-files.js +358 -0
  361. package/src/generators/slice/built-in-plan-verification-files.js.map +1 -0
  362. package/src/generators/slice/built-in-plan-web-files.d.ts +2 -0
  363. package/src/generators/slice/built-in-plan-web-files.js +430 -0
  364. package/src/generators/slice/built-in-plan-web-files.js.map +1 -0
  365. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +2 -0
  366. package/src/generators/slice/built-in-plan-workload-role-files.js +2356 -0
  367. package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -0
  368. package/src/generators/slice/built-in-plan.d.ts +8 -0
  369. package/src/generators/slice/built-in-plan.js +264 -0
  370. package/src/generators/slice/built-in-plan.js.map +1 -0
  371. package/src/generators/slice/schema.json +1 -1
  372. package/src/generators/slice/slice.d.ts +1 -22
  373. package/src/generators/slice/slice.js +185 -1510
  374. package/src/generators/slice/slice.js.map +1 -1
  375. package/src/generators/upgrade/schema.d.ts +2 -0
  376. package/src/generators/upgrade/schema.json +11 -1
  377. package/src/generators/upgrade/upgrade.d.ts +51 -1
  378. package/src/generators/upgrade/upgrade.js +820 -82
  379. package/src/generators/upgrade/upgrade.js.map +1 -1
  380. package/src/generators/workload/frozen-container.d.ts +8 -0
  381. package/src/generators/workload/frozen-container.js +36 -0
  382. package/src/generators/workload/frozen-container.js.map +1 -0
  383. package/src/generators/workload/performance-registration.d.ts +32 -0
  384. package/src/generators/workload/performance-registration.js +226 -0
  385. package/src/generators/workload/performance-registration.js.map +1 -0
  386. package/src/generators/workload/reliability-registration.d.ts +16 -0
  387. package/src/generators/workload/reliability-registration.js +150 -0
  388. package/src/generators/workload/reliability-registration.js.map +1 -0
  389. package/src/generators/workload/schema.d.ts +1 -0
  390. package/src/generators/workload/schema.json +6 -1
  391. package/src/generators/workload/service-performance-files.d.ts +4 -0
  392. package/src/generators/workload/service-performance-files.js +1846 -0
  393. package/src/generators/workload/service-performance-files.js.map +1 -0
  394. package/src/generators/workload/workload.d.ts +3 -2
  395. package/src/generators/workload/workload.js +1083 -18
  396. package/src/generators/workload/workload.js.map +1 -1
  397. package/src/git-policy/action-pins.d.ts +10 -0
  398. package/src/git-policy/action-pins.js +10 -0
  399. package/src/git-policy/action-pins.js.map +1 -1
  400. package/src/git-policy/github-bootstrap.d.ts +14 -1
  401. package/src/git-policy/github-bootstrap.js +274 -46
  402. package/src/git-policy/github-bootstrap.js.map +1 -1
  403. package/src/index.d.ts +2 -0
  404. package/src/index.js +2 -0
  405. package/src/index.js.map +1 -1
  406. package/src/infrastructure-change/convergence.d.ts +13 -0
  407. package/src/infrastructure-change/convergence.js +85 -0
  408. package/src/infrastructure-change/convergence.js.map +1 -0
  409. package/src/infrastructure-change/drift.d.ts +13 -0
  410. package/src/infrastructure-change/drift.js +112 -0
  411. package/src/infrastructure-change/drift.js.map +1 -0
  412. package/src/infrastructure-change/index.d.ts +7 -0
  413. package/src/infrastructure-change/index.js +11 -0
  414. package/src/infrastructure-change/index.js.map +1 -0
  415. package/src/infrastructure-change/model.d.ts +253 -0
  416. package/src/infrastructure-change/model.js +28 -0
  417. package/src/infrastructure-change/model.js.map +1 -0
  418. package/src/infrastructure-change/normalize.d.ts +12 -0
  419. package/src/infrastructure-change/normalize.js +245 -0
  420. package/src/infrastructure-change/normalize.js.map +1 -0
  421. package/src/infrastructure-change/plan.d.ts +40 -0
  422. package/src/infrastructure-change/plan.js +361 -0
  423. package/src/infrastructure-change/plan.js.map +1 -0
  424. package/src/infrastructure-change/risk.d.ts +7 -0
  425. package/src/infrastructure-change/risk.js +269 -0
  426. package/src/infrastructure-change/risk.js.map +1 -0
  427. package/src/infrastructure-change/summary.d.ts +20 -0
  428. package/src/infrastructure-change/summary.js +130 -0
  429. package/src/infrastructure-change/summary.js.map +1 -0
  430. package/src/local-dev/context-discovery.d.ts +2 -0
  431. package/src/local-dev/context-discovery.js +59 -0
  432. package/src/local-dev/context-discovery.js.map +1 -0
  433. package/src/local-dev/contract-validation.d.ts +15 -0
  434. package/src/local-dev/contract-validation.js +84 -0
  435. package/src/local-dev/contract-validation.js.map +1 -0
  436. package/src/local-dev/contracts.d.ts +10 -1
  437. package/src/local-dev/contracts.js +57 -5
  438. package/src/local-dev/contracts.js.map +1 -1
  439. package/src/local-dev/control-contract.d.ts +67 -0
  440. package/src/local-dev/control-contract.js +180 -0
  441. package/src/local-dev/control-contract.js.map +1 -0
  442. package/src/local-dev/dev-command-core.d.ts +60 -0
  443. package/src/local-dev/dev-command-core.js +89 -0
  444. package/src/local-dev/dev-command-core.js.map +1 -0
  445. package/src/local-dev/effects.d.ts +16 -0
  446. package/src/local-dev/effects.js +63 -0
  447. package/src/local-dev/effects.js.map +1 -0
  448. package/src/local-dev/environment-inspector.d.ts +125 -0
  449. package/src/local-dev/environment-inspector.js +687 -0
  450. package/src/local-dev/environment-inspector.js.map +1 -0
  451. package/src/local-dev/environment-state.d.ts +113 -0
  452. package/src/local-dev/environment-state.js +463 -0
  453. package/src/local-dev/environment-state.js.map +1 -0
  454. package/src/local-dev/errors.d.ts +6 -0
  455. package/src/local-dev/errors.js +41 -0
  456. package/src/local-dev/errors.js.map +1 -0
  457. package/src/local-dev/fleet-client.d.ts +33 -0
  458. package/src/local-dev/fleet-client.js +156 -0
  459. package/src/local-dev/fleet-client.js.map +1 -0
  460. package/src/local-dev/fleet-configuration.d.ts +13 -0
  461. package/src/local-dev/fleet-configuration.js +71 -0
  462. package/src/local-dev/fleet-configuration.js.map +1 -0
  463. package/src/local-dev/fleet-inventory.d.ts +56 -0
  464. package/src/local-dev/fleet-inventory.js +469 -0
  465. package/src/local-dev/fleet-inventory.js.map +1 -0
  466. package/src/local-dev/fleet-ipc.d.ts +28 -0
  467. package/src/local-dev/fleet-ipc.js +267 -0
  468. package/src/local-dev/fleet-ipc.js.map +1 -0
  469. package/src/local-dev/fleet-launcher.d.ts +53 -0
  470. package/src/local-dev/fleet-launcher.js +379 -0
  471. package/src/local-dev/fleet-launcher.js.map +1 -0
  472. package/src/local-dev/fleet-lock.d.ts +41 -0
  473. package/src/local-dev/fleet-lock.js +135 -0
  474. package/src/local-dev/fleet-lock.js.map +1 -0
  475. package/src/local-dev/fleet-logs.d.ts +66 -0
  476. package/src/local-dev/fleet-logs.js +542 -0
  477. package/src/local-dev/fleet-logs.js.map +1 -0
  478. package/src/local-dev/fleet-process.d.ts +50 -0
  479. package/src/local-dev/fleet-process.js +289 -0
  480. package/src/local-dev/fleet-process.js.map +1 -0
  481. package/src/local-dev/fleet-runtime.d.ts +22 -0
  482. package/src/local-dev/fleet-runtime.js +368 -0
  483. package/src/local-dev/fleet-runtime.js.map +1 -0
  484. package/src/local-dev/fleet-session.d.ts +70 -0
  485. package/src/local-dev/fleet-session.js +301 -0
  486. package/src/local-dev/fleet-session.js.map +1 -0
  487. package/src/local-dev/fleet-slice-runner-daemon.d.ts +1 -0
  488. package/src/local-dev/fleet-slice-runner-daemon.js +21 -0
  489. package/src/local-dev/fleet-slice-runner-daemon.js.map +1 -0
  490. package/src/local-dev/fleet-startup.d.ts +22 -0
  491. package/src/local-dev/fleet-startup.js +114 -0
  492. package/src/local-dev/fleet-startup.js.map +1 -0
  493. package/src/local-dev/fleet-state.d.ts +62 -0
  494. package/src/local-dev/fleet-state.js +297 -0
  495. package/src/local-dev/fleet-state.js.map +1 -0
  496. package/src/local-dev/fleet-supervisor-daemon.d.ts +1 -0
  497. package/src/local-dev/fleet-supervisor-daemon.js +41 -0
  498. package/src/local-dev/fleet-supervisor-daemon.js.map +1 -0
  499. package/src/local-dev/fleet-supervisor.d.ts +52 -0
  500. package/src/local-dev/fleet-supervisor.js +384 -0
  501. package/src/local-dev/fleet-supervisor.js.map +1 -0
  502. package/src/local-dev/gateway.js +1 -1
  503. package/src/local-dev/gateway.js.map +1 -1
  504. package/src/local-dev/identity.js +4 -6
  505. package/src/local-dev/identity.js.map +1 -1
  506. package/src/local-dev/index.d.ts +1 -0
  507. package/src/local-dev/index.js +1 -0
  508. package/src/local-dev/index.js.map +1 -1
  509. package/src/local-dev/local-context.d.ts +62 -0
  510. package/src/local-dev/local-context.js +299 -0
  511. package/src/local-dev/local-context.js.map +1 -0
  512. package/src/local-dev/nx-workspace.d.ts +45 -0
  513. package/src/local-dev/nx-workspace.js +228 -0
  514. package/src/local-dev/nx-workspace.js.map +1 -0
  515. package/src/local-dev/personal-secret-ledger.d.ts +75 -0
  516. package/src/local-dev/personal-secret-ledger.js +391 -0
  517. package/src/local-dev/personal-secret-ledger.js.map +1 -0
  518. package/src/local-dev/personal-stage.d.ts +18 -0
  519. package/src/local-dev/personal-stage.js +129 -0
  520. package/src/local-dev/personal-stage.js.map +1 -0
  521. package/src/local-dev/private-state.d.ts +17 -0
  522. package/src/local-dev/private-state.js +254 -0
  523. package/src/local-dev/private-state.js.map +1 -0
  524. package/src/local-dev/process-identity.d.ts +9 -0
  525. package/src/local-dev/process-identity.js +79 -0
  526. package/src/local-dev/process-identity.js.map +1 -0
  527. package/src/local-dev/runtime-paths.d.ts +17 -0
  528. package/src/local-dev/runtime-paths.js +33 -0
  529. package/src/local-dev/runtime-paths.js.map +1 -0
  530. package/src/local-dev/secret-slice-claim.d.ts +17 -0
  531. package/src/local-dev/secret-slice-claim.js +75 -0
  532. package/src/local-dev/secret-slice-claim.js.map +1 -0
  533. package/src/local-dev/slice-claim.d.ts +36 -0
  534. package/src/local-dev/slice-claim.js +199 -0
  535. package/src/local-dev/slice-claim.js.map +1 -0
  536. package/src/local-dev/slice-runner.d.ts +121 -0
  537. package/src/local-dev/slice-runner.js +715 -0
  538. package/src/local-dev/slice-runner.js.map +1 -0
  539. package/src/local-dev/tls.js +51 -17
  540. package/src/local-dev/tls.js.map +1 -1
  541. package/src/ownership/composition.d.ts +5 -2
  542. package/src/ownership/composition.js +26 -3
  543. package/src/ownership/composition.js.map +1 -1
  544. package/src/ownership/hash.d.ts +1 -1
  545. package/src/ownership/hash.js +3 -1
  546. package/src/ownership/hash.js.map +1 -1
  547. package/src/ownership/record.d.ts +32 -1
  548. package/src/ownership/record.js +139 -2
  549. package/src/ownership/record.js.map +1 -1
  550. package/src/performance/cost-collection.d.ts +225 -0
  551. package/src/performance/cost-collection.js +825 -0
  552. package/src/performance/cost-collection.js.map +1 -0
  553. package/src/performance/cost-controls.d.ts +131 -0
  554. package/src/performance/cost-controls.js +336 -0
  555. package/src/performance/cost-controls.js.map +1 -0
  556. package/src/performance/evidence.d.ts +140 -0
  557. package/src/performance/evidence.js +599 -0
  558. package/src/performance/evidence.js.map +1 -0
  559. package/src/performance/index.d.ts +10 -0
  560. package/src/performance/index.js +14 -0
  561. package/src/performance/index.js.map +1 -0
  562. package/src/performance/load-safety.d.ts +84 -0
  563. package/src/performance/load-safety.js +346 -0
  564. package/src/performance/load-safety.js.map +1 -0
  565. package/src/performance/model.d.ts +129 -0
  566. package/src/performance/model.js +452 -0
  567. package/src/performance/model.js.map +1 -0
  568. package/src/performance/pr-artifact-budget.d.ts +42 -0
  569. package/src/performance/pr-artifact-budget.js +151 -0
  570. package/src/performance/pr-artifact-budget.js.map +1 -0
  571. package/src/performance/runner.d.ts +75 -0
  572. package/src/performance/runner.js +227 -0
  573. package/src/performance/runner.js.map +1 -0
  574. package/src/performance/scenario-endpoint.d.ts +1 -0
  575. package/src/performance/scenario-endpoint.js +5 -0
  576. package/src/performance/scenario-endpoint.js.map +1 -0
  577. package/src/performance/scenario.d.ts +193 -0
  578. package/src/performance/scenario.js +736 -0
  579. package/src/performance/scenario.js.map +1 -0
  580. package/src/performance/test-fixtures.d.ts +7 -0
  581. package/src/performance/test-fixtures.js +169 -0
  582. package/src/performance/test-fixtures.js.map +1 -0
  583. package/src/performance/unit-cost.d.ts +105 -0
  584. package/src/performance/unit-cost.js +364 -0
  585. package/src/performance/unit-cost.js.map +1 -0
  586. package/src/release/index.d.ts +4 -0
  587. package/src/release/index.js +8 -0
  588. package/src/release/index.js.map +1 -0
  589. package/src/release/lifecycle.d.ts +132 -0
  590. package/src/release/lifecycle.js +411 -0
  591. package/src/release/lifecycle.js.map +1 -0
  592. package/src/release/manifest.d.ts +148 -0
  593. package/src/release/manifest.js +503 -0
  594. package/src/release/manifest.js.map +1 -0
  595. package/src/release/rollout.d.ts +170 -0
  596. package/src/release/rollout.js +578 -0
  597. package/src/release/rollout.js.map +1 -0
  598. package/src/release/source-authority.d.ts +19 -0
  599. package/src/release/source-authority.js +195 -0
  600. package/src/release/source-authority.js.map +1 -0
  601. package/src/repository-policy/deployment-plan.d.ts +2 -1
  602. package/src/repository-policy/deployment-plan.js +2 -0
  603. package/src/repository-policy/deployment-plan.js.map +1 -1
  604. package/src/repository-policy/policy.d.ts +1 -1
  605. package/src/repository-policy/policy.js +29 -25
  606. package/src/repository-policy/policy.js.map +1 -1
  607. package/src/schemas/aggregate-count-evidence-v1.json +135 -0
  608. package/src/schemas/api-contract-baseline-v1.json +674 -0
  609. package/src/schemas/api-contract-compatibility-report-v1.json +126 -0
  610. package/src/schemas/aws-billing-actual-evidence-v1.json +407 -0
  611. package/src/schemas/blueprint-v1.json +18 -1
  612. package/src/schemas/data-lifecycle-policy-v1.json +517 -0
  613. package/src/schemas/generated-ownership-v2.json +22 -0
  614. package/src/schemas/performance-policy-v1.json +335 -0
  615. package/src/schemas/repository-policy-v1.json +1 -0
  616. package/src/schemas/testing-evidence-quarantine-v1.json +168 -0
  617. package/src/schemas/testing-evidence-result-v1.json +319 -0
  618. package/src/secrets/adapters.d.ts +49 -0
  619. package/src/secrets/adapters.js +184 -0
  620. package/src/secrets/adapters.js.map +1 -0
  621. package/src/secrets/aws-control-plane.d.ts +20 -0
  622. package/src/secrets/aws-control-plane.js +255 -0
  623. package/src/secrets/aws-control-plane.js.map +1 -0
  624. package/src/secrets/declaration-verification.d.ts +11 -0
  625. package/src/secrets/declaration-verification.js +68 -0
  626. package/src/secrets/declaration-verification.js.map +1 -0
  627. package/src/secrets/guardrails.d.ts +26 -0
  628. package/src/secrets/guardrails.js +328 -0
  629. package/src/secrets/guardrails.js.map +1 -0
  630. package/src/secrets/index.d.ts +12 -0
  631. package/src/secrets/index.js +16 -0
  632. package/src/secrets/index.js.map +1 -0
  633. package/src/secrets/metadata.d.ts +48 -0
  634. package/src/secrets/metadata.js +171 -0
  635. package/src/secrets/metadata.js.map +1 -0
  636. package/src/secrets/model.d.ts +49 -0
  637. package/src/secrets/model.js +125 -0
  638. package/src/secrets/model.js.map +1 -0
  639. package/src/secrets/operator.d.ts +101 -0
  640. package/src/secrets/operator.js +229 -0
  641. package/src/secrets/operator.js.map +1 -0
  642. package/src/secrets/permissions.d.ts +34 -0
  643. package/src/secrets/permissions.js +86 -0
  644. package/src/secrets/permissions.js.map +1 -0
  645. package/src/secrets/personal-command.d.ts +83 -0
  646. package/src/secrets/personal-command.js +197 -0
  647. package/src/secrets/personal-command.js.map +1 -0
  648. package/src/secrets/personal-ledger.d.ts +21 -0
  649. package/src/secrets/personal-ledger.js +135 -0
  650. package/src/secrets/personal-ledger.js.map +1 -0
  651. package/src/secrets/registry.d.ts +9 -0
  652. package/src/secrets/registry.js +86 -0
  653. package/src/secrets/registry.js.map +1 -0
  654. package/src/secrets/verification.d.ts +18 -0
  655. package/src/secrets/verification.js +139 -0
  656. package/src/secrets/verification.js.map +1 -0
  657. package/src/secrets/workload-access.d.ts +46 -0
  658. package/src/secrets/workload-access.js +163 -0
  659. package/src/secrets/workload-access.js.map +1 -0
  660. package/src/supply-chain/action-pins.d.ts +26 -0
  661. package/src/supply-chain/action-pins.js +208 -0
  662. package/src/supply-chain/action-pins.js.map +1 -0
  663. package/src/supply-chain/blueprint-trust-git.d.ts +130 -0
  664. package/src/supply-chain/blueprint-trust-git.js +1581 -0
  665. package/src/supply-chain/blueprint-trust-git.js.map +1 -0
  666. package/src/supply-chain/blueprint-trust-process.d.ts +4 -0
  667. package/src/supply-chain/blueprint-trust-process.js +88 -0
  668. package/src/supply-chain/blueprint-trust-process.js.map +1 -0
  669. package/src/supply-chain/blueprint-trust.d.ts +354 -0
  670. package/src/supply-chain/blueprint-trust.js +1558 -0
  671. package/src/supply-chain/blueprint-trust.js.map +1 -0
  672. package/src/supply-chain/blueprint-verification-authority.d.ts +62 -0
  673. package/src/supply-chain/blueprint-verification-authority.js +588 -0
  674. package/src/supply-chain/blueprint-verification-authority.js.map +1 -0
  675. package/src/supply-chain/blueprint-verification-execution.d.ts +68 -0
  676. package/src/supply-chain/blueprint-verification-execution.js +624 -0
  677. package/src/supply-chain/blueprint-verification-execution.js.map +1 -0
  678. package/src/supply-chain/build-output.d.ts +35 -0
  679. package/src/supply-chain/build-output.js +398 -0
  680. package/src/supply-chain/build-output.js.map +1 -0
  681. package/src/supply-chain/common.d.ts +21 -0
  682. package/src/supply-chain/common.js +107 -0
  683. package/src/supply-chain/common.js.map +1 -0
  684. package/src/supply-chain/container-artifact-contract.d.ts +23 -0
  685. package/src/supply-chain/container-artifact-contract.js +208 -0
  686. package/src/supply-chain/container-artifact-contract.js.map +1 -0
  687. package/src/supply-chain/container-release.d.ts +119 -0
  688. package/src/supply-chain/container-release.js +496 -0
  689. package/src/supply-chain/container-release.js.map +1 -0
  690. package/src/supply-chain/ecr-applicability.d.ts +19 -0
  691. package/src/supply-chain/ecr-applicability.js +103 -0
  692. package/src/supply-chain/ecr-applicability.js.map +1 -0
  693. package/src/supply-chain/ecr-scanning.d.ts +83 -0
  694. package/src/supply-chain/ecr-scanning.js +321 -0
  695. package/src/supply-chain/ecr-scanning.js.map +1 -0
  696. package/src/supply-chain/ecs-deployed-image.d.ts +85 -0
  697. package/src/supply-chain/ecs-deployed-image.js +300 -0
  698. package/src/supply-chain/ecs-deployed-image.js.map +1 -0
  699. package/src/supply-chain/errors.d.ts +6 -0
  700. package/src/supply-chain/errors.js +15 -0
  701. package/src/supply-chain/errors.js.map +1 -0
  702. package/src/supply-chain/generated-blueprint-trust-command.d.ts +4 -0
  703. package/src/supply-chain/generated-blueprint-trust-command.js +1362 -0
  704. package/src/supply-chain/generated-blueprint-trust-command.js.map +1 -0
  705. package/src/supply-chain/generated-command.d.ts +1 -0
  706. package/src/supply-chain/generated-command.js +687 -0
  707. package/src/supply-chain/generated-command.js.map +1 -0
  708. package/src/supply-chain/generated-container-release-command.d.ts +16 -0
  709. package/src/supply-chain/generated-container-release-command.js +2087 -0
  710. package/src/supply-chain/generated-container-release-command.js.map +1 -0
  711. package/src/supply-chain/generated-ecr-collector-command.d.ts +21 -0
  712. package/src/supply-chain/generated-ecr-collector-command.js +1338 -0
  713. package/src/supply-chain/generated-ecr-collector-command.js.map +1 -0
  714. package/src/supply-chain/generated-files.d.ts +13 -0
  715. package/src/supply-chain/generated-files.js +401 -0
  716. package/src/supply-chain/generated-files.js.map +1 -0
  717. package/src/supply-chain/generated-scanner-command.d.ts +1 -0
  718. package/src/supply-chain/generated-scanner-command.js +718 -0
  719. package/src/supply-chain/generated-scanner-command.js.map +1 -0
  720. package/src/supply-chain/index.d.ts +28 -0
  721. package/src/supply-chain/index.js +35 -0
  722. package/src/supply-chain/index.js.map +1 -0
  723. package/src/supply-chain/inventory.d.ts +79 -0
  724. package/src/supply-chain/inventory.js +717 -0
  725. package/src/supply-chain/inventory.js.map +1 -0
  726. package/src/supply-chain/license-expression.d.ts +7 -0
  727. package/src/supply-chain/license-expression.js +128 -0
  728. package/src/supply-chain/license-expression.js.map +1 -0
  729. package/src/supply-chain/pnpm-toolchain-authority.d.ts +31 -0
  730. package/src/supply-chain/pnpm-toolchain-authority.js +316 -0
  731. package/src/supply-chain/pnpm-toolchain-authority.js.map +1 -0
  732. package/src/supply-chain/policy.d.ts +105 -0
  733. package/src/supply-chain/policy.js +301 -0
  734. package/src/supply-chain/policy.js.map +1 -0
  735. package/src/supply-chain/publication.d.ts +48 -0
  736. package/src/supply-chain/publication.js +85 -0
  737. package/src/supply-chain/publication.js.map +1 -0
  738. package/src/supply-chain/sbom.d.ts +228 -0
  739. package/src/supply-chain/sbom.js +826 -0
  740. package/src/supply-chain/sbom.js.map +1 -0
  741. package/src/supply-chain/scanner.d.ts +77 -0
  742. package/src/supply-chain/scanner.js +502 -0
  743. package/src/supply-chain/scanner.js.map +1 -0
  744. package/src/supply-chain/vendored-source.d.ts +95 -0
  745. package/src/supply-chain/vendored-source.js +315 -0
  746. package/src/supply-chain/vendored-source.js.map +1 -0
  747. package/src/testing-evidence/fixture-scope.d.ts +52 -0
  748. package/src/testing-evidence/fixture-scope.js +140 -0
  749. package/src/testing-evidence/fixture-scope.js.map +1 -0
  750. package/src/testing-evidence/index.d.ts +5 -0
  751. package/src/testing-evidence/index.js +9 -0
  752. package/src/testing-evidence/index.js.map +1 -0
  753. package/src/testing-evidence/quarantine.d.ts +48 -0
  754. package/src/testing-evidence/quarantine.js +253 -0
  755. package/src/testing-evidence/quarantine.js.map +1 -0
  756. package/src/testing-evidence/result.d.ts +108 -0
  757. package/src/testing-evidence/result.js +571 -0
  758. package/src/testing-evidence/result.js.map +1 -0
  759. package/src/testing-evidence/runner-adapter.d.ts +51 -0
  760. package/src/testing-evidence/runner-adapter.js +288 -0
  761. package/src/testing-evidence/runner-adapter.js.map +1 -0
  762. package/src/testing-evidence/sensitive-artifacts.d.ts +13 -0
  763. package/src/testing-evidence/sensitive-artifacts.js +93 -0
  764. package/src/testing-evidence/sensitive-artifacts.js.map +1 -0
  765. package/src/work-markers/work-markers.js +4 -3
  766. package/src/work-markers/work-markers.js.map +1 -1
  767. package/src/workload-roles/account-baseline.d.ts +132 -0
  768. package/src/workload-roles/account-baseline.js +743 -0
  769. package/src/workload-roles/account-baseline.js.map +1 -0
  770. package/src/workload-roles/authority.d.ts +38 -0
  771. package/src/workload-roles/authority.js +156 -0
  772. package/src/workload-roles/authority.js.map +1 -0
  773. package/src/workload-roles/aws-adapter.d.ts +99 -0
  774. package/src/workload-roles/aws-adapter.js +416 -0
  775. package/src/workload-roles/aws-adapter.js.map +1 -0
  776. package/src/workload-roles/aws-internal-handler.d.ts +27 -0
  777. package/src/workload-roles/aws-internal-handler.js +58 -0
  778. package/src/workload-roles/aws-internal-handler.js.map +1 -0
  779. package/src/workload-roles/aws-s3-state.d.ts +52 -0
  780. package/src/workload-roles/aws-s3-state.js +164 -0
  781. package/src/workload-roles/aws-s3-state.js.map +1 -0
  782. package/src/workload-roles/aws-sdk-control-plane.d.ts +12 -0
  783. package/src/workload-roles/aws-sdk-control-plane.js +291 -0
  784. package/src/workload-roles/aws-sdk-control-plane.js.map +1 -0
  785. package/src/workload-roles/boundary.d.ts +33 -0
  786. package/src/workload-roles/boundary.js +130 -0
  787. package/src/workload-roles/boundary.js.map +1 -0
  788. package/src/workload-roles/convergence.d.ts +66 -0
  789. package/src/workload-roles/convergence.js +186 -0
  790. package/src/workload-roles/convergence.js.map +1 -0
  791. package/src/workload-roles/effective-policy.d.ts +51 -0
  792. package/src/workload-roles/effective-policy.js +183 -0
  793. package/src/workload-roles/effective-policy.js.map +1 -0
  794. package/src/workload-roles/handler.d.ts +43 -0
  795. package/src/workload-roles/handler.js +130 -0
  796. package/src/workload-roles/handler.js.map +1 -0
  797. package/src/workload-roles/history.d.ts +47 -0
  798. package/src/workload-roles/history.js +324 -0
  799. package/src/workload-roles/history.js.map +1 -0
  800. package/src/workload-roles/index.d.ts +17 -0
  801. package/src/workload-roles/index.js +21 -0
  802. package/src/workload-roles/index.js.map +1 -0
  803. package/src/workload-roles/injection.d.ts +119 -0
  804. package/src/workload-roles/injection.js +495 -0
  805. package/src/workload-roles/injection.js.map +1 -0
  806. package/src/workload-roles/manifest.d.ts +54 -0
  807. package/src/workload-roles/manifest.js +343 -0
  808. package/src/workload-roles/manifest.js.map +1 -0
  809. package/src/workload-roles/provisioner.d.ts +70 -0
  810. package/src/workload-roles/provisioner.js +231 -0
  811. package/src/workload-roles/provisioner.js.map +1 -0
  812. package/src/workload-roles/registration.d.ts +101 -0
  813. package/src/workload-roles/registration.js +457 -0
  814. package/src/workload-roles/registration.js.map +1 -0
  815. package/src/workload-roles/stage-boundary.d.ts +31 -0
  816. package/src/workload-roles/stage-boundary.js +208 -0
  817. package/src/workload-roles/stage-boundary.js.map +1 -0
  818. package/src/workload-roles/standard-slice.d.ts +54 -0
  819. package/src/workload-roles/standard-slice.js +252 -0
  820. package/src/workload-roles/standard-slice.js.map +1 -0
  821. package/migrations/standard-pre-v1-to-v1.md +0 -11
  822. package/src/foundation/aurora-logical-database.d.ts +0 -76
  823. package/src/foundation/aurora-logical-database.js +0 -419
  824. package/src/foundation/aurora-logical-database.js.map +0 -1
@@ -0,0 +1,1199 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sameWorkspaceRealpath = sameWorkspaceRealpath;
5
+ exports.resolveCurrentFleetCoordinates = resolveCurrentFleetCoordinates;
6
+ exports.resolveRecoveryFleetCoordinates = resolveRecoveryFleetCoordinates;
7
+ exports.runAgentCommandCore = runAgentCommandCore;
8
+ exports.runDevCommandCore = runDevCommandCore;
9
+ exports.runEbkCli = runEbkCli;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const node_crypto_1 = require("node:crypto");
12
+ const node_fs_1 = require("node:fs");
13
+ const node_path_1 = require("node:path");
14
+ const dev_doctor_js_1 = require("../executors/dev-doctor/dev-doctor.js");
15
+ const git_inspection_js_1 = require("../developer-agent/git-inspection.js");
16
+ const dev_setup_js_1 = require("../executors/dev-setup/dev-setup.js");
17
+ const contract_validation_js_1 = require("../local-dev/contract-validation.js");
18
+ const control_contract_js_1 = require("../local-dev/control-contract.js");
19
+ const context_discovery_js_1 = require("../local-dev/context-discovery.js");
20
+ const dev_command_core_js_1 = require("../local-dev/dev-command-core.js");
21
+ const environment_inspector_js_1 = require("../local-dev/environment-inspector.js");
22
+ const errors_js_1 = require("../local-dev/errors.js");
23
+ const fleet_client_js_1 = require("../local-dev/fleet-client.js");
24
+ const fleet_inventory_js_1 = require("../local-dev/fleet-inventory.js");
25
+ const fleet_launcher_js_1 = require("../local-dev/fleet-launcher.js");
26
+ const fleet_logs_js_1 = require("../local-dev/fleet-logs.js");
27
+ const identity_js_1 = require("../local-dev/identity.js");
28
+ const local_context_js_1 = require("../local-dev/local-context.js");
29
+ const personal_secret_ledger_js_1 = require("../local-dev/personal-secret-ledger.js");
30
+ const nx_workspace_js_1 = require("../local-dev/nx-workspace.js");
31
+ const personal_stage_js_1 = require("../local-dev/personal-stage.js");
32
+ const runtime_paths_js_1 = require("../local-dev/runtime-paths.js");
33
+ const secret_slice_claim_js_1 = require("../local-dev/secret-slice-claim.js");
34
+ const tls_js_1 = require("../local-dev/tls.js");
35
+ const personal_command_js_1 = require("../secrets/personal-command.js");
36
+ const dev_command_js_1 = require("./dev-command.js");
37
+ const agent_runtime_js_1 = require("./agent-runtime.js");
38
+ const output_js_1 = require("./output.js");
39
+ const personal_secret_runtime_js_1 = require("./personal-secret-runtime.js");
40
+ const secret_terminal_js_1 = require("./secret-terminal.js");
41
+ const ROOT_HELP = `Empire Builder Kit
42
+
43
+ Usage:
44
+ ebk agent <command> [options]
45
+ ebk blueprint verification-review
46
+ ebk dev <command> [options]
47
+ ebk secret <command> <slice> <logical-name>
48
+
49
+ Run "ebk agent --help", "ebk blueprint --help", "ebk dev --help", or
50
+ "ebk secret --help" for namespace help.`;
51
+ const AGENT_HELP = `Empire Builder Kit Developer-Agent contract
52
+
53
+ Usage:
54
+ ebk agent context [selection options] [--json]
55
+ ebk agent plan <request.json> [selection options] [--json]
56
+ ebk agent upgrade-preview <request.json> .ebk/agent/previews/<name>.json [selection options] [--json]
57
+ ebk agent handoff <handoff.json> [--json]
58
+ ebk agent resume <handoff.json> [--json]
59
+
60
+ These commands inspect, plan, validate, and assess resumption of bounded
61
+ repository state. Upgrade preview records an ignored generator report; the
62
+ framework-owned deferred Tree does not apply its intended changes to workspace
63
+ source. Generator previews are local-source because they execute the owning
64
+ generator. An admitted external Blueprint publisher runs in the framework's
65
+ digest-pinned, no-network container without adopter-workspace, Git, credential,
66
+ or Docker-socket mounts. Installed publishers use exact lock and registry
67
+ authority; explicitly mapped local authoring uses protected local-source and
68
+ trust authority. The built-in Standard planner remains trusted in-process
69
+ framework code. Supported mutation remains with the owning Nx generator,
70
+ target, reconciler, source-edit path, package manager, or protected workflow.`;
71
+ const DEV_HELP = `Empire Builder Kit local development
72
+
73
+ Usage:
74
+ ebk dev configure --show [--json]
75
+ ebk dev configure [<context options>] [--clear-development-router-url] [--json]
76
+ ebk dev setup [--trust] [--portless] [--upgrade] [--remove] [--json]
77
+ ebk dev up <slice...>|--all [--foreground] [--sst-mode=mono|multiplexer]
78
+ [--no-wait] [--timeout=<duration>] [<context options>] [--json]
79
+ ebk dev status [--json]
80
+ ebk dev restart <slice...>|--all [--no-wait] [--timeout=<duration>] [--json]
81
+ ebk dev down <slice...>|--all [--no-wait] [--timeout=<duration>] [--json]
82
+ ebk dev logs [slice...] [--all] [--attempt=<n>] [--contains=<text>]
83
+ [--correlation-id=<id>] [--level=<level>] [--limit=<n>]
84
+ [--since=<time>] [--stream=stdout|stderr] [--until=<time>]
85
+ [--json]
86
+ ebk dev tail [slice...] [--all] [--level=<level>] [--lines=<n>] [--json]
87
+ ebk dev doctor [--environment-only] [--refresh] [--json]
88
+ ebk dev ps [--json]
89
+ ebk dev prune <fleet-id>|--all-stale [--json]
90
+
91
+ Context options:
92
+ --profile=<name> --region=<region> --development-router-url=<https-url>
93
+ --host-suffix=<suffix> --max-restart-attempts=<n>
94
+ --safe-method-fallback[=true|false]
95
+
96
+ Configure mutation requires at least one context option or
97
+ --clear-development-router-url. The clear option may accompany other
98
+ non-router context changes.
99
+
100
+ Use "ebk dev <command> --help" to return this bounded command reference.
101
+ Fleet stage is always derived from the current operating-system account.`;
102
+ const SECRET_HELP = `Empire Builder Kit personal secrets
103
+
104
+ Usage:
105
+ ebk secret set <slice> <logical-name>
106
+ ebk secret remove <slice> <logical-name>
107
+
108
+ These human-only commands derive the personal stage and read the saved
109
+ development profile and Region. Secret values are accepted only through a
110
+ hidden local TTY and are never accepted through argv, environment, or files.`;
111
+ function inspectWorkspaceFilesystemIdentity(path) {
112
+ const status = (0, node_fs_1.statSync)(path, { bigint: true });
113
+ return {
114
+ device: status.dev,
115
+ directory: status.isDirectory(),
116
+ inode: status.ino,
117
+ };
118
+ }
119
+ function sameWorkspaceRealpath(left, right, currentPlatform = process.platform, inspectIdentity = inspectWorkspaceFilesystemIdentity) {
120
+ if (currentPlatform === 'win32') {
121
+ const windowsIdentity = (value) => node_path_1.win32.toNamespacedPath(node_path_1.win32.normalize(value)).toLowerCase();
122
+ if (windowsIdentity(left) === windowsIdentity(right))
123
+ return true;
124
+ try {
125
+ const leftIdentity = inspectIdentity(left);
126
+ const rightIdentity = inspectIdentity(right);
127
+ return (leftIdentity.directory &&
128
+ rightIdentity.directory &&
129
+ leftIdentity.inode !== 0n &&
130
+ leftIdentity.device === rightIdentity.device &&
131
+ leftIdentity.inode === rightIdentity.inode);
132
+ }
133
+ catch {
134
+ return false;
135
+ }
136
+ }
137
+ return left === right;
138
+ }
139
+ function packageVersion() {
140
+ const manifest = require('../../package.json');
141
+ return typeof manifest.version === 'string' ? manifest.version : '0.0.0';
142
+ }
143
+ function workspaceRoot(cwd) {
144
+ try {
145
+ const root = (0, node_child_process_1.execFileSync)('git', [
146
+ '--no-optional-locks',
147
+ '-c',
148
+ 'core.fsmonitor=false',
149
+ 'rev-parse',
150
+ '--path-format=absolute',
151
+ '--show-toplevel',
152
+ ], {
153
+ cwd,
154
+ encoding: 'utf8',
155
+ env: (0, git_inspection_js_1.createDeveloperAgentGitEnvironment)(),
156
+ stdio: ['ignore', 'pipe', 'pipe'],
157
+ timeout: 5_000,
158
+ windowsHide: true,
159
+ }).trim();
160
+ if (!(0, node_path_1.isAbsolute)(root))
161
+ throw new Error('Git returned a relative path.');
162
+ return (0, node_fs_1.realpathSync)(root);
163
+ }
164
+ catch {
165
+ throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'Run ebk from a Git workspace with a readable repository root.');
166
+ }
167
+ }
168
+ function defaultDependencies(overrides) {
169
+ return {
170
+ acquireSecretLedgerLock: personal_secret_ledger_js_1.acquirePersonalSecretLedgerLock,
171
+ appData: tls_js_1.defaultLocalDevAppData,
172
+ assertSecretSliceClaim: secret_slice_claim_js_1.assertSecretSliceClaimAuthority,
173
+ changeDirectory: (root) => process.chdir(root),
174
+ client: (paths) => new fleet_client_js_1.FleetClient(paths),
175
+ discoverContext: context_discovery_js_1.discoverLocalDevContext,
176
+ executeAgent: agent_runtime_js_1.executeDeveloperAgentCommand,
177
+ followLogs: fleet_logs_js_1.followFleetLogs,
178
+ frameworkVersion: packageVersion,
179
+ gitCommonDirectory: fleet_launcher_js_1.resolveGitCommonDirectory,
180
+ idempotencyKey: node_crypto_1.randomUUID,
181
+ inspectEnvironment: environment_inspector_js_1.inspectDevelopmentEnvironment,
182
+ inspectLocal: dev_doctor_js_1.inspectLocalDevelopment,
183
+ inventory: fleet_inventory_js_1.inventoryFleets,
184
+ inventoryClaims: fleet_inventory_js_1.inventorySliceClaims,
185
+ launchFleet: fleet_launcher_js_1.launchOrAttachFleet,
186
+ loadPlan: nx_workspace_js_1.loadWorkspaceFleetPlan,
187
+ listSecretLedgers: personal_secret_ledger_js_1.listPersonalSecretLedgersForStage,
188
+ loadSecret: personal_secret_runtime_js_1.loadPersonalOperatorSecret,
189
+ pathExists: node_fs_1.existsSync,
190
+ personalStageResolver: (0, personal_stage_js_1.createPersonalStageResolver)(),
191
+ prune: fleet_inventory_js_1.pruneStaleFleets,
192
+ readContext: local_context_js_1.readSavedLocalDevContext,
193
+ recordSecretLogicalName: personal_secret_ledger_js_1.recordPersonalSecretLogicalName,
194
+ releaseSecretLedgerLock: personal_secret_ledger_js_1.releasePersonalSecretLedgerLock,
195
+ resolveCurrentAccount: personal_secret_runtime_js_1.resolveCurrentAwsAccountId,
196
+ resolveDevelopmentFoundationAccount: personal_secret_runtime_js_1.resolveDevelopmentFoundationAccountId,
197
+ resolveWorkspaceRoot: workspaceRoot,
198
+ runSetup: dev_setup_js_1.applyDevSetup,
199
+ searchLogs: fleet_logs_js_1.searchFleetLogs,
200
+ secretCeremony: (environment) => (0, personal_secret_runtime_js_1.createHumanSecretCeremony)(environment, Boolean(process.stdin.isTTY), Boolean(process.stderr.isTTY)),
201
+ secretConfirmation: (0, secret_terminal_js_1.createTtySecretConfirmation)(),
202
+ secretHiddenInput: (0, secret_terminal_js_1.createTtyHiddenSecretInputReader)(),
203
+ secretStore: ({ aws, environment, projectRoot, signal, workspaceRoot }) => (0, personal_secret_runtime_js_1.createWorkspacePinnedSstSecretStore)({
204
+ aws,
205
+ environment,
206
+ projectRoot,
207
+ runtime: (0, personal_secret_runtime_js_1.resolveWorkspaceSstRuntime)(workspaceRoot),
208
+ signal,
209
+ }),
210
+ secretValidator: personal_secret_runtime_js_1.createPersonalSecretValueValidator,
211
+ forgetSecretLogicalName: personal_secret_ledger_js_1.forgetPersonalSecretLogicalName,
212
+ writeContext: local_context_js_1.writeSavedLocalDevContext,
213
+ ...overrides,
214
+ };
215
+ }
216
+ function planWorkspaceName(plan) {
217
+ const names = Object.entries(plan.projects)
218
+ .filter(([, project]) => project.tags?.includes('scope:workspace'))
219
+ .map(([name]) => name);
220
+ if (names.length !== 1) {
221
+ throw new errors_js_1.LocalDevContractError('invalid-state', `Expected exactly one scope:workspace project; found ${names.length}.`);
222
+ }
223
+ return names[0];
224
+ }
225
+ async function resolveCurrentFleetCoordinates(workspaceRoot, appData, dependencies) {
226
+ const plan = await dependencies.loadPlan();
227
+ const identity = dependencies.personalStageResolver.resolve();
228
+ const workspaceName = planWorkspaceName(plan);
229
+ const fleetId = (0, identity_js_1.createFleetId)({
230
+ checkoutPath: workspaceRoot,
231
+ stage: identity.stage,
232
+ workspaceName,
233
+ });
234
+ return {
235
+ fleetId,
236
+ identity,
237
+ paths: (0, runtime_paths_js_1.fleetRuntimePaths)(fleetId, appData),
238
+ plan,
239
+ workspaceName,
240
+ };
241
+ }
242
+ async function resolveRecoveryFleetCoordinates(workspaceRoot, appData, dependencies, currentPlatform = process.platform) {
243
+ const identity = dependencies.personalStageResolver.resolve();
244
+ const inventory = await dependencies.inventory({ appData });
245
+ const matches = inventory.filter(({ checkout, stage }) => checkout !== undefined &&
246
+ sameWorkspaceRealpath(checkout, workspaceRoot, currentPlatform) &&
247
+ stage === identity.stage);
248
+ if (matches.length > 1) {
249
+ throw new errors_js_1.LocalDevContractError('fleet-ownership-ambiguous', 'More than one private Fleet record matches this checkout and personal stage.');
250
+ }
251
+ const match = matches[0];
252
+ if (match) {
253
+ return {
254
+ fleet: match,
255
+ fleetId: match.fleetId,
256
+ identity,
257
+ paths: (0, runtime_paths_js_1.fleetRuntimePaths)(match.fleetId, appData),
258
+ };
259
+ }
260
+ try {
261
+ const current = await resolveCurrentFleetCoordinates(workspaceRoot, appData, dependencies);
262
+ return current;
263
+ }
264
+ catch {
265
+ return { identity };
266
+ }
267
+ }
268
+ function diagnosticContext(discovery) {
269
+ return (0, local_context_js_1.resolveInitialLocalDevContext)({
270
+ profile: discovery.profile ?? 'unconfigured',
271
+ region: discovery.region ?? 'us-east-1',
272
+ }, {}).context;
273
+ }
274
+ function contextPayload(saved) {
275
+ if (saved.kind === 'ready') {
276
+ return {
277
+ digest: saved.resolution.digest,
278
+ path: saved.path,
279
+ state: 'ready',
280
+ values: saved.resolution.context,
281
+ };
282
+ }
283
+ if (saved.kind === 'invalid') {
284
+ return {
285
+ diagnostic: saved.reason,
286
+ path: saved.path,
287
+ state: 'invalid',
288
+ };
289
+ }
290
+ return { path: saved.path, state: 'missing' };
291
+ }
292
+ function requireMutableSavedContext(saved) {
293
+ if (saved.kind === 'invalid') {
294
+ throw new errors_js_1.LocalDevContractError('local-context-invalid', saved.reason);
295
+ }
296
+ }
297
+ function success(command, payload, operationId) {
298
+ return (0, output_js_1.createCliResult)({
299
+ command,
300
+ namespace: 'dev',
301
+ ...(operationId ? { operationId } : {}),
302
+ outcome: 'succeeded',
303
+ payload,
304
+ });
305
+ }
306
+ function secretSuccess(command, payload) {
307
+ return (0, output_js_1.createCliResult)({
308
+ command,
309
+ namespace: 'secret',
310
+ outcome: 'succeeded',
311
+ payload,
312
+ });
313
+ }
314
+ function failure(namespace, command, classification, message, environmentAssessment) {
315
+ return (0, output_js_1.createCliResult)({
316
+ command,
317
+ failureClassification: classification,
318
+ namespace,
319
+ outcome: 'failed',
320
+ payload: {
321
+ ...(environmentAssessment ? { environmentAssessment } : {}),
322
+ message,
323
+ },
324
+ });
325
+ }
326
+ function failureFromError(namespace, command, error) {
327
+ if (namespace === 'agent') {
328
+ const classified = error instanceof errors_js_1.LocalDevContractError &&
329
+ error.classification === 'invalid-input'
330
+ ? { classification: 'invalid-input', message: error.message }
331
+ : (0, agent_runtime_js_1.classifyDeveloperAgentCliError)(error);
332
+ return failure(namespace, command, classified.classification, classified.message);
333
+ }
334
+ const classification = error instanceof errors_js_1.LocalDevContractError
335
+ ? error.classification
336
+ : 'internal-error';
337
+ return failure(namespace, command, classification, error instanceof Error ? error.message : String(error), error instanceof environment_inspector_js_1.EnvironmentDeficientError
338
+ ? error.environmentAssessment
339
+ : undefined);
340
+ }
341
+ function writeResult(result, json, io) {
342
+ if (json) {
343
+ io.stdout(`${(0, contract_validation_js_1.canonicalJson)(result)}\n`);
344
+ return;
345
+ }
346
+ if (result.outcome !== 'succeeded') {
347
+ const message = result.payload &&
348
+ typeof result.payload === 'object' &&
349
+ 'message' in result.payload
350
+ ? String(result.payload.message)
351
+ : 'Command failed.';
352
+ io.stderr(`[${result.failureClassification ?? 'internal-error'}] ${message}\n`);
353
+ return;
354
+ }
355
+ if (result.payload !== undefined) {
356
+ io.stdout(`${JSON.stringify(result.payload, null, 2)}\n`);
357
+ }
358
+ }
359
+ function selectorsForQuery(command, plan) {
360
+ if (!command.selector || command.selector.all)
361
+ return undefined;
362
+ return plan
363
+ ? (0, nx_workspace_js_1.selectWorkspaceSlices)(plan, command.selector)
364
+ : [...command.selector.slices];
365
+ }
366
+ async function inspectForCommand(command, context, identity, dispatch, options = {}) {
367
+ return dispatch.dependencies.inspectEnvironment({
368
+ ...(options.adapters ? { adapters: options.adapters } : {}),
369
+ appData: dispatch.appData,
370
+ command,
371
+ context,
372
+ force: options.force,
373
+ frameworkVersion: dispatch.dependencies.frameworkVersion(),
374
+ identity,
375
+ workspaceRoot: dispatch.workspaceRoot,
376
+ });
377
+ }
378
+ function secretCommandFailure(error) {
379
+ if (error instanceof errors_js_1.LocalDevContractError)
380
+ throw error;
381
+ if (error instanceof secret_terminal_js_1.SecretTerminalError) {
382
+ throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', error.message);
383
+ }
384
+ if (error instanceof personal_command_js_1.PersonalSecretCommandError) {
385
+ const classification = error.code === 'personal-secret-account-invalid'
386
+ ? 'foundation-unavailable'
387
+ : error.code === 'personal-secret-human-required' ||
388
+ error.code === 'personal-secret-hidden-input-failed'
389
+ ? 'prerequisite-unavailable'
390
+ : error.code === 'personal-secret-store-failed'
391
+ ? 'internal-error'
392
+ : 'invalid-input';
393
+ throw new errors_js_1.LocalDevContractError(classification, error.message);
394
+ }
395
+ if (error instanceof personal_secret_runtime_js_1.PersonalSecretRuntimeError) {
396
+ const classification = error.code === 'personal-secret-foundation-account-invalid'
397
+ ? 'foundation-unavailable'
398
+ : error.code === 'personal-secret-declaration-invalid'
399
+ ? 'invalid-input'
400
+ : error.code === 'personal-secret-sst-command-failed'
401
+ ? 'internal-error'
402
+ : 'prerequisite-unavailable';
403
+ throw new errors_js_1.LocalDevContractError(classification, error.message);
404
+ }
405
+ throw new errors_js_1.LocalDevContractError('internal-error', 'Personal secret command failed without exposing a value.');
406
+ }
407
+ async function executeSecretCommand(command, dispatch) {
408
+ try {
409
+ const ceremony = dispatch.dependencies.secretCeremony(dispatch.environment);
410
+ (0, personal_command_js_1.assertHumanSecretCeremony)(ceremony);
411
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
412
+ const saved = dispatch.dependencies.readContext(common);
413
+ if (saved.kind !== 'ready') {
414
+ throw new errors_js_1.LocalDevContractError(saved.kind === 'invalid'
415
+ ? 'local-context-invalid'
416
+ : 'local-context-missing', saved.kind === 'invalid'
417
+ ? saved.reason
418
+ : 'Personal secret commands require saved local-development profile and Region context. Run ebk dev configure first.');
419
+ }
420
+ const context = saved.resolution.context;
421
+ const identity = dispatch.dependencies.personalStageResolver.resolve();
422
+ const environmentAssessment = await dispatch.dependencies.inspectEnvironment({
423
+ appData: dispatch.appData,
424
+ command: 'secret',
425
+ context,
426
+ frameworkVersion: dispatch.dependencies.frameworkVersion(),
427
+ identity,
428
+ workspaceRoot: dispatch.workspaceRoot,
429
+ });
430
+ (0, environment_inspector_js_1.assertEnvironmentReady)(environmentAssessment);
431
+ const plan = await dispatch.dependencies.loadPlan();
432
+ const project = plan.projects[command.slice];
433
+ if (!project?.tags?.includes('type:slice')) {
434
+ throw new errors_js_1.LocalDevContractError('unknown-slice', 'The requested secret command project is not a Product Slice.');
435
+ }
436
+ dispatch.dependencies.assertSecretSliceClaim({
437
+ appData: dispatch.appData,
438
+ slice: command.slice,
439
+ stage: identity.stage,
440
+ workspaceName: planWorkspaceName(plan),
441
+ workspaceRoot: dispatch.workspaceRoot,
442
+ });
443
+ const loaded = await dispatch.dependencies.loadSecret({
444
+ logicalName: command.logicalName,
445
+ plan,
446
+ slice: command.slice,
447
+ workspaceRoot: dispatch.workspaceRoot,
448
+ });
449
+ const aws = Object.freeze({
450
+ profile: context.profile,
451
+ region: context.region,
452
+ });
453
+ const [accountId, developmentAccountId] = await Promise.all([
454
+ dispatch.dependencies.resolveCurrentAccount(aws, dispatch.environment),
455
+ dispatch.dependencies.resolveDevelopmentFoundationAccount(aws),
456
+ ]);
457
+ if (!/^\d{12}$/.test(accountId) ||
458
+ !/^\d{12}$/.test(developmentAccountId) ||
459
+ accountId !== developmentAccountId) {
460
+ throw new personal_command_js_1.PersonalSecretCommandError('personal-secret-account-invalid');
461
+ }
462
+ const store = dispatch.dependencies.secretStore({
463
+ aws,
464
+ environment: dispatch.environment,
465
+ projectRoot: loaded.projectRoot,
466
+ signal: dispatch.signal,
467
+ workspaceRoot: dispatch.workspaceRoot,
468
+ });
469
+ const commonInput = {
470
+ accountId,
471
+ ceremony,
472
+ declaration: loaded.declaration,
473
+ developmentAccountId,
474
+ mode: 'sst-dev',
475
+ stage: identity.stage,
476
+ store,
477
+ };
478
+ const ledgerInput = {
479
+ appData: dispatch.appData,
480
+ identity: {
481
+ accountId,
482
+ region: context.region,
483
+ slice: command.slice,
484
+ sstApp: command.slice,
485
+ stage: identity.stage,
486
+ },
487
+ logicalName: loaded.declaration.logicalName,
488
+ };
489
+ const ledgerLock = dispatch.dependencies.acquireSecretLedgerLock({
490
+ appData: dispatch.appData,
491
+ slice: command.slice,
492
+ stage: identity.stage,
493
+ });
494
+ let result;
495
+ try {
496
+ if (command.command === 'set') {
497
+ dispatch.dependencies.recordSecretLogicalName({
498
+ ...ledgerInput,
499
+ lock: ledgerLock,
500
+ });
501
+ result = await (0, personal_command_js_1.setPersonalSstSecret)({
502
+ ...commonInput,
503
+ hiddenInput: dispatch.dependencies.secretHiddenInput,
504
+ validator: dispatch.dependencies.secretValidator({
505
+ environment: dispatch.environment,
506
+ logicalName: loaded.declaration.logicalName,
507
+ projectRoot: loaded.projectRoot,
508
+ valueKind: loaded.declaration.valueKind,
509
+ }),
510
+ });
511
+ }
512
+ else {
513
+ result = await (0, personal_command_js_1.removePersonalSstSecret)({
514
+ ...commonInput,
515
+ confirmation: dispatch.dependencies.secretConfirmation,
516
+ });
517
+ dispatch.dependencies.forgetSecretLogicalName({
518
+ ...ledgerInput,
519
+ lock: ledgerLock,
520
+ });
521
+ }
522
+ }
523
+ finally {
524
+ dispatch.dependencies.releaseSecretLedgerLock(ledgerLock);
525
+ }
526
+ return {
527
+ result: secretSuccess(command.command, {
528
+ ...result,
529
+ slice: command.slice,
530
+ }),
531
+ };
532
+ }
533
+ catch (error) {
534
+ return secretCommandFailure(error);
535
+ }
536
+ }
537
+ async function associatedFleetGuard(gitCommonDirectory, dispatch) {
538
+ const inventory = await dispatch.dependencies.inventory({
539
+ appData: dispatch.appData,
540
+ });
541
+ const blockers = inventory.filter((record) => record.gitCommonDirectory === gitCommonDirectory &&
542
+ record.classification !== 'stale');
543
+ if (blockers.length > 0) {
544
+ throw new errors_js_1.LocalDevContractError(blockers.some(({ classification }) => classification === 'live')
545
+ ? 'fleet-in-use'
546
+ : 'fleet-ownership-ambiguous', `Shared local context is not mutable while associated Fleet state is ${blockers
547
+ .map(({ fleetId, classification }) => `${fleetId}:${classification}`)
548
+ .join(', ')}.`);
549
+ }
550
+ }
551
+ async function recordDiagnosticAssessment(command, dispatch) {
552
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
553
+ const saved = dispatch.dependencies.readContext(common);
554
+ if (saved.kind === 'invalid') {
555
+ dispatch.io.stderr(`[local-context-invalid] ${saved.reason} Continuing with live Fleet and private runtime state; configure/up/restart remain blocked until the saved context is repaired.\n`);
556
+ }
557
+ const discovery = await dispatch.dependencies.discoverContext({}, dispatch.environment);
558
+ const context = saved.kind === 'ready'
559
+ ? saved.resolution.context
560
+ : diagnosticContext(discovery);
561
+ return dispatch.dependencies.inspectEnvironment({
562
+ appData: dispatch.appData,
563
+ command,
564
+ context,
565
+ frameworkVersion: dispatch.dependencies.frameworkVersion(),
566
+ identity: dispatch.dependencies.personalStageResolver.resolve(),
567
+ workspaceRoot: dispatch.workspaceRoot,
568
+ });
569
+ }
570
+ async function assertPersonalSecretLedgersReachable(context, identity, dispatch) {
571
+ const ledgers = dispatch.dependencies
572
+ .listSecretLedgers({
573
+ appData: dispatch.appData,
574
+ stage: identity.stage,
575
+ })
576
+ .filter(({ logicalNames }) => logicalNames.length > 0);
577
+ if (ledgers.length === 0)
578
+ return;
579
+ let accountId;
580
+ try {
581
+ accountId = await dispatch.dependencies.resolveCurrentAccount({ profile: context.profile, region: context.region }, dispatch.environment);
582
+ }
583
+ catch {
584
+ throw new errors_js_1.LocalDevContractError('local-context-conflict', 'The proposed local context cannot prove access to nonempty personal-secret ledgers. Restore the prior profile and Region, run each affected Slice cleanup, then reconfigure.');
585
+ }
586
+ const unreachable = ledgers.filter((ledger) => ledger.accountId !== accountId || ledger.region !== context.region);
587
+ if (unreachable.length > 0) {
588
+ throw new errors_js_1.LocalDevContractError('local-context-conflict', `The proposed local context would strand personal-secret cleanup for Slice${unreachable.length === 1 ? '' : 's'} ${unreachable
589
+ .map(({ slice }) => slice)
590
+ .join(', ')}. Restore the recorded account and Region, run the affected Slice cleanup, then reconfigure.`);
591
+ }
592
+ }
593
+ async function executeConfigure(command, identity, dispatch) {
594
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
595
+ const saved = dispatch.dependencies.readContext(common);
596
+ if (command.show) {
597
+ const discovery = await dispatch.dependencies.discoverContext({}, dispatch.environment);
598
+ const context = saved.kind === 'ready'
599
+ ? saved.resolution.context
600
+ : diagnosticContext(discovery);
601
+ const assessment = await inspectForCommand('configure', context, identity, dispatch);
602
+ return {
603
+ result: success(command.command, {
604
+ ...contextPayload(saved),
605
+ environmentAssessment: assessment,
606
+ ...(saved.kind === 'ready'
607
+ ? { sources: saved.resolution.sources }
608
+ : {}),
609
+ }),
610
+ };
611
+ }
612
+ requireMutableSavedContext(saved);
613
+ await associatedFleetGuard(common, dispatch);
614
+ const discovery = await dispatch.dependencies.discoverContext(command.input, dispatch.environment);
615
+ const resolution = (0, local_context_js_1.configureLocalDevContext)(saved.kind === 'ready' ? saved.resolution.context : undefined, command.input, {
616
+ clearDevelopmentRouterOrigin: command.clearDevelopmentRouterOrigin,
617
+ discovery,
618
+ });
619
+ await assertPersonalSecretLedgersReachable(resolution.context, identity, dispatch);
620
+ const assessment = await inspectForCommand('configure', resolution.context, identity, dispatch);
621
+ (0, environment_inspector_js_1.assertEnvironmentReady)(assessment);
622
+ const written = dispatch.dependencies.writeContext(common, resolution.context);
623
+ return {
624
+ result: success(command.command, {
625
+ context: written.context,
626
+ digest: written.digest,
627
+ path: saved.path,
628
+ sources: resolution.sources,
629
+ }),
630
+ };
631
+ }
632
+ async function resolveUpContext(command, dispatch) {
633
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
634
+ const saved = dispatch.dependencies.readContext(common);
635
+ requireMutableSavedContext(saved);
636
+ if (saved.kind === 'ready') {
637
+ return {
638
+ gitCommonDirectory: common,
639
+ resolution: (0, local_context_js_1.reconcileSavedLocalDevContext)(saved.resolution.context, command.initialContext),
640
+ };
641
+ }
642
+ const discovery = await dispatch.dependencies.discoverContext(command.initialContext, dispatch.environment);
643
+ const resolution = (0, local_context_js_1.resolveInitialLocalDevContext)(command.initialContext, discovery);
644
+ dispatch.dependencies.writeContext(common, resolution.context);
645
+ return { gitCommonDirectory: common, resolution };
646
+ }
647
+ function operationWaitOptions(command) {
648
+ return command.timeoutMs === undefined
649
+ ? {}
650
+ : { timeoutMs: command.timeoutMs };
651
+ }
652
+ async function executeUp(command, coordinates, dispatch) {
653
+ const { resolution } = await resolveUpContext(command, dispatch);
654
+ const executed = await (0, dev_command_core_js_1.executeFleetUpCore)(command, {
655
+ appData: dispatch.appData,
656
+ context: resolution.context,
657
+ frameworkVersion: dispatch.dependencies.frameworkVersion(),
658
+ identity: coordinates.identity,
659
+ plan: coordinates.plan,
660
+ signal: dispatch.signal,
661
+ workspaceRoot: dispatch.workspaceRoot,
662
+ }, {
663
+ idempotencyKey: dispatch.dependencies.idempotencyKey,
664
+ inspectEnvironment: dispatch.dependencies.inspectEnvironment,
665
+ launchFleet: dispatch.dependencies.launchFleet,
666
+ reportCleanupFailure: (message) => dispatch.io.stderr(`[cleanup-incomplete] ${message}\n`),
667
+ });
668
+ return {
669
+ ...(executed.afterWrite ? { afterWrite: executed.afterWrite } : {}),
670
+ result: success(command.command, {
671
+ attached: executed.attached,
672
+ fleetId: executed.fleetId,
673
+ operation: executed.operation,
674
+ ...(executed.slices ? { slices: executed.slices } : {}),
675
+ }, executed.operationId),
676
+ };
677
+ }
678
+ async function exactClient(coordinates, dispatch) {
679
+ if (!dispatch.dependencies.pathExists(coordinates.paths.capability)) {
680
+ throw new errors_js_1.LocalDevContractError('not-running', `Fleet ${coordinates.fleetId} is not running.`);
681
+ }
682
+ return dispatch.dependencies.client(coordinates.paths);
683
+ }
684
+ function requireRecoveryFleet(coordinates) {
685
+ if (!coordinates.fleetId || !coordinates.paths) {
686
+ throw new errors_js_1.LocalDevContractError('not-running', 'No private Fleet record matches this checkout and personal stage.');
687
+ }
688
+ }
689
+ async function executeRestart(command, coordinates, dispatch) {
690
+ if (command.command !== 'restart') {
691
+ throw new errors_js_1.LocalDevContractError('invalid-input', 'Restart core received another lifecycle command.');
692
+ }
693
+ const selected = command.selector.all
694
+ ? undefined
695
+ : (0, nx_workspace_js_1.selectWorkspaceSlices)(coordinates.plan, command.selector);
696
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
697
+ const saved = dispatch.dependencies.readContext(common);
698
+ if (saved.kind !== 'ready') {
699
+ throw new errors_js_1.LocalDevContractError(saved.kind === 'invalid'
700
+ ? 'local-context-invalid'
701
+ : 'local-context-missing', saved.kind === 'invalid'
702
+ ? saved.reason
703
+ : 'Restart requires saved local-development context.');
704
+ }
705
+ const adapters = (selected ?? [...coordinates.plan.adapters.keys()]).map((name) => coordinates.plan.adapters.get(name));
706
+ const assessment = await inspectForCommand('restart', saved.resolution.context, coordinates.identity, dispatch, { adapters });
707
+ (0, environment_inspector_js_1.assertEnvironmentReady)(assessment);
708
+ await exactClient(coordinates, dispatch);
709
+ const launch = await dispatch.dependencies.launchFleet({
710
+ appData: dispatch.appData,
711
+ context: saved.resolution.context,
712
+ foreground: false,
713
+ frameworkVersion: dispatch.dependencies.frameworkVersion(),
714
+ sstMode: 'mono',
715
+ workspaceRoot: dispatch.workspaceRoot,
716
+ });
717
+ if (!launch.attached) {
718
+ await launch.client
719
+ .shutdown(dispatch.dependencies.idempotencyKey())
720
+ .catch(() => undefined);
721
+ throw new errors_js_1.LocalDevContractError('not-running', 'Restart requires an existing compatible Fleet supervisor.');
722
+ }
723
+ const client = launch.client;
724
+ const submission = await client.submit('restart', command.selector, dispatch.dependencies.idempotencyKey());
725
+ if (command.noWait) {
726
+ return {
727
+ result: success(command.command, { fleetId: coordinates.fleetId, operation: submission }, submission.operationId),
728
+ };
729
+ }
730
+ const operation = await client.waitForOperation(submission.operationId, operationWaitOptions(command));
731
+ const failed = lifecycleOperationFailure(command.command, coordinates.fleetId, operation);
732
+ if (failed)
733
+ return { result: failed };
734
+ return {
735
+ result: success(command.command, { fleetId: coordinates.fleetId, operation }, submission.operationId),
736
+ };
737
+ }
738
+ async function executeDown(command, coordinates, dispatch) {
739
+ if (command.command !== 'down') {
740
+ throw new errors_js_1.LocalDevContractError('invalid-input', 'Down core received another lifecycle command.');
741
+ }
742
+ requireRecoveryFleet(coordinates);
743
+ const client = await exactClient(coordinates, dispatch);
744
+ if (!command.selector.all) {
745
+ const state = await client.status();
746
+ const available = new Set(state.slices.map(({ name }) => name));
747
+ const unknown = command.selector.slices.find((slice) => !available.has(slice));
748
+ if (unknown) {
749
+ throw new errors_js_1.LocalDevContractError('unknown-slice', `Product Slice ${unknown} is absent from the live Fleet state.`);
750
+ }
751
+ }
752
+ const submission = await client.submit('down', command.selector, dispatch.dependencies.idempotencyKey());
753
+ if (command.noWait) {
754
+ return {
755
+ result: success(command.command, { fleetId: coordinates.fleetId, operation: submission }, submission.operationId),
756
+ };
757
+ }
758
+ const operation = await client.waitForOperation(submission.operationId, operationWaitOptions(command));
759
+ const failed = lifecycleOperationFailure(command.command, coordinates.fleetId, operation);
760
+ if (failed)
761
+ return { result: failed };
762
+ if (command.selector.all) {
763
+ await client.shutdown(dispatch.dependencies.idempotencyKey());
764
+ }
765
+ return {
766
+ result: success(command.command, { fleetId: coordinates.fleetId, operation }, submission.operationId),
767
+ };
768
+ }
769
+ function lifecycleOperationFailure(command, fleetId, operation) {
770
+ if (operation.state !== 'failed')
771
+ return undefined;
772
+ const classification = operation.failureClassification ?? 'internal-error';
773
+ const retained = command === 'down' && classification === 'cleanup-incomplete'
774
+ ? ' The affected Slice remains selected and its claim remains retained for a safe retry.'
775
+ : '';
776
+ return (0, output_js_1.createCliResult)({
777
+ command,
778
+ failureClassification: classification,
779
+ namespace: 'dev',
780
+ operationId: operation.id,
781
+ outcome: 'failed',
782
+ payload: {
783
+ fleetId,
784
+ message: `Fleet ${command} failed (${classification}).${retained}`,
785
+ operation,
786
+ },
787
+ });
788
+ }
789
+ async function executeStatus(coordinates, dispatch) {
790
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
791
+ const saved = dispatch.dependencies.readContext(common);
792
+ const discovery = await dispatch.dependencies.discoverContext({}, dispatch.environment);
793
+ const context = saved.kind === 'ready'
794
+ ? saved.resolution.context
795
+ : diagnosticContext(discovery);
796
+ const environment = await inspectForCommand('status', context, coordinates.identity, dispatch);
797
+ if (!coordinates.paths ||
798
+ !coordinates.fleetId ||
799
+ !dispatch.dependencies.pathExists(coordinates.paths.capability)) {
800
+ return {
801
+ result: success('status', {
802
+ context: contextPayload(saved),
803
+ environmentAssessment: environment,
804
+ ...(coordinates.fleetId ? { fleetId: coordinates.fleetId } : {}),
805
+ ...(coordinates.fleet ? { inventory: coordinates.fleet } : {}),
806
+ running: false,
807
+ }),
808
+ };
809
+ }
810
+ try {
811
+ const state = await dispatch.dependencies
812
+ .client(coordinates.paths)
813
+ .status();
814
+ return {
815
+ result: success('status', {
816
+ context: contextPayload(saved),
817
+ environmentAssessment: environment,
818
+ running: true,
819
+ state,
820
+ }),
821
+ };
822
+ }
823
+ catch (error) {
824
+ if (error instanceof control_contract_js_1.FleetControlUnauthorizedError) {
825
+ throw new errors_js_1.LocalDevContractError('stale-state-ambiguous', 'Fleet control capability was rejected; inspect the current-user private session before retrying.');
826
+ }
827
+ const inventory = await dispatch.dependencies.inventory({
828
+ appData: dispatch.appData,
829
+ });
830
+ return {
831
+ result: success('status', {
832
+ context: contextPayload(saved),
833
+ environmentAssessment: environment,
834
+ fleetId: coordinates.fleetId,
835
+ inventory: inventory.find(({ fleetId }) => fleetId === coordinates.fleetId),
836
+ running: false,
837
+ }),
838
+ };
839
+ }
840
+ }
841
+ function doctorOutcome(environment, local) {
842
+ if (environment.state === 'deficient') {
843
+ return { classification: 'environment-deficient', outcome: 'failed' };
844
+ }
845
+ if (local &&
846
+ (local.tls !== 'ready' ||
847
+ local.trust !== 'ready' ||
848
+ local.connectivity !== 'ready')) {
849
+ return {
850
+ classification: 'prerequisite-unavailable',
851
+ outcome: 'failed',
852
+ };
853
+ }
854
+ return { outcome: 'succeeded' };
855
+ }
856
+ async function executeDoctor(command, identity, dispatch) {
857
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
858
+ const saved = dispatch.dependencies.readContext(common);
859
+ const discovery = await dispatch.dependencies.discoverContext({}, dispatch.environment);
860
+ const context = saved.kind === 'ready'
861
+ ? saved.resolution.context
862
+ : diagnosticContext(discovery);
863
+ const environment = await inspectForCommand('doctor', context, identity, dispatch, { force: command.refresh });
864
+ const local = command.environmentOnly
865
+ ? undefined
866
+ : await dispatch.dependencies.inspectLocal({
867
+ appData: dispatch.appData,
868
+ }, {
869
+ projectName: 'workspace',
870
+ root: dispatch.workspaceRoot,
871
+ });
872
+ const [fleetInventory, sliceClaims] = await Promise.all([
873
+ dispatch.dependencies.inventory({ appData: dispatch.appData }),
874
+ dispatch.dependencies.inventoryClaims({ appData: dispatch.appData }),
875
+ ]);
876
+ const outcome = doctorOutcome(environment, local);
877
+ const payload = {
878
+ context: contextPayload(saved),
879
+ environmentAssessment: environment,
880
+ fleetInventory,
881
+ ...(local ? { localDevelopment: local } : {}),
882
+ sliceClaims,
883
+ };
884
+ return {
885
+ result: outcome.outcome === 'succeeded'
886
+ ? success(command.command, payload)
887
+ : (0, output_js_1.createCliResult)({
888
+ command: command.command,
889
+ failureClassification: outcome.classification,
890
+ namespace: 'dev',
891
+ outcome: 'failed',
892
+ payload,
893
+ }),
894
+ };
895
+ }
896
+ async function executeLogs(command, coordinates, dispatch) {
897
+ requireRecoveryFleet(coordinates);
898
+ const slices = selectorsForQuery(command, coordinates.plan);
899
+ const query = {
900
+ limit: command.limit,
901
+ ...(command.attempt === undefined ? {} : { attempt: command.attempt }),
902
+ ...(command.contains === undefined ? {} : { contains: command.contains }),
903
+ ...(command.correlationId === undefined
904
+ ? {}
905
+ : { correlationId: command.correlationId }),
906
+ ...(command.level === undefined ? {} : { level: command.level }),
907
+ ...(command.since === undefined ? {} : { since: command.since }),
908
+ ...(slices === undefined ? {} : { slices }),
909
+ ...(command.stream === undefined ? {} : { stream: command.stream }),
910
+ ...(command.until === undefined ? {} : { until: command.until }),
911
+ };
912
+ let result = dispatch.dependencies.searchLogs(coordinates.paths.logDirectory, query);
913
+ while (true) {
914
+ try {
915
+ return {
916
+ result: success(command.command, {
917
+ fleetId: coordinates.fleetId,
918
+ ...result,
919
+ }),
920
+ };
921
+ }
922
+ catch (error) {
923
+ if (result.records.length === 0)
924
+ throw error;
925
+ result = {
926
+ ...result,
927
+ records: result.records.slice(1),
928
+ truncated: true,
929
+ };
930
+ }
931
+ }
932
+ }
933
+ function writeTailRecord(record, json, io) {
934
+ io.stdout(json
935
+ ? `${(0, contract_validation_js_1.canonicalJson)(record)}\n`
936
+ : `${record.timestamp} ${record.slice} ${record.stream} ${record.message}\n`);
937
+ }
938
+ async function executeTail(command, coordinates, dispatch) {
939
+ requireRecoveryFleet(coordinates);
940
+ const slices = selectorsForQuery(command, coordinates.plan);
941
+ for await (const record of dispatch.dependencies.followLogs(coordinates.paths.logDirectory, {
942
+ ...(command.level === undefined ? {} : { level: command.level }),
943
+ lines: command.lines,
944
+ ...(slices === undefined ? {} : { slices }),
945
+ }, dispatch.signal)) {
946
+ writeTailRecord(record, command.json, dispatch.io);
947
+ }
948
+ return { streamed: true };
949
+ }
950
+ async function executeSetup(command, identity, dispatch) {
951
+ const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
952
+ const saved = dispatch.dependencies.readContext(common);
953
+ if (command.remove) {
954
+ const inventory = await dispatch.dependencies.inventory({
955
+ appData: dispatch.appData,
956
+ });
957
+ const blockers = inventory.filter(({ classification }) => classification !== 'stale');
958
+ if (blockers.length > 0) {
959
+ throw new errors_js_1.LocalDevContractError(blockers.some(({ classification }) => classification === 'live')
960
+ ? 'fleet-in-use'
961
+ : 'fleet-ownership-ambiguous', 'Setup removal is refused until every Fleet is proved absent or stale.');
962
+ }
963
+ }
964
+ const discovery = await dispatch.dependencies.discoverContext({}, dispatch.environment);
965
+ const context = saved.kind === 'ready'
966
+ ? saved.resolution.context
967
+ : diagnosticContext(discovery);
968
+ const assessment = await inspectForCommand('setup', context, identity, dispatch);
969
+ if (!command.remove)
970
+ (0, environment_inspector_js_1.assertEnvironmentReady)(assessment);
971
+ await dispatch.dependencies.runSetup({
972
+ appData: dispatch.appData,
973
+ hostSuffix: context.hostSuffix,
974
+ portless: command.portless,
975
+ remove: command.remove,
976
+ trust: command.trust,
977
+ upgrade: command.upgrade,
978
+ });
979
+ return {
980
+ result: success(command.command, {
981
+ appData: dispatch.appData,
982
+ environmentAssessment: assessment,
983
+ success: true,
984
+ }),
985
+ };
986
+ }
987
+ async function dispatchDevCommand(command, dispatch) {
988
+ if (command.command === 'ps') {
989
+ await recordDiagnosticAssessment('ps', dispatch);
990
+ const [fleets, sliceClaims] = await Promise.all([
991
+ dispatch.dependencies.inventory({ appData: dispatch.appData }),
992
+ dispatch.dependencies.inventoryClaims({ appData: dispatch.appData }),
993
+ ]);
994
+ return { result: success(command.command, { fleets, sliceClaims }) };
995
+ }
996
+ if (command.command === 'prune') {
997
+ await recordDiagnosticAssessment('prune', dispatch);
998
+ const pruned = await dispatch.dependencies.prune({
999
+ allStale: command.allStale,
1000
+ appData: dispatch.appData,
1001
+ ...(command.fleetId ? { fleetId: command.fleetId } : {}),
1002
+ });
1003
+ return { result: success(command.command, { pruned }) };
1004
+ }
1005
+ if (command.command === 'down' ||
1006
+ command.command === 'logs' ||
1007
+ command.command === 'tail') {
1008
+ await recordDiagnosticAssessment(command.command, dispatch);
1009
+ }
1010
+ if (command.command === 'configure') {
1011
+ return executeConfigure(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1012
+ }
1013
+ if (command.command === 'setup') {
1014
+ return executeSetup(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1015
+ }
1016
+ if (command.command === 'doctor') {
1017
+ return executeDoctor(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1018
+ }
1019
+ if (command.command === 'up' || command.command === 'restart') {
1020
+ const coordinates = await resolveCurrentFleetCoordinates(dispatch.workspaceRoot, dispatch.appData, dispatch.dependencies);
1021
+ return command.command === 'up'
1022
+ ? executeUp(command, coordinates, dispatch)
1023
+ : executeRestart(command, coordinates, dispatch);
1024
+ }
1025
+ const coordinates = await resolveRecoveryFleetCoordinates(dispatch.workspaceRoot, dispatch.appData, dispatch.dependencies);
1026
+ switch (command.command) {
1027
+ case 'status':
1028
+ return executeStatus(coordinates, dispatch);
1029
+ case 'down':
1030
+ return executeDown(command, coordinates, dispatch);
1031
+ case 'logs':
1032
+ return executeLogs(command, coordinates, dispatch);
1033
+ case 'tail':
1034
+ return executeTail(command, coordinates, dispatch);
1035
+ }
1036
+ }
1037
+ function processAbortSignal() {
1038
+ const controller = new AbortController();
1039
+ const abort = () => controller.abort();
1040
+ process.once('SIGINT', abort);
1041
+ process.once('SIGTERM', abort);
1042
+ return {
1043
+ cleanup: () => {
1044
+ process.removeListener('SIGINT', abort);
1045
+ process.removeListener('SIGTERM', abort);
1046
+ },
1047
+ signal: controller.signal,
1048
+ };
1049
+ }
1050
+ function commandJson(command) {
1051
+ return (command?.kind === 'agent' || command?.kind === 'dev') && command.json;
1052
+ }
1053
+ function commandName(command) {
1054
+ return command?.kind === 'agent' ||
1055
+ command?.kind === 'dev' ||
1056
+ command?.kind === 'secret'
1057
+ ? command.command
1058
+ : 'parse';
1059
+ }
1060
+ function commandNamespace(command, arguments_) {
1061
+ if (command?.kind === 'agent' || arguments_[0] === 'agent')
1062
+ return 'agent';
1063
+ return command?.kind === 'secret' || arguments_[0] === 'secret'
1064
+ ? 'secret'
1065
+ : 'dev';
1066
+ }
1067
+ async function runAgentCommandCore(command, io = {}, overrides = {}) {
1068
+ const output = {
1069
+ stderr: io.stderr ?? ((value) => process.stderr.write(value)),
1070
+ stdout: io.stdout ?? ((value) => process.stdout.write(value)),
1071
+ };
1072
+ try {
1073
+ const dependencies = defaultDependencies(overrides);
1074
+ const root = dependencies.resolveWorkspaceRoot(io.cwd ?? process.cwd());
1075
+ const execution = await dependencies.executeAgent(command, root);
1076
+ if (command.json) {
1077
+ writeResult(execution.result, true, output);
1078
+ }
1079
+ else if (execution.result.outcome === 'succeeded') {
1080
+ output.stdout(`${execution.human}\n`);
1081
+ }
1082
+ else {
1083
+ output.stderr(`[${execution.result.failureClassification ?? 'tool-internal-error'}] ${execution.human}\n`);
1084
+ }
1085
+ return (0, output_js_1.cliExitCode)(execution.result);
1086
+ }
1087
+ catch (error) {
1088
+ const classified = (0, agent_runtime_js_1.classifyDeveloperAgentCliError)(error);
1089
+ const result = failure('agent', command.command, classified.classification, classified.message);
1090
+ writeResult(result, command.json, output);
1091
+ return (0, output_js_1.cliExitCode)(result);
1092
+ }
1093
+ }
1094
+ /**
1095
+ * Shared command core consumed by both the `ebk` parser shell and the Nx
1096
+ * compatibility executor. It accepts an already validated command object, so
1097
+ * Nx never calls back through argv parsing or the CLI entry point.
1098
+ */
1099
+ async function runDevCommandCore(command, io = {}, overrides = {}) {
1100
+ const output = {
1101
+ stderr: io.stderr ?? ((value) => process.stderr.write(value)),
1102
+ stdout: io.stdout ?? ((value) => process.stdout.write(value)),
1103
+ };
1104
+ let ownedSignal;
1105
+ try {
1106
+ const dependencies = defaultDependencies(overrides);
1107
+ const root = dependencies.resolveWorkspaceRoot(io.cwd ?? process.cwd());
1108
+ dependencies.changeDirectory(root);
1109
+ if (!io.abortSignal)
1110
+ ownedSignal = processAbortSignal();
1111
+ const execution = await dispatchDevCommand(command, {
1112
+ appData: dependencies.appData(),
1113
+ dependencies,
1114
+ environment: io.environment ?? process.env,
1115
+ io: output,
1116
+ signal: io.abortSignal ?? ownedSignal.signal,
1117
+ workspaceRoot: root,
1118
+ });
1119
+ if (execution.result) {
1120
+ writeResult(execution.result, command.json, output);
1121
+ await execution.afterWrite;
1122
+ return (0, output_js_1.cliExitCode)(execution.result);
1123
+ }
1124
+ return execution.streamed ? 0 : 1;
1125
+ }
1126
+ catch (error) {
1127
+ const result = failureFromError('dev', command.command, error);
1128
+ writeResult(result, command.json, output);
1129
+ return (0, output_js_1.cliExitCode)(result);
1130
+ }
1131
+ finally {
1132
+ ownedSignal?.cleanup();
1133
+ }
1134
+ }
1135
+ async function runEbkCli(arguments_, io = {}, overrides = {}) {
1136
+ const output = {
1137
+ stderr: io.stderr ?? ((value) => process.stderr.write(value)),
1138
+ stdout: io.stdout ?? ((value) => process.stdout.write(value)),
1139
+ };
1140
+ let parsed;
1141
+ let ownedSignal;
1142
+ try {
1143
+ parsed = (0, dev_command_js_1.parseEbkArguments)(arguments_);
1144
+ if (parsed.kind === 'help') {
1145
+ output.stdout(`${parsed.namespace === 'agent'
1146
+ ? AGENT_HELP
1147
+ : parsed.namespace === 'dev'
1148
+ ? DEV_HELP
1149
+ : parsed.namespace === 'secret'
1150
+ ? SECRET_HELP
1151
+ : ROOT_HELP}\n`);
1152
+ return 0;
1153
+ }
1154
+ if (parsed.kind === 'version') {
1155
+ output.stdout(`${(overrides.frameworkVersion ?? packageVersion)()}\n`);
1156
+ return 0;
1157
+ }
1158
+ if (parsed.kind === 'dev') {
1159
+ return runDevCommandCore(parsed, io, overrides);
1160
+ }
1161
+ if (parsed.kind === 'agent') {
1162
+ return runAgentCommandCore(parsed, io, overrides);
1163
+ }
1164
+ const dependencies = defaultDependencies(overrides);
1165
+ const root = dependencies.resolveWorkspaceRoot(io.cwd ?? process.cwd());
1166
+ dependencies.changeDirectory(root);
1167
+ if (!io.abortSignal)
1168
+ ownedSignal = processAbortSignal();
1169
+ const dispatch = {
1170
+ appData: dependencies.appData(),
1171
+ dependencies,
1172
+ environment: io.environment ?? process.env,
1173
+ io: output,
1174
+ signal: io.abortSignal ?? ownedSignal.signal,
1175
+ workspaceRoot: root,
1176
+ };
1177
+ const execution = await executeSecretCommand(parsed, dispatch);
1178
+ if (execution.result) {
1179
+ writeResult(execution.result, false, output);
1180
+ await execution.afterWrite;
1181
+ return (0, output_js_1.cliExitCode)(execution.result);
1182
+ }
1183
+ return execution.streamed ? 0 : 1;
1184
+ }
1185
+ catch (error) {
1186
+ const result = failureFromError(commandNamespace(parsed, arguments_), commandName(parsed), error);
1187
+ writeResult(result, commandJson(parsed) || arguments_.includes('--json'), output);
1188
+ return (0, output_js_1.cliExitCode)(result);
1189
+ }
1190
+ finally {
1191
+ ownedSignal?.cleanup();
1192
+ }
1193
+ }
1194
+ if (require.main === module) {
1195
+ void runEbkCli(process.argv.slice(2)).then((code) => {
1196
+ process.exitCode = code;
1197
+ });
1198
+ }
1199
+ //# sourceMappingURL=main.js.map