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

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 (791) hide show
  1. package/README.md +18 -0
  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.js +21 -9
  16. package/src/blueprints/manifest.d.ts +1 -1
  17. package/src/blueprints/resolver.js +28 -15
  18. package/src/cli/bootstrap.d.ts +1 -1
  19. package/src/cli/deploy-runtime.d.ts +6 -0
  20. package/src/cli/deploy-runtime.js +58 -0
  21. package/src/cli/dev-command.d.ts +16 -4
  22. package/src/cli/dev-command.js +63 -0
  23. package/src/cli/main.d.ts +9 -1
  24. package/src/cli/main.js +139 -20
  25. package/src/cli/output.d.ts +1 -1
  26. package/src/cli/output.js +1 -1
  27. package/src/developer-agent/context.js +41 -9
  28. package/src/developer-agent/generator-planning.js +20 -6
  29. package/src/developer-agent/git-inspection.d.ts +6 -2
  30. package/src/developer-agent/git-inspection.js +78 -6
  31. package/src/developer-agent/model.d.ts +5 -3
  32. package/src/developer-agent/model.js +4 -4
  33. package/src/developer-agent/operation-registry.d.ts +5 -0
  34. package/src/developer-agent/operation-registry.js +286 -40
  35. package/src/developer-agent/planning.js +16 -13
  36. package/src/developer-agent/preview-changes.d.ts +2 -0
  37. package/src/developer-agent/preview-changes.js +14 -2
  38. package/src/developer-agent/preview-source.js +3 -0
  39. package/src/developer-agent/validation.js +25 -9
  40. package/src/developer-agent/workspace-inspection.js +60 -5
  41. package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
  42. package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
  43. package/src/executors/deployment-plan/deployment-plan.js +57 -2
  44. package/src/executors/dev-doctor/dev-doctor.js +13 -6
  45. package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
  46. package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
  47. package/src/executors/dev-task-cleanup/schema.json +9 -0
  48. package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
  49. package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
  50. package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
  51. package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
  52. package/src/executors/fleet/fleet.js +1 -1
  53. package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
  54. package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
  55. package/src/executors/foundation-preflight/schema.json +5 -0
  56. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
  57. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
  58. package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
  59. package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
  60. package/src/executors/foundation-profile-preflight/schema.json +15 -4
  61. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
  62. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
  63. package/src/executors/foundation-remove-preflight/schema.json +6 -1
  64. package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
  65. package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
  66. package/src/executors/github-bootstrap/schema.json +7 -1
  67. package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
  68. package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
  69. package/src/executors/infrastructure-plan/schema.json +12 -52
  70. package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
  71. package/src/executors/local-deploy/federated-credential-transport.js +252 -0
  72. package/src/executors/local-deploy/local-approval.d.ts +18 -0
  73. package/src/executors/local-deploy/local-approval.js +39 -0
  74. package/src/executors/local-deploy/local-deploy.d.ts +112 -0
  75. package/src/executors/local-deploy/local-deploy.js +1404 -0
  76. package/src/executors/local-deploy/schema.json +70 -0
  77. package/src/executors/refresh/refresh.js +2 -2
  78. package/src/executors/remove/remove.js +2 -2
  79. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
  80. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
  81. package/src/executors/router-waf-rehearsal/schema.json +29 -0
  82. package/src/executors/secret-initialize/schema.json +42 -0
  83. package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
  84. package/src/executors/secret-initialize/secret-initialize.js +297 -0
  85. package/src/executors/secret-metadata/schema.json +5 -0
  86. package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
  87. package/src/executors/secret-metadata/secret-metadata.js +129 -30
  88. package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
  89. package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
  90. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
  91. package/src/executors/sst-lifecycle/governed-native-operation.js +162 -0
  92. package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
  93. package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
  94. package/src/executors/sst-lifecycle/run-sst-command.d.ts +40 -6
  95. package/src/executors/sst-lifecycle/run-sst-command.js +779 -70
  96. package/src/executors/sst-lifecycle/schema.json +8 -1
  97. package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
  98. package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
  99. package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
  100. package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
  101. package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
  102. package/src/executors/sst-lifecycle/task-unlock.js +126 -0
  103. package/src/executors/unlock/unlock.js +2 -2
  104. package/src/foundation/capability-plan.d.ts +43 -0
  105. package/src/foundation/capability-plan.js +168 -0
  106. package/src/foundation/discovery.d.ts +14 -11
  107. package/src/foundation/discovery.js +32 -6
  108. package/src/foundation/index.d.ts +4 -0
  109. package/src/foundation/index.js +11 -0
  110. package/src/foundation/local-database-contract.d.ts +20 -0
  111. package/src/foundation/local-database-contract.js +262 -13
  112. package/src/foundation/local-private-smoke-access.d.ts +20 -0
  113. package/src/foundation/local-private-smoke-access.js +197 -0
  114. package/src/foundation/logging-preflight.js +1 -1
  115. package/src/foundation/logging.d.ts +3 -1
  116. package/src/foundation/logging.js +1 -1
  117. package/src/foundation/partial-state.d.ts +10 -0
  118. package/src/foundation/partial-state.js +21 -0
  119. package/src/foundation/preflight.js +37 -18
  120. package/src/foundation/private-smoke-access.d.ts +25 -0
  121. package/src/foundation/private-smoke-access.js +135 -0
  122. package/src/foundation/private-smoke-admission.d.ts +45 -0
  123. package/src/foundation/private-smoke-admission.js +180 -0
  124. package/src/foundation/private-smoke-control-plane.d.ts +18 -0
  125. package/src/foundation/private-smoke-control-plane.js +184 -0
  126. package/src/foundation/provision-database-bindings.d.ts +5 -0
  127. package/src/foundation/provision-database-bindings.js +41 -8
  128. package/src/foundation/provision-logical-database.js +15 -8
  129. package/src/foundation/requirements.d.ts +3 -3
  130. package/src/foundation/requirements.js +24 -12
  131. package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
  132. package/src/foundation/router-waf-rate-rehearsal.js +210 -0
  133. package/src/foundation/router-waf.d.ts +149 -0
  134. package/src/foundation/router-waf.js +809 -0
  135. package/src/foundation/stages.d.ts +1 -0
  136. package/src/foundation/stages.js +11 -0
  137. package/src/generators/blueprint/blueprint.d.ts +5 -0
  138. package/src/generators/blueprint/blueprint.js +102 -0
  139. package/src/generators/blueprint/files.d.ts +6 -0
  140. package/src/generators/blueprint/files.js +217 -0
  141. package/src/generators/blueprint/schema.d.ts +4 -0
  142. package/src/generators/blueprint/schema.json +18 -0
  143. package/src/generators/formatting.d.ts +8 -0
  144. package/src/generators/formatting.js +141 -0
  145. package/src/generators/function/function.js +38 -17
  146. package/src/generators/logging-registry.d.ts +2 -0
  147. package/src/generators/logging-registry.js +22 -0
  148. package/src/generators/post-generation-install.js +2 -2
  149. package/src/generators/preset/dependency-overrides.d.ts +8 -0
  150. package/src/generators/preset/dependency-overrides.js +55 -0
  151. package/src/generators/preset/generator.js +43 -3
  152. package/src/generators/preset/schema.d.ts +10 -0
  153. package/src/generators/preset/schema.json +47 -0
  154. package/src/generators/preset/tool-versions.d.ts +2 -0
  155. package/src/generators/preset/tool-versions.js +3 -1
  156. package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
  157. package/src/generators/preset/workspace-files-adopter-skills.js +303 -0
  158. package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
  159. package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
  160. package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
  161. package/src/generators/preset/workspace-files-ci-install.js +196 -0
  162. package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
  163. package/src/generators/preset/workspace-files-developer-agent.js +90 -28
  164. package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
  165. package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
  166. package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
  167. package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
  168. package/src/generators/preset/workspace-files-performance-cost.js +8 -8
  169. package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
  170. package/src/generators/preset/workspace-files-performance-load.js +39 -25
  171. package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
  172. package/src/generators/preset/workspace-files-stage-authority.js +518 -0
  173. package/src/generators/preset/workspace-files-thin-deploy.d.ts +55 -0
  174. package/src/generators/preset/workspace-files-thin-deploy.js +2473 -0
  175. package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
  176. package/src/generators/preset/workspace-files-thin-docs.js +352 -0
  177. package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
  178. package/src/generators/preset/workspace-files-thin-release.js +26 -0
  179. package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
  180. package/src/generators/preset/workspace-files.d.ts +18 -2
  181. package/src/generators/preset/workspace-files.js +1504 -608
  182. package/src/generators/repository-policy/repository-policy.js +235 -5
  183. package/src/generators/repository-policy/schema.d.ts +10 -0
  184. package/src/generators/repository-policy/schema.json +80 -4
  185. package/src/generators/repository-policy/tree-policy.d.ts +3 -0
  186. package/src/generators/repository-policy/tree-policy.js +25 -0
  187. package/src/generators/slice/built-in-plan-api-contract-files.js +42 -7
  188. package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
  189. package/src/generators/slice/built-in-plan-api-files.js +130 -414
  190. package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
  191. package/src/generators/slice/built-in-plan-authorization-files.js +92 -329
  192. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +60 -2
  193. package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
  194. package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
  195. package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
  196. package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
  197. package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
  198. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
  199. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  200. package/src/generators/slice/built-in-plan-data-files.js +163 -1196
  201. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
  202. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
  203. package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
  204. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
  205. package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
  206. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
  207. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +20 -1
  208. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
  209. package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
  210. package/src/generators/slice/built-in-plan-frontend-files.js +7 -3
  211. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  212. package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -729
  213. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +67 -11
  214. package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
  215. package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
  216. package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
  217. package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
  218. package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
  219. package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
  220. package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
  221. package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
  222. package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
  223. package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
  224. package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
  225. package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
  226. package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
  227. package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
  228. package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
  229. package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
  230. package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
  231. package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
  232. package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
  233. package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
  234. package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
  235. package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
  236. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
  237. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
  238. package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
  239. package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
  240. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
  241. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
  242. package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
  243. package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
  244. package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
  245. package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
  246. package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
  247. package/src/generators/slice/built-in-plan-metadata-files.js +157 -28
  248. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
  249. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
  250. package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
  251. package/src/generators/slice/built-in-plan-operations-files.js +585 -97
  252. package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
  253. package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
  254. package/src/generators/slice/built-in-plan-project-files.js +141 -135
  255. package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
  256. package/src/generators/slice/built-in-plan-release-files.js +310 -70
  257. package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
  258. package/src/generators/slice/built-in-plan-reliability-files.js +279 -43
  259. package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
  260. package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
  261. package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
  262. package/src/generators/slice/built-in-plan-shared.js +41 -19
  263. package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
  264. package/src/generators/slice/built-in-plan-sql-events.js +276 -0
  265. package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
  266. package/src/generators/slice/built-in-plan-testing-files.js +304 -172
  267. package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
  268. package/src/generators/slice/built-in-plan-testing-persistence-files.js +178 -0
  269. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
  270. package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
  271. package/src/generators/slice/built-in-plan-verification-files.js +76 -2
  272. package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
  273. package/src/generators/slice/built-in-plan-web-files.js +223 -16
  274. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
  275. package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
  276. package/src/generators/slice/built-in-plan.d.ts +11 -1
  277. package/src/generators/slice/built-in-plan.js +80 -29
  278. package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
  279. package/src/generators/slice/data-policy-review-seed.js +22 -0
  280. package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
  281. package/src/generators/slice/deployed-smoke-readiness.js +214 -0
  282. package/src/generators/slice/local-source-identity.d.ts +2 -0
  283. package/src/generators/slice/local-source-identity.js +31 -0
  284. package/src/generators/slice/persistence-contract.d.ts +14 -0
  285. package/src/generators/slice/persistence-contract.js +32 -0
  286. package/src/generators/slice/slice.js +61 -50
  287. package/src/generators/sql/schema.d.ts +7 -0
  288. package/src/generators/sql/schema.json +38 -0
  289. package/src/generators/sql/sql.d.ts +6 -0
  290. package/src/generators/sql/sql.js +53 -0
  291. package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
  292. package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
  293. package/src/generators/upgrade/upgrade.d.ts +15 -1
  294. package/src/generators/upgrade/upgrade.js +435 -44
  295. package/src/generators/workload/performance-registration.d.ts +1 -0
  296. package/src/generators/workload/performance-registration.js +9 -11
  297. package/src/generators/workload/service-performance-files.d.ts +1 -0
  298. package/src/generators/workload/service-performance-files.js +27 -7
  299. package/src/generators/workload/workload.d.ts +1 -1
  300. package/src/generators/workload/workload.js +105 -29
  301. package/src/git-policy/action-pins.d.ts +5 -0
  302. package/src/git-policy/action-pins.js +5 -0
  303. package/src/git-policy/github-bootstrap.d.ts +39 -8
  304. package/src/git-policy/github-bootstrap.js +329 -175
  305. package/src/git-policy/routing.d.ts +7 -1
  306. package/src/git-policy/routing.js +62 -1
  307. package/src/index.d.ts +1 -0
  308. package/src/index.js +1 -0
  309. package/src/infrastructure-change/local-capability.d.ts +73 -0
  310. package/src/infrastructure-change/local-capability.js +114 -0
  311. package/src/infrastructure-change/model.d.ts +25 -4
  312. package/src/infrastructure-change/model.js +1 -0
  313. package/src/infrastructure-change/normalize.d.ts +4 -0
  314. package/src/infrastructure-change/normalize.js +47 -7
  315. package/src/infrastructure-change/plan.d.ts +30 -3
  316. package/src/infrastructure-change/plan.js +323 -13
  317. package/src/infrastructure-change/risk.d.ts +3 -1
  318. package/src/infrastructure-change/risk.js +96 -16
  319. package/src/local-dev/browser-verification.d.ts +37 -0
  320. package/src/local-dev/browser-verification.js +281 -0
  321. package/src/local-dev/contracts.d.ts +10 -1
  322. package/src/local-dev/contracts.js +114 -13
  323. package/src/local-dev/dev-command-core.js +24 -5
  324. package/src/local-dev/docker-credential-health.d.ts +14 -0
  325. package/src/local-dev/docker-credential-health.js +94 -0
  326. package/src/local-dev/environment-inspector.d.ts +7 -0
  327. package/src/local-dev/environment-inspector.js +42 -15
  328. package/src/local-dev/environment-state.js +2 -2
  329. package/src/local-dev/errors.d.ts +1 -1
  330. package/src/local-dev/errors.js +2 -0
  331. package/src/local-dev/fleet-client.js +2 -2
  332. package/src/local-dev/fleet-configuration.js +57 -25
  333. package/src/local-dev/fleet-inventory.js +46 -18
  334. package/src/local-dev/fleet-ipc.d.ts +7 -0
  335. package/src/local-dev/fleet-ipc.js +14 -2
  336. package/src/local-dev/fleet-launcher.d.ts +6 -0
  337. package/src/local-dev/fleet-launcher.js +14 -2
  338. package/src/local-dev/fleet-logs.js +50 -22
  339. package/src/local-dev/fleet-process.d.ts +20 -1
  340. package/src/local-dev/fleet-process.js +197 -41
  341. package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
  342. package/src/local-dev/fleet-runner-evidence.js +56 -0
  343. package/src/local-dev/fleet-runtime.js +268 -229
  344. package/src/local-dev/fleet-session.d.ts +2 -0
  345. package/src/local-dev/fleet-session.js +28 -11
  346. package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
  347. package/src/local-dev/fleet-state.d.ts +5 -2
  348. package/src/local-dev/fleet-state.js +25 -4
  349. package/src/local-dev/fleet-supervisor.d.ts +3 -0
  350. package/src/local-dev/fleet-supervisor.js +66 -11
  351. package/src/local-dev/fleet-web-start.d.ts +12 -0
  352. package/src/local-dev/fleet-web-start.js +48 -0
  353. package/src/local-dev/identity.js +3 -14
  354. package/src/local-dev/index.d.ts +1 -0
  355. package/src/local-dev/index.js +1 -0
  356. package/src/local-dev/native-completion.d.ts +9 -0
  357. package/src/local-dev/native-completion.js +130 -0
  358. package/src/local-dev/nx-workspace.d.ts +4 -2
  359. package/src/local-dev/nx-workspace.js +11 -6
  360. package/src/local-dev/personal-stage.d.ts +4 -5
  361. package/src/local-dev/personal-stage.js +6 -54
  362. package/src/local-dev/port-claims.d.ts +13 -0
  363. package/src/local-dev/port-claims.js +46 -0
  364. package/src/local-dev/ports.d.ts +14 -2
  365. package/src/local-dev/ports.js +78 -3
  366. package/src/local-dev/private-state.d.ts +11 -0
  367. package/src/local-dev/private-state.js +146 -40
  368. package/src/local-dev/process-group.d.ts +4 -0
  369. package/src/local-dev/process-group.js +29 -0
  370. package/src/local-dev/process-identity.d.ts +8 -0
  371. package/src/local-dev/process-identity.js +31 -1
  372. package/src/local-dev/proxy.js +11 -12
  373. package/src/local-dev/runtime-paths.js +1 -1
  374. package/src/local-dev/slice-claim.js +1 -1
  375. package/src/local-dev/slice-runner.d.ts +15 -6
  376. package/src/local-dev/slice-runner.js +189 -54
  377. package/src/local-dev/task-attachment.d.ts +17 -0
  378. package/src/local-dev/task-attachment.js +73 -0
  379. package/src/local-dev/task-authority.d.ts +10 -0
  380. package/src/local-dev/task-authority.js +27 -0
  381. package/src/local-dev/task-identity.d.ts +33 -0
  382. package/src/local-dev/task-identity.js +418 -0
  383. package/src/local-dev/task-native-writer.d.ts +18 -0
  384. package/src/local-dev/task-native-writer.js +329 -0
  385. package/src/local-dev/tls.js +8 -2
  386. package/src/local-dev/web-launch.d.ts +9 -0
  387. package/src/local-dev/web-launch.js +130 -0
  388. package/src/ownership/composition.d.ts +2 -1
  389. package/src/ownership/composition.js +1 -0
  390. package/src/performance/cost-collection.d.ts +1 -1
  391. package/src/performance/cost-collection.js +4 -2
  392. package/src/performance/cost-controls.d.ts +8 -4
  393. package/src/performance/cost-controls.js +39 -28
  394. package/src/performance/evidence.d.ts +1 -1
  395. package/src/performance/evidence.js +5 -3
  396. package/src/performance/load-safety.js +5 -3
  397. package/src/performance/model.d.ts +4 -4
  398. package/src/performance/model.js +4 -5
  399. package/src/performance/scenario.d.ts +22 -0
  400. package/src/performance/scenario.js +100 -92
  401. package/src/release/index.d.ts +0 -2
  402. package/src/release/index.js +0 -2
  403. package/src/release/source-authority.d.ts +5 -5
  404. package/src/release/source-authority.js +141 -124
  405. package/src/repository-policy/aurora-preflight.d.ts +1 -1
  406. package/src/repository-policy/aurora-preflight.js +4 -1
  407. package/src/repository-policy/capacity-migration.d.ts +3 -0
  408. package/src/repository-policy/capacity-migration.js +21 -0
  409. package/src/repository-policy/deployment-plan.d.ts +4 -1
  410. package/src/repository-policy/deployment-plan.js +9 -0
  411. package/src/repository-policy/foundation-profile.js +10 -1
  412. package/src/repository-policy/policy.d.ts +57 -3
  413. package/src/repository-policy/policy.js +497 -11
  414. package/src/schemas/blueprint-v1.json +5 -4
  415. package/src/schemas/foundation-requirement-v1.json +5 -4
  416. package/src/schemas/performance-policy-v1.json +3 -3
  417. package/src/schemas/repository-policy-v1.json +130 -6
  418. package/src/schemas/testing-evidence-result-v1.json +1 -1
  419. package/src/secrets/adapters.d.ts +7 -2
  420. package/src/secrets/adapters.js +34 -3
  421. package/src/secrets/aws-control-plane.d.ts +10 -1
  422. package/src/secrets/aws-control-plane.js +67 -0
  423. package/src/secrets/generated-aws-control-plane.d.ts +23 -0
  424. package/src/secrets/generated-aws-control-plane.js +259 -0
  425. package/src/secrets/metadata.js +38 -10
  426. package/src/secrets/model.d.ts +8 -1
  427. package/src/secrets/model.js +24 -3
  428. package/src/secrets/operator.d.ts +91 -3
  429. package/src/secrets/operator.js +463 -13
  430. package/src/secrets/registry.d.ts +2 -1
  431. package/src/secrets/registry.js +18 -1
  432. package/src/secrets/verification.js +9 -1
  433. package/src/secrets/workload-access.js +10 -2
  434. package/src/sst-environment-source-format.d.ts +6 -0
  435. package/src/sst-environment-source-format.js +199 -0
  436. package/src/supply-chain/action-pins.js +61 -7
  437. package/src/supply-chain/blueprint-trust-git.js +85 -24
  438. package/src/supply-chain/blueprint-verification-authority.js +55 -3
  439. package/src/supply-chain/build-output-bounds.d.ts +2 -0
  440. package/src/supply-chain/build-output-bounds.js +12 -0
  441. package/src/supply-chain/build-output.d.ts +7 -1
  442. package/src/supply-chain/build-output.js +177 -24
  443. package/src/supply-chain/ecr-scanning.d.ts +5 -3
  444. package/src/supply-chain/ecr-scanning.js +11 -7
  445. package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
  446. package/src/supply-chain/ecs-deployed-image.js +6 -4
  447. package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
  448. package/src/supply-chain/generated-command.js +1 -0
  449. package/src/supply-chain/generated-container-release-command.js +1285 -124
  450. package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
  451. package/src/supply-chain/generated-ecr-collector-command.js +200 -93
  452. package/src/supply-chain/generated-files.js +25 -14
  453. package/src/supply-chain/generated-scanner-command.js +2 -1
  454. package/src/supply-chain/index.d.ts +1 -1
  455. package/src/supply-chain/index.js +2 -1
  456. package/src/supply-chain/sbom.d.ts +1 -1
  457. package/src/supply-chain/sbom.js +30 -5
  458. package/src/supply-chain/scanner.js +3 -0
  459. package/src/testing-evidence/fixture-scope.d.ts +2 -1
  460. package/src/testing-evidence/fixture-scope.js +4 -2
  461. package/src/testing-evidence/result.d.ts +2 -1
  462. package/src/testing-evidence/result.js +18 -4
  463. package/src/workload-roles/account-baseline.d.ts +11 -0
  464. package/src/workload-roles/account-baseline.js +253 -16
  465. package/src/workload-roles/authority.d.ts +3 -1
  466. package/src/workload-roles/authority.js +48 -2
  467. package/src/workload-roles/aws-s3-state.js +27 -0
  468. package/src/workload-roles/boundary.d.ts +2 -1
  469. package/src/workload-roles/boundary.js +9 -2
  470. package/src/workload-roles/handler.js +52 -24
  471. package/src/workload-roles/index.d.ts +10 -17
  472. package/src/workload-roles/index.js +5 -18
  473. package/src/workload-roles/injection.js +1 -1
  474. package/src/workload-roles/provisioner.js +12 -4
  475. package/src/workload-roles/registration.d.ts +1 -0
  476. package/src/workload-roles/registration.js +5 -0
  477. package/src/workload-roles/stage-boundary.js +1 -1
  478. package/src/workload-roles/standard-slice.js +3 -3
  479. package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
  480. package/src/workspace-deployment/affected-lifecycle.js +84 -0
  481. package/src/workspace-deployment/identity.d.ts +3 -0
  482. package/src/workspace-deployment/identity.js +22 -0
  483. package/src/workspace-deployment/index.d.ts +4 -0
  484. package/src/workspace-deployment/index.js +8 -0
  485. package/src/workspace-deployment/migration-evidence.d.ts +29 -0
  486. package/src/workspace-deployment/migration-evidence.js +83 -0
  487. package/src/workspace-deployment/migration.d.ts +27 -0
  488. package/src/workspace-deployment/migration.js +109 -0
  489. package/src/workspace-deployment/ownership.d.ts +81 -0
  490. package/src/workspace-deployment/ownership.js +381 -0
  491. package/src/api-contract/baseline-update.js.map +0 -1
  492. package/src/api-contract/compatibility.js.map +0 -1
  493. package/src/api-contract/contract-graph.js.map +0 -1
  494. package/src/api-contract/evidence.js.map +0 -1
  495. package/src/api-contract/index.js.map +0 -1
  496. package/src/api-contract/model.fixtures.d.ts +0 -2
  497. package/src/api-contract/model.fixtures.js +0 -81
  498. package/src/api-contract/model.fixtures.js.map +0 -1
  499. package/src/api-contract/model.js.map +0 -1
  500. package/src/api-contract/rollout.js.map +0 -1
  501. package/src/authorization/compatibility.js.map +0 -1
  502. package/src/authorization/index.js.map +0 -1
  503. package/src/blueprints/execution.js.map +0 -1
  504. package/src/blueprints/external-sandbox.js.map +0 -1
  505. package/src/blueprints/index.js.map +0 -1
  506. package/src/blueprints/inputs.js.map +0 -1
  507. package/src/blueprints/manifest.js.map +0 -1
  508. package/src/blueprints/resolver.js.map +0 -1
  509. package/src/blueprints/transitions.js.map +0 -1
  510. package/src/cli/agent-command.js.map +0 -1
  511. package/src/cli/agent-runtime.js.map +0 -1
  512. package/src/cli/blueprint-authority.js.map +0 -1
  513. package/src/cli/blueprint-command.js.map +0 -1
  514. package/src/cli/bootstrap.js.map +0 -1
  515. package/src/cli/dev-command.js.map +0 -1
  516. package/src/cli/main.js.map +0 -1
  517. package/src/cli/output.js.map +0 -1
  518. package/src/cli/personal-secret-runtime.js.map +0 -1
  519. package/src/cli/secret-terminal.js.map +0 -1
  520. package/src/container-images.js.map +0 -1
  521. package/src/data-lifecycle/index.js.map +0 -1
  522. package/src/data-lifecycle/model.fixtures.d.ts +0 -2
  523. package/src/data-lifecycle/model.fixtures.js +0 -244
  524. package/src/data-lifecycle/model.fixtures.js.map +0 -1
  525. package/src/data-lifecycle/model.js.map +0 -1
  526. package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
  527. package/src/data-lifecycle/validation.js.map +0 -1
  528. package/src/database-retirement/contract.js.map +0 -1
  529. package/src/database-retirement/index.js.map +0 -1
  530. package/src/deterministic-order.js.map +0 -1
  531. package/src/developer-agent/context.js.map +0 -1
  532. package/src/developer-agent/generator-planning.js.map +0 -1
  533. package/src/developer-agent/generator-preview.js.map +0 -1
  534. package/src/developer-agent/git-inspection.js.map +0 -1
  535. package/src/developer-agent/handoff.js.map +0 -1
  536. package/src/developer-agent/index.js.map +0 -1
  537. package/src/developer-agent/model.js.map +0 -1
  538. package/src/developer-agent/operation-registry.js.map +0 -1
  539. package/src/developer-agent/ordering.js.map +0 -1
  540. package/src/developer-agent/planning.js.map +0 -1
  541. package/src/developer-agent/preview-changes.js.map +0 -1
  542. package/src/developer-agent/preview-source.js.map +0 -1
  543. package/src/developer-agent/validation.js.map +0 -1
  544. package/src/developer-agent/workspace-inspection.js.map +0 -1
  545. package/src/developer-agent/workspace-path.js.map +0 -1
  546. package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
  547. package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
  548. package/src/executors/deploy/deploy.js.map +0 -1
  549. package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
  550. package/src/executors/dev/dev.js.map +0 -1
  551. package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
  552. package/src/executors/dev-setup/dev-setup.js.map +0 -1
  553. package/src/executors/developer-context/developer-context.js.map +0 -1
  554. package/src/executors/fleet/fleet.js.map +0 -1
  555. package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
  556. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
  557. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
  558. package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
  559. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
  560. package/src/executors/refresh/refresh.js.map +0 -1
  561. package/src/executors/remove/remove.js.map +0 -1
  562. package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
  563. package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
  564. package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
  565. package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
  566. package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
  567. package/src/executors/unlock/unlock.js.map +0 -1
  568. package/src/executors/work-markers/work-markers.js.map +0 -1
  569. package/src/foundation/discovery.js.map +0 -1
  570. package/src/foundation/index.js.map +0 -1
  571. package/src/foundation/local-database-contract.js.map +0 -1
  572. package/src/foundation/logging-preflight.js.map +0 -1
  573. package/src/foundation/logging.js.map +0 -1
  574. package/src/foundation/preflight.js.map +0 -1
  575. package/src/foundation/provision-database-bindings.js.map +0 -1
  576. package/src/foundation/provision-logical-database.js.map +0 -1
  577. package/src/foundation/requirements.js.map +0 -1
  578. package/src/foundation/router-origin-proof.js.map +0 -1
  579. package/src/foundation/stages.js.map +0 -1
  580. package/src/frontend-security/index.js.map +0 -1
  581. package/src/frontend-security/security-headers.js.map +0 -1
  582. package/src/generators/feature-registry.js.map +0 -1
  583. package/src/generators/function/function.js.map +0 -1
  584. package/src/generators/job/job.js.map +0 -1
  585. package/src/generators/logging-registry.js.map +0 -1
  586. package/src/generators/post-generation-install.js.map +0 -1
  587. package/src/generators/preset/generator.js.map +0 -1
  588. package/src/generators/preset/tool-versions.js.map +0 -1
  589. package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
  590. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
  591. package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
  592. package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
  593. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
  594. package/src/generators/preset/workspace-files.js.map +0 -1
  595. package/src/generators/repository-policy/repository-policy.js.map +0 -1
  596. package/src/generators/service/service.js.map +0 -1
  597. package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
  598. package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
  599. package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
  600. package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
  601. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
  602. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
  603. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
  604. package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
  605. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
  606. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
  607. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
  608. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
  609. package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
  610. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
  611. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
  612. package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
  613. package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
  614. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
  615. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
  616. package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
  617. package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
  618. package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
  619. package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
  620. package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
  621. package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
  622. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
  623. package/src/generators/slice/built-in-plan-shared.js.map +0 -1
  624. package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
  625. package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
  626. package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
  627. package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
  628. package/src/generators/slice/built-in-plan.js.map +0 -1
  629. package/src/generators/slice/slice.js.map +0 -1
  630. package/src/generators/upgrade/upgrade.js.map +0 -1
  631. package/src/generators/workload/frozen-container.js.map +0 -1
  632. package/src/generators/workload/performance-registration.js.map +0 -1
  633. package/src/generators/workload/reliability-registration.js.map +0 -1
  634. package/src/generators/workload/service-performance-files.js.map +0 -1
  635. package/src/generators/workload/workload.js.map +0 -1
  636. package/src/git-policy/action-pins.js.map +0 -1
  637. package/src/git-policy/github-bootstrap.js.map +0 -1
  638. package/src/git-policy/index.js.map +0 -1
  639. package/src/git-policy/routing.js.map +0 -1
  640. package/src/index.js.map +0 -1
  641. package/src/infrastructure-change/convergence.js.map +0 -1
  642. package/src/infrastructure-change/drift.js.map +0 -1
  643. package/src/infrastructure-change/index.js.map +0 -1
  644. package/src/infrastructure-change/model.js.map +0 -1
  645. package/src/infrastructure-change/normalize.js.map +0 -1
  646. package/src/infrastructure-change/plan.js.map +0 -1
  647. package/src/infrastructure-change/risk.js.map +0 -1
  648. package/src/infrastructure-change/summary.js.map +0 -1
  649. package/src/local-dev/context-discovery.js.map +0 -1
  650. package/src/local-dev/contract-validation.js.map +0 -1
  651. package/src/local-dev/contracts.js.map +0 -1
  652. package/src/local-dev/control-contract.js.map +0 -1
  653. package/src/local-dev/dev-command-core.js.map +0 -1
  654. package/src/local-dev/effects.js.map +0 -1
  655. package/src/local-dev/environment-inspector.js.map +0 -1
  656. package/src/local-dev/environment-state.js.map +0 -1
  657. package/src/local-dev/errors.js.map +0 -1
  658. package/src/local-dev/fleet-client.js.map +0 -1
  659. package/src/local-dev/fleet-configuration.js.map +0 -1
  660. package/src/local-dev/fleet-inventory.js.map +0 -1
  661. package/src/local-dev/fleet-ipc.js.map +0 -1
  662. package/src/local-dev/fleet-launcher.js.map +0 -1
  663. package/src/local-dev/fleet-lock.js.map +0 -1
  664. package/src/local-dev/fleet-logs.js.map +0 -1
  665. package/src/local-dev/fleet-process.js.map +0 -1
  666. package/src/local-dev/fleet-runtime.js.map +0 -1
  667. package/src/local-dev/fleet-session.js.map +0 -1
  668. package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
  669. package/src/local-dev/fleet-startup.js.map +0 -1
  670. package/src/local-dev/fleet-state.js.map +0 -1
  671. package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
  672. package/src/local-dev/fleet-supervisor.js.map +0 -1
  673. package/src/local-dev/gateway-daemon.js.map +0 -1
  674. package/src/local-dev/gateway.js.map +0 -1
  675. package/src/local-dev/identity.js.map +0 -1
  676. package/src/local-dev/index.js.map +0 -1
  677. package/src/local-dev/local-context.js.map +0 -1
  678. package/src/local-dev/nx-workspace.js.map +0 -1
  679. package/src/local-dev/personal-secret-ledger.js.map +0 -1
  680. package/src/local-dev/personal-stage.js.map +0 -1
  681. package/src/local-dev/portless.js.map +0 -1
  682. package/src/local-dev/ports.js.map +0 -1
  683. package/src/local-dev/private-state.js.map +0 -1
  684. package/src/local-dev/process-identity.js.map +0 -1
  685. package/src/local-dev/proxy.js.map +0 -1
  686. package/src/local-dev/runtime-paths.js.map +0 -1
  687. package/src/local-dev/secret-slice-claim.js.map +0 -1
  688. package/src/local-dev/slice-claim.js.map +0 -1
  689. package/src/local-dev/slice-runner.js.map +0 -1
  690. package/src/local-dev/tls.js.map +0 -1
  691. package/src/ownership/composition.js.map +0 -1
  692. package/src/ownership/foundation-record.js.map +0 -1
  693. package/src/ownership/hash.js.map +0 -1
  694. package/src/ownership/index.js.map +0 -1
  695. package/src/ownership/json-ownership.js.map +0 -1
  696. package/src/ownership/record.js.map +0 -1
  697. package/src/ownership/workspace-record.js.map +0 -1
  698. package/src/performance/cost-collection.js.map +0 -1
  699. package/src/performance/cost-controls.js.map +0 -1
  700. package/src/performance/evidence.js.map +0 -1
  701. package/src/performance/index.js.map +0 -1
  702. package/src/performance/load-safety.js.map +0 -1
  703. package/src/performance/model.js.map +0 -1
  704. package/src/performance/pr-artifact-budget.js.map +0 -1
  705. package/src/performance/runner.js.map +0 -1
  706. package/src/performance/scenario-endpoint.js.map +0 -1
  707. package/src/performance/scenario.js.map +0 -1
  708. package/src/performance/test-fixtures.d.ts +0 -7
  709. package/src/performance/test-fixtures.js +0 -169
  710. package/src/performance/test-fixtures.js.map +0 -1
  711. package/src/performance/unit-cost.js.map +0 -1
  712. package/src/release/index.js.map +0 -1
  713. package/src/release/lifecycle.js.map +0 -1
  714. package/src/release/manifest.js.map +0 -1
  715. package/src/release/rollout.js.map +0 -1
  716. package/src/release/source-authority.js.map +0 -1
  717. package/src/repository-policy/aurora-preflight.js.map +0 -1
  718. package/src/repository-policy/deployment-plan.js.map +0 -1
  719. package/src/repository-policy/foundation-profile.js.map +0 -1
  720. package/src/repository-policy/index.js.map +0 -1
  721. package/src/repository-policy/policy.js.map +0 -1
  722. package/src/secrets/adapters.js.map +0 -1
  723. package/src/secrets/aws-control-plane.js.map +0 -1
  724. package/src/secrets/declaration-verification.js.map +0 -1
  725. package/src/secrets/guardrails.js.map +0 -1
  726. package/src/secrets/index.js.map +0 -1
  727. package/src/secrets/metadata.js.map +0 -1
  728. package/src/secrets/model.js.map +0 -1
  729. package/src/secrets/operator.js.map +0 -1
  730. package/src/secrets/permissions.js.map +0 -1
  731. package/src/secrets/personal-command.js.map +0 -1
  732. package/src/secrets/personal-ledger.js.map +0 -1
  733. package/src/secrets/registry.js.map +0 -1
  734. package/src/secrets/verification.js.map +0 -1
  735. package/src/secrets/workload-access.js.map +0 -1
  736. package/src/supply-chain/action-pins.js.map +0 -1
  737. package/src/supply-chain/blueprint-trust-git.js.map +0 -1
  738. package/src/supply-chain/blueprint-trust-process.js.map +0 -1
  739. package/src/supply-chain/blueprint-trust.js.map +0 -1
  740. package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
  741. package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
  742. package/src/supply-chain/build-output.js.map +0 -1
  743. package/src/supply-chain/common.js.map +0 -1
  744. package/src/supply-chain/container-artifact-contract.js.map +0 -1
  745. package/src/supply-chain/container-release.js.map +0 -1
  746. package/src/supply-chain/ecr-applicability.js.map +0 -1
  747. package/src/supply-chain/ecr-scanning.js.map +0 -1
  748. package/src/supply-chain/ecs-deployed-image.js.map +0 -1
  749. package/src/supply-chain/errors.js.map +0 -1
  750. package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
  751. package/src/supply-chain/generated-command.js.map +0 -1
  752. package/src/supply-chain/generated-container-release-command.js.map +0 -1
  753. package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
  754. package/src/supply-chain/generated-files.js.map +0 -1
  755. package/src/supply-chain/generated-scanner-command.js.map +0 -1
  756. package/src/supply-chain/index.js.map +0 -1
  757. package/src/supply-chain/inventory.js.map +0 -1
  758. package/src/supply-chain/license-expression.js.map +0 -1
  759. package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
  760. package/src/supply-chain/policy.js.map +0 -1
  761. package/src/supply-chain/publication.js.map +0 -1
  762. package/src/supply-chain/sbom.js.map +0 -1
  763. package/src/supply-chain/scanner.js.map +0 -1
  764. package/src/supply-chain/vendored-source.js.map +0 -1
  765. package/src/testing-evidence/fixture-scope.js.map +0 -1
  766. package/src/testing-evidence/index.js.map +0 -1
  767. package/src/testing-evidence/quarantine.js.map +0 -1
  768. package/src/testing-evidence/result.js.map +0 -1
  769. package/src/testing-evidence/runner-adapter.js.map +0 -1
  770. package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
  771. package/src/validation.js.map +0 -1
  772. package/src/work-markers/index.js.map +0 -1
  773. package/src/work-markers/work-markers.js.map +0 -1
  774. package/src/workload-roles/account-baseline.js.map +0 -1
  775. package/src/workload-roles/authority.js.map +0 -1
  776. package/src/workload-roles/aws-adapter.js.map +0 -1
  777. package/src/workload-roles/aws-internal-handler.js.map +0 -1
  778. package/src/workload-roles/aws-s3-state.js.map +0 -1
  779. package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
  780. package/src/workload-roles/boundary.js.map +0 -1
  781. package/src/workload-roles/convergence.js.map +0 -1
  782. package/src/workload-roles/effective-policy.js.map +0 -1
  783. package/src/workload-roles/handler.js.map +0 -1
  784. package/src/workload-roles/history.js.map +0 -1
  785. package/src/workload-roles/index.js.map +0 -1
  786. package/src/workload-roles/injection.js.map +0 -1
  787. package/src/workload-roles/manifest.js.map +0 -1
  788. package/src/workload-roles/provisioner.js.map +0 -1
  789. package/src/workload-roles/registration.js.map +0 -1
  790. package/src/workload-roles/stage-boundary.js.map +0 -1
  791. package/src/workload-roles/standard-slice.js.map +0 -1
@@ -27,7 +27,14 @@
27
27
  },
28
28
  "profile": {
29
29
  "type": "string",
30
- "description": "Optional AWS profile passed to SST."
30
+ "minLength": 1,
31
+ "maxLength": 128,
32
+ "description": "Optional exact AWS profile exposed to the SST child as AWS_PROFILE."
33
+ },
34
+ "expectedRoleArn": {
35
+ "type": "string",
36
+ "pattern": "^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role/[A-Za-z0-9+=,.@_/-]{1,512}$",
37
+ "description": "Exact temporary-session IAM role expected for local governed deployment. This is verified against STS before mutation."
31
38
  },
32
39
  "region": {
33
40
  "type": "string",
@@ -1,3 +1,4 @@
1
+ import type { SecretsManagerClientConfig } from '@aws-sdk/client-secrets-manager';
1
2
  import type { ExecutorContext } from '@nx/devkit';
2
3
  import { type SecretManagementScope, type SecretMetadataControlPlane, type SecretMetadataDeclaration } from '../../secrets/index.js';
3
4
  import type { SstCommandInvocation, SstLifecycleOptions } from './run-sst-command.js';
@@ -16,6 +17,7 @@ export interface SecretDeployPreflightDependencies {
16
17
  }
17
18
  export declare function resolveSecretAwsContext(options: Pick<SstLifecycleOptions, 'profile' | 'region'>, environment?: NodeJS.ProcessEnv): SecretAwsContext;
18
19
  export declare function createSecretMetadataControlPlane(context: SecretAwsContext): SecretMetadataControlPlane;
20
+ export declare function secretMetadataClientConfiguration(context: SecretAwsContext): SecretsManagerClientConfig;
19
21
  export declare function loadSliceSecretMetadata(input: {
20
22
  context: ExecutorContext;
21
23
  cwd: string;
@@ -2,12 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveSecretAwsContext = resolveSecretAwsContext;
4
4
  exports.createSecretMetadataControlPlane = createSecretMetadataControlPlane;
5
+ exports.secretMetadataClientConfiguration = secretMetadataClientConfiguration;
5
6
  exports.loadSliceSecretMetadata = loadSliceSecretMetadata;
6
7
  exports.preflightSliceSecretMetadata = preflightSliceSecretMetadata;
7
8
  const credential_providers_1 = require("@aws-sdk/credential-providers");
8
9
  const promises_1 = require("node:fs/promises");
9
10
  const node_path_1 = require("node:path");
10
11
  const index_js_1 = require("../../secrets/index.js");
12
+ const identity_js_1 = require("../../aws/identity.js");
11
13
  const regionPattern = /^[a-z]{2}(?:-gov)?-[a-z]+-\d$/;
12
14
  function isRecord(value) {
13
15
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -46,12 +48,16 @@ function resolveSecretAwsContext(options, environment = process.env) {
46
48
  }
47
49
  function createSecretMetadataControlPlane(context) {
48
50
  return (0, index_js_1.createAwsSecretsManagerMetadataControlPlane)({
49
- clientConfiguration: {
50
- ...(context.profile
51
- ? { credentials: (0, credential_providers_1.fromIni)({ profile: context.profile }) }
52
- : {}),
53
- region: context.region,
54
- },
51
+ clientConfiguration: secretMetadataClientConfiguration(context),
52
+ });
53
+ }
54
+ function secretMetadataClientConfiguration(context) {
55
+ return Object.freeze({
56
+ ...(context.profile
57
+ ? { credentials: (0, credential_providers_1.fromIni)({ profile: context.profile }) }
58
+ : {}),
59
+ endpoint: (0, identity_js_1.canonicalAwsRegionalEndpoint)('secretsmanager', context.region),
60
+ region: context.region,
55
61
  });
56
62
  }
57
63
  async function loadSliceSecretMetadata(input) {
@@ -85,7 +91,7 @@ async function loadSliceSecretMetadata(input) {
85
91
  });
86
92
  (0, index_js_1.validateSecretManagementScope)(scope);
87
93
  return Object.freeze({
88
- declarations: (0, index_js_1.operatorSecretMetadataDeclarations)(registry),
94
+ declarations: (0, index_js_1.deployedSecretMetadataDeclarations)(registry),
89
95
  scope,
90
96
  });
91
97
  }
@@ -0,0 +1,33 @@
1
+ interface SstEnvironmentSourceSnapshot {
2
+ absolutePath: string;
3
+ bytes: Buffer;
4
+ identity: {
5
+ birthtimeNs: bigint;
6
+ dev: bigint;
7
+ ino: bigint;
8
+ mode: bigint;
9
+ nlink: bigint;
10
+ };
11
+ relativePath: string;
12
+ }
13
+ export interface SstEnvironmentSourceTreeSnapshot {
14
+ nextSource?: SstEnvironmentSourceSnapshot;
15
+ projectRoot: string;
16
+ rootPythonSourcePath: string;
17
+ rootSourcePath: string;
18
+ snapshots: readonly SstEnvironmentSourceSnapshot[];
19
+ workspaceRoot: string;
20
+ }
21
+ export declare function captureSstEnvironmentSourceTree(input: {
22
+ projectRoot: string;
23
+ workspaceRoot: string;
24
+ }): SstEnvironmentSourceTreeSnapshot;
25
+ /** Capture outside the complete Nx child, including its Next build dependencies.
26
+ * The inner SST boundary alone starts after those dependencies have run. */
27
+ export declare function captureNextEnvironmentSource(input: {
28
+ projectRoot: string;
29
+ workspaceRoot: string;
30
+ }): SstEnvironmentSourceSnapshot | undefined;
31
+ export declare function reconcileNextEnvironmentSource(retained: SstEnvironmentSourceSnapshot | undefined, workspaceRoot: string): void;
32
+ export declare function reconcileSstEnvironmentSourceTree(retained: SstEnvironmentSourceTreeSnapshot): void;
33
+ export {};
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.captureSstEnvironmentSourceTree = captureSstEnvironmentSourceTree;
4
+ exports.captureNextEnvironmentSource = captureNextEnvironmentSource;
5
+ exports.reconcileNextEnvironmentSource = reconcileNextEnvironmentSource;
6
+ exports.reconcileSstEnvironmentSourceTree = reconcileSstEnvironmentSourceTree;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ const sst_environment_source_format_js_1 = require("../../sst-environment-source-format.js");
10
+ const MAX_SST_ENV_SOURCE_BYTES = 1024 * 1024;
11
+ const MAX_SST_ENV_SOURCE_FILES = 64;
12
+ const MAX_PROJECT_DIRECTORY_ENTRIES = 32_768;
13
+ const MAX_PROJECT_DIRECTORY_DEPTH = 32;
14
+ const MAX_RELATIVE_PATH_BYTES = 1024;
15
+ const SKIPPED_DIRECTORIES = new Set([
16
+ '.git',
17
+ '.nx',
18
+ '.sst',
19
+ 'coverage',
20
+ 'dist',
21
+ 'node_modules',
22
+ ]);
23
+ function normalizedRelativePath(root, absolutePath) {
24
+ const path = (0, node_path_1.relative)(root, absolutePath).split('\\').join('/');
25
+ if (!path ||
26
+ path === '..' ||
27
+ path.startsWith('../') ||
28
+ (0, node_path_1.isAbsolute)(path) ||
29
+ Buffer.byteLength(path, 'utf8') > MAX_RELATIVE_PATH_BYTES) {
30
+ throw new Error('SST lifecycle tool-owned source escapes its boundary.');
31
+ }
32
+ return path;
33
+ }
34
+ function stableSstEnvironmentSource(absolutePath, workspaceRoot) {
35
+ const relativePath = normalizedRelativePath(workspaceRoot, absolutePath);
36
+ const before = (0, node_fs_1.lstatSync)(absolutePath, { bigint: true });
37
+ if (!before.isFile() ||
38
+ before.nlink !== 1n ||
39
+ before.size > BigInt(MAX_SST_ENV_SOURCE_BYTES) ||
40
+ (0, node_fs_1.realpathSync)(absolutePath) !== absolutePath) {
41
+ throw new Error(`SST lifecycle tool-owned source ${relativePath} is not one bounded, unaliased regular file.`);
42
+ }
43
+ const bytes = (0, node_fs_1.readFileSync)(absolutePath);
44
+ const after = (0, node_fs_1.lstatSync)(absolutePath, { bigint: true });
45
+ if (before.dev !== after.dev ||
46
+ before.ino !== after.ino ||
47
+ before.mode !== after.mode ||
48
+ before.nlink !== after.nlink ||
49
+ before.size !== after.size ||
50
+ before.mtimeNs !== after.mtimeNs ||
51
+ before.ctimeNs !== after.ctimeNs ||
52
+ BigInt(bytes.byteLength) !== after.size) {
53
+ throw new Error(`SST lifecycle tool-owned source ${relativePath} changed while it was read.`);
54
+ }
55
+ return {
56
+ absolutePath,
57
+ bytes,
58
+ identity: {
59
+ birthtimeNs: before.birthtimeNs,
60
+ dev: before.dev,
61
+ ino: before.ino,
62
+ mode: before.mode,
63
+ nlink: before.nlink,
64
+ },
65
+ relativePath,
66
+ };
67
+ }
68
+ function discoverSstEnvironmentSources(input) {
69
+ const queue = [{ absolutePath: input.projectRoot, depth: 0 }];
70
+ const sources = [];
71
+ let observedEntries = 0;
72
+ for (let index = 0; index < queue.length; index += 1) {
73
+ const current = queue[index];
74
+ if (!current)
75
+ break;
76
+ for (const entry of (0, node_fs_1.readdirSync)(current.absolutePath, {
77
+ withFileTypes: true,
78
+ })) {
79
+ observedEntries += 1;
80
+ if (observedEntries > MAX_PROJECT_DIRECTORY_ENTRIES) {
81
+ throw new Error('SST lifecycle project source exceeds the bounded directory inventory.');
82
+ }
83
+ const absolutePath = (0, node_path_1.join)(current.absolutePath, entry.name);
84
+ if (entry.name === 'sst-env.d.ts' ||
85
+ (entry.name === 'sst.pyi' &&
86
+ absolutePath === (0, node_path_1.join)(input.projectRoot, 'sst.pyi'))) {
87
+ sources.push(stableSstEnvironmentSource(absolutePath, input.workspaceRoot));
88
+ if (sources.length > MAX_SST_ENV_SOURCE_FILES) {
89
+ throw new Error('SST lifecycle project source exceeds the bounded environment-source inventory.');
90
+ }
91
+ continue;
92
+ }
93
+ if (entry.isDirectory() && !SKIPPED_DIRECTORIES.has(entry.name)) {
94
+ if (current.depth >= MAX_PROJECT_DIRECTORY_DEPTH) {
95
+ throw new Error('SST lifecycle project source exceeds the bounded directory depth.');
96
+ }
97
+ queue.push({ absolutePath, depth: current.depth + 1 });
98
+ }
99
+ }
100
+ }
101
+ return sources.sort((left, right) => left.relativePath < right.relativePath
102
+ ? -1
103
+ : left.relativePath > right.relativePath
104
+ ? 1
105
+ : 0);
106
+ }
107
+ function sameIdentity(left, right) {
108
+ return (left.birthtimeNs === right.birthtimeNs &&
109
+ left.dev === right.dev &&
110
+ left.ino === right.ino &&
111
+ left.mode === right.mode &&
112
+ left.nlink === right.nlink);
113
+ }
114
+ function restoreExistingSstEnvironmentSource(retained, observed, workspaceRoot) {
115
+ if (!sameIdentity(retained.identity, observed.identity)) {
116
+ throw new Error(`SST lifecycle tool-owned source ${retained.relativePath} changed filesystem identity.`);
117
+ }
118
+ if (!observed.bytes.equals(retained.bytes)) {
119
+ const descriptor = (0, node_fs_1.openSync)(retained.absolutePath, 'r+');
120
+ try {
121
+ const opened = (0, node_fs_1.fstatSync)(descriptor, { bigint: true });
122
+ if (!opened.isFile() ||
123
+ opened.birthtimeNs !== retained.identity.birthtimeNs ||
124
+ opened.dev !== retained.identity.dev ||
125
+ opened.ino !== retained.identity.ino ||
126
+ opened.mode !== retained.identity.mode ||
127
+ opened.nlink !== 1n) {
128
+ throw new Error(`SST lifecycle tool-owned source ${retained.relativePath} changed before restoration.`);
129
+ }
130
+ (0, node_fs_1.ftruncateSync)(descriptor, 0);
131
+ (0, node_fs_1.writeFileSync)(descriptor, retained.bytes);
132
+ (0, node_fs_1.fsyncSync)(descriptor);
133
+ }
134
+ finally {
135
+ (0, node_fs_1.closeSync)(descriptor);
136
+ }
137
+ }
138
+ const restored = stableSstEnvironmentSource(retained.absolutePath, workspaceRoot);
139
+ if (!restored.bytes.equals(retained.bytes) ||
140
+ !sameIdentity(retained.identity, restored.identity)) {
141
+ throw new Error(`SST lifecycle tool-owned source ${retained.relativePath} was not restored exactly.`);
142
+ }
143
+ }
144
+ function removeGeneratedNestedSource(observed, rootPythonSourcePath, rootSourcePath, workspaceRoot) {
145
+ if (observed.absolutePath === rootPythonSourcePath) {
146
+ if (!(0, sst_environment_source_format_js_1.isExactGeneratedRootSstPythonSourceBytes)(observed.bytes)) {
147
+ throw new Error(`SST lifecycle new tool-owned source ${observed.relativePath} is not exact generated output.`);
148
+ }
149
+ const beforeDelete = stableSstEnvironmentSource(observed.absolutePath, workspaceRoot);
150
+ if (!beforeDelete.bytes.equals(observed.bytes) ||
151
+ !sameIdentity(beforeDelete.identity, observed.identity)) {
152
+ throw new Error(`SST lifecycle new tool-owned source ${observed.relativePath} changed before removal.`);
153
+ }
154
+ (0, node_fs_1.unlinkSync)(observed.absolutePath);
155
+ return;
156
+ }
157
+ const expectedBytes = (0, sst_environment_source_format_js_1.exactGeneratedNestedSstEnvironmentSourceBytes)(observed.absolutePath, rootSourcePath);
158
+ if (expectedBytes.length === 0) {
159
+ throw new Error('SST lifecycle generated environment source has an invalid root reference.');
160
+ }
161
+ if (observed.absolutePath === rootSourcePath ||
162
+ !expectedBytes.some((expected) => expected.equals(observed.bytes))) {
163
+ throw new Error(`SST lifecycle new tool-owned source ${observed.relativePath} is not exact generated output.`);
164
+ }
165
+ const beforeDelete = stableSstEnvironmentSource(observed.absolutePath, workspaceRoot);
166
+ if (!beforeDelete.bytes.equals(observed.bytes) ||
167
+ !sameIdentity(beforeDelete.identity, observed.identity)) {
168
+ throw new Error(`SST lifecycle new tool-owned source ${observed.relativePath} changed before removal.`);
169
+ }
170
+ (0, node_fs_1.unlinkSync)(observed.absolutePath);
171
+ }
172
+ function captureSstEnvironmentSourceTree(input) {
173
+ const workspaceRoot = (0, node_fs_1.realpathSync)(input.workspaceRoot);
174
+ const projectRoot = (0, node_fs_1.realpathSync)(input.projectRoot);
175
+ normalizedRelativePath(workspaceRoot, projectRoot);
176
+ const rootSourcePath = (0, node_path_1.join)(projectRoot, 'sst-env.d.ts');
177
+ const rootPythonSourcePath = (0, node_path_1.join)(projectRoot, 'sst.pyi');
178
+ const snapshots = discoverSstEnvironmentSources({
179
+ projectRoot,
180
+ workspaceRoot,
181
+ });
182
+ if (!snapshots.some(({ absolutePath }) => absolutePath === rootSourcePath)) {
183
+ throw new Error('SST lifecycle project lacks its exact root environment source.');
184
+ }
185
+ const nextSource = captureNextEnvironmentSource({
186
+ projectRoot,
187
+ workspaceRoot,
188
+ });
189
+ return {
190
+ ...(nextSource ? { nextSource } : {}),
191
+ projectRoot,
192
+ rootPythonSourcePath,
193
+ rootSourcePath,
194
+ snapshots,
195
+ workspaceRoot,
196
+ };
197
+ }
198
+ /** Capture outside the complete Nx child, including its Next build dependencies.
199
+ * The inner SST boundary alone starts after those dependencies have run. */
200
+ function captureNextEnvironmentSource(input) {
201
+ const nextPath = (0, node_path_1.join)(input.projectRoot, 'web', 'next-env.d.ts');
202
+ // existsSync follows links and would treat a dangling alias as absence.
203
+ // Inspect the directory entry so aliases are refused before the child writes.
204
+ if (!(0, node_fs_1.lstatSync)(nextPath, { throwIfNoEntry: false }))
205
+ return undefined;
206
+ const workspaceRoot = (0, node_fs_1.realpathSync)(input.workspaceRoot);
207
+ const projectRoot = (0, node_fs_1.realpathSync)(input.projectRoot);
208
+ normalizedRelativePath(workspaceRoot, projectRoot);
209
+ const nextSource = stableSstEnvironmentSource((0, node_path_1.join)(projectRoot, 'web', 'next-env.d.ts'), workspaceRoot);
210
+ // Arbitrary declarations remain ordinary source; never normalize or ignore them.
211
+ return (0, sst_environment_source_format_js_1.isExactGeneratedNextEnvironmentSourceBytes)(nextSource.bytes)
212
+ ? nextSource
213
+ : undefined;
214
+ }
215
+ function reconcileNextEnvironmentSource(retained, workspaceRoot) {
216
+ if (retained) {
217
+ workspaceRoot = (0, node_fs_1.realpathSync)(workspaceRoot);
218
+ const current = stableSstEnvironmentSource(retained.absolutePath, workspaceRoot);
219
+ if (!(0, sst_environment_source_format_js_1.isExactGeneratedNextEnvironmentSourceBytes)(current.bytes))
220
+ throw new Error('Next lifecycle declaration changed beyond exact generated dev/build output.');
221
+ restoreExistingSstEnvironmentSource(retained, current, workspaceRoot);
222
+ }
223
+ }
224
+ function reconcileSstEnvironmentSourceTree(retained) {
225
+ const failures = [];
226
+ try {
227
+ reconcileNextEnvironmentSource(retained.nextSource, retained.workspaceRoot);
228
+ }
229
+ catch (error) {
230
+ failures.push(error);
231
+ }
232
+ try {
233
+ reconcileNativeSstEnvironmentSources(retained);
234
+ }
235
+ catch (error) {
236
+ failures.push(error);
237
+ }
238
+ if (failures.length === 1)
239
+ throw failures[0];
240
+ if (failures.length > 1)
241
+ throw new Error(failures
242
+ .map((error) => error instanceof Error ? error.message : String(error))
243
+ .join('; '));
244
+ }
245
+ function reconcileNativeSstEnvironmentSources(retained) {
246
+ const retainedByPath = new Map(retained.snapshots.map((snapshot) => [snapshot.absolutePath, snapshot]));
247
+ const observed = discoverSstEnvironmentSources(retained);
248
+ const observedByPath = new Map(observed.map((snapshot) => [snapshot.absolutePath, snapshot]));
249
+ for (const snapshot of retained.snapshots) {
250
+ const current = observedByPath.get(snapshot.absolutePath);
251
+ if (!current) {
252
+ throw new Error(`SST lifecycle tool-owned source ${snapshot.relativePath} was removed.`);
253
+ }
254
+ restoreExistingSstEnvironmentSource(snapshot, current, retained.workspaceRoot);
255
+ }
256
+ for (const current of observed) {
257
+ if (!retainedByPath.has(current.absolutePath)) {
258
+ removeGeneratedNestedSource(current, retained.rootPythonSourcePath, retained.rootSourcePath, retained.workspaceRoot);
259
+ }
260
+ }
261
+ const finalPaths = discoverSstEnvironmentSources(retained).map(({ absolutePath }) => absolutePath);
262
+ const retainedPaths = retained.snapshots.map(({ absolutePath }) => absolutePath);
263
+ if (JSON.stringify(finalPaths) !== JSON.stringify(retainedPaths)) {
264
+ throw new Error('SST lifecycle environment-source inventory was not restored exactly.');
265
+ }
266
+ }
267
+ //# sourceMappingURL=sst-environment-source.js.map
@@ -0,0 +1,15 @@
1
+ import { type ExecutorContext } from '@nx/devkit';
2
+ import { type TaskAuthorityEffects } from '../../local-dev/task-authority.js';
3
+ import { type TaskNativeWriterEffects } from '../../local-dev/task-native-writer.js';
4
+ import { createLocalFederatedCredentialTransport } from '../local-deploy/federated-credential-transport.js';
5
+ import { runSstCommand, type SstLifecycleOptions } from './run-sst-command.js';
6
+ export interface TaskUnlockDependencies {
7
+ authority?: TaskAuthorityEffects;
8
+ createTransport?: typeof createLocalFederatedCredentialTransport;
9
+ environment?: NodeJS.ProcessEnv;
10
+ run?: typeof runSstCommand;
11
+ writers?: TaskNativeWriterEffects;
12
+ }
13
+ export declare function runCurrentTaskUnlock(options: SstLifecycleOptions, context: ExecutorContext, dependencies?: TaskUnlockDependencies): Promise<{
14
+ success: boolean;
15
+ }>;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCurrentTaskUnlock = runCurrentTaskUnlock;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ const index_js_1 = require("../../aws-authority/index.js");
8
+ const fleet_launcher_js_1 = require("../../local-dev/fleet-launcher.js");
9
+ const local_context_js_1 = require("../../local-dev/local-context.js");
10
+ const task_authority_js_1 = require("../../local-dev/task-authority.js");
11
+ const task_identity_js_1 = require("../../local-dev/task-identity.js");
12
+ const task_native_writer_js_1 = require("../../local-dev/task-native-writer.js");
13
+ const task_stack_absence_js_1 = require("../dev-task-cleanup/task-stack-absence.js");
14
+ const federated_credential_transport_js_1 = require("../local-deploy/federated-credential-transport.js");
15
+ const local_deploy_js_1 = require("../local-deploy/local-deploy.js");
16
+ const run_sst_command_js_1 = require("./run-sst-command.js");
17
+ async function runCurrentTaskUnlock(options, context, dependencies = {}) {
18
+ let transport, success = false;
19
+ try {
20
+ const environment = dependencies.environment ?? process.env;
21
+ if (Object.keys(options).some((key) => ![
22
+ 'args',
23
+ 'cwd',
24
+ 'expectedRoleArn',
25
+ 'foundationStage',
26
+ 'profile',
27
+ 'region',
28
+ 'stage',
29
+ 'stageMode',
30
+ 'target',
31
+ ].includes(key)))
32
+ throw new Error('Task unlock received an unsupported option.');
33
+ if (environment.GITHUB_ACTIONS === 'true')
34
+ throw new Error('Task unlock is local to the current owning worktree.');
35
+ const task = (0, task_identity_js_1.resolveTaskIdentity)(context.root), stage = (0, task_identity_js_1.taskStage)(task.taskId);
36
+ const project = context.projectName
37
+ ? context.projectsConfigurations?.projects[context.projectName]
38
+ : undefined;
39
+ if (options.stage !== stage ||
40
+ options.stageMode !== 'consumer' ||
41
+ !project?.tags?.includes('type:slice') ||
42
+ project.tags.includes('scope:foundation'))
43
+ throw new Error('Task unlock requires the exact current task and one Product Slice.');
44
+ if (options.profile !== undefined ||
45
+ options.region !== undefined ||
46
+ options.expectedRoleArn !== undefined ||
47
+ options.target !== undefined ||
48
+ (options.args !== undefined &&
49
+ (!Array.isArray(options.args) || options.args.length !== 0)) ||
50
+ (options.foundationStage !== undefined &&
51
+ options.foundationStage !== 'development'))
52
+ throw new Error('Task unlock does not accept AWS, target, argument, or Foundation overrides.');
53
+ const projectRoot = (0, node_fs_1.realpathSync)((0, node_path_1.join)(context.root, project.root));
54
+ if (options.cwd !== undefined &&
55
+ (0, node_fs_1.realpathSync)((0, node_path_1.isAbsolute)(options.cwd) ? options.cwd : (0, node_path_1.join)(context.root, options.cwd)) !== projectRoot)
56
+ throw new Error('Task unlock cwd must equal its generated Slice project root.');
57
+ (0, task_stack_absence_js_1.resolveStaticTaskApp)({
58
+ workspaceRoot: context.root,
59
+ projectRoot,
60
+ projectName: context.projectName,
61
+ });
62
+ const saved = (0, local_context_js_1.readSavedLocalDevContext)((0, fleet_launcher_js_1.resolveGitCommonDirectory)(context.root));
63
+ if (saved.kind !== 'ready')
64
+ throw new Error('Task unlock requires the saved development AWS context. Run ebk dev configure.');
65
+ const verified = await (0, task_authority_js_1.verifyTaskEnvironment)(context.root, saved.resolution.context, dependencies.authority);
66
+ (0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
67
+ const source = (0, local_deploy_js_1.localWorkingTreeDigest)(context.root);
68
+ (0, task_native_writer_js_1.assertTaskNativeWritersAbsent)(context, dependencies.writers);
69
+ const region = verified.region;
70
+ const expectedRoleArn = (0, index_js_1.createStageAuthorityIdentity)({
71
+ accountId: verified.accountId,
72
+ region,
73
+ stage: 'development',
74
+ partition: region.startsWith('cn-')
75
+ ? 'aws-cn'
76
+ : region.startsWith('us-gov-')
77
+ ? 'aws-us-gov'
78
+ : 'aws',
79
+ }).deploymentRoleArn;
80
+ transport = await (dependencies.createTransport ?? federated_credential_transport_js_1.createLocalFederatedCredentialTransport)({
81
+ account: verified.accountId,
82
+ expectedRoleArn,
83
+ profile: saved.resolution.context.profile,
84
+ region,
85
+ });
86
+ await transport.refresh();
87
+ if ((0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified).taskId !==
88
+ task.taskId ||
89
+ JSON.stringify((0, local_deploy_js_1.localWorkingTreeDigest)(context.root)) !==
90
+ JSON.stringify(source))
91
+ throw new Error('Task unlock source or ownership changed during authorization.');
92
+ (0, task_native_writer_js_1.assertTaskNativeWritersAbsent)(context, dependencies.writers);
93
+ success = (await (dependencies.run ?? run_sst_command_js_1.runSstCommand)('unlock', {
94
+ stage,
95
+ stageMode: 'consumer',
96
+ foundationStage: 'development',
97
+ profile: transport.profile,
98
+ region,
99
+ expectedRoleArn,
100
+ }, context, {
101
+ environment: {
102
+ ...transport.childEnvironment(environment),
103
+ AWS_EXPECTED_ACCOUNT_ID: verified.accountId,
104
+ AWS_REGION: region,
105
+ EBK_NX_TASK_UNLOCK: task.taskId,
106
+ EBK_SOURCE_COMMIT: source.commit,
107
+ EBK_LOCAL_SOURCE_TREE: source.digest,
108
+ },
109
+ taskNativeWriterEffects: dependencies.writers,
110
+ })).success;
111
+ }
112
+ catch (error) {
113
+ devkit_1.logger.error(`Task unlock failed: ${error instanceof Error ? error.message : String(error)}`);
114
+ }
115
+ finally {
116
+ try {
117
+ transport?.cleanup();
118
+ }
119
+ catch {
120
+ success = false;
121
+ devkit_1.logger.error('Task unlock credential cleanup failed; acceptance is blocked.');
122
+ }
123
+ }
124
+ return { success };
125
+ }
126
+ //# sourceMappingURL=task-unlock.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const run_sst_command_js_1 = require("../sst-lifecycle/run-sst-command.js");
4
- const executor = (options, context) => (0, run_sst_command_js_1.runSstCommand)('unlock', options, context);
3
+ const governed_native_operation_js_1 = require("../sst-lifecycle/governed-native-operation.js");
4
+ const executor = (options, context) => (0, governed_native_operation_js_1.runGovernedNativeOperation)('unlock', options, context);
5
5
  exports.default = executor;
6
6
  //# sourceMappingURL=unlock.js.map
@@ -0,0 +1,43 @@
1
+ /** Resource capability version, independent of the requirement-document schema. */
2
+ export declare const FOUNDATION_CAPABILITY_CONTRACT_VERSION: "2.0.0";
3
+ /** Known generated-source migration only; never accepted as a live v2 contract. */
4
+ export declare const LEGACY_STANDARD_FOUNDATION_CAPABILITIES: readonly ["network", "routing", "container-compute", "postgres", "identity", "events", "observability", "configuration", "deployment"];
5
+ export declare const FOUNDATION_BASE_CAPABILITIES: readonly ["key-value", "routing", "identity", "events", "observability", "configuration", "deployment"];
6
+ export declare const FOUNDATION_CAPABILITY_VOCABULARY: readonly ["key-value", "routing", "identity", "events", "observability", "configuration", "deployment", "network", "container-compute", "postgres"];
7
+ export type FoundationCapability = (typeof FOUNDATION_CAPABILITY_VOCABULARY)[number];
8
+ export interface FoundationCapabilityDescriptor {
9
+ contractVersion: typeof FOUNDATION_CAPABILITY_CONTRACT_VERSION;
10
+ capabilities: FoundationCapability[];
11
+ }
12
+ export interface FoundationCapabilityRequirement {
13
+ contract: string;
14
+ capabilities: FoundationCapability[];
15
+ }
16
+ export interface StandardSqlDeclaration {
17
+ reason: string;
18
+ }
19
+ export interface FoundationCapabilityPlan {
20
+ descriptor: FoundationCapabilityDescriptor;
21
+ added: FoundationCapability[];
22
+ retained: FoundationCapability[];
23
+ migratedFromContract: '1.0.0' | null;
24
+ resources: {
25
+ containerCompute: boolean;
26
+ network: boolean;
27
+ postgres: boolean;
28
+ };
29
+ }
30
+ /** Absence means DynamoDB-first; false/null is never a database retirement instruction. */
31
+ export declare function readStandardSqlDeclaration(inputs: unknown): StandardSqlDeclaration | null;
32
+ export declare function standardPersistenceRequirement(inputs: unknown, compositions?: readonly {
33
+ kind: string;
34
+ }[]): FoundationCapabilityRequirement;
35
+ /**
36
+ * Pure generation plan. Existing declarations are monotonic: removing a Slice
37
+ * cannot remove a database, network, or cluster. Retirement is a separate operation.
38
+ * This function never reads AWS and does not attest that resources are deployed.
39
+ */
40
+ export declare function planFoundationCapabilities(options: {
41
+ current?: unknown;
42
+ requirements: readonly unknown[];
43
+ }): FoundationCapabilityPlan;