@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
@@ -0,0 +1,529 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderStageAuthorityWorkspaceFiles = renderStageAuthorityWorkspaceFiles;
4
+ function renderStageAuthorityWorkspaceFiles(options) {
5
+ return {
6
+ 'docs/stage-deployment-authority.md': `# Stage deployment authority
7
+
8
+ Each active stage uses one stable deployment role and one runtime permission
9
+ boundary. The authority is independent of framework package candidates and is
10
+ updated only when the reviewed service-family contract changes.
11
+
12
+ A fresh fully-isolated workspace may bind development and staging before its
13
+ production account exists. Leave an unavailable account explicitly null; do
14
+ not invent an ID or reuse another stage's account. The selected lower stage
15
+ must have its exact account, and every configured account must be distinct.
16
+ Production operations still require the complete three-account topology and
17
+ all existing production controls. This does not relax the complete tuple
18
+ evidence required when migrating ownership of an existing workspace.
19
+
20
+ Render a stage's CloudFormation template from the committed repository policy:
21
+
22
+ \`\`\`sh
23
+ pnpm nx run <workspace>:stage-authority-render -- \\
24
+ --stage=development \\
25
+ --aws-principal-arn=<temporary-credential-source-role>
26
+ \`\`\`
27
+
28
+ Locally admitted stages require at least one reviewed
29
+ \`--aws-principal-arn\`.
30
+
31
+ Rendering, reviewing, and read-only simulation of the emitted templates are
32
+ ordinary work an agent may do with the development profile. Applying the
33
+ owner-claim and authority stacks creates IAM roles and trust and therefore
34
+ requires an account-administrator credential that agents never hold: the agent
35
+ hands the exact rendered \`ownership-template.json\`, \`template.json\`, stack
36
+ names, and parameters to the account administrator, who applies them, and the
37
+ agent verifies afterwards with the read-only ownership doctor.
38
+
39
+ Stages that require only protected GitHub deployment
40
+ require one exact \`--github-repository\` environment trust and reject local AWS
41
+ principals. Production-isolated staging requires both the local principal and
42
+ the protected GitHub environment trust: local staging remains supported, while
43
+ the protected \`develop\` deployment produces the receipt consumed by production
44
+ promotion. The \`starter\` profile may add that exact GitHub trust to either of
45
+ its locally admitted stages because its GitHub paved road is optional. Fully
46
+ isolated development rejects GitHub trust.
47
+
48
+ GitHub trust is scoped to the repository's exact stage environment and always
49
+ uses GitHub's immutable owner/repository-ID OIDC subject customization. Every
50
+ \`--github-repository\` must be accompanied by both
51
+ \`--github-owner-id=<numeric-id>\` and
52
+ \`--github-repository-id=<numeric-id>\`; a partial or name-only subject is
53
+ rejected. Obtain the canonical slug and IDs from the GitHub bootstrap report,
54
+ but do not enable immutable subjects yet for an existing repository. First apply the rendered
55
+ \`ownership-template.json\` as the owner-claim stack named in
56
+ \`ownership-manifest.json\`. CloudFormation creates the retained
57
+ \`/ebk/<stage>/workspace-owner\` record atomically. Then apply
58
+ \`template.json\` as the authority stack shown in \`manifest.json\`; its
59
+ CloudFormation Rule reads the exact owner before any IAM change. A second
60
+ workspace therefore cannot address the same account, Region, and stage tuple,
61
+ while a clone retaining the committed deployment ID reuses both stacks.
62
+ Read back and simulate the effective immutable-subject trust, then apply the
63
+ GitHub bootstrap change that configures the repository's default immutable OIDC
64
+ subject. This AWS-trust-first order prevents an existing protected deployment
65
+ from being stranded between the subject-format and trust-policy changes.
66
+ Existing deployed workspaces must first commit the explicit migration evidence
67
+ described in \`docs/workspace-deployment-ownership.md\`; never claim an existing
68
+ tuple by editing policy directly. Read back the deployed template and policies
69
+ and compare their canonical digests before any application mutation. Simulate
70
+ representative permitted lifecycle calls and denied account, trust,
71
+ boundary-removal, cross-stage, cross-account, and cross-Region calls against
72
+ the effective assumed role.
73
+
74
+ The deployment role is a temporary infrastructure administrator, not a runtime
75
+ workload identity. It therefore receives stable service-family authority for
76
+ the generated architecture instead of a candidate-specific provider-call
77
+ inventory. Sensitive seams remain independently bounded: IAM roles must use the
78
+ generated stage path and permission boundary, \`iam:PassRole\` is limited to
79
+ those roles, Lambda resource-policy mutation follows the generated integration
80
+ and Function URL contracts, later trust-policy mutation is denied, and
81
+ unreviewed direct resource-policy APIs are denied.
82
+ The \`/ebk/<stage>/workloads/\` IAM path is an EBK-owned reserved namespace for
83
+ roles created from reviewed generated infrastructure. External or manually
84
+ managed roles must never be created there, and the deployer's bounded
85
+ \`iam:PassRole\` access to that path is not adopter extension authority.
86
+ Supported generated S3,
87
+ Lambda, SNS, and SQS policy surfaces remain resource-contained. The generated
88
+ edge WAF log group is ARN-contained. CloudWatch Logs exposes
89
+ \`PutResourcePolicy\` only at account scope, with no resource or action-specific
90
+ condition keys, so its reviewed generated payload cannot be inspected by IAM;
91
+ the exact edge Region and reviewed generated source are the honest controls.
92
+ The separate, normally empty Router smoke-access IP set uses the existing
93
+ Pulumi AWS provider's Cloud Control resource lifecycle. Cloud Control
94
+ create/update/delete require \`Resource: "*"\` and offer no resource-type
95
+ condition key. Those orchestration actions and required reads are restricted
96
+ to the edge Region; the service uses the caller's temporary session, with no
97
+ service-role override. Underlying WAF calls still require the stage deployer's
98
+ resource authority and remain subject to its explicit guardrails. Baseline WAF
99
+ IP-set identities are preserved and smoke never edits their addresses.
100
+ When the committed application Region is also the edge Region, ordinary log
101
+ lifecycle mutations are admitted only for the generated stage application and
102
+ API execution-log namespaces; unrelated and other-stage log groups remain
103
+ denied.
104
+ IAM identity
105
+ policies cannot inspect the initial \`AssumeRolePolicyDocument\` supplied to
106
+ \`CreateRole\`. For that create-time field, reviewed generated infrastructure
107
+ source is the control: the temporary deployment principal is trusted to execute
108
+ that source, while later trust-policy mutation remains denied. EBK does not
109
+ claim a postdeployment trust attestor. Runtime roles are created by SST/Pulumi
110
+ in the application stack and must carry the generated stage permission
111
+ boundary.
112
+
113
+ The policy generator is checked against a compact, versioned extract of AWS's
114
+ official Service Authorization Reference v1.4. Every wildcard-admitted service
115
+ family is covered. Every permission-management action that the role can admit
116
+ is either explicitly denied or an exact reviewed lifecycle seam: bounded
117
+ workload-role IAM operations, AWS-resource KMS grants, generated Lambda
118
+ integration permissions, stage SNS/SQS attributes, and stage/SST S3 bucket
119
+ policy, public-access-block, and ownership controls, plus the generated edge
120
+ WAF log-delivery resource policy described above. Actions the role does not
121
+ admit remain implicitly denied.
122
+ Unsupported replication, alternate RDS topology/integration, export, account
123
+ control, arbitrary user/data-plane, and exfiltration operations remain denied.
124
+
125
+ Governed nonproduction Slice removal configures the provider to delete the
126
+ versioned confidential-export bucket, removes its deterministic alias, and may
127
+ schedule only a KMS key carrying both the exact stage and
128
+ \`standard-data-export\` management tags. Production export buckets, aliases,
129
+ and keys remain retained and are explicitly denied deletion. Long generated
130
+ bucket names are truncated and hash-suffixed while preserving the
131
+ \`-data-export\` suffix so that protection remains narrowly scoped.
132
+
133
+ The role may inspect secret metadata. SST 4.17.1's generated Foundation Aurora
134
+ credential is the one value exception: the temporary deployer may put and read
135
+ that exact stage/account/Region-bound secret version so the pinned provider can
136
+ create and reconcile it. The reserved name must also carry the exact
137
+ \`ebk:stage\` tag. \`GetSecretValue\` and \`PutSecretValue\` remain denied for
138
+ operator-secret and all other Slice containers.
139
+ Generated source creates Slice containers inside the deterministic
140
+ \`ebk/<stage>/*\` namespace. The temporary deployer's \`UpdateSecret\` authority
141
+ is denied outside that namespace and the exact generated Foundation
142
+ provider-secret identity. Imported, externally owned or shared, unmanaged,
143
+ other-stage, cross-account, and cross-Region containers remain outside this
144
+ update authority. The namespace is reserved for EBK-owned, stage-exclusive
145
+ containers, including explicitly approved cross-Slice use; imported or
146
+ externally owned containers must use a name outside it. The namespace contract
147
+ covers generated database, machine-client, generated-value, and EBK-owned
148
+ operator containers without adding a new IAM exception for every provider
149
+ resource type. It does not admit
150
+ \`GetSecretValue\` or \`PutSecretValue\` for Slice containers. Because
151
+ \`CreateSecret\` and \`UpdateSecret\` can optionally carry a value, IAM cannot
152
+ distinguish a metadata-only call; reviewed generated source, temporary
153
+ credentials, the stage namespace, and CloudTrail are the honest controls for
154
+ those provider APIs.
155
+ SSM value reads are limited to the stage's Foundation configuration, SST 4.17.1
156
+ bootstrap record, stage-qualified SST passphrases, SST's VPC private-key
157
+ reference, and the exact retained workspace-owner record. The deployment role
158
+ can read but cannot change or delete that owner. Foundation removal enumerates Product Slice registration names and
159
+ metadata without reading their values. Recursive and historical SSM value reads
160
+ are denied. These controls,
161
+ the exact trust, temporary credentials, requested Region, known account/stage
162
+ tags, production-name protections, and explicit protection-removal denies are
163
+ the stable guardrails around the broader infrastructure service families. In
164
+ commercial AWS, CloudFront, CloudFront-scope WAF, and edge ACM mutations use
165
+ the us-east-1 control plane while application resources remain bound to the
166
+ committed deployment Region. This prerelease does not claim Router edge support in
167
+ noncommercial partitions: CloudFront is unavailable inside GovCloud, and the
168
+ China-partition CloudFront/WAF/edge-ACM control plane is not yet proven.
169
+
170
+ When multiple stages share one AWS account, their application resources,
171
+ runtime roles, data, and discovery remain separately named and tagged, but the
172
+ native SST deployment role is account-scoped enough to reconcile SST's shared
173
+ bootstrap state and assets. Tag and name denies are defense in depth, not a hard
174
+ IAM boundary between same-account deployment roles. Choose
175
+ \`production-isolated\` when production requires an AWS-enforced deployment
176
+ blast-radius boundary from development and staging.
177
+
178
+ Native SST 4.17.1 development uses a shared untagged AppSync Events API named
179
+ \`sst\` and its \`sst\` namespace in the development account/Region. Development
180
+ authority admits native discovery/creation; the runtime boundary admits only
181
+ connect/publish/subscribe. No API-key, GraphQL, update or deletion authority is
182
+ added. IAM cannot isolate task channel subpaths within this namespace: this is
183
+ a shared developer control plane, not an application event bus or a boundary
184
+ between mutually hostile tasks. Application data/events remain task-scoped.
185
+ Task cleanup never deletes this shared transport. Protected-stage authority is
186
+ unchanged; an incomplete or malformed native API requires investigation.
187
+
188
+ Native Next.js development also assumes SST's generated web dev-server runtime
189
+ role. Development authority admits only the \`sst-dev\` session in the committed
190
+ Region, for roles in the reserved development workload path carrying both the
191
+ generated \`ebk:dev-runtime=web\` purpose and a development or task-stage tag.
192
+ Purpose does not depend on SST's potentially truncated physical names. Other role paths/accounts and
193
+ protected-stage assumptions remain denied. Runtime roles still cannot assume
194
+ other roles, and their mandatory boundary and task data restrictions remain.
195
+ The owned web launcher requires SST's temporary runtime session and strips
196
+ inherited deployment profile selectors before starting Next. If that handoff
197
+ fails, reconcile this generated authority and inspect \`ebk dev logs <slice>\`,
198
+ then retry \`ebk dev restart <slice>\`. Do not grant the infrastructure deployer
199
+ direct application data access or modify generated runtime trust as a workaround.
200
+ `,
201
+ 'docs/workspace-deployment-ownership.md': `# Workspace deployment ownership
202
+
203
+ Every generated workspace commits one stable, random \`workspaceDeploymentId\`
204
+ and \`workspaceDeploymentProvenance: { kind: "fresh", schemaVersion: 1 }\`.
205
+ That identity belongs to the workspace, not to a checkout: clones with the same
206
+ committed policy are the same deployment owner.
207
+
208
+ Before authority or SST lifecycle work, each active account/Region/canonical
209
+ stage tuple must contain exactly one retained String parameter at
210
+ \`/ebk/<stage>/workspace-owner\`. The value binds the tuple to the generated
211
+ deployment ID; the current workspace name remains diagnostic metadata and may
212
+ be renamed without transferring authority. The ownership claim is deliberately
213
+ exclusive and retained. Two workspaces do not cohabit one tuple, and removing
214
+ an application stack does not release the claim.
215
+
216
+ Render stage authority with \`pnpm nx run ${options.name}:stage-authority-render --
217
+ --stage=<stage> ...\`. An agent may render and review it; an account administrator
218
+ applies the stacks, because they create IAM roles and trust. Apply the emitted \`ownership-template.json\` as the exact
219
+ claim stack in \`ownership-manifest.json\` before applying the authority template.
220
+ CloudFormation's fixed-name SSM create is the atomic claim. The authority
221
+ template accepts only that exact parameter path and fails its Rule before any
222
+ IAM change unless its value is the exact committed owner. The deployment role
223
+ may read the owner but is explicitly denied every owner mutation.
224
+
225
+ For a read-only report, run
226
+ \`node tools/stage-authority-render.mjs --stage=<stage> --ownership-doctor=true
227
+ --profile=<temporary-profile>\`. It reports \`owned\`, \`unclaimed\`, or \`conflict\`;
228
+ a conflict identifies the committed owner without changing AWS.
229
+
230
+ ## Existing prerelease deployments
231
+
232
+ An existing policy without the required deployment identity provenance is fail
233
+ closed. Inventory
234
+ each configured tuple read-only and commit bounded evidence under
235
+ \`docs/adoption/\`. The evidence must bind the exact prior policy SHA-256,
236
+ workspace name, proposed \`ebkws-<32 lowercase hex>\` ID, and every configured
237
+ tuple. The ID, exact Region, and every active-stage account must be committed in
238
+ the same migration change; an empty interim topology cannot reserve future
239
+ coordinates. Each tuple declares \`empty\` with no resource digests or
240
+ \`existing-workspace\` with sorted SHA-256 digests of its bounded resource
241
+ identity evidence. Then run the repository-policy generator with both
242
+ \`--workspaceDeploymentId\` and
243
+ \`--workspaceDeploymentMigrationEvidence\`. Report-only mode shows the exact
244
+ result with \`workspaceDeploymentProvenance.kind: "migrated"\`; \`--apply\`
245
+ commits it. Every later policy read revalidates the retained evidence bytes,
246
+ workspace identity, the syntactically valid diagnostic name recorded at migration,
247
+ and exact active stage/account/Region tuple set. The current package name may be
248
+ renamed without renewing ownership evidence because authority is bound to the
249
+ immutable deployment ID rather than that diagnostic label.
250
+ A profile, account, or Region change for a migrated workspace requires a new
251
+ versioned evidence path whose previous-policy digest binds the current policy;
252
+ unrelated policy changes retain the existing binding.
253
+
254
+ This migration is an explicit ownership assertion, not automatic discovery.
255
+ Never use it to adopt a tuple whose resources belong to another workspace. An
256
+ occupied but unclaimed tuple requires reviewed evidence that the existing
257
+ resources belong to this workspace. There is no implicit compatibility claim,
258
+ ownership transfer, or force-adoption path.
259
+ `,
260
+ 'tools/stage-authority-render.mjs': `import {
261
+ assertBoundStageAuthorityTemplateFitsBodyLimit,
262
+ canonicalStageAuthorityTemplate,
263
+ createStageAuthorityPlan,
264
+ } from '@empire-builder-kit/nx/aws-authority';
265
+ import {
266
+ configuredDeploymentAccountForStage,
267
+ configuredDeploymentRegion,
268
+ isActiveDeploymentStage,
269
+ readRepositoryOperatingPolicy,
270
+ requiresGithubDeployment,
271
+ } from '@empire-builder-kit/nx/repository-policy';
272
+ import {
273
+ bindStageAuthorityTemplateToWorkspaceOwner,
274
+ canonicalWorkspaceStageOwner,
275
+ createWorkspaceStageOwnershipClaimPlan,
276
+ inspectWorkspaceStageOwnership,
277
+ } from '@empire-builder-kit/nx/workspace-deployment';
278
+ import { createHash } from 'node:crypto';
279
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
280
+ import { join } from 'node:path';
281
+
282
+ const values = new Map();
283
+ const principals = [];
284
+ for (const argument of process.argv.slice(2)) {
285
+ const index = argument.indexOf('=');
286
+ if (!argument.startsWith('--') || index <= 2) {
287
+ throw new Error('Stage authority arguments must use --name=value.');
288
+ }
289
+ const name = argument.slice(2, index);
290
+ const value = argument.slice(index + 1);
291
+ if (!value) throw new Error('Stage authority arguments cannot be empty.');
292
+ if (name === 'aws-principal-arn') principals.push(value);
293
+ else if (values.has(name)) throw new Error('Duplicate stage authority argument: ' + name);
294
+ else values.set(name, value);
295
+ }
296
+ const stage = values.get('stage');
297
+ if (!['development', 'staging', 'production'].includes(stage)) {
298
+ throw new Error('--stage must be development, staging, or production.');
299
+ }
300
+ const policy = readRepositoryOperatingPolicy(process.cwd());
301
+ const rootPackage = JSON.parse(readFileSync('package.json', 'utf8'));
302
+ const workspaceName = rootPackage?.name;
303
+ if (
304
+ typeof workspaceName !== 'string' ||
305
+ workspaceName.length > 214 ||
306
+ !/^(?:@[a-z0-9][a-z0-9._~-]*\\/)?[a-z0-9][a-z0-9._~-]*$/.test(workspaceName)
307
+ ) {
308
+ throw new Error('Workspace ownership requires the current generated root package name.');
309
+ }
310
+ if (policy.deploymentProfile !== '${options.deploymentProfile}') {
311
+ throw new Error('Generated and committed deployment profiles differ.');
312
+ }
313
+ if (policy.workspaceDeploymentId !== '${options.workspaceDeploymentId}') {
314
+ throw new Error('Generated and committed workspace deployment identities differ.');
315
+ }
316
+ if (!isActiveDeploymentStage(policy.deploymentProfile, stage)) {
317
+ throw new Error('Requested stage is inactive for the committed deployment profile.');
318
+ }
319
+ const accountId = configuredDeploymentAccountForStage(
320
+ policy.deploymentProfile,
321
+ policy.deploymentAccounts,
322
+ stage,
323
+ );
324
+ const region = configuredDeploymentRegion(policy.deploymentRegion);
325
+ if (/^(?:us-iso-|us-isob-|eu-isoe-|us-isof-)/.test(region)) {
326
+ throw new Error(
327
+ 'The committed Region belongs to an unsupported AWS partition. Generated authority supports aws, aws-cn, and aws-us-gov only.',
328
+ );
329
+ }
330
+ const partition = region.startsWith('cn-')
331
+ ? 'aws-cn'
332
+ : region.startsWith('us-gov-')
333
+ ? 'aws-us-gov'
334
+ : 'aws';
335
+ const ownershipTarget = {
336
+ accountId,
337
+ region,
338
+ stage,
339
+ workspaceDeploymentId: policy.workspaceDeploymentId,
340
+ workspaceName,
341
+ };
342
+ const ownershipDoctor = values.get('ownership-doctor');
343
+ if (ownershipDoctor !== undefined && ownershipDoctor !== 'true') {
344
+ throw new Error('--ownership-doctor must be exactly true when supplied.');
345
+ }
346
+ if (ownershipDoctor === 'true') {
347
+ if (principals.length > 0 || values.has('github-repository')) {
348
+ throw new Error('Workspace ownership doctor does not accept authority trust inputs.');
349
+ }
350
+ const profile = values.get('profile');
351
+ const [{ GetCallerIdentityCommand, STSClient }, { fromIni }] = await Promise.all([
352
+ import('@aws-sdk/client-sts'),
353
+ import('@aws-sdk/credential-providers'),
354
+ ]);
355
+ const credentials = profile ? fromIni({ profile }) : undefined;
356
+ const identity = await new STSClient({
357
+ ...(credentials ? { credentials } : {}),
358
+ region,
359
+ }).send(new GetCallerIdentityCommand({}));
360
+ if (identity.Account !== accountId) {
361
+ throw new Error('Workspace ownership doctor caller differs from the committed stage account.');
362
+ }
363
+ const inspection = await inspectWorkspaceStageOwnership(
364
+ ownershipTarget,
365
+ profile ? { profile } : {},
366
+ );
367
+ process.stdout.write(JSON.stringify({
368
+ accountId,
369
+ expectedOwner: inspection.expectedOwner,
370
+ kind: 'ebk-workspace-stage-owner-doctor',
371
+ parameterArn: inspection.parameterArn,
372
+ region,
373
+ ...(inspection.status === 'owned'
374
+ ? { owner: inspection.expectedOwner }
375
+ : inspection.status === 'conflict' && inspection.actualOwner
376
+ ? { owner: inspection.actualOwner }
377
+ : {}),
378
+ ...(inspection.status === 'conflict' ? { reason: inspection.reason } : {}),
379
+ schemaVersion: 1,
380
+ stage,
381
+ status: inspection.status,
382
+ }, null, 2) + '\\n');
383
+ if (inspection.status !== 'owned') process.exitCode = 1;
384
+ } else {
385
+ const repository = values.get('github-repository');
386
+ if (repository && !/^[A-Za-z0-9_.-]+[/][A-Za-z0-9_.-]+$/.test(repository)) {
387
+ throw new Error('--github-repository must be one exact owner/repository slug.');
388
+ }
389
+ const githubOwnerId = values.get('github-owner-id');
390
+ const githubRepositoryId = values.get('github-repository-id');
391
+ const githubId = /^[1-9][0-9]{0,19}$/;
392
+ if (repository && (!githubOwnerId || !githubRepositoryId)) {
393
+ throw new Error(
394
+ '--github-repository requires both --github-owner-id and --github-repository-id.',
395
+ );
396
+ }
397
+ if ((githubOwnerId || githubRepositoryId) && !repository) {
398
+ throw new Error('Immutable GitHub IDs require --github-repository.');
399
+ }
400
+ if (
401
+ (githubOwnerId && !githubId.test(githubOwnerId)) ||
402
+ (githubRepositoryId && !githubId.test(githubRepositoryId))
403
+ ) {
404
+ throw new Error('Immutable GitHub owner and repository IDs must be positive bounded integers.');
405
+ }
406
+ const githubOnly = requiresGithubDeployment(policy.deploymentProfile, stage);
407
+ const productionIsolatedStaging =
408
+ policy.deploymentProfile === 'production-isolated' && stage === 'staging';
409
+ const localRequired = !githubOnly;
410
+ const githubRequired = githubOnly || productionIsolatedStaging;
411
+ const githubAllowed = githubRequired || policy.deploymentProfile === 'starter';
412
+ if (localRequired && principals.length === 0) {
413
+ throw new Error(
414
+ 'Locally admitted stages require at least one reviewed --aws-principal-arn.',
415
+ );
416
+ }
417
+ if (!localRequired && principals.length > 0) {
418
+ throw new Error(
419
+ 'Protected GitHub deployment stages reject local --aws-principal-arn trust.',
420
+ );
421
+ }
422
+ if (githubRequired && !repository) {
423
+ throw new Error(
424
+ 'This stage requires protected GitHub deployment and one exact --github-repository trust.',
425
+ );
426
+ }
427
+ if (repository && !githubAllowed) {
428
+ throw new Error(
429
+ 'This locally admitted isolated-profile stage does not permit GitHub trust.',
430
+ );
431
+ }
432
+ const [githubOwner, githubRepository] = repository?.split('/') ?? [];
433
+ const githubSubject = repository
434
+ ? 'repo:' +
435
+ githubOwner + '@' + githubOwnerId + '/' + githubRepository + '@' + githubRepositoryId +
436
+ ':environment:' + stage
437
+ : undefined;
438
+ const plan = createStageAuthorityPlan({
439
+ accountId,
440
+ awsPrincipalArns: principals,
441
+ ...(repository
442
+ ? {
443
+ github: {
444
+ oidcProviderArn:
445
+ 'arn:' + partition + ':iam::' + accountId + ':oidc-provider/token.actions.githubusercontent.com',
446
+ subject: githubSubject,
447
+ },
448
+ }
449
+ : {}),
450
+ region,
451
+ partition,
452
+ stage,
453
+ });
454
+ const ownership = createWorkspaceStageOwnershipClaimPlan(ownershipTarget);
455
+ const authorityTemplate = bindStageAuthorityTemplateToWorkspaceOwner(
456
+ plan.template,
457
+ ownershipTarget,
458
+ );
459
+ assertBoundStageAuthorityTemplateFitsBodyLimit(authorityTemplate);
460
+ const template = canonicalStageAuthorityTemplate(authorityTemplate);
461
+ const directory = join('.ebk', 'authority', stage);
462
+ mkdirSync(directory, { mode: 0o700, recursive: true });
463
+ const templatePath = join(directory, 'template.json');
464
+ const manifestPath = join(directory, 'manifest.json');
465
+ const ownershipTemplate = canonicalStageAuthorityTemplate(ownership.template);
466
+ const ownershipTemplatePath = join(directory, 'ownership-template.json');
467
+ const ownershipManifestPath = join(directory, 'ownership-manifest.json');
468
+ writeFileSync(templatePath, template, { encoding: 'utf8', mode: 0o600 });
469
+ writeFileSync(ownershipTemplatePath, ownershipTemplate, {
470
+ encoding: 'utf8',
471
+ mode: 0o600,
472
+ });
473
+ const ownershipTemplateSha256 = createHash('sha256')
474
+ .update(ownershipTemplate)
475
+ .digest('hex');
476
+ const ownershipManifest = {
477
+ accountId,
478
+ digest: ownershipTemplateSha256,
479
+ kind: 'ebk-workspace-stage-owner-claim',
480
+ parameterArn: ownership.parameterArn,
481
+ parameterName: ownership.parameterName,
482
+ region,
483
+ schemaVersion: 1,
484
+ stackName: ownership.stackName,
485
+ stage,
486
+ templateSha256: ownershipTemplateSha256,
487
+ workspaceDeploymentId: policy.workspaceDeploymentId,
488
+ workspaceName,
489
+ };
490
+ writeFileSync(
491
+ ownershipManifestPath,
492
+ JSON.stringify(ownershipManifest, null, 2) + '\\n',
493
+ { encoding: 'utf8', mode: 0o600 },
494
+ );
495
+ const templateSha256 = createHash('sha256').update(template).digest('hex');
496
+ const manifest = {
497
+ accountId,
498
+ deploymentRoleArn: plan.identity.deploymentRoleArn,
499
+ digest: templateSha256,
500
+ kind: 'ebk-stage-authority-render',
501
+ limitations: plan.limitations,
502
+ profile: policy.deploymentProfile,
503
+ region,
504
+ schemaVersion: 1,
505
+ stackName: plan.identity.stackName,
506
+ stage,
507
+ templateSha256,
508
+ workspaceDeploymentId: policy.workspaceDeploymentId,
509
+ workspaceName,
510
+ workspaceOwner: canonicalWorkspaceStageOwner(ownershipTarget),
511
+ workspaceOwnerClaimStackName: ownership.stackName,
512
+ workspaceOwnerManifestPath: ownershipManifestPath,
513
+ };
514
+ writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\\n', {
515
+ encoding: 'utf8',
516
+ mode: 0o600,
517
+ });
518
+ process.stdout.write(JSON.stringify({
519
+ manifestPath,
520
+ ...manifest,
521
+ ownershipManifestPath,
522
+ ownershipTemplatePath,
523
+ templatePath,
524
+ }) + '\\n');
525
+ }
526
+ `,
527
+ };
528
+ }
529
+ //# sourceMappingURL=workspace-files-stage-authority.js.map
@@ -0,0 +1,65 @@
1
+ import type { DeploymentProfile } from '../../repository-policy/index.js';
2
+ export declare const THIN_DEPLOY_WORKFLOW_PATH: ".github/workflows/deploy.yml";
3
+ export interface ThinDeployActionPins {
4
+ cache: string;
5
+ checkout: string;
6
+ configureAwsCredentials: string;
7
+ downloadArtifact: string;
8
+ pnpmSetup: string;
9
+ setupNode: string;
10
+ uploadArtifact: string;
11
+ }
12
+ export interface ThinDeployToolVersions {
13
+ node: string;
14
+ sst: string;
15
+ }
16
+ export interface ThinDeployWorkflowOptions {
17
+ actionPins: ThinDeployActionPins;
18
+ /** trunk (starter only): main pushes call the deploy workflow for production. */
19
+ deliveryLane?: 'protected-pair' | 'trunk';
20
+ deploymentProfile: DeploymentProfile;
21
+ name: string;
22
+ /**
23
+ * trunk-promotion (isolated profiles only): a successful staging lifecycle on
24
+ * develop promotes and deploys production in the same run, then records the
25
+ * deployed commit on main; promotion-pr and environment-reviewer keep the
26
+ * develop-to-main promotion pull request.
27
+ */
28
+ productionApprovalMode?: ThinDeployProductionApprovalMode;
29
+ toolVersions: ThinDeployToolVersions;
30
+ }
31
+ export type ThinDeployProductionApprovalMode = 'promotion-pr' | 'environment-reviewer' | 'trunk-promotion';
32
+ /** The production environment secret that lets record-main fast-forward main. */
33
+ export declare const EBK_RECORD_MAIN_TOKEN_SECRET: "EBK_RECORD_MAIN_TOKEN";
34
+ export interface ThinDeployWorkflowFilePlan {
35
+ files: Readonly<Record<typeof THIN_DEPLOY_WORKFLOW_PATH, string>>;
36
+ managedPaths: readonly [typeof THIN_DEPLOY_WORKFLOW_PATH];
37
+ }
38
+ export declare function renderThinDeployVerifyCaller(profile: DeploymentProfile, deliveryLane?: 'protected-pair' | 'trunk', productionApprovalMode?: ThinDeployProductionApprovalMode): string;
39
+ /** @internal Run exactly this generated script in the protected-runner fixture. */
40
+ export declare function protectedBrowserInstallScript(): string;
41
+ /**
42
+ * @internal Run exactly this generated script in the protected-runner fixture.
43
+ *
44
+ * Reads the deploying stage's GitHub environment variables through request
45
+ * names and exports the canonical machine-credential variables only when they
46
+ * are set. An unset GitHub variable expands to '', which the generated Slice
47
+ * SST config would read as a generation rather than its blue-1 default, so the
48
+ * canonical names never reach the lifecycle when the request is empty.
49
+ */
50
+ export declare function machineCredentialRequestScript(): string;
51
+ /** @internal Exported for executable source-contract tests. */
52
+ export declare function exactStageDeployerGuardScript(operation: string, accountVariable: string): string;
53
+ /** @internal Shared verbatim by every generated protected workflow. */
54
+ export declare function canonicalStageAuthorityDerivationScript(): string;
55
+ /** @internal Exported for executable source-contract tests. */
56
+ export declare function exactStagingPromotionPullGuardScript(): string;
57
+ /** @internal Shared verbatim with the generated workflow and executable tests. */
58
+ export declare function stagingPromotionReceiptValidationScript(): string;
59
+ /** @internal Shared verbatim with the generated workflow and executable tests. */
60
+ export declare function restoredCandidateValidationScript(): string;
61
+ /** @internal Shared verbatim with the generated workflow and executable tests. */
62
+ export declare function stagingPromotionSealScript(): string;
63
+ /** @internal Shared verbatim with the generated workflow and executable tests. */
64
+ export declare function postdeploySupplyChainBindingScript(): string;
65
+ export declare function renderThinDeployWorkflowFilePlan(options: ThinDeployWorkflowOptions): ThinDeployWorkflowFilePlan;