@empire-builder-kit/nx 1.0.0-rc.37 → 1.0.0-rc.39

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 (637) hide show
  1. package/README.md +18 -0
  2. package/executors.json +5 -0
  3. package/generators.json +10 -0
  4. package/package.json +20 -3
  5. package/src/aws-authority/index.d.ts +1 -0
  6. package/src/aws-authority/index.js +1 -0
  7. package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
  8. package/src/aws-authority/lambda-policy-ordering.js +56 -0
  9. package/src/aws-authority/stage-authority.d.ts +11 -3
  10. package/src/aws-authority/stage-authority.js +615 -29
  11. package/src/blueprints/external-sandbox.js +21 -9
  12. package/src/blueprints/manifest.d.ts +1 -1
  13. package/src/blueprints/resolver.js +28 -15
  14. package/src/cli/bootstrap.d.ts +1 -1
  15. package/src/cli/deploy-runtime.d.ts +6 -0
  16. package/src/cli/deploy-runtime.js +58 -0
  17. package/src/cli/dev-command.d.ts +16 -4
  18. package/src/cli/dev-command.js +63 -0
  19. package/src/cli/main.d.ts +7 -1
  20. package/src/cli/main.js +128 -20
  21. package/src/cli/output.d.ts +1 -1
  22. package/src/developer-agent/context.js +41 -9
  23. package/src/developer-agent/generator-planning.js +16 -2
  24. package/src/developer-agent/git-inspection.d.ts +6 -2
  25. package/src/developer-agent/git-inspection.js +78 -6
  26. package/src/developer-agent/model.d.ts +4 -2
  27. package/src/developer-agent/operation-registry.d.ts +5 -0
  28. package/src/developer-agent/operation-registry.js +179 -23
  29. package/src/developer-agent/preview-changes.d.ts +2 -0
  30. package/src/developer-agent/preview-changes.js +14 -2
  31. package/src/developer-agent/preview-source.js +3 -0
  32. package/src/developer-agent/validation.js +20 -8
  33. package/src/developer-agent/workspace-inspection.js +37 -3
  34. package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
  35. package/src/executors/deployment-plan/deployment-plan.js +51 -4
  36. package/src/executors/dev-doctor/dev-doctor.js +13 -6
  37. package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
  38. package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
  39. package/src/executors/dev-task-cleanup/schema.json +9 -0
  40. package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
  41. package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
  42. package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
  43. package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
  44. package/src/executors/fleet/fleet.js +1 -1
  45. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +28 -1
  46. package/src/executors/local-deploy/local-deploy.d.ts +8 -1
  47. package/src/executors/local-deploy/local-deploy.js +97 -24
  48. package/src/executors/local-deploy/schema.json +8 -0
  49. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +30 -18
  50. package/src/executors/sst-lifecycle/governed-native-operation.d.ts +2 -0
  51. package/src/executors/sst-lifecycle/governed-native-operation.js +9 -0
  52. package/src/executors/sst-lifecycle/run-sst-command.d.ts +5 -0
  53. package/src/executors/sst-lifecycle/run-sst-command.js +220 -32
  54. package/src/executors/sst-lifecycle/sst-environment-source.d.ts +8 -0
  55. package/src/executors/sst-lifecycle/sst-environment-source.js +54 -0
  56. package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
  57. package/src/executors/sst-lifecycle/task-unlock.js +126 -0
  58. package/src/foundation/capability-plan.d.ts +43 -0
  59. package/src/foundation/capability-plan.js +168 -0
  60. package/src/foundation/discovery.d.ts +14 -11
  61. package/src/foundation/discovery.js +32 -6
  62. package/src/foundation/index.d.ts +1 -0
  63. package/src/foundation/index.js +1 -0
  64. package/src/foundation/local-database-contract.d.ts +20 -0
  65. package/src/foundation/local-database-contract.js +262 -13
  66. package/src/foundation/local-private-smoke-access.d.ts +20 -0
  67. package/src/foundation/local-private-smoke-access.js +197 -0
  68. package/src/foundation/preflight.js +37 -18
  69. package/src/foundation/private-smoke-access.js +10 -2
  70. package/src/foundation/private-smoke-admission.d.ts +3 -1
  71. package/src/foundation/private-smoke-admission.js +29 -8
  72. package/src/foundation/private-smoke-control-plane.js +17 -6
  73. package/src/foundation/provision-database-bindings.d.ts +5 -0
  74. package/src/foundation/provision-database-bindings.js +41 -8
  75. package/src/foundation/provision-logical-database.js +13 -8
  76. package/src/foundation/requirements.d.ts +3 -3
  77. package/src/foundation/requirements.js +24 -12
  78. package/src/foundation/router-waf.d.ts +1 -0
  79. package/src/foundation/router-waf.js +14 -1
  80. package/src/generators/blueprint/blueprint.d.ts +5 -0
  81. package/src/generators/blueprint/blueprint.js +102 -0
  82. package/src/generators/blueprint/files.d.ts +6 -0
  83. package/src/generators/blueprint/files.js +217 -0
  84. package/src/generators/blueprint/schema.d.ts +4 -0
  85. package/src/generators/blueprint/schema.json +18 -0
  86. package/src/generators/formatting.js +24 -1
  87. package/src/generators/logging-registry.d.ts +2 -0
  88. package/src/generators/logging-registry.js +22 -0
  89. package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
  90. package/src/generators/preset/workspace-files-adopter-skills.js +301 -0
  91. package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
  92. package/src/generators/preset/workspace-files-ci-install.js +196 -0
  93. package/src/generators/preset/workspace-files-developer-agent.js +40 -13
  94. package/src/generators/preset/workspace-files-performance-load.js +8 -0
  95. package/src/generators/preset/workspace-files-stage-authority.js +40 -1
  96. package/src/generators/preset/workspace-files-thin-deploy.js +66 -34
  97. package/src/generators/preset/workspace-files-thin-docs.js +64 -18
  98. package/src/generators/preset/workspace-files.d.ts +4 -0
  99. package/src/generators/preset/workspace-files.js +159 -91
  100. package/src/generators/repository-policy/repository-policy.js +37 -0
  101. package/src/generators/slice/built-in-plan-api-contract-files.js +42 -7
  102. package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
  103. package/src/generators/slice/built-in-plan-api-files.js +47 -389
  104. package/src/generators/slice/built-in-plan-async-work-files.js +19 -1912
  105. package/src/generators/slice/built-in-plan-authorization-files.js +92 -329
  106. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +36 -2
  107. package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
  108. package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
  109. package/src/generators/slice/built-in-plan-background-work-files.d.ts +1 -1
  110. package/src/generators/slice/built-in-plan-background-work-files.js +15 -5
  111. package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
  112. package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
  113. package/src/generators/slice/built-in-plan-data-files.js +61 -1164
  114. package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
  115. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +18 -2
  116. package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2446
  117. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +30 -6
  118. package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
  119. package/src/generators/slice/built-in-plan-database-lifecycle-files.js +4 -15
  120. package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
  121. package/src/generators/slice/built-in-plan-foundation-files.js +34 -10
  122. package/src/generators/slice/built-in-plan-frontend-files.js +2 -2
  123. package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
  124. package/src/generators/slice/built-in-plan-infrastructure-files.js +180 -522
  125. package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
  126. package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
  127. package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
  128. package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
  129. package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
  130. package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
  131. package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
  132. package/src/generators/slice/built-in-plan-key-value-delivery.js +120 -0
  133. package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
  134. package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
  135. package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
  136. package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
  137. package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
  138. package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
  139. package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
  140. package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
  141. package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
  142. package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
  143. package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
  144. package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
  145. package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
  146. package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
  147. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
  148. package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
  149. package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
  150. package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
  151. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
  152. package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
  153. package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
  154. package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
  155. package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
  156. package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
  157. package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
  158. package/src/generators/slice/built-in-plan-metadata-files.js +140 -28
  159. package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +1 -1
  160. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +36 -19
  161. package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
  162. package/src/generators/slice/built-in-plan-operations-files.js +89 -50
  163. package/src/generators/slice/built-in-plan-performance-files.js +84 -1010
  164. package/src/generators/slice/built-in-plan-project-files.js +116 -67
  165. package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
  166. package/src/generators/slice/built-in-plan-release-files.js +64 -15
  167. package/src/generators/slice/built-in-plan-reliability-files.js +54 -28
  168. package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
  169. package/src/generators/slice/built-in-plan-shared.js +41 -19
  170. package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
  171. package/src/generators/slice/built-in-plan-sql-events.js +257 -0
  172. package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
  173. package/src/generators/slice/built-in-plan-testing-files.js +184 -132
  174. package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
  175. package/src/generators/slice/built-in-plan-testing-persistence-files.js +178 -0
  176. package/src/generators/slice/built-in-plan-thin-release-files.d.ts +1 -1
  177. package/src/generators/slice/built-in-plan-thin-release-files.js +35 -2
  178. package/src/generators/slice/built-in-plan-verification-files.js +70 -0
  179. package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
  180. package/src/generators/slice/built-in-plan-web-files.js +206 -14
  181. package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
  182. package/src/generators/slice/built-in-plan-workload-role-files.js +113 -274
  183. package/src/generators/slice/built-in-plan.d.ts +9 -1
  184. package/src/generators/slice/built-in-plan.js +49 -21
  185. package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
  186. package/src/generators/slice/data-policy-review-seed.js +22 -0
  187. package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
  188. package/src/generators/slice/deployed-smoke-readiness.js +214 -0
  189. package/src/generators/slice/local-source-identity.d.ts +2 -0
  190. package/src/generators/slice/local-source-identity.js +31 -0
  191. package/src/generators/slice/persistence-contract.d.ts +14 -0
  192. package/src/generators/slice/persistence-contract.js +32 -0
  193. package/src/generators/slice/slice.js +29 -24
  194. package/src/generators/sql/schema.d.ts +7 -0
  195. package/src/generators/sql/schema.json +38 -0
  196. package/src/generators/sql/sql.d.ts +6 -0
  197. package/src/generators/sql/sql.js +53 -0
  198. package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
  199. package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
  200. package/src/generators/upgrade/upgrade.d.ts +2 -0
  201. package/src/generators/upgrade/upgrade.js +136 -9
  202. package/src/generators/workload/workload.js +51 -2
  203. package/src/local-dev/browser-verification.d.ts +37 -0
  204. package/src/local-dev/browser-verification.js +281 -0
  205. package/src/local-dev/contracts.d.ts +10 -1
  206. package/src/local-dev/contracts.js +114 -13
  207. package/src/local-dev/dev-command-core.js +24 -5
  208. package/src/local-dev/docker-credential-health.d.ts +14 -0
  209. package/src/local-dev/docker-credential-health.js +94 -0
  210. package/src/local-dev/environment-inspector.d.ts +7 -0
  211. package/src/local-dev/environment-inspector.js +42 -15
  212. package/src/local-dev/environment-state.js +2 -2
  213. package/src/local-dev/errors.d.ts +1 -1
  214. package/src/local-dev/errors.js +2 -0
  215. package/src/local-dev/fleet-client.js +2 -2
  216. package/src/local-dev/fleet-configuration.js +57 -25
  217. package/src/local-dev/fleet-inventory.js +46 -18
  218. package/src/local-dev/fleet-ipc.d.ts +7 -0
  219. package/src/local-dev/fleet-ipc.js +14 -2
  220. package/src/local-dev/fleet-launcher.d.ts +6 -0
  221. package/src/local-dev/fleet-launcher.js +14 -2
  222. package/src/local-dev/fleet-logs.js +50 -22
  223. package/src/local-dev/fleet-process.d.ts +20 -1
  224. package/src/local-dev/fleet-process.js +197 -41
  225. package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
  226. package/src/local-dev/fleet-runner-evidence.js +56 -0
  227. package/src/local-dev/fleet-runtime.js +268 -229
  228. package/src/local-dev/fleet-session.d.ts +2 -0
  229. package/src/local-dev/fleet-session.js +28 -11
  230. package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
  231. package/src/local-dev/fleet-state.d.ts +5 -2
  232. package/src/local-dev/fleet-state.js +25 -4
  233. package/src/local-dev/fleet-supervisor.d.ts +3 -0
  234. package/src/local-dev/fleet-supervisor.js +66 -11
  235. package/src/local-dev/fleet-web-start.d.ts +12 -0
  236. package/src/local-dev/fleet-web-start.js +48 -0
  237. package/src/local-dev/identity.js +3 -14
  238. package/src/local-dev/index.d.ts +1 -0
  239. package/src/local-dev/index.js +1 -0
  240. package/src/local-dev/native-completion.d.ts +9 -0
  241. package/src/local-dev/native-completion.js +130 -0
  242. package/src/local-dev/nx-workspace.d.ts +4 -2
  243. package/src/local-dev/nx-workspace.js +11 -6
  244. package/src/local-dev/personal-stage.d.ts +4 -5
  245. package/src/local-dev/personal-stage.js +6 -54
  246. package/src/local-dev/port-claims.d.ts +13 -0
  247. package/src/local-dev/port-claims.js +46 -0
  248. package/src/local-dev/ports.d.ts +14 -2
  249. package/src/local-dev/ports.js +78 -3
  250. package/src/local-dev/private-state.d.ts +6 -0
  251. package/src/local-dev/private-state.js +126 -34
  252. package/src/local-dev/process-group.d.ts +4 -0
  253. package/src/local-dev/process-group.js +29 -0
  254. package/src/local-dev/process-identity.d.ts +8 -0
  255. package/src/local-dev/process-identity.js +31 -1
  256. package/src/local-dev/proxy.js +11 -12
  257. package/src/local-dev/runtime-paths.js +1 -1
  258. package/src/local-dev/slice-claim.js +1 -1
  259. package/src/local-dev/slice-runner.d.ts +15 -6
  260. package/src/local-dev/slice-runner.js +189 -54
  261. package/src/local-dev/task-attachment.d.ts +17 -0
  262. package/src/local-dev/task-attachment.js +73 -0
  263. package/src/local-dev/task-authority.d.ts +10 -0
  264. package/src/local-dev/task-authority.js +27 -0
  265. package/src/local-dev/task-identity.d.ts +33 -0
  266. package/src/local-dev/task-identity.js +418 -0
  267. package/src/local-dev/task-native-writer.d.ts +18 -0
  268. package/src/local-dev/task-native-writer.js +329 -0
  269. package/src/local-dev/tls.js +3 -1
  270. package/src/local-dev/web-launch.d.ts +9 -0
  271. package/src/local-dev/web-launch.js +130 -0
  272. package/src/ownership/composition.d.ts +2 -1
  273. package/src/ownership/composition.js +1 -0
  274. package/src/performance/scenario.d.ts +22 -0
  275. package/src/performance/scenario.js +100 -92
  276. package/src/repository-policy/deployment-plan.d.ts +2 -2
  277. package/src/repository-policy/deployment-plan.js +2 -1
  278. package/src/repository-policy/policy.js +38 -3
  279. package/src/schemas/blueprint-v1.json +5 -4
  280. package/src/schemas/foundation-requirement-v1.json +5 -4
  281. package/src/schemas/testing-evidence-result-v1.json +1 -1
  282. package/src/secrets/operator.d.ts +3 -1
  283. package/src/secrets/operator.js +22 -3
  284. package/src/sst-environment-source-format.d.ts +3 -0
  285. package/src/sst-environment-source-format.js +20 -0
  286. package/src/supply-chain/blueprint-trust-git.js +13 -3
  287. package/src/supply-chain/build-output.js +15 -0
  288. package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
  289. package/src/testing-evidence/fixture-scope.d.ts +2 -1
  290. package/src/testing-evidence/fixture-scope.js +4 -2
  291. package/src/testing-evidence/result.d.ts +2 -1
  292. package/src/testing-evidence/result.js +18 -4
  293. package/src/workload-roles/standard-slice.js +2 -3
  294. package/src/api-contract/baseline-update.js.map +0 -1
  295. package/src/api-contract/compatibility.js.map +0 -1
  296. package/src/api-contract/contract-graph.js.map +0 -1
  297. package/src/api-contract/evidence.js.map +0 -1
  298. package/src/api-contract/index.js.map +0 -1
  299. package/src/api-contract/model.fixtures.d.ts +0 -2
  300. package/src/api-contract/model.fixtures.js +0 -81
  301. package/src/api-contract/model.fixtures.js.map +0 -1
  302. package/src/api-contract/model.js.map +0 -1
  303. package/src/api-contract/rollout.js.map +0 -1
  304. package/src/authorization/compatibility.js.map +0 -1
  305. package/src/authorization/index.js.map +0 -1
  306. package/src/aws/child-environment.js.map +0 -1
  307. package/src/aws/identity.js.map +0 -1
  308. package/src/aws-authority/index.js.map +0 -1
  309. package/src/aws-authority/stage-authority.js.map +0 -1
  310. package/src/blueprints/execution.js.map +0 -1
  311. package/src/blueprints/external-sandbox.js.map +0 -1
  312. package/src/blueprints/index.js.map +0 -1
  313. package/src/blueprints/inputs.js.map +0 -1
  314. package/src/blueprints/manifest.js.map +0 -1
  315. package/src/blueprints/resolver.js.map +0 -1
  316. package/src/blueprints/transitions.js.map +0 -1
  317. package/src/cli/agent-command.js.map +0 -1
  318. package/src/cli/agent-runtime.js.map +0 -1
  319. package/src/cli/blueprint-authority.js.map +0 -1
  320. package/src/cli/blueprint-command.js.map +0 -1
  321. package/src/cli/bootstrap.js.map +0 -1
  322. package/src/cli/dev-command.js.map +0 -1
  323. package/src/cli/main.js.map +0 -1
  324. package/src/cli/output.js.map +0 -1
  325. package/src/cli/personal-secret-runtime.js.map +0 -1
  326. package/src/cli/secret-terminal.js.map +0 -1
  327. package/src/container-images.js.map +0 -1
  328. package/src/data-lifecycle/index.js.map +0 -1
  329. package/src/data-lifecycle/model.fixtures.d.ts +0 -2
  330. package/src/data-lifecycle/model.fixtures.js +0 -244
  331. package/src/data-lifecycle/model.fixtures.js.map +0 -1
  332. package/src/data-lifecycle/model.js.map +0 -1
  333. package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
  334. package/src/data-lifecycle/validation.js.map +0 -1
  335. package/src/database-retirement/contract.js.map +0 -1
  336. package/src/database-retirement/index.js.map +0 -1
  337. package/src/deterministic-order.js.map +0 -1
  338. package/src/developer-agent/context.js.map +0 -1
  339. package/src/developer-agent/generator-planning.js.map +0 -1
  340. package/src/developer-agent/generator-preview.js.map +0 -1
  341. package/src/developer-agent/git-inspection.js.map +0 -1
  342. package/src/developer-agent/handoff.js.map +0 -1
  343. package/src/developer-agent/index.js.map +0 -1
  344. package/src/developer-agent/model.js.map +0 -1
  345. package/src/developer-agent/operation-registry.js.map +0 -1
  346. package/src/developer-agent/ordering.js.map +0 -1
  347. package/src/developer-agent/planning.js.map +0 -1
  348. package/src/developer-agent/preview-changes.js.map +0 -1
  349. package/src/developer-agent/preview-source.js.map +0 -1
  350. package/src/developer-agent/validation.js.map +0 -1
  351. package/src/developer-agent/workspace-inspection.js.map +0 -1
  352. package/src/developer-agent/workspace-path.js.map +0 -1
  353. package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
  354. package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
  355. package/src/executors/deploy/deploy.js.map +0 -1
  356. package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
  357. package/src/executors/dev/dev.js.map +0 -1
  358. package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
  359. package/src/executors/dev-setup/dev-setup.js.map +0 -1
  360. package/src/executors/developer-context/developer-context.js.map +0 -1
  361. package/src/executors/fleet/fleet.js.map +0 -1
  362. package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
  363. package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
  364. package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +0 -1
  365. package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
  366. package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
  367. package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
  368. package/src/executors/local-deploy/federated-credential-transport.js.map +0 -1
  369. package/src/executors/local-deploy/fixtures/local-deploy-state-machine.mjs +0 -53
  370. package/src/executors/local-deploy/local-approval.js.map +0 -1
  371. package/src/executors/local-deploy/local-deploy.js.map +0 -1
  372. package/src/executors/refresh/refresh.js.map +0 -1
  373. package/src/executors/remove/remove.js.map +0 -1
  374. package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +0 -1
  375. package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
  376. package/src/executors/secret-initialize/secret-initialize.js.map +0 -1
  377. package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
  378. package/src/executors/sst-lifecycle/generated-secret-retirement.js.map +0 -1
  379. package/src/executors/sst-lifecycle/governed-native-operation.js.map +0 -1
  380. package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
  381. package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
  382. package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
  383. package/src/executors/sst-lifecycle/sst-environment-source.js.map +0 -1
  384. package/src/executors/unlock/unlock.js.map +0 -1
  385. package/src/executors/work-markers/work-markers.js.map +0 -1
  386. package/src/foundation/discovery.js.map +0 -1
  387. package/src/foundation/index.js.map +0 -1
  388. package/src/foundation/local-database-contract.js.map +0 -1
  389. package/src/foundation/logging-preflight.js.map +0 -1
  390. package/src/foundation/logging.js.map +0 -1
  391. package/src/foundation/partial-state.js.map +0 -1
  392. package/src/foundation/preflight.js.map +0 -1
  393. package/src/foundation/private-smoke-access.js.map +0 -1
  394. package/src/foundation/private-smoke-admission.js.map +0 -1
  395. package/src/foundation/private-smoke-control-plane.js.map +0 -1
  396. package/src/foundation/provision-database-bindings.js.map +0 -1
  397. package/src/foundation/provision-logical-database.js.map +0 -1
  398. package/src/foundation/requirements.js.map +0 -1
  399. package/src/foundation/router-origin-proof.js.map +0 -1
  400. package/src/foundation/router-waf-rate-rehearsal.js.map +0 -1
  401. package/src/foundation/router-waf.js.map +0 -1
  402. package/src/foundation/stages.js.map +0 -1
  403. package/src/frontend-security/index.js.map +0 -1
  404. package/src/frontend-security/security-headers.js.map +0 -1
  405. package/src/generators/feature-registry.js.map +0 -1
  406. package/src/generators/formatting.js.map +0 -1
  407. package/src/generators/function/function.js.map +0 -1
  408. package/src/generators/job/job.js.map +0 -1
  409. package/src/generators/logging-registry.js.map +0 -1
  410. package/src/generators/post-generation-install.js.map +0 -1
  411. package/src/generators/preset/dependency-overrides.js.map +0 -1
  412. package/src/generators/preset/generator.js.map +0 -1
  413. package/src/generators/preset/tool-versions.js.map +0 -1
  414. package/src/generators/preset/workspace-files-ci-acceptance.js.map +0 -1
  415. package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
  416. package/src/generators/preset/workspace-files-ecr-inspector.js.map +0 -1
  417. package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
  418. package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
  419. package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
  420. package/src/generators/preset/workspace-files-stage-authority.js.map +0 -1
  421. package/src/generators/preset/workspace-files-thin-deploy.js.map +0 -1
  422. package/src/generators/preset/workspace-files-thin-docs.js.map +0 -1
  423. package/src/generators/preset/workspace-files-thin-release.js.map +0 -1
  424. package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
  425. package/src/generators/preset/workspace-files.js.map +0 -1
  426. package/src/generators/repository-policy/repository-policy.js.map +0 -1
  427. package/src/generators/repository-policy/tree-policy.js.map +0 -1
  428. package/src/generators/service/service.js.map +0 -1
  429. package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
  430. package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
  431. package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
  432. package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
  433. package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
  434. package/src/generators/slice/built-in-plan-background-work-files.js.map +0 -1
  435. package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
  436. package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
  437. package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
  438. package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
  439. package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
  440. package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
  441. package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
  442. package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
  443. package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
  444. package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
  445. package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
  446. package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
  447. package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
  448. package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
  449. package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
  450. package/src/generators/slice/built-in-plan-native-runtime-authority-files.js.map +0 -1
  451. package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
  452. package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
  453. package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
  454. package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
  455. package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
  456. package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
  457. package/src/generators/slice/built-in-plan-shared.js.map +0 -1
  458. package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
  459. package/src/generators/slice/built-in-plan-thin-release-files.js.map +0 -1
  460. package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
  461. package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
  462. package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
  463. package/src/generators/slice/built-in-plan.js.map +0 -1
  464. package/src/generators/slice/slice.js.map +0 -1
  465. package/src/generators/upgrade/upgrade.js.map +0 -1
  466. package/src/generators/workload/frozen-container.js.map +0 -1
  467. package/src/generators/workload/performance-registration.js.map +0 -1
  468. package/src/generators/workload/reliability-registration.js.map +0 -1
  469. package/src/generators/workload/service-performance-files.js.map +0 -1
  470. package/src/generators/workload/workload.js.map +0 -1
  471. package/src/git-policy/action-pins.js.map +0 -1
  472. package/src/git-policy/github-bootstrap.js.map +0 -1
  473. package/src/git-policy/index.js.map +0 -1
  474. package/src/git-policy/routing.js.map +0 -1
  475. package/src/index.js.map +0 -1
  476. package/src/infrastructure-change/convergence.js.map +0 -1
  477. package/src/infrastructure-change/drift.js.map +0 -1
  478. package/src/infrastructure-change/index.js.map +0 -1
  479. package/src/infrastructure-change/local-capability.js.map +0 -1
  480. package/src/infrastructure-change/model.js.map +0 -1
  481. package/src/infrastructure-change/normalize.js.map +0 -1
  482. package/src/infrastructure-change/plan.js.map +0 -1
  483. package/src/infrastructure-change/risk.js.map +0 -1
  484. package/src/infrastructure-change/summary.js.map +0 -1
  485. package/src/local-dev/context-discovery.js.map +0 -1
  486. package/src/local-dev/contract-validation.js.map +0 -1
  487. package/src/local-dev/contracts.js.map +0 -1
  488. package/src/local-dev/control-contract.js.map +0 -1
  489. package/src/local-dev/dev-command-core.js.map +0 -1
  490. package/src/local-dev/effects.js.map +0 -1
  491. package/src/local-dev/environment-inspector.js.map +0 -1
  492. package/src/local-dev/environment-state.js.map +0 -1
  493. package/src/local-dev/errors.js.map +0 -1
  494. package/src/local-dev/fleet-client.js.map +0 -1
  495. package/src/local-dev/fleet-configuration.js.map +0 -1
  496. package/src/local-dev/fleet-inventory.js.map +0 -1
  497. package/src/local-dev/fleet-ipc.js.map +0 -1
  498. package/src/local-dev/fleet-launcher.js.map +0 -1
  499. package/src/local-dev/fleet-lock.js.map +0 -1
  500. package/src/local-dev/fleet-logs.js.map +0 -1
  501. package/src/local-dev/fleet-process.js.map +0 -1
  502. package/src/local-dev/fleet-runtime.js.map +0 -1
  503. package/src/local-dev/fleet-session.js.map +0 -1
  504. package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
  505. package/src/local-dev/fleet-startup.js.map +0 -1
  506. package/src/local-dev/fleet-state.js.map +0 -1
  507. package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
  508. package/src/local-dev/fleet-supervisor.js.map +0 -1
  509. package/src/local-dev/gateway-daemon.js.map +0 -1
  510. package/src/local-dev/gateway.js.map +0 -1
  511. package/src/local-dev/identity.js.map +0 -1
  512. package/src/local-dev/index.js.map +0 -1
  513. package/src/local-dev/local-context.js.map +0 -1
  514. package/src/local-dev/nx-workspace.js.map +0 -1
  515. package/src/local-dev/personal-secret-ledger.js.map +0 -1
  516. package/src/local-dev/personal-stage.js.map +0 -1
  517. package/src/local-dev/portless.js.map +0 -1
  518. package/src/local-dev/ports.js.map +0 -1
  519. package/src/local-dev/private-state.js.map +0 -1
  520. package/src/local-dev/process-identity.js.map +0 -1
  521. package/src/local-dev/proxy.js.map +0 -1
  522. package/src/local-dev/runtime-paths.js.map +0 -1
  523. package/src/local-dev/secret-slice-claim.js.map +0 -1
  524. package/src/local-dev/slice-claim.js.map +0 -1
  525. package/src/local-dev/slice-runner.js.map +0 -1
  526. package/src/local-dev/tls.js.map +0 -1
  527. package/src/ownership/composition.js.map +0 -1
  528. package/src/ownership/foundation-record.js.map +0 -1
  529. package/src/ownership/hash.js.map +0 -1
  530. package/src/ownership/index.js.map +0 -1
  531. package/src/ownership/json-ownership.js.map +0 -1
  532. package/src/ownership/record.js.map +0 -1
  533. package/src/ownership/workspace-record.js.map +0 -1
  534. package/src/performance/cost-collection.js.map +0 -1
  535. package/src/performance/cost-controls.js.map +0 -1
  536. package/src/performance/evidence.js.map +0 -1
  537. package/src/performance/index.js.map +0 -1
  538. package/src/performance/load-safety.js.map +0 -1
  539. package/src/performance/model.js.map +0 -1
  540. package/src/performance/pr-artifact-budget.js.map +0 -1
  541. package/src/performance/runner.js.map +0 -1
  542. package/src/performance/scenario-endpoint.js.map +0 -1
  543. package/src/performance/scenario.js.map +0 -1
  544. package/src/performance/test-fixtures.d.ts +0 -7
  545. package/src/performance/test-fixtures.js +0 -167
  546. package/src/performance/test-fixtures.js.map +0 -1
  547. package/src/performance/unit-cost.js.map +0 -1
  548. package/src/release/index.js.map +0 -1
  549. package/src/release/lifecycle.js.map +0 -1
  550. package/src/release/manifest.js.map +0 -1
  551. package/src/release/rollout.js.map +0 -1
  552. package/src/release/source-authority.js.map +0 -1
  553. package/src/repository-policy/aurora-preflight.js.map +0 -1
  554. package/src/repository-policy/capacity-migration.js.map +0 -1
  555. package/src/repository-policy/deployment-plan.js.map +0 -1
  556. package/src/repository-policy/foundation-profile.js.map +0 -1
  557. package/src/repository-policy/index.js.map +0 -1
  558. package/src/repository-policy/policy.js.map +0 -1
  559. package/src/secrets/adapters.js.map +0 -1
  560. package/src/secrets/aws-control-plane.js.map +0 -1
  561. package/src/secrets/declaration-verification.js.map +0 -1
  562. package/src/secrets/generated-aws-control-plane.js.map +0 -1
  563. package/src/secrets/guardrails.js.map +0 -1
  564. package/src/secrets/index.js.map +0 -1
  565. package/src/secrets/metadata.js.map +0 -1
  566. package/src/secrets/model.js.map +0 -1
  567. package/src/secrets/operator.js.map +0 -1
  568. package/src/secrets/permissions.js.map +0 -1
  569. package/src/secrets/personal-command.js.map +0 -1
  570. package/src/secrets/personal-ledger.js.map +0 -1
  571. package/src/secrets/registry.js.map +0 -1
  572. package/src/secrets/verification.js.map +0 -1
  573. package/src/secrets/workload-access.js.map +0 -1
  574. package/src/sst-environment-source-format.js.map +0 -1
  575. package/src/supply-chain/action-pins.js.map +0 -1
  576. package/src/supply-chain/blueprint-trust-git.js.map +0 -1
  577. package/src/supply-chain/blueprint-trust-process.js.map +0 -1
  578. package/src/supply-chain/blueprint-trust.js.map +0 -1
  579. package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
  580. package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
  581. package/src/supply-chain/build-output-bounds.js.map +0 -1
  582. package/src/supply-chain/build-output.js.map +0 -1
  583. package/src/supply-chain/common.js.map +0 -1
  584. package/src/supply-chain/container-artifact-contract.js.map +0 -1
  585. package/src/supply-chain/container-release.js.map +0 -1
  586. package/src/supply-chain/ecr-applicability.js.map +0 -1
  587. package/src/supply-chain/ecr-scanning.js.map +0 -1
  588. package/src/supply-chain/ecs-deployed-image.js.map +0 -1
  589. package/src/supply-chain/errors.js.map +0 -1
  590. package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
  591. package/src/supply-chain/generated-command.js.map +0 -1
  592. package/src/supply-chain/generated-container-release-command.js.map +0 -1
  593. package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
  594. package/src/supply-chain/generated-files.js.map +0 -1
  595. package/src/supply-chain/generated-scanner-command.js.map +0 -1
  596. package/src/supply-chain/index.js.map +0 -1
  597. package/src/supply-chain/inventory.js.map +0 -1
  598. package/src/supply-chain/license-expression.js.map +0 -1
  599. package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
  600. package/src/supply-chain/policy.js.map +0 -1
  601. package/src/supply-chain/publication.js.map +0 -1
  602. package/src/supply-chain/sbom.js.map +0 -1
  603. package/src/supply-chain/scanner.js.map +0 -1
  604. package/src/supply-chain/vendored-source.js.map +0 -1
  605. package/src/testing-evidence/fixture-scope.js.map +0 -1
  606. package/src/testing-evidence/index.js.map +0 -1
  607. package/src/testing-evidence/quarantine.js.map +0 -1
  608. package/src/testing-evidence/result.js.map +0 -1
  609. package/src/testing-evidence/runner-adapter.js.map +0 -1
  610. package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
  611. package/src/validation.js.map +0 -1
  612. package/src/work-markers/index.js.map +0 -1
  613. package/src/work-markers/work-markers.js.map +0 -1
  614. package/src/workload-roles/account-baseline.js.map +0 -1
  615. package/src/workload-roles/authority.js.map +0 -1
  616. package/src/workload-roles/aws-adapter.js.map +0 -1
  617. package/src/workload-roles/aws-internal-handler.js.map +0 -1
  618. package/src/workload-roles/aws-s3-state.js.map +0 -1
  619. package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
  620. package/src/workload-roles/boundary.js.map +0 -1
  621. package/src/workload-roles/convergence.js.map +0 -1
  622. package/src/workload-roles/effective-policy.js.map +0 -1
  623. package/src/workload-roles/handler.js.map +0 -1
  624. package/src/workload-roles/history.js.map +0 -1
  625. package/src/workload-roles/index.js.map +0 -1
  626. package/src/workload-roles/injection.js.map +0 -1
  627. package/src/workload-roles/manifest.js.map +0 -1
  628. package/src/workload-roles/provisioner.js.map +0 -1
  629. package/src/workload-roles/registration.js.map +0 -1
  630. package/src/workload-roles/stage-boundary.js.map +0 -1
  631. package/src/workload-roles/standard-slice.js.map +0 -1
  632. package/src/workspace-deployment/affected-lifecycle.js.map +0 -1
  633. package/src/workspace-deployment/identity.js.map +0 -1
  634. package/src/workspace-deployment/index.js.map +0 -1
  635. package/src/workspace-deployment/migration-evidence.js.map +0 -1
  636. package/src/workspace-deployment/migration.js.map +0 -1
  637. package/src/workspace-deployment/ownership.js.map +0 -1
@@ -7,8 +7,12 @@ export interface DeveloperAgentTargetInput {
7
7
  targetName: string;
8
8
  }
9
9
  export interface DeveloperAgentOperationRegistryOptions {
10
+ /** Full graph Slice inventory; a bounded selection cannot authorize root `all`. */
11
+ allSliceProjectNames?: readonly string[];
10
12
  exposedProjectNames?: readonly string[];
11
13
  externalOwnedProjectNames: readonly string[];
14
+ /** Diagnostic only: incomplete history retains the same conservative authority. */
15
+ externalOwnershipHistoryComplete?: boolean;
12
16
  namedInputDefinitions: readonly unknown[];
13
17
  reviewedExternalVerification?: readonly DeveloperAgentReviewedExternalVerification[];
14
18
  }
@@ -39,6 +43,7 @@ export declare class DeveloperAgentOperationRegistryError extends Error {
39
43
  export declare function joinDeveloperAgentAuthorityClasses(left: DeveloperAgentAuthorityClass, right: DeveloperAgentAuthorityClass): DeveloperAgentAuthorityClass | undefined;
40
44
  export declare function createDeveloperAgentOperationRegistry(projects: readonly {
41
45
  context: DeveloperAgentProjectContext;
46
+ localDev?: unknown;
42
47
  targets: Readonly<Record<string, TargetConfiguration>>;
43
48
  }[], options: DeveloperAgentOperationRegistryOptions): DeveloperAgentOperationRegistry;
44
49
  export declare function requireDeveloperAgentOperation(registry: DeveloperAgentOperationRegistry, id: string): DeveloperAgentSupportedOperation;
@@ -6,6 +6,7 @@ exports.createDeveloperAgentOperationRegistry = createDeveloperAgentOperationReg
6
6
  exports.requireDeveloperAgentOperation = requireDeveloperAgentOperation;
7
7
  exports.operationLooksMutating = operationLooksMutating;
8
8
  const node_util_1 = require("node:util");
9
+ const contracts_js_1 = require("../local-dev/contracts.js");
9
10
  const blueprint_trust_js_1 = require("../supply-chain/blueprint-trust.js");
10
11
  const model_js_1 = require("./model.js");
11
12
  const ordering_js_1 = require("./ordering.js");
@@ -41,7 +42,7 @@ function policyLifecycleActionForTarget(targetName) {
41
42
  if (exact('deploy', 'deploy-infrastructure', 'deploy-local', 'deployment-plan', 'foundation-ready')(targetName)) {
42
43
  return 'deploy';
43
44
  }
44
- if (exact('dev', 'dev-cleanup', 'dev-setup')(targetName))
45
+ if (exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'dev-setup')(targetName))
45
46
  return 'dev';
46
47
  if (exact('db-local-migrate', 'db-migrate')(targetName))
47
48
  return 'migrate';
@@ -102,20 +103,39 @@ function runScriptSignature(targetName, expectedScript, settings = {}) {
102
103
  function executorSignature(targetName, executor, options, dependsOn, settings = {}) {
103
104
  return {
104
105
  ...settings,
105
- ...(dependsOn ? { dependsOn: () => dependsOn } : {}),
106
+ ...(dependsOn
107
+ ? {
108
+ dependsOn: (input) => typeof dependsOn === 'function' ? dependsOn(input) : dependsOn,
109
+ }
110
+ : {}),
106
111
  executor,
107
112
  optionsMatch: options,
108
113
  targetName,
109
114
  };
110
115
  }
111
- const sliceVerifyDependencies = [
116
+ // Use the inspected target inventory, not the workspace-wide Foundation
117
+ // capability: a SQL-free Slice may coexist with a relational Slice. Any SQL
118
+ // target keeps the SQL prerequisites mandatory, including in a partial/tampered
119
+ // graph where db-check alone was removed.
120
+ function sliceDeclaresSql(input) {
121
+ return input.project.targets.some((name) => [
122
+ 'db-check',
123
+ 'db-generate',
124
+ 'db-migrate',
125
+ 'db-local-down',
126
+ 'db-local-migrate',
127
+ 'db-local-up',
128
+ 'db-retirement-rehearsal',
129
+ ].includes(name));
130
+ }
131
+ const sliceVerifyDependencies = (input) => [
112
132
  'api-contract-check',
113
133
  'async-verify',
114
134
  'authorization-check',
115
135
  'build',
116
136
  'contract-dependencies-check',
117
137
  'data-policy-check',
118
- 'db-check',
138
+ ...(sliceDeclaresSql(input) ? ['db-check'] : []),
119
139
  'frontend-boundaries',
120
140
  'lint',
121
141
  'performance-budget',
@@ -146,6 +166,7 @@ function sliceReleaseArtifactDependencies(input) {
146
166
  // external Blueprint verification instead enters through the exact protected
147
167
  // target-closure review passed to the registry below.
148
168
  const TARGET_SIGNATURES = [
169
+ runCommandSignature('verify-local-browser', 'node scripts/verify-local-browser.mjs', { forwardAllArgs: false }),
149
170
  runCommandSignature('api-contract-baseline', 'node --experimental-strip-types scripts/api-contract.mjs baseline', { forwardAllArgs: true }),
150
171
  runCommandSignature('api-contract-check', 'node --experimental-strip-types scripts/api-contract.mjs check', { forwardAllArgs: false }),
151
172
  runCommandSignature('api-contract-generate', 'node --experimental-strip-types scripts/api-contract.mjs generate', { forwardAllArgs: false }),
@@ -187,7 +208,7 @@ const TARGET_SIGNATURES = [
187
208
  runCommandSignature('async-workflow-recovery-report', 'node --experimental-strip-types scripts/async-recovery.mjs report workflow-recovery', { forwardAllArgs: false }),
188
209
  runCommandSignature('async-workflow-recovery-status', 'node --experimental-strip-types scripts/async-recovery.mjs status workflow-recovery', { forwardAllArgs: false }),
189
210
  runCommandSignature('async-verify', 'node --experimental-strip-types scripts/async-contract.mjs', { forwardAllArgs: false }),
190
- runCommandSignature('build', 'next build web', {
211
+ runCommandSignature('build', 'next build --webpack web', {
191
212
  dependsOn: ['secret-guardrails', 'typecheck'],
192
213
  env: { NODE_ENV: 'production' },
193
214
  }),
@@ -233,11 +254,22 @@ const TARGET_SIGNATURES = [
233
254
  runCommandSignature('data-restore-reconcile', 'node --experimental-strip-types scripts/data-restore-reconcile.mjs', { forwardAllArgs: true }),
234
255
  runCommandSignature('data-retention', 'node --experimental-strip-types scripts/data-retention.mjs', { forwardAllArgs: true }),
235
256
  runCommandSignature('deploy', 'node scripts/confirm-deploy.mjs', {
236
- dependsOn: [{ params: 'forward', target: 'db-migrate' }],
257
+ dependsOn: (input) => [
258
+ {
259
+ params: 'forward',
260
+ target: sliceDeclaresSql(input)
261
+ ? 'db-migrate'
262
+ : 'deploy-infrastructure',
263
+ },
264
+ ],
237
265
  forwardAllArgs: true,
238
266
  }),
239
267
  runCommandSignature('dev-prerequisite', 'node scripts/verify-live-mode.mjs', {
240
- dependsOn: ['db-check', 'secret-guardrails', 'typecheck'],
268
+ dependsOn: (input) => [
269
+ ...(sliceDeclaresSql(input) ? ['db-check'] : []),
270
+ 'secret-guardrails',
271
+ 'typecheck',
272
+ ],
241
273
  }),
242
274
  runCommandSignature('frontend-boundaries', 'node scripts/frontend-boundaries.mjs --output=.ebk/evidence/frontend/frontend-boundaries.json', { forwardAllArgs: false }),
243
275
  runCommandSignature('frontend-security-headers', 'node scripts/frontend-security-headers.mjs', {
@@ -412,7 +444,6 @@ const TARGET_SIGNATURES = [
412
444
  executorSignature('deploy-local', '@empire-builder-kit/nx:local-deploy', exactOptions(() => ({ stage: 'development' })), ['workspace-health'], { nonPlannableRationale: LOCAL_OWNER_ONLY_RATIONALE }),
413
445
  executorSignature('dev', '@empire-builder-kit/nx:fleet', exactOptions(() => ({})), undefined, {
414
446
  continuous: true,
415
- nonPlannableRationale: LOCAL_OWNER_ONLY_RATIONALE,
416
447
  }),
417
448
  executorSignature('developer-context', '@empire-builder-kit/nx:developer-context', exactOptions(() => ({}))),
418
449
  executorSignature('dev-doctor', '@empire-builder-kit/nx:dev-doctor', exactOptions(() => ({}))),
@@ -425,13 +456,24 @@ const TARGET_SIGNATURES = [
425
456
  stage: 'production',
426
457
  }))),
427
458
  executorSignature('secret-metadata', '@empire-builder-kit/nx:secret-metadata', exactOptions(() => ({ stage: 'development' }))),
428
- executorSignature('dev-cleanup', 'nx:noop', exactOptions(() => ({})), ['db-local-down', 'secret-personal-down']),
459
+ executorSignature('dev-cleanup', 'nx:run-commands', exactOptions((input) => ({
460
+ commands: [
461
+ ...(sliceDeclaresSql(input)
462
+ ? [`pnpm nx run ${input.project.name}:db-local-down`]
463
+ : []),
464
+ `pnpm nx run ${input.project.name}:secret-personal-down`,
465
+ ],
466
+ cwd: '.',
467
+ forwardAllArgs: false,
468
+ parallel: false,
469
+ })), ['dev-task-cleanup']),
470
+ executorSignature('dev-task-cleanup', '@empire-builder-kit/nx:dev-task-cleanup', exactOptions(() => ({}))),
429
471
  executorSignature('dev', '@empire-builder-kit/nx:dev', exactOptions((input) => ({
430
472
  cwd: input.project.root,
431
473
  stageMode: 'consumer',
432
- })), [
474
+ })), (input) => [
433
475
  'dev-prerequisite',
434
- 'db-local-migrate',
476
+ ...(sliceDeclaresSql(input) ? ['db-local-migrate'] : []),
435
477
  { params: 'forward', target: 'foundation-preflight' },
436
478
  ]),
437
479
  executorSignature('deploy-infrastructure', '@empire-builder-kit/nx:deploy', exactOptions((input) => ({
@@ -557,7 +599,7 @@ const TARGET_RULES = [
557
599
  contractClasses: ['database'],
558
600
  documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
559
601
  evidenceClasses: ['local-integration'],
560
- matches: exact('test-integration'),
602
+ matches: exact('test-integration', 'verify-local-browser'),
561
603
  requiredVerification: ['local-integration'],
562
604
  },
563
605
  {
@@ -566,7 +608,7 @@ const TARGET_RULES = [
566
608
  contractClasses: ['database', 'infrastructure'],
567
609
  documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
568
610
  evidenceClasses: ['local-integration'],
569
- matches: exact('dev', 'dev-cleanup', 'dev-setup', 'db-local-down', 'db-local-migrate', 'db-local-up', 'secret-personal-down'),
611
+ matches: exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'dev-setup', 'db-local-down', 'db-local-migrate', 'db-local-up', 'secret-personal-down'),
570
612
  requiredVerification: ['local-integration'],
571
613
  },
572
614
  {
@@ -610,7 +652,7 @@ const TARGET_RULES = [
610
652
  * owner. Value-blind generated-secret initialization is admitted only through
611
653
  * its exact report-first Nx target.
612
654
  */
613
- function localDevOperations(projects, externalOwnedProjectNames) {
655
+ function localDevOperations(projects, externalOwnedProjectNames, developmentClosures, blockedDevelopment) {
614
656
  const sliceNames = projects
615
657
  .map(({ context }) => context)
616
658
  .filter(({ tags }) => tags.includes('type:slice'))
@@ -646,7 +688,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
646
688
  id: `ebk-dev:${command}:${slice}`,
647
689
  owner: 'ebk-reconciler',
648
690
  policyLifecycleAction: 'dev',
649
- projects: [slice],
691
+ projects: developmentClosures.get(slice) ?? [slice],
650
692
  requiredVerification: ['ebk-dev:doctor'],
651
693
  });
652
694
  return [
@@ -661,7 +703,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
661
703
  readOnly('ebk-dev:status', ['dev', 'status', '--json']),
662
704
  ...sliceNames.flatMap((slice) => [
663
705
  readOnly(`ebk-dev:logs:${slice}`, ['dev', 'logs', slice, '--limit=200', '--json'], [slice]),
664
- ...(externalOwnedProjectNames.has(slice)
706
+ ...(externalOwnedProjectNames.has(slice) || blockedDevelopment.has(slice)
665
707
  ? []
666
708
  : [
667
709
  lifecycle('up', slice),
@@ -822,7 +864,17 @@ function reviewedExternalDependencies(input) {
822
864
  }
823
865
  function dependencyTargets(input, dependsOn, availableProjects, availableTargets) {
824
866
  const targets = [];
825
- for (const dependency of dependsOn) {
867
+ // The exact generated sequential composite invokes these targets after its
868
+ // native prerequisite; include their authority even though they are not
869
+ // sibling Nx prerequisites (which would execute before native cleanup).
870
+ const executionDependencies = input.targetName === 'dev-cleanup'
871
+ ? [
872
+ ...dependsOn,
873
+ ...(sliceDeclaresSql(input) ? ['db-local-down'] : []),
874
+ 'secret-personal-down',
875
+ ]
876
+ : dependsOn;
877
+ for (const dependency of executionDependencies) {
826
878
  if (typeof dependency === 'string') {
827
879
  if (dependency.startsWith('^')) {
828
880
  const targetName = dependency.slice(1);
@@ -1105,10 +1157,38 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1105
1157
  const namedInputRuntimeDetected = options.namedInputDefinitions.some(containsRuntimeInput);
1106
1158
  const exposedProjectNames = new Set(options.exposedProjectNames ?? projects.map(({ context }) => context.name));
1107
1159
  const externalOwnedProjectNames = new Set(options.externalOwnedProjectNames);
1160
+ const missingFleetSlice = options.allSliceProjectNames?.find((name) => !projects.some(({ context }) => context.name === name));
1161
+ const implicitFleetCrossesExternalOwnership = (input) => externalOwnedProjectNames.size > 0 &&
1162
+ input.target.executor === '@empire-builder-kit/nx:fleet';
1108
1163
  const exposedProjects = projects.filter(({ context }) => exposedProjectNames.has(context.name));
1109
- const operations = [
1110
- ...localDevOperations(exposedProjects, externalOwnedProjectNames),
1111
- ];
1164
+ const operations = [];
1165
+ const adapters = new Map();
1166
+ const developmentClosures = new Map();
1167
+ const developmentReasons = new Map();
1168
+ for (const project of projects) {
1169
+ if (project.localDev === undefined)
1170
+ continue;
1171
+ try {
1172
+ adapters.set(project.context.name, (0, contracts_js_1.validateLocalDevAdapter)(project.localDev));
1173
+ }
1174
+ catch {
1175
+ developmentReasons.set(project.context.name, `Slice ${project.context.name} has invalid local-development metadata; repair its versioned adapter before planning development.`);
1176
+ }
1177
+ }
1178
+ for (const name of adapters.keys()) {
1179
+ try {
1180
+ const closure = (0, contracts_js_1.resolveFleetSliceDependencies)(adapters, [name]);
1181
+ developmentClosures.set(name, closure);
1182
+ const external = closure.find((dependency) => externalOwnedProjectNames.has(dependency));
1183
+ if (external)
1184
+ developmentReasons.set(name, options.externalOwnershipHistoryComplete === false
1185
+ ? `Slice ${name} has history-unverified dependency ${external}; protected external-Blueprint history is incomplete. Retained-plan execution is unavailable until the configured protected history is available. Ordinary feature work may use the documented typed generator and inspected seeded/user-owned surfaces with focused Nx checks; do not invent external Blueprint trust.`
1186
+ : `Slice ${name} requires external-owned dependency ${external}; use its explicit Blueprint owner. External development contracts are not authenticated by this operation registry.`);
1187
+ }
1188
+ catch {
1189
+ developmentReasons.set(name, `Slice ${name} has an unresolved, cyclic, or invalid dependency Slice; repair its declared dependencySlices before planning development.`);
1190
+ }
1191
+ }
1112
1192
  const nonPlannableTargets = [];
1113
1193
  const unsupportedTargets = [];
1114
1194
  const orderedProjects = [...projects].sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.context.name, right.context.name));
@@ -1117,7 +1197,7 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1117
1197
  for (const [targetName, target] of Object.entries(project.targets)) {
1118
1198
  targetInputs.set(`${project.context.name}:${targetName}`, {
1119
1199
  namedInputRuntimeDetected,
1120
- project: project.context,
1200
+ project: { ...project.context, targets: Object.keys(project.targets) },
1121
1201
  target,
1122
1202
  targetName,
1123
1203
  });
@@ -1168,7 +1248,10 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1168
1248
  authentication.set(id, false);
1169
1249
  return false;
1170
1250
  }
1171
- if (input.namedInputRuntimeDetected) {
1251
+ if (input.namedInputRuntimeDetected ||
1252
+ (input.target.executor === '@empire-builder-kit/nx:fleet' &&
1253
+ missingFleetSlice !== undefined) ||
1254
+ implicitFleetCrossesExternalOwnership(input)) {
1172
1255
  authentication.set(id, false);
1173
1256
  return false;
1174
1257
  }
@@ -1202,6 +1285,35 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1202
1285
  }
1203
1286
  const nextActive = new Set(active);
1204
1287
  nextActive.add(id);
1288
+ if (input.target.executor === '@empire-builder-kit/nx:fleet') {
1289
+ for (const project of projects.filter(({ context }) => context.tags.includes('type:slice'))) {
1290
+ if (!authenticate(`${project.context.name}:${adapters.get(project.context.name)?.target ?? 'dev'}`, nextActive)) {
1291
+ authentication.set(id, false);
1292
+ return false;
1293
+ }
1294
+ }
1295
+ }
1296
+ if (input.targetName === (adapters.get(input.project.name)?.target ?? 'dev')) {
1297
+ if (developmentReasons.has(input.project.name)) {
1298
+ authentication.set(id, false);
1299
+ return false;
1300
+ }
1301
+ for (const name of developmentClosures.get(input.project.name) ?? []) {
1302
+ if (name === input.project.name)
1303
+ continue;
1304
+ const dependencyAdapter = adapters.get(name);
1305
+ if (!dependencyAdapter) {
1306
+ authentication.set(id, false);
1307
+ return false;
1308
+ }
1309
+ const dependencyId = `${name}:${dependencyAdapter.target}`;
1310
+ if (!authenticate(dependencyId, nextActive)) {
1311
+ developmentReasons.set(input.project.name, `Slice ${input.project.name} requires non-plannable dependency ${dependencyId}; use that dependency's explicit owner before planning development.`);
1312
+ authentication.set(id, false);
1313
+ return false;
1314
+ }
1315
+ }
1316
+ }
1205
1317
  const authenticated = dependencies.every((dependency) => authenticate(dependency.id, nextActive));
1206
1318
  authentication.set(id, authenticated);
1207
1319
  return authenticated;
@@ -1238,7 +1350,24 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1238
1350
  composedInvocations.set(memoKey, null);
1239
1351
  return undefined;
1240
1352
  }
1241
- const dependencies = dependencyTargetsForOperation.map((dependency) => {
1353
+ const allDependencyTargets = [...dependencyTargetsForOperation];
1354
+ const developmentProjects = input.target.executor === '@empire-builder-kit/nx:fleet'
1355
+ ? projects
1356
+ .filter(({ context }) => context.tags.includes('type:slice'))
1357
+ .map(({ context }) => context.name)
1358
+ : input.targetName === adapters.get(input.project.name)?.target
1359
+ ? (developmentClosures.get(input.project.name) ?? []).filter((name) => name !== input.project.name)
1360
+ : [];
1361
+ for (const name of developmentProjects) {
1362
+ const dependencyId = `${name}:${adapters.get(name)?.target ?? 'dev'}`;
1363
+ if (!allDependencyTargets.some(({ id }) => id === dependencyId)) {
1364
+ allDependencyTargets.push({
1365
+ id: dependencyId,
1366
+ params: 'ignore',
1367
+ });
1368
+ }
1369
+ }
1370
+ const dependencies = allDependencyTargets.map((dependency) => {
1242
1371
  const composed = composeInvocation(dependency.id, dependency.params === 'forward' ? forwardedStage : undefined);
1243
1372
  if (!composed)
1244
1373
  return undefined;
@@ -1299,6 +1428,12 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1299
1428
  }
1300
1429
  }
1301
1430
  const authenticatedTargets = new Set([...targetInputs.keys()].filter((target) => compose(target) !== undefined));
1431
+ const blockedDevelopment = new Set(developmentReasons.keys());
1432
+ for (const [name, adapter] of adapters) {
1433
+ if (!authenticatedTargets.has(`${name}:${adapter.target}`))
1434
+ blockedDevelopment.add(name);
1435
+ }
1436
+ operations.push(...localDevOperations(exposedProjects, externalOwnedProjectNames, developmentClosures, blockedDevelopment));
1302
1437
  operations.push(...sourceEditOperations(exposedProjects, authenticatedTargets, workspaceVerification));
1303
1438
  for (const project of orderedProjects) {
1304
1439
  if (!exposedProjectNames.has(project.context.name))
@@ -1307,6 +1442,27 @@ function createDeveloperAgentOperationRegistry(projects, options) {
1307
1442
  const target = `${project.context.name}:${targetName}`;
1308
1443
  const input = targetInputs.get(target);
1309
1444
  const signature = input ? authenticatedTargetSignature(input) : undefined;
1445
+ if (input?.target.executor === '@empire-builder-kit/nx:fleet' &&
1446
+ missingFleetSlice !== undefined) {
1447
+ nonPlannableTargets.push({
1448
+ target,
1449
+ rationale: `Root Fleet development implicitly selects Slice ${missingFleetSlice} outside this bounded context. Select an owned Slice ebk-dev operation or inspect the full development target inventory first.`,
1450
+ });
1451
+ continue;
1452
+ }
1453
+ const developmentReason = developmentReasons.get(project.context.name);
1454
+ if (developmentReason &&
1455
+ targetName === (adapters.get(project.context.name)?.target ?? 'dev')) {
1456
+ nonPlannableTargets.push({ target, rationale: developmentReason });
1457
+ continue;
1458
+ }
1459
+ if (input && signature && implicitFleetCrossesExternalOwnership(input)) {
1460
+ nonPlannableTargets.push({
1461
+ target,
1462
+ rationale: 'This root Fleet target implicitly selects all Slices, including external-owned Blueprint targets outside the authenticated development execution boundary. Select an owned Slice ebk-dev operation or require an explicit external Blueprint development contract from its owner (Milestone 4).',
1463
+ });
1464
+ continue;
1465
+ }
1310
1466
  if (signature?.nonPlannableRationale &&
1311
1467
  !externalOwnedProjectNames.has(project.context.name)) {
1312
1468
  nonPlannableTargets.push({
@@ -21,6 +21,8 @@ export declare class DeferredDeveloperAgentTree implements Tree {
21
21
  isFile(path: string): boolean;
22
22
  children(path: string): string[];
23
23
  listChanges(): FileChange[];
24
+ /** Inspect pending configuration without adding parent edits to this transaction. */
25
+ hasPendingChange(path: string): boolean;
24
26
  changePermissions(path: string, mode: Mode): void;
25
27
  apply(): void;
26
28
  }
@@ -64,7 +64,9 @@ function developerAgentPreviewOwnershipModes(tree, target) {
64
64
  }
65
65
  add('', result.value);
66
66
  }
67
- if (target === 'foundation') {
67
+ if (target === 'foundation' ||
68
+ (target !== 'workspace' &&
69
+ tree.exists('packages/foundation/.ebk/ownership.json'))) {
68
70
  const source = tree.read('packages/foundation/.ebk/ownership.json', 'utf8');
69
71
  const result = (0, index_js_1.validateFoundationOwnershipRecord)(JSON.parse(source ?? 'null'));
70
72
  if (!result.valid) {
@@ -72,7 +74,7 @@ function developerAgentPreviewOwnershipModes(tree, target) {
72
74
  }
73
75
  add('packages/foundation', result.value);
74
76
  }
75
- else if (target !== 'workspace') {
77
+ if (target !== 'workspace' && target !== 'foundation') {
76
78
  const prefix = `packages/${target}`;
77
79
  const source = tree.read(`${prefix}/.ebk/ownership.json`, 'utf8');
78
80
  const result = (0, index_js_1.validateGeneratedOwnershipRecord)(JSON.parse(source ?? 'null'));
@@ -181,6 +183,16 @@ class DeferredDeveloperAgentTree {
181
183
  }))
182
184
  .sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.path, right.path));
183
185
  }
186
+ /** Inspect pending configuration without adding parent edits to this transaction. */
187
+ hasPendingChange(path) {
188
+ const normalized = canonicalPath(path);
189
+ return (this.changes.has(normalized) ||
190
+ (this.source instanceof DeferredDeveloperAgentTree
191
+ ? this.source.hasPendingChange(normalized)
192
+ : this.source
193
+ .listChanges()
194
+ .some((change) => change.path === normalized)));
195
+ }
184
196
  changePermissions(path, mode) {
185
197
  const contents = this.current(path);
186
198
  if (contents === null) {
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.developerAgentGeneratorPreviewSource = developerAgentGeneratorPreviewSource;
4
4
  function developerAgentGeneratorPreviewSource(context) {
5
+ if (context.git.commit === null) {
6
+ throw new Error('Commit-bound generator previews require an initial Git commit; local orientation and feature checks do not establish committed-source authority.');
7
+ }
5
8
  return {
6
9
  blueprintVersions: [...context.workspace.blueprintVersions],
7
10
  ...(context.workspace.candidateProvenance
@@ -482,10 +482,20 @@ function validateGitContext(value, path, issues) {
482
482
  return false;
483
483
  requireInteger(record.ahead, `${path}.ahead`, issues, 0, 1_000_000);
484
484
  requireInteger(record.behind, `${path}.behind`, issues, 0, 1_000_000);
485
- requireSafeString(record.commit, `${path}.commit`, issues, {
486
- maximumLength: 64,
487
- pattern: COMMIT_PATTERN,
488
- });
485
+ if (record.commit !== null) {
486
+ requireSafeString(record.commit, `${path}.commit`, issues, {
487
+ maximumLength: 64,
488
+ pattern: COMMIT_PATTERN,
489
+ });
490
+ }
491
+ else if (typeof record.branch !== 'string' ||
492
+ record.ahead !== 0 ||
493
+ record.behind !== 0 ||
494
+ has(record, 'upstream') ||
495
+ has(record, 'baseCommit') ||
496
+ has(record, 'headCommit')) {
497
+ addIssue(issues, `${path}.commit`, 'uncommitted state requires a symbolic branch without upstream or comparison authority');
498
+ }
489
499
  requireBoolean(record.concurrentChangeInspectionComplete, `${path}.concurrentChangeInspectionComplete`, issues);
490
500
  const concurrentChanges = requireArray(record.concurrentChanges, `${path}.concurrentChanges`, issues, MAX_CONCURRENT_PATHS);
491
501
  const concurrentPaths = new Set();
@@ -520,10 +530,12 @@ function validateGitContext(value, path, issues) {
520
530
  }
521
531
  requireInteger(concurrent.worktreeCount, `${entryPath}.worktreeCount`, issues, 1, 64);
522
532
  });
523
- requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
524
- maximumLength: 64,
525
- pattern: COMMIT_PATTERN,
526
- });
533
+ if (record.defaultBaseCommit !== null) {
534
+ requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
535
+ maximumLength: 64,
536
+ pattern: COMMIT_PATTERN,
537
+ });
538
+ }
527
539
  requireSafeString(record.defaultBaseRef, `${path}.defaultBaseRef`, issues, {
528
540
  maximumLength: MAX_PATH_LENGTH,
529
541
  });
@@ -6,6 +6,7 @@ const node_util_1 = require("node:util");
6
6
  const semver_1 = require("semver");
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_path_1 = require("node:path");
9
+ const contracts_js_1 = require("../local-dev/contracts.js");
9
10
  const index_js_1 = require("../ownership/index.js");
10
11
  const index_js_2 = require("../repository-policy/index.js");
11
12
  const index_js_3 = require("../work-markers/index.js");
@@ -222,7 +223,22 @@ function selectedDependencyClosureNodes(graph, selected) {
222
223
  const node = pending.pop();
223
224
  if (!node)
224
225
  continue;
225
- for (const { target } of graph.dependencies[node.name] ?? []) {
226
+ let localDependencies = [];
227
+ try {
228
+ const adapter = (0, contracts_js_1.validateLocalDevAdapter)(node.data.metadata?.['ebk']
229
+ ?.localDev);
230
+ if (adapter.adapterVersion === 3) {
231
+ localDependencies = adapter.dependencySlices;
232
+ }
233
+ }
234
+ catch {
235
+ // The operation registry rejects malformed metadata; do not traverse it.
236
+ }
237
+ const dependencyNames = new Set([
238
+ ...(graph.dependencies[node.name] ?? []).map(({ target }) => target),
239
+ ...localDependencies,
240
+ ]);
241
+ for (const target of dependencyNames) {
226
242
  const dependency = graph.nodes[target];
227
243
  if (!dependency || closure.has(target))
228
244
  continue;
@@ -612,7 +628,7 @@ function protectedExternalBlueprintVerification(root, frameworkVersion, records,
612
628
  git.defaultBaseRef === 'refs/remotes/origin/develop'
613
629
  ? 'develop'
614
630
  : undefined;
615
- if (!protectedBranch)
631
+ if (!protectedBranch || !git.commit || !git.defaultBaseCommit)
616
632
  return unavailable();
617
633
  const configurationPaths = (0, blueprint_verification_authority_js_1.assertNoMutableBlueprintVerificationConfiguration)(root);
618
634
  (0, blueprint_verification_authority_js_1.assertBlueprintVerificationNxAuthority)(readBoundedWorkspaceFile(root, 'nx.json', 'Blueprint verification Nx authority', MAX_CONTROL_JSON_BYTES).bytes.toString('utf8'));
@@ -1083,12 +1099,17 @@ function inspectDeveloperAgentWorkspace(options) {
1083
1099
  const marker = markerContext(root);
1084
1100
  const projectTargets = registryNodes.map((node) => ({
1085
1101
  context: projectContext(options.graph, node),
1102
+ localDev: node.data.metadata?.['ebk']?.localDev,
1086
1103
  targets: (node.data.targets ?? {}),
1087
1104
  }));
1088
1105
  const externalVerification = protectedExternalBlueprintVerification(root, versions.workspace.frameworkVersion, ownership.records, options.graph, new Set(registryNodes.map(({ name }) => name)), options.blueprintTrustNow ?? new Date().toISOString(), options.git);
1089
1106
  const operationRegistry = (0, operation_registry_js_1.createDeveloperAgentOperationRegistry)(projectTargets, {
1107
+ allSliceProjectNames: Object.values(options.graph.nodes)
1108
+ .filter((node) => node.data.tags?.includes('type:slice'))
1109
+ .map(({ name }) => name),
1090
1110
  exposedProjectNames: nodes.map(({ name }) => name),
1091
1111
  externalOwnedProjectNames: externalOwnedProjectNames(root, registryNodes, externalOwnershipRoots, options.externalOwnershipHistory, foundationProjectName),
1112
+ externalOwnershipHistoryComplete: options.externalOwnershipHistory.complete,
1092
1113
  namedInputDefinitions: [
1093
1114
  options.workspaceNamedInputs ?? { runtime: 'uninspected' },
1094
1115
  ...Object.values(options.graph.nodes).map((node) => node.data.namedInputs ?? {}),
@@ -1109,13 +1130,26 @@ function inspectDeveloperAgentWorkspace(options) {
1109
1130
  ...externalVerification.warnings,
1110
1131
  ...unsupportedWarnings,
1111
1132
  ]);
1133
+ // The name "verify" alone is not a framework verification obligation.
1134
+ // Adopter-owned authoring projects may run arbitrary recipe checks; they
1135
+ // remain visible but cannot inject authority into an unrelated operation.
1136
+ // Keep generated obligations even when their implementation is tampered
1137
+ // with, so planning still refuses unauthenticated required verification.
1138
+ const governedProjectNames = new Set([
1139
+ identity.name,
1140
+ ...(foundationProjectName ? [foundationProjectName] : []),
1141
+ ...ownership.records.flatMap(({ slice }) => slice ? [slice.slice, ...slice.projects] : []),
1142
+ ]);
1143
+ const authenticatedTargets = new Set(operationRegistry.authenticatedTargets);
1112
1144
  const requiredVerification = [
1113
1145
  ...new Set([
1114
1146
  ...ownership.records.flatMap((record) => record.slice && selectedProjectNames.has(record.slice.slice)
1115
1147
  ? record.slice.verification.map((target) => `${record.slice.slice}:${target}`)
1116
1148
  : []),
1117
1149
  ...projects
1118
- .filter(({ targets }) => targets.includes('verify'))
1150
+ .filter(({ name, targets }) => targets.includes('verify') &&
1151
+ (governedProjectNames.has(name) ||
1152
+ authenticatedTargets.has(`${name}:verify`)))
1119
1153
  .map(({ name }) => `${name}:verify`),
1120
1154
  ]),
1121
1155
  ].sort();
@@ -7,3 +7,5 @@ interface DeploymentPlanOptions {
7
7
  }
8
8
  declare const executor: PromiseExecutor<DeploymentPlanOptions>;
9
9
  export default executor;
10
+ /** Derive protected OCI work from the committed inventory, not Slice existence. */
11
+ export declare function hasContainerArtifacts(value: unknown): boolean;