@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
@@ -93,10 +93,11 @@ function isSafeWorkspacePath(path) {
93
93
  (0, workspace_path_js_1.isCanonicalDeveloperAgentWorkspacePath)(path) &&
94
94
  path.split('/').every((segment) => segment.length > 0 && segment !== '.'));
95
95
  }
96
- function blockingWarnings(context, readOnly, upgradeTarget) {
96
+ function blockingWarnings(context, readOnly, upgradeTarget, allowDirtyDevelopment = false) {
97
97
  const blocking = new Set(model_js_1.DEVELOPER_AGENT_CONTEXT_BLOCKING_FAILURES);
98
98
  if (!readOnly) {
99
- blocking.add('dirty-worktree');
99
+ if (!allowDirtyDevelopment)
100
+ blocking.add('dirty-worktree');
100
101
  blocking.add('stale-base');
101
102
  }
102
103
  const ownershipVersions = context.workspace.ownershipVersions;
@@ -120,16 +121,14 @@ function blockingWarnings(context, readOnly, upgradeTarget) {
120
121
  }
121
122
  if (upgradeTarget === 'workspace')
122
123
  return true;
123
- if (upgradeTarget === 'foundation' &&
124
- !hasExpectedVersionDrift('workspace')) {
125
- return drift.kind === 'foundation' && drift.target === 'foundation';
126
- }
127
- if (upgradeTarget !== 'foundation' &&
128
- !hasExpectedVersionDrift('workspace') &&
129
- !hasExpectedVersionDrift('foundation')) {
130
- return drift.kind === 'slice' && drift.target === upgradeTarget;
124
+ if (hasExpectedVersionDrift('workspace'))
125
+ return false;
126
+ if (upgradeTarget === 'foundation') {
127
+ return drift.kind === 'foundation' || drift.kind === 'slice';
131
128
  }
132
- return false;
129
+ if (hasExpectedVersionDrift('foundation'))
130
+ return false;
131
+ return drift.kind === 'slice';
133
132
  };
134
133
  return context.warnings.filter((warning) => blocking.has(warning.classification) &&
135
134
  !mayConsumeExpectedVersionDrift(warning));
@@ -352,7 +351,9 @@ function planDeveloperAgentWork(context, registry, request, options = {}) {
352
351
  const blockers = [
353
352
  ...blockingWarnings(context, readOnlyForSourceWarnings, request.generatorInput?.generator === 'upgrade'
354
353
  ? request.generatorInput.name
355
- : undefined),
354
+ : undefined, operation.owner === 'source-edit' ||
355
+ (operation.authority === 'development-mutate' &&
356
+ context.policy.canonicalStage === 'development')),
356
357
  ...concurrentPathBlockers(context, selectedFiles, readOnlyForSourceWarnings),
357
358
  ...policyBlockers(context, operation),
358
359
  ].filter((blocker, index, values) => values.findIndex((candidate) => candidate.classification === blocker.classification &&
@@ -438,7 +439,9 @@ function planDeveloperAgentWork(context, registry, request, options = {}) {
438
439
  selectedProjects: operation.projects,
439
440
  verification: [
440
441
  ...new Set([
441
- ...context.requiredVerification,
442
+ ...(operation.owner === 'source-edit'
443
+ ? []
444
+ : context.requiredVerification),
442
445
  ...operation.requiredVerification,
443
446
  ]),
444
447
  ].sort(),
@@ -21,6 +21,8 @@ export declare class DeferredDeveloperAgentTree implements Tree {
21
21
  isFile(path: string): boolean;
22
22
  children(path: string): string[];
23
23
  listChanges(): FileChange[];
24
+ /** Inspect pending configuration without adding parent edits to this transaction. */
25
+ hasPendingChange(path: string): boolean;
24
26
  changePermissions(path: string, mode: Mode): void;
25
27
  apply(): void;
26
28
  }
@@ -64,7 +64,9 @@ function developerAgentPreviewOwnershipModes(tree, target) {
64
64
  }
65
65
  add('', result.value);
66
66
  }
67
- if (target === 'foundation') {
67
+ if (target === 'foundation' ||
68
+ (target !== 'workspace' &&
69
+ tree.exists('packages/foundation/.ebk/ownership.json'))) {
68
70
  const source = tree.read('packages/foundation/.ebk/ownership.json', 'utf8');
69
71
  const result = (0, index_js_1.validateFoundationOwnershipRecord)(JSON.parse(source ?? 'null'));
70
72
  if (!result.valid) {
@@ -72,7 +74,7 @@ function developerAgentPreviewOwnershipModes(tree, target) {
72
74
  }
73
75
  add('packages/foundation', result.value);
74
76
  }
75
- else if (target !== 'workspace') {
77
+ if (target !== 'workspace' && target !== 'foundation') {
76
78
  const prefix = `packages/${target}`;
77
79
  const source = tree.read(`${prefix}/.ebk/ownership.json`, 'utf8');
78
80
  const result = (0, index_js_1.validateGeneratedOwnershipRecord)(JSON.parse(source ?? 'null'));
@@ -181,6 +183,16 @@ class DeferredDeveloperAgentTree {
181
183
  }))
182
184
  .sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.path, right.path));
183
185
  }
186
+ /** Inspect pending configuration without adding parent edits to this transaction. */
187
+ hasPendingChange(path) {
188
+ const normalized = canonicalPath(path);
189
+ return (this.changes.has(normalized) ||
190
+ (this.source instanceof DeferredDeveloperAgentTree
191
+ ? this.source.hasPendingChange(normalized)
192
+ : this.source
193
+ .listChanges()
194
+ .some((change) => change.path === normalized)));
195
+ }
184
196
  changePermissions(path, mode) {
185
197
  const contents = this.current(path);
186
198
  if (contents === null) {
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.developerAgentGeneratorPreviewSource = developerAgentGeneratorPreviewSource;
4
4
  function developerAgentGeneratorPreviewSource(context) {
5
+ if (context.git.commit === null) {
6
+ throw new Error('Commit-bound generator previews require an initial Git commit; local orientation and feature checks do not establish committed-source authority.');
7
+ }
5
8
  return {
6
9
  blueprintVersions: [...context.workspace.blueprintVersions],
7
10
  ...(context.workspace.candidateProvenance
@@ -54,7 +54,11 @@ const OPERATION_OWNER_SET = new Set(model_js_1.DEVELOPER_AGENT_OPERATION_OWNERS)
54
54
  const POLICY_LIFECYCLE_ACTION_SET = new Set(model_js_1.DEVELOPER_AGENT_POLICY_LIFECYCLE_ACTIONS);
55
55
  const STABLE_GENERATOR_SET = new Set(model_js_1.DEVELOPER_AGENT_STABLE_GENERATORS);
56
56
  const GENERATOR_MODE_SET = new Set(model_js_1.DEVELOPER_AGENT_GENERATOR_MODES);
57
- const PRODUCTION_PROFILE_SET = new Set(['cost-optimized', 'standard']);
57
+ const PRODUCTION_PROFILE_SET = new Set([
58
+ 'cost-optimized',
59
+ 'balanced',
60
+ 'standard',
61
+ ]);
58
62
  const BLOCKING_FAILURES = new Set([
59
63
  'unsupported-operation',
60
64
  'invalid-input',
@@ -478,10 +482,20 @@ function validateGitContext(value, path, issues) {
478
482
  return false;
479
483
  requireInteger(record.ahead, `${path}.ahead`, issues, 0, 1_000_000);
480
484
  requireInteger(record.behind, `${path}.behind`, issues, 0, 1_000_000);
481
- requireSafeString(record.commit, `${path}.commit`, issues, {
482
- maximumLength: 64,
483
- pattern: COMMIT_PATTERN,
484
- });
485
+ if (record.commit !== null) {
486
+ requireSafeString(record.commit, `${path}.commit`, issues, {
487
+ maximumLength: 64,
488
+ pattern: COMMIT_PATTERN,
489
+ });
490
+ }
491
+ else if (typeof record.branch !== 'string' ||
492
+ record.ahead !== 0 ||
493
+ record.behind !== 0 ||
494
+ has(record, 'upstream') ||
495
+ has(record, 'baseCommit') ||
496
+ has(record, 'headCommit')) {
497
+ addIssue(issues, `${path}.commit`, 'uncommitted state requires a symbolic branch without upstream or comparison authority');
498
+ }
485
499
  requireBoolean(record.concurrentChangeInspectionComplete, `${path}.concurrentChangeInspectionComplete`, issues);
486
500
  const concurrentChanges = requireArray(record.concurrentChanges, `${path}.concurrentChanges`, issues, MAX_CONCURRENT_PATHS);
487
501
  const concurrentPaths = new Set();
@@ -516,10 +530,12 @@ function validateGitContext(value, path, issues) {
516
530
  }
517
531
  requireInteger(concurrent.worktreeCount, `${entryPath}.worktreeCount`, issues, 1, 64);
518
532
  });
519
- requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
520
- maximumLength: 64,
521
- pattern: COMMIT_PATTERN,
522
- });
533
+ if (record.defaultBaseCommit !== null) {
534
+ requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
535
+ maximumLength: 64,
536
+ pattern: COMMIT_PATTERN,
537
+ });
538
+ }
523
539
  requireSafeString(record.defaultBaseRef, `${path}.defaultBaseRef`, issues, {
524
540
  maximumLength: MAX_PATH_LENGTH,
525
541
  });
@@ -6,6 +6,7 @@ const node_util_1 = require("node:util");
6
6
  const semver_1 = require("semver");
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_path_1 = require("node:path");
9
+ const contracts_js_1 = require("../local-dev/contracts.js");
9
10
  const index_js_1 = require("../ownership/index.js");
10
11
  const index_js_2 = require("../repository-policy/index.js");
11
12
  const index_js_3 = require("../work-markers/index.js");
@@ -222,7 +223,22 @@ function selectedDependencyClosureNodes(graph, selected) {
222
223
  const node = pending.pop();
223
224
  if (!node)
224
225
  continue;
225
- for (const { target } of graph.dependencies[node.name] ?? []) {
226
+ let localDependencies = [];
227
+ try {
228
+ const adapter = (0, contracts_js_1.validateLocalDevAdapter)(node.data.metadata?.['ebk']
229
+ ?.localDev);
230
+ if (adapter.adapterVersion === 3) {
231
+ localDependencies = adapter.dependencySlices;
232
+ }
233
+ }
234
+ catch {
235
+ // The operation registry rejects malformed metadata; do not traverse it.
236
+ }
237
+ const dependencyNames = new Set([
238
+ ...(graph.dependencies[node.name] ?? []).map(({ target }) => target),
239
+ ...localDependencies,
240
+ ]);
241
+ for (const target of dependencyNames) {
226
242
  const dependency = graph.nodes[target];
227
243
  if (!dependency || closure.has(target))
228
244
  continue;
@@ -612,7 +628,7 @@ function protectedExternalBlueprintVerification(root, frameworkVersion, records,
612
628
  git.defaultBaseRef === 'refs/remotes/origin/develop'
613
629
  ? 'develop'
614
630
  : undefined;
615
- if (!protectedBranch)
631
+ if (!protectedBranch || !git.commit || !git.defaultBaseCommit)
616
632
  return unavailable();
617
633
  const configurationPaths = (0, blueprint_verification_authority_js_1.assertNoMutableBlueprintVerificationConfiguration)(root);
618
634
  (0, blueprint_verification_authority_js_1.assertBlueprintVerificationNxAuthority)(readBoundedWorkspaceFile(root, 'nx.json', 'Blueprint verification Nx authority', MAX_CONTROL_JSON_BYTES).bytes.toString('utf8'));
@@ -862,6 +878,23 @@ function policyContext(root, stage, policy, nodes) {
862
878
  };
863
879
  });
864
880
  const fields = [
881
+ {
882
+ name: 'workspaceDeploymentId',
883
+ value: policy.workspaceDeploymentId,
884
+ },
885
+ {
886
+ name: 'workspaceDeploymentProvenance.kind',
887
+ value: policy.workspaceDeploymentProvenance.kind,
888
+ },
889
+ { name: 'deploymentProfile', value: policy.deploymentProfile },
890
+ {
891
+ name: 'deploymentRegion',
892
+ value: policy.deploymentRegion ?? 'unconfigured',
893
+ },
894
+ ...['development', 'staging', 'production'].map((stage) => ({
895
+ name: `deploymentAccounts.${stage}`,
896
+ value: policy.deploymentAccounts[stage] ?? 'unconfigured',
897
+ })),
865
898
  { name: 'productionAccess', value: policy.productionAccess },
866
899
  {
867
900
  name: 'productionApproval.mode',
@@ -886,11 +919,16 @@ function policyContext(root, stage, policy, nodes) {
886
919
  decisions,
887
920
  policy: {
888
921
  $schema: policy.$schema ?? null,
922
+ deploymentAccounts: policy.deploymentAccounts,
923
+ deploymentProfile: policy.deploymentProfile,
924
+ deploymentRegion: policy.deploymentRegion,
889
925
  productionAccess: policy.productionAccess,
890
926
  productionApproval: policy.productionApproval,
891
927
  productionFoundation: policy.productionFoundation,
892
928
  schemaVersion: policy.schemaVersion,
893
929
  slices: Object.fromEntries(Object.entries(policy.slices).sort(([left], [right]) => (0, ordering_js_1.compareDeveloperAgentStrings)(left, right))),
930
+ workspaceDeploymentId: policy.workspaceDeploymentId,
931
+ workspaceDeploymentProvenance: policy.workspaceDeploymentProvenance,
894
932
  },
895
933
  selected,
896
934
  stage,
@@ -1047,8 +1085,7 @@ function inspectDeveloperAgentWorkspace(options) {
1047
1085
  let policy;
1048
1086
  const policyWarnings = [];
1049
1087
  try {
1050
- const policySource = readBoundedWorkspaceFile(root, index_js_2.REPOSITORY_POLICY_FILE, 'Repository Operating Policy', MAX_CONTROL_JSON_BYTES).bytes.toString('utf8');
1051
- policy = (0, index_js_2.parseRepositoryOperatingPolicy)(policySource, index_js_2.REPOSITORY_POLICY_FILE);
1088
+ policy = (0, index_js_2.readRepositoryOperatingPolicy)(root);
1052
1089
  }
1053
1090
  catch {
1054
1091
  policyWarnings.push(warning('policy-conflict', 'Repository Operating Policy is missing, malformed, or contradictory.'));
@@ -1062,12 +1099,17 @@ function inspectDeveloperAgentWorkspace(options) {
1062
1099
  const marker = markerContext(root);
1063
1100
  const projectTargets = registryNodes.map((node) => ({
1064
1101
  context: projectContext(options.graph, node),
1102
+ localDev: node.data.metadata?.['ebk']?.localDev,
1065
1103
  targets: (node.data.targets ?? {}),
1066
1104
  }));
1067
1105
  const externalVerification = protectedExternalBlueprintVerification(root, versions.workspace.frameworkVersion, ownership.records, options.graph, new Set(registryNodes.map(({ name }) => name)), options.blueprintTrustNow ?? new Date().toISOString(), options.git);
1068
1106
  const operationRegistry = (0, operation_registry_js_1.createDeveloperAgentOperationRegistry)(projectTargets, {
1107
+ allSliceProjectNames: Object.values(options.graph.nodes)
1108
+ .filter((node) => node.data.tags?.includes('type:slice'))
1109
+ .map(({ name }) => name),
1069
1110
  exposedProjectNames: nodes.map(({ name }) => name),
1070
1111
  externalOwnedProjectNames: externalOwnedProjectNames(root, registryNodes, externalOwnershipRoots, options.externalOwnershipHistory, foundationProjectName),
1112
+ externalOwnershipHistoryComplete: options.externalOwnershipHistory.complete,
1071
1113
  namedInputDefinitions: [
1072
1114
  options.workspaceNamedInputs ?? { runtime: 'uninspected' },
1073
1115
  ...Object.values(options.graph.nodes).map((node) => node.data.namedInputs ?? {}),
@@ -1088,13 +1130,26 @@ function inspectDeveloperAgentWorkspace(options) {
1088
1130
  ...externalVerification.warnings,
1089
1131
  ...unsupportedWarnings,
1090
1132
  ]);
1133
+ // The name "verify" alone is not a framework verification obligation.
1134
+ // Adopter-owned authoring projects may run arbitrary recipe checks; they
1135
+ // remain visible but cannot inject authority into an unrelated operation.
1136
+ // Keep generated obligations even when their implementation is tampered
1137
+ // with, so planning still refuses unauthenticated required verification.
1138
+ const governedProjectNames = new Set([
1139
+ identity.name,
1140
+ ...(foundationProjectName ? [foundationProjectName] : []),
1141
+ ...ownership.records.flatMap(({ slice }) => slice ? [slice.slice, ...slice.projects] : []),
1142
+ ]);
1143
+ const authenticatedTargets = new Set(operationRegistry.authenticatedTargets);
1091
1144
  const requiredVerification = [
1092
1145
  ...new Set([
1093
1146
  ...ownership.records.flatMap((record) => record.slice && selectedProjectNames.has(record.slice.slice)
1094
1147
  ? record.slice.verification.map((target) => `${record.slice.slice}:${target}`)
1095
1148
  : []),
1096
1149
  ...projects
1097
- .filter(({ targets }) => targets.includes('verify'))
1150
+ .filter(({ name, targets }) => targets.includes('verify') &&
1151
+ (governedProjectNames.has(name) ||
1152
+ authenticatedTargets.has(`${name}:verify`)))
1098
1153
  .map(({ name }) => `${name}:verify`),
1099
1154
  ]),
1100
1155
  ].sort();
@@ -16,6 +16,12 @@ const TARGET_OPTIONS = Object.freeze({
16
16
  protectedBranch: 'develop',
17
17
  protectedRef: 'refs/remotes/origin/develop',
18
18
  }),
19
+ 'blueprint-trust-check-main': Object.freeze({
20
+ operation: 'adopt',
21
+ output: '.ebk/evidence/supply-chain/blueprint-trust.json',
22
+ protectedBranch: 'main',
23
+ protectedRef: 'refs/remotes/origin/main',
24
+ }),
19
25
  'blueprint-trust-check-protected': Object.freeze({
20
26
  operation: 'deploy',
21
27
  output: '.ebk/evidence/supply-chain/blueprint-trust.json',
@@ -7,3 +7,5 @@ interface DeploymentPlanOptions {
7
7
  }
8
8
  declare const executor: PromiseExecutor<DeploymentPlanOptions>;
9
9
  export default executor;
10
+ /** Derive protected OCI work from the committed inventory, not Slice existence. */
11
+ export declare function hasContainerArtifacts(value: unknown): boolean;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasContainerArtifacts = hasContainerArtifacts;
3
4
  const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
4
6
  const devkit_1 = require("@nx/devkit");
5
7
  const index_js_1 = require("../../repository-policy/index.js");
6
8
  const index_js_2 = require("../../work-markers/index.js");
@@ -10,11 +12,22 @@ function writeGithubOutputs(plan) {
10
12
  return;
11
13
  (0, node_fs_1.appendFileSync)(output, [
12
14
  `foundation_project=${plan.foundationProject ?? ''}`,
15
+ `deployment_profile=${plan.deploymentProfile}`,
16
+ `deployment_region=${plan.deploymentRegion}`,
17
+ `development_account_id=${plan.deploymentAccounts.development ?? ''}`,
18
+ `staging_account_id=${plan.deploymentAccounts.staging ?? ''}`,
19
+ `production_account_id=${plan.deploymentAccounts.production ?? ''}`,
13
20
  `foundation_profile=${plan.effectiveProductionProfile ?? ''}`,
14
21
  `has_slices=${plan.sliceProjects.length > 0 ? 'true' : 'false'}`,
15
22
  `ordered_projects=${plan.orderedProjects.join(',')}`,
16
23
  `production_approval_mode=${plan.productionApprovalMode}`,
17
24
  `slice_projects=${plan.sliceProjects.join(',')}`,
25
+ // One matrix row per selected Slice so the protected OCI build fans out
26
+ // per Slice and architecture instead of looping on one runner.
27
+ `slice_matrix=${JSON.stringify(plan.sliceProjects.map((project) => ({ project })))}`,
28
+ `has_containers=${plan.containerProjects.length > 0 ? 'true' : 'false'}`,
29
+ `container_projects=${plan.containerProjects.join(',')}`,
30
+ `container_matrix=${JSON.stringify(plan.containerProjects.map((project) => ({ project })))}`,
18
31
  '',
19
32
  ].join('\n'), 'utf8');
20
33
  }
@@ -38,8 +51,23 @@ const executor = async (options, context) => {
38
51
  : {}),
39
52
  stage: options.stage,
40
53
  });
41
- devkit_1.logger.info(`[ebk-deployment-plan] validated before AWS access\n${JSON.stringify(plan, null, 2)}`);
42
- writeGithubOutputs(plan);
54
+ const containerProjects = options.action === 'deploy'
55
+ ? plan.sliceProjects.filter((name) => {
56
+ const project = context.projectsConfigurations?.projects[name];
57
+ if (!project?.root)
58
+ throw new Error(`Release inventory root is absent for ${name}.`);
59
+ const inventoryPath = (0, node_path_1.resolve)(context.root, project.root, 'operations/release.json');
60
+ const local = (0, node_path_1.relative)(context.root, inventoryPath);
61
+ if ((0, node_path_1.isAbsolute)(local) ||
62
+ local === '..' ||
63
+ local.startsWith('../') ||
64
+ local.startsWith('..\\'))
65
+ throw new Error(`Release inventory for ${name} is outside the workspace.`);
66
+ return hasContainerArtifacts(JSON.parse((0, node_fs_1.readFileSync)(inventoryPath, 'utf8')));
67
+ })
68
+ : [];
69
+ devkit_1.logger.info(`[ebk-deployment-plan] validated before AWS access\n${JSON.stringify({ ...plan, containerProjects }, null, 2)}`);
70
+ writeGithubOutputs({ ...plan, containerProjects });
43
71
  return { success: true };
44
72
  }
45
73
  catch (error) {
@@ -48,4 +76,31 @@ const executor = async (options, context) => {
48
76
  }
49
77
  };
50
78
  exports.default = executor;
79
+ /** Derive protected OCI work from the committed inventory, not Slice existence. */
80
+ function hasContainerArtifacts(value) {
81
+ const inventory = value;
82
+ if (inventory?.schemaVersion !== 1 ||
83
+ !Array.isArray(inventory.artifactInventory) ||
84
+ inventory.artifactInventory.length === 0)
85
+ throw new Error('Release inventory is absent or malformed.');
86
+ let containers = false;
87
+ for (const artifact of inventory.artifactInventory) {
88
+ if (!artifact ||
89
+ !artifact.finalArtifact ||
90
+ typeof artifact.finalArtifact.family !== 'string')
91
+ throw new Error('Release artifact identity is malformed.');
92
+ if (artifact.finalArtifact.family === 'sst-provider-artifact') {
93
+ if (artifact.finalArtifact.support !== 'unsupported')
94
+ throw new Error('Provider artifacts require their declared support boundary.');
95
+ continue;
96
+ }
97
+ if (artifact.finalArtifact.family !== 'oci-image')
98
+ throw new Error('Release artifact family is unsupported.');
99
+ if (artifact.finalArtifact.support !== 'supported' ||
100
+ artifact.finalArtifact.imageConsumption !== 'digest-qualified')
101
+ throw new Error('OCI artifacts require supported digest-qualified release identity.');
102
+ containers = true;
103
+ }
104
+ return containers;
105
+ }
51
106
  //# sourceMappingURL=deployment-plan.js.map
@@ -85,11 +85,10 @@ function effectiveProbeAuthorities(rootCertificatePath) {
85
85
  return (0, node_fs_1.readFileSync)(rootCertificatePath);
86
86
  }
87
87
  async function inspectLocalDevelopment(options, context, dependencies = {}) {
88
- const stage = (dependencies.personalStageResolver ?? (0, personal_stage_js_1.createPersonalStageResolver)()).resolve().stage;
89
88
  const hostname = options.hostname?.trim() ||
90
89
  (0, identity_js_1.createFleetHostname)((0, identity_js_1.createFleetId)({
91
90
  checkoutPath: context.root,
92
- stage,
91
+ stage: (dependencies.personalStageResolver ?? (0, personal_stage_js_1.createPersonalStageResolver)()).resolve(context.root).stage,
93
92
  workspaceName: context.projectName ?? 'workspace',
94
93
  }));
95
94
  const paths = (0, tls_js_1.localTlsPaths)(options.appData);
@@ -147,9 +146,17 @@ async function inspectLocalDevelopment(options, context, dependencies = {}) {
147
146
  const trust = (dependencies.inspectTrust ?? inspectCertificateTrust)(paths.rootCertificate, paths.intermediateCertificate, paths.leafCertificate, hostname);
148
147
  let authorities;
149
148
  let connectivity = 'missing';
150
- if (trust === 'ready' && resolver.length > 0) {
149
+ {
151
150
  try {
152
- authorities = effectiveProbeAuthorities(paths.rootCertificate);
151
+ // Prove the fleet's exact private chain without installing it into the
152
+ // operating system. Browser automation admits only this chain/origin.
153
+ authorities =
154
+ trust === 'ready'
155
+ ? effectiveProbeAuthorities(paths.rootCertificate)
156
+ : [
157
+ (0, node_fs_1.readFileSync)(paths.rootCertificate),
158
+ (0, node_fs_1.readFileSync)(paths.intermediateCertificate),
159
+ ];
153
160
  await (dependencies.probeExplicitTls ?? effects_js_1.probeEphemeralTlsEndpoint)({
154
161
  ca: authorities,
155
162
  certificate: (0, node_fs_1.readFileSync)(paths.leafCertificate),
@@ -162,8 +169,8 @@ async function inspectLocalDevelopment(options, context, dependencies = {}) {
162
169
  issues.push(`Supported explicit-port TLS effect probe failed: ${error instanceof Error ? error.message : String(error)}`);
163
170
  }
164
171
  }
165
- else {
166
- issues.push('The generated certificate chain is not trusted by the detected user trust provider.');
172
+ if (trust !== 'ready') {
173
+ issues.push('System trust is not installed. Use the generated verify-local-browser target for browser-scoped trust; human browsers may require explicit ebk dev setup --trust after reviewing the root.');
167
174
  }
168
175
  let state;
169
176
  if ((0, node_fs_1.existsSync)(paths.gatewayState)) {
@@ -0,0 +1,23 @@
1
+ import { type ExecutorContext, type PromiseExecutor } from '@nx/devkit';
2
+ import { type TaskAuthorityEffects } from '../../local-dev/task-authority.js';
3
+ import { createLocalFederatedCredentialTransport } from '../local-deploy/federated-credential-transport.js';
4
+ import { runSstCommand, type SstLifecycleOptions } from '../sst-lifecycle/run-sst-command.js';
5
+ import { inspectNeverCreatedTaskStack, verifyRemovedTaskStack } from './task-stack-absence.js';
6
+ export type DevTaskCleanupOptions = Record<string, never>;
7
+ export interface DevTaskCleanupDependencies {
8
+ authority?: TaskAuthorityEffects;
9
+ createTransport?: typeof createLocalFederatedCredentialTransport;
10
+ environment?: NodeJS.ProcessEnv;
11
+ preflight?: typeof preflightTaskRemove;
12
+ inspectStack?: typeof inspectNeverCreatedTaskStack;
13
+ verifyStack?: typeof verifyRemovedTaskStack;
14
+ run?: typeof runSstCommand;
15
+ }
16
+ declare function preflightTaskRemove(options: SstLifecycleOptions, context: ExecutorContext, environment: NodeJS.ProcessEnv): Promise<string>;
17
+ /** Internal generated cleanup target: never accepts a caller-selected task. */
18
+ export declare function runDevTaskCleanup(options: DevTaskCleanupOptions, context: ExecutorContext, dependencies?: DevTaskCleanupDependencies): Promise<{
19
+ success: boolean;
20
+ taskStack?: 'already-absent';
21
+ }>;
22
+ declare const executor: PromiseExecutor<DevTaskCleanupOptions>;
23
+ export default executor;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runDevTaskCleanup = runDevTaskCleanup;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const index_js_1 = require("../../aws-authority/index.js");
6
+ const fleet_launcher_js_1 = require("../../local-dev/fleet-launcher.js");
7
+ const local_context_js_1 = require("../../local-dev/local-context.js");
8
+ const task_authority_js_1 = require("../../local-dev/task-authority.js");
9
+ const task_identity_js_1 = require("../../local-dev/task-identity.js");
10
+ const federated_credential_transport_js_1 = require("../local-deploy/federated-credential-transport.js");
11
+ const run_sst_command_js_1 = require("../sst-lifecycle/run-sst-command.js");
12
+ const task_stack_absence_js_1 = require("./task-stack-absence.js");
13
+ async function preflightTaskRemove(options, context, environment) {
14
+ const invocation = (0, run_sst_command_js_1.buildSstCommandInvocation)('remove', options, context, environment);
15
+ await (0, run_sst_command_js_1.runSstLifecyclePreflights)('remove', options, context, invocation, {}, environment);
16
+ return invocation.cwd;
17
+ }
18
+ /** Internal generated cleanup target: never accepts a caller-selected task. */
19
+ async function runDevTaskCleanup(options, context, dependencies = {}) {
20
+ let transport;
21
+ let success = false;
22
+ let alreadyAbsent = false;
23
+ try {
24
+ if (!options ||
25
+ typeof options !== 'object' ||
26
+ Array.isArray(options) ||
27
+ Reflect.ownKeys(options).length !== 0) {
28
+ throw new Error('Task cleanup accepts no caller options, stage, task, or AWS profile overrides.');
29
+ }
30
+ const environment = dependencies.environment ?? process.env;
31
+ if (environment.GITHUB_ACTIONS === 'true') {
32
+ throw new Error('Task cleanup is available only in the owning local worktree, not GitHub Actions.');
33
+ }
34
+ const projectName = context.projectName;
35
+ const project = projectName
36
+ ? context.projectsConfigurations?.projects[projectName]
37
+ : undefined;
38
+ if (!projectName ||
39
+ !project?.tags?.includes('type:slice') ||
40
+ project.tags.includes('scope:foundation')) {
41
+ throw new Error('Task cleanup requires one Product Slice, never a Foundation.');
42
+ }
43
+ const task = (0, task_identity_js_1.resolveTaskIdentity)(context.root);
44
+ const saved = (0, local_context_js_1.readSavedLocalDevContext)((0, fleet_launcher_js_1.resolveGitCommonDirectory)(context.root));
45
+ if (saved.kind !== 'ready') {
46
+ throw new Error('Task cleanup requires a valid saved local development AWS context. Run ebk dev configure.');
47
+ }
48
+ const verified = await (0, task_authority_js_1.verifyTaskEnvironment)(context.root, saved.resolution.context, dependencies.authority);
49
+ (0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
50
+ const region = verified.region;
51
+ const expectedRoleArn = (0, index_js_1.createStageAuthorityIdentity)({
52
+ accountId: verified.accountId,
53
+ partition: region.startsWith('cn-')
54
+ ? 'aws-cn'
55
+ : region.startsWith('us-gov-')
56
+ ? 'aws-us-gov'
57
+ : 'aws',
58
+ region,
59
+ stage: 'development',
60
+ }).deploymentRoleArn;
61
+ transport = await (dependencies.createTransport ?? federated_credential_transport_js_1.createLocalFederatedCredentialTransport)({
62
+ account: verified.accountId,
63
+ expectedRoleArn,
64
+ profile: saved.resolution.context.profile,
65
+ region,
66
+ });
67
+ await transport.refresh();
68
+ // Recheck ownership after asynchronous authority acquisition, before mutation.
69
+ (0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
70
+ if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId) {
71
+ throw new Error('Task ownership changed during cleanup authorization.');
72
+ }
73
+ const nativeOptions = {
74
+ expectedRoleArn,
75
+ foundationStage: 'development',
76
+ profile: transport.profile,
77
+ region,
78
+ stage: (0, task_identity_js_1.taskStage)(task.taskId),
79
+ stageMode: 'consumer',
80
+ };
81
+ const childEnvironment = {
82
+ ...transport.childEnvironment(environment),
83
+ AWS_EXPECTED_ACCOUNT_ID: verified.accountId,
84
+ AWS_REGION: region,
85
+ EBK_NX_TASK_CLEANUP: task.taskId,
86
+ };
87
+ // An absence result must pass the same role/project/task/ownership gates
88
+ // as removal. Present state still goes through the unchanged native runner.
89
+ const projectRoot = await (dependencies.preflight ?? preflightTaskRemove)(nativeOptions, context, childEnvironment);
90
+ const metadata = await (dependencies.inspectStack ?? task_stack_absence_js_1.inspectNeverCreatedTaskStack)({
91
+ workspaceRoot: context.root,
92
+ projectRoot,
93
+ projectName,
94
+ taskId: task.taskId,
95
+ verifiedEnvironment: verified,
96
+ awsEnvironment: childEnvironment,
97
+ });
98
+ (0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
99
+ if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId)
100
+ throw new Error('Task ownership changed during cleanup inspection.');
101
+ if (metadata.status === 'already-absent') {
102
+ alreadyAbsent = true;
103
+ success = true;
104
+ devkit_1.logger.info('Task cloud stack is already absent (verified native metadata; no SST removal executed).');
105
+ }
106
+ else {
107
+ const removed = (await (dependencies.run ?? run_sst_command_js_1.runSstCommand)('remove', nativeOptions, context, { environment: childEnvironment })).success;
108
+ if (removed) {
109
+ await (dependencies.verifyStack ?? task_stack_absence_js_1.verifyRemovedTaskStack)({
110
+ workspaceRoot: context.root,
111
+ projectRoot,
112
+ projectName,
113
+ taskId: task.taskId,
114
+ verifiedEnvironment: verified,
115
+ awsEnvironment: childEnvironment,
116
+ });
117
+ (0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
118
+ if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId)
119
+ throw new Error('Task ownership changed during cleanup verification.');
120
+ }
121
+ success = removed;
122
+ }
123
+ }
124
+ catch (error) {
125
+ devkit_1.logger.error(`Task cloud cleanup failed: ${error instanceof Error ? error.message : String(error)}`);
126
+ }
127
+ finally {
128
+ try {
129
+ transport?.cleanup();
130
+ }
131
+ catch (error) {
132
+ success = false;
133
+ devkit_1.logger.error(`Task cleanup credential removal failed: ${error instanceof Error ? error.message : String(error)}`);
134
+ }
135
+ }
136
+ return {
137
+ success,
138
+ ...(success && alreadyAbsent
139
+ ? { taskStack: 'already-absent' }
140
+ : {}),
141
+ };
142
+ }
143
+ const executor = (options, context) => runDevTaskCleanup(options, context);
144
+ exports.default = executor;
145
+ //# sourceMappingURL=dev-task-cleanup.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "version": 2,
4
+ "title": "Empire Builder Kit internal task cloud cleanup",
5
+ "description": "Remove only this worktree's owned task Slice stack through verified development authority.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {}
9
+ }