@empire-builder-kit/nx 1.0.0-rc.4 → 1.0.0-rc.41

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 (805) hide show
  1. package/README.md +44 -10
  2. package/executors.json +21 -1
  3. package/generators.json +10 -0
  4. package/package.json +31 -7
  5. package/src/aws/child-environment.d.ts +10 -0
  6. package/src/aws/child-environment.js +77 -0
  7. package/src/aws/identity.d.ts +13 -0
  8. package/src/aws/identity.js +41 -0
  9. package/src/aws-authority/index.d.ts +2 -0
  10. package/src/aws-authority/index.js +6 -0
  11. package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
  12. package/src/aws-authority/lambda-policy-ordering.js +56 -0
  13. package/src/aws-authority/stage-authority.d.ts +248 -0
  14. package/src/aws-authority/stage-authority.js +3558 -0
  15. package/src/blueprints/external-sandbox.d.ts +1 -1
  16. package/src/blueprints/external-sandbox.js +21 -9
  17. package/src/blueprints/manifest.d.ts +1 -1
  18. package/src/blueprints/resolver.js +28 -15
  19. package/src/cli/bootstrap.d.ts +1 -1
  20. package/src/cli/deploy-runtime.d.ts +30 -0
  21. package/src/cli/deploy-runtime.js +174 -0
  22. package/src/cli/dev-command.d.ts +18 -4
  23. package/src/cli/dev-command.js +71 -0
  24. package/src/cli/main.d.ts +9 -1
  25. package/src/cli/main.js +157 -24
  26. package/src/cli/output.d.ts +1 -1
  27. package/src/cli/output.js +1 -1
  28. package/src/cli/personal-secret-runtime.d.ts +12 -0
  29. package/src/cli/personal-secret-runtime.js +18 -3
  30. package/src/cli/secret-terminal.js +1 -1
  31. package/src/container-images.d.ts +1 -1
  32. package/src/container-images.js +1 -1
  33. package/src/developer-agent/context.js +41 -9
  34. package/src/developer-agent/generator-planning.js +20 -6
  35. package/src/developer-agent/git-inspection.d.ts +6 -2
  36. package/src/developer-agent/git-inspection.js +78 -6
  37. package/src/developer-agent/model.d.ts +5 -3
  38. package/src/developer-agent/model.js +4 -4
  39. package/src/developer-agent/operation-registry.d.ts +15 -0
  40. package/src/developer-agent/operation-registry.js +342 -49
  41. package/src/developer-agent/planning.d.ts +8 -1
  42. package/src/developer-agent/planning.js +39 -16
  43. package/src/developer-agent/preview-changes.d.ts +2 -0
  44. package/src/developer-agent/preview-changes.js +14 -2
  45. package/src/developer-agent/preview-source.js +3 -0
  46. package/src/developer-agent/validation.js +25 -9
  47. package/src/developer-agent/workspace-inspection.js +60 -5
  48. package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
  49. package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
  50. package/src/executors/deployment-plan/deployment-plan.js +57 -2
  51. package/src/executors/dev-doctor/dev-doctor.js +13 -6
  52. package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
  53. package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
  54. package/src/executors/dev-task-cleanup/schema.json +9 -0
  55. package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
  56. package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
  57. package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
  58. package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
  59. package/src/executors/fleet/fleet.js +1 -1
  60. package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
  61. package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
  62. package/src/executors/foundation-preflight/schema.json +5 -0
  63. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
  64. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
  65. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
  66. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
  67. package/src/executors/foundation-profile-preflight/schema.json +15 -4
  68. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  69. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
  70. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  71. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  72. package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
  73. package/src/executors/github-bootstrap/schema.json +7 -1
  74. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
  75. package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
  76. package/src/executors/infrastructure-plan/schema.json +12 -52
  77. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  78. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  79. package/src/executors/local-deploy/local-approval.d.ts +18 -0
  80. package/src/executors/local-deploy/local-approval.js +39 -0
  81. package/src/executors/local-deploy/local-deploy.d.ts +112 -0
  82. package/src/executors/local-deploy/local-deploy.js +1404 -0
  83. package/src/executors/local-deploy/schema.json +70 -0
  84. package/src/executors/refresh/refresh.js +2 -2
  85. package/src/executors/remove/remove.js +2 -2
  86. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
  87. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
  88. package/src/executors/router-waf-rehearsal/schema.json +29 -0
  89. package/src/executors/secret-initialize/schema.json +42 -0
  90. package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
  91. package/src/executors/secret-initialize/secret-initialize.js +297 -0
  92. package/src/executors/secret-metadata/schema.json +5 -0
  93. package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
  94. package/src/executors/secret-metadata/secret-metadata.js +129 -30
  95. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  96. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  97. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
  98. package/src/executors/sst-lifecycle/governed-native-operation.js +163 -0
  99. package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
  100. package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
  101. package/src/executors/sst-lifecycle/run-sst-command.d.ts +46 -6
  102. package/src/executors/sst-lifecycle/run-sst-command.js +750 -71
  103. package/src/executors/sst-lifecycle/schema.json +8 -1
  104. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  105. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  106. package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
  107. package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
  108. package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
  109. package/src/executors/sst-lifecycle/task-unlock.js +126 -0
  110. package/src/executors/unlock/unlock.js +2 -2
  111. package/src/foundation/capability-plan.d.ts +43 -0
  112. package/src/foundation/capability-plan.js +168 -0
  113. package/src/foundation/cost-estimate.d.ts +170 -0
  114. package/src/foundation/cost-estimate.js +683 -0
  115. package/src/foundation/discovery.d.ts +14 -11
  116. package/src/foundation/discovery.js +32 -6
  117. package/src/foundation/index.d.ts +4 -0
  118. package/src/foundation/index.js +11 -0
  119. package/src/foundation/local-database-contract.d.ts +20 -0
  120. package/src/foundation/local-database-contract.js +262 -13
  121. package/src/foundation/local-private-smoke-access.d.ts +20 -0
  122. package/src/foundation/local-private-smoke-access.js +197 -0
  123. package/src/foundation/logging-preflight.js +1 -1
  124. package/src/foundation/logging.d.ts +3 -1
  125. package/src/foundation/logging.js +1 -1
  126. package/src/foundation/partial-state.d.ts +10 -0
  127. package/src/foundation/partial-state.js +21 -0
  128. package/src/foundation/preflight.js +37 -18
  129. package/src/foundation/private-smoke-access.d.ts +25 -0
  130. package/src/foundation/private-smoke-access.js +135 -0
  131. package/src/foundation/private-smoke-admission.d.ts +45 -0
  132. package/src/foundation/private-smoke-admission.js +180 -0
  133. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  134. package/src/foundation/private-smoke-control-plane.js +184 -0
  135. package/src/foundation/provision-database-bindings.d.ts +5 -0
  136. package/src/foundation/provision-database-bindings.js +41 -8
  137. package/src/foundation/provision-logical-database.js +15 -8
  138. package/src/foundation/requirements.d.ts +3 -3
  139. package/src/foundation/requirements.js +24 -12
  140. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  141. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  142. package/src/foundation/router-waf.d.ts +149 -0
  143. package/src/foundation/router-waf.js +809 -0
  144. package/src/foundation/stages.d.ts +1 -0
  145. package/src/foundation/stages.js +11 -0
  146. package/src/generators/blueprint/blueprint.d.ts +5 -0
  147. package/src/generators/blueprint/blueprint.js +102 -0
  148. package/src/generators/blueprint/files.d.ts +6 -0
  149. package/src/generators/blueprint/files.js +217 -0
  150. package/src/generators/blueprint/schema.d.ts +4 -0
  151. package/src/generators/blueprint/schema.json +18 -0
  152. package/src/generators/formatting.d.ts +8 -0
  153. package/src/generators/formatting.js +141 -0
  154. package/src/generators/function/function.js +38 -17
  155. package/src/generators/logging-registry.d.ts +2 -0
  156. package/src/generators/logging-registry.js +22 -0
  157. package/src/generators/post-generation-install.js +2 -2
  158. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  159. package/src/generators/preset/dependency-overrides.js +55 -0
  160. package/src/generators/preset/generator.js +43 -3
  161. package/src/generators/preset/schema.d.ts +10 -0
  162. package/src/generators/preset/schema.json +47 -0
  163. package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
  164. package/src/generators/preset/workspace-files-adopter-skills.js +324 -0
  165. package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
  166. package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
  167. package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
  168. package/src/generators/preset/workspace-files-ci-install.js +196 -0
  169. package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
  170. package/src/generators/preset/workspace-files-developer-agent.js +162 -44
  171. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  172. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  173. package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
  174. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  175. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  176. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  177. package/src/generators/preset/workspace-files-performance-load.js +39 -25
  178. package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
  179. package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
  180. package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
  181. package/src/generators/preset/workspace-files-stage-authority.js +529 -0
  182. package/src/generators/preset/workspace-files-thin-deploy.d.ts +65 -0
  183. package/src/generators/preset/workspace-files-thin-deploy.js +2507 -0
  184. package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
  185. package/src/generators/preset/workspace-files-thin-docs.js +370 -0
  186. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  187. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  188. package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
  189. package/src/generators/preset/workspace-files.d.ts +18 -2
  190. package/src/generators/preset/workspace-files.js +1525 -609
  191. package/src/generators/repository-policy/repository-policy.js +235 -5
  192. package/src/generators/repository-policy/schema.d.ts +10 -0
  193. package/src/generators/repository-policy/schema.json +80 -4
  194. package/src/generators/repository-policy/tree-policy.d.ts +3 -0
  195. package/src/generators/repository-policy/tree-policy.js +25 -0
  196. package/src/generators/slice/built-in-plan-api-contract-files.js +49 -11
  197. package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
  198. package/src/generators/slice/built-in-plan-api-files.js +130 -414
  199. package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
  200. package/src/generators/slice/built-in-plan-authorization-files.js +102 -334
  201. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +975 -233
  202. package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
  203. package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
  204. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  205. package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
  206. package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
  207. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  208. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  209. package/src/generators/slice/built-in-plan-data-files.js +176 -1200
  210. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
  211. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
  212. package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
  213. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
  214. package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
  215. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
  216. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +25 -2
  217. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
  218. package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
  219. package/src/generators/slice/built-in-plan-frontend-files.js +14 -3
  220. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  221. package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -730
  222. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +75 -14
  223. package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
  224. package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
  225. package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
  226. package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
  227. package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
  228. package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
  229. package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
  230. package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
  231. package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
  232. package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
  233. package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
  234. package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
  235. package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
  236. package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
  237. package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
  238. package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
  239. package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
  240. package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
  241. package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
  242. package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
  243. package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
  244. package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
  245. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
  246. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
  247. package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
  248. package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
  249. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
  250. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
  251. package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
  252. package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
  253. package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
  254. package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
  255. package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
  256. package/src/generators/slice/built-in-plan-metadata-files.js +159 -29
  257. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  258. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
  259. package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
  260. package/src/generators/slice/built-in-plan-operations-files.js +585 -97
  261. package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
  262. package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
  263. package/src/generators/slice/built-in-plan-project-files.js +141 -135
  264. package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
  265. package/src/generators/slice/built-in-plan-release-files.js +310 -70
  266. package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
  267. package/src/generators/slice/built-in-plan-reliability-files.js +283 -44
  268. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  269. package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
  270. package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
  271. package/src/generators/slice/built-in-plan-shared.js +41 -19
  272. package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
  273. package/src/generators/slice/built-in-plan-sql-events.js +276 -0
  274. package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
  275. package/src/generators/slice/built-in-plan-testing-files.js +304 -172
  276. package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
  277. package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
  278. package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
  279. package/src/generators/slice/built-in-plan-testing-persistence-files.js +180 -0
  280. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  281. package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
  282. package/src/generators/slice/built-in-plan-verification-files.js +76 -2
  283. package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
  284. package/src/generators/slice/built-in-plan-web-files.js +223 -16
  285. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
  286. package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
  287. package/src/generators/slice/built-in-plan.d.ts +11 -1
  288. package/src/generators/slice/built-in-plan.js +83 -30
  289. package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
  290. package/src/generators/slice/data-policy-review-seed.js +22 -0
  291. package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
  292. package/src/generators/slice/deployed-smoke-readiness.js +214 -0
  293. package/src/generators/slice/local-source-identity.d.ts +2 -0
  294. package/src/generators/slice/local-source-identity.js +31 -0
  295. package/src/generators/slice/persistence-contract.d.ts +14 -0
  296. package/src/generators/slice/persistence-contract.js +32 -0
  297. package/src/generators/slice/slice.js +61 -50
  298. package/src/generators/sql/schema.d.ts +7 -0
  299. package/src/generators/sql/schema.json +38 -0
  300. package/src/generators/sql/sql.d.ts +6 -0
  301. package/src/generators/sql/sql.js +53 -0
  302. package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
  303. package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
  304. package/src/generators/upgrade/upgrade.d.ts +15 -1
  305. package/src/generators/upgrade/upgrade.js +435 -44
  306. package/src/generators/workload/frozen-container.d.ts +1 -1
  307. package/src/generators/workload/performance-registration.d.ts +1 -0
  308. package/src/generators/workload/performance-registration.js +9 -11
  309. package/src/generators/workload/service-performance-files.d.ts +1 -0
  310. package/src/generators/workload/service-performance-files.js +27 -7
  311. package/src/generators/workload/workload.d.ts +1 -1
  312. package/src/generators/workload/workload.js +105 -29
  313. package/src/git-policy/action-pins.d.ts +5 -0
  314. package/src/git-policy/action-pins.js +5 -0
  315. package/src/git-policy/github-bootstrap.d.ts +48 -8
  316. package/src/git-policy/github-bootstrap.js +344 -176
  317. package/src/git-policy/routing.d.ts +7 -1
  318. package/src/git-policy/routing.js +62 -1
  319. package/src/index.d.ts +1 -0
  320. package/src/index.js +1 -0
  321. package/src/infrastructure-change/local-capability.d.ts +73 -0
  322. package/src/infrastructure-change/local-capability.js +114 -0
  323. package/src/infrastructure-change/model.d.ts +25 -4
  324. package/src/infrastructure-change/model.js +1 -0
  325. package/src/infrastructure-change/normalize.d.ts +4 -0
  326. package/src/infrastructure-change/normalize.js +47 -7
  327. package/src/infrastructure-change/plan.d.ts +30 -3
  328. package/src/infrastructure-change/plan.js +323 -13
  329. package/src/infrastructure-change/risk.d.ts +3 -1
  330. package/src/infrastructure-change/risk.js +96 -16
  331. package/src/local-dev/browser-verification.d.ts +37 -0
  332. package/src/local-dev/browser-verification.js +281 -0
  333. package/src/local-dev/contracts.d.ts +10 -1
  334. package/src/local-dev/contracts.js +114 -13
  335. package/src/local-dev/dev-command-core.js +24 -5
  336. package/src/local-dev/docker-credential-health.d.ts +14 -0
  337. package/src/local-dev/docker-credential-health.js +94 -0
  338. package/src/local-dev/environment-inspector.d.ts +7 -0
  339. package/src/local-dev/environment-inspector.js +42 -15
  340. package/src/local-dev/environment-state.js +2 -2
  341. package/src/local-dev/errors.d.ts +1 -1
  342. package/src/local-dev/errors.js +2 -0
  343. package/src/local-dev/fleet-client.js +2 -2
  344. package/src/local-dev/fleet-configuration.js +57 -25
  345. package/src/local-dev/fleet-inventory.js +58 -22
  346. package/src/local-dev/fleet-ipc.d.ts +7 -0
  347. package/src/local-dev/fleet-ipc.js +14 -2
  348. package/src/local-dev/fleet-launcher.d.ts +6 -0
  349. package/src/local-dev/fleet-launcher.js +16 -4
  350. package/src/local-dev/fleet-logs.js +50 -22
  351. package/src/local-dev/fleet-process.d.ts +20 -1
  352. package/src/local-dev/fleet-process.js +197 -41
  353. package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
  354. package/src/local-dev/fleet-runner-evidence.js +56 -0
  355. package/src/local-dev/fleet-runtime.js +268 -229
  356. package/src/local-dev/fleet-session.d.ts +2 -0
  357. package/src/local-dev/fleet-session.js +28 -11
  358. package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
  359. package/src/local-dev/fleet-state.d.ts +5 -2
  360. package/src/local-dev/fleet-state.js +25 -4
  361. package/src/local-dev/fleet-supervisor.d.ts +3 -0
  362. package/src/local-dev/fleet-supervisor.js +66 -11
  363. package/src/local-dev/fleet-web-start.d.ts +12 -0
  364. package/src/local-dev/fleet-web-start.js +48 -0
  365. package/src/local-dev/identity.js +3 -14
  366. package/src/local-dev/index.d.ts +1 -0
  367. package/src/local-dev/index.js +1 -0
  368. package/src/local-dev/native-completion.d.ts +9 -0
  369. package/src/local-dev/native-completion.js +130 -0
  370. package/src/local-dev/nx-workspace.d.ts +4 -2
  371. package/src/local-dev/nx-workspace.js +11 -6
  372. package/src/local-dev/personal-stage.d.ts +4 -5
  373. package/src/local-dev/personal-stage.js +6 -54
  374. package/src/local-dev/port-claims.d.ts +13 -0
  375. package/src/local-dev/port-claims.js +46 -0
  376. package/src/local-dev/ports.d.ts +14 -2
  377. package/src/local-dev/ports.js +78 -3
  378. package/src/local-dev/private-state.d.ts +11 -0
  379. package/src/local-dev/private-state.js +146 -40
  380. package/src/local-dev/process-group.d.ts +4 -0
  381. package/src/local-dev/process-group.js +29 -0
  382. package/src/local-dev/process-identity.d.ts +8 -0
  383. package/src/local-dev/process-identity.js +31 -1
  384. package/src/local-dev/proxy.js +11 -12
  385. package/src/local-dev/runtime-paths.js +1 -1
  386. package/src/local-dev/slice-claim.js +1 -1
  387. package/src/local-dev/slice-runner.d.ts +15 -6
  388. package/src/local-dev/slice-runner.js +189 -54
  389. package/src/local-dev/task-attachment.d.ts +17 -0
  390. package/src/local-dev/task-attachment.js +73 -0
  391. package/src/local-dev/task-authority.d.ts +10 -0
  392. package/src/local-dev/task-authority.js +27 -0
  393. package/src/local-dev/task-identity.d.ts +33 -0
  394. package/src/local-dev/task-identity.js +418 -0
  395. package/src/local-dev/task-native-writer.d.ts +18 -0
  396. package/src/local-dev/task-native-writer.js +329 -0
  397. package/src/local-dev/tls.js +8 -2
  398. package/src/local-dev/web-launch.d.ts +9 -0
  399. package/src/local-dev/web-launch.js +130 -0
  400. package/src/ownership/composition.d.ts +2 -1
  401. package/src/ownership/composition.js +1 -0
  402. package/src/performance/cost-collection.d.ts +1 -1
  403. package/src/performance/cost-collection.js +4 -2
  404. package/src/performance/cost-controls.d.ts +8 -4
  405. package/src/performance/cost-controls.js +39 -28
  406. package/src/performance/evidence.d.ts +1 -1
  407. package/src/performance/evidence.js +5 -3
  408. package/src/performance/load-safety.js +5 -3
  409. package/src/performance/model.d.ts +4 -4
  410. package/src/performance/model.js +4 -5
  411. package/src/performance/scenario.d.ts +22 -0
  412. package/src/performance/scenario.js +100 -92
  413. package/src/release/index.d.ts +0 -2
  414. package/src/release/index.js +0 -2
  415. package/src/release/source-authority.d.ts +5 -5
  416. package/src/release/source-authority.js +141 -124
  417. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  418. package/src/repository-policy/aurora-preflight.js +4 -1
  419. package/src/repository-policy/capacity-migration.d.ts +3 -0
  420. package/src/repository-policy/capacity-migration.js +21 -0
  421. package/src/repository-policy/deployment-plan.d.ts +4 -1
  422. package/src/repository-policy/deployment-plan.js +9 -0
  423. package/src/repository-policy/foundation-profile.js +10 -1
  424. package/src/repository-policy/policy.d.ts +57 -3
  425. package/src/repository-policy/policy.js +497 -11
  426. package/src/schemas/blueprint-v1.json +5 -4
  427. package/src/schemas/foundation-requirement-v1.json +5 -4
  428. package/src/schemas/performance-policy-v1.json +3 -3
  429. package/src/schemas/repository-policy-v1.json +130 -6
  430. package/src/schemas/testing-evidence-result-v1.json +1 -1
  431. package/src/secrets/adapters.d.ts +7 -2
  432. package/src/secrets/adapters.js +34 -3
  433. package/src/secrets/aws-control-plane.d.ts +10 -1
  434. package/src/secrets/aws-control-plane.js +67 -0
  435. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  436. package/src/secrets/generated-aws-control-plane.js +259 -0
  437. package/src/secrets/metadata.js +38 -10
  438. package/src/secrets/model.d.ts +8 -1
  439. package/src/secrets/model.js +24 -3
  440. package/src/secrets/operator.d.ts +91 -3
  441. package/src/secrets/operator.js +463 -13
  442. package/src/secrets/personal-command.d.ts +18 -2
  443. package/src/secrets/personal-command.js +66 -12
  444. package/src/secrets/registry.d.ts +2 -1
  445. package/src/secrets/registry.js +18 -1
  446. package/src/secrets/verification.js +15 -2
  447. package/src/secrets/workload-access.js +10 -2
  448. package/src/sst-environment-source-format.d.ts +6 -0
  449. package/src/sst-environment-source-format.js +199 -0
  450. package/src/supply-chain/action-pins.js +61 -7
  451. package/src/supply-chain/blueprint-trust-git.js +85 -24
  452. package/src/supply-chain/blueprint-verification-authority.js +55 -3
  453. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  454. package/src/supply-chain/build-output-bounds.js +12 -0
  455. package/src/supply-chain/build-output.d.ts +7 -1
  456. package/src/supply-chain/build-output.js +177 -24
  457. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  458. package/src/supply-chain/ecr-scanning.js +11 -7
  459. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  460. package/src/supply-chain/ecs-deployed-image.js +6 -4
  461. package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
  462. package/src/supply-chain/generated-command.js +1 -0
  463. package/src/supply-chain/generated-container-release-command.js +1285 -124
  464. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  465. package/src/supply-chain/generated-ecr-collector-command.js +200 -93
  466. package/src/supply-chain/generated-files.js +25 -14
  467. package/src/supply-chain/generated-scanner-command.js +2 -1
  468. package/src/supply-chain/index.d.ts +1 -1
  469. package/src/supply-chain/index.js +2 -1
  470. package/src/supply-chain/sbom.d.ts +1 -1
  471. package/src/supply-chain/sbom.js +30 -5
  472. package/src/supply-chain/scanner.js +3 -0
  473. package/src/testing-evidence/fixture-scope.d.ts +2 -1
  474. package/src/testing-evidence/fixture-scope.js +4 -2
  475. package/src/testing-evidence/result.d.ts +2 -1
  476. package/src/testing-evidence/result.js +18 -4
  477. package/src/workload-roles/account-baseline.d.ts +11 -0
  478. package/src/workload-roles/account-baseline.js +253 -16
  479. package/src/workload-roles/authority.d.ts +3 -1
  480. package/src/workload-roles/authority.js +48 -2
  481. package/src/workload-roles/aws-s3-state.js +27 -0
  482. package/src/workload-roles/boundary.d.ts +2 -1
  483. package/src/workload-roles/boundary.js +9 -2
  484. package/src/workload-roles/handler.js +52 -24
  485. package/src/workload-roles/index.d.ts +10 -17
  486. package/src/workload-roles/index.js +5 -18
  487. package/src/workload-roles/injection.js +1 -1
  488. package/src/workload-roles/provisioner.js +12 -4
  489. package/src/workload-roles/registration.d.ts +1 -0
  490. package/src/workload-roles/registration.js +5 -0
  491. package/src/workload-roles/stage-boundary.js +1 -1
  492. package/src/workload-roles/standard-slice.js +3 -3
  493. package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
  494. package/src/workspace-deployment/affected-lifecycle.js +84 -0
  495. package/src/workspace-deployment/identity.d.ts +3 -0
  496. package/src/workspace-deployment/identity.js +22 -0
  497. package/src/workspace-deployment/index.d.ts +4 -0
  498. package/src/workspace-deployment/index.js +8 -0
  499. package/src/workspace-deployment/migration-evidence.d.ts +29 -0
  500. package/src/workspace-deployment/migration-evidence.js +83 -0
  501. package/src/workspace-deployment/migration.d.ts +27 -0
  502. package/src/workspace-deployment/migration.js +109 -0
  503. package/src/workspace-deployment/ownership.d.ts +81 -0
  504. package/src/workspace-deployment/ownership.js +381 -0
  505. package/src/api-contract/baseline-update.js.map +0 -1
  506. package/src/api-contract/compatibility.js.map +0 -1
  507. package/src/api-contract/contract-graph.js.map +0 -1
  508. package/src/api-contract/evidence.js.map +0 -1
  509. package/src/api-contract/index.js.map +0 -1
  510. package/src/api-contract/model.fixtures.d.ts +0 -2
  511. package/src/api-contract/model.fixtures.js +0 -81
  512. package/src/api-contract/model.fixtures.js.map +0 -1
  513. package/src/api-contract/model.js.map +0 -1
  514. package/src/api-contract/rollout.js.map +0 -1
  515. package/src/authorization/compatibility.js.map +0 -1
  516. package/src/authorization/index.js.map +0 -1
  517. package/src/blueprints/execution.js.map +0 -1
  518. package/src/blueprints/external-sandbox.js.map +0 -1
  519. package/src/blueprints/index.js.map +0 -1
  520. package/src/blueprints/inputs.js.map +0 -1
  521. package/src/blueprints/manifest.js.map +0 -1
  522. package/src/blueprints/resolver.js.map +0 -1
  523. package/src/blueprints/transitions.js.map +0 -1
  524. package/src/cli/agent-command.js.map +0 -1
  525. package/src/cli/agent-runtime.js.map +0 -1
  526. package/src/cli/blueprint-authority.js.map +0 -1
  527. package/src/cli/blueprint-command.js.map +0 -1
  528. package/src/cli/bootstrap.js.map +0 -1
  529. package/src/cli/dev-command.js.map +0 -1
  530. package/src/cli/main.js.map +0 -1
  531. package/src/cli/output.js.map +0 -1
  532. package/src/cli/personal-secret-runtime.js.map +0 -1
  533. package/src/cli/secret-terminal.js.map +0 -1
  534. package/src/container-images.js.map +0 -1
  535. package/src/data-lifecycle/index.js.map +0 -1
  536. package/src/data-lifecycle/model.fixtures.d.ts +0 -2
  537. package/src/data-lifecycle/model.fixtures.js +0 -244
  538. package/src/data-lifecycle/model.fixtures.js.map +0 -1
  539. package/src/data-lifecycle/model.js.map +0 -1
  540. package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
  541. package/src/data-lifecycle/validation.js.map +0 -1
  542. package/src/database-retirement/contract.js.map +0 -1
  543. package/src/database-retirement/index.js.map +0 -1
  544. package/src/deterministic-order.js.map +0 -1
  545. package/src/developer-agent/context.js.map +0 -1
  546. package/src/developer-agent/generator-planning.js.map +0 -1
  547. package/src/developer-agent/generator-preview.js.map +0 -1
  548. package/src/developer-agent/git-inspection.js.map +0 -1
  549. package/src/developer-agent/handoff.js.map +0 -1
  550. package/src/developer-agent/index.js.map +0 -1
  551. package/src/developer-agent/model.js.map +0 -1
  552. package/src/developer-agent/operation-registry.js.map +0 -1
  553. package/src/developer-agent/ordering.js.map +0 -1
  554. package/src/developer-agent/planning.js.map +0 -1
  555. package/src/developer-agent/preview-changes.js.map +0 -1
  556. package/src/developer-agent/preview-source.js.map +0 -1
  557. package/src/developer-agent/validation.js.map +0 -1
  558. package/src/developer-agent/workspace-inspection.js.map +0 -1
  559. package/src/developer-agent/workspace-path.js.map +0 -1
  560. package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
  561. package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
  562. package/src/executors/deploy/deploy.js.map +0 -1
  563. package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
  564. package/src/executors/dev/dev.js.map +0 -1
  565. package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
  566. package/src/executors/dev-setup/dev-setup.js.map +0 -1
  567. package/src/executors/developer-context/developer-context.js.map +0 -1
  568. package/src/executors/fleet/fleet.js.map +0 -1
  569. package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
  570. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
  571. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
  572. package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
  573. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
  574. package/src/executors/refresh/refresh.js.map +0 -1
  575. package/src/executors/remove/remove.js.map +0 -1
  576. package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
  577. package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
  578. package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
  579. package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
  580. package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
  581. package/src/executors/unlock/unlock.js.map +0 -1
  582. package/src/executors/work-markers/work-markers.js.map +0 -1
  583. package/src/foundation/discovery.js.map +0 -1
  584. package/src/foundation/index.js.map +0 -1
  585. package/src/foundation/local-database-contract.js.map +0 -1
  586. package/src/foundation/logging-preflight.js.map +0 -1
  587. package/src/foundation/logging.js.map +0 -1
  588. package/src/foundation/preflight.js.map +0 -1
  589. package/src/foundation/provision-database-bindings.js.map +0 -1
  590. package/src/foundation/provision-logical-database.js.map +0 -1
  591. package/src/foundation/requirements.js.map +0 -1
  592. package/src/foundation/router-origin-proof.js.map +0 -1
  593. package/src/foundation/stages.js.map +0 -1
  594. package/src/frontend-security/index.js.map +0 -1
  595. package/src/frontend-security/security-headers.js.map +0 -1
  596. package/src/generators/feature-registry.js.map +0 -1
  597. package/src/generators/function/function.js.map +0 -1
  598. package/src/generators/job/job.js.map +0 -1
  599. package/src/generators/logging-registry.js.map +0 -1
  600. package/src/generators/post-generation-install.js.map +0 -1
  601. package/src/generators/preset/generator.js.map +0 -1
  602. package/src/generators/preset/tool-versions.js.map +0 -1
  603. package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
  604. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
  605. package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
  606. package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
  607. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
  608. package/src/generators/preset/workspace-files.js.map +0 -1
  609. package/src/generators/repository-policy/repository-policy.js.map +0 -1
  610. package/src/generators/service/service.js.map +0 -1
  611. package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
  612. package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
  613. package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
  614. package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
  615. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
  616. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
  617. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
  618. package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
  619. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
  620. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
  621. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
  622. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
  623. package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
  624. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
  625. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
  626. package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
  627. package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
  628. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
  629. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
  630. package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
  631. package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
  632. package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
  633. package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
  634. package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
  635. package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
  636. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
  637. package/src/generators/slice/built-in-plan-shared.js.map +0 -1
  638. package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
  639. package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
  640. package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
  641. package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
  642. package/src/generators/slice/built-in-plan.js.map +0 -1
  643. package/src/generators/slice/slice.js.map +0 -1
  644. package/src/generators/upgrade/upgrade.js.map +0 -1
  645. package/src/generators/workload/frozen-container.js.map +0 -1
  646. package/src/generators/workload/performance-registration.js.map +0 -1
  647. package/src/generators/workload/reliability-registration.js.map +0 -1
  648. package/src/generators/workload/service-performance-files.js.map +0 -1
  649. package/src/generators/workload/workload.js.map +0 -1
  650. package/src/git-policy/action-pins.js.map +0 -1
  651. package/src/git-policy/github-bootstrap.js.map +0 -1
  652. package/src/git-policy/index.js.map +0 -1
  653. package/src/git-policy/routing.js.map +0 -1
  654. package/src/index.js.map +0 -1
  655. package/src/infrastructure-change/convergence.js.map +0 -1
  656. package/src/infrastructure-change/drift.js.map +0 -1
  657. package/src/infrastructure-change/index.js.map +0 -1
  658. package/src/infrastructure-change/model.js.map +0 -1
  659. package/src/infrastructure-change/normalize.js.map +0 -1
  660. package/src/infrastructure-change/plan.js.map +0 -1
  661. package/src/infrastructure-change/risk.js.map +0 -1
  662. package/src/infrastructure-change/summary.js.map +0 -1
  663. package/src/local-dev/context-discovery.js.map +0 -1
  664. package/src/local-dev/contract-validation.js.map +0 -1
  665. package/src/local-dev/contracts.js.map +0 -1
  666. package/src/local-dev/control-contract.js.map +0 -1
  667. package/src/local-dev/dev-command-core.js.map +0 -1
  668. package/src/local-dev/effects.js.map +0 -1
  669. package/src/local-dev/environment-inspector.js.map +0 -1
  670. package/src/local-dev/environment-state.js.map +0 -1
  671. package/src/local-dev/errors.js.map +0 -1
  672. package/src/local-dev/fleet-client.js.map +0 -1
  673. package/src/local-dev/fleet-configuration.js.map +0 -1
  674. package/src/local-dev/fleet-inventory.js.map +0 -1
  675. package/src/local-dev/fleet-ipc.js.map +0 -1
  676. package/src/local-dev/fleet-launcher.js.map +0 -1
  677. package/src/local-dev/fleet-lock.js.map +0 -1
  678. package/src/local-dev/fleet-logs.js.map +0 -1
  679. package/src/local-dev/fleet-process.js.map +0 -1
  680. package/src/local-dev/fleet-runtime.js.map +0 -1
  681. package/src/local-dev/fleet-session.js.map +0 -1
  682. package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
  683. package/src/local-dev/fleet-startup.js.map +0 -1
  684. package/src/local-dev/fleet-state.js.map +0 -1
  685. package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
  686. package/src/local-dev/fleet-supervisor.js.map +0 -1
  687. package/src/local-dev/gateway-daemon.js.map +0 -1
  688. package/src/local-dev/gateway.js.map +0 -1
  689. package/src/local-dev/identity.js.map +0 -1
  690. package/src/local-dev/index.js.map +0 -1
  691. package/src/local-dev/local-context.js.map +0 -1
  692. package/src/local-dev/nx-workspace.js.map +0 -1
  693. package/src/local-dev/personal-secret-ledger.js.map +0 -1
  694. package/src/local-dev/personal-stage.js.map +0 -1
  695. package/src/local-dev/portless.js.map +0 -1
  696. package/src/local-dev/ports.js.map +0 -1
  697. package/src/local-dev/private-state.js.map +0 -1
  698. package/src/local-dev/process-identity.js.map +0 -1
  699. package/src/local-dev/proxy.js.map +0 -1
  700. package/src/local-dev/runtime-paths.js.map +0 -1
  701. package/src/local-dev/secret-slice-claim.js.map +0 -1
  702. package/src/local-dev/slice-claim.js.map +0 -1
  703. package/src/local-dev/slice-runner.js.map +0 -1
  704. package/src/local-dev/tls.js.map +0 -1
  705. package/src/ownership/composition.js.map +0 -1
  706. package/src/ownership/foundation-record.js.map +0 -1
  707. package/src/ownership/hash.js.map +0 -1
  708. package/src/ownership/index.js.map +0 -1
  709. package/src/ownership/json-ownership.js.map +0 -1
  710. package/src/ownership/record.js.map +0 -1
  711. package/src/ownership/workspace-record.js.map +0 -1
  712. package/src/performance/cost-collection.js.map +0 -1
  713. package/src/performance/cost-controls.js.map +0 -1
  714. package/src/performance/evidence.js.map +0 -1
  715. package/src/performance/index.js.map +0 -1
  716. package/src/performance/load-safety.js.map +0 -1
  717. package/src/performance/model.js.map +0 -1
  718. package/src/performance/pr-artifact-budget.js.map +0 -1
  719. package/src/performance/runner.js.map +0 -1
  720. package/src/performance/scenario-endpoint.js.map +0 -1
  721. package/src/performance/scenario.js.map +0 -1
  722. package/src/performance/test-fixtures.d.ts +0 -7
  723. package/src/performance/test-fixtures.js +0 -169
  724. package/src/performance/test-fixtures.js.map +0 -1
  725. package/src/performance/unit-cost.js.map +0 -1
  726. package/src/release/index.js.map +0 -1
  727. package/src/release/lifecycle.js.map +0 -1
  728. package/src/release/manifest.js.map +0 -1
  729. package/src/release/rollout.js.map +0 -1
  730. package/src/release/source-authority.js.map +0 -1
  731. package/src/repository-policy/aurora-preflight.js.map +0 -1
  732. package/src/repository-policy/deployment-plan.js.map +0 -1
  733. package/src/repository-policy/foundation-profile.js.map +0 -1
  734. package/src/repository-policy/index.js.map +0 -1
  735. package/src/repository-policy/policy.js.map +0 -1
  736. package/src/secrets/adapters.js.map +0 -1
  737. package/src/secrets/aws-control-plane.js.map +0 -1
  738. package/src/secrets/declaration-verification.js.map +0 -1
  739. package/src/secrets/guardrails.js.map +0 -1
  740. package/src/secrets/index.js.map +0 -1
  741. package/src/secrets/metadata.js.map +0 -1
  742. package/src/secrets/model.js.map +0 -1
  743. package/src/secrets/operator.js.map +0 -1
  744. package/src/secrets/permissions.js.map +0 -1
  745. package/src/secrets/personal-command.js.map +0 -1
  746. package/src/secrets/personal-ledger.js.map +0 -1
  747. package/src/secrets/registry.js.map +0 -1
  748. package/src/secrets/verification.js.map +0 -1
  749. package/src/secrets/workload-access.js.map +0 -1
  750. package/src/supply-chain/action-pins.js.map +0 -1
  751. package/src/supply-chain/blueprint-trust-git.js.map +0 -1
  752. package/src/supply-chain/blueprint-trust-process.js.map +0 -1
  753. package/src/supply-chain/blueprint-trust.js.map +0 -1
  754. package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
  755. package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
  756. package/src/supply-chain/build-output.js.map +0 -1
  757. package/src/supply-chain/common.js.map +0 -1
  758. package/src/supply-chain/container-artifact-contract.js.map +0 -1
  759. package/src/supply-chain/container-release.js.map +0 -1
  760. package/src/supply-chain/ecr-applicability.js.map +0 -1
  761. package/src/supply-chain/ecr-scanning.js.map +0 -1
  762. package/src/supply-chain/ecs-deployed-image.js.map +0 -1
  763. package/src/supply-chain/errors.js.map +0 -1
  764. package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
  765. package/src/supply-chain/generated-command.js.map +0 -1
  766. package/src/supply-chain/generated-container-release-command.js.map +0 -1
  767. package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
  768. package/src/supply-chain/generated-files.js.map +0 -1
  769. package/src/supply-chain/generated-scanner-command.js.map +0 -1
  770. package/src/supply-chain/index.js.map +0 -1
  771. package/src/supply-chain/inventory.js.map +0 -1
  772. package/src/supply-chain/license-expression.js.map +0 -1
  773. package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
  774. package/src/supply-chain/policy.js.map +0 -1
  775. package/src/supply-chain/publication.js.map +0 -1
  776. package/src/supply-chain/sbom.js.map +0 -1
  777. package/src/supply-chain/scanner.js.map +0 -1
  778. package/src/supply-chain/vendored-source.js.map +0 -1
  779. package/src/testing-evidence/fixture-scope.js.map +0 -1
  780. package/src/testing-evidence/index.js.map +0 -1
  781. package/src/testing-evidence/quarantine.js.map +0 -1
  782. package/src/testing-evidence/result.js.map +0 -1
  783. package/src/testing-evidence/runner-adapter.js.map +0 -1
  784. package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
  785. package/src/validation.js.map +0 -1
  786. package/src/work-markers/index.js.map +0 -1
  787. package/src/work-markers/work-markers.js.map +0 -1
  788. package/src/workload-roles/account-baseline.js.map +0 -1
  789. package/src/workload-roles/authority.js.map +0 -1
  790. package/src/workload-roles/aws-adapter.js.map +0 -1
  791. package/src/workload-roles/aws-internal-handler.js.map +0 -1
  792. package/src/workload-roles/aws-s3-state.js.map +0 -1
  793. package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
  794. package/src/workload-roles/boundary.js.map +0 -1
  795. package/src/workload-roles/convergence.js.map +0 -1
  796. package/src/workload-roles/effective-policy.js.map +0 -1
  797. package/src/workload-roles/handler.js.map +0 -1
  798. package/src/workload-roles/history.js.map +0 -1
  799. package/src/workload-roles/index.js.map +0 -1
  800. package/src/workload-roles/injection.js.map +0 -1
  801. package/src/workload-roles/manifest.js.map +0 -1
  802. package/src/workload-roles/provisioner.js.map +0 -1
  803. package/src/workload-roles/registration.js.map +0 -1
  804. package/src/workload-roles/stage-boundary.js.map +0 -1
  805. package/src/workload-roles/standard-slice.js.map +0 -1
package/src/cli/main.js CHANGED
@@ -33,7 +33,11 @@ const runtime_paths_js_1 = require("../local-dev/runtime-paths.js");
33
33
  const secret_slice_claim_js_1 = require("../local-dev/secret-slice-claim.js");
34
34
  const tls_js_1 = require("../local-dev/tls.js");
35
35
  const personal_command_js_1 = require("../secrets/personal-command.js");
36
+ const index_js_1 = require("../workspace-deployment/index.js");
37
+ const task_attachment_js_1 = require("../local-dev/task-attachment.js");
38
+ const task_identity_js_1 = require("../local-dev/task-identity.js");
36
39
  const dev_command_js_1 = require("./dev-command.js");
40
+ const deploy_runtime_js_1 = require("./deploy-runtime.js");
37
41
  const agent_runtime_js_1 = require("./agent-runtime.js");
38
42
  const output_js_1 = require("./output.js");
39
43
  const personal_secret_runtime_js_1 = require("./personal-secret-runtime.js");
@@ -43,11 +47,39 @@ const ROOT_HELP = `Empire Builder Kit
43
47
  Usage:
44
48
  ebk agent <command> [options]
45
49
  ebk blueprint verification-review
50
+ ebk deploy [stage] [slice...] [options]
46
51
  ebk dev <command> [options]
47
52
  ebk secret <command> <slice> <logical-name>
48
53
 
49
- Run "ebk agent --help", "ebk blueprint --help", "ebk dev --help", or
54
+ Run "ebk agent --help", "ebk blueprint --help", "ebk deploy --help", "ebk dev --help", or
50
55
  "ebk secret --help" for namespace help.`;
56
+ const DEPLOY_HELP = `Empire Builder Kit local deployment
57
+
58
+ Usage:
59
+ ebk deploy [development|staging|production] [slice...] --expectedRoleArn=<role-arn> [--profile=<aws-profile>]
60
+ ebk deploy development [slice...] --expectedRoleArn=<role-arn> [--profile=<aws-profile>] --json
61
+
62
+ The stage defaults to development; --stage=<stage> is also supported instead
63
+ of a positional stage. Account and Region come from committed repository policy.
64
+ Uses the workspace-pinned Nx deploy-local target: Foundation, then eligible
65
+ Slices, declared migrations and deployed smoke. Supply billing to deploy only
66
+ that Slice after Foundation; omit Slice names for the complete stage. Other
67
+ Slices are not redeployed and must already exist if the feature needs them.
68
+ Native output and terminal
69
+ interaction are inherited; arbitrary Nx/SST options are not accepted.
70
+ The existing deployment receipt is the structured result, not a CLI success seal.
71
+
72
+ --json is accepted for development only. Native output then moves to stderr,
73
+ and stdout carries one bounded, secret-free result after the run: the
74
+ deployment receipt this run wrote and each project's target outcome (receipt
75
+ null when none was written). The exit code is the lifecycle's own. --json is
76
+ refused for staging and production and never replaces their acknowledgement.
77
+
78
+ Development allows dirty source without a prompt. Local staging requires a
79
+ clean commit and its TTY acknowledgement. Starter production requires a clean
80
+ commit and the exact deploy:production:<account>:<region>:<source-commit> TTY
81
+ confirmation. Isolated protected stages remain GitHub-only. No authority or
82
+ confirmation is inferred from a hot task; ebk dev up remains the hot edit loop.`;
51
83
  const AGENT_HELP = `Empire Builder Kit Developer-Agent contract
52
84
 
53
85
  Usage:
@@ -75,6 +107,7 @@ Usage:
75
107
  ebk dev configure [<context options>] [--clear-development-router-url] [--json]
76
108
  ebk dev setup [--trust] [--portless] [--upgrade] [--remove] [--json]
77
109
  ebk dev up <slice...>|--all [--foreground] [--sst-mode=mono|multiplexer]
110
+ ebk dev attach <task-id> [--json]
78
111
  [--no-wait] [--timeout=<duration>] [<context options>] [--json]
79
112
  ebk dev status [--json]
80
113
  ebk dev restart <slice...>|--all [--no-wait] [--timeout=<duration>] [--json]
@@ -98,16 +131,20 @@ Configure mutation requires at least one context option or
98
131
  non-router context changes.
99
132
 
100
133
  Use "ebk dev <command> --help" to return this bounded command reference.
101
- Fleet stage is always derived from the current operating-system account.`;
134
+ Fleet stage uses a persisted random task ID per worktree. Use attach explicitly
135
+ to resume a verified inactive task; --stage overrides are not supported.`;
102
136
  const SECRET_HELP = `Empire Builder Kit personal secrets
103
137
 
104
138
  Usage:
105
139
  ebk secret set <slice> <logical-name>
106
140
  ebk secret remove <slice> <logical-name>
107
141
 
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.`;
142
+ Both commands derive the personal stage and read the saved development
143
+ profile and Region. set accepts the value only through a hidden local TTY,
144
+ never through argv, environment, or files, and refuses agent and CI
145
+ environments: a human runs it in a terminal no agent spawned. remove carries
146
+ no value; an agent may start it, and the human types the hidden
147
+ REMOVE <logical-name> confirmation in that interactive terminal.`;
111
148
  function inspectWorkspaceFilesystemIdentity(path) {
112
149
  const status = (0, node_fs_1.statSync)(path, { bigint: true });
113
150
  return {
@@ -142,13 +179,12 @@ function packageVersion() {
142
179
  }
143
180
  function workspaceRoot(cwd) {
144
181
  try {
145
- const root = (0, node_child_process_1.execFileSync)('git', [
182
+ const git = (args) => (0, node_child_process_1.execFileSync)('git', [
146
183
  '--no-optional-locks',
147
184
  '-c',
148
185
  'core.fsmonitor=false',
149
186
  'rev-parse',
150
- '--path-format=absolute',
151
- '--show-toplevel',
187
+ ...args,
152
188
  ], {
153
189
  cwd,
154
190
  encoding: 'utf8',
@@ -157,9 +193,22 @@ function workspaceRoot(cwd) {
157
193
  timeout: 5_000,
158
194
  windowsHide: true,
159
195
  }).trim();
160
- if (!(0, node_path_1.isAbsolute)(root))
196
+ const toplevel = git(['--path-format=absolute', '--show-toplevel']);
197
+ if (!(0, node_path_1.isAbsolute)(toplevel))
161
198
  throw new Error('Git returned a relative path.');
162
- return (0, node_fs_1.realpathSync)(root);
199
+ // Spell the root the way this process's working directory spells it. Git
200
+ // canonicalizes Windows 8.3 aliases to long names while every in-process
201
+ // resolver, the fleet runtime and the retained task pointer use realpathSync,
202
+ // so a checkout under an aliased directory (a hosted runner's TEMP) would
203
+ // otherwise be seen under two spellings and refused as another checkout.
204
+ let root = (0, node_fs_1.realpathSync)(cwd);
205
+ for (const segment of git(['--show-prefix']).split('/')) {
206
+ if (segment)
207
+ root = (0, node_path_1.dirname)(root);
208
+ }
209
+ if (node_fs_1.realpathSync.native(root) !== node_fs_1.realpathSync.native(toplevel))
210
+ throw new Error('Git toplevel does not match the working directory.');
211
+ return root;
163
212
  }
164
213
  catch {
165
214
  throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'Run ebk from a Git workspace with a readable repository root.');
@@ -167,13 +216,17 @@ function workspaceRoot(cwd) {
167
216
  }
168
217
  function defaultDependencies(overrides) {
169
218
  return {
219
+ attachTask: task_attachment_js_1.attachStoppedTask,
220
+ bindTask: task_identity_js_1.bindTaskEnvironment,
170
221
  acquireSecretLedgerLock: personal_secret_ledger_js_1.acquirePersonalSecretLedgerLock,
171
222
  appData: tls_js_1.defaultLocalDevAppData,
172
223
  assertSecretSliceClaim: secret_slice_claim_js_1.assertSecretSliceClaimAuthority,
224
+ assertWorkspaceOwnership: index_js_1.assertWorkspaceStageOwnershipForWorkspace,
173
225
  changeDirectory: (root) => process.chdir(root),
174
226
  client: (paths) => new fleet_client_js_1.FleetClient(paths),
175
227
  discoverContext: context_discovery_js_1.discoverLocalDevContext,
176
228
  executeAgent: agent_runtime_js_1.executeDeveloperAgentCommand,
229
+ executeDeploy: deploy_runtime_js_1.executeDeployCommand,
177
230
  followLogs: fleet_logs_js_1.followFleetLogs,
178
231
  frameworkVersion: packageVersion,
179
232
  gitCommonDirectory: fleet_launcher_js_1.resolveGitCommonDirectory,
@@ -224,7 +277,7 @@ function planWorkspaceName(plan) {
224
277
  }
225
278
  async function resolveCurrentFleetCoordinates(workspaceRoot, appData, dependencies) {
226
279
  const plan = await dependencies.loadPlan();
227
- const identity = dependencies.personalStageResolver.resolve();
280
+ const identity = dependencies.personalStageResolver.resolve(workspaceRoot);
228
281
  const workspaceName = planWorkspaceName(plan);
229
282
  const fleetId = (0, identity_js_1.createFleetId)({
230
283
  checkoutPath: workspaceRoot,
@@ -240,7 +293,7 @@ async function resolveCurrentFleetCoordinates(workspaceRoot, appData, dependenci
240
293
  };
241
294
  }
242
295
  async function resolveRecoveryFleetCoordinates(workspaceRoot, appData, dependencies, currentPlatform = process.platform) {
243
- const identity = dependencies.personalStageResolver.resolve();
296
+ const identity = dependencies.personalStageResolver.resolve(workspaceRoot);
244
297
  const inventory = await dependencies.inventory({ appData });
245
298
  const matches = inventory.filter(({ checkout, stage }) => checkout !== undefined &&
246
299
  sameWorkspaceRealpath(checkout, workspaceRoot, currentPlatform) &&
@@ -407,7 +460,7 @@ function secretCommandFailure(error) {
407
460
  async function executeSecretCommand(command, dispatch) {
408
461
  try {
409
462
  const ceremony = dispatch.dependencies.secretCeremony(dispatch.environment);
410
- (0, personal_command_js_1.assertHumanSecretCeremony)(ceremony);
463
+ (0, personal_command_js_1.assertHumanSecretCeremony)(ceremony, command.command);
411
464
  const common = dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot);
412
465
  const saved = dispatch.dependencies.readContext(common);
413
466
  if (saved.kind !== 'ready') {
@@ -418,7 +471,7 @@ async function executeSecretCommand(command, dispatch) {
418
471
  : 'Personal secret commands require saved local-development profile and Region context. Run ebk dev configure first.');
419
472
  }
420
473
  const context = saved.resolution.context;
421
- const identity = dispatch.dependencies.personalStageResolver.resolve();
474
+ const identity = dispatch.dependencies.personalStageResolver.resolve(dispatch.workspaceRoot);
422
475
  const environmentAssessment = await dispatch.dependencies.inspectEnvironment({
423
476
  appData: dispatch.appData,
424
477
  command: 'secret',
@@ -459,6 +512,20 @@ async function executeSecretCommand(command, dispatch) {
459
512
  accountId !== developmentAccountId) {
460
513
  throw new personal_command_js_1.PersonalSecretCommandError('personal-secret-account-invalid');
461
514
  }
515
+ try {
516
+ const ownership = await dispatch.dependencies.assertWorkspaceOwnership(dispatch.workspaceRoot, 'development', { profile: context.profile });
517
+ if (ownership.region !== context.region) {
518
+ throw new Error('Personal secret Region differs from workspace owner.');
519
+ }
520
+ dispatch.dependencies.bindTask(dispatch.workspaceRoot, {
521
+ accountId,
522
+ region: ownership.region,
523
+ workspaceDeploymentId: ownership.expectedOwner.workspaceDeploymentId,
524
+ });
525
+ }
526
+ catch {
527
+ throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'The development AWS tuple is not owned by this workspace. Run the generated workspace ownership doctor before personal secret mutation.');
528
+ }
462
529
  const store = dispatch.dependencies.secretStore({
463
530
  aws,
464
531
  environment: dispatch.environment,
@@ -563,7 +630,7 @@ async function recordDiagnosticAssessment(command, dispatch) {
563
630
  command,
564
631
  context,
565
632
  frameworkVersion: dispatch.dependencies.frameworkVersion(),
566
- identity: dispatch.dependencies.personalStageResolver.resolve(),
633
+ identity: dispatch.dependencies.personalStageResolver.resolve(dispatch.workspaceRoot),
567
634
  workspaceRoot: dispatch.workspaceRoot,
568
635
  });
569
636
  }
@@ -749,7 +816,26 @@ async function executeDown(command, coordinates, dispatch) {
749
816
  throw new errors_js_1.LocalDevContractError('unknown-slice', `Product Slice ${unknown} is absent from the live Fleet state.`);
750
817
  }
751
818
  }
752
- const submission = await client.submit('down', command.selector, dispatch.dependencies.idempotencyKey());
819
+ let submission;
820
+ try {
821
+ submission = await client.submit('down', command.selector, dispatch.dependencies.idempotencyKey());
822
+ }
823
+ catch (error) {
824
+ if (!command.selector.all ||
825
+ !(error instanceof errors_js_1.LocalDevContractError) ||
826
+ error.classification !== 'not-running')
827
+ throw error;
828
+ // This remains an authenticated shutdown request. The supervisor checks
829
+ // in-flight work, active selections, and owned cleanup independently.
830
+ await client.shutdown(dispatch.dependencies.idempotencyKey());
831
+ return {
832
+ result: success(command.command, {
833
+ fleetId: coordinates.fleetId,
834
+ alreadyEmpty: true,
835
+ shutdown: 'accepted',
836
+ }),
837
+ };
838
+ }
753
839
  if (command.noWait) {
754
840
  return {
755
841
  result: success(command.command, { fleetId: coordinates.fleetId, operation: submission }, submission.operationId),
@@ -874,12 +960,27 @@ async function executeDoctor(command, identity, dispatch) {
874
960
  dispatch.dependencies.inventoryClaims({ appData: dispatch.appData }),
875
961
  ]);
876
962
  const outcome = doctorOutcome(environment, local);
963
+ const diagnostics = [
964
+ ...environment.checks
965
+ .filter(({ status }) => !['ready', 'unverified', 'not-required'].includes(status))
966
+ .map(({ id, status, remediation }) => `${id}=${status}${remediation ? `: ${remediation}` : ''}`),
967
+ ...(local?.issues ?? []),
968
+ ]
969
+ .slice(0, 8)
970
+ .map((message) => message.slice(0, 512));
877
971
  const payload = {
878
972
  context: contextPayload(saved),
879
973
  environmentAssessment: environment,
880
974
  fleetInventory,
881
975
  ...(local ? { localDevelopment: local } : {}),
882
976
  sliceClaims,
977
+ ...(outcome.outcome === 'failed'
978
+ ? {
979
+ message: diagnostics.length > 0
980
+ ? diagnostics.join(' ')
981
+ : 'Development readiness is incomplete. Run ebk dev doctor --refresh --json to inspect the exact prerequisite.',
982
+ }
983
+ : {}),
883
984
  };
884
985
  return {
885
986
  result: outcome.outcome === 'succeeded'
@@ -985,6 +1086,26 @@ async function executeSetup(command, identity, dispatch) {
985
1086
  };
986
1087
  }
987
1088
  async function dispatchDevCommand(command, dispatch) {
1089
+ if (command.command === 'attach') {
1090
+ const saved = dispatch.dependencies.readContext(dispatch.dependencies.gitCommonDirectory(dispatch.workspaceRoot));
1091
+ if (saved.kind !== 'ready')
1092
+ throw new errors_js_1.LocalDevContractError('local-context-missing', 'Task attachment requires saved AWS context. Run ebk dev configure first.');
1093
+ const plan = await dispatch.dependencies.loadPlan();
1094
+ const task = await dispatch.dependencies.attachTask({
1095
+ appData: dispatch.appData,
1096
+ context: saved.resolution.context,
1097
+ taskId: command.taskId,
1098
+ workspaceName: planWorkspaceName(plan),
1099
+ workspaceRoot: dispatch.workspaceRoot,
1100
+ });
1101
+ return {
1102
+ result: success('attach', {
1103
+ taskId: task.taskId,
1104
+ stage: `personal-${task.taskId}`,
1105
+ nextAction: 'ebk dev up <slice...>',
1106
+ }),
1107
+ };
1108
+ }
988
1109
  if (command.command === 'ps') {
989
1110
  await recordDiagnosticAssessment('ps', dispatch);
990
1111
  const [fleets, sliceClaims] = await Promise.all([
@@ -1008,13 +1129,13 @@ async function dispatchDevCommand(command, dispatch) {
1008
1129
  await recordDiagnosticAssessment(command.command, dispatch);
1009
1130
  }
1010
1131
  if (command.command === 'configure') {
1011
- return executeConfigure(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1132
+ return executeConfigure(command, dispatch.dependencies.personalStageResolver.resolve(dispatch.workspaceRoot), dispatch);
1012
1133
  }
1013
1134
  if (command.command === 'setup') {
1014
- return executeSetup(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1135
+ return executeSetup(command, dispatch.dependencies.personalStageResolver.resolve(dispatch.workspaceRoot), dispatch);
1015
1136
  }
1016
1137
  if (command.command === 'doctor') {
1017
- return executeDoctor(command, dispatch.dependencies.personalStageResolver.resolve(), dispatch);
1138
+ return executeDoctor(command, dispatch.dependencies.personalStageResolver.resolve(dispatch.workspaceRoot), dispatch);
1018
1139
  }
1019
1140
  if (command.command === 'up' || command.command === 'restart') {
1020
1141
  const coordinates = await resolveCurrentFleetCoordinates(dispatch.workspaceRoot, dispatch.appData, dispatch.dependencies);
@@ -1048,16 +1169,21 @@ function processAbortSignal() {
1048
1169
  };
1049
1170
  }
1050
1171
  function commandJson(command) {
1172
+ if (command?.kind === 'deploy')
1173
+ return command.json === true;
1051
1174
  return (command?.kind === 'agent' || command?.kind === 'dev') && command.json;
1052
1175
  }
1053
1176
  function commandName(command) {
1054
1177
  return command?.kind === 'agent' ||
1178
+ command?.kind === 'deploy' ||
1055
1179
  command?.kind === 'dev' ||
1056
1180
  command?.kind === 'secret'
1057
1181
  ? command.command
1058
1182
  : 'parse';
1059
1183
  }
1060
1184
  function commandNamespace(command, arguments_) {
1185
+ if (command?.kind === 'deploy' || arguments_[0] === 'deploy')
1186
+ return 'deploy';
1061
1187
  if (command?.kind === 'agent' || arguments_[0] === 'agent')
1062
1188
  return 'agent';
1063
1189
  return command?.kind === 'secret' || arguments_[0] === 'secret'
@@ -1144,11 +1270,13 @@ async function runEbkCli(arguments_, io = {}, overrides = {}) {
1144
1270
  if (parsed.kind === 'help') {
1145
1271
  output.stdout(`${parsed.namespace === 'agent'
1146
1272
  ? AGENT_HELP
1147
- : parsed.namespace === 'dev'
1148
- ? DEV_HELP
1149
- : parsed.namespace === 'secret'
1150
- ? SECRET_HELP
1151
- : ROOT_HELP}\n`);
1273
+ : parsed.namespace === 'deploy'
1274
+ ? DEPLOY_HELP
1275
+ : parsed.namespace === 'dev'
1276
+ ? DEV_HELP
1277
+ : parsed.namespace === 'secret'
1278
+ ? SECRET_HELP
1279
+ : ROOT_HELP}\n`);
1152
1280
  return 0;
1153
1281
  }
1154
1282
  if (parsed.kind === 'version') {
@@ -1163,6 +1291,11 @@ async function runEbkCli(arguments_, io = {}, overrides = {}) {
1163
1291
  }
1164
1292
  const dependencies = defaultDependencies(overrides);
1165
1293
  const root = dependencies.resolveWorkspaceRoot(io.cwd ?? process.cwd());
1294
+ if (parsed.kind === 'deploy') {
1295
+ return parsed.json
1296
+ ? await dependencies.executeDeploy(parsed, root, io.environment ?? process.env, undefined, { stdout: output.stdout })
1297
+ : await dependencies.executeDeploy(parsed, root, io.environment ?? process.env);
1298
+ }
1166
1299
  dependencies.changeDirectory(root);
1167
1300
  if (!io.abortSignal)
1168
1301
  ownedSignal = processAbortSignal();
@@ -9,7 +9,7 @@ export type CliFailureClassification = DeveloperAgentFailureClassification | Loc
9
9
  export interface CliResultEnvelope<TPayload = unknown> {
10
10
  command: string;
11
11
  failureClassification?: CliFailureClassification;
12
- namespace: 'agent' | 'dev' | 'secret';
12
+ namespace: 'agent' | 'deploy' | 'dev' | 'secret';
13
13
  operationId?: string;
14
14
  outcome: CliResultOutcome;
15
15
  payload?: TPayload;
package/src/cli/output.js CHANGED
@@ -8,7 +8,7 @@ const errors_js_1 = require("../local-dev/errors.js");
8
8
  const model_js_1 = require("../developer-agent/model.js");
9
9
  exports.CLI_RESULT_SCHEMA_VERSION = 1;
10
10
  exports.CLI_RESULT_MAX_BYTES = 64 * 1024;
11
- exports.AGENT_CLI_RESULT_MAX_BYTES = 128 * 1024;
11
+ exports.AGENT_CLI_RESULT_MAX_BYTES = 160 * 1024;
12
12
  exports.CLI_RESULT_OUTCOMES = ['succeeded', 'failed', 'partial'];
13
13
  const CLI_FAILURE_CLASSIFICATIONS = new Set([
14
14
  ...errors_js_1.LOCAL_DEV_FAILURE_CLASSIFICATIONS,
@@ -29,6 +29,15 @@ export interface WorkspaceSstSecretInvocation {
29
29
  operation: 'remove' | 'set';
30
30
  }
31
31
  export type PersonalSecretProcessSpawner = typeof spawn;
32
+ /**
33
+ * Markers that identify an agent- or CI-owned process. `ebk secret set`
34
+ * refuses them because a hidden TTY prompt does not hide the value from the
35
+ * process that owns the terminal; the human runs set in a terminal no agent
36
+ * spawned. `ebk secret remove` carries no value and is not gated by this
37
+ * list; it still requires an interactive terminal and the hidden typed
38
+ * confirmation. Only the variable name is ever reported, never its value.
39
+ */
40
+ declare const agentEnvironmentNames: readonly ["BUILDKITE", "CI", "CLAUDECODE", "CLAUDE_CODE_ENTRYPOINT", "CODEBUILD_BUILD_ID", "CODEX_SANDBOX", "CODEX_THREAD_ID", "CURSOR_AGENT", "EBK_AGENT_DELEGATED", "GITHUB_ACTIONS", "JENKINS_URL", "TF_BUILD"];
32
41
  /**
33
42
  * Binds the stored SST value to one personal stage, declaration, and value
34
43
  * shape. Raw SST values and values inherited from another stage cannot satisfy
@@ -40,6 +49,8 @@ export declare function encodePersonalSstSecretEnvelope(input: {
40
49
  stage: string;
41
50
  valueKind: SecretMetadataDeclaration['valueKind'];
42
51
  }): Uint8Array;
52
+ /** Returns the first detected marker variable name, never its value. */
53
+ export declare function detectedAgentOrCiMarker(environment: NodeJS.ProcessEnv): (typeof agentEnvironmentNames)[number] | undefined;
43
54
  export declare function detectDelegatedAgentOrCi(environment: NodeJS.ProcessEnv): boolean;
44
55
  export declare function createHumanSecretCeremony(environment: NodeJS.ProcessEnv, stdinIsTty: boolean, outputIsTty: boolean): HumanSecretCeremony;
45
56
  export declare function loadPersonalOperatorSecret(input: {
@@ -79,3 +90,4 @@ export declare function createWorkspacePinnedSstSecretStore(input: {
79
90
  signal?: AbortSignal;
80
91
  spawnProcess?: PersonalSecretProcessSpawner;
81
92
  }): PersonalSstSecretStore;
93
+ export {};
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PersonalSecretRuntimeError = void 0;
4
4
  exports.encodePersonalSstSecretEnvelope = encodePersonalSstSecretEnvelope;
5
+ exports.detectedAgentOrCiMarker = detectedAgentOrCiMarker;
5
6
  exports.detectDelegatedAgentOrCi = detectDelegatedAgentOrCi;
6
7
  exports.createHumanSecretCeremony = createHumanSecretCeremony;
7
8
  exports.loadPersonalOperatorSecret = loadPersonalOperatorSecret;
@@ -44,6 +45,14 @@ class PersonalSecretRuntimeError extends Error {
44
45
  }
45
46
  }
46
47
  exports.PersonalSecretRuntimeError = PersonalSecretRuntimeError;
48
+ /**
49
+ * Markers that identify an agent- or CI-owned process. `ebk secret set`
50
+ * refuses them because a hidden TTY prompt does not hide the value from the
51
+ * process that owns the terminal; the human runs set in a terminal no agent
52
+ * spawned. `ebk secret remove` carries no value and is not gated by this
53
+ * list; it still requires an interactive terminal and the hidden typed
54
+ * confirmation. Only the variable name is ever reported, never its value.
55
+ */
47
56
  const agentEnvironmentNames = [
48
57
  'BUILDKITE',
49
58
  'CI',
@@ -124,13 +133,19 @@ function encodePersonalSstSecretEnvelope(input) {
124
133
  envelope.fill(0);
125
134
  }
126
135
  }
127
- function detectDelegatedAgentOrCi(environment) {
128
- return agentEnvironmentNames.some((name) => environment[name] !== undefined &&
136
+ /** Returns the first detected marker variable name, never its value. */
137
+ function detectedAgentOrCiMarker(environment) {
138
+ return agentEnvironmentNames.find((name) => environment[name] !== undefined &&
129
139
  (name !== 'CI' || enabledEnvironmentFlag(environment[name])));
130
140
  }
141
+ function detectDelegatedAgentOrCi(environment) {
142
+ return detectedAgentOrCiMarker(environment) !== undefined;
143
+ }
131
144
  function createHumanSecretCeremony(environment, stdinIsTty, outputIsTty) {
145
+ const detectedMarker = detectedAgentOrCiMarker(environment);
132
146
  return (0, personal_command_js_1.issueHumanSecretCeremony)({
133
- agentDelegated: detectDelegatedAgentOrCi(environment),
147
+ agentDelegated: detectedMarker !== undefined,
148
+ ...(detectedMarker === undefined ? {} : { detectedMarker }),
134
149
  interactive: stdinIsTty && outputIsTty,
135
150
  stdinIsTty,
136
151
  });
@@ -6,7 +6,7 @@ exports.createTtySecretConfirmation = createTtySecretConfirmation;
6
6
  const MAX_HIDDEN_INPUT_BYTES = 256 * 1024;
7
7
  class SecretTerminalError extends Error {
8
8
  constructor() {
9
- super('The personal secret ceremony requires a local interactive TTY.');
9
+ super('The personal secret prompt needs a local interactive TTY that a human types into, and stops on Ctrl-C or end of input. Run ebk secret set in a terminal no agent spawned; an agent may start ebk secret remove only where the human can type the hidden confirmation.');
10
10
  this.name = 'SecretTerminalError';
11
11
  }
12
12
  }
@@ -1 +1 @@
1
- export declare const EBK_NODE_22_ALPINE_IMAGE: "node:22-alpine@sha256:16e22a550f3863206a3f701448c45f7912c6896a62de43add43bb9c86130c3e2";
1
+ export declare const EBK_NODE_22_ALPINE_IMAGE: "node:22-alpine@sha256:0a7108bf6c7bf5de370ffb1a3ed6be93d405b43ff159f681a8d18c0e2bc2e402";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EBK_NODE_22_ALPINE_IMAGE = void 0;
4
- exports.EBK_NODE_22_ALPINE_IMAGE = 'node:22-alpine@sha256:16e22a550f3863206a3f701448c45f7912c6896a62de43add43bb9c86130c3e2';
4
+ exports.EBK_NODE_22_ALPINE_IMAGE = 'node:22-alpine@sha256:0a7108bf6c7bf5de370ffb1a3ed6be93d405b43ff159f681a8d18c0e2bc2e402';
5
5
  //# sourceMappingURL=container-images.js.map
@@ -213,6 +213,13 @@ function gitContext(inspection) {
213
213
  }
214
214
  function gitWarnings(inspection) {
215
215
  const warnings = [];
216
+ if (inspection.worktree.commit === null ||
217
+ inspection.defaultBase?.commit === null) {
218
+ warnings.push({
219
+ classification: 'stale-base',
220
+ sanitizedSummary: 'Local source is available, but commit-bound planning, handoff, and protected authority require real Git commits and protected refs. No commit or remote ref was created by orientation.',
221
+ });
222
+ }
216
223
  if (inspection.worktree.dirtyPaths.length > 0) {
217
224
  warnings.push({
218
225
  classification: 'dirty-worktree',
@@ -335,6 +342,8 @@ async function inspectDeveloperAgentContext(cwd, query = {}, dependencyOverrides
335
342
  const workspaceRoot = (0, node_fs_1.realpathSync)(cwd);
336
343
  const nxConfiguration = workspaceNxExecutionConfiguration(workspaceRoot);
337
344
  const gitOptions = {
345
+ allowMissingDefaultBase: true,
346
+ allowUnborn: true,
338
347
  ...(query.base ? { base: query.base } : {}),
339
348
  cwd: workspaceRoot,
340
349
  defaultBase: nxConfiguration.defaultBaseRef,
@@ -355,11 +364,21 @@ async function inspectDeveloperAgentContext(cwd, query = {}, dependencyOverrides
355
364
  try {
356
365
  const currentExternalRoots = (0, blueprint_verification_authority_js_1.externalBlueprintOwnershipRoots)(workspaceRoot);
357
366
  (0, blueprint_verification_authority_js_1.assertDeveloperAgentNxProjectConfinement)(workspaceRoot);
367
+ // Orientation can describe an unborn worktree, but it cannot establish
368
+ // protected history. Keep package target authority strict; this is not an
369
+ // alternate path to a protected review or execution receipt.
358
370
  externalOwnershipHistory =
359
- (0, blueprint_trust_git_js_1.inspectProtectedWorkspaceExternalBlueprintHistory)({
360
- builtInName: resolver_js_1.BUILTIN_BLUEPRINT_NAME,
361
- workspaceRoot,
362
- });
371
+ gitInspection.worktree.commit === null
372
+ ? {
373
+ complete: false,
374
+ externalProjectNames: [],
375
+ externalSliceRoots: [],
376
+ requiresStrictNxAuthority: true,
377
+ }
378
+ : (0, blueprint_trust_git_js_1.inspectProtectedWorkspaceExternalBlueprintHistory)({
379
+ builtInName: resolver_js_1.BUILTIN_BLUEPRINT_NAME,
380
+ workspaceRoot,
381
+ });
363
382
  if (currentExternalRoots.length > 0 ||
364
383
  externalOwnershipHistory.requiresStrictNxAuthority) {
365
384
  (0, blueprint_verification_authority_js_1.assertNoMutableBlueprintVerificationConfiguration)(workspaceRoot);
@@ -443,7 +462,7 @@ function formatDeveloperAgentContext(context) {
443
462
  ].sort(ordering_js_1.compareDeveloperAgentStrings);
444
463
  const lines = [
445
464
  `Workspace: ${context.workspace.identity} (${context.workspace.frameworkVersion})`,
446
- `Git: ${branch} @ ${context.git.commit.slice(0, 12)}${context.git.dirty ? ' (dirty)' : ''}`,
465
+ `Git: ${branch} @ ${context.git.commit?.slice(0, 12) ?? '(uncommitted)'}${context.git.dirty ? ' (dirty)' : ''}`,
447
466
  `Selection: ${selection}`,
448
467
  `Nx graph projects: ${context.projectNames.length}`,
449
468
  `Policy stage: ${context.policy.canonicalStage}`,
@@ -458,6 +477,15 @@ function formatDeveloperAgentContext(context) {
458
477
  : ''}`,
459
478
  ];
460
479
  const details = [
480
+ ...context.supportedOperations
481
+ .filter((operation) => operation.command &&
482
+ (operation.id.startsWith('ebk-dev:') ||
483
+ operation.id.endsWith(':verify-local-browser') ||
484
+ operation.id.endsWith(':dev')))
485
+ .map((operation) => ({
486
+ kind: 'operation',
487
+ line: `- [operation] ${operation.id}: ${operation.command.executable} ${operation.command.args.map((argument) => (/^[A-Za-z0-9_./:@=-]+$/.test(argument) ? argument : JSON.stringify(argument))).join(' ')}`,
488
+ })),
461
489
  ...context.warnings.map((finding) => ({
462
490
  kind: 'warning',
463
491
  line: `- [${finding.classification}] ${finding.sanitizedSummary}`,
@@ -469,8 +497,9 @@ function formatDeveloperAgentContext(context) {
469
497
  ];
470
498
  let omittedWarnings = 0;
471
499
  let omittedNonPlannable = 0;
500
+ let omittedOperations = 0;
472
501
  const route = 'Full structured context: ebk agent context --json';
473
- const maximumOmission = `Omitted detail: ${context.warnings.length} warning(s), ${context.nonPlannableTargets.length} non-plannable target(s).`;
502
+ const maximumOmission = `Omitted detail: ${context.warnings.length} warning(s), ${context.nonPlannableTargets.length} non-plannable target(s), ${context.supportedOperations.length} operation(s).`;
474
503
  for (const detail of details) {
475
504
  const candidate = [...lines, detail.line, maximumOmission, route].join('\n');
476
505
  if (Buffer.byteLength(candidate, 'utf8') <=
@@ -480,12 +509,15 @@ function formatDeveloperAgentContext(context) {
480
509
  else if (detail.kind === 'warning') {
481
510
  omittedWarnings += 1;
482
511
  }
483
- else {
512
+ else if (detail.kind === 'non-plannable') {
484
513
  omittedNonPlannable += 1;
485
514
  }
515
+ else {
516
+ omittedOperations += 1;
517
+ }
486
518
  }
487
- if (omittedWarnings > 0 || omittedNonPlannable > 0) {
488
- lines.push(`Omitted detail: ${omittedWarnings} warning(s), ${omittedNonPlannable} non-plannable target(s).`);
519
+ if (omittedWarnings > 0 || omittedNonPlannable > 0 || omittedOperations > 0) {
520
+ lines.push(`Omitted detail: ${omittedWarnings} warning(s), ${omittedNonPlannable} non-plannable target(s), ${omittedOperations} operation(s).`);
489
521
  }
490
522
  lines.push(route);
491
523
  const output = lines.join('\n');
@@ -185,7 +185,9 @@ function generatorContextSelection(input) {
185
185
  input.generator === 'job') {
186
186
  return {
187
187
  selectedFeature: input.feature,
188
- selectedProjects: [input.slice],
188
+ selectedProjects: input.generator === 'function'
189
+ ? [input.slice]
190
+ : [input.slice, 'foundation'].sort(),
189
191
  selectedSlice: input.slice,
190
192
  };
191
193
  }
@@ -383,8 +385,8 @@ function functionPlan(context, input, mode, rebindCompleted = false) {
383
385
  ...prefixedSurfaces(input.slice, plan.paths),
384
386
  ...prefixedSurfaces(input.slice, [
385
387
  { path: 'infra/product.ts' },
386
- { path: 'infra/workload-roles/candidate.ts' },
387
- { path: 'infra/workload-roles/effective-intent.ts' },
388
+ { path: 'infra/native-runtime-authority/effective-intent.ts' },
389
+ { path: 'infra/native-runtime-authority/topology.ts' },
388
390
  { path: logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH },
389
391
  { path: PRODUCT_OWNERSHIP_PATH },
390
392
  ]),
@@ -425,9 +427,10 @@ function workloadPlan(context, input, mode, rebindCompleted = false) {
425
427
  const generatedSurfaces = sortedSurfaces([
426
428
  ...prefixedSurfaces(input.slice, plan.paths),
427
429
  ...prefixedSurfaces(input.slice, [
430
+ { path: 'infra/foundation.ts' },
428
431
  { path: 'infra/product.ts' },
429
- { path: 'infra/workload-roles/candidate.ts' },
430
- { path: 'infra/workload-roles/effective-intent.ts' },
432
+ { path: 'infra/native-runtime-authority/effective-intent.ts' },
433
+ { path: 'infra/native-runtime-authority/topology.ts' },
431
434
  { path: logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH },
432
435
  { mode: 'seeded', path: performance_registration_js_1.WORKLOAD_PERFORMANCE_POLICY_PATH },
433
436
  ...(ownsProtectedLoadAdapter
@@ -447,6 +450,16 @@ function workloadPlan(context, input, mode, rebindCompleted = false) {
447
450
  { mode: 'seeded', path: RELEASE_REGISTRY_PATH },
448
451
  { path: PRODUCT_OWNERSHIP_PATH },
449
452
  ]),
453
+ // The workload generator grows network/container-compute capabilities in
454
+ // the same source operation. These are its paired Foundation surfaces,
455
+ // even when an existing container makes the capability update a no-op.
456
+ ...prefixedSurfaces('foundation', [
457
+ { path: PRODUCT_OWNERSHIP_PATH },
458
+ { path: 'contracts/costs.json' },
459
+ { path: 'contracts/foundation.json' },
460
+ { path: 'infra/foundation.ts' },
461
+ { path: 'scripts/verify-foundation.mjs' },
462
+ ]),
450
463
  surface('pnpm-lock.yaml', 'adopter-owned'),
451
464
  ]);
452
465
  const prospectiveVerification = mode === 'apply' ? [`${plan.project}:verify`] : [];
@@ -469,11 +482,12 @@ function workloadPlan(context, input, mode, rebindCompleted = false) {
469
482
  'supply-chain',
470
483
  ], context.selection.contracts),
471
484
  generatedSurfaces,
472
- projects: [input.slice, plan.project].sort(),
485
+ projects: [input.slice, plan.project, 'foundation'].sort(),
473
486
  prospectiveVerification,
474
487
  verification: [
475
488
  ...new Set([
476
489
  `${input.slice}:verify`,
490
+ 'foundation:verify',
477
491
  ...prospectiveVerification,
478
492
  developerAgentWorkspaceVerificationTarget(context),
479
493
  ]),