@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
@@ -14,7 +14,7 @@ function configurationSeedDates(seed) {
14
14
  };
15
15
  }
16
16
  /** @internal */
17
- function renderProductReleaseFiles(name, configurationSeed) {
17
+ function renderProductReleaseFiles(name, configurationSeed, sql = true) {
18
18
  const configurationDates = configurationSeedDates(configurationSeed);
19
19
  return {
20
20
  'infra/container-images.ts': `import {
@@ -79,6 +79,35 @@ function readJson(root: string, candidate: string, label: string): unknown {
79
79
  }
80
80
  }
81
81
 
82
+ function localContainerImage(local: { context: string; dockerfile: string }) {
83
+ const registry = process.env.EBK_CONTAINER_PACKAGE_REGISTRY?.trim() ?? '';
84
+ if (registry === '') return local;
85
+ if (registry.length > 2_048) {
86
+ throw new Error('Container package registry authority is invalid.');
87
+ }
88
+ let parsed: URL;
89
+ try {
90
+ parsed = new URL(registry);
91
+ } catch {
92
+ throw new Error('Container package registry authority is invalid.');
93
+ }
94
+ const normalized = parsed.href;
95
+ const localPlaintext = parsed.protocol === 'http:' &&
96
+ ['127.0.0.1', 'localhost', 'host.docker.internal', '[::1]'].includes(parsed.hostname);
97
+ if (
98
+ (registry !== normalized && registry + '/' !== normalized) ||
99
+ (parsed.protocol !== 'https:' && !localPlaintext) ||
100
+ parsed.username !== '' || parsed.password !== '' ||
101
+ parsed.search !== '' || parsed.hash !== ''
102
+ ) {
103
+ throw new Error('Container package registry authority is invalid.');
104
+ }
105
+ return {
106
+ ...local,
107
+ args: { NPM_CONFIG_REGISTRY: normalized.endsWith('/') ? normalized.slice(0, -1) : normalized },
108
+ };
109
+ }
110
+
82
111
  export function resolveStandardContainerImage(input: {
83
112
  artifactId: string;
84
113
  exactDevelopment?: boolean;
@@ -87,7 +116,7 @@ export function resolveStandardContainerImage(input: {
87
116
  stage: string;
88
117
  }): {
89
118
  environment: Record<string, string>;
90
- image: string | { context: string; dockerfile: string };
119
+ image: string | { context: string; dockerfile: string; args?: Record<string, string> };
91
120
  } {
92
121
  const lifecycleAction = process.env.EBK_ACTION?.trim();
93
122
  if (
@@ -113,6 +142,9 @@ export function resolveStandardContainerImage(input: {
113
142
  (!protectedStage && !exactDevelopment) ||
114
143
  (lifecycleAction !== undefined && lifecycleAction !== 'deploy')
115
144
  ) {
145
+ if (!protectedStage && !exactDevelopment) {
146
+ return { environment: {}, image: localContainerImage(input.local) };
147
+ }
116
148
  return { environment: {}, image: input.local };
117
149
  }
118
150
  if (!COMMIT.test(input.sourceCommit)) {
@@ -133,6 +165,7 @@ export function resolveStandardContainerImage(input: {
133
165
  process.env.EBK_SOURCE_COMMIT?.trim() ?? input.sourceCommit,
134
166
  releaseSourceCommit: input.sourceCommit,
135
167
  repositoryRoot,
168
+ sstEnvironmentProjectRoot: resolve(repositoryRoot, 'packages/${name}'),
136
169
  });
137
170
  const controls = readJson(
138
171
  repositoryRoot,
@@ -1202,7 +1235,8 @@ describe('generated rollout host bindings', () => {
1202
1235
  });
1203
1236
  });
1204
1237
  `,
1205
- 'web/src/lib/provider-delivery.ts': `import {
1238
+ 'web/src/lib/provider-delivery.ts': `import { NextResponse } from 'next/server';
1239
+ import {
1206
1240
  createSliceAwsConfigurationProvider,
1207
1241
  createSliceLocalConfigurationProvider,
1208
1242
  } from '../../../configuration/provider';
@@ -1259,9 +1293,6 @@ export function nextServerProviderDeliveryForSubject(
1259
1293
  ),
1260
1294
  );
1261
1295
  }
1262
- `,
1263
- 'web/src/app/api/provider-delivery/route.ts': `import { NextResponse } from 'next/server';
1264
- import { nextServerProviderDeliveryForSubject } from '../../../lib/provider-delivery';
1265
1296
 
1266
1297
  export interface ProviderDeliveryRouteDependencies {
1267
1298
  resolveAuthenticatedSubjectId(request: Request): Promise<string>;
@@ -1290,6 +1321,8 @@ export function createProviderDeliveryRoute(
1290
1321
  });
1291
1322
  };
1292
1323
  }
1324
+ `,
1325
+ 'web/src/app/api/provider-delivery/route.ts': `import { NextResponse } from 'next/server';
1293
1326
 
1294
1327
  export async function GET() {
1295
1328
  return NextResponse.json(
@@ -1661,11 +1694,20 @@ import {
1661
1694
  lstatSync,
1662
1695
  mkdirSync,
1663
1696
  readFileSync,
1697
+ readlinkSync,
1664
1698
  readdirSync,
1665
1699
  realpathSync,
1666
1700
  writeFileSync,
1667
1701
  } from 'node:fs';
1668
- import { isAbsolute, join, relative, resolve, sep } from 'node:path';
1702
+ import {
1703
+ basename,
1704
+ dirname,
1705
+ isAbsolute,
1706
+ join,
1707
+ relative,
1708
+ resolve,
1709
+ sep,
1710
+ } from 'node:path';
1669
1711
  import {
1670
1712
  createNextJsBuildOutputInventory,
1671
1713
  validateContainerArtifactIdentity,
@@ -1680,12 +1722,41 @@ const sourceCommit =
1680
1722
  if (!sourceCommit || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit)) {
1681
1723
  throw new Error('EBK_SOURCE_COMMIT must be one exact Git object ID.');
1682
1724
  }
1683
- const repositoryRoot = execFileSync(
1684
- 'git',
1685
- ['rev-parse', '--show-toplevel'],
1686
- { encoding: 'utf8' },
1687
- ).trim();
1688
- const repositoryRootReal = realpathSync(repositoryRoot);
1725
+ const repositoryRoot = realpathSync(
1726
+ execFileSync('git', ['rev-parse', '--show-toplevel'], {
1727
+ encoding: 'utf8',
1728
+ }).trim(),
1729
+ );
1730
+ const repositoryRootReal = repositoryRoot;
1731
+ const repositoryRootIdentity = lstatSync(repositoryRootReal, {
1732
+ bigint: true,
1733
+ });
1734
+ if (
1735
+ !repositoryRootIdentity.isDirectory() ||
1736
+ repositoryRootIdentity.ino === 0n
1737
+ ) {
1738
+ throw new Error('Artifact capture cannot bind the repository identity.');
1739
+ }
1740
+ const repositoryRelativeRealPath = (absolute, pointer) => {
1741
+ const segments = [];
1742
+ let current = absolute;
1743
+ for (let depth = 0; depth <= 1024; depth += 1) {
1744
+ const identity = lstatSync(current, { bigint: true });
1745
+ if (
1746
+ identity.dev === repositoryRootIdentity.dev &&
1747
+ identity.ino === repositoryRootIdentity.ino
1748
+ ) {
1749
+ return segments.reverse().join(sep);
1750
+ }
1751
+ const parent = dirname(current);
1752
+ if (parent === current) break;
1753
+ const segment = basename(current);
1754
+ if (!segment || segment === '.' || segment === '..') break;
1755
+ segments.push(segment);
1756
+ current = parent;
1757
+ }
1758
+ throw new Error(pointer + ' resolves outside the repository.');
1759
+ };
1689
1760
  const requireCleanTree = () => {
1690
1761
  const status = execFileSync(
1691
1762
  'git',
@@ -1896,12 +1967,18 @@ if (
1896
1967
  ) {
1897
1968
  throw new Error('Generated artifact inventory names must be unique.');
1898
1969
  }
1899
- const safeFiles = (paths, pointer) => {
1970
+ const safeFiles = (paths, pointer, { allowSymbolicLinks = false, nextJsBuildOutput = false } = {}) => {
1900
1971
  if (!Array.isArray(paths) || paths.length === 0) {
1901
1972
  throw new Error(pointer + ' must name at least one artifact path.');
1902
1973
  }
1903
1974
  const files = [];
1904
1975
  const seen = new Set();
1976
+ const compilerCacheDirectories = new Set(
1977
+ nextJsBuildOutput
1978
+ ? paths.filter((path) => typeof path === 'string' && path.split('/').at(-1) === '.next')
1979
+ .map((path) => resolve(repositoryRoot, path, 'cache'))
1980
+ : [],
1981
+ );
1905
1982
  const visit = (candidate) => {
1906
1983
  if (isAbsolute(candidate)) {
1907
1984
  throw new Error(pointer + ' contains an absolute artifact path.');
@@ -1916,33 +1993,67 @@ const safeFiles = (paths, pointer) => {
1916
1993
  throw new Error(pointer + ' contains a path outside the repository.');
1917
1994
  }
1918
1995
  let walked = repositoryRootReal;
1919
- for (const segment of pathFromRoot.split(sep)) {
1996
+ const segments = pathFromRoot.split(sep);
1997
+ for (const [index, segment] of segments.entries()) {
1920
1998
  walked = resolve(walked, segment);
1921
- if (lstatSync(walked).isSymbolicLink()) {
1999
+ if (
2000
+ lstatSync(walked).isSymbolicLink() &&
2001
+ (!allowSymbolicLinks || index !== segments.length - 1)
2002
+ ) {
1922
2003
  throw new Error(pointer + ' may not traverse symbolic links.');
1923
2004
  }
1924
2005
  }
1925
2006
  const real = realpathSync(absolute);
1926
- const realFromRoot = relative(repositoryRootReal, real);
1927
- if (
1928
- realFromRoot === '..' ||
1929
- realFromRoot.startsWith('..' + sep) ||
1930
- isAbsolute(realFromRoot)
1931
- ) {
1932
- throw new Error(pointer + ' resolves outside the repository.');
1933
- }
2007
+ const realFromRoot = repositoryRelativeRealPath(real, pointer);
1934
2008
  const stat = lstatSync(absolute);
1935
- if (stat.isDirectory()) {
2009
+ const normalized = pathFromRoot.split(sep).join('/');
2010
+ if (compilerCacheDirectories.has(absolute)) {
2011
+ if (!stat.isDirectory() || stat.isSymbolicLink()) {
2012
+ throw new Error(pointer + ': Next.js compiler cache must be a real directory.');
2013
+ }
2014
+ return;
2015
+ }
2016
+ if (stat.isSymbolicLink()) {
2017
+ const targetText = readlinkSync(absolute, 'utf8');
2018
+ const target = realFromRoot.split(sep).join('/');
2019
+ const targetStat = lstatSync(real);
2020
+ const targetKind = targetStat.isDirectory()
2021
+ ? 'directory'
2022
+ : targetStat.isFile()
2023
+ ? 'file'
2024
+ : undefined;
2025
+ if (
2026
+ !allowSymbolicLinks ||
2027
+ Buffer.byteLength(targetText, 'utf8') > 4096 ||
2028
+ !targetKind
2029
+ ) {
2030
+ throw new Error(
2031
+ pointer + ' contains an unsupported symbolic link.',
2032
+ );
2033
+ }
2034
+ if (seen.has(normalized)) {
2035
+ throw new Error(pointer + ' contains overlapping artifact paths.');
2036
+ }
2037
+ seen.add(normalized);
2038
+ files.push({
2039
+ kind: 'link',
2040
+ path: normalized,
2041
+ target,
2042
+ targetKind,
2043
+ targetTextSha256: createHash('sha256')
2044
+ .update(targetText, 'utf8')
2045
+ .digest('hex'),
2046
+ });
2047
+ } else if (stat.isDirectory()) {
1936
2048
  for (const child of readdirSync(absolute).sort()) {
1937
2049
  visit(join(pathFromRoot, child));
1938
2050
  }
1939
2051
  } else if (stat.isFile()) {
1940
- const normalized = pathFromRoot.split(sep).join('/');
1941
2052
  if (seen.has(normalized)) {
1942
2053
  throw new Error(pointer + ' contains overlapping artifact paths.');
1943
2054
  }
1944
2055
  seen.add(normalized);
1945
- files.push([normalized, real]);
2056
+ files.push({ absolute: real, kind: 'file', path: normalized });
1946
2057
  } else {
1947
2058
  throw new Error(pointer + ' may contain only regular files.');
1948
2059
  }
@@ -1957,16 +2068,29 @@ const safeFiles = (paths, pointer) => {
1957
2068
  }
1958
2069
  visit(candidate);
1959
2070
  }
1960
- return files.sort(([left], [right]) =>
2071
+ return files.sort(({ path: left }, { path: right }) =>
1961
2072
  left < right ? -1 : left > right ? 1 : 0,
1962
2073
  );
1963
2074
  };
1964
- const digestPaths = (paths, pointer) => {
2075
+ const digestPaths = (paths, pointer, options) => {
1965
2076
  const hash = createHash('sha256');
1966
- for (const [path, absolute] of safeFiles(paths, pointer)) {
1967
- const content = readFileSync(absolute);
2077
+ for (const entry of safeFiles(paths, pointer, options)) {
2078
+ const { path } = entry;
1968
2079
  hash.update(path, 'utf8');
1969
2080
  hash.update('\\0');
2081
+ if (entry.kind === 'link') {
2082
+ hash.update(entry.kind, 'utf8');
2083
+ hash.update('\\0');
2084
+ hash.update(entry.target, 'utf8');
2085
+ hash.update('\\0');
2086
+ hash.update(entry.targetKind, 'utf8');
2087
+ hash.update('\\0');
2088
+ hash.update(entry.targetTextSha256, 'utf8');
2089
+ hash.update('\\0');
2090
+ continue;
2091
+ }
2092
+ const { absolute } = entry;
2093
+ const content = readFileSync(absolute);
1970
2094
  hash.update(String(content.byteLength), 'utf8');
1971
2095
  hash.update('\\0');
1972
2096
  hash.update(content);
@@ -2019,6 +2143,11 @@ const artifacts = inventory.map((artifact, index) => {
2019
2143
  pointer + ' does not match the generated candidate recipe.',
2020
2144
  );
2021
2145
  }
2146
+ const materialDigestOptions =
2147
+ artifact.buildArtifact?.support === 'supported' &&
2148
+ artifact.buildArtifact.family === 'nextjs-build-output'
2149
+ ? { allowSymbolicLinks: true, nextJsBuildOutput: true }
2150
+ : undefined;
2022
2151
  const common = {
2023
2152
  buildRecipeDigest: digestPaths(
2024
2153
  binding.recipePaths,
@@ -2038,6 +2167,7 @@ const artifacts = inventory.map((artifact, index) => {
2038
2167
  digest: digestPaths(
2039
2168
  binding.materialPaths,
2040
2169
  pointer + '.materialPaths',
2170
+ materialDigestOptions,
2041
2171
  ),
2042
2172
  stages: ['production', 'staging'],
2043
2173
  };
@@ -2048,6 +2178,7 @@ const artifacts = inventory.map((artifact, index) => {
2048
2178
  candidateDigest: digestPaths(
2049
2179
  binding.materialPaths,
2050
2180
  pointer + '.materialPaths',
2181
+ materialDigestOptions,
2051
2182
  ),
2052
2183
  classification: 'stage-specific',
2053
2184
  providerEvidence: artifact.providerEvidence,
@@ -2080,20 +2211,53 @@ const buildOutputs = inventory.flatMap((declared, index) => {
2080
2211
  ];
2081
2212
  });
2082
2213
  requireCleanTree();
2083
- const provenance = {
2084
- runAttempt: process.env.GITHUB_RUN_ATTEMPT?.trim(),
2085
- runId: process.env.GITHUB_RUN_ID?.trim(),
2086
- workflow: process.env.GITHUB_WORKFLOW_REF?.trim(),
2087
- };
2214
+ const localFederated =
2215
+ process.env.GITHUB_ACTIONS !== 'true' &&
2216
+ process.env.EBK_LOCAL_DEPLOYMENT_MODE === 'federated';
2217
+ const localStage = process.env.EBK_STAGE?.trim() ?? '';
2218
+ const localAccount = process.env.AWS_EXPECTED_ACCOUNT_ID?.trim() ?? '';
2219
+ const localRegion = process.env.AWS_REGION?.trim() ?? '';
2220
+ if (localFederated) {
2221
+ const policy = JSON.parse(
2222
+ readFileSync(join(repositoryRoot, 'ebk.repository-policy.json'), 'utf8'),
2223
+ );
2224
+ if (
2225
+ policy.deploymentProfile !== 'starter' ||
2226
+ !['development', 'staging'].includes(localStage) ||
2227
+ policy.deploymentAccounts?.[localStage] !== localAccount ||
2228
+ policy.deploymentRegion !== localRegion
2229
+ ) {
2230
+ throw new Error(
2231
+ 'Local release artifact capture requires a locally admitted exact starter deployment target; production requires protected GitHub authority.',
2232
+ );
2233
+ }
2234
+ }
2235
+ const provenance = localFederated
2236
+ ? {
2237
+ runAttempt: '1',
2238
+ runId: (BigInt('0x' + sourceCommit.slice(0, 15)) + 1n).toString(),
2239
+ workflow:
2240
+ 'local-federated/' +
2241
+ localStage +
2242
+ '/' +
2243
+ localAccount +
2244
+ '/' +
2245
+ localRegion,
2246
+ }
2247
+ : {
2248
+ runAttempt: process.env.GITHUB_RUN_ATTEMPT?.trim(),
2249
+ runId: process.env.GITHUB_RUN_ID?.trim(),
2250
+ workflow: process.env.GITHUB_WORKFLOW_REF?.trim(),
2251
+ };
2088
2252
  if (
2089
- process.env.GITHUB_ACTIONS === 'true' &&
2090
- (!/^[1-9][0-9]*$/.test(provenance.runAttempt ?? '') ||
2091
- !/^[1-9][0-9]*$/.test(provenance.runId ?? '') ||
2092
- !provenance.workflow ||
2093
- provenance.workflow.length > 512)
2253
+ (!localFederated && process.env.GITHUB_ACTIONS !== 'true') ||
2254
+ !/^[1-9][0-9]*$/.test(provenance.runAttempt ?? '') ||
2255
+ !/^[1-9][0-9]*$/.test(provenance.runId ?? '') ||
2256
+ !provenance.workflow ||
2257
+ provenance.workflow.length > 512
2094
2258
  ) {
2095
2259
  throw new Error(
2096
- 'GitHub release candidate capture requires exact workflow provenance.',
2260
+ 'Release artifact capture requires exact GitHub or local-federated provenance.',
2097
2261
  );
2098
2262
  }
2099
2263
  const evidence = {
@@ -2141,19 +2305,9 @@ import { isBoundedSafeReference } from '@empire-builder-kit/runtime/safe-referen
2141
2305
  import ts from 'typescript';
2142
2306
 
2143
2307
  const sourceCommit = process.env.EBK_SOURCE_COMMIT?.trim();
2144
- const runId = process.env.GITHUB_RUN_ID?.trim();
2145
- const runAttempt = process.env.GITHUB_RUN_ATTEMPT?.trim();
2146
- const workflow = process.env.GITHUB_WORKFLOW_REF?.trim();
2147
- if (
2148
- process.env.GITHUB_ACTIONS !== 'true' ||
2149
- !sourceCommit ||
2150
- !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit) ||
2151
- !/^[1-9][0-9]*$/.test(runId ?? '') ||
2152
- !/^[1-9][0-9]*$/.test(runAttempt ?? '') ||
2153
- !isBoundedSafeReference(workflow, 'repository-evidence')
2154
- ) {
2308
+ if (!sourceCommit || !/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceCommit)) {
2155
2309
  throw new Error(
2156
- 'Release candidates require exact GitHub workflow provenance.',
2310
+ 'Release candidates require one exact source commit.',
2157
2311
  );
2158
2312
  }
2159
2313
  const git = (...args) =>
@@ -2166,7 +2320,64 @@ if (
2166
2320
  'Release candidates require the exact clean source commit.',
2167
2321
  );
2168
2322
  }
2169
- const repository = git('remote', 'get-url', 'origin');
2323
+ const repository =
2324
+ process.env.GITHUB_ACTIONS === 'true'
2325
+ ? process.env.GITHUB_REPOSITORY?.trim()
2326
+ : git('remote', 'get-url', 'origin');
2327
+ if (
2328
+ !repository ||
2329
+ (process.env.GITHUB_ACTIONS === 'true' &&
2330
+ !/^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/.test(repository))
2331
+ ) {
2332
+ throw new Error(
2333
+ 'Protected GitHub release candidates require the exact repository slug.',
2334
+ );
2335
+ }
2336
+ const localFederated =
2337
+ process.env.GITHUB_ACTIONS !== 'true' &&
2338
+ process.env.EBK_LOCAL_DEPLOYMENT_MODE === 'federated';
2339
+ const localStage = process.env.EBK_STAGE?.trim() ?? '';
2340
+ const localAccount = process.env.AWS_EXPECTED_ACCOUNT_ID?.trim() ?? '';
2341
+ const localRegion = process.env.AWS_REGION?.trim() ?? '';
2342
+ if (localFederated) {
2343
+ const policy = JSON.parse(
2344
+ readFileSync(new URL('../../../ebk.repository-policy.json', import.meta.url), 'utf8'),
2345
+ );
2346
+ if (
2347
+ policy.deploymentProfile !== 'starter' ||
2348
+ !['development', 'staging'].includes(localStage) ||
2349
+ policy.deploymentAccounts?.[localStage] !== localAccount ||
2350
+ policy.deploymentRegion !== localRegion
2351
+ ) {
2352
+ throw new Error(
2353
+ 'Local release candidates require a locally admitted exact starter deployment target; production requires protected GitHub authority.',
2354
+ );
2355
+ }
2356
+ }
2357
+ const runId = localFederated
2358
+ ? (BigInt('0x' + sourceCommit.slice(0, 15)) + 1n).toString()
2359
+ : process.env.GITHUB_RUN_ID?.trim();
2360
+ const runAttempt = localFederated
2361
+ ? '1'
2362
+ : process.env.GITHUB_RUN_ATTEMPT?.trim();
2363
+ const workflow = localFederated
2364
+ ? 'local-federated/' +
2365
+ localStage +
2366
+ '/' +
2367
+ localAccount +
2368
+ '/' +
2369
+ localRegion
2370
+ : process.env.GITHUB_WORKFLOW_REF?.trim();
2371
+ if (
2372
+ (!localFederated && process.env.GITHUB_ACTIONS !== 'true') ||
2373
+ !/^[1-9][0-9]*$/.test(runId ?? '') ||
2374
+ !/^[1-9][0-9]*$/.test(runAttempt ?? '') ||
2375
+ !isBoundedSafeReference(workflow, 'repository-evidence')
2376
+ ) {
2377
+ throw new Error(
2378
+ 'Release candidates require exact GitHub or local-federated provenance.',
2379
+ );
2380
+ }
2170
2381
  const builtAt = new Date(
2171
2382
  git('show', '-s', '--format=%cI', sourceCommit),
2172
2383
  ).toISOString();
@@ -2312,10 +2523,14 @@ const contract = treeEvidence(
2312
2523
  'contracts',
2313
2524
  'ebk-release-contract-source',
2314
2525
  );
2315
- const migration = treeEvidence(
2316
- 'database/migrations',
2317
- 'ebk-release-migration-source',
2318
- );
2526
+ const sqlDeclared = ${sql};
2527
+ const migration = {
2528
+ ...treeEvidence(
2529
+ sqlDeclared ? 'database/migrations' : 'data/persistence.json',
2530
+ 'ebk-release-migration-source',
2531
+ ),
2532
+ applicability: sqlDeclared ? 'declared-sql' : 'not-applicable',
2533
+ };
2319
2534
  const testEvidence = JSON.parse(
2320
2535
  readFileSync(
2321
2536
  new URL('../.ebk/evidence/test-integration.json', import.meta.url),
@@ -2356,10 +2571,10 @@ if (
2356
2571
  }
2357
2572
  const migrationJournalPath =
2358
2573
  'packages/${name}/database/migrations/meta/_journal.json';
2359
- const migrationJournalContent = readFileSync(
2574
+ const migrationJournalContent = sqlDeclared ? readFileSync(
2360
2575
  new URL('../database/migrations/meta/_journal.json', import.meta.url),
2361
2576
  'utf8',
2362
- );
2577
+ ) : JSON.stringify({ entries: [] });
2363
2578
  const migrationJournal = JSON.parse(migrationJournalContent);
2364
2579
  const baselineMigrationJournalContent = trackedAt(
2365
2580
  baselineCommit,
@@ -2403,7 +2618,8 @@ const databaseCompatibilityReport = {
2403
2618
  baselineDigest: digest(baselineMigrationJournalContent ?? ''),
2404
2619
  candidateDigest: digest(migrationJournalContent),
2405
2620
  classification:
2406
- preservedMigrations && !destructiveMigration
2621
+ preservedMigrations && !destructiveMigration &&
2622
+ (sqlDeclared || baselineMigrationJournalContent === undefined)
2407
2623
  ? 'compatible'
2408
2624
  : 'incompatible',
2409
2625
  kind: 'database-migration-compatibility',
@@ -3987,7 +4203,7 @@ const requireSupplyChainManifest = (path) => {
3987
4203
  ).value;
3988
4204
  if (
3989
4205
  finalSbom?.bomFormat !== 'CycloneDX' ||
3990
- finalSbom.specVersion !== '1.6' ||
4206
+ finalSbom.specVersion !== '1.7' ||
3991
4207
  finalSbom.version !== 1 ||
3992
4208
  finalSbom.serialNumber?.toLowerCase() !== reference.serialNumber ||
3993
4209
  !Array.isArray(finalSbom.components) ||
@@ -3997,7 +4213,7 @@ const requireSupplyChainManifest = (path) => {
3997
4213
  typeof finalSbom.metadata !== 'object' ||
3998
4214
  !Array.isArray(finalSbom.metadata.properties)
3999
4215
  ) {
4000
- throw new Error('Final OCI SBOM is not complete CycloneDX 1.6 evidence.');
4216
+ throw new Error('Final OCI SBOM is not complete CycloneDX 1.7 evidence.');
4001
4217
  }
4002
4218
  const properties = new Map();
4003
4219
  for (const property of finalSbom.metadata.properties) {
@@ -4097,7 +4313,7 @@ const requireSupplyChainManifest = (path) => {
4097
4313
  ).value;
4098
4314
  if (
4099
4315
  platformSbom?.bomFormat !== 'CycloneDX' ||
4100
- platformSbom.specVersion !== '1.6' ||
4316
+ platformSbom.specVersion !== '1.7' ||
4101
4317
  platformSbom.version !== 1 ||
4102
4318
  platformSbom.serialNumber?.toLowerCase() !==
4103
4319
  platform.sbom.serialNumber ||
@@ -4112,7 +4328,7 @@ const requireSupplyChainManifest = (path) => {
4112
4328
  name: component?.name,
4113
4329
  purl: component?.purl ?? '',
4114
4330
  type: component?.type,
4115
- version: component?.version,
4331
+ version: component?.version ?? '',
4116
4332
  }))
4117
4333
  .sort((left, right) =>
4118
4334
  JSON.stringify(left) < JSON.stringify(right)
@@ -4122,11 +4338,31 @@ const requireSupplyChainManifest = (path) => {
4122
4338
  : 0,
4123
4339
  );
4124
4340
  if (
4125
- componentSet.some(
4341
+ platformSbom.components.some(
4126
4342
  (component) =>
4127
- typeof component.name !== 'string' ||
4343
+ typeof component?.name !== 'string' ||
4344
+ component.name.length === 0 ||
4128
4345
  typeof component.type !== 'string' ||
4129
- typeof component.version !== 'string',
4346
+ component.type.length === 0 ||
4347
+ !(
4348
+ (typeof component.version === 'string' &&
4349
+ component.version.length > 0) ||
4350
+ (component.type === 'file' &&
4351
+ component.version === undefined &&
4352
+ component.purl === undefined &&
4353
+ component.name.startsWith('/') &&
4354
+ component.name.length <= 4_096 &&
4355
+ Array.isArray(component.hashes) &&
4356
+ component.hashes.length === 2 &&
4357
+ component.hashes[0]?.alg === 'SHA-1' &&
4358
+ /^[a-f0-9]{40}$/.test(
4359
+ component.hashes[0]?.content ?? '',
4360
+ ) &&
4361
+ component.hashes[1]?.alg === 'SHA-256' &&
4362
+ /^[a-f0-9]{64}$/.test(
4363
+ component.hashes[1]?.content ?? '',
4364
+ ))
4365
+ ),
4130
4366
  ) ||
4131
4367
  supplyChainDigest(componentSet) !== platform.sbom.componentSetDigest
4132
4368
  ) {
@@ -6165,7 +6401,11 @@ if (['stopped', 'recovering'].includes(result.rollout.phase)) {
6165
6401
  sourceInputPaths: [
6166
6402
  `packages/${name}/configuration`,
6167
6403
  `packages/${name}/infra`,
6168
- `packages/${name}/web`,
6404
+ `packages/${name}/web/next-env.d.ts`,
6405
+ `packages/${name}/web/next.config.ts`,
6406
+ `packages/${name}/web/open-next.config.ts`,
6407
+ `packages/${name}/web/src`,
6408
+ `packages/${name}/web/tsconfig.json`,
6169
6409
  ],
6170
6410
  },
6171
6411
  buildArtifact: {
@@ -1,2 +1,2 @@
1
1
  /** @internal */
2
- export declare function renderProductReliabilityFiles(name: string, pascalName: string, reviewedAt: string): Readonly<Record<string, string>>;
2
+ export declare function renderProductReliabilityFiles(name: string, pascalName: string, reviewedAt: string, sql?: boolean): Readonly<Record<string, string>>;