@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
@@ -0,0 +1,683 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FOUNDATION_COST_ESTIMATE_END_MARKER = exports.FOUNDATION_COST_ESTIMATE_BEGIN_MARKER = exports.STANDARD_SLICE_COST_INVENTORY = exports.FOUNDATION_COST_INVENTORY = exports.FOUNDATION_LIST_PRICE_SNAPSHOT = void 0;
4
+ exports.foundationCostEstimateLabel = foundationCostEstimateLabel;
5
+ exports.nonproductionAuroraScalingLabel = nonproductionAuroraScalingLabel;
6
+ exports.renderFoundationCostEstimate = renderFoundationCostEstimate;
7
+ const index_js_1 = require("../repository-policy/index.js");
8
+ const capability_plan_js_1 = require("./capability-plan.js");
9
+ const router_waf_js_1 = require("./router-waf.js");
10
+ function price(usd, unit, offer, version, sku, rate, usageType, options = {}) {
11
+ return {
12
+ per: options.per ?? 1,
13
+ source: {
14
+ file: options.file ?? 'us-east-1',
15
+ offer,
16
+ rateCode: `${sku}.${rate}`,
17
+ sku,
18
+ usageType,
19
+ version,
20
+ },
21
+ unit,
22
+ usd,
23
+ };
24
+ }
25
+ const MILLION = 1_000_000;
26
+ const TEN_THOUSAND = 10_000;
27
+ const THOUSAND = 1_000;
28
+ exports.FOUNDATION_LIST_PRICE_SNAPSHOT = {
29
+ capturedOn: '2026-10-02',
30
+ currency: 'USD',
31
+ hoursPerMonth: 730,
32
+ offerFileUrlTemplate: 'https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/<offer>/<version>/<file>/index.json',
33
+ region: { code: 'us-east-1', name: 'US East (N. Virginia)' },
34
+ // prettier-ignore
35
+ prices: {
36
+ apiGatewayHttpRequests: price('0.0000010000', 'million requests (first 300 million)', 'AmazonApiGateway', '20260921231404', 'FC2TWT2UEPTBKVBX', 'JRTCKXETXF.9NXBCPDZYR', 'USE1-ApiGatewayHttpRequest', { per: MILLION }),
37
+ appConfigConfigurationRequests: price('0.0000002000', 'million configuration requests', 'AWSSystemsManager', '20260911124619', '83YNJDGH6F8RN675', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-AppConfig-Requests', { per: MILLION }),
38
+ appConfigConfigurationsReceived: price('0.0008000000', 'configuration received', 'AWSSystemsManager', '20260911124619', 'ZHBBQT53NUZ69GUP', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-AppConfig-Deployments'),
39
+ auroraPostgresBackup: price('0.0210000000', 'GB-month beyond the free allocation', 'AmazonRDS', '20261001060230', 'AYEW6PNFPJSSTGH7', 'JRTCKXETXF.6YS6EN2CT7', 'Aurora:BackupUsage'),
40
+ auroraPostgresIo: price('0.0000002000', 'million I/O requests', 'AmazonRDS', '20261001060230', '7JDSZP38DMKT9B86', 'JRTCKXETXF.6YS6EN2CT7', 'Aurora:StorageIOUsage', { per: MILLION }),
41
+ auroraPostgresServerlessV2Acu: price('0.1200000000', 'ACU-hour', 'AmazonRDS', '20261001060230', 'AVKW7ZJP8D72HNQC', 'JRTCKXETXF.6YS6EN2CT7', 'Aurora:ServerlessV2Usage'),
42
+ auroraPostgresStorage: price('0.1000000000', 'GB-month', 'AmazonRDS', '20261001060230', '7GYUVAA992PFJPCB', 'JRTCKXETXF.6YS6EN2CT7', 'Aurora:StorageUsage'),
43
+ cloudFrontDataTransferOut: price('0.0850000000', 'GB (first 10 TB, United States edge)', 'AmazonCloudFront', '20260916132208', 'GV2WFGX37Q9PDSHF', 'JRTCKXETXF.Q3Z75P77EN', 'US-DataTransfer-Out-Bytes', { file: 'aws-other' }),
44
+ cloudFrontHttpsRequests: price('0.0000010000', '10,000 HTTPS requests (United States edge)', 'AmazonCloudFront', '20260916132208', 'NPFD6SEH9MXS8M4J', 'JRTCKXETXF.6YS6EN2CT7', 'US-Requests-Tier2-HTTPS', { file: 'aws-other', per: TEN_THOUSAND }),
45
+ cloudWatchAlarmMetric: price('0.1000000000', 'alarm metric-month', 'AmazonCloudWatch', '20260922021715', 'EVETVUGEN3MUTMXM', 'JRTCKXETXF.6YS6EN2CT7', 'CW:AlarmMonitorUsage'),
46
+ cloudWatchCustomMetric: price('0.3000000000', 'metric-month (first 10,000)', 'AmazonCloudWatch', '20260922021715', 'KG586CTNGQ4VRZKZ', 'JRTCKXETXF.A6VD9GXV7W', 'CW:MetricMonitorUsage'),
47
+ cloudWatchDashboard: price('3.0000000000', 'dashboard-month', 'AmazonCloudWatch', '20260922021715', '8AWBXE5MPQY58BK4', 'JRTCKXETXF.6YS6EN2CT7', 'DashboardsUsageHour', { file: 'aws-other' }),
48
+ cloudWatchLogsDataProtection: price('0.1200000000', 'GB scanned', 'AmazonCloudWatch', '20260922021715', '2G2RG8TB9A6ZVN56', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-DataProtection-Bytes'),
49
+ cloudWatchLogsIngest: price('0.5000000000', 'GB ingested (Standard class)', 'AmazonCloudWatch', '20260922021715', 'S8QGXX5R2BKKMDSJ', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-DataProcessing-Bytes'),
50
+ cloudWatchLogsStorage: price('0.0300000000', 'GB-month stored', 'AmazonCloudWatch', '20260922021715', '6K9ADYQAHV5KX9KZ', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-TimedStorage-ByteHrs'),
51
+ cognitoEssentialsMau: price('0.0150000000', 'monthly active user (Essentials)', 'AmazonCognito', '20260925193108', 'XVYWD6TWRYVQWN85', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-CognitoEssentialsMAU'),
52
+ cognitoLiteMau: price('0.0055000000', 'monthly active user (Lite, first 90,000)', 'AmazonCognito', '20260925193108', 'QA55XHQT8NAY3D4U', 'JRTCKXETXF.VV2AUKAVFP', 'USE1-CognitoLiteMAU'),
53
+ cognitoMachineAppClient: price('0.0000000000', 'app client-month (as published)', 'AmazonCognito', '20260925193108', '35WAS3YQUZX28BKP', 'JRTCKXETXF.ETY2894C67', 'USE1-CUPM2MAppClientsFull'),
54
+ cognitoMachineTokenRequest: price('0.0022500000', 'token request (first 250,000)', 'AmazonCognito', '20260925193108', 'KWC776HSBJBTMNS9', 'JRTCKXETXF.925HBHWMHV', 'USE1-CUPM2MTokenRequestsFull'),
55
+ dynamoDbPitrStorage: price('0.2000000000', 'GB-month', 'AmazonDynamoDB', '20260911124422', 'TFXQN9PEG62G7A67', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-TimedPITRStorage-ByteHrs'),
56
+ dynamoDbReadRequestUnits: price('0.0000001250', 'million read request units', 'AmazonDynamoDB', '20260911124422', '4W4ZMC46EHE8XTTZ', 'JRTCKXETXF.6YS6EN2CT7', 'ReadRequestUnits', { per: MILLION }),
57
+ dynamoDbStorage: price('0.2500000000', 'GB-month', 'AmazonDynamoDB', '20260911124422', 'F3E2EDSYC6ZNW7XP', 'JRTCKXETXF.VYAP54KATQ', 'TimedStorage-ByteHrs'),
58
+ dynamoDbWriteRequestUnits: price('0.0000006250', 'million write request units', 'AmazonDynamoDB', '20260911124422', 'FGXVD96DKJMUASY3', 'JRTCKXETXF.6YS6EN2CT7', 'WriteRequestUnits', { per: MILLION }),
59
+ ec2T4gNano: price('0.0042000000', 'instance-hour', 'AmazonEC2', '20260925174521', 'DU8E8NJG743V3F8M', 'JRTCKXETXF.6YS6EN2CT7', 'BoxUsage:t4g.nano'),
60
+ eventBridgeArchiveProcessed: price('0.1000000000', 'GB archived', 'AWSEvents', '20260924163903', '8B7RJEAZYT9BJB6W', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-ArchivedEvents-Bytes'),
61
+ eventBridgeArchiveStorage: price('0.0230000000', 'GB-month stored', 'AWSEvents', '20260924163903', 'KY5XTGQ8R4W34N4N', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-TimedStorage-ByteHrs'),
62
+ eventBridgeCustomEvents: price('0.0000010000', 'million custom events', 'AWSEvents', '20260924163903', 'ZA92ERYNKX457AJD', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-Event-64K-Chunks', { per: MILLION }),
63
+ fargateMemoryGbHour: price('0.0044450000', 'GB-hour', 'AmazonECS', '20260911124425', 'PBZNQUSEXZUC34C9', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-Fargate-GB-Hours'),
64
+ fargateVcpuHour: price('0.0404800000', 'vCPU-hour', 'AmazonECS', '20260911124425', '8CESGAFWKAJ98PME', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-Fargate-vCPU-Hours:perCPU'),
65
+ kmsKey: price('1.0000000000', 'key-month', 'awskms', '20260911124601', 'U553K98XGDXCYHWS', 'JRTCKXETXF.6YS6EN2CT7', 'us-east-1-KMS-Keys'),
66
+ kmsRequests: price('0.0000030000', '10,000 requests', 'awskms', '20260911124601', 'MFEBZPX8NHM5FY7Z', 'JRTCKXETXF.6YS6EN2CT7', 'us-east-1-KMS-Requests', { per: TEN_THOUSAND }),
67
+ lambdaComputeX86: price('0.0000166667', 'GB-second (x86)', 'AWSLambda', '20261001184746', 'TG3M4CAGBA3NYQBH', 'JRTCKXETXF.CUKFZ388N3', 'Lambda-GB-Second'),
68
+ lambdaRequests: price('0.0000002000', 'million requests', 'AWSLambda', '20261001184746', 'GU2ZS9HVP6QTQ7KE', 'JRTCKXETXF.6YS6EN2CT7', 'Request', { per: MILLION }),
69
+ natGatewayData: price('0.0450000000', 'GB processed', 'AmazonEC2', '20260925174521', '59S5R83GFPUAGVR5', 'JRTCKXETXF.6YS6EN2CT7', 'NatGateway-Bytes'),
70
+ natGatewayHour: price('0.0450000000', 'gateway-hour', 'AmazonEC2', '20260925174521', 'M2YSHUBETB3JX4M4', 'JRTCKXETXF.6YS6EN2CT7', 'NatGateway-Hours'),
71
+ publicIpv4InUse: price('0.0050000000', 'address-hour', 'AmazonVPC', '20260917190528', '4GQUNXTFWVSGPUZK', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-PublicIPv4:InUseAddress'),
72
+ route53HostedZone: price('0.5000000000', 'hosted zone-month (first 25)', 'AmazonRoute53', '20260911124504', 'KVPGEJE88UW8S779', 'JRTCKXETXF.G2A93NZ7DT', 'HostedZone', { file: 'aws-other' }),
73
+ s3StandardStorage: price('0.0230000000', 'GB-month (first 50 TB)', 'AmazonS3', '20260928230416', 'WP9ANXZGBYYSGJEA', 'JRTCKXETXF.PGHJ3S3EYE', 'TimedStorage-ByteHrs'),
74
+ secretsManagerApi: price('0.0000050000', '10,000 API requests', 'AWSSecretsManager', '20260911124610', '4MDZ5VNEJPMUTG9B', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-AWSSecretsManagerAPIRequest', { per: TEN_THOUSAND }),
75
+ secretsManagerSecret: price('0.4000000000', 'secret-month', 'AWSSecretsManager', '20260911124610', 'BJ3PQ9BYGU6P632F', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-AWSSecretsManager-Secrets'),
76
+ snsRequests: price('0.0000005000', 'million API requests', 'AmazonSNS', '20260915151944', 'QDX8G2WMY9NPXXPG', 'JRTCKXETXF.VNJQCFJPS4', 'Requests-Tier1', { per: MILLION }),
77
+ sqsFifoRequests: price('0.0000005000', 'million FIFO requests', 'AWSQueueService', '20260911124607', '624ZQ7K46KHFAD9Y', 'JRTCKXETXF.VXGXCWQKTY', 'Requests-FIFO-RBP', { per: MILLION }),
78
+ sqsStandardRequests: price('0.0000004000', 'million standard requests', 'AWSQueueService', '20260911124607', '8RN6B8U4MERHRXP3', 'JRTCKXETXF.VXGXCWQKTY', 'Requests-RBP', { per: MILLION }),
79
+ stepFunctionsStandardTransitions: price('0.0000250000', '1,000 state transitions', 'AmazonStates', '20260911124511', '5NX6NBD43SV57CH3', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-StateTransition', { per: THOUSAND }),
80
+ wafRequests: price('0.0000006000', 'million requests', 'awswaf', '20260914163921', '94S3KGQ8C7XGQFSJ', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-RequestV2-Tier1', { per: MILLION }),
81
+ wafRule: price('1.0000000000', 'rule-month', 'awswaf', '20260914163921', 'JGH3VFMTQFNJUV5W', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-RuleV2'),
82
+ wafWebAcl: price('5.0000000000', 'web ACL-month', 'awswaf', '20260914163921', 'KF2QAJUBXF7XNYSM', 'JRTCKXETXF.6YS6EN2CT7', 'USE1-WebACLV2'),
83
+ },
84
+ };
85
+ /**
86
+ * Generated Foundation quantities that are literals in the Foundation template
87
+ * or inside SST 4.17.1 components rather than in a framework contract. The
88
+ * cost-estimate count-drift spec executes the generated Foundation and fails
89
+ * when any of these differ from what the generator constructs.
90
+ */
91
+ exports.FOUNDATION_COST_INVENTORY = {
92
+ /** One CloudFront Router Web ACL per stage. */
93
+ wafWebAcls: 1,
94
+ /** One Foundation CloudWatch dashboard per stage. */
95
+ dashboards: 1,
96
+ /** Declared network: `az: 2`, one Elastic IP and one NAT unit per public subnet. */
97
+ availabilityZones: 2,
98
+ /** SST Vpc Cloud Map private DNS namespace (a Route 53 private hosted zone). */
99
+ privateHostedZones: 1,
100
+ /** Declared nonproduction NAT mode; production uses its capacity contract. */
101
+ nonproductionNat: 'ec2',
102
+ /** SST Aurora master credential secret. */
103
+ auroraMasterSecrets: 1,
104
+ /** Declared SQL Foundation alarm metrics (Aurora capacity alarm). */
105
+ sqlAlarmMetrics: 1,
106
+ /** Declared nonproduction Aurora scaling. */
107
+ nonproductionAurora: {
108
+ development: { max: '2 ACU', min: '0 ACU', pauseAfter: '5 minutes' },
109
+ staging: { max: '4 ACU', min: '0 ACU', pauseAfter: '5 minutes' },
110
+ },
111
+ /** Seeded Router WAF access: nonproduction allowlist, production public. */
112
+ routerWafAccess: {
113
+ development: 'allowlist',
114
+ staging: 'allowlist',
115
+ production: 'public',
116
+ },
117
+ };
118
+ /**
119
+ * Per-stage fixed inventory of one default Standard Slice (no async adapters,
120
+ * performance load off). The count-drift spec renders and executes the
121
+ * generated Slice infrastructure and fails when these differ.
122
+ */
123
+ exports.STANDARD_SLICE_COST_INVENTORY = {
124
+ sqlFree: {
125
+ alarms: 54,
126
+ alarmMetrics: 63,
127
+ dashboards: 1,
128
+ dataProtectedLogGroups: 28,
129
+ kmsKeys: 1,
130
+ machineClients: 1,
131
+ secrets: 1,
132
+ },
133
+ sqlDeclared: {
134
+ alarms: 61,
135
+ alarmMetrics: 70,
136
+ dashboards: 1,
137
+ dataProtectedLogGroups: 32,
138
+ kmsKeys: 1,
139
+ machineClients: 1,
140
+ secrets: 3,
141
+ },
142
+ personalStage: {
143
+ alarms: 50,
144
+ alarmMetrics: 57,
145
+ dashboards: 1,
146
+ dataProtectedLogGroups: 25,
147
+ kmsKeys: 1,
148
+ machineClients: 1,
149
+ secrets: 1,
150
+ },
151
+ };
152
+ exports.FOUNDATION_COST_ESTIMATE_BEGIN_MARKER = '<!-- ebk:foundation-cost-estimate:begin -->';
153
+ exports.FOUNDATION_COST_ESTIMATE_END_MARKER = '<!-- ebk:foundation-cost-estimate:end -->';
154
+ /** The exact label every rendered estimate carries. */
155
+ function foundationCostEstimateLabel() {
156
+ const snapshot = exports.FOUNDATION_LIST_PRICE_SNAPSHOT;
157
+ return `list-price estimate captured ${snapshot.capturedOn}, ${snapshot.region.code}, excludes taxes, free tier, credits and usage; verify before relying on it`;
158
+ }
159
+ function acu(value) {
160
+ const match = /^(\d+(?:\.\d+)?) ACU$/.exec(value);
161
+ if (!match)
162
+ throw new Error(`Unsupported Aurora capacity ${value}.`);
163
+ return Number(match[1]);
164
+ }
165
+ function minutes(value) {
166
+ const match = /^(\d+) minutes?$/.exec(value);
167
+ if (!match)
168
+ throw new Error(`Unsupported Aurora pause delay ${value}.`);
169
+ return Number(match[1]);
170
+ }
171
+ /** Scale a published decimal string by a power of ten without float noise. */
172
+ function scaledDecimal(value, per) {
173
+ const shift = Math.round(Math.log10(per));
174
+ if (10 ** shift !== per)
175
+ throw new Error(`Unsupported multiplier ${per}.`);
176
+ const [whole = '0', fraction = ''] = value.split('.');
177
+ const digits = whole + fraction.padEnd(shift, '0');
178
+ const point = whole.length + shift;
179
+ const integer = digits.slice(0, point).replace(/^0+(?=\d)/, '');
180
+ const decimals = digits.slice(point).replace(/0+$/, '');
181
+ return decimals.length === 0 ? integer : `${integer}.${decimals}`;
182
+ }
183
+ function grouped(value) {
184
+ return String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
185
+ }
186
+ function money(value) {
187
+ if (value !== 0 && Math.abs(value) < 0.01)
188
+ return `$${value.toFixed(4)}`;
189
+ const [integer = '0', cents = '00'] = (Math.round(value * 100) / 100)
190
+ .toFixed(2)
191
+ .split('.');
192
+ return `$${grouped(Number(integer))}.${cents}`;
193
+ }
194
+ function unitPrice(key) {
195
+ const entry = exports.FOUNDATION_LIST_PRICE_SNAPSHOT.prices[key];
196
+ const scaled = scaledDecimal(entry.usd, entry.per);
197
+ const [integer = '0', decimals = ''] = scaled.split('.');
198
+ const shown = decimals.length < 2 ? decimals.padEnd(2, '0') : decimals;
199
+ return `$${integer}.${shown} per ${entry.unit}`;
200
+ }
201
+ function usd(key) {
202
+ return Number(exports.FOUNDATION_LIST_PRICE_SNAPSHOT.prices[key].usd);
203
+ }
204
+ function hourly(key, quantity) {
205
+ return usd(key) * quantity * exports.FOUNDATION_LIST_PRICE_SNAPSHOT.hoursPerMonth;
206
+ }
207
+ function monthly(key, quantity) {
208
+ return usd(key) * quantity;
209
+ }
210
+ function cell(amount, quantity) {
211
+ return `${money(amount)} (${quantity})`;
212
+ }
213
+ function stageLabel(stage) {
214
+ return stage;
215
+ }
216
+ /** Render a Prettier-stable GitHub table. */
217
+ function table(header, rows, alignment) {
218
+ const widths = header.map((title, index) => Math.max(3, title.length, ...rows.map((row) => (row[index] ?? '').length)));
219
+ const line = (cells) => `| ${cells
220
+ .map((value, index) => alignment[index] === 'right'
221
+ ? value.padStart(widths[index] ?? 0)
222
+ : value.padEnd(widths[index] ?? 0))
223
+ .join(' | ')} |`;
224
+ const divider = `| ${widths
225
+ .map((width, index) => alignment[index] === 'right'
226
+ ? `${'-'.repeat(width - 1)}:`
227
+ : '-'.repeat(width))
228
+ .join(' | ')} |`;
229
+ return [line(header), divider, ...rows.map(line)].join('\n');
230
+ }
231
+ function representativeFoundationPlans() {
232
+ const sqlFree = (0, capability_plan_js_1.planFoundationCapabilities)({ requirements: [] });
233
+ const network = (0, capability_plan_js_1.planFoundationCapabilities)({
234
+ requirements: [(0, capability_plan_js_1.standardPersistenceRequirement)({}, [{ kind: 'service' }])],
235
+ });
236
+ const sql = (0, capability_plan_js_1.planFoundationCapabilities)({
237
+ requirements: [
238
+ (0, capability_plan_js_1.standardPersistenceRequirement)({ sql: { reason: 'cost estimate' } }),
239
+ ],
240
+ });
241
+ if (sqlFree.resources.network ||
242
+ sqlFree.resources.postgres ||
243
+ !network.resources.network ||
244
+ network.resources.postgres ||
245
+ !sql.resources.network ||
246
+ !sql.resources.postgres) {
247
+ throw new Error('The Foundation capability plan no longer separates SQL-free, network and SQL tiers; update the cost estimate.');
248
+ }
249
+ return { network, sql, sqlFree };
250
+ }
251
+ function wafRuleCount(stage) {
252
+ const allowlist = exports.FOUNDATION_COST_INVENTORY.routerWafAccess[stage] === 'allowlist' ? 1 : 0;
253
+ // StageIpAllowlist (allowlist stages), RateLimitPerIP and the required AWS managed rule groups.
254
+ return allowlist + 1 + router_waf_js_1.ROUTER_WAF_REQUIRED_MANAGED_RULES.length;
255
+ }
256
+ function auroraScaling(stage, profile) {
257
+ return stage === 'production'
258
+ ? index_js_1.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS[profile].aurora
259
+ : exports.FOUNDATION_COST_INVENTORY.nonproductionAurora[stage];
260
+ }
261
+ function natMode(stage, profile) {
262
+ return stage === 'production'
263
+ ? index_js_1.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS[profile].nat
264
+ : exports.FOUNDATION_COST_INVENTORY.nonproductionNat;
265
+ }
266
+ function stageFloors(stage, profile) {
267
+ const inventory = exports.FOUNDATION_COST_INVENTORY;
268
+ const sqlFree = monthly('wafWebAcl', inventory.wafWebAcls) +
269
+ monthly('wafRule', wafRuleCount(stage)) +
270
+ monthly('cloudWatchDashboard', inventory.dashboards);
271
+ const nat = natMode(stage, profile);
272
+ const network = sqlFree +
273
+ monthly('route53HostedZone', inventory.privateHostedZones) +
274
+ hourly('publicIpv4InUse', inventory.availabilityZones) +
275
+ (nat === 'ec2'
276
+ ? hourly('ec2T4gNano', inventory.availabilityZones)
277
+ : hourly('natGatewayHour', inventory.availabilityZones));
278
+ const sql = network +
279
+ monthly('secretsManagerSecret', inventory.auroraMasterSecrets) +
280
+ monthly('cloudWatchAlarmMetric', inventory.sqlAlarmMetrics) +
281
+ hourly('auroraPostgresServerlessV2Acu', acu(auroraScaling(stage, profile).min));
282
+ return { network, sql, sqlFree };
283
+ }
284
+ function sliceFloor(inventory) {
285
+ return (monthly('kmsKey', inventory.kmsKeys) +
286
+ monthly('secretsManagerSecret', inventory.secrets) +
287
+ monthly('cognitoMachineAppClient', inventory.machineClients) +
288
+ monthly('cloudWatchAlarmMetric', inventory.alarmMetrics) +
289
+ monthly('cloudWatchDashboard', inventory.dashboards));
290
+ }
291
+ function scalingLabel(scaling) {
292
+ const pause = scaling.pauseAfter
293
+ ? `, pause after ${minutes(scaling.pauseAfter)} idle minutes`
294
+ : ', always warm';
295
+ return `${acu(scaling.min)}–${acu(scaling.max)} ACUs${pause}`;
296
+ }
297
+ /** Nonproduction Aurora scaling as costs.md prose, e.g. "0–4 ACUs, pause after 5 idle minutes". */
298
+ function nonproductionAuroraScalingLabel(stage) {
299
+ return scalingLabel(exports.FOUNDATION_COST_INVENTORY.nonproductionAurora[stage]);
300
+ }
301
+ function heading(level, text) {
302
+ return `${'#'.repeat(level)} ${text}`;
303
+ }
304
+ function list(values) {
305
+ if (values.length <= 1)
306
+ return values.join('');
307
+ if (values.length === 2)
308
+ return `${values[0]} and ${values[1]}`;
309
+ return `${values.slice(0, -1).join(', ')} and ${values.at(-1)}`;
310
+ }
311
+ /**
312
+ * Pure, deterministic Markdown renderer for the dated list-price estimate.
313
+ * Quantities derive from the Foundation capability plan, the deployment
314
+ * profile's active stages, the production capacity contracts and the
315
+ * drift-checked inventories above. No clock, network or environment input.
316
+ */
317
+ function renderFoundationCostEstimate(options) {
318
+ const snapshot = exports.FOUNDATION_LIST_PRICE_SNAPSHOT;
319
+ const inventory = exports.FOUNDATION_COST_INVENTORY;
320
+ const stages = (0, index_js_1.activeDeploymentStages)(options.deploymentProfile);
321
+ const defaultProfile = (0, index_js_1.createIncubationRepositoryPolicy)(options.deploymentProfile, 'cost-estimate').productionFoundation.profile;
322
+ const plans = representativeFoundationPlans();
323
+ const level = options.headingLevel;
324
+ const used = new Set();
325
+ const p = (key) => {
326
+ used.add(key);
327
+ return unitPrice(key);
328
+ };
329
+ const floors = Object.fromEntries(stages.map((stage) => [stage, stageFloors(stage, defaultProfile)]));
330
+ const perStage = (render) => stages.map(render);
331
+ const sum = (tier) => stages.reduce((total, stage) => total + floors[stage][tier], 0);
332
+ const az = inventory.availabilityZones;
333
+ const foundationRows = [
334
+ [
335
+ 'AWS WAF web ACL',
336
+ p('wafWebAcl'),
337
+ ...perStage(() => cell(monthly('wafWebAcl', inventory.wafWebAcls), inventory.wafWebAcls)),
338
+ ],
339
+ [
340
+ 'AWS WAF rules',
341
+ p('wafRule'),
342
+ ...perStage((stage) => cell(monthly('wafRule', wafRuleCount(stage)), wafRuleCount(stage))),
343
+ ],
344
+ [
345
+ 'CloudWatch dashboard',
346
+ p('cloudWatchDashboard'),
347
+ ...perStage(() => cell(monthly('cloudWatchDashboard', inventory.dashboards), inventory.dashboards)),
348
+ ],
349
+ [
350
+ '**SQL-free stage floor**',
351
+ '',
352
+ ...perStage((stage) => `**${money(floors[stage].sqlFree)}**`),
353
+ ],
354
+ ];
355
+ if (plans.network.resources.network) {
356
+ foundationRows.push([
357
+ 'Network: Route 53 private hosted zone',
358
+ p('route53HostedZone'),
359
+ ...perStage(() => cell(monthly('route53HostedZone', inventory.privateHostedZones), inventory.privateHostedZones)),
360
+ ], [
361
+ 'Network: public IPv4 addresses',
362
+ p('publicIpv4InUse'),
363
+ ...perStage(() => cell(hourly('publicIpv4InUse', az), az)),
364
+ ], [
365
+ 'Network: EC2 NAT instances (t4g.nano)',
366
+ p('ec2T4gNano'),
367
+ ...perStage((stage) => natMode(stage, defaultProfile) === 'ec2'
368
+ ? cell(hourly('ec2T4gNano', az), az)
369
+ : '–'),
370
+ ], [
371
+ 'Network: managed NAT gateways',
372
+ p('natGatewayHour'),
373
+ ...perStage((stage) => natMode(stage, defaultProfile) === 'managed'
374
+ ? cell(hourly('natGatewayHour', az), az)
375
+ : '–'),
376
+ ], [
377
+ '**Network-declared stage floor**',
378
+ '',
379
+ ...perStage((stage) => `**${money(floors[stage].network)}**`),
380
+ ]);
381
+ }
382
+ if (plans.sql.resources.postgres) {
383
+ foundationRows.push([
384
+ 'SQL: Aurora master secret',
385
+ p('secretsManagerSecret'),
386
+ ...perStage(() => cell(monthly('secretsManagerSecret', inventory.auroraMasterSecrets), inventory.auroraMasterSecrets)),
387
+ ], [
388
+ 'SQL: Aurora capacity alarm',
389
+ p('cloudWatchAlarmMetric'),
390
+ ...perStage(() => cell(monthly('cloudWatchAlarmMetric', inventory.sqlAlarmMetrics), `${inventory.sqlAlarmMetrics} metric`)),
391
+ ], [
392
+ 'SQL: Aurora Serverless v2 minimum',
393
+ p('auroraPostgresServerlessV2Acu'),
394
+ ...perStage((stage) => {
395
+ const scaling = auroraScaling(stage, defaultProfile);
396
+ return cell(hourly('auroraPostgresServerlessV2Acu', acu(scaling.min)), `${acu(scaling.min)}–${acu(scaling.max)} ACU`);
397
+ }),
398
+ ], [
399
+ '**SQL-declared stage floor**',
400
+ '',
401
+ ...perStage((stage) => `**${money(floors[stage].sql)}**`),
402
+ ]);
403
+ }
404
+ const profileRows = index_js_1.PRODUCTION_FOUNDATION_PROFILES.map((profile) => {
405
+ const scaling = index_js_1.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS[profile].aurora;
406
+ const minimum = acu(scaling.min);
407
+ const hours = minimum * snapshot.hoursPerMonth;
408
+ return [
409
+ `\`${profile}\`${profile === defaultProfile ? ' (default)' : ''}`,
410
+ scalingLabel(scaling),
411
+ minimum === 0
412
+ ? '$0.00 while paused, plus wakes'
413
+ : `${money(hourly('auroraPostgresServerlessV2Acu', minimum))} (${grouped(hours)} ACU-hours)`,
414
+ money(stageFloors('production', profile).sql),
415
+ ];
416
+ });
417
+ const pausing = [
418
+ ...stages.filter((stage) => stage !== 'production' &&
419
+ acu(auroraScaling(stage, defaultProfile).min) === 0),
420
+ ...index_js_1.PRODUCTION_FOUNDATION_PROFILES.filter((profile) => acu(index_js_1.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS[profile].aurora.min) === 0).map((profile) => `\`${profile}\` production`),
421
+ ];
422
+ const pauseDelays = new Set([
423
+ ...Object.values(inventory.nonproductionAurora),
424
+ ...Object.values(index_js_1.PRODUCTION_FOUNDATION_PROFILE_CONTRACTS).map(({ aurora }) => aurora),
425
+ ]
426
+ .map((scaling) => scaling.pauseAfter)
427
+ .filter((pauseAfter) => pauseAfter !== undefined)
428
+ .map(minutes));
429
+ if (pauseDelays.size !== 1) {
430
+ throw new Error('The cost estimate assumes one Aurora auto-pause delay.');
431
+ }
432
+ const pauseMinutes = [...pauseDelays][0] ?? 0;
433
+ const smallestAwakeAcu = 0.5;
434
+ const perWake = (hourly('auroraPostgresServerlessV2Acu', smallestAwakeAcu) /
435
+ snapshot.hoursPerMonth) *
436
+ (pauseMinutes / 60);
437
+ const sliceInventory = exports.STANDARD_SLICE_COST_INVENTORY;
438
+ const sliceRow = (label, key, pick, quantity = pick) => [
439
+ label,
440
+ p(key),
441
+ cell(monthly(key, pick(sliceInventory.sqlFree)), quantity(sliceInventory.sqlFree)),
442
+ cell(monthly(key, pick(sliceInventory.sqlDeclared)), quantity(sliceInventory.sqlDeclared)),
443
+ ];
444
+ const sliceRows = [
445
+ sliceRow('KMS customer managed key', 'kmsKey', (i) => i.kmsKeys),
446
+ sliceRow('Secrets Manager secrets', 'secretsManagerSecret', (i) => i.secrets),
447
+ sliceRow('Cognito machine-to-machine app client', 'cognitoMachineAppClient', (i) => i.machineClients),
448
+ sliceRow('CloudWatch alarms', 'cloudWatchAlarmMetric', (i) => i.alarmMetrics, (i) => `${i.alarms} alarms, ${i.alarmMetrics} metrics`),
449
+ sliceRow('CloudWatch dashboard', 'cloudWatchDashboard', (i) => i.dashboards),
450
+ [
451
+ 'Data-protected log groups',
452
+ 'usage-priced (below)',
453
+ `${sliceInventory.sqlFree.dataProtectedLogGroups}`,
454
+ `${sliceInventory.sqlDeclared.dataProtectedLogGroups}`,
455
+ ],
456
+ [
457
+ '**Slice floor per stage**',
458
+ '',
459
+ `**${money(sliceFloor(sliceInventory.sqlFree))}**`,
460
+ `**${money(sliceFloor(sliceInventory.sqlDeclared))}**`,
461
+ ],
462
+ ];
463
+ const protectedStages = [
464
+ (0, index_js_1.productionRehearsalStage)(options.deploymentProfile),
465
+ 'production',
466
+ ];
467
+ const usageRows = [
468
+ [
469
+ 'CloudFront requests',
470
+ p('cloudFrontHttpsRequests'),
471
+ 'Every Router request',
472
+ ],
473
+ [
474
+ 'CloudFront data transfer out',
475
+ p('cloudFrontDataTransferOut'),
476
+ 'Responses served through the Router',
477
+ ],
478
+ ['AWS WAF requests', p('wafRequests'), 'Every Router request'],
479
+ ['API Gateway HTTP API', p('apiGatewayHttpRequests'), 'Slice API routes'],
480
+ [
481
+ 'Lambda requests',
482
+ p('lambdaRequests'),
483
+ 'Routes, consumers and scheduled jobs',
484
+ ],
485
+ ['Lambda compute', p('lambdaComputeX86'), 'Function duration and memory'],
486
+ [
487
+ 'SQS standard queues',
488
+ p('sqsStandardRequests'),
489
+ 'Event delivery and idle long polling',
490
+ ],
491
+ ['SQS FIFO queue', p('sqsFifoRequests'), 'Next.js revalidation'],
492
+ [
493
+ 'DynamoDB writes',
494
+ p('dynamoDbWriteRequestUnits'),
495
+ 'Records, outbox and recovery ledger',
496
+ ],
497
+ [
498
+ 'DynamoDB reads',
499
+ p('dynamoDbReadRequestUnits'),
500
+ 'Records and scheduled reconciliation',
501
+ ],
502
+ ['DynamoDB storage', p('dynamoDbStorage'), 'Stored items'],
503
+ [
504
+ 'DynamoDB point-in-time recovery',
505
+ p('dynamoDbPitrStorage'),
506
+ 'Protected table size',
507
+ ],
508
+ [
509
+ 'EventBridge custom events',
510
+ p('eventBridgeCustomEvents'),
511
+ 'Published domain events',
512
+ ],
513
+ [
514
+ 'EventBridge archive',
515
+ p('eventBridgeArchiveProcessed'),
516
+ 'Every bus event (30-day archive)',
517
+ ],
518
+ [
519
+ 'EventBridge archive storage',
520
+ p('eventBridgeArchiveStorage'),
521
+ 'Archived event volume',
522
+ ],
523
+ [
524
+ 'Cognito Lite users',
525
+ p('cognitoLiteMau'),
526
+ 'Signed-in users; the generator does not set a user pool tier',
527
+ ],
528
+ [
529
+ 'Cognito Essentials users',
530
+ p('cognitoEssentialsMau'),
531
+ 'Signed-in users; the AWS default tier for new pools applies',
532
+ ],
533
+ [
534
+ 'Cognito machine tokens',
535
+ p('cognitoMachineTokenRequest'),
536
+ 'Machine-to-machine token requests',
537
+ ],
538
+ [
539
+ 'Aurora compute',
540
+ p('auroraPostgresServerlessV2Acu'),
541
+ 'SQL: capacity while awake',
542
+ ],
543
+ ['Aurora storage', p('auroraPostgresStorage'), 'SQL: consumed storage'],
544
+ ['Aurora I/O', p('auroraPostgresIo'), 'SQL: storage I/O'],
545
+ [
546
+ 'Aurora backup storage',
547
+ p('auroraPostgresBackup'),
548
+ 'SQL: backups beyond the free allocation',
549
+ ],
550
+ [
551
+ 'NAT gateway data',
552
+ p('natGatewayData'),
553
+ 'Production network: in-VPC traffic to AWS APIs and the internet',
554
+ ],
555
+ [
556
+ 'CloudWatch Logs ingestion',
557
+ p('cloudWatchLogsIngest'),
558
+ 'TRACE application logging on every function',
559
+ ],
560
+ [
561
+ 'CloudWatch Logs data protection',
562
+ p('cloudWatchLogsDataProtection'),
563
+ 'Every byte written to a data-protected log group',
564
+ ],
565
+ ['CloudWatch Logs storage', p('cloudWatchLogsStorage'), '30-day retention'],
566
+ [
567
+ 'CloudWatch custom metrics',
568
+ p('cloudWatchCustomMetric'),
569
+ 'Embedded metric format series',
570
+ ],
571
+ ['Secrets Manager API', p('secretsManagerApi'), 'Secret reads'],
572
+ ['KMS requests', p('kmsRequests'), 'Data export encryption'],
573
+ [
574
+ 'AppConfig requests',
575
+ p('appConfigConfigurationRequests'),
576
+ 'Protected-stage configuration polling',
577
+ ],
578
+ [
579
+ 'AppConfig configurations received',
580
+ p('appConfigConfigurationsReceived'),
581
+ 'Protected-stage configuration polling',
582
+ ],
583
+ [
584
+ 'Step Functions standard',
585
+ p('stepFunctionsStandardTransitions'),
586
+ 'Retention and SQL migration workflows',
587
+ ],
588
+ ['Fargate vCPU', p('fargateVcpuHour'), 'SQL bootstrap and migration tasks'],
589
+ [
590
+ 'Fargate memory',
591
+ p('fargateMemoryGbHour'),
592
+ 'SQL bootstrap and migration tasks',
593
+ ],
594
+ [
595
+ 'Public IPv4 for tasks',
596
+ p('publicIpv4InUse'),
597
+ 'SQL tasks run with a public address',
598
+ ],
599
+ [
600
+ 'S3 Standard storage',
601
+ p('s3StandardStorage'),
602
+ 'Web assets and data export objects',
603
+ ],
604
+ ['SNS requests', p('snsRequests'), 'Alarm notifications'],
605
+ ];
606
+ const sources = [...used].sort().map((key) => {
607
+ const { source } = exports.FOUNDATION_LIST_PRICE_SNAPSHOT.prices[key];
608
+ return [
609
+ `\`${key}\``,
610
+ `${source.offer} ${source.version} (${source.file})`,
611
+ source.sku,
612
+ source.rateCode,
613
+ source.usageType,
614
+ ];
615
+ });
616
+ const personal = sliceInventory.personalStage;
617
+ const stageList = list(stages.map(stageLabel));
618
+ return [
619
+ heading(level, 'List-price estimate'),
620
+ '',
621
+ `**ESTIMATE:** ${foundationCostEstimateLabel()}.`,
622
+ '',
623
+ `Unit prices are AWS public On-Demand list prices in ${snapshot.currency} for ${snapshot.region.name} from the AWS Price List bulk API. CloudFront and AWS WAF are global services billed in ${snapshot.region.code}; CloudFront rates are the United States edge-location rates. Quantities come from the generator for the \`${options.deploymentProfile}\` deployment profile (stages: ${stageList}); a month is ${snapshot.hoursPerMonth} hours. Each cell shows the monthly amount and, in parentheses, the quantity.`,
624
+ '',
625
+ heading(level + 1, 'Foundation fixed floor per stage'),
626
+ '',
627
+ `A SQL-free Foundation has only the first rows. A Slice that declares a service or job adds the network rows; a Slice that declares SQL adds the network and SQL rows. Production uses the \`${defaultProfile}\` capacity profile that new repositories select.`,
628
+ '',
629
+ table(['Item', 'Unit list price', ...stages], foundationRows, [
630
+ 'left',
631
+ 'left',
632
+ ...stages.map(() => 'right'),
633
+ ]),
634
+ '',
635
+ `Workspace floor across ${stageList}: SQL-free ${money(sum('sqlFree'))}, network-declared ${money(sum('network'))}, SQL-declared ${money(sum('sql'))} a month, before usage.`,
636
+ '',
637
+ heading(level + 1, 'Production Aurora capacity profiles'),
638
+ '',
639
+ table([
640
+ 'Capacity profile',
641
+ 'Aurora range',
642
+ 'Minimum compute per month',
643
+ 'SQL-declared production floor',
644
+ ], profileRows, ['left', 'left', 'right', 'right']),
645
+ '',
646
+ `Scale-to-zero Aurora (${list(pausing)}) bills no compute while paused. Each wake bills at least ${smallestAwakeAcu} ACU, the smallest non-zero Serverless v2 capacity, for the active time plus the ${pauseMinutes}-minute pause delay: at least ${money(perWake)} per wake. Open connections and scheduled database work can wake the cluster or keep it awake; a cluster that never pauses bills at least ${money(hourly('auroraPostgresServerlessV2Acu', smallestAwakeAcu))} a month. Storage, I/O and backups are usage-priced.`,
647
+ '',
648
+ heading(level + 1, 'Standard Slice fixed floor per stage'),
649
+ '',
650
+ 'Every deployed stage of every default Standard Slice adds this floor (no async adapters, performance load off).',
651
+ '',
652
+ table(['Item', 'Unit list price', 'SQL-free Slice', 'SQL-declared Slice'], sliceRows, ['left', 'left', 'right', 'right']),
653
+ '',
654
+ `- Protected runtime stages (${list(protectedStages)}) add 1 Secrets Manager secret for performance-load HMAC keys: ${money(monthly('secretsManagerSecret', 1))}.`,
655
+ `- A machine-credential rotation runs 2 machine-to-machine app clients until the previous generation is retired. The Price List publishes ${money(usd('cognitoMachineAppClient'))} per app client-month for this usage type at capture; verify it.`,
656
+ '- The SQL-declared secrets are the machine-client secret and the read-write and read-only database credentials.',
657
+ `- Each personal development stage repeats the Slice floor in the development account against the development Foundation, without retention orchestration: ${personal.alarms} alarms (${personal.alarmMetrics} metrics) and ${personal.dataProtectedLogGroups} data-protected log groups, ${money(sliceFloor(personal))} per SQL-free Slice per personal stage while it exists.`,
658
+ '',
659
+ heading(level + 1, 'Usage-priced lines'),
660
+ '',
661
+ table(['Line', 'Unit list price', 'Driven by'], usageRows, [
662
+ 'left',
663
+ 'left',
664
+ 'left',
665
+ ]),
666
+ '',
667
+ 'Not priced: EC2 NAT instance root volumes (AMI default size), EC2 data transfer out (NAT instances have no per-GB processing charge), an adopter-owned public hosted zone for `EBK_ROOT_DOMAIN`, AWS Budgets, Cost Anomaly Detection, SSM standard parameters and SST bootstrap storage.',
668
+ '',
669
+ heading(level + 1, 'Price sources'),
670
+ '',
671
+ `Offer files: \`${snapshot.offerFileUrlTemplate}\` (OnDemand terms).`,
672
+ '',
673
+ table(['Price', 'Offer file', 'SKU', 'Rate code', 'Usage type'], sources, [
674
+ 'left',
675
+ 'left',
676
+ 'left',
677
+ 'left',
678
+ 'left',
679
+ ]),
680
+ '',
681
+ ].join('\n');
682
+ }
683
+ //# sourceMappingURL=cost-estimate.js.map