@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
@@ -3,35 +3,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeveloperAgentUpgradePreviewBindingError = void 0;
4
4
  exports.developerAgentUpgradeExecutionOptions = developerAgentUpgradeExecutionOptions;
5
5
  exports.preserveCompositionRegions = preserveCompositionRegions;
6
+ exports.reemitRecordedNativeRuntimeCompositions = reemitRecordedNativeRuntimeCompositions;
6
7
  exports.inspectWorkspaceSstVersion = inspectWorkspaceSstVersion;
7
8
  exports.createUpgradeReport = createUpgradeReport;
9
+ exports.upgradeFoundationForRequirements = upgradeFoundationForRequirements;
8
10
  exports.upgradeGenerator = upgradeGenerator;
9
11
  const deterministic_order_js_1 = require("../../deterministic-order.js");
12
+ const capacity_migration_js_1 = require("../../repository-policy/capacity-migration.js");
13
+ const dependency_overrides_js_1 = require("../preset/dependency-overrides.js");
14
+ const workspace_files_adopter_skills_js_1 = require("../preset/workspace-files-adopter-skills.js");
15
+ const sql_seeded_reconciliation_js_1 = require("./sql-seeded-reconciliation.js");
10
16
  const devkit_1 = require("@nx/devkit");
11
17
  const node_buffer_1 = require("node:buffer");
12
18
  const node_crypto_1 = require("node:crypto");
13
19
  const node_fs_1 = require("node:fs");
14
20
  const node_path_1 = require("node:path");
15
21
  const node_util_1 = require("node:util");
16
- const prettier_1 = require("prettier");
17
22
  const yaml_1 = require("yaml");
18
23
  const index_js_1 = require("../../blueprints/index.js");
19
24
  const index_js_2 = require("../../api-contract/index.js");
20
25
  const index_js_3 = require("../../foundation/index.js");
26
+ const capability_plan_js_1 = require("../../foundation/capability-plan.js");
27
+ const persistence_contract_js_1 = require("../slice/persistence-contract.js");
21
28
  const index_js_4 = require("../../ownership/index.js");
22
29
  const function_js_1 = require("../function/function.js");
30
+ const logging_registry_js_1 = require("../logging-registry.js");
23
31
  const feature_registry_js_1 = require("../feature-registry.js");
24
32
  const generator_js_1 = require("../preset/generator.js");
25
33
  const tool_versions_js_1 = require("../preset/tool-versions.js");
26
34
  const workspace_files_js_1 = require("../preset/workspace-files.js");
27
35
  const built_in_plan_js_1 = require("../slice/built-in-plan.js");
36
+ const data_policy_review_seed_js_1 = require("../slice/data-policy-review-seed.js");
28
37
  const workload_js_1 = require("../workload/workload.js");
38
+ const formatting_js_1 = require("../formatting.js");
29
39
  const git_inspection_js_1 = require("../../developer-agent/git-inspection.js");
30
40
  const context_js_1 = require("../../developer-agent/context.js");
31
41
  const model_js_1 = require("../../developer-agent/model.js");
32
42
  const preview_source_js_1 = require("../../developer-agent/preview-source.js");
33
43
  const preview_changes_js_1 = require("../../developer-agent/preview-changes.js");
34
44
  const validation_js_1 = require("../../developer-agent/validation.js");
45
+ const tree_policy_js_1 = require("../repository-policy/tree-policy.js");
46
+ function readRepositoryDeploymentRenderingOptions(tree) {
47
+ const policy = (0, tree_policy_js_1.readRepositoryOperatingPolicyFromTree)(tree);
48
+ return {
49
+ ...(policy.deliveryLane ? { deliveryLane: policy.deliveryLane } : {}),
50
+ deploymentAccounts: policy.deploymentAccounts,
51
+ deploymentProfile: policy.deploymentProfile,
52
+ deploymentRegion: policy.deploymentRegion,
53
+ productionApprovalMode: policy.productionApproval.mode,
54
+ workspaceDeploymentId: policy.workspaceDeploymentId,
55
+ };
56
+ }
35
57
  function requireTargetCompositionFeatures(files, ownership) {
36
58
  if (ownership.compositions.length === 0)
37
59
  return;
@@ -327,8 +349,11 @@ const SEEDED_RECONCILIATION = {
327
349
  category: 'reliability-operations',
328
350
  implications: [
329
351
  'alarm-registration',
352
+ 'database-capacity-dynamodb-table-and-pending-events-throttle-metrics',
330
353
  'diagnostic-authority',
354
+ 'event-delivery-alarms-and-hourly-outbox-backlog-period',
331
355
  'incident-remediation',
356
+ 'performance-load-cleanup-backlog-two-evaluation-periods',
332
357
  ],
333
358
  },
334
359
  'operations/release.json': {
@@ -355,9 +380,29 @@ const SEEDED_RECONCILIATION = {
355
380
  'journey-authority',
356
381
  ],
357
382
  },
383
+ 'secrets/declarations.ts': {
384
+ category: 'secret-contract',
385
+ implications: [
386
+ 'generation-authority',
387
+ 'secret-value-ownership',
388
+ 'stage-requirements',
389
+ ],
390
+ },
391
+ 'secrets/metadata.json': {
392
+ category: 'secret-contract',
393
+ implications: ['logical-identity', 'management-class', 'registry-schema'],
394
+ },
395
+ 'secrets/workload-access.json': {
396
+ category: 'secret-contract',
397
+ implications: [
398
+ 'logical-identity',
399
+ 'runtime-secret-linkage',
400
+ 'workload-iam',
401
+ ],
402
+ },
358
403
  };
359
404
  const SEEDED_RECONCILIATION_MARKER_REFERENCE = 'PLAN:5.6/seeded-upgrade-reconciliation';
360
- const SEEDED_RECONCILIATION_MARKER = '// EBK-TODO(PLAN:5.6/seeded-upgrade-reconciliation): Review retained seeded async, configuration, feature, frontend, performance, reliability, and release decisions against this framework upgrade before protected promotion.';
405
+ const SEEDED_RECONCILIATION_MARKER = '// EBK-TODO(PLAN:5.6/seeded-upgrade-reconciliation): Review retained seeded async, configuration, feature, frontend, performance, reliability, release, and secret decisions against this framework upgrade before protected promotion.';
361
406
  const SEEDED_RECONCILIATION_MARKER_ANCHOR = 'async/recovery-adapters.ts';
362
407
  const DEVELOPER_AGENT_AGENTS_HEADING = '## Developer-Agent workflow';
363
408
  function developerAgentAgentsAppendix(renderedAgents) {
@@ -372,11 +417,18 @@ function developerAgentAgentsAppendix(renderedAgents) {
372
417
  return renderedAgents.slice(start + 1);
373
418
  }
374
419
  function planDeveloperAgentInstructionAppend(currentAgents, targetAgents) {
375
- if (currentAgents === null ||
376
- new RegExp(`(?:^|\\r?\\n)${DEVELOPER_AGENT_AGENTS_HEADING}(?:\\r?\\n|$)`).test(currentAgents)) {
420
+ if (currentAgents === null)
377
421
  return null;
422
+ const additions = [];
423
+ if (!/(?:^|\r?\n)## Bundled adopter skills(?:\r?\n|$)/u.test(currentAgents)) {
424
+ additions.push((0, workspace_files_adopter_skills_js_1.renderAdopterSkillIndex)());
425
+ }
426
+ if (!new RegExp(`(?:^|\\r?\\n)${DEVELOPER_AGENT_AGENTS_HEADING}(?:\\r?\\n|$)`).test(currentAgents)) {
427
+ additions.push(developerAgentAgentsAppendix(targetAgents));
378
428
  }
379
- const appendix = developerAgentAgentsAppendix(targetAgents);
429
+ if (additions.length === 0)
430
+ return null;
431
+ const appendix = additions.join('\n');
380
432
  const separator = currentAgents.length === 0
381
433
  ? ''
382
434
  : currentAgents.endsWith('\n\n')
@@ -431,8 +483,8 @@ const COMPOSITION_REGIONS = [
431
483
  'workload-registrations',
432
484
  'function-registrations',
433
485
  'composition-outputs',
434
- 'workload-role-extensions',
435
- 'workload-role-intent-contributions',
486
+ 'native-runtime-extensions',
487
+ 'native-runtime-intent-contributions',
436
488
  ];
437
489
  function preserveCompositionRegions(current, target) {
438
490
  let merged = target;
@@ -457,9 +509,181 @@ function preserveCompositionRegions(current, target) {
457
509
  }
458
510
  return merged;
459
511
  }
512
+ function countExact(source, value) {
513
+ return source.split(value).length - 1;
514
+ }
515
+ function escapeRegularExpression(value) {
516
+ return value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
517
+ }
518
+ function quotedLiteral(value, group) {
519
+ return `(['"])${escapeRegularExpression(value)}\\${group}`;
520
+ }
521
+ const NATIVE_RUNTIME_COMPOSITION_REGIONS = [
522
+ {
523
+ isPresent: (body, { kind, name }) => new RegExp(`\\{\\s*id:\\s*${quotedLiteral(name, 1)}\\s*,\\s*kind:\\s*${quotedLiteral(kind, 2)}\\s*,?\\s*\\}`, 'u').test(body),
524
+ path: 'infra/native-runtime-authority/topology.ts',
525
+ region: 'native-runtime-extensions',
526
+ render: ({ kind, name }) => ` { id: '${name}', kind: '${kind}' },`,
527
+ },
528
+ {
529
+ isPresent: (body, { kind, name }) => new RegExp(`extensionWorkloadRoleIntentContributions\\(\\s*context\\s*,\\s*topology\\s*,\\s*${quotedLiteral(name, 1)}\\s*,\\s*${quotedLiteral(kind, 2)}\\s*,?\\s*\\)`, 'u').test(body),
530
+ path: 'infra/native-runtime-authority/effective-intent.ts',
531
+ region: 'native-runtime-intent-contributions',
532
+ render: ({ kind, name }) => ` ...extensionWorkloadRoleIntentContributions(\n context,\n topology,\n '${name}',\n '${kind}',\n ),`,
533
+ },
534
+ ];
535
+ /**
536
+ * Re-emits every recorded composition into the managed native runtime
537
+ * authority regions of a regenerated Product Slice. Region preservation only
538
+ * carries a body when the current file exposes the same-named markers, so a
539
+ * Slice whose compositions predate the native-runtime-authority region names
540
+ * (or whose regions were emptied by an earlier managed upgrade) would
541
+ * otherwise lose the recorded workload authority. The recorded compositions in
542
+ * `.ebk/ownership.json` are the source of truth; compositions already present
543
+ * in a region are left untouched so a second apply is byte-stable.
544
+ * (EBK-INT-2026-070)
545
+ */
546
+ function reemitRecordedNativeRuntimeCompositions(files, ownership) {
547
+ if (ownership.compositions.length === 0)
548
+ return files;
549
+ let result = files;
550
+ for (const target of NATIVE_RUNTIME_COMPOSITION_REGIONS) {
551
+ const source = files[target.path];
552
+ if (source === undefined) {
553
+ throw new Error(`Target Product Slice does not render ${target.path}.`);
554
+ }
555
+ const start = `// <ebk:${target.region}:start>`;
556
+ const end = `// <ebk:${target.region}:end>`;
557
+ let lines = source.split('\n');
558
+ for (const composition of ownership.compositions) {
559
+ const startIndex = lines.findIndex((line) => line.trim() === start);
560
+ const endIndex = lines.findIndex((line) => line.trim() === end);
561
+ if (startIndex < 0 ||
562
+ endIndex < startIndex ||
563
+ countExact(source, start) !== 1 ||
564
+ countExact(source, end) !== 1) {
565
+ throw new Error(`Target ${target.path} does not expose one exact ${target.region} region to re-emit recorded composition ${composition.kind} ${composition.name}.`);
566
+ }
567
+ const body = lines.slice(startIndex + 1, endIndex).join('\n');
568
+ if (target.isPresent(body, composition))
569
+ continue;
570
+ lines = [
571
+ ...lines.slice(0, endIndex),
572
+ ...target.render(composition).split('\n'),
573
+ ...lines.slice(endIndex),
574
+ ];
575
+ }
576
+ const merged = lines.join('\n');
577
+ if (merged !== source)
578
+ result = { ...result, [target.path]: merged };
579
+ }
580
+ return result;
581
+ }
582
+ function exactIndentedStringCallMatches(source, callee, argument) {
583
+ const pattern = new RegExp(`^ ${escapeRegularExpression(callee)}\\(\\s*(['"])${escapeRegularExpression(argument)}\\1\\s*,?\\s*\\),[ \\t]*$`, 'gmu');
584
+ return [...source.matchAll(pattern)];
585
+ }
586
+ function reconcileFunctionRegistrationArguments(source, ownership) {
587
+ let reconciled = source;
588
+ for (const composition of ownership.compositions) {
589
+ if (composition.kind !== 'function')
590
+ continue;
591
+ const { register } = (0, function_js_1.createFunctionFilePlan)('unused-workspace', ownership.slice, composition.name, composition.feature);
592
+ const registrationStart = ` ${register}(\n`;
593
+ if (countExact(reconciled, registrationStart) !== 1) {
594
+ throw new Error(`Retained Function ${composition.name} registration does not expose one exact Router argument shape.`);
595
+ }
596
+ const start = reconciled.indexOf(registrationStart);
597
+ const registrationEnd = '\n );';
598
+ const end = reconciled.indexOf(registrationEnd, start);
599
+ if (end < 0) {
600
+ throw new Error(`Retained Function ${composition.name} registration does not expose one exact Router argument shape.`);
601
+ }
602
+ let registration = reconciled.slice(start, end + registrationEnd.length);
603
+ if (registration.length > 64 * 1024) {
604
+ throw new Error(`Retained Function ${composition.name} registration exceeds its bounded managed shape.`);
605
+ }
606
+ const previousRouter = `\n api,\n foundation.discovery.alertTopicArn,`;
607
+ const currentRouter = `\n api,\n foundation.router,\n foundation.discovery.alertTopicArn,`;
608
+ const previousRouterCount = countExact(registration, previousRouter);
609
+ const currentRouterCount = countExact(registration, currentRouter);
610
+ if (previousRouterCount === 1 && currentRouterCount === 0) {
611
+ registration = registration.replace(previousRouter, currentRouter);
612
+ }
613
+ else if (!(previousRouterCount === 0 && currentRouterCount === 1)) {
614
+ throw new Error(`Retained Function ${composition.name} registration does not expose one exact Router argument shape.`);
615
+ }
616
+ const previousAuthorityMatches = exactIndentedStringCallMatches(registration, 'workloadRoleBindings?.extension.function', composition.name);
617
+ const currentAuthorityMatches = exactIndentedStringCallMatches(registration, 'nativeAuthority.permissions', `${composition.name}-function`);
618
+ if (previousAuthorityMatches.length === 1 &&
619
+ currentAuthorityMatches.length === 0) {
620
+ const [previousAuthority] = previousAuthorityMatches;
621
+ const authorityIndex = previousAuthority.index;
622
+ if (authorityIndex === undefined) {
623
+ throw new Error(`Retained Function ${composition.name} registration authority is not position-bound.`);
624
+ }
625
+ const currentAuthority = ` nativeAuthority.permissions('${composition.name}-function'),`;
626
+ registration =
627
+ registration.slice(0, authorityIndex) +
628
+ currentAuthority +
629
+ registration.slice(authorityIndex + previousAuthority[0].length);
630
+ }
631
+ else if (!(previousAuthorityMatches.length === 0 &&
632
+ currentAuthorityMatches.length === 1)) {
633
+ throw new Error(`Retained Function ${composition.name} registration does not expose one exact native-authority argument shape.`);
634
+ }
635
+ reconciled =
636
+ reconciled.slice(0, start) +
637
+ registration +
638
+ reconciled.slice(end + registrationEnd.length);
639
+ }
640
+ return reconciled;
641
+ }
460
642
  function json(value) {
461
643
  return `${JSON.stringify(value, null, 2)}\n`;
462
644
  }
645
+ const DERIVED_API_ARTIFACT_PATHS = [
646
+ 'api/generated/contract.json',
647
+ 'api/generated/openapi.json',
648
+ ];
649
+ function preserveBuiltInDerivedApiArtifacts(tree, root, currentOwnership, targetFiles) {
650
+ const sourceEntry = currentOwnership.paths.find(({ path }) => path === 'api/contracts/protected.ts');
651
+ const source = tree.read(node_path_1.posix.join(root, 'api/contracts/protected.ts'), 'utf8');
652
+ if (sourceEntry?.mode !== 'seeded' || source === null)
653
+ return targetFiles;
654
+ const currentEntries = new Map(currentOwnership.paths.map((entry) => [entry.path, entry]));
655
+ const artifacts = DERIVED_API_ARTIFACT_PATHS.map((path) => ({
656
+ current: tree.read(node_path_1.posix.join(root, path), 'utf8'),
657
+ entry: currentEntries.get(path),
658
+ path,
659
+ }));
660
+ const missing = artifacts
661
+ .filter(({ current }) => current === null)
662
+ .map(({ path }) => path);
663
+ if (missing.length > 0) {
664
+ throw new Error(`Built-in Product Slice ${currentOwnership.slice} is missing derived managed API artifacts:\n${missing.map((path) => `- ${path}`).join('\n')}\nRun pnpm nx run ${currentOwnership.slice}:api-contract-generate before upgrading.`);
665
+ }
666
+ const completeCleanPair = artifacts.every(({ current, entry }) => current !== null &&
667
+ entry?.mode === 'managed' &&
668
+ entry.origin === 'blueprint' &&
669
+ entry.managedJsonPointers === undefined &&
670
+ (0, index_js_4.hashOwnedContent)(current, entry) === entry.sha256);
671
+ if (!completeCleanPair)
672
+ return targetFiles;
673
+ const retained = { ...targetFiles };
674
+ for (const { current, path } of artifacts) {
675
+ if (current === null) {
676
+ throw new Error(`Derived managed API artifact disappeared: ${path}.`);
677
+ }
678
+ // The built-in API artifacts are derived from the seeded TypeScript
679
+ // contract. An upgrade preserves that adopter-owned source, so rendering
680
+ // fresh artifacts from the uncustomized Blueprint would make the managed
681
+ // output disagree with its authority. The explicit api-contract-generate
682
+ // target remains the only operation that recompiles and restamps them.
683
+ retained[path] = current;
684
+ }
685
+ return retained;
686
+ }
463
687
  function upgradeConflictMessage(label, report) {
464
688
  const ownershipDetails = [
465
689
  ...report.conflictingJsonMembers.map((member) => `- conflicting JSON ownership claim: ${member}`),
@@ -470,26 +694,19 @@ function upgradeConflictMessage(label, report) {
470
694
  function seededMigrationUpgradeMessage(label, report) {
471
695
  return `${label} upgrade cannot rewrite an existing seeded database migration:\n${report.incompatibleSeededMigrations.map((path) => `- ${path}`).join('\n')}\nRegenerate this prerelease workspace instead. Stable-v1 upgrades must add a new migration rather than rewrite migration history.`;
472
696
  }
473
- async function formatRenderedFiles(files, prefix = '') {
474
- const canonicalApiArtifacts = new Set([
475
- 'api/generated/baseline.json',
476
- 'api/generated/contract.json',
477
- 'api/generated/openapi.json',
478
- ]);
697
+ async function formatRenderedFiles(tree, files, prefix = '') {
698
+ const changedOptions = (0, formatting_js_1.changedTreePrettierOptions)(tree);
479
699
  return Object.fromEntries(await Promise.all(Object.entries(files).map(async ([path, contents]) => {
480
700
  const workspacePath = node_path_1.posix.join(prefix, path);
481
- if (canonicalApiArtifacts.has(path) ||
482
- (0, workspace_files_js_1.isRawWorkspaceAuthorityPath)(workspacePath) ||
483
- path.startsWith('database/migrations/')) {
701
+ if ((0, built_in_plan_js_1.isBuiltInSliceFormatSensitivePath)(path) ||
702
+ (0, workspace_files_js_1.isRawWorkspaceAuthorityPath)(workspacePath)) {
484
703
  return [path, contents];
485
704
  }
486
705
  try {
706
+ const options = await (0, formatting_js_1.effectiveTreePrettierOptions)(tree, workspacePath, changedOptions);
487
707
  return [
488
708
  path,
489
- await (0, prettier_1.format)(contents, {
490
- filepath: workspacePath,
491
- singleQuote: true,
492
- }),
709
+ await (0, formatting_js_1.formatTreeContentsToFixedPoint)(contents, options, workspacePath),
493
710
  ];
494
711
  }
495
712
  catch {
@@ -497,6 +714,12 @@ async function formatRenderedFiles(files, prefix = '') {
497
714
  }
498
715
  })));
499
716
  }
717
+ async function formatOwnershipRecord(tree, path, label) {
718
+ if (!tree.exists(path)) {
719
+ throw new Error(`${label} ownership metadata is missing at ${path}.`);
720
+ }
721
+ await (0, formatting_js_1.formatTreeFileToFixedPoint)(tree, path);
722
+ }
500
723
  function readJson(tree, path, label) {
501
724
  const contents = tree.read(path, 'utf8');
502
725
  if (contents === null)
@@ -821,6 +1044,10 @@ function mergeStructuredTargetFiles(currentFiles, currentOwnership, targetFiles,
821
1044
  const target = files.get(targetEntry.path);
822
1045
  if (current === null || target === undefined)
823
1046
  continue;
1047
+ if (targetEntry.mode === 'seeded') {
1048
+ files.set(targetEntry.path, current);
1049
+ continue;
1050
+ }
824
1051
  if (currentEntry?.managedJsonPointers && !targetEntry.managedJsonPointers) {
825
1052
  if (targetEntry.mode === 'managed') {
826
1053
  changes.expandedJsonOwnership.push(targetEntry.path);
@@ -846,6 +1073,22 @@ function mergeStructuredTargetFiles(currentFiles, currentOwnership, targetFiles,
846
1073
  }
847
1074
  return { files, ...changes };
848
1075
  }
1076
+ async function formatMergedManagedJsonFiles(tree, root, merge, ownership) {
1077
+ const files = new Map(merge.files);
1078
+ const changedOptions = (0, formatting_js_1.changedTreePrettierOptions)(tree);
1079
+ await Promise.all(ownership.paths.map(async (entry) => {
1080
+ if (entry.mode !== 'managed' || !entry.managedJsonPointers)
1081
+ return;
1082
+ const contents = files.get(entry.path);
1083
+ if (contents === undefined) {
1084
+ throw new Error(`Target did not render managed JSON ${entry.path}.`);
1085
+ }
1086
+ const workspacePath = node_path_1.posix.join(root, entry.path);
1087
+ const options = await (0, formatting_js_1.effectiveTreePrettierOptions)(tree, workspacePath, changedOptions);
1088
+ files.set(entry.path, await (0, formatting_js_1.formatTreeContentsToFixedPoint)(contents, options, workspacePath));
1089
+ }));
1090
+ return { ...merge, files };
1091
+ }
849
1092
  function renderCompositionUpgradePlan(ownership, workspace, runtimeVersion, serviceAdapterOwner) {
850
1093
  const compositionPaths = ownership.paths.filter(({ origin }) => origin === 'composition');
851
1094
  const files = {};
@@ -926,10 +1169,15 @@ function retainedServiceAdapterOwner(tree, root, ownership) {
926
1169
  const serviceScenario = serviceScenarios[0];
927
1170
  const secretAccess = readJson(tree, node_path_1.posix.join(root, 'secrets/workload-access.json'), 'Product Slice secret workload access registry');
928
1171
  const bindings = record(secretAccess) ? secretAccess['bindings'] : undefined;
929
- const logicalName = `${ownership.slice
1172
+ const logicalName = 'GeneratedPerformanceLoadHmacKeys';
1173
+ const prereleaseLogicalName = `${ownership.slice
930
1174
  .split('-')
931
1175
  .map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)
932
1176
  .join('')}PerformanceLoadHmacKeys`;
1177
+ if (Array.isArray(bindings) &&
1178
+ bindings.some((binding) => record(binding) && binding['logicalName'] === prereleaseLogicalName)) {
1179
+ throw new Error(`Product Slice ${ownership.slice} still uses the prerelease operator HMAC declaration ${prereleaseLogicalName}. Regenerate the prerelease Slice or reconcile secrets/declarations.ts, secrets/metadata.json, and secrets/workload-access.json to GeneratedPerformanceLoadHmacKeys under a reviewed adoption ledger entry before rerunning the upgrade; no automatic prerelease migration is provided.`);
1180
+ }
933
1181
  const protectedLoadBindings = Array.isArray(bindings)
934
1182
  ? bindings.filter((binding) => record(binding) &&
935
1183
  binding['logicalName'] === logicalName &&
@@ -998,7 +1246,7 @@ function carryRetainedServiceAdapterAuthority(targetFiles, owner) {
998
1246
  'managed-generated-service-runtime-endpoint';
999
1247
  return { ...targetFiles, [path]: json(target) };
1000
1248
  }
1001
- async function upgradeFoundation(tree, options, packageJson, output) {
1249
+ async function upgradeFoundation(tree, options, packageJson, output, foundationRequirements = []) {
1002
1250
  if (options.blueprint !== undefined || options.inputs !== undefined) {
1003
1251
  throw new Error('Standard Foundation upgrades do not accept Blueprint or input options.');
1004
1252
  }
@@ -1011,13 +1259,17 @@ async function upgradeFoundation(tree, options, packageJson, output) {
1011
1259
  throw new Error('Workspace package.json must declare a name.');
1012
1260
  }
1013
1261
  const currentOwnership = ownershipResult.value;
1262
+ const deployment = readRepositoryDeploymentRenderingOptions(tree);
1014
1263
  const renderedTarget = (0, workspace_files_js_1.renderFoundationFilePlan)({
1264
+ ...deployment,
1265
+ foundationRequirements,
1266
+ foundationDescriptor: readJson(tree, node_path_1.posix.join(root, 'contracts/foundation.json'), 'Existing Foundation resource declaration'),
1015
1267
  frameworkVersion: (0, generator_js_1.frameworkPackageVersion)(),
1016
1268
  name: packageJson.name,
1017
1269
  });
1018
1270
  const target = {
1019
1271
  ...renderedTarget,
1020
- files: await formatRenderedFiles(renderedTarget.files, root),
1272
+ files: await formatRenderedFiles(tree, renderedTarget.files, root),
1021
1273
  };
1022
1274
  const targetValidation = (0, index_js_4.validateFoundationOwnershipRecord)(target.ownership);
1023
1275
  if (!targetValidation.valid) {
@@ -1033,7 +1285,8 @@ async function upgradeFoundation(tree, options, packageJson, output) {
1033
1285
  path,
1034
1286
  tree.read(node_path_1.posix.join(root, path), 'utf8'),
1035
1287
  ]));
1036
- const mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(target.files)), target.ownership);
1288
+ let mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(target.files)), target.ownership);
1289
+ mergedTarget = await formatMergedManagedJsonFiles(tree, root, mergedTarget, target.ownership);
1037
1290
  const report = createUpgradeReport(currentFiles, currentOwnership, mergedTarget.files, target.ownership, mergedTarget);
1038
1291
  output.info(`[ebk-upgrade] foundation ${currentOwnership.frameworkVersion} -> ${target.ownership.frameworkVersion}\n${JSON.stringify(report, null, 2)}`);
1039
1292
  if (!options.apply)
@@ -1059,9 +1312,28 @@ async function upgradeFoundation(tree, options, packageJson, output) {
1059
1312
  }
1060
1313
  tree.write(node_path_1.posix.join(root, path), contents);
1061
1314
  }
1062
- if (!options.skipFormat)
1063
- await (0, devkit_1.formatFiles)(tree);
1064
1315
  (0, index_js_4.restampFoundationOwnership)(tree);
1316
+ // Ownership bytes are part of the upgrade result, including agent previews
1317
+ // that skip workspace formatting. Canonicalize before binding those bytes.
1318
+ await formatOwnershipRecord(tree, node_path_1.posix.join(root, '.ebk/ownership.json'), 'Standard Foundation');
1319
+ }
1320
+ /** Internal paired-generation path: the ordinary ownership-preserving upgrader owns Foundation writes. */
1321
+ async function upgradeFoundationForRequirements(tree, requirements, apply, output = devkit_1.logger) {
1322
+ requireUpgradePrerequisites(tree, 'product-slice');
1323
+ const capabilityPlan = (0, capability_plan_js_1.planFoundationCapabilities)({
1324
+ current: readJson(tree, 'packages/foundation/contracts/foundation.json', 'Standard Foundation descriptor'),
1325
+ requirements,
1326
+ });
1327
+ if (capabilityPlan.migratedFromContract !== null)
1328
+ throw new Error('Paired generation cannot migrate a prerelease Foundation contract. Report and apply the explicit Foundation upgrade first; no files changed.');
1329
+ // A Slice generator is not an implicit Foundation version/formatting upgrade.
1330
+ if (capabilityPlan.added.length === 0)
1331
+ return;
1332
+ const policy = (0, tree_policy_js_1.readRepositoryOperatingPolicyFromTree)(tree);
1333
+ if (tree.exists('packages/foundation/contracts/costs.json'))
1334
+ (0, capacity_migration_js_1.assertCapacityMigrationChoice)(policy.productionFoundation.profile, readJson(tree, 'packages/foundation/contracts/costs.json', 'Foundation cost contract'));
1335
+ const packageJson = readJson(tree, 'package.json', 'Workspace package.json');
1336
+ await upgradeFoundation(tree, { name: 'foundation', apply, skipFormat: true, skipInstall: true }, packageJson, output, requirements);
1065
1337
  }
1066
1338
  async function upgradeWorkspace(tree, options, packageJson, output) {
1067
1339
  if (options.blueprint !== undefined || options.inputs !== undefined) {
@@ -1076,13 +1348,18 @@ async function upgradeWorkspace(tree, options, packageJson, output) {
1076
1348
  }
1077
1349
  const sstVersionState = inspectWorkspaceSstVersion(tree, packageJson);
1078
1350
  const currentOwnership = ownershipResult.value;
1351
+ const deployment = readRepositoryDeploymentRenderingOptions(tree);
1079
1352
  const renderedTarget = (0, workspace_files_js_1.renderWorkspaceRootFilePlan)({
1353
+ ...deployment,
1354
+ dependencyOverrides: tree.exists(dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH)
1355
+ ? readJson(tree, dependency_overrides_js_1.DEPENDENCY_OVERRIDES_PATH, 'Dependency overrides')
1356
+ : undefined,
1080
1357
  frameworkVersion: (0, generator_js_1.frameworkPackageVersion)(),
1081
1358
  name: packageJson.name,
1082
1359
  });
1083
1360
  const target = {
1084
1361
  ...renderedTarget,
1085
- files: await formatRenderedFiles(renderedTarget.files),
1362
+ files: await formatRenderedFiles(tree, renderedTarget.files),
1086
1363
  };
1087
1364
  const targetValidation = (0, index_js_4.validateWorkspaceOwnershipRecord)(target.ownership);
1088
1365
  if (!targetValidation.valid) {
@@ -1093,7 +1370,8 @@ async function upgradeWorkspace(tree, options, packageJson, output) {
1093
1370
  ...target.ownership.paths.map(({ path }) => path),
1094
1371
  ]);
1095
1372
  const currentFiles = new Map([...allPaths].map((path) => [path, tree.read(path, 'utf8')]));
1096
- const mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(target.files)), target.ownership);
1373
+ let mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(target.files)), target.ownership);
1374
+ mergedTarget = await formatMergedManagedJsonFiles(tree, '', mergedTarget, target.ownership);
1097
1375
  const developerAgentInstructionAppend = planDeveloperAgentInstructionAppend(currentFiles.get('AGENTS.md') ?? null, target.files['AGENTS.md']);
1098
1376
  if (developerAgentInstructionAppend !== null) {
1099
1377
  mergedTarget.files.set(developerAgentInstructionAppend.path, developerAgentInstructionAppend.contents);
@@ -1136,26 +1414,50 @@ async function upgradeWorkspace(tree, options, packageJson, output) {
1136
1414
  }
1137
1415
  tree.write(path, contents);
1138
1416
  }
1139
- if (!options.skipFormat) {
1140
- await (0, devkit_1.formatFiles)(tree);
1141
- for (const [path, contents] of Object.entries(target.files)) {
1142
- if ((0, workspace_files_js_1.isRawWorkspaceAuthorityPath)(path))
1143
- tree.write(path, contents);
1144
- }
1145
- }
1146
1417
  if (developerAgentInstructionAppend !== null) {
1147
1418
  tree.write(developerAgentInstructionAppend.path, developerAgentInstructionAppend.contents);
1148
1419
  }
1149
1420
  (0, index_js_4.restampWorkspaceOwnership)(tree);
1421
+ await formatOwnershipRecord(tree, '.ebk/ownership.json', 'Workspace');
1150
1422
  }
1151
1423
  async function executeUpgradeGenerator(tree, options, output = devkit_1.logger, executionOptions = {}) {
1152
1424
  const name = requireName(options.name);
1425
+ // The policy is seeded: never reinterpret an existing warm production choice
1426
+ // as permission to pause it. The operator must make the rename explicitly.
1427
+ const costsPath = 'packages/foundation/contracts/costs.json';
1428
+ if (tree.exists(costsPath)) {
1429
+ (0, capacity_migration_js_1.assertCapacityMigrationChoice)((0, tree_policy_js_1.readRepositoryOperatingPolicyFromTree)(tree).productionFoundation.profile, readJson(tree, costsPath, 'Foundation cost contract'));
1430
+ }
1153
1431
  const packageJson = readJson(tree, 'package.json', 'Workspace package.json');
1154
1432
  if (name === 'workspace') {
1155
1433
  return upgradeWorkspace(tree, options, packageJson, output);
1156
1434
  }
1157
1435
  if (name === 'foundation') {
1158
1436
  requireUpgradePrerequisites(tree, 'foundation');
1437
+ // Refuse an unsupported core transition before changing shared contracts.
1438
+ // This is a preflight, not a prerelease migration or compatibility layer.
1439
+ for (const slice of tree.children('packages')) {
1440
+ const root = node_path_1.posix.join('packages', slice);
1441
+ const path = node_path_1.posix.join(root, '.ebk/ownership.json');
1442
+ if (slice === 'foundation' || !tree.exists(path))
1443
+ continue;
1444
+ const recorded = readJson(tree, path, 'Product Slice ownership metadata');
1445
+ if (recorded?.blueprint
1446
+ ?.name !== index_js_1.BUILTIN_BLUEPRINT_NAME)
1447
+ continue;
1448
+ const parsed = (0, index_js_4.validateGeneratedOwnershipRecord)(recorded);
1449
+ if (!parsed.valid)
1450
+ throw new Error(ownershipValidationMessage('Product Slice ownership metadata', parsed.issues));
1451
+ (0, persistence_contract_js_1.standardPersistenceContract)({
1452
+ inputs: parsed.value.inputs,
1453
+ existingStandardRequirement: parsed.value.foundation,
1454
+ ...(tree.exists(node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH))
1455
+ ? {
1456
+ current: readJson(tree, node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH), 'Standard persistence declaration'),
1457
+ }
1458
+ : {}),
1459
+ });
1460
+ }
1159
1461
  return upgradeFoundation(tree, options, packageJson, output);
1160
1462
  }
1161
1463
  requireUpgradePrerequisites(tree, 'product-slice');
@@ -1184,13 +1486,39 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1184
1486
  if (serviceAdapterOwner !== null && blueprint.source !== 'built-in') {
1185
1487
  throw new Error('External Blueprint upgrades cannot retain the managed generated Service adapter authority; remove or explicitly migrate the elected adapter before changing Blueprint authority.');
1186
1488
  }
1187
- const inputResult = (0, index_js_1.validateBlueprintInputs)(blueprint.inputSchema, parseInputs(options.inputs, currentOwnership.inputs));
1489
+ const requestedInputs = parseInputs(options.inputs, currentOwnership.inputs);
1490
+ if (blueprint.source === 'built-in') {
1491
+ // Refuse old framework cores before any paired Foundation/Slice changes.
1492
+ // Keeping the old database safe does not imply supporting its old runtime.
1493
+ (0, persistence_contract_js_1.standardPersistenceContract)({
1494
+ inputs: requestedInputs,
1495
+ existingStandardRequirement: currentOwnership.foundation,
1496
+ ...(tree.exists(node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH))
1497
+ ? {
1498
+ current: readJson(tree, node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH), 'Standard persistence declaration'),
1499
+ }
1500
+ : {}),
1501
+ });
1502
+ if (currentOwnership.foundation.capabilities.includes('postgres') &&
1503
+ !(0, capability_plan_js_1.readStandardSqlDeclaration)(requestedInputs))
1504
+ throw new Error('SQL cannot be retired through an upgrade. Keep the explicit inputs.sql declaration; database retirement requires a separate reviewed operation.');
1505
+ }
1506
+ const inputResult = (0, index_js_1.validateBlueprintInputs)(blueprint.inputSchema, requestedInputs);
1188
1507
  if (!inputResult.valid) {
1189
1508
  throw new Error(`Blueprint inputs are invalid:\n${inputResult.issues
1190
1509
  .map((issue) => `- ${issue.path}: ${issue.message}`)
1191
1510
  .join('\n')}`);
1192
1511
  }
1193
- const compatibility = (0, index_js_3.validateFoundationCompatibility)(blueprint.manifest.foundation, readJson(tree, 'packages/foundation/contracts/foundation.json', 'Standard Foundation descriptor'));
1512
+ const requiredFoundation = blueprint.source === 'built-in'
1513
+ ? (0, capability_plan_js_1.standardPersistenceRequirement)(inputResult.value, currentOwnership.compositions)
1514
+ : blueprint.manifest.foundation;
1515
+ const existingFoundation = readJson(tree, 'packages/foundation/contracts/foundation.json', 'Standard Foundation descriptor');
1516
+ const compatibility = (0, index_js_3.validateFoundationCompatibility)(requiredFoundation, blueprint.source === 'built-in'
1517
+ ? (0, capability_plan_js_1.planFoundationCapabilities)({
1518
+ current: existingFoundation,
1519
+ requirements: [requiredFoundation],
1520
+ }).descriptor
1521
+ : existingFoundation);
1194
1522
  if (!compatibility.valid) {
1195
1523
  throw new Error(`Standard Foundation is incompatible with the target Blueprint:\n${compatibility.issues
1196
1524
  .map((issue) => `- ${issue.path}: ${issue.message}`)
@@ -1204,10 +1532,19 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1204
1532
  let externalBlueprintDestinationPaths;
1205
1533
  const scope = workspaceScope(packageJson);
1206
1534
  if (blueprint.source === 'built-in') {
1535
+ const deployment = readRepositoryDeploymentRenderingOptions(tree);
1207
1536
  const runtimeVersion = packageJson.dependencies?.['@empire-builder-kit/runtime'];
1208
1537
  if (!runtimeVersion)
1209
1538
  throw new Error('Workspace must depend on @empire-builder-kit/runtime.');
1210
- const plan = (0, built_in_plan_js_1.createBuiltInSlicePlan)(name, scope, runtimeVersion, blueprint.manifest, inputResult.value);
1539
+ const plan = (0, built_in_plan_js_1.createBuiltInSlicePlan)(name, scope, runtimeVersion, blueprint.manifest, inputResult.value, (0, data_policy_review_seed_js_1.dataPolicyReviewSeed)(tree, root), deployment.deploymentProfile, {
1540
+ existingStandardRequirement: currentOwnership.foundation,
1541
+ compositions: currentOwnership.compositions,
1542
+ ...(tree.exists(node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH))
1543
+ ? {
1544
+ current: readJson(tree, node_path_1.posix.join(root, persistence_contract_js_1.STANDARD_PERSISTENCE_PATH), 'Standard persistence declaration'),
1545
+ }
1546
+ : {}),
1547
+ });
1211
1548
  targetFiles = Object.fromEntries(Object.entries(plan.files).map(([path, contents]) => {
1212
1549
  const current = tree.read(node_path_1.posix.join(root, path), 'utf8');
1213
1550
  return [
@@ -1217,6 +1554,7 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1217
1554
  : preserveCompositionRegions(current, contents),
1218
1555
  ];
1219
1556
  }));
1557
+ targetFiles = reemitRecordedNativeRuntimeCompositions(targetFiles, currentOwnership);
1220
1558
  targetOwnership = {
1221
1559
  ...plan.ownership,
1222
1560
  contracts: {
@@ -1297,6 +1635,18 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1297
1635
  if (blueprint.source === 'built-in' && serviceAdapterOwner !== null) {
1298
1636
  targetFiles = carryRetainedServiceAdapterAuthority(targetFiles, serviceAdapterOwner);
1299
1637
  }
1638
+ if (blueprint.source === 'built-in') {
1639
+ const productPath = 'infra/product.ts';
1640
+ const productSource = targetFiles[productPath];
1641
+ if (productSource === undefined) {
1642
+ throw new Error('Target Product Slice does not render infra/product.ts.');
1643
+ }
1644
+ targetFiles = {
1645
+ ...targetFiles,
1646
+ [productPath]: reconcileFunctionRegistrationArguments(productSource, currentOwnership),
1647
+ };
1648
+ targetFiles = preserveBuiltInDerivedApiArtifacts(tree, root, currentOwnership, targetFiles);
1649
+ }
1300
1650
  const targetPathSet = new Set(targetOwnership.paths.map(({ path }) => path));
1301
1651
  const compositionPlan = renderCompositionUpgradePlan(currentOwnership, packageJson.name ?? '', packageJson.dependencies?.['@empire-builder-kit/runtime'] ?? '', serviceAdapterOwner);
1302
1652
  const compositionPaths = compositionPlan.paths.filter(({ path }) => !targetPathSet.has(path));
@@ -1314,7 +1664,7 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1314
1664
  }
1315
1665
  targetFiles = { ...targetFiles, [entry.path]: contents };
1316
1666
  }
1317
- targetFiles = await formatRenderedFiles(targetFiles, root);
1667
+ targetFiles = await formatRenderedFiles(tree, targetFiles, root);
1318
1668
  targetOwnership = {
1319
1669
  ...targetOwnership,
1320
1670
  compositions: currentOwnership.compositions,
@@ -1351,24 +1701,56 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1351
1701
  path,
1352
1702
  tree.read(node_path_1.posix.join(root, path), 'utf8'),
1353
1703
  ]));
1354
- const mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(targetFiles)), targetOwnership);
1704
+ let mergedTarget = mergeStructuredTargetFiles(currentFiles, currentOwnership, new Map(Object.entries(targetFiles)), targetOwnership);
1705
+ mergedTarget = await formatMergedManagedJsonFiles(tree, root, mergedTarget, targetOwnership);
1706
+ const sqlAppends = blueprint.source === 'built-in' &&
1707
+ (0, capability_plan_js_1.readStandardSqlDeclaration)(inputResult.value)
1708
+ ? (0, sql_seeded_reconciliation_js_1.planSqlSeededReconciliation)(currentFiles, targetFiles)
1709
+ : new Map();
1710
+ for (const [path, contents] of sqlAppends) {
1711
+ const workspacePath = node_path_1.posix.join(root, path);
1712
+ mergedTarget.files.set(path, await (0, formatting_js_1.formatTreeContentsToFixedPoint)(contents, await (0, formatting_js_1.effectiveTreePrettierOptions)(tree, workspacePath, (0, formatting_js_1.changedTreePrettierOptions)(tree)), workspacePath));
1713
+ }
1355
1714
  requireTargetCompositionFeatures(mergedTarget.files, targetOwnership);
1715
+ const loggingAppend = blueprint.source === 'built-in'
1716
+ ? (0, logging_registry_js_1.planRequiredSliceLoggingComponents)(currentFiles.get(logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH) ?? null, targetFiles[logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH])
1717
+ : null;
1718
+ if (loggingAppend !== null) {
1719
+ const workspacePath = node_path_1.posix.join(root, logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH);
1720
+ const formatting = await (0, formatting_js_1.effectiveTreePrettierOptions)(tree, workspacePath, (0, formatting_js_1.changedTreePrettierOptions)(tree));
1721
+ mergedTarget.files.set(logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH, await (0, formatting_js_1.formatTreeContentsToFixedPoint)(loggingAppend, formatting, workspacePath));
1722
+ }
1356
1723
  const report = createUpgradeReport(currentFiles, currentOwnership, mergedTarget.files, targetOwnership, mergedTarget);
1724
+ if (loggingAppend !== null) {
1725
+ report.preservedSeeded = report.preservedSeeded.filter((path) => path !== logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH);
1726
+ report.appendedSeeded.push(logging_registry_js_1.SLICE_LOGGING_REGISTRY_PATH);
1727
+ }
1728
+ for (const path of sqlAppends.keys()) {
1729
+ report.preservedSeeded = report.preservedSeeded.filter((entry) => entry !== path);
1730
+ report.appendedSeeded.push(path);
1731
+ }
1732
+ report.appendedSeeded.sort(deterministic_order_js_1.compareUtf16);
1357
1733
  output.info(`[ebk-upgrade] ${name} ${currentOwnership.blueprint.name}@${currentOwnership.blueprint.version} -> ${blueprint.manifest.name}@${blueprint.manifest.version}\n${JSON.stringify(report, null, 2)}`);
1358
- if (!options.apply)
1734
+ if (!options.apply) {
1735
+ if (blueprint.source === 'built-in')
1736
+ await upgradeFoundationForRequirements(tree, [requiredFoundation], false, output);
1359
1737
  return;
1738
+ }
1360
1739
  if (report.incompatibleSeededMigrations.length > 0) {
1361
1740
  throw new Error(seededMigrationUpgradeMessage('Product Slice', report));
1362
1741
  }
1363
1742
  if (report.conflicting.length > 0) {
1364
1743
  throw new Error(upgradeConflictMessage('Product Slice', report));
1365
1744
  }
1745
+ if (blueprint.source === 'built-in')
1746
+ await upgradeFoundationForRequirements(tree, [requiredFoundation], true, output);
1366
1747
  for (const path of report.obsolete)
1367
1748
  tree.delete(node_path_1.posix.join(root, path));
1368
1749
  const writePaths = new Set([
1369
1750
  ...report.changed,
1370
1751
  ...report.missing,
1371
1752
  ...report.addedSeeded,
1753
+ ...report.appendedSeeded,
1372
1754
  '.ebk/ownership.json',
1373
1755
  ]);
1374
1756
  for (const path of writePaths) {
@@ -1384,10 +1766,16 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1384
1766
  [blueprint.manifest.name]: blueprint.manifest.version,
1385
1767
  };
1386
1768
  tree.write('package.json', json(packageJson));
1769
+ if (!options.skipFormat) {
1770
+ const path = 'package.json';
1771
+ if (!tree.exists(path)) {
1772
+ throw new Error('Workspace package.json disappeared during upgrade.');
1773
+ }
1774
+ await (0, formatting_js_1.formatTreeFileToFixedPoint)(tree, path);
1775
+ }
1387
1776
  }
1388
- if (!options.skipFormat)
1389
- await (0, devkit_1.formatFiles)(tree);
1390
1777
  (0, index_js_4.restampProductSliceOwnership)(tree, name, { preserveSeeded: true });
1778
+ await formatOwnershipRecord(tree, node_path_1.posix.join(root, '.ebk/ownership.json'), 'Product Slice');
1391
1779
  return options.skipInstall
1392
1780
  ? undefined
1393
1781
  : () => (0, devkit_1.installPackagesTask)(tree, true);
@@ -1395,7 +1783,10 @@ async function executeUpgradeGenerator(tree, options, output = devkit_1.logger,
1395
1783
  async function upgradeGenerator(tree, options, output = devkit_1.logger, executionOptions = {}) {
1396
1784
  const previewFile = await requireDeveloperAgentPreviewBinding(tree, options, executionOptions);
1397
1785
  if (!previewFile) {
1398
- return executeUpgradeGenerator(tree, options, output, executionOptions);
1786
+ const deferred = new preview_changes_js_1.DeferredDeveloperAgentTree(tree);
1787
+ const install = await executeUpgradeGenerator(deferred, options, output, executionOptions);
1788
+ deferred.apply();
1789
+ return install;
1399
1790
  }
1400
1791
  const upgradeOptions = { ...options };
1401
1792
  delete upgradeOptions.developerAgentPreview;