@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
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PRIVATE_STATE_MAX_BYTES = exports.PRIVATE_FILE_MODE = exports.PRIVATE_DIRECTORY_MODE = void 0;
4
+ exports.hardenPrivatePath = hardenPrivatePath;
4
5
  exports.assertPrivatePath = assertPrivatePath;
5
6
  exports.ensurePrivateDirectory = ensurePrivateDirectory;
6
7
  exports.createPrivateFileExclusive = createPrivateFileExclusive;
8
+ exports.publishPrivateFileExclusive = publishPrivateFileExclusive;
7
9
  exports.atomicWritePrivateFile = atomicWritePrivateFile;
10
+ exports.atomicWritePrivateFileWithMaximumBytes = atomicWritePrivateFileWithMaximumBytes;
8
11
  exports.readPrivateFile = readPrivateFile;
9
12
  const node_child_process_1 = require("node:child_process");
10
13
  const node_crypto_1 = require("node:crypto");
@@ -17,34 +20,39 @@ exports.PRIVATE_FILE_MODE = 0o600;
17
20
  exports.PRIVATE_STATE_MAX_BYTES = 64 * 1024;
18
21
  const WINDOWS_HARDEN_ACL = String.raw `
19
22
  $ErrorActionPreference = 'Stop'
20
- $path = $env:EBK_PRIVATE_PATH
21
23
  $kind = $env:EBK_PRIVATE_KIND
22
24
  $identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
23
- if ($kind -eq 'directory') {
24
- $info = [System.IO.DirectoryInfo]::new($path)
25
- } else {
26
- $info = [System.IO.FileInfo]::new($path)
25
+ # Every path in one invocation: a PowerShell start costs seconds on hosted
26
+ # Windows runners, so the levels a private directory creates are hardened
27
+ # together rather than one process per level.
28
+ foreach ($path in ($env:EBK_PRIVATE_PATHS -split [char]10)) {
29
+ if ($path.Length -eq 0) { continue }
30
+ if ($kind -eq 'directory') {
31
+ $info = [System.IO.DirectoryInfo]::new($path)
32
+ } else {
33
+ $info = [System.IO.FileInfo]::new($path)
34
+ }
35
+ $acl = $info.GetAccessControl()
36
+ $acl.SetAccessRuleProtection($true, $false)
37
+ foreach ($rule in @($acl.Access)) {
38
+ [void]$acl.RemoveAccessRuleSpecific($rule)
39
+ }
40
+ $rights = [System.Security.AccessControl.FileSystemRights]::FullControl
41
+ $type = [System.Security.AccessControl.AccessControlType]::Allow
42
+ if ($kind -eq 'directory') {
43
+ $inheritance = [System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
44
+ $propagation = [System.Security.AccessControl.PropagationFlags]::None
45
+ $rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
46
+ $identity.User, $rights, $inheritance, $propagation, $type
47
+ )
48
+ } else {
49
+ $rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
50
+ $identity.User, $rights, $type
51
+ )
52
+ }
53
+ $acl.AddAccessRule($rule)
54
+ $info.SetAccessControl($acl)
27
55
  }
28
- $acl = $info.GetAccessControl()
29
- $acl.SetAccessRuleProtection($true, $false)
30
- foreach ($rule in @($acl.Access)) {
31
- [void]$acl.RemoveAccessRuleSpecific($rule)
32
- }
33
- $rights = [System.Security.AccessControl.FileSystemRights]::FullControl
34
- $type = [System.Security.AccessControl.AccessControlType]::Allow
35
- if ($kind -eq 'directory') {
36
- $inheritance = [System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
37
- $propagation = [System.Security.AccessControl.PropagationFlags]::None
38
- $rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
39
- $identity.User, $rights, $inheritance, $propagation, $type
40
- )
41
- } else {
42
- $rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
43
- $identity.User, $rights, $type
44
- )
45
- }
46
- $acl.AddAccessRule($rule)
47
- $info.SetAccessControl($acl)
48
56
  `;
49
57
  const WINDOWS_ASSERT_PRIVATE_ACL = String.raw `
50
58
  $ErrorActionPreference = 'Stop'
@@ -57,8 +65,16 @@ if ($kind -eq 'directory') {
57
65
  $info = [System.IO.FileInfo]::new($path)
58
66
  }
59
67
  $acl = $info.GetAccessControl()
68
+ # A refusal names the descriptor it saw (owner, protection, every rule with
69
+ # its inheritance flag) so a wrong ACL can be attributed to what wrote it.
70
+ $describe = {
71
+ $rules = @($acl.Access | ForEach-Object {
72
+ "$($_.IdentityReference)=$($_.FileSystemRights):$($_.AccessControlType):inherited=$($_.IsInherited)"
73
+ }) -join '; '
74
+ "owner=$($acl.Owner); protected=$($acl.AreAccessRulesProtected); user=$($identity.User.Value); rules=[$rules]"
75
+ }
60
76
  if (-not $acl.AreAccessRulesProtected) {
61
- throw 'ACL inheritance is enabled.'
77
+ throw "ACL inheritance is enabled: $(& $describe)"
62
78
  }
63
79
  $allowRules = @($acl.Access | Where-Object {
64
80
  $_.AccessControlType -eq [System.Security.AccessControl.AccessControlType]::Allow
@@ -70,10 +86,10 @@ $selfRules = @($allowRules | Where-Object {
70
86
  $_.IdentityReference.Translate([System.Security.Principal.SecurityIdentifier]).Value -eq $identity.User.Value
71
87
  })
72
88
  if ($unsafeRules.Count -ne 0 -or $selfRules.Count -eq 0) {
73
- throw 'ACL grants access beyond the current user or omits the current user.'
89
+ throw "ACL grants access beyond the current user or omits the current user: $(& $describe)"
74
90
  }
75
91
  `;
76
- function runWindowsAclScript(script, path, kind) {
92
+ function runWindowsAclScript(script, paths, kind) {
77
93
  const systemRoot = process.env.SystemRoot;
78
94
  if (!systemRoot) {
79
95
  throw new Error('SystemRoot is unavailable.');
@@ -89,7 +105,8 @@ function runWindowsAclScript(script, path, kind) {
89
105
  env: {
90
106
  ...process.env,
91
107
  EBK_PRIVATE_KIND: kind,
92
- EBK_PRIVATE_PATH: path,
108
+ EBK_PRIVATE_PATH: paths[0],
109
+ EBK_PRIVATE_PATHS: paths.join('\n'),
93
110
  },
94
111
  stdio: 'pipe',
95
112
  timeout: 15_000,
@@ -98,10 +115,13 @@ function runWindowsAclScript(script, path, kind) {
98
115
  }
99
116
  const defaultWindowsAcl = {
100
117
  assert(path, kind) {
101
- runWindowsAclScript(WINDOWS_ASSERT_PRIVATE_ACL, path, kind);
118
+ runWindowsAclScript(WINDOWS_ASSERT_PRIVATE_ACL, [path], kind);
102
119
  },
103
120
  harden(path, kind) {
104
- runWindowsAclScript(WINDOWS_HARDEN_ACL, path, kind);
121
+ runWindowsAclScript(WINDOWS_HARDEN_ACL, [path], kind);
122
+ },
123
+ hardenAll(paths, kind) {
124
+ runWindowsAclScript(WINDOWS_HARDEN_ACL, paths, kind);
105
125
  },
106
126
  };
107
127
  function platformFor(security) {
@@ -120,7 +140,8 @@ function assertNotSymbolicLink(path, kind) {
120
140
  throw new errors_js_1.LocalDevContractError('invalid-state', `Private path ${path} is not a ${kind}.`);
121
141
  }
122
142
  }
123
- function hardenPrivatePath(path, kind, security) {
143
+ /** @internal */
144
+ function hardenPrivatePath(path, kind, security = {}) {
124
145
  try {
125
146
  if (platformFor(security) === 'win32') {
126
147
  windowsAclFor(security).harden(path, kind);
@@ -133,6 +154,26 @@ function hardenPrivatePath(path, kind, security) {
133
154
  throw new errors_js_1.LocalDevContractError('invalid-state', `Unable to restrict private ${kind} ${path}: ${error instanceof Error ? error.message : String(error)}`);
134
155
  }
135
156
  }
157
+ /** Harden several paths of one kind, in one platform invocation where the
158
+ * platform supports it. */
159
+ function hardenPrivatePaths(paths, kind, security) {
160
+ if (paths.length === 0)
161
+ return;
162
+ if (platformFor(security) === 'win32') {
163
+ const acl = windowsAclFor(security);
164
+ if (acl.hardenAll && paths.length > 1) {
165
+ try {
166
+ acl.hardenAll(paths, kind);
167
+ }
168
+ catch (error) {
169
+ throw new errors_js_1.LocalDevContractError('invalid-state', `Unable to restrict private ${kind} ${paths.join(', ')}: ${error instanceof Error ? error.message : String(error)}`);
170
+ }
171
+ return;
172
+ }
173
+ }
174
+ for (const path of paths)
175
+ hardenPrivatePath(path, kind, security);
176
+ }
136
177
  function assertPrivatePath(path, kind, security = {}) {
137
178
  try {
138
179
  assertNotSymbolicLink(path, kind);
@@ -156,17 +197,51 @@ function assertPrivatePath(path, kind, security = {}) {
156
197
  function ensurePrivateDirectory(path, security = {}) {
157
198
  if ((0, node_fs_1.existsSync)(path)) {
158
199
  assertNotSymbolicLink(path, 'directory');
200
+ hardenPrivatePath(path, 'directory', security);
159
201
  }
160
202
  else {
161
- (0, node_fs_1.mkdirSync)(path, { mode: exports.PRIVATE_DIRECTORY_MODE, recursive: true });
162
- assertNotSymbolicLink(path, 'directory');
203
+ // Create and harden every missing level, not only the leaf: a recursive
204
+ // mkdir applies the POSIX mode to each level it creates, but Windows ACL
205
+ // protection is applied per path, and an ancestor created implicitly
206
+ // (the common `.git/ebk` of a linked worktree's registry) kept inherited
207
+ // access and was refused on the next read (run 34709123641). The levels
208
+ // are hardened in one platform invocation.
209
+ const missing = [];
210
+ let current = path;
211
+ while (!(0, node_fs_1.existsSync)(current)) {
212
+ missing.push(current);
213
+ const parent = (0, node_path_1.dirname)(current);
214
+ if (parent === current)
215
+ break;
216
+ current = parent;
217
+ }
218
+ missing.reverse();
219
+ for (const level of missing) {
220
+ try {
221
+ (0, node_fs_1.mkdirSync)(level, { mode: exports.PRIVATE_DIRECTORY_MODE });
222
+ }
223
+ catch (error) {
224
+ // A concurrent owner may have created this level first; it is
225
+ // hardened and asserted like every other level.
226
+ if (!error ||
227
+ typeof error !== 'object' ||
228
+ !('code' in error) ||
229
+ error.code !== 'EEXIST') {
230
+ throw error;
231
+ }
232
+ }
233
+ assertNotSymbolicLink(level, 'directory');
234
+ }
235
+ hardenPrivatePaths(missing, 'directory', security);
163
236
  }
164
- hardenPrivatePath(path, 'directory', security);
165
237
  assertPrivatePath(path, 'directory', security);
166
238
  }
167
- function assertBoundedContents(contents) {
168
- if (Buffer.byteLength(contents) > exports.PRIVATE_STATE_MAX_BYTES) {
169
- throw new errors_js_1.LocalDevContractError('invalid-state', `Private state exceeds ${exports.PRIVATE_STATE_MAX_BYTES} bytes.`);
239
+ function assertBoundedContents(contents, maximumBytes = exports.PRIVATE_STATE_MAX_BYTES) {
240
+ if (!Number.isSafeInteger(maximumBytes) || maximumBytes <= 0) {
241
+ throw new errors_js_1.LocalDevContractError('invalid-state', 'Private state maximum bytes must be a positive safe integer.');
242
+ }
243
+ if (Buffer.byteLength(contents) > maximumBytes) {
244
+ throw new errors_js_1.LocalDevContractError('invalid-state', `Private state exceeds ${maximumBytes} bytes.`);
170
245
  }
171
246
  }
172
247
  function writeOpenedFile(descriptor, contents) {
@@ -209,8 +284,31 @@ function createPrivateFileExclusive(path, contents, security = {}) {
209
284
  throw error;
210
285
  }
211
286
  }
212
- function atomicWritePrivateFile(path, contents, security = {}) {
213
- assertBoundedContents(contents);
287
+ /** Publish complete private bytes without replacing a concurrent winner.
288
+ * Unlike a lock file, a persistent data record must never be readable empty. */
289
+ function publishPrivateFileExclusive(path, contents, security = {}) {
290
+ const temporaryPath = (0, node_path_1.join)((0, node_path_1.dirname)(path), `.${(0, node_path_1.basename)(path)}.${(0, node_crypto_1.randomBytes)(12).toString('hex')}.new`);
291
+ if (!createPrivateFileExclusive(temporaryPath, contents, security)) {
292
+ throw new errors_js_1.LocalDevContractError('invalid-state', 'Unable to allocate private publication file.');
293
+ }
294
+ try {
295
+ (0, node_fs_1.linkSync)(temporaryPath, path);
296
+ return true;
297
+ }
298
+ catch (error) {
299
+ if (error &&
300
+ typeof error === 'object' &&
301
+ 'code' in error &&
302
+ error.code === 'EEXIST')
303
+ return false;
304
+ throw error;
305
+ }
306
+ finally {
307
+ (0, node_fs_1.unlinkSync)(temporaryPath);
308
+ }
309
+ }
310
+ function atomicWritePrivateFileWithin(path, contents, maximumBytes, security) {
311
+ assertBoundedContents(contents, maximumBytes);
214
312
  const directory = (0, node_path_1.dirname)(path);
215
313
  ensurePrivateDirectory(directory, security);
216
314
  if ((0, node_fs_1.existsSync)(path)) {
@@ -243,6 +341,14 @@ function atomicWritePrivateFile(path, contents, security = {}) {
243
341
  throw error;
244
342
  }
245
343
  }
344
+ function atomicWritePrivateFile(path, contents, security = {}) {
345
+ atomicWritePrivateFileWithin(path, contents, exports.PRIVATE_STATE_MAX_BYTES, security);
346
+ }
347
+ /** Write a caller-bounded private artifact without relaxing the default
348
+ * private-state limit for any existing authority or control file. */
349
+ function atomicWritePrivateFileWithMaximumBytes(path, contents, maximumBytes, security = {}) {
350
+ atomicWritePrivateFileWithin(path, contents, maximumBytes, security);
351
+ }
246
352
  function readPrivateFile(path, security = {}) {
247
353
  assertPrivatePath(path, 'file', security);
248
354
  const status = (0, node_fs_1.statSync)(path);
@@ -0,0 +1,4 @@
1
+ export declare const OWNED_PROCESS_SIGNAL_GRACE_MS = 10000;
2
+ export declare const OWNED_PROCESS_KILL_WAIT_MS = 5000;
3
+ /** Read-only existence check for an already-proved owned POSIX group. */
4
+ export declare function exactOwnedProcessGroupExists(pid: number): boolean;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OWNED_PROCESS_KILL_WAIT_MS = exports.OWNED_PROCESS_SIGNAL_GRACE_MS = void 0;
4
+ exports.exactOwnedProcessGroupExists = exactOwnedProcessGroupExists;
5
+ // The fleet owner must allow its SST child the same bounded settlement window.
6
+ exports.OWNED_PROCESS_SIGNAL_GRACE_MS = 10_000;
7
+ exports.OWNED_PROCESS_KILL_WAIT_MS = 5_000;
8
+ /** Read-only existence check for an already-proved owned POSIX group. */
9
+ function exactOwnedProcessGroupExists(pid) {
10
+ if (process.platform === 'win32' || !Number.isSafeInteger(pid) || pid <= 0) {
11
+ throw new Error('Exact owned POSIX process-group absence is unavailable.');
12
+ }
13
+ try {
14
+ process.kill(-pid, 0);
15
+ return true;
16
+ }
17
+ catch (error) {
18
+ if (typeof error === 'object' && error !== null && 'code' in error) {
19
+ if (error.code === 'ESRCH')
20
+ return false;
21
+ // Permission refusal cannot establish absence. Keep polling within the
22
+ // caller's deadline (including transient permission windows on exit).
23
+ if (error.code === 'EPERM')
24
+ return true;
25
+ }
26
+ throw error;
27
+ }
28
+ }
29
+ //# sourceMappingURL=process-group.js.map
@@ -5,5 +5,13 @@ export interface ProcessIdentityEffects {
5
5
  readFile?: (path: string) => string;
6
6
  run?: (executable: string, arguments_: readonly string[]) => string;
7
7
  }
8
+ /** Budget for one platform identity query. Windows answers through a
9
+ * PowerShell CIM query whose cold start alone exceeded three seconds on
10
+ * loaded hosted runners (PR 113, 2026-09-12); the budget bounds a hang, it
11
+ * is not a target, and an exhausted budget still refuses the identity. */
12
+ export declare const PROCESS_IDENTITY_QUERY_TIMEOUT_MS: Readonly<{
13
+ default: 3000;
14
+ win32: 30000;
15
+ }>;
8
16
  export declare function captureProcessIdentity(pid?: number, now?: Date, effects?: ProcessIdentityEffects): FleetProcessIdentity;
9
17
  export declare function probeProcessIdentity(identity: FleetProcessIdentity, effects?: ProcessIdentityEffects): ProcessIdentityProbe;
@@ -1,20 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROCESS_IDENTITY_QUERY_TIMEOUT_MS = void 0;
3
4
  exports.captureProcessIdentity = captureProcessIdentity;
4
5
  exports.probeProcessIdentity = probeProcessIdentity;
5
6
  const node_child_process_1 = require("node:child_process");
6
7
  const node_fs_1 = require("node:fs");
7
8
  const node_os_1 = require("node:os");
8
9
  const contract_validation_js_1 = require("./contract-validation.js");
10
+ /** Budget for one platform identity query. Windows answers through a
11
+ * PowerShell CIM query whose cold start alone exceeded three seconds on
12
+ * loaded hosted runners (PR 113, 2026-09-12); the budget bounds a hang, it
13
+ * is not a target, and an exhausted budget still refuses the identity. */
14
+ exports.PROCESS_IDENTITY_QUERY_TIMEOUT_MS = Object.freeze({
15
+ default: 3_000,
16
+ win32: 30_000,
17
+ });
18
+ // The current process's own start marker cannot change while it runs, so it
19
+ // is queried once per process (per platform) instead of once per lease,
20
+ // registration, or binding. Injected effects (tests, controlled probes) are
21
+ // never cached.
22
+ const ownMarkerCache = new Map();
9
23
  function processMarker(pid, effects = {}) {
10
24
  const targetPlatform = effects.platform ?? (0, node_os_1.platform)();
25
+ const injected = effects.exists !== undefined ||
26
+ effects.readFile !== undefined ||
27
+ effects.run !== undefined;
28
+ const cacheKey = `${targetPlatform}:${pid}`;
29
+ if (!injected && pid === process.pid && ownMarkerCache.has(cacheKey)) {
30
+ return ownMarkerCache.get(cacheKey);
31
+ }
32
+ const marker = queryProcessMarker(pid, targetPlatform, effects);
33
+ if (!injected && pid === process.pid && marker !== undefined) {
34
+ ownMarkerCache.set(cacheKey, marker);
35
+ }
36
+ return marker;
37
+ }
38
+ function queryProcessMarker(pid, targetPlatform, effects) {
11
39
  const exists = effects.exists ?? node_fs_1.existsSync;
12
40
  const readFile = effects.readFile ?? ((path) => (0, node_fs_1.readFileSync)(path, 'utf8'));
13
41
  const run = effects.run ??
14
42
  ((executable, arguments_) => (0, node_child_process_1.execFileSync)(executable, [...arguments_], {
15
43
  encoding: 'utf8',
16
44
  stdio: ['ignore', 'pipe', 'pipe'],
17
- timeout: 3_000,
45
+ timeout: targetPlatform === 'win32'
46
+ ? exports.PROCESS_IDENTITY_QUERY_TIMEOUT_MS.win32
47
+ : exports.PROCESS_IDENTITY_QUERY_TIMEOUT_MS.default,
18
48
  windowsHide: true,
19
49
  }).trim());
20
50
  try {
@@ -78,17 +78,20 @@ function responseHeaders(headers, upstream, options) {
78
78
  result['x-ebk-foundation-stage'] = options.foundationStage;
79
79
  return result;
80
80
  }
81
+ function mayUseDevelopment(request, options) {
82
+ return (options.safeMethodFallback === true &&
83
+ SAFE_METHODS.has(request.method?.toUpperCase() ?? 'GET') &&
84
+ request.headers.upgrade === undefined &&
85
+ request.headers['transfer-encoding'] === undefined &&
86
+ Number(request.headers['content-length'] ?? '0') === 0);
87
+ }
81
88
  function selectUpstream(request, options) {
82
89
  const requestUrl = new URL(request.url ?? '/', options.fleetOrigin);
83
90
  const route = routeFor(options.routes, requestUrl.pathname);
84
- if (!route || !route.selected) {
85
- return { route, type: 'development', url: options.remoteOrigin };
86
- }
87
- if (route.state === 'ready' && route.upstream) {
91
+ if (route?.selected && route.state === 'ready' && route.upstream) {
88
92
  return { route, type: 'local', url: route.upstream };
89
93
  }
90
- const method = request.method?.toUpperCase() ?? 'GET';
91
- if (options.safeMethodFallback && SAFE_METHODS.has(method)) {
94
+ if (mayUseDevelopment(request, options)) {
92
95
  return { route, type: 'development', url: options.remoteOrigin };
93
96
  }
94
97
  return undefined;
@@ -176,12 +179,7 @@ class FleetSessionProxy {
176
179
  response.end(`${JSON.stringify({ error: 'selected local slice is unavailable', route: request.url })}\n`);
177
180
  return;
178
181
  }
179
- const method = request.method?.toUpperCase() ?? 'GET';
180
- const mayRetryWithoutBody = selected.type === 'local' &&
181
- this.options.safeMethodFallback === true &&
182
- SAFE_METHODS.has(method) &&
183
- request.headers['transfer-encoding'] === undefined &&
184
- Number(request.headers['content-length'] ?? '0') === 0;
182
+ const mayRetryWithoutBody = selected.type === 'local' && mayUseDevelopment(request, this.options);
185
183
  let retried = false;
186
184
  const dispatch = (upstream, replay) => {
187
185
  const transport = upstream.url.protocol === 'https:' ? node_https_1.request : node_http_1.request;
@@ -231,6 +229,7 @@ class FleetSessionProxy {
231
229
  handleUpgrade(request, socket, head) {
232
230
  const selected = selectUpstream(request, this.options);
233
231
  if (!selected ||
232
+ selected.type !== 'local' ||
234
233
  (selected.type === 'local' && selected.route?.adapter?.websocket !== true)) {
235
234
  socket.end('HTTP/1.1 503 Service Unavailable\r\nConnection: close\r\n\r\n');
236
235
  return;
@@ -24,7 +24,7 @@ function fleetRuntimePaths(fleetId, appData = (0, tls_js_1.defaultLocalDevAppDat
24
24
  runnersDirectory: (0, node_path_1.join)(sessionDirectory, 'runners'),
25
25
  sessionDirectory,
26
26
  sessionsDirectory,
27
- sliceClaimsDirectory: (0, node_path_1.join)(normalizedAppData, 'slice-claims'),
27
+ sliceClaimsDirectory: (0, node_path_1.join)(normalizedAppData, 'slice-claims', normalizedFleetId),
28
28
  startup: (0, node_path_1.join)(sessionDirectory, 'startup.json'),
29
29
  state: (0, node_path_1.join)(sessionDirectory, 'control-state.json'),
30
30
  supervisorPid: (0, node_path_1.join)(sessionDirectory, 'supervisor.pid'),
@@ -138,7 +138,7 @@ function acquireSliceClaims(directory, slices, owner, options = {}) {
138
138
  sessionGeneration: owner.sessionGeneration,
139
139
  slice,
140
140
  });
141
- const created = (0, private_state_js_1.createPrivateFileExclusive)(sliceClaimPath(directory, slice), `${JSON.stringify(record, null, 2)}\n`, security);
141
+ const created = (0, private_state_js_1.publishPrivateFileExclusive)(sliceClaimPath(directory, slice), `${JSON.stringify(record, null, 2)}\n`, security);
142
142
  if (created) {
143
143
  acquired.push(slice);
144
144
  claims.push(record);
@@ -1,7 +1,7 @@
1
1
  import { spawn, type ChildProcess } from 'node:child_process';
2
2
  import type { FleetProcessIdentity, ProcessIdentityProbe } from './fleet-lock.js';
3
3
  import { terminateOwnedChild } from './fleet-process.js';
4
- import type { FleetStateRecord } from './fleet-state.js';
4
+ import { type FleetStateRecord } from './fleet-state.js';
5
5
  import { loadWorkspaceFleetPlan, resolveWorkspaceNxRuntime, spawnDeclaredNxTarget } from './nx-workspace.js';
6
6
  import { type PrivateStateSecurity } from './private-state.js';
7
7
  import { captureProcessIdentity } from './process-identity.js';
@@ -44,6 +44,15 @@ export interface LaunchedFleetSliceRunner {
44
44
  }
45
45
  export type FleetSliceRunnerExitReason = 'child-exit' | 'explicit-restart' | 'parent-lost' | 'termination';
46
46
  export declare function fleetSliceRunnerRequiresCleanup(reason: FleetSliceRunnerExitReason): boolean;
47
+ interface FleetSliceRunnerRestartRequest {
48
+ action: 'restart-without-cleanup';
49
+ createdAt: string;
50
+ fleetId: string;
51
+ runnerGeneration: string;
52
+ schemaVersion: typeof FLEET_SLICE_RUNNER_RESTART_SCHEMA_VERSION;
53
+ sessionGeneration: string;
54
+ slice: string;
55
+ }
47
56
  export declare function validateFleetSliceRunnerRequest(value: unknown): FleetSliceRunnerRequest;
48
57
  export declare function validateFleetSliceRunnerState(value: unknown): FleetSliceRunnerState;
49
58
  export declare function fleetSliceRunnerPaths(runnersDirectory: string, slice: string, runnerGeneration: string): {
@@ -51,6 +60,7 @@ export declare function fleetSliceRunnerPaths(runnersDirectory: string, slice: s
51
60
  restart: string;
52
61
  state: string;
53
62
  };
63
+ export declare function validateFleetSliceRunnerRestartRequest(value: unknown): FleetSliceRunnerRestartRequest;
54
64
  export declare function requestFleetSliceRunnerRestart(launched: Pick<LaunchedFleetSliceRunner, 'request' | 'restartPath' | 'statePath'>, effects?: {
55
65
  now?: () => Date;
56
66
  security?: PrivateStateSecurity;
@@ -81,7 +91,7 @@ export declare function runnerParentStatus(request: FleetSliceRunnerRequest, opt
81
91
  processProbe?: ProcessIdentityProbe;
82
92
  security?: PrivateStateSecurity;
83
93
  }): 'ambiguous' | 'lost' | 'present';
84
- export declare function runFleetSliceRunner(requestPath: string, options?: {
94
+ declare function runFleetSliceRunnerCore(requestPath: string, options: {
85
95
  loadPlan?: typeof loadWorkspaceFleetPlan;
86
96
  monitorIntervalMs?: number;
87
97
  now?: () => Date;
@@ -92,30 +102,29 @@ export declare function runFleetSliceRunner(requestPath: string, options?: {
92
102
  security?: PrivateStateSecurity;
93
103
  spawnTarget?: typeof spawnDeclaredNxTarget;
94
104
  terminate?: typeof terminateOwnedChild;
95
- }): Promise<0 | 1>;
105
+ }, stopSignal: AbortSignal): Promise<0 | 1>;
106
+ export declare function runFleetSliceRunner(requestPath: string, options?: Parameters<typeof runFleetSliceRunnerCore>[1]): Promise<0 | 1>;
96
107
  export declare function assertFleetSliceRunnerCleanup(statePath: string, expected: Pick<FleetSliceRunnerRequest, 'fleetId' | 'runnerGeneration' | 'sessionGeneration' | 'slice'>, security?: PrivateStateSecurity): void;
97
108
  export declare function retryFleetSliceRunnerCleanup(launched: Pick<LaunchedFleetSliceRunner, 'request' | 'requestPath' | 'statePath'>, effects?: {
98
109
  daemonPath?: string;
99
110
  processProbe?: (identity: FleetProcessIdentity) => ProcessIdentityProbe;
100
111
  security?: PrivateStateSecurity;
101
112
  spawn?: typeof spawn;
102
- timeoutMs?: number;
103
113
  }): Promise<void>;
104
114
  export declare function recoverFleetSliceRunnerCleanups(state: FleetStateRecord, paths: FleetRuntimePaths, effects?: {
105
115
  daemonPath?: string;
106
116
  processProbe?: (identity: FleetProcessIdentity) => ProcessIdentityProbe;
107
117
  security?: PrivateStateSecurity;
108
118
  spawn?: typeof spawn;
109
- timeoutMs?: number;
110
119
  }): Promise<void>;
111
120
  export declare function recoverFleetSliceRunnerCleanupsForSlices(authority: Pick<FleetSliceRunnerRequest, 'fleetId' | 'sessionGeneration'>, selectedSlices: ReadonlySet<string> | readonly string[], paths: FleetRuntimePaths, effects?: {
112
121
  daemonPath?: string;
113
122
  processProbe?: (identity: FleetProcessIdentity) => ProcessIdentityProbe;
114
123
  security?: PrivateStateSecurity;
115
124
  spawn?: typeof spawn;
116
- timeoutMs?: number;
117
125
  }): Promise<void>;
118
126
  export declare function inspectFleetRunnersAbsent(state: FleetStateRecord, paths: FleetRuntimePaths, effects?: {
119
127
  processProbe?: (identity: FleetProcessIdentity) => ProcessIdentityProbe;
120
128
  security?: PrivateStateSecurity;
121
129
  }): boolean | 'ambiguous';
130
+ export {};