@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
@@ -1,5 +1,5 @@
1
1
  import { type ChildProcessWithoutNullStreams } from 'node:child_process';
2
- export declare const EXTERNAL_BLUEPRINT_SANDBOX_IMAGE: "node:22-alpine@sha256:16e22a550f3863206a3f701448c45f7912c6896a62de43add43bb9c86130c3e2";
2
+ export declare const EXTERNAL_BLUEPRINT_SANDBOX_IMAGE: "node:22-alpine@sha256:0a7108bf6c7bf5de370ffb1a3ed6be93d405b43ff159f681a8d18c0e2bc2e402";
3
3
  export declare const EXTERNAL_BLUEPRINT_CONTAINER_AUTO_REMOVE: "--rm";
4
4
  export declare const EXTERNAL_BLUEPRINT_SANDBOX_FLAGS: readonly ["--network=none", "--read-only", "--cap-drop=ALL", "--security-opt=no-new-privileges", "--pids-limit=64", "--memory=256m", "--memory-swap=256m", "--cpus=1", "--ulimit=nofile=256:256", "--tmpfs=/tmp:rw,noexec,nosuid,nodev,size=16m,mode=1777"];
5
5
  export type ExternalBlueprintSource = 'installed' | 'local';
@@ -160,7 +160,7 @@ function packagePathSegments(name, label) {
160
160
  }
161
161
  return segments;
162
162
  }
163
- function assertLinuxMuslPortableManifest(manifest) {
163
+ function assertLinuxMuslPortableManifest(manifest, registryDependency) {
164
164
  if (manifest.optionalDependencies !== undefined) {
165
165
  if (!isRecord(manifest.optionalDependencies)) {
166
166
  throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} has a malformed optional dependency map.`);
@@ -212,7 +212,8 @@ function assertLinuxMuslPortableManifest(manifest) {
212
212
  'postinstall',
213
213
  'prepare',
214
214
  'prepublish',
215
- ].find((name) => Object.prototype.hasOwnProperty.call(manifest.scripts, name));
215
+ ].find((name) => Object.prototype.hasOwnProperty.call(manifest.scripts, name) &&
216
+ !(name === 'prepublish' && registryDependency));
216
217
  if (installScript) {
217
218
  throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} declares unsupported install/build script ${installScript}.`);
218
219
  }
@@ -225,7 +226,7 @@ function assertLinuxMuslPortableManifest(manifest) {
225
226
  throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} declares unsupported native build dependency ${buildDependency}.`);
226
227
  }
227
228
  }
228
- function readPackageManifest(packageRoot, expectedName, expectedVersion) {
229
+ function readPackageManifest(packageRoot, expectedName, expectedVersion, registryDependencyAuthority) {
229
230
  const manifestPath = (0, node_path_1.join)(packageRoot, 'package.json');
230
231
  let descriptor;
231
232
  let bytes;
@@ -283,7 +284,15 @@ function readPackageManifest(packageRoot, expectedName, expectedVersion) {
283
284
  }
284
285
  packagePathSegments(value.name, 'External Blueprint dependency name');
285
286
  const manifest = value;
286
- assertLinuxMuslPortableManifest(manifest);
287
+ if (registryDependencyAuthority) {
288
+ assertInstalledPackageAuthority(registryDependencyAuthority, packageRoot, manifest);
289
+ }
290
+ // A registry dependency may ship prepublish metadata alongside ready JS.
291
+ // This is not a publish-only hook: npm install can execute it. The sandbox
292
+ // runs Node directly, never a package manager or build script. Missing built
293
+ // files therefore fail execution; hooks cannot be used to manufacture them.
294
+ // Publisher roots never receive this dependency-only admission.
295
+ assertLinuxMuslPortableManifest(manifest, !!registryDependencyAuthority);
287
296
  return manifest;
288
297
  }
289
298
  function manifestDependencyInventory(manifest) {
@@ -460,7 +469,7 @@ function resolveInstalledDependencyRoot(workspaceRoot, packageRoot, dependency,
460
469
  throw new Error('External Blueprint dependency closure escapes the canonical workspace.');
461
470
  }
462
471
  assertInstalledPackageRoot(installedAuthority, canonical);
463
- readPackageManifest(canonical, dependency.name);
472
+ readPackageManifest(canonical, dependency.name, undefined, installedAuthority);
464
473
  return canonical;
465
474
  }
466
475
  if (dependency.optional)
@@ -513,7 +522,7 @@ function copyPackageBytes(sourceRoot, destinationRoot, budget) {
513
522
  };
514
523
  visit(sourceRoot, destinationRoot, 0);
515
524
  }
516
- function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budget, installedAuthority, requiresRegistryAuthority) {
525
+ function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budget, installedAuthority, packageKind) {
517
526
  const existing = packages.get(sourceRoot);
518
527
  if (existing)
519
528
  return existing;
@@ -521,13 +530,14 @@ function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budg
521
530
  if (budget.packages > MAX_CLOSURE_PACKAGES) {
522
531
  throw new Error('External Blueprint dependency closure exceeds its fixed package bound.');
523
532
  }
533
+ const requiresRegistryAuthority = packageKind !== 'local-publisher';
524
534
  if (requiresRegistryAuthority && !installedAuthority) {
525
535
  throw new Error('Local external Blueprint dependencies require canonical pnpm registry and lockfile authority.');
526
536
  }
527
537
  if (requiresRegistryAuthority && installedAuthority) {
528
538
  assertInstalledPackageRoot(installedAuthority, sourceRoot);
529
539
  }
530
- const manifest = readPackageManifest(sourceRoot);
540
+ const manifest = readPackageManifest(sourceRoot, undefined, undefined, packageKind === 'dependency' ? installedAuthority : undefined);
531
541
  if (requiresRegistryAuthority && installedAuthority) {
532
542
  assertInstalledPackageAuthority(installedAuthority, sourceRoot, manifest);
533
543
  }
@@ -546,7 +556,7 @@ function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budg
546
556
  const dependencyRoot = resolveInstalledDependencyRoot(workspaceRoot, sourceRoot, dependency, installedAuthority);
547
557
  if (dependencyRoot === undefined)
548
558
  continue;
549
- node.dependencies.set(dependency.name, discoverPackage(workspaceRoot, dependencyRoot, packagesRoot, packages, budget, installedAuthority, true));
559
+ node.dependencies.set(dependency.name, discoverPackage(workspaceRoot, dependencyRoot, packagesRoot, packages, budget, installedAuthority, 'dependency'));
550
560
  }
551
561
  return node;
552
562
  }
@@ -602,7 +612,9 @@ function stageExternalBlueprintClosure(workspaceRoot, packageRoot, generatorPath
602
612
  (0, node_fs_1.mkdirSync)(packagesRoot, { recursive: true, mode: 0o700 });
603
613
  (0, node_fs_1.chmodSync)(packagesRoot, 0o700);
604
614
  const packages = new Map();
605
- const root = discoverPackage(workspaceRoot, packageRoot, packagesRoot, packages, { bytes: 0, directories: 0, files: 0, packages: 0 }, installedAuthority, authority.source === 'installed');
615
+ const root = discoverPackage(workspaceRoot, packageRoot, packagesRoot, packages, { bytes: 0, directories: 0, files: 0, packages: 0 }, installedAuthority, authority.source === 'installed'
616
+ ? 'installed-publisher'
617
+ : 'local-publisher');
606
618
  linkStagedPackageGraph(stageRoot, root, packages);
607
619
  const containerGeneratorUrl = `file://${node_path_1.posix.join('/sandbox/node_modules', ...packageSegments, ...generatorChild
608
620
  .split(node_path_1.sep)
@@ -73,7 +73,7 @@ export declare const blueprintManifestSchema: {
73
73
  readonly properties: {
74
74
  readonly capabilities: {
75
75
  readonly items: {
76
- readonly enum: readonly ["network", "routing", "container-compute", "postgres", "identity", "events", "observability", "configuration", "deployment"];
76
+ readonly enum: readonly ["key-value", "routing", "identity", "events", "observability", "configuration", "deployment", "network", "container-compute", "postgres"];
77
77
  readonly type: "string";
78
78
  };
79
79
  readonly type: "array";
@@ -7,6 +7,7 @@ const node_crypto_1 = require("node:crypto");
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_path_1 = require("node:path");
9
9
  const semver_1 = require("semver");
10
+ const capability_plan_js_1 = require("../foundation/capability-plan.js");
10
11
  const blueprint_trust_js_1 = require("../supply-chain/blueprint-trust.js");
11
12
  const blueprint_trust_git_js_1 = require("../supply-chain/blueprint-trust-git.js");
12
13
  const inputs_js_1 = require("./inputs.js");
@@ -21,7 +22,31 @@ const MAX_PNPM_LOCKFILE_BYTES = 32 * 1024 * 1024;
21
22
  const builtInInputSchema = {
22
23
  $schema: 'https://json-schema.org/draft/2020-12/schema',
23
24
  additionalProperties: false,
24
- properties: {},
25
+ properties: {
26
+ sql: {
27
+ type: 'object',
28
+ additionalProperties: false,
29
+ required: ['reason'],
30
+ properties: {
31
+ reason: {
32
+ type: 'string',
33
+ minLength: 1,
34
+ maxLength: 512,
35
+ pattern: '^[^\\u0000-\\u001f\\u007f]+$',
36
+ },
37
+ },
38
+ },
39
+ dependencySlices: {
40
+ type: 'array',
41
+ maxItems: 64,
42
+ uniqueItems: true,
43
+ items: {
44
+ type: 'string',
45
+ maxLength: 63,
46
+ pattern: '^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$',
47
+ },
48
+ },
49
+ },
25
50
  type: 'object',
26
51
  };
27
52
  function readEngineVersion() {
@@ -42,19 +67,7 @@ function createBuiltInManifest(engineVersion) {
42
67
  return {
43
68
  $schema: 'https://empirebuilderkit.dev/schemas/blueprint-v1.json',
44
69
  engine: engineVersion,
45
- foundation: {
46
- capabilities: [
47
- 'network',
48
- 'routing',
49
- 'postgres',
50
- 'identity',
51
- 'events',
52
- 'observability',
53
- 'configuration',
54
- 'deployment',
55
- ],
56
- contract: '^1',
57
- },
70
+ foundation: (0, capability_plan_js_1.standardPersistenceRequirement)({}),
58
71
  generator: './built-in/standard.js',
59
72
  inputs: './built-in/standard-inputs.json',
60
73
  kind: 'slice',
@@ -340,7 +353,7 @@ function resolveBlueprint({ engineVersion, localAuthoringPackages = [], localPac
340
353
  throw new Error(`Blueprint manifest identity ${manifestResult.value.name}@${manifestResult.value.version} does not match requested ${parsed.name}@${parsed.version}.`);
341
354
  }
342
355
  if (!(0, semver_1.satisfies)(resolvedEngineVersion, manifestResult.value.engine)) {
343
- throw new Error(`Blueprint ${parsed.name}@${parsed.version} requires EBK engine ${manifestResult.value.engine}, but this workspace provides ${resolvedEngineVersion}.`);
356
+ throw new Error(`Blueprint ${parsed.name}@${parsed.version} requires EBK engine ${manifestResult.value.engine}, but this workspace provides ${resolvedEngineVersion}. Use a compatible reviewed recipe, or revalidate your adopter-owned recipe against this engine in a disposable workspace before updating its engine declaration, version and trust record.`);
344
357
  }
345
358
  resolveManifestAssets(packageRoot, manifestResult.value);
346
359
  if (localRoot) {
@@ -27,5 +27,5 @@ export declare function launchBlueprintAuthority(workspaceRoot: string, io: Requ
27
27
  childPath?: string;
28
28
  nodeExecutable?: string;
29
29
  }): 0 | 1;
30
- export declare function runEbkBootstrap(arguments_: readonly string[], io?: BootstrapIo, dependencies?: BootstrapDependencies): Promise<0 | 1 | 2>;
30
+ export declare function runEbkBootstrap(arguments_: readonly string[], io?: BootstrapIo, dependencies?: BootstrapDependencies): Promise<number>;
31
31
  export {};
@@ -0,0 +1,30 @@
1
+ import { runGovernedChildProcess } from '../executors/sst-lifecycle/run-sst-command.js';
2
+ import type { DeployCliCommand } from './dev-command.js';
3
+ export declare const DEPLOY_RESULT_KIND = "ebk-deploy-result";
4
+ export declare const DEPLOY_RECEIPT_PATH = ".ebk/evidence/deployment/latest.json";
5
+ export interface DeployResultProject {
6
+ outcome: string;
7
+ project: string;
8
+ target: string;
9
+ }
10
+ /** The development-only `--json` result: the executor's own written receipt
11
+ * (already secret-free evidence) and per-project status. It is printed after
12
+ * the run and carries no authority; protected stages never produce it. */
13
+ export interface DeployJsonResult {
14
+ exitCode: number;
15
+ kind: typeof DEPLOY_RESULT_KIND;
16
+ outcome: 'failed' | 'receipt-unavailable' | 'review-required' | 'succeeded';
17
+ projects: DeployResultProject[];
18
+ receipt: Record<string, unknown> | null;
19
+ receiptPath: typeof DEPLOY_RECEIPT_PATH;
20
+ schemaVersion: 1;
21
+ stage: 'development';
22
+ }
23
+ export interface DeployCommandOutput {
24
+ now?: () => number;
25
+ stdout: (value: string) => void;
26
+ }
27
+ /** The CLI selects the existing workspace lifecycle, never an individual SST
28
+ * child. All policy, identity, TTY, migration, smoke and receipt decisions
29
+ * remain in the generated Nx target and its executor. */
30
+ export declare function executeDeployCommand(command: DeployCliCommand, workspaceRoot: string, environment: NodeJS.ProcessEnv, run?: typeof runGovernedChildProcess, output?: DeployCommandOutput): Promise<number>;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEPLOY_RECEIPT_PATH = exports.DEPLOY_RESULT_KIND = void 0;
4
+ exports.executeDeployCommand = executeDeployCommand;
5
+ const node_fs_1 = require("node:fs");
6
+ const node_os_1 = require("node:os");
7
+ const node_path_1 = require("node:path");
8
+ const run_sst_command_js_1 = require("../executors/sst-lifecycle/run-sst-command.js");
9
+ const errors_js_1 = require("../local-dev/errors.js");
10
+ const nx_workspace_js_1 = require("../local-dev/nx-workspace.js");
11
+ exports.DEPLOY_RESULT_KIND = 'ebk-deploy-result';
12
+ exports.DEPLOY_RECEIPT_PATH = '.ebk/evidence/deployment/latest.json';
13
+ const MAX_DEPLOY_RECEIPT_BYTES = 1024 * 1024;
14
+ const MAX_DEPLOY_RECEIPT_CHILDREN = 4096;
15
+ function isRecord(value) {
16
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
17
+ }
18
+ function boundedText(value) {
19
+ return typeof value === 'string' && value.length > 0 && value.length <= 256;
20
+ }
21
+ /** Reads only a fresh, regular, bounded development receipt written by this
22
+ * run. A stale receipt left by an earlier run (for example when the
23
+ * workspace-health dependency fails before the executor invalidates it) is
24
+ * reported as unavailable, never as this run's result. */
25
+ function readFreshDevelopmentReceipt(workspaceRoot, startedAtMs) {
26
+ let descriptor;
27
+ let source;
28
+ try {
29
+ const receiptPath = (0, node_path_1.join)(workspaceRoot, exports.DEPLOY_RECEIPT_PATH);
30
+ // Windows has no O_NOFOLLOW, so the receipt file itself must not be a
31
+ // symbolic link, and the opened file must be the one lstat saw (exact
32
+ // 64-bit identity). A filesystem whose fstat identity differs from lstat
33
+ // reports the receipt as unavailable.
34
+ const entry = (0, node_fs_1.lstatSync)(receiptPath, { bigint: true });
35
+ if (entry.isSymbolicLink() || !entry.isFile())
36
+ return undefined;
37
+ descriptor = (0, node_fs_1.openSync)(receiptPath,
38
+ // O_NOFOLLOW refuses a symbolic link at the receipt path itself.
39
+ node_fs_1.constants.O_RDONLY | (node_fs_1.constants.O_NOFOLLOW ?? 0));
40
+ const stat = (0, node_fs_1.fstatSync)(descriptor, { bigint: true });
41
+ if (!stat.isFile() ||
42
+ stat.dev !== entry.dev ||
43
+ stat.ino !== entry.ino ||
44
+ stat.size > BigInt(MAX_DEPLOY_RECEIPT_BYTES)) {
45
+ return undefined;
46
+ }
47
+ const size = Number(stat.size);
48
+ const buffer = Buffer.alloc(size);
49
+ let offset = 0;
50
+ while (offset < size) {
51
+ const read = (0, node_fs_1.readSync)(descriptor, buffer, offset, size - offset, null);
52
+ if (read === 0)
53
+ break;
54
+ offset += read;
55
+ }
56
+ source = buffer.subarray(0, offset).toString('utf8');
57
+ }
58
+ catch {
59
+ return undefined;
60
+ }
61
+ finally {
62
+ if (descriptor !== undefined)
63
+ (0, node_fs_1.closeSync)(descriptor);
64
+ }
65
+ let receipt;
66
+ try {
67
+ receipt = JSON.parse(source);
68
+ }
69
+ catch {
70
+ return undefined;
71
+ }
72
+ if (!isRecord(receipt) ||
73
+ receipt.kind !== 'ebk-deployment-receipt' ||
74
+ receipt.schemaVersion !== 1 ||
75
+ receipt.stage !== 'development' ||
76
+ typeof receipt.startedAt !== 'string' ||
77
+ !Number.isFinite(Date.parse(receipt.startedAt)) ||
78
+ Date.parse(receipt.startedAt) < startedAtMs ||
79
+ !['failed', 'review-required', 'succeeded'].includes(String(receipt.outcome)) ||
80
+ !Array.isArray(receipt.children) ||
81
+ receipt.children.length > MAX_DEPLOY_RECEIPT_CHILDREN) {
82
+ return undefined;
83
+ }
84
+ const projects = [];
85
+ for (const child of receipt.children) {
86
+ if (!isRecord(child) ||
87
+ !boundedText(child.project) ||
88
+ !boundedText(child.target) ||
89
+ !boundedText(child.outcome)) {
90
+ return undefined;
91
+ }
92
+ projects.push({
93
+ outcome: child.outcome,
94
+ project: child.project,
95
+ target: child.target,
96
+ });
97
+ }
98
+ return { projects, receipt };
99
+ }
100
+ /** The CLI selects the existing workspace lifecycle, never an individual SST
101
+ * child. All policy, identity, TTY, migration, smoke and receipt decisions
102
+ * remain in the generated Nx target and its executor. */
103
+ async function executeDeployCommand(command, workspaceRoot, environment, run = run_sst_command_js_1.runGovernedChildProcess, output) {
104
+ const structured = command.json === true;
105
+ if (structured && (command.stage !== 'development' || !output)) {
106
+ // Parsing already refuses this; fail closed if a caller bypasses it.
107
+ throw new errors_js_1.LocalDevContractError('invalid-input', 'ebk deploy --json is available only for development; staging and production keep native output and the interactive acknowledgement.');
108
+ }
109
+ let project;
110
+ try {
111
+ project = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(workspaceRoot, 'project.json'), 'utf8'));
112
+ }
113
+ catch {
114
+ throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'ebk deploy requires the generated root project.json. Run the supported workspace upgrade and workspace-health check.');
115
+ }
116
+ const target = project?.targets?.['deploy-local'];
117
+ if (typeof project?.name !== 'string' ||
118
+ !/^[a-zA-Z0-9@][a-zA-Z0-9@/._-]{0,213}$/.test(project.name) ||
119
+ target?.executor !== '@empire-builder-kit/nx:local-deploy' ||
120
+ target.cache !== false ||
121
+ !Array.isArray(target.dependsOn) ||
122
+ !target.dependsOn.includes('workspace-health')) {
123
+ throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'ebk deploy requires the generated, non-cacheable workspace deploy-local target. Run the supported workspace upgrade and workspace-health check.');
124
+ }
125
+ const nx = (0, nx_workspace_js_1.resolveWorkspaceNxRuntime)(workspaceRoot);
126
+ const startedAtMs = (output?.now ?? Date.now)();
127
+ const result = await run({
128
+ executable: process.execPath,
129
+ args: [
130
+ nx.binary,
131
+ 'run',
132
+ `${project.name}:deploy-local`,
133
+ '--',
134
+ `--stage=${command.stage}`,
135
+ `--expectedRoleArn=${command.expectedRoleArn}`,
136
+ ...(command.profile ? [`--profile=${command.profile}`] : []),
137
+ ...(command.slices ? [`--slices=${command.slices.join(',')}`] : []),
138
+ ],
139
+ cwd: workspaceRoot,
140
+ environment: {
141
+ ...environment,
142
+ // Stream native diagnostics and preserve the inherited TTY. This target
143
+ // is never served from cache and receives no skip/approval overrides.
144
+ NX_TUI: 'false',
145
+ NX_TASKS_RUNNER_DYNAMIC_OUTPUT: 'false',
146
+ },
147
+ // With --json, native output moves to stderr so stdout carries only the
148
+ // structured result; stdin stays inherited.
149
+ ...(structured ? { stdio: ['inherit', 2, 'inherit'] } : {}),
150
+ });
151
+ if (result.error)
152
+ throw result.error;
153
+ const exitCode = result.signal
154
+ ? 128 + (node_os_1.constants.signals[result.signal] ?? 1)
155
+ : (result.status ?? 1);
156
+ if (structured && output) {
157
+ const fresh = readFreshDevelopmentReceipt(workspaceRoot, startedAtMs);
158
+ const payload = {
159
+ exitCode,
160
+ kind: exports.DEPLOY_RESULT_KIND,
161
+ outcome: fresh
162
+ ? fresh.receipt.outcome
163
+ : 'receipt-unavailable',
164
+ projects: fresh?.projects ?? [],
165
+ receipt: fresh?.receipt ?? null,
166
+ receiptPath: exports.DEPLOY_RECEIPT_PATH,
167
+ schemaVersion: 1,
168
+ stage: 'development',
169
+ };
170
+ output.stdout(`${JSON.stringify(payload, null, 2)}\n`);
171
+ }
172
+ return exitCode;
173
+ }
174
+ //# sourceMappingURL=deploy-runtime.js.map
@@ -1,11 +1,11 @@
1
1
  import { type LocalDevContextInput } from '../local-dev/local-context.js';
2
2
  import { type AgentCliCommand } from './agent-command.js';
3
3
  export declare const EBK_AGENT_COMMANDS: readonly ["context", "handoff", "plan", "resume", "upgrade-preview"];
4
- export declare const EBK_DEV_COMMANDS: readonly ["configure", "doctor", "down", "logs", "prune", "ps", "restart", "setup", "status", "tail", "up"];
4
+ export declare const EBK_DEV_COMMANDS: readonly ["attach", "configure", "doctor", "down", "logs", "prune", "ps", "restart", "setup", "status", "tail", "up"];
5
5
  export declare const EBK_SECRET_COMMANDS: readonly ["remove", "set"];
6
6
  export type CliHelpCommand = {
7
7
  kind: 'help';
8
- namespace?: 'agent' | 'dev' | 'secret';
8
+ namespace?: 'agent' | 'deploy' | 'dev' | 'secret';
9
9
  };
10
10
  export type CliVersionCommand = {
11
11
  kind: 'version';
@@ -49,6 +49,10 @@ export interface DevLifecycleCommand extends DevCommandBase {
49
49
  export interface DevStatusCommand extends DevCommandBase {
50
50
  command: 'status';
51
51
  }
52
+ export interface DevAttachCommand extends DevCommandBase {
53
+ command: 'attach';
54
+ taskId: string;
55
+ }
52
56
  export interface DevDoctorCommand extends DevCommandBase {
53
57
  command: 'doctor';
54
58
  environmentOnly: boolean;
@@ -80,13 +84,23 @@ export interface DevPruneCommand extends DevCommandBase {
80
84
  command: 'prune';
81
85
  fleetId?: string;
82
86
  }
83
- export type DevCliCommand = DevConfigureCommand | DevDoctorCommand | DevLifecycleCommand | DevLogsCommand | DevPruneCommand | DevPsCommand | DevSetupCommand | DevStatusCommand | DevTailCommand | DevUpCommand;
87
+ export type DevCliCommand = DevAttachCommand | DevConfigureCommand | DevDoctorCommand | DevLifecycleCommand | DevLogsCommand | DevPruneCommand | DevPsCommand | DevSetupCommand | DevStatusCommand | DevTailCommand | DevUpCommand;
84
88
  export interface SecretCliCommand {
85
89
  command: 'remove' | 'set';
86
90
  kind: 'secret';
87
91
  logicalName: string;
88
92
  slice: string;
89
93
  }
90
- export type ParsedEbkCommand = AgentCliCommand | CliHelpCommand | CliVersionCommand | DevCliCommand | SecretCliCommand;
94
+ export interface DeployCliCommand {
95
+ kind: 'deploy';
96
+ command: 'deploy';
97
+ stage: 'development' | 'staging' | 'production';
98
+ profile?: string;
99
+ expectedRoleArn: string;
100
+ /** Development only: print one bounded receipt result on stdout. */
101
+ json?: true;
102
+ slices?: string[];
103
+ }
104
+ export type ParsedEbkCommand = AgentCliCommand | CliHelpCommand | CliVersionCommand | DeployCliCommand | DevCliCommand | SecretCliCommand;
91
105
  export declare function parseEbkArguments(arguments_: readonly string[]): ParsedEbkCommand;
92
106
  export {};
@@ -6,6 +6,7 @@ const errors_js_1 = require("../local-dev/errors.js");
6
6
  const local_context_js_1 = require("../local-dev/local-context.js");
7
7
  const identity_js_1 = require("../local-dev/identity.js");
8
8
  const personal_stage_js_1 = require("../local-dev/personal-stage.js");
9
+ const task_identity_js_1 = require("../local-dev/task-identity.js");
9
10
  const agent_command_js_1 = require("./agent-command.js");
10
11
  exports.EBK_AGENT_COMMANDS = [
11
12
  'context',
@@ -15,6 +16,7 @@ exports.EBK_AGENT_COMMANDS = [
15
16
  'upgrade-preview',
16
17
  ];
17
18
  exports.EBK_DEV_COMMANDS = [
19
+ 'attach',
18
20
  'configure',
19
21
  'doctor',
20
22
  'down',
@@ -486,6 +488,64 @@ function parseSecret(arguments_) {
486
488
  };
487
489
  }
488
490
  function parseEbkArguments(arguments_) {
491
+ // Canonical deploy stages are explicit; personal dev/secret stages remain
492
+ // resolver-owned and must continue rejecting stage overrides.
493
+ if (arguments_[0] === 'deploy') {
494
+ if (arguments_.length === 2 && arguments_[1] === '--help') {
495
+ return { kind: 'help', namespace: 'deploy' };
496
+ }
497
+ const tokens = parseTokens(arguments_.slice(1), {
498
+ stage: {
499
+ kind: 'string',
500
+ values: ['development', 'staging', 'production'],
501
+ },
502
+ profile: { kind: 'string' },
503
+ expectedRoleArn: { kind: 'string' },
504
+ json: { kind: 'flag' },
505
+ });
506
+ const stages = ['development', 'staging', 'production'];
507
+ const positionalStage = stages.includes(tokens.positionals[0])
508
+ ? tokens.positionals[0]
509
+ : undefined;
510
+ if (positionalStage && tokens.options.stage !== undefined) {
511
+ return usageError('ebk deploy accepts one stage, positional or --stage, not both.');
512
+ }
513
+ const stage = positionalStage ?? stringOption(tokens, 'stage') ?? 'development';
514
+ if (stage !== 'development' &&
515
+ stage !== 'staging' &&
516
+ stage !== 'production') {
517
+ return usageError('ebk deploy stage must be development, staging, or production.');
518
+ }
519
+ const json = booleanOption(tokens, 'json');
520
+ if (json && stage !== 'development') {
521
+ // Protected stages keep native output and the human-typed TTY
522
+ // acknowledgement; a structured mode must never stand in for either.
523
+ return usageError('ebk deploy --json is available only for development; staging and production keep native output and the interactive acknowledgement.');
524
+ }
525
+ const expectedRoleArn = stringOption(tokens, 'expectedRoleArn');
526
+ if (!expectedRoleArn ||
527
+ !/^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role\/[A-Za-z0-9+=,.@_/-]{1,512}$/.test(expectedRoleArn)) {
528
+ return usageError('ebk deploy requires --expectedRoleArn=<exact-stage-deployment-role-arn>. See ebk deploy --help.');
529
+ }
530
+ const profile = stringOption(tokens, 'profile');
531
+ const slices = tokens.positionals.slice(positionalStage ? 1 : 0);
532
+ if (slices.length > 64 ||
533
+ new Set(slices).size !== slices.length ||
534
+ slices.some((slice) => !SLICE_PATTERN.test(slice) || stages.includes(slice))) {
535
+ return usageError('ebk deploy requires unique Slice names after the optional stage.');
536
+ }
537
+ return {
538
+ kind: 'deploy',
539
+ command: 'deploy',
540
+ stage,
541
+ expectedRoleArn,
542
+ ...(profile === undefined
543
+ ? {}
544
+ : { profile: (0, local_context_js_1.normalizeLocalDevProfile)(profile) }),
545
+ ...(json ? { json: true } : {}),
546
+ ...(slices.length === 0 ? {} : { slices }),
547
+ };
548
+ }
489
549
  (0, personal_stage_js_1.rejectExplicitStageArguments)(arguments_);
490
550
  if (arguments_.length === 0 || arguments_[0] === '--help') {
491
551
  if (arguments_.length > 1) {
@@ -532,6 +592,17 @@ function parseEbkArguments(arguments_) {
532
592
  const command = arguments_[1];
533
593
  const rest = arguments_.slice(2);
534
594
  switch (command) {
595
+ case 'attach': {
596
+ const tokens = parseTokens(rest, JSON_OPTION);
597
+ if (tokens.positionals.length !== 1)
598
+ return usageError('ebk dev attach requires exactly one task ID.');
599
+ return {
600
+ command: 'attach',
601
+ kind: 'dev',
602
+ json: booleanOption(tokens, 'json'),
603
+ taskId: (0, task_identity_js_1.requireTaskId)(tokens.positionals[0]),
604
+ };
605
+ }
535
606
  case 'configure':
536
607
  return parseConfigure(rest);
537
608
  case 'setup':
package/src/cli/main.d.ts CHANGED
@@ -16,8 +16,12 @@ import { type FleetRuntimePaths } from '../local-dev/runtime-paths.js';
16
16
  import { assertSecretSliceClaimAuthority } from '../local-dev/secret-slice-claim.js';
17
17
  import { type HiddenSecretInputReader, type HumanSecretCeremony, type PersonalSecretConfirmation, type PersonalSecretValueValidator, type PersonalSstSecretStore } from '../secrets/personal-command.js';
18
18
  import type { SecretMetadataDeclaration } from '../secrets/model.js';
19
+ import { assertWorkspaceStageOwnershipForWorkspace } from '../workspace-deployment/index.js';
20
+ import { attachStoppedTask } from '../local-dev/task-attachment.js';
21
+ import { bindTaskEnvironment } from '../local-dev/task-identity.js';
19
22
  import { type DevCliCommand, type DevSliceSelector } from './dev-command.js';
20
23
  import type { AgentCliCommand } from './agent-command.js';
24
+ import { executeDeployCommand } from './deploy-runtime.js';
21
25
  import { executeDeveloperAgentCommand } from './agent-runtime.js';
22
26
  import { type LoadedPersonalOperatorSecret, type PersonalSecretAwsContext } from './personal-secret-runtime.js';
23
27
  export interface EbkCliIo {
@@ -64,13 +68,17 @@ interface WorkspaceFilesystemIdentity {
64
68
  }
65
69
  export declare function sameWorkspaceRealpath(left: string, right: string, currentPlatform?: NodeJS.Platform, inspectIdentity?: (path: string) => WorkspaceFilesystemIdentity): boolean;
66
70
  export interface EbkCliDependencies {
71
+ bindTask: typeof bindTaskEnvironment;
72
+ attachTask: typeof attachStoppedTask;
67
73
  acquireSecretLedgerLock: typeof acquirePersonalSecretLedgerLock;
68
74
  appData: () => string;
69
75
  assertSecretSliceClaim: typeof assertSecretSliceClaimAuthority;
76
+ assertWorkspaceOwnership: typeof assertWorkspaceStageOwnershipForWorkspace;
70
77
  changeDirectory: (workspaceRoot: string) => void;
71
78
  client: (paths: FleetRuntimePaths) => FleetClientPort;
72
79
  discoverContext: (explicit: LocalDevContextInput, environment: NodeJS.ProcessEnv) => Promise<LocalDevContextDiscovery>;
73
80
  executeAgent: typeof executeDeveloperAgentCommand;
81
+ executeDeploy: typeof executeDeployCommand;
74
82
  followLogs: typeof followFleetLogs;
75
83
  frameworkVersion: () => string;
76
84
  gitCommonDirectory: (workspaceRoot: string) => string;
@@ -127,5 +135,5 @@ export declare function runAgentCommandCore(command: AgentCliCommand, io?: EbkCl
127
135
  * Nx never calls back through argv parsing or the CLI entry point.
128
136
  */
129
137
  export declare function runDevCommandCore(command: DevCliCommand, io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<0 | 1 | 2>;
130
- export declare function runEbkCli(arguments_: readonly string[], io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<0 | 1 | 2>;
138
+ export declare function runEbkCli(arguments_: readonly string[], io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<number>;
131
139
  export {};