@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.
- package/README.md +44 -10
- package/executors.json +21 -1
- package/generators.json +10 -0
- package/package.json +31 -7
- package/src/aws/child-environment.d.ts +10 -0
- package/src/aws/child-environment.js +77 -0
- package/src/aws/identity.d.ts +13 -0
- package/src/aws/identity.js +41 -0
- package/src/aws-authority/index.d.ts +2 -0
- package/src/aws-authority/index.js +6 -0
- package/src/aws-authority/lambda-policy-ordering.d.ts +38 -0
- package/src/aws-authority/lambda-policy-ordering.js +56 -0
- package/src/aws-authority/stage-authority.d.ts +248 -0
- package/src/aws-authority/stage-authority.js +3558 -0
- package/src/blueprints/external-sandbox.d.ts +1 -1
- package/src/blueprints/external-sandbox.js +21 -9
- package/src/blueprints/manifest.d.ts +1 -1
- package/src/blueprints/resolver.js +28 -15
- package/src/cli/bootstrap.d.ts +1 -1
- package/src/cli/deploy-runtime.d.ts +30 -0
- package/src/cli/deploy-runtime.js +174 -0
- package/src/cli/dev-command.d.ts +18 -4
- package/src/cli/dev-command.js +71 -0
- package/src/cli/main.d.ts +9 -1
- package/src/cli/main.js +157 -24
- package/src/cli/output.d.ts +1 -1
- package/src/cli/output.js +1 -1
- package/src/cli/personal-secret-runtime.d.ts +12 -0
- package/src/cli/personal-secret-runtime.js +18 -3
- package/src/cli/secret-terminal.js +1 -1
- package/src/container-images.d.ts +1 -1
- package/src/container-images.js +1 -1
- package/src/developer-agent/context.js +41 -9
- package/src/developer-agent/generator-planning.js +20 -6
- package/src/developer-agent/git-inspection.d.ts +6 -2
- package/src/developer-agent/git-inspection.js +78 -6
- package/src/developer-agent/model.d.ts +5 -3
- package/src/developer-agent/model.js +4 -4
- package/src/developer-agent/operation-registry.d.ts +15 -0
- package/src/developer-agent/operation-registry.js +342 -49
- package/src/developer-agent/planning.d.ts +8 -1
- package/src/developer-agent/planning.js +39 -16
- package/src/developer-agent/preview-changes.d.ts +2 -0
- package/src/developer-agent/preview-changes.js +14 -2
- package/src/developer-agent/preview-source.js +3 -0
- package/src/developer-agent/validation.js +25 -9
- package/src/developer-agent/workspace-inspection.js +60 -5
- package/src/executors/blueprint-trust/blueprint-trust.js +6 -0
- package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
- package/src/executors/deployment-plan/deployment-plan.js +57 -2
- package/src/executors/dev-doctor/dev-doctor.js +13 -6
- package/src/executors/dev-task-cleanup/dev-task-cleanup.d.ts +23 -0
- package/src/executors/dev-task-cleanup/dev-task-cleanup.js +145 -0
- package/src/executors/dev-task-cleanup/schema.json +9 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.d.ts +27 -0
- package/src/executors/dev-task-cleanup/task-stack-absence.js +281 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.d.ts +12 -0
- package/src/executors/dev-task-cleanup/task-stack-checkpoint.js +92 -0
- package/src/executors/fleet/fleet.js +1 -1
- package/src/executors/foundation-preflight/foundation-preflight.d.ts +1 -0
- package/src/executors/foundation-preflight/foundation-preflight.js +6 -2
- package/src/executors/foundation-preflight/schema.json +5 -0
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.d.ts +13 -2
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js +95 -31
- package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +65 -0
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js +223 -0
- package/src/executors/foundation-profile-preflight/schema.json +15 -4
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.d.ts +11 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js +70 -20
- package/src/executors/foundation-remove-preflight/schema.json +6 -1
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +3 -0
- package/src/executors/github-bootstrap/schema.json +7 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +29 -136
- package/src/executors/infrastructure-plan/infrastructure-plan.js +230 -3282
- package/src/executors/infrastructure-plan/schema.json +12 -52
- package/src/executors/local-deploy/federated-credential-transport.d.ts +48 -0
- package/src/executors/local-deploy/federated-credential-transport.js +252 -0
- package/src/executors/local-deploy/local-approval.d.ts +18 -0
- package/src/executors/local-deploy/local-approval.js +39 -0
- package/src/executors/local-deploy/local-deploy.d.ts +112 -0
- package/src/executors/local-deploy/local-deploy.js +1404 -0
- package/src/executors/local-deploy/schema.json +70 -0
- package/src/executors/refresh/refresh.js +2 -2
- package/src/executors/remove/remove.js +2 -2
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +42 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +1229 -0
- package/src/executors/router-waf-rehearsal/schema.json +29 -0
- package/src/executors/secret-initialize/schema.json +42 -0
- package/src/executors/secret-initialize/secret-initialize.d.ts +34 -0
- package/src/executors/secret-initialize/secret-initialize.js +297 -0
- package/src/executors/secret-metadata/schema.json +5 -0
- package/src/executors/secret-metadata/secret-metadata.d.ts +16 -2
- package/src/executors/secret-metadata/secret-metadata.js +129 -30
- package/src/executors/sst-lifecycle/generated-secret-retirement.d.ts +53 -0
- package/src/executors/sst-lifecycle/generated-secret-retirement.js +192 -0
- package/src/executors/sst-lifecycle/governed-native-operation.d.ts +48 -0
- package/src/executors/sst-lifecycle/governed-native-operation.js +163 -0
- package/src/executors/sst-lifecycle/logging-preflight.d.ts +5 -0
- package/src/executors/sst-lifecycle/logging-preflight.js +23 -13
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +46 -6
- package/src/executors/sst-lifecycle/run-sst-command.js +750 -71
- package/src/executors/sst-lifecycle/schema.json +8 -1
- package/src/executors/sst-lifecycle/secret-preflight.d.ts +2 -0
- package/src/executors/sst-lifecycle/secret-preflight.js +13 -7
- package/src/executors/sst-lifecycle/sst-environment-source.d.ts +33 -0
- package/src/executors/sst-lifecycle/sst-environment-source.js +267 -0
- package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
- package/src/executors/sst-lifecycle/task-unlock.js +126 -0
- package/src/executors/unlock/unlock.js +2 -2
- package/src/foundation/capability-plan.d.ts +43 -0
- package/src/foundation/capability-plan.js +168 -0
- package/src/foundation/cost-estimate.d.ts +170 -0
- package/src/foundation/cost-estimate.js +683 -0
- package/src/foundation/discovery.d.ts +14 -11
- package/src/foundation/discovery.js +32 -6
- package/src/foundation/index.d.ts +4 -0
- package/src/foundation/index.js +11 -0
- package/src/foundation/local-database-contract.d.ts +20 -0
- package/src/foundation/local-database-contract.js +262 -13
- package/src/foundation/local-private-smoke-access.d.ts +20 -0
- package/src/foundation/local-private-smoke-access.js +197 -0
- package/src/foundation/logging-preflight.js +1 -1
- package/src/foundation/logging.d.ts +3 -1
- package/src/foundation/logging.js +1 -1
- package/src/foundation/partial-state.d.ts +10 -0
- package/src/foundation/partial-state.js +21 -0
- package/src/foundation/preflight.js +37 -18
- package/src/foundation/private-smoke-access.d.ts +25 -0
- package/src/foundation/private-smoke-access.js +135 -0
- package/src/foundation/private-smoke-admission.d.ts +45 -0
- package/src/foundation/private-smoke-admission.js +180 -0
- package/src/foundation/private-smoke-control-plane.d.ts +18 -0
- package/src/foundation/private-smoke-control-plane.js +184 -0
- package/src/foundation/provision-database-bindings.d.ts +5 -0
- package/src/foundation/provision-database-bindings.js +41 -8
- package/src/foundation/provision-logical-database.js +15 -8
- package/src/foundation/requirements.d.ts +3 -3
- package/src/foundation/requirements.js +24 -12
- package/src/foundation/router-waf-rate-rehearsal.d.ts +97 -0
- package/src/foundation/router-waf-rate-rehearsal.js +210 -0
- package/src/foundation/router-waf.d.ts +149 -0
- package/src/foundation/router-waf.js +809 -0
- package/src/foundation/stages.d.ts +1 -0
- package/src/foundation/stages.js +11 -0
- package/src/generators/blueprint/blueprint.d.ts +5 -0
- package/src/generators/blueprint/blueprint.js +102 -0
- package/src/generators/blueprint/files.d.ts +6 -0
- package/src/generators/blueprint/files.js +217 -0
- package/src/generators/blueprint/schema.d.ts +4 -0
- package/src/generators/blueprint/schema.json +18 -0
- package/src/generators/formatting.d.ts +8 -0
- package/src/generators/formatting.js +141 -0
- package/src/generators/function/function.js +38 -17
- package/src/generators/logging-registry.d.ts +2 -0
- package/src/generators/logging-registry.js +22 -0
- package/src/generators/post-generation-install.js +2 -2
- package/src/generators/preset/dependency-overrides.d.ts +8 -0
- package/src/generators/preset/dependency-overrides.js +55 -0
- package/src/generators/preset/generator.js +43 -3
- package/src/generators/preset/schema.d.ts +10 -0
- package/src/generators/preset/schema.json +47 -0
- package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
- package/src/generators/preset/workspace-files-adopter-skills.js +324 -0
- package/src/generators/preset/workspace-files-ci-acceptance.d.ts +1 -0
- package/src/generators/preset/workspace-files-ci-acceptance.js +791 -0
- package/src/generators/preset/workspace-files-ci-install.d.ts +2 -0
- package/src/generators/preset/workspace-files-ci-install.js +196 -0
- package/src/generators/preset/workspace-files-developer-agent.d.ts +2 -0
- package/src/generators/preset/workspace-files-developer-agent.js +162 -44
- package/src/generators/preset/workspace-files-ecr-inspector.d.ts +18 -0
- package/src/generators/preset/workspace-files-ecr-inspector.js +298 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js +5 -2
- package/src/generators/preset/workspace-files-performance-cost.d.ts +2 -2
- package/src/generators/preset/workspace-files-performance-cost.js +8 -8
- package/src/generators/preset/workspace-files-performance-load.d.ts +1 -1
- package/src/generators/preset/workspace-files-performance-load.js +39 -25
- package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
- package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
- package/src/generators/preset/workspace-files-stage-authority.d.ts +6 -0
- package/src/generators/preset/workspace-files-stage-authority.js +529 -0
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +65 -0
- package/src/generators/preset/workspace-files-thin-deploy.js +2507 -0
- package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
- package/src/generators/preset/workspace-files-thin-docs.js +370 -0
- package/src/generators/preset/workspace-files-thin-release.d.ts +14 -0
- package/src/generators/preset/workspace-files-thin-release.js +26 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js +254 -42
- package/src/generators/preset/workspace-files.d.ts +18 -2
- package/src/generators/preset/workspace-files.js +1525 -609
- package/src/generators/repository-policy/repository-policy.js +235 -5
- package/src/generators/repository-policy/schema.d.ts +10 -0
- package/src/generators/repository-policy/schema.json +80 -4
- package/src/generators/repository-policy/tree-policy.d.ts +3 -0
- package/src/generators/repository-policy/tree-policy.js +25 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js +49 -11
- package/src/generators/slice/built-in-plan-api-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-api-files.js +130 -414
- package/src/generators/slice/built-in-plan-async-work-files.js +166 -1969
- package/src/generators/slice/built-in-plan-authorization-files.js +102 -334
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +975 -233
- package/src/generators/slice/built-in-plan-authorization-storage.d.ts +3 -0
- package/src/generators/slice/built-in-plan-authorization-storage.js +119 -0
- package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-background-work-files.js +99 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +5 -31
- package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-data-files.js +176 -1200
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js +53 -28
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +37 -2
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2443
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +50 -8
- package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +44 -25
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +25 -2
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-foundation-files.js +39 -18
- package/src/generators/slice/built-in-plan-frontend-files.js +14 -3
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +933 -730
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +75 -14
- package/src/generators/slice/built-in-plan-key-value-cleanup.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-cleanup.js +100 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-consumer.js +151 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-deletion.js +377 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-delivery.js +137 -0
- package/src/generators/slice/built-in-plan-key-value-export.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-export.js +595 -0
- package/src/generators/slice/built-in-plan-key-value-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-files.js +31 -0
- package/src/generators/slice/built-in-plan-key-value-holds.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-holds.js +189 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-infrastructure.js +102 -0
- package/src/generators/slice/built-in-plan-key-value-performance.d.ts +5 -0
- package/src/generators/slice/built-in-plan-key-value-performance.js +530 -0
- package/src/generators/slice/built-in-plan-key-value-provider.d.ts +4 -0
- package/src/generators/slice/built-in-plan-key-value-provider.js +366 -0
- package/src/generators/slice/built-in-plan-key-value-records.d.ts +3 -0
- package/src/generators/slice/built-in-plan-key-value-records.js +232 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-infrastructure.js +103 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-job-files.js +160 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-maintenance.js +329 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention-worker.js +477 -0
- package/src/generators/slice/built-in-plan-key-value-retention.d.ts +2 -0
- package/src/generators/slice/built-in-plan-key-value-retention.js +184 -0
- package/src/generators/slice/built-in-plan-metadata-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-metadata-files.js +159 -29
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +324 -0
- package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +585 -97
- package/src/generators/slice/built-in-plan-performance-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-performance-files.js +220 -1074
- package/src/generators/slice/built-in-plan-project-files.js +141 -135
- package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-release-files.js +310 -70
- package/src/generators/slice/built-in-plan-reliability-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-reliability-files.js +283 -44
- package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +87 -76
- package/src/generators/slice/built-in-plan-shared.d.ts +4 -2
- package/src/generators/slice/built-in-plan-shared.js +41 -19
- package/src/generators/slice/built-in-plan-sql-events.d.ts +2 -0
- package/src/generators/slice/built-in-plan-sql-events.js +276 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +304 -172
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.js +180 -0
- package/src/generators/slice/built-in-plan-thin-release-files.d.ts +11 -0
- package/src/generators/slice/built-in-plan-thin-release-files.js +162 -0
- package/src/generators/slice/built-in-plan-verification-files.js +76 -2
- package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-web-files.js +223 -16
- package/src/generators/slice/built-in-plan-workload-role-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js +143 -279
- package/src/generators/slice/built-in-plan.d.ts +11 -1
- package/src/generators/slice/built-in-plan.js +83 -30
- package/src/generators/slice/data-policy-review-seed.d.ts +2 -0
- package/src/generators/slice/data-policy-review-seed.js +22 -0
- package/src/generators/slice/deployed-smoke-readiness.d.ts +2 -0
- package/src/generators/slice/deployed-smoke-readiness.js +214 -0
- package/src/generators/slice/local-source-identity.d.ts +2 -0
- package/src/generators/slice/local-source-identity.js +31 -0
- package/src/generators/slice/persistence-contract.d.ts +14 -0
- package/src/generators/slice/persistence-contract.js +32 -0
- package/src/generators/slice/slice.js +61 -50
- package/src/generators/sql/schema.d.ts +7 -0
- package/src/generators/sql/schema.json +38 -0
- package/src/generators/sql/sql.d.ts +6 -0
- package/src/generators/sql/sql.js +53 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.d.ts +2 -0
- package/src/generators/upgrade/sql-seeded-reconciliation.js +170 -0
- package/src/generators/upgrade/upgrade.d.ts +15 -1
- package/src/generators/upgrade/upgrade.js +435 -44
- package/src/generators/workload/frozen-container.d.ts +1 -1
- package/src/generators/workload/performance-registration.d.ts +1 -0
- package/src/generators/workload/performance-registration.js +9 -11
- package/src/generators/workload/service-performance-files.d.ts +1 -0
- package/src/generators/workload/service-performance-files.js +27 -7
- package/src/generators/workload/workload.d.ts +1 -1
- package/src/generators/workload/workload.js +105 -29
- package/src/git-policy/action-pins.d.ts +5 -0
- package/src/git-policy/action-pins.js +5 -0
- package/src/git-policy/github-bootstrap.d.ts +48 -8
- package/src/git-policy/github-bootstrap.js +344 -176
- package/src/git-policy/routing.d.ts +7 -1
- package/src/git-policy/routing.js +62 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/infrastructure-change/local-capability.d.ts +73 -0
- package/src/infrastructure-change/local-capability.js +114 -0
- package/src/infrastructure-change/model.d.ts +25 -4
- package/src/infrastructure-change/model.js +1 -0
- package/src/infrastructure-change/normalize.d.ts +4 -0
- package/src/infrastructure-change/normalize.js +47 -7
- package/src/infrastructure-change/plan.d.ts +30 -3
- package/src/infrastructure-change/plan.js +323 -13
- package/src/infrastructure-change/risk.d.ts +3 -1
- package/src/infrastructure-change/risk.js +96 -16
- package/src/local-dev/browser-verification.d.ts +37 -0
- package/src/local-dev/browser-verification.js +281 -0
- package/src/local-dev/contracts.d.ts +10 -1
- package/src/local-dev/contracts.js +114 -13
- package/src/local-dev/dev-command-core.js +24 -5
- package/src/local-dev/docker-credential-health.d.ts +14 -0
- package/src/local-dev/docker-credential-health.js +94 -0
- package/src/local-dev/environment-inspector.d.ts +7 -0
- package/src/local-dev/environment-inspector.js +42 -15
- package/src/local-dev/environment-state.js +2 -2
- package/src/local-dev/errors.d.ts +1 -1
- package/src/local-dev/errors.js +2 -0
- package/src/local-dev/fleet-client.js +2 -2
- package/src/local-dev/fleet-configuration.js +57 -25
- package/src/local-dev/fleet-inventory.js +58 -22
- package/src/local-dev/fleet-ipc.d.ts +7 -0
- package/src/local-dev/fleet-ipc.js +14 -2
- package/src/local-dev/fleet-launcher.d.ts +6 -0
- package/src/local-dev/fleet-launcher.js +16 -4
- package/src/local-dev/fleet-logs.js +50 -22
- package/src/local-dev/fleet-process.d.ts +20 -1
- package/src/local-dev/fleet-process.js +197 -41
- package/src/local-dev/fleet-runner-evidence.d.ts +5 -0
- package/src/local-dev/fleet-runner-evidence.js +56 -0
- package/src/local-dev/fleet-runtime.js +268 -229
- package/src/local-dev/fleet-session.d.ts +2 -0
- package/src/local-dev/fleet-session.js +28 -11
- package/src/local-dev/fleet-slice-runner-daemon.js +4 -0
- package/src/local-dev/fleet-state.d.ts +5 -2
- package/src/local-dev/fleet-state.js +25 -4
- package/src/local-dev/fleet-supervisor.d.ts +3 -0
- package/src/local-dev/fleet-supervisor.js +66 -11
- package/src/local-dev/fleet-web-start.d.ts +12 -0
- package/src/local-dev/fleet-web-start.js +48 -0
- package/src/local-dev/identity.js +3 -14
- package/src/local-dev/index.d.ts +1 -0
- package/src/local-dev/index.js +1 -0
- package/src/local-dev/native-completion.d.ts +9 -0
- package/src/local-dev/native-completion.js +130 -0
- package/src/local-dev/nx-workspace.d.ts +4 -2
- package/src/local-dev/nx-workspace.js +11 -6
- package/src/local-dev/personal-stage.d.ts +4 -5
- package/src/local-dev/personal-stage.js +6 -54
- package/src/local-dev/port-claims.d.ts +13 -0
- package/src/local-dev/port-claims.js +46 -0
- package/src/local-dev/ports.d.ts +14 -2
- package/src/local-dev/ports.js +78 -3
- package/src/local-dev/private-state.d.ts +11 -0
- package/src/local-dev/private-state.js +146 -40
- package/src/local-dev/process-group.d.ts +4 -0
- package/src/local-dev/process-group.js +29 -0
- package/src/local-dev/process-identity.d.ts +8 -0
- package/src/local-dev/process-identity.js +31 -1
- package/src/local-dev/proxy.js +11 -12
- package/src/local-dev/runtime-paths.js +1 -1
- package/src/local-dev/slice-claim.js +1 -1
- package/src/local-dev/slice-runner.d.ts +15 -6
- package/src/local-dev/slice-runner.js +189 -54
- package/src/local-dev/task-attachment.d.ts +17 -0
- package/src/local-dev/task-attachment.js +73 -0
- package/src/local-dev/task-authority.d.ts +10 -0
- package/src/local-dev/task-authority.js +27 -0
- package/src/local-dev/task-identity.d.ts +33 -0
- package/src/local-dev/task-identity.js +418 -0
- package/src/local-dev/task-native-writer.d.ts +18 -0
- package/src/local-dev/task-native-writer.js +329 -0
- package/src/local-dev/tls.js +8 -2
- package/src/local-dev/web-launch.d.ts +9 -0
- package/src/local-dev/web-launch.js +130 -0
- package/src/ownership/composition.d.ts +2 -1
- package/src/ownership/composition.js +1 -0
- package/src/performance/cost-collection.d.ts +1 -1
- package/src/performance/cost-collection.js +4 -2
- package/src/performance/cost-controls.d.ts +8 -4
- package/src/performance/cost-controls.js +39 -28
- package/src/performance/evidence.d.ts +1 -1
- package/src/performance/evidence.js +5 -3
- package/src/performance/load-safety.js +5 -3
- package/src/performance/model.d.ts +4 -4
- package/src/performance/model.js +4 -5
- package/src/performance/scenario.d.ts +22 -0
- package/src/performance/scenario.js +100 -92
- package/src/release/index.d.ts +0 -2
- package/src/release/index.js +0 -2
- package/src/release/source-authority.d.ts +5 -5
- package/src/release/source-authority.js +141 -124
- package/src/repository-policy/aurora-preflight.d.ts +1 -1
- package/src/repository-policy/aurora-preflight.js +4 -1
- package/src/repository-policy/capacity-migration.d.ts +3 -0
- package/src/repository-policy/capacity-migration.js +21 -0
- package/src/repository-policy/deployment-plan.d.ts +4 -1
- package/src/repository-policy/deployment-plan.js +9 -0
- package/src/repository-policy/foundation-profile.js +10 -1
- package/src/repository-policy/policy.d.ts +57 -3
- package/src/repository-policy/policy.js +497 -11
- package/src/schemas/blueprint-v1.json +5 -4
- package/src/schemas/foundation-requirement-v1.json +5 -4
- package/src/schemas/performance-policy-v1.json +3 -3
- package/src/schemas/repository-policy-v1.json +130 -6
- package/src/schemas/testing-evidence-result-v1.json +1 -1
- package/src/secrets/adapters.d.ts +7 -2
- package/src/secrets/adapters.js +34 -3
- package/src/secrets/aws-control-plane.d.ts +10 -1
- package/src/secrets/aws-control-plane.js +67 -0
- package/src/secrets/generated-aws-control-plane.d.ts +23 -0
- package/src/secrets/generated-aws-control-plane.js +259 -0
- package/src/secrets/metadata.js +38 -10
- package/src/secrets/model.d.ts +8 -1
- package/src/secrets/model.js +24 -3
- package/src/secrets/operator.d.ts +91 -3
- package/src/secrets/operator.js +463 -13
- package/src/secrets/personal-command.d.ts +18 -2
- package/src/secrets/personal-command.js +66 -12
- package/src/secrets/registry.d.ts +2 -1
- package/src/secrets/registry.js +18 -1
- package/src/secrets/verification.js +15 -2
- package/src/secrets/workload-access.js +10 -2
- package/src/sst-environment-source-format.d.ts +6 -0
- package/src/sst-environment-source-format.js +199 -0
- package/src/supply-chain/action-pins.js +61 -7
- package/src/supply-chain/blueprint-trust-git.js +85 -24
- package/src/supply-chain/blueprint-verification-authority.js +55 -3
- package/src/supply-chain/build-output-bounds.d.ts +2 -0
- package/src/supply-chain/build-output-bounds.js +12 -0
- package/src/supply-chain/build-output.d.ts +7 -1
- package/src/supply-chain/build-output.js +177 -24
- package/src/supply-chain/ecr-scanning.d.ts +5 -3
- package/src/supply-chain/ecr-scanning.js +11 -7
- package/src/supply-chain/ecs-deployed-image.d.ts +5 -3
- package/src/supply-chain/ecs-deployed-image.js +6 -4
- package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
- package/src/supply-chain/generated-command.js +1 -0
- package/src/supply-chain/generated-container-release-command.js +1285 -124
- package/src/supply-chain/generated-ecr-collector-command.d.ts +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js +200 -93
- package/src/supply-chain/generated-files.js +25 -14
- package/src/supply-chain/generated-scanner-command.js +2 -1
- package/src/supply-chain/index.d.ts +1 -1
- package/src/supply-chain/index.js +2 -1
- package/src/supply-chain/sbom.d.ts +1 -1
- package/src/supply-chain/sbom.js +30 -5
- package/src/supply-chain/scanner.js +3 -0
- package/src/testing-evidence/fixture-scope.d.ts +2 -1
- package/src/testing-evidence/fixture-scope.js +4 -2
- package/src/testing-evidence/result.d.ts +2 -1
- package/src/testing-evidence/result.js +18 -4
- package/src/workload-roles/account-baseline.d.ts +11 -0
- package/src/workload-roles/account-baseline.js +253 -16
- package/src/workload-roles/authority.d.ts +3 -1
- package/src/workload-roles/authority.js +48 -2
- package/src/workload-roles/aws-s3-state.js +27 -0
- package/src/workload-roles/boundary.d.ts +2 -1
- package/src/workload-roles/boundary.js +9 -2
- package/src/workload-roles/handler.js +52 -24
- package/src/workload-roles/index.d.ts +10 -17
- package/src/workload-roles/index.js +5 -18
- package/src/workload-roles/injection.js +1 -1
- package/src/workload-roles/provisioner.js +12 -4
- package/src/workload-roles/registration.d.ts +1 -0
- package/src/workload-roles/registration.js +5 -0
- package/src/workload-roles/stage-boundary.js +1 -1
- package/src/workload-roles/standard-slice.js +3 -3
- package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
- package/src/workspace-deployment/affected-lifecycle.js +84 -0
- package/src/workspace-deployment/identity.d.ts +3 -0
- package/src/workspace-deployment/identity.js +22 -0
- package/src/workspace-deployment/index.d.ts +4 -0
- package/src/workspace-deployment/index.js +8 -0
- package/src/workspace-deployment/migration-evidence.d.ts +29 -0
- package/src/workspace-deployment/migration-evidence.js +83 -0
- package/src/workspace-deployment/migration.d.ts +27 -0
- package/src/workspace-deployment/migration.js +109 -0
- package/src/workspace-deployment/ownership.d.ts +81 -0
- package/src/workspace-deployment/ownership.js +381 -0
- package/src/api-contract/baseline-update.js.map +0 -1
- package/src/api-contract/compatibility.js.map +0 -1
- package/src/api-contract/contract-graph.js.map +0 -1
- package/src/api-contract/evidence.js.map +0 -1
- package/src/api-contract/index.js.map +0 -1
- package/src/api-contract/model.fixtures.d.ts +0 -2
- package/src/api-contract/model.fixtures.js +0 -81
- package/src/api-contract/model.fixtures.js.map +0 -1
- package/src/api-contract/model.js.map +0 -1
- package/src/api-contract/rollout.js.map +0 -1
- package/src/authorization/compatibility.js.map +0 -1
- package/src/authorization/index.js.map +0 -1
- package/src/blueprints/execution.js.map +0 -1
- package/src/blueprints/external-sandbox.js.map +0 -1
- package/src/blueprints/index.js.map +0 -1
- package/src/blueprints/inputs.js.map +0 -1
- package/src/blueprints/manifest.js.map +0 -1
- package/src/blueprints/resolver.js.map +0 -1
- package/src/blueprints/transitions.js.map +0 -1
- package/src/cli/agent-command.js.map +0 -1
- package/src/cli/agent-runtime.js.map +0 -1
- package/src/cli/blueprint-authority.js.map +0 -1
- package/src/cli/blueprint-command.js.map +0 -1
- package/src/cli/bootstrap.js.map +0 -1
- package/src/cli/dev-command.js.map +0 -1
- package/src/cli/main.js.map +0 -1
- package/src/cli/output.js.map +0 -1
- package/src/cli/personal-secret-runtime.js.map +0 -1
- package/src/cli/secret-terminal.js.map +0 -1
- package/src/container-images.js.map +0 -1
- package/src/data-lifecycle/index.js.map +0 -1
- package/src/data-lifecycle/model.fixtures.d.ts +0 -2
- package/src/data-lifecycle/model.fixtures.js +0 -244
- package/src/data-lifecycle/model.fixtures.js.map +0 -1
- package/src/data-lifecycle/model.js.map +0 -1
- package/src/data-lifecycle/sensitive-artifacts.js.map +0 -1
- package/src/data-lifecycle/validation.js.map +0 -1
- package/src/database-retirement/contract.js.map +0 -1
- package/src/database-retirement/index.js.map +0 -1
- package/src/deterministic-order.js.map +0 -1
- package/src/developer-agent/context.js.map +0 -1
- package/src/developer-agent/generator-planning.js.map +0 -1
- package/src/developer-agent/generator-preview.js.map +0 -1
- package/src/developer-agent/git-inspection.js.map +0 -1
- package/src/developer-agent/handoff.js.map +0 -1
- package/src/developer-agent/index.js.map +0 -1
- package/src/developer-agent/model.js.map +0 -1
- package/src/developer-agent/operation-registry.js.map +0 -1
- package/src/developer-agent/ordering.js.map +0 -1
- package/src/developer-agent/planning.js.map +0 -1
- package/src/developer-agent/preview-changes.js.map +0 -1
- package/src/developer-agent/preview-source.js.map +0 -1
- package/src/developer-agent/validation.js.map +0 -1
- package/src/developer-agent/workspace-inspection.js.map +0 -1
- package/src/developer-agent/workspace-path.js.map +0 -1
- package/src/executors/blueprint-trust/blueprint-trust.js.map +0 -1
- package/src/executors/blueprint-verification/blueprint-verification.js.map +0 -1
- package/src/executors/deploy/deploy.js.map +0 -1
- package/src/executors/deployment-plan/deployment-plan.js.map +0 -1
- package/src/executors/dev/dev.js.map +0 -1
- package/src/executors/dev-doctor/dev-doctor.js.map +0 -1
- package/src/executors/dev-setup/dev-setup.js.map +0 -1
- package/src/executors/developer-context/developer-context.js.map +0 -1
- package/src/executors/fleet/fleet.js.map +0 -1
- package/src/executors/foundation-preflight/foundation-preflight.js.map +0 -1
- package/src/executors/foundation-profile-preflight/foundation-profile-preflight.js.map +0 -1
- package/src/executors/foundation-remove-preflight/foundation-remove-preflight.js.map +0 -1
- package/src/executors/github-bootstrap/github-bootstrap.js.map +0 -1
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +0 -1
- package/src/executors/refresh/refresh.js.map +0 -1
- package/src/executors/remove/remove.js.map +0 -1
- package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
- package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
- package/src/executors/sst-lifecycle/logging-preflight.js.map +0 -1
- package/src/executors/sst-lifecycle/run-sst-command.js.map +0 -1
- package/src/executors/sst-lifecycle/secret-preflight.js.map +0 -1
- package/src/executors/unlock/unlock.js.map +0 -1
- package/src/executors/work-markers/work-markers.js.map +0 -1
- package/src/foundation/discovery.js.map +0 -1
- package/src/foundation/index.js.map +0 -1
- package/src/foundation/local-database-contract.js.map +0 -1
- package/src/foundation/logging-preflight.js.map +0 -1
- package/src/foundation/logging.js.map +0 -1
- package/src/foundation/preflight.js.map +0 -1
- package/src/foundation/provision-database-bindings.js.map +0 -1
- package/src/foundation/provision-logical-database.js.map +0 -1
- package/src/foundation/requirements.js.map +0 -1
- package/src/foundation/router-origin-proof.js.map +0 -1
- package/src/foundation/stages.js.map +0 -1
- package/src/frontend-security/index.js.map +0 -1
- package/src/frontend-security/security-headers.js.map +0 -1
- package/src/generators/feature-registry.js.map +0 -1
- package/src/generators/function/function.js.map +0 -1
- package/src/generators/job/job.js.map +0 -1
- package/src/generators/logging-registry.js.map +0 -1
- package/src/generators/post-generation-install.js.map +0 -1
- package/src/generators/preset/generator.js.map +0 -1
- package/src/generators/preset/tool-versions.js.map +0 -1
- package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
- package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-cost.js.map +0 -1
- package/src/generators/preset/workspace-files-performance-load.js.map +0 -1
- package/src/generators/preset/workspace-files-workload-role-baseline.js.map +0 -1
- package/src/generators/preset/workspace-files.js.map +0 -1
- package/src/generators/repository-policy/repository-policy.js.map +0 -1
- package/src/generators/service/service.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-contract-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-api-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-async-work-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-deletion-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-data-rights-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-foundation-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-frontend-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-metadata-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-operations-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-performance-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-project-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-release-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-reliability-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-shared.js.map +0 -1
- package/src/generators/slice/built-in-plan-testing-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-verification-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-web-files.js.map +0 -1
- package/src/generators/slice/built-in-plan-workload-role-files.js.map +0 -1
- package/src/generators/slice/built-in-plan.js.map +0 -1
- package/src/generators/slice/slice.js.map +0 -1
- package/src/generators/upgrade/upgrade.js.map +0 -1
- package/src/generators/workload/frozen-container.js.map +0 -1
- package/src/generators/workload/performance-registration.js.map +0 -1
- package/src/generators/workload/reliability-registration.js.map +0 -1
- package/src/generators/workload/service-performance-files.js.map +0 -1
- package/src/generators/workload/workload.js.map +0 -1
- package/src/git-policy/action-pins.js.map +0 -1
- package/src/git-policy/github-bootstrap.js.map +0 -1
- package/src/git-policy/index.js.map +0 -1
- package/src/git-policy/routing.js.map +0 -1
- package/src/index.js.map +0 -1
- package/src/infrastructure-change/convergence.js.map +0 -1
- package/src/infrastructure-change/drift.js.map +0 -1
- package/src/infrastructure-change/index.js.map +0 -1
- package/src/infrastructure-change/model.js.map +0 -1
- package/src/infrastructure-change/normalize.js.map +0 -1
- package/src/infrastructure-change/plan.js.map +0 -1
- package/src/infrastructure-change/risk.js.map +0 -1
- package/src/infrastructure-change/summary.js.map +0 -1
- package/src/local-dev/context-discovery.js.map +0 -1
- package/src/local-dev/contract-validation.js.map +0 -1
- package/src/local-dev/contracts.js.map +0 -1
- package/src/local-dev/control-contract.js.map +0 -1
- package/src/local-dev/dev-command-core.js.map +0 -1
- package/src/local-dev/effects.js.map +0 -1
- package/src/local-dev/environment-inspector.js.map +0 -1
- package/src/local-dev/environment-state.js.map +0 -1
- package/src/local-dev/errors.js.map +0 -1
- package/src/local-dev/fleet-client.js.map +0 -1
- package/src/local-dev/fleet-configuration.js.map +0 -1
- package/src/local-dev/fleet-inventory.js.map +0 -1
- package/src/local-dev/fleet-ipc.js.map +0 -1
- package/src/local-dev/fleet-launcher.js.map +0 -1
- package/src/local-dev/fleet-lock.js.map +0 -1
- package/src/local-dev/fleet-logs.js.map +0 -1
- package/src/local-dev/fleet-process.js.map +0 -1
- package/src/local-dev/fleet-runtime.js.map +0 -1
- package/src/local-dev/fleet-session.js.map +0 -1
- package/src/local-dev/fleet-slice-runner-daemon.js.map +0 -1
- package/src/local-dev/fleet-startup.js.map +0 -1
- package/src/local-dev/fleet-state.js.map +0 -1
- package/src/local-dev/fleet-supervisor-daemon.js.map +0 -1
- package/src/local-dev/fleet-supervisor.js.map +0 -1
- package/src/local-dev/gateway-daemon.js.map +0 -1
- package/src/local-dev/gateway.js.map +0 -1
- package/src/local-dev/identity.js.map +0 -1
- package/src/local-dev/index.js.map +0 -1
- package/src/local-dev/local-context.js.map +0 -1
- package/src/local-dev/nx-workspace.js.map +0 -1
- package/src/local-dev/personal-secret-ledger.js.map +0 -1
- package/src/local-dev/personal-stage.js.map +0 -1
- package/src/local-dev/portless.js.map +0 -1
- package/src/local-dev/ports.js.map +0 -1
- package/src/local-dev/private-state.js.map +0 -1
- package/src/local-dev/process-identity.js.map +0 -1
- package/src/local-dev/proxy.js.map +0 -1
- package/src/local-dev/runtime-paths.js.map +0 -1
- package/src/local-dev/secret-slice-claim.js.map +0 -1
- package/src/local-dev/slice-claim.js.map +0 -1
- package/src/local-dev/slice-runner.js.map +0 -1
- package/src/local-dev/tls.js.map +0 -1
- package/src/ownership/composition.js.map +0 -1
- package/src/ownership/foundation-record.js.map +0 -1
- package/src/ownership/hash.js.map +0 -1
- package/src/ownership/index.js.map +0 -1
- package/src/ownership/json-ownership.js.map +0 -1
- package/src/ownership/record.js.map +0 -1
- package/src/ownership/workspace-record.js.map +0 -1
- package/src/performance/cost-collection.js.map +0 -1
- package/src/performance/cost-controls.js.map +0 -1
- package/src/performance/evidence.js.map +0 -1
- package/src/performance/index.js.map +0 -1
- package/src/performance/load-safety.js.map +0 -1
- package/src/performance/model.js.map +0 -1
- package/src/performance/pr-artifact-budget.js.map +0 -1
- package/src/performance/runner.js.map +0 -1
- package/src/performance/scenario-endpoint.js.map +0 -1
- package/src/performance/scenario.js.map +0 -1
- package/src/performance/test-fixtures.d.ts +0 -7
- package/src/performance/test-fixtures.js +0 -169
- package/src/performance/test-fixtures.js.map +0 -1
- package/src/performance/unit-cost.js.map +0 -1
- package/src/release/index.js.map +0 -1
- package/src/release/lifecycle.js.map +0 -1
- package/src/release/manifest.js.map +0 -1
- package/src/release/rollout.js.map +0 -1
- package/src/release/source-authority.js.map +0 -1
- package/src/repository-policy/aurora-preflight.js.map +0 -1
- package/src/repository-policy/deployment-plan.js.map +0 -1
- package/src/repository-policy/foundation-profile.js.map +0 -1
- package/src/repository-policy/index.js.map +0 -1
- package/src/repository-policy/policy.js.map +0 -1
- package/src/secrets/adapters.js.map +0 -1
- package/src/secrets/aws-control-plane.js.map +0 -1
- package/src/secrets/declaration-verification.js.map +0 -1
- package/src/secrets/guardrails.js.map +0 -1
- package/src/secrets/index.js.map +0 -1
- package/src/secrets/metadata.js.map +0 -1
- package/src/secrets/model.js.map +0 -1
- package/src/secrets/operator.js.map +0 -1
- package/src/secrets/permissions.js.map +0 -1
- package/src/secrets/personal-command.js.map +0 -1
- package/src/secrets/personal-ledger.js.map +0 -1
- package/src/secrets/registry.js.map +0 -1
- package/src/secrets/verification.js.map +0 -1
- package/src/secrets/workload-access.js.map +0 -1
- package/src/supply-chain/action-pins.js.map +0 -1
- package/src/supply-chain/blueprint-trust-git.js.map +0 -1
- package/src/supply-chain/blueprint-trust-process.js.map +0 -1
- package/src/supply-chain/blueprint-trust.js.map +0 -1
- package/src/supply-chain/blueprint-verification-authority.js.map +0 -1
- package/src/supply-chain/blueprint-verification-execution.js.map +0 -1
- package/src/supply-chain/build-output.js.map +0 -1
- package/src/supply-chain/common.js.map +0 -1
- package/src/supply-chain/container-artifact-contract.js.map +0 -1
- package/src/supply-chain/container-release.js.map +0 -1
- package/src/supply-chain/ecr-applicability.js.map +0 -1
- package/src/supply-chain/ecr-scanning.js.map +0 -1
- package/src/supply-chain/ecs-deployed-image.js.map +0 -1
- package/src/supply-chain/errors.js.map +0 -1
- package/src/supply-chain/generated-blueprint-trust-command.js.map +0 -1
- package/src/supply-chain/generated-command.js.map +0 -1
- package/src/supply-chain/generated-container-release-command.js.map +0 -1
- package/src/supply-chain/generated-ecr-collector-command.js.map +0 -1
- package/src/supply-chain/generated-files.js.map +0 -1
- package/src/supply-chain/generated-scanner-command.js.map +0 -1
- package/src/supply-chain/index.js.map +0 -1
- package/src/supply-chain/inventory.js.map +0 -1
- package/src/supply-chain/license-expression.js.map +0 -1
- package/src/supply-chain/pnpm-toolchain-authority.js.map +0 -1
- package/src/supply-chain/policy.js.map +0 -1
- package/src/supply-chain/publication.js.map +0 -1
- package/src/supply-chain/sbom.js.map +0 -1
- package/src/supply-chain/scanner.js.map +0 -1
- package/src/supply-chain/vendored-source.js.map +0 -1
- package/src/testing-evidence/fixture-scope.js.map +0 -1
- package/src/testing-evidence/index.js.map +0 -1
- package/src/testing-evidence/quarantine.js.map +0 -1
- package/src/testing-evidence/result.js.map +0 -1
- package/src/testing-evidence/runner-adapter.js.map +0 -1
- package/src/testing-evidence/sensitive-artifacts.js.map +0 -1
- package/src/validation.js.map +0 -1
- package/src/work-markers/index.js.map +0 -1
- package/src/work-markers/work-markers.js.map +0 -1
- package/src/workload-roles/account-baseline.js.map +0 -1
- package/src/workload-roles/authority.js.map +0 -1
- package/src/workload-roles/aws-adapter.js.map +0 -1
- package/src/workload-roles/aws-internal-handler.js.map +0 -1
- package/src/workload-roles/aws-s3-state.js.map +0 -1
- package/src/workload-roles/aws-sdk-control-plane.js.map +0 -1
- package/src/workload-roles/boundary.js.map +0 -1
- package/src/workload-roles/convergence.js.map +0 -1
- package/src/workload-roles/effective-policy.js.map +0 -1
- package/src/workload-roles/handler.js.map +0 -1
- package/src/workload-roles/history.js.map +0 -1
- package/src/workload-roles/index.js.map +0 -1
- package/src/workload-roles/injection.js.map +0 -1
- package/src/workload-roles/manifest.js.map +0 -1
- package/src/workload-roles/provisioner.js.map +0 -1
- package/src/workload-roles/registration.js.map +0 -1
- package/src/workload-roles/stage-boundary.js.map +0 -1
- package/src/workload-roles/standard-slice.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ChildProcessWithoutNullStreams } from 'node:child_process';
|
|
2
|
-
export declare const EXTERNAL_BLUEPRINT_SANDBOX_IMAGE: "node:22-alpine@sha256:
|
|
2
|
+
export declare const EXTERNAL_BLUEPRINT_SANDBOX_IMAGE: "node:22-alpine@sha256:0a7108bf6c7bf5de370ffb1a3ed6be93d405b43ff159f681a8d18c0e2bc2e402";
|
|
3
3
|
export declare const EXTERNAL_BLUEPRINT_CONTAINER_AUTO_REMOVE: "--rm";
|
|
4
4
|
export declare const EXTERNAL_BLUEPRINT_SANDBOX_FLAGS: readonly ["--network=none", "--read-only", "--cap-drop=ALL", "--security-opt=no-new-privileges", "--pids-limit=64", "--memory=256m", "--memory-swap=256m", "--cpus=1", "--ulimit=nofile=256:256", "--tmpfs=/tmp:rw,noexec,nosuid,nodev,size=16m,mode=1777"];
|
|
5
5
|
export type ExternalBlueprintSource = 'installed' | 'local';
|
|
@@ -160,7 +160,7 @@ function packagePathSegments(name, label) {
|
|
|
160
160
|
}
|
|
161
161
|
return segments;
|
|
162
162
|
}
|
|
163
|
-
function assertLinuxMuslPortableManifest(manifest) {
|
|
163
|
+
function assertLinuxMuslPortableManifest(manifest, registryDependency) {
|
|
164
164
|
if (manifest.optionalDependencies !== undefined) {
|
|
165
165
|
if (!isRecord(manifest.optionalDependencies)) {
|
|
166
166
|
throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} has a malformed optional dependency map.`);
|
|
@@ -212,7 +212,8 @@ function assertLinuxMuslPortableManifest(manifest) {
|
|
|
212
212
|
'postinstall',
|
|
213
213
|
'prepare',
|
|
214
214
|
'prepublish',
|
|
215
|
-
].find((name) => Object.prototype.hasOwnProperty.call(manifest.scripts, name)
|
|
215
|
+
].find((name) => Object.prototype.hasOwnProperty.call(manifest.scripts, name) &&
|
|
216
|
+
!(name === 'prepublish' && registryDependency));
|
|
216
217
|
if (installScript) {
|
|
217
218
|
throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} declares unsupported install/build script ${installScript}.`);
|
|
218
219
|
}
|
|
@@ -225,7 +226,7 @@ function assertLinuxMuslPortableManifest(manifest) {
|
|
|
225
226
|
throw new Error(`External Blueprint package ${manifest.name}@${manifest.version} declares unsupported native build dependency ${buildDependency}.`);
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
|
-
function readPackageManifest(packageRoot, expectedName, expectedVersion) {
|
|
229
|
+
function readPackageManifest(packageRoot, expectedName, expectedVersion, registryDependencyAuthority) {
|
|
229
230
|
const manifestPath = (0, node_path_1.join)(packageRoot, 'package.json');
|
|
230
231
|
let descriptor;
|
|
231
232
|
let bytes;
|
|
@@ -283,7 +284,15 @@ function readPackageManifest(packageRoot, expectedName, expectedVersion) {
|
|
|
283
284
|
}
|
|
284
285
|
packagePathSegments(value.name, 'External Blueprint dependency name');
|
|
285
286
|
const manifest = value;
|
|
286
|
-
|
|
287
|
+
if (registryDependencyAuthority) {
|
|
288
|
+
assertInstalledPackageAuthority(registryDependencyAuthority, packageRoot, manifest);
|
|
289
|
+
}
|
|
290
|
+
// A registry dependency may ship prepublish metadata alongside ready JS.
|
|
291
|
+
// This is not a publish-only hook: npm install can execute it. The sandbox
|
|
292
|
+
// runs Node directly, never a package manager or build script. Missing built
|
|
293
|
+
// files therefore fail execution; hooks cannot be used to manufacture them.
|
|
294
|
+
// Publisher roots never receive this dependency-only admission.
|
|
295
|
+
assertLinuxMuslPortableManifest(manifest, !!registryDependencyAuthority);
|
|
287
296
|
return manifest;
|
|
288
297
|
}
|
|
289
298
|
function manifestDependencyInventory(manifest) {
|
|
@@ -460,7 +469,7 @@ function resolveInstalledDependencyRoot(workspaceRoot, packageRoot, dependency,
|
|
|
460
469
|
throw new Error('External Blueprint dependency closure escapes the canonical workspace.');
|
|
461
470
|
}
|
|
462
471
|
assertInstalledPackageRoot(installedAuthority, canonical);
|
|
463
|
-
readPackageManifest(canonical, dependency.name);
|
|
472
|
+
readPackageManifest(canonical, dependency.name, undefined, installedAuthority);
|
|
464
473
|
return canonical;
|
|
465
474
|
}
|
|
466
475
|
if (dependency.optional)
|
|
@@ -513,7 +522,7 @@ function copyPackageBytes(sourceRoot, destinationRoot, budget) {
|
|
|
513
522
|
};
|
|
514
523
|
visit(sourceRoot, destinationRoot, 0);
|
|
515
524
|
}
|
|
516
|
-
function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budget, installedAuthority,
|
|
525
|
+
function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budget, installedAuthority, packageKind) {
|
|
517
526
|
const existing = packages.get(sourceRoot);
|
|
518
527
|
if (existing)
|
|
519
528
|
return existing;
|
|
@@ -521,13 +530,14 @@ function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budg
|
|
|
521
530
|
if (budget.packages > MAX_CLOSURE_PACKAGES) {
|
|
522
531
|
throw new Error('External Blueprint dependency closure exceeds its fixed package bound.');
|
|
523
532
|
}
|
|
533
|
+
const requiresRegistryAuthority = packageKind !== 'local-publisher';
|
|
524
534
|
if (requiresRegistryAuthority && !installedAuthority) {
|
|
525
535
|
throw new Error('Local external Blueprint dependencies require canonical pnpm registry and lockfile authority.');
|
|
526
536
|
}
|
|
527
537
|
if (requiresRegistryAuthority && installedAuthority) {
|
|
528
538
|
assertInstalledPackageRoot(installedAuthority, sourceRoot);
|
|
529
539
|
}
|
|
530
|
-
const manifest = readPackageManifest(sourceRoot);
|
|
540
|
+
const manifest = readPackageManifest(sourceRoot, undefined, undefined, packageKind === 'dependency' ? installedAuthority : undefined);
|
|
531
541
|
if (requiresRegistryAuthority && installedAuthority) {
|
|
532
542
|
assertInstalledPackageAuthority(installedAuthority, sourceRoot, manifest);
|
|
533
543
|
}
|
|
@@ -546,7 +556,7 @@ function discoverPackage(workspaceRoot, sourceRoot, packagesRoot, packages, budg
|
|
|
546
556
|
const dependencyRoot = resolveInstalledDependencyRoot(workspaceRoot, sourceRoot, dependency, installedAuthority);
|
|
547
557
|
if (dependencyRoot === undefined)
|
|
548
558
|
continue;
|
|
549
|
-
node.dependencies.set(dependency.name, discoverPackage(workspaceRoot, dependencyRoot, packagesRoot, packages, budget, installedAuthority,
|
|
559
|
+
node.dependencies.set(dependency.name, discoverPackage(workspaceRoot, dependencyRoot, packagesRoot, packages, budget, installedAuthority, 'dependency'));
|
|
550
560
|
}
|
|
551
561
|
return node;
|
|
552
562
|
}
|
|
@@ -602,7 +612,9 @@ function stageExternalBlueprintClosure(workspaceRoot, packageRoot, generatorPath
|
|
|
602
612
|
(0, node_fs_1.mkdirSync)(packagesRoot, { recursive: true, mode: 0o700 });
|
|
603
613
|
(0, node_fs_1.chmodSync)(packagesRoot, 0o700);
|
|
604
614
|
const packages = new Map();
|
|
605
|
-
const root = discoverPackage(workspaceRoot, packageRoot, packagesRoot, packages, { bytes: 0, directories: 0, files: 0, packages: 0 }, installedAuthority, authority.source === 'installed'
|
|
615
|
+
const root = discoverPackage(workspaceRoot, packageRoot, packagesRoot, packages, { bytes: 0, directories: 0, files: 0, packages: 0 }, installedAuthority, authority.source === 'installed'
|
|
616
|
+
? 'installed-publisher'
|
|
617
|
+
: 'local-publisher');
|
|
606
618
|
linkStagedPackageGraph(stageRoot, root, packages);
|
|
607
619
|
const containerGeneratorUrl = `file://${node_path_1.posix.join('/sandbox/node_modules', ...packageSegments, ...generatorChild
|
|
608
620
|
.split(node_path_1.sep)
|
|
@@ -73,7 +73,7 @@ export declare const blueprintManifestSchema: {
|
|
|
73
73
|
readonly properties: {
|
|
74
74
|
readonly capabilities: {
|
|
75
75
|
readonly items: {
|
|
76
|
-
readonly enum: readonly ["
|
|
76
|
+
readonly enum: readonly ["key-value", "routing", "identity", "events", "observability", "configuration", "deployment", "network", "container-compute", "postgres"];
|
|
77
77
|
readonly type: "string";
|
|
78
78
|
};
|
|
79
79
|
readonly type: "array";
|
|
@@ -7,6 +7,7 @@ const node_crypto_1 = require("node:crypto");
|
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = require("node:path");
|
|
9
9
|
const semver_1 = require("semver");
|
|
10
|
+
const capability_plan_js_1 = require("../foundation/capability-plan.js");
|
|
10
11
|
const blueprint_trust_js_1 = require("../supply-chain/blueprint-trust.js");
|
|
11
12
|
const blueprint_trust_git_js_1 = require("../supply-chain/blueprint-trust-git.js");
|
|
12
13
|
const inputs_js_1 = require("./inputs.js");
|
|
@@ -21,7 +22,31 @@ const MAX_PNPM_LOCKFILE_BYTES = 32 * 1024 * 1024;
|
|
|
21
22
|
const builtInInputSchema = {
|
|
22
23
|
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
23
24
|
additionalProperties: false,
|
|
24
|
-
properties: {
|
|
25
|
+
properties: {
|
|
26
|
+
sql: {
|
|
27
|
+
type: 'object',
|
|
28
|
+
additionalProperties: false,
|
|
29
|
+
required: ['reason'],
|
|
30
|
+
properties: {
|
|
31
|
+
reason: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
minLength: 1,
|
|
34
|
+
maxLength: 512,
|
|
35
|
+
pattern: '^[^\\u0000-\\u001f\\u007f]+$',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
dependencySlices: {
|
|
40
|
+
type: 'array',
|
|
41
|
+
maxItems: 64,
|
|
42
|
+
uniqueItems: true,
|
|
43
|
+
items: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
maxLength: 63,
|
|
46
|
+
pattern: '^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
25
50
|
type: 'object',
|
|
26
51
|
};
|
|
27
52
|
function readEngineVersion() {
|
|
@@ -42,19 +67,7 @@ function createBuiltInManifest(engineVersion) {
|
|
|
42
67
|
return {
|
|
43
68
|
$schema: 'https://empirebuilderkit.dev/schemas/blueprint-v1.json',
|
|
44
69
|
engine: engineVersion,
|
|
45
|
-
foundation: {
|
|
46
|
-
capabilities: [
|
|
47
|
-
'network',
|
|
48
|
-
'routing',
|
|
49
|
-
'postgres',
|
|
50
|
-
'identity',
|
|
51
|
-
'events',
|
|
52
|
-
'observability',
|
|
53
|
-
'configuration',
|
|
54
|
-
'deployment',
|
|
55
|
-
],
|
|
56
|
-
contract: '^1',
|
|
57
|
-
},
|
|
70
|
+
foundation: (0, capability_plan_js_1.standardPersistenceRequirement)({}),
|
|
58
71
|
generator: './built-in/standard.js',
|
|
59
72
|
inputs: './built-in/standard-inputs.json',
|
|
60
73
|
kind: 'slice',
|
|
@@ -340,7 +353,7 @@ function resolveBlueprint({ engineVersion, localAuthoringPackages = [], localPac
|
|
|
340
353
|
throw new Error(`Blueprint manifest identity ${manifestResult.value.name}@${manifestResult.value.version} does not match requested ${parsed.name}@${parsed.version}.`);
|
|
341
354
|
}
|
|
342
355
|
if (!(0, semver_1.satisfies)(resolvedEngineVersion, manifestResult.value.engine)) {
|
|
343
|
-
throw new Error(`Blueprint ${parsed.name}@${parsed.version} requires EBK engine ${manifestResult.value.engine}, but this workspace provides ${resolvedEngineVersion}.`);
|
|
356
|
+
throw new Error(`Blueprint ${parsed.name}@${parsed.version} requires EBK engine ${manifestResult.value.engine}, but this workspace provides ${resolvedEngineVersion}. Use a compatible reviewed recipe, or revalidate your adopter-owned recipe against this engine in a disposable workspace before updating its engine declaration, version and trust record.`);
|
|
344
357
|
}
|
|
345
358
|
resolveManifestAssets(packageRoot, manifestResult.value);
|
|
346
359
|
if (localRoot) {
|
package/src/cli/bootstrap.d.ts
CHANGED
|
@@ -27,5 +27,5 @@ export declare function launchBlueprintAuthority(workspaceRoot: string, io: Requ
|
|
|
27
27
|
childPath?: string;
|
|
28
28
|
nodeExecutable?: string;
|
|
29
29
|
}): 0 | 1;
|
|
30
|
-
export declare function runEbkBootstrap(arguments_: readonly string[], io?: BootstrapIo, dependencies?: BootstrapDependencies): Promise<
|
|
30
|
+
export declare function runEbkBootstrap(arguments_: readonly string[], io?: BootstrapIo, dependencies?: BootstrapDependencies): Promise<number>;
|
|
31
31
|
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { runGovernedChildProcess } from '../executors/sst-lifecycle/run-sst-command.js';
|
|
2
|
+
import type { DeployCliCommand } from './dev-command.js';
|
|
3
|
+
export declare const DEPLOY_RESULT_KIND = "ebk-deploy-result";
|
|
4
|
+
export declare const DEPLOY_RECEIPT_PATH = ".ebk/evidence/deployment/latest.json";
|
|
5
|
+
export interface DeployResultProject {
|
|
6
|
+
outcome: string;
|
|
7
|
+
project: string;
|
|
8
|
+
target: string;
|
|
9
|
+
}
|
|
10
|
+
/** The development-only `--json` result: the executor's own written receipt
|
|
11
|
+
* (already secret-free evidence) and per-project status. It is printed after
|
|
12
|
+
* the run and carries no authority; protected stages never produce it. */
|
|
13
|
+
export interface DeployJsonResult {
|
|
14
|
+
exitCode: number;
|
|
15
|
+
kind: typeof DEPLOY_RESULT_KIND;
|
|
16
|
+
outcome: 'failed' | 'receipt-unavailable' | 'review-required' | 'succeeded';
|
|
17
|
+
projects: DeployResultProject[];
|
|
18
|
+
receipt: Record<string, unknown> | null;
|
|
19
|
+
receiptPath: typeof DEPLOY_RECEIPT_PATH;
|
|
20
|
+
schemaVersion: 1;
|
|
21
|
+
stage: 'development';
|
|
22
|
+
}
|
|
23
|
+
export interface DeployCommandOutput {
|
|
24
|
+
now?: () => number;
|
|
25
|
+
stdout: (value: string) => void;
|
|
26
|
+
}
|
|
27
|
+
/** The CLI selects the existing workspace lifecycle, never an individual SST
|
|
28
|
+
* child. All policy, identity, TTY, migration, smoke and receipt decisions
|
|
29
|
+
* remain in the generated Nx target and its executor. */
|
|
30
|
+
export declare function executeDeployCommand(command: DeployCliCommand, workspaceRoot: string, environment: NodeJS.ProcessEnv, run?: typeof runGovernedChildProcess, output?: DeployCommandOutput): Promise<number>;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEPLOY_RECEIPT_PATH = exports.DEPLOY_RESULT_KIND = void 0;
|
|
4
|
+
exports.executeDeployCommand = executeDeployCommand;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const run_sst_command_js_1 = require("../executors/sst-lifecycle/run-sst-command.js");
|
|
9
|
+
const errors_js_1 = require("../local-dev/errors.js");
|
|
10
|
+
const nx_workspace_js_1 = require("../local-dev/nx-workspace.js");
|
|
11
|
+
exports.DEPLOY_RESULT_KIND = 'ebk-deploy-result';
|
|
12
|
+
exports.DEPLOY_RECEIPT_PATH = '.ebk/evidence/deployment/latest.json';
|
|
13
|
+
const MAX_DEPLOY_RECEIPT_BYTES = 1024 * 1024;
|
|
14
|
+
const MAX_DEPLOY_RECEIPT_CHILDREN = 4096;
|
|
15
|
+
function isRecord(value) {
|
|
16
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
function boundedText(value) {
|
|
19
|
+
return typeof value === 'string' && value.length > 0 && value.length <= 256;
|
|
20
|
+
}
|
|
21
|
+
/** Reads only a fresh, regular, bounded development receipt written by this
|
|
22
|
+
* run. A stale receipt left by an earlier run (for example when the
|
|
23
|
+
* workspace-health dependency fails before the executor invalidates it) is
|
|
24
|
+
* reported as unavailable, never as this run's result. */
|
|
25
|
+
function readFreshDevelopmentReceipt(workspaceRoot, startedAtMs) {
|
|
26
|
+
let descriptor;
|
|
27
|
+
let source;
|
|
28
|
+
try {
|
|
29
|
+
const receiptPath = (0, node_path_1.join)(workspaceRoot, exports.DEPLOY_RECEIPT_PATH);
|
|
30
|
+
// Windows has no O_NOFOLLOW, so the receipt file itself must not be a
|
|
31
|
+
// symbolic link, and the opened file must be the one lstat saw (exact
|
|
32
|
+
// 64-bit identity). A filesystem whose fstat identity differs from lstat
|
|
33
|
+
// reports the receipt as unavailable.
|
|
34
|
+
const entry = (0, node_fs_1.lstatSync)(receiptPath, { bigint: true });
|
|
35
|
+
if (entry.isSymbolicLink() || !entry.isFile())
|
|
36
|
+
return undefined;
|
|
37
|
+
descriptor = (0, node_fs_1.openSync)(receiptPath,
|
|
38
|
+
// O_NOFOLLOW refuses a symbolic link at the receipt path itself.
|
|
39
|
+
node_fs_1.constants.O_RDONLY | (node_fs_1.constants.O_NOFOLLOW ?? 0));
|
|
40
|
+
const stat = (0, node_fs_1.fstatSync)(descriptor, { bigint: true });
|
|
41
|
+
if (!stat.isFile() ||
|
|
42
|
+
stat.dev !== entry.dev ||
|
|
43
|
+
stat.ino !== entry.ino ||
|
|
44
|
+
stat.size > BigInt(MAX_DEPLOY_RECEIPT_BYTES)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const size = Number(stat.size);
|
|
48
|
+
const buffer = Buffer.alloc(size);
|
|
49
|
+
let offset = 0;
|
|
50
|
+
while (offset < size) {
|
|
51
|
+
const read = (0, node_fs_1.readSync)(descriptor, buffer, offset, size - offset, null);
|
|
52
|
+
if (read === 0)
|
|
53
|
+
break;
|
|
54
|
+
offset += read;
|
|
55
|
+
}
|
|
56
|
+
source = buffer.subarray(0, offset).toString('utf8');
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
if (descriptor !== undefined)
|
|
63
|
+
(0, node_fs_1.closeSync)(descriptor);
|
|
64
|
+
}
|
|
65
|
+
let receipt;
|
|
66
|
+
try {
|
|
67
|
+
receipt = JSON.parse(source);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
if (!isRecord(receipt) ||
|
|
73
|
+
receipt.kind !== 'ebk-deployment-receipt' ||
|
|
74
|
+
receipt.schemaVersion !== 1 ||
|
|
75
|
+
receipt.stage !== 'development' ||
|
|
76
|
+
typeof receipt.startedAt !== 'string' ||
|
|
77
|
+
!Number.isFinite(Date.parse(receipt.startedAt)) ||
|
|
78
|
+
Date.parse(receipt.startedAt) < startedAtMs ||
|
|
79
|
+
!['failed', 'review-required', 'succeeded'].includes(String(receipt.outcome)) ||
|
|
80
|
+
!Array.isArray(receipt.children) ||
|
|
81
|
+
receipt.children.length > MAX_DEPLOY_RECEIPT_CHILDREN) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const projects = [];
|
|
85
|
+
for (const child of receipt.children) {
|
|
86
|
+
if (!isRecord(child) ||
|
|
87
|
+
!boundedText(child.project) ||
|
|
88
|
+
!boundedText(child.target) ||
|
|
89
|
+
!boundedText(child.outcome)) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
projects.push({
|
|
93
|
+
outcome: child.outcome,
|
|
94
|
+
project: child.project,
|
|
95
|
+
target: child.target,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return { projects, receipt };
|
|
99
|
+
}
|
|
100
|
+
/** The CLI selects the existing workspace lifecycle, never an individual SST
|
|
101
|
+
* child. All policy, identity, TTY, migration, smoke and receipt decisions
|
|
102
|
+
* remain in the generated Nx target and its executor. */
|
|
103
|
+
async function executeDeployCommand(command, workspaceRoot, environment, run = run_sst_command_js_1.runGovernedChildProcess, output) {
|
|
104
|
+
const structured = command.json === true;
|
|
105
|
+
if (structured && (command.stage !== 'development' || !output)) {
|
|
106
|
+
// Parsing already refuses this; fail closed if a caller bypasses it.
|
|
107
|
+
throw new errors_js_1.LocalDevContractError('invalid-input', 'ebk deploy --json is available only for development; staging and production keep native output and the interactive acknowledgement.');
|
|
108
|
+
}
|
|
109
|
+
let project;
|
|
110
|
+
try {
|
|
111
|
+
project = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(workspaceRoot, 'project.json'), 'utf8'));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'ebk deploy requires the generated root project.json. Run the supported workspace upgrade and workspace-health check.');
|
|
115
|
+
}
|
|
116
|
+
const target = project?.targets?.['deploy-local'];
|
|
117
|
+
if (typeof project?.name !== 'string' ||
|
|
118
|
+
!/^[a-zA-Z0-9@][a-zA-Z0-9@/._-]{0,213}$/.test(project.name) ||
|
|
119
|
+
target?.executor !== '@empire-builder-kit/nx:local-deploy' ||
|
|
120
|
+
target.cache !== false ||
|
|
121
|
+
!Array.isArray(target.dependsOn) ||
|
|
122
|
+
!target.dependsOn.includes('workspace-health')) {
|
|
123
|
+
throw new errors_js_1.LocalDevContractError('prerequisite-unavailable', 'ebk deploy requires the generated, non-cacheable workspace deploy-local target. Run the supported workspace upgrade and workspace-health check.');
|
|
124
|
+
}
|
|
125
|
+
const nx = (0, nx_workspace_js_1.resolveWorkspaceNxRuntime)(workspaceRoot);
|
|
126
|
+
const startedAtMs = (output?.now ?? Date.now)();
|
|
127
|
+
const result = await run({
|
|
128
|
+
executable: process.execPath,
|
|
129
|
+
args: [
|
|
130
|
+
nx.binary,
|
|
131
|
+
'run',
|
|
132
|
+
`${project.name}:deploy-local`,
|
|
133
|
+
'--',
|
|
134
|
+
`--stage=${command.stage}`,
|
|
135
|
+
`--expectedRoleArn=${command.expectedRoleArn}`,
|
|
136
|
+
...(command.profile ? [`--profile=${command.profile}`] : []),
|
|
137
|
+
...(command.slices ? [`--slices=${command.slices.join(',')}`] : []),
|
|
138
|
+
],
|
|
139
|
+
cwd: workspaceRoot,
|
|
140
|
+
environment: {
|
|
141
|
+
...environment,
|
|
142
|
+
// Stream native diagnostics and preserve the inherited TTY. This target
|
|
143
|
+
// is never served from cache and receives no skip/approval overrides.
|
|
144
|
+
NX_TUI: 'false',
|
|
145
|
+
NX_TASKS_RUNNER_DYNAMIC_OUTPUT: 'false',
|
|
146
|
+
},
|
|
147
|
+
// With --json, native output moves to stderr so stdout carries only the
|
|
148
|
+
// structured result; stdin stays inherited.
|
|
149
|
+
...(structured ? { stdio: ['inherit', 2, 'inherit'] } : {}),
|
|
150
|
+
});
|
|
151
|
+
if (result.error)
|
|
152
|
+
throw result.error;
|
|
153
|
+
const exitCode = result.signal
|
|
154
|
+
? 128 + (node_os_1.constants.signals[result.signal] ?? 1)
|
|
155
|
+
: (result.status ?? 1);
|
|
156
|
+
if (structured && output) {
|
|
157
|
+
const fresh = readFreshDevelopmentReceipt(workspaceRoot, startedAtMs);
|
|
158
|
+
const payload = {
|
|
159
|
+
exitCode,
|
|
160
|
+
kind: exports.DEPLOY_RESULT_KIND,
|
|
161
|
+
outcome: fresh
|
|
162
|
+
? fresh.receipt.outcome
|
|
163
|
+
: 'receipt-unavailable',
|
|
164
|
+
projects: fresh?.projects ?? [],
|
|
165
|
+
receipt: fresh?.receipt ?? null,
|
|
166
|
+
receiptPath: exports.DEPLOY_RECEIPT_PATH,
|
|
167
|
+
schemaVersion: 1,
|
|
168
|
+
stage: 'development',
|
|
169
|
+
};
|
|
170
|
+
output.stdout(`${JSON.stringify(payload, null, 2)}\n`);
|
|
171
|
+
}
|
|
172
|
+
return exitCode;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=deploy-runtime.js.map
|
package/src/cli/dev-command.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type LocalDevContextInput } from '../local-dev/local-context.js';
|
|
2
2
|
import { type AgentCliCommand } from './agent-command.js';
|
|
3
3
|
export declare const EBK_AGENT_COMMANDS: readonly ["context", "handoff", "plan", "resume", "upgrade-preview"];
|
|
4
|
-
export declare const EBK_DEV_COMMANDS: readonly ["configure", "doctor", "down", "logs", "prune", "ps", "restart", "setup", "status", "tail", "up"];
|
|
4
|
+
export declare const EBK_DEV_COMMANDS: readonly ["attach", "configure", "doctor", "down", "logs", "prune", "ps", "restart", "setup", "status", "tail", "up"];
|
|
5
5
|
export declare const EBK_SECRET_COMMANDS: readonly ["remove", "set"];
|
|
6
6
|
export type CliHelpCommand = {
|
|
7
7
|
kind: 'help';
|
|
8
|
-
namespace?: 'agent' | 'dev' | 'secret';
|
|
8
|
+
namespace?: 'agent' | 'deploy' | 'dev' | 'secret';
|
|
9
9
|
};
|
|
10
10
|
export type CliVersionCommand = {
|
|
11
11
|
kind: 'version';
|
|
@@ -49,6 +49,10 @@ export interface DevLifecycleCommand extends DevCommandBase {
|
|
|
49
49
|
export interface DevStatusCommand extends DevCommandBase {
|
|
50
50
|
command: 'status';
|
|
51
51
|
}
|
|
52
|
+
export interface DevAttachCommand extends DevCommandBase {
|
|
53
|
+
command: 'attach';
|
|
54
|
+
taskId: string;
|
|
55
|
+
}
|
|
52
56
|
export interface DevDoctorCommand extends DevCommandBase {
|
|
53
57
|
command: 'doctor';
|
|
54
58
|
environmentOnly: boolean;
|
|
@@ -80,13 +84,23 @@ export interface DevPruneCommand extends DevCommandBase {
|
|
|
80
84
|
command: 'prune';
|
|
81
85
|
fleetId?: string;
|
|
82
86
|
}
|
|
83
|
-
export type DevCliCommand = DevConfigureCommand | DevDoctorCommand | DevLifecycleCommand | DevLogsCommand | DevPruneCommand | DevPsCommand | DevSetupCommand | DevStatusCommand | DevTailCommand | DevUpCommand;
|
|
87
|
+
export type DevCliCommand = DevAttachCommand | DevConfigureCommand | DevDoctorCommand | DevLifecycleCommand | DevLogsCommand | DevPruneCommand | DevPsCommand | DevSetupCommand | DevStatusCommand | DevTailCommand | DevUpCommand;
|
|
84
88
|
export interface SecretCliCommand {
|
|
85
89
|
command: 'remove' | 'set';
|
|
86
90
|
kind: 'secret';
|
|
87
91
|
logicalName: string;
|
|
88
92
|
slice: string;
|
|
89
93
|
}
|
|
90
|
-
export
|
|
94
|
+
export interface DeployCliCommand {
|
|
95
|
+
kind: 'deploy';
|
|
96
|
+
command: 'deploy';
|
|
97
|
+
stage: 'development' | 'staging' | 'production';
|
|
98
|
+
profile?: string;
|
|
99
|
+
expectedRoleArn: string;
|
|
100
|
+
/** Development only: print one bounded receipt result on stdout. */
|
|
101
|
+
json?: true;
|
|
102
|
+
slices?: string[];
|
|
103
|
+
}
|
|
104
|
+
export type ParsedEbkCommand = AgentCliCommand | CliHelpCommand | CliVersionCommand | DeployCliCommand | DevCliCommand | SecretCliCommand;
|
|
91
105
|
export declare function parseEbkArguments(arguments_: readonly string[]): ParsedEbkCommand;
|
|
92
106
|
export {};
|
package/src/cli/dev-command.js
CHANGED
|
@@ -6,6 +6,7 @@ const errors_js_1 = require("../local-dev/errors.js");
|
|
|
6
6
|
const local_context_js_1 = require("../local-dev/local-context.js");
|
|
7
7
|
const identity_js_1 = require("../local-dev/identity.js");
|
|
8
8
|
const personal_stage_js_1 = require("../local-dev/personal-stage.js");
|
|
9
|
+
const task_identity_js_1 = require("../local-dev/task-identity.js");
|
|
9
10
|
const agent_command_js_1 = require("./agent-command.js");
|
|
10
11
|
exports.EBK_AGENT_COMMANDS = [
|
|
11
12
|
'context',
|
|
@@ -15,6 +16,7 @@ exports.EBK_AGENT_COMMANDS = [
|
|
|
15
16
|
'upgrade-preview',
|
|
16
17
|
];
|
|
17
18
|
exports.EBK_DEV_COMMANDS = [
|
|
19
|
+
'attach',
|
|
18
20
|
'configure',
|
|
19
21
|
'doctor',
|
|
20
22
|
'down',
|
|
@@ -486,6 +488,64 @@ function parseSecret(arguments_) {
|
|
|
486
488
|
};
|
|
487
489
|
}
|
|
488
490
|
function parseEbkArguments(arguments_) {
|
|
491
|
+
// Canonical deploy stages are explicit; personal dev/secret stages remain
|
|
492
|
+
// resolver-owned and must continue rejecting stage overrides.
|
|
493
|
+
if (arguments_[0] === 'deploy') {
|
|
494
|
+
if (arguments_.length === 2 && arguments_[1] === '--help') {
|
|
495
|
+
return { kind: 'help', namespace: 'deploy' };
|
|
496
|
+
}
|
|
497
|
+
const tokens = parseTokens(arguments_.slice(1), {
|
|
498
|
+
stage: {
|
|
499
|
+
kind: 'string',
|
|
500
|
+
values: ['development', 'staging', 'production'],
|
|
501
|
+
},
|
|
502
|
+
profile: { kind: 'string' },
|
|
503
|
+
expectedRoleArn: { kind: 'string' },
|
|
504
|
+
json: { kind: 'flag' },
|
|
505
|
+
});
|
|
506
|
+
const stages = ['development', 'staging', 'production'];
|
|
507
|
+
const positionalStage = stages.includes(tokens.positionals[0])
|
|
508
|
+
? tokens.positionals[0]
|
|
509
|
+
: undefined;
|
|
510
|
+
if (positionalStage && tokens.options.stage !== undefined) {
|
|
511
|
+
return usageError('ebk deploy accepts one stage, positional or --stage, not both.');
|
|
512
|
+
}
|
|
513
|
+
const stage = positionalStage ?? stringOption(tokens, 'stage') ?? 'development';
|
|
514
|
+
if (stage !== 'development' &&
|
|
515
|
+
stage !== 'staging' &&
|
|
516
|
+
stage !== 'production') {
|
|
517
|
+
return usageError('ebk deploy stage must be development, staging, or production.');
|
|
518
|
+
}
|
|
519
|
+
const json = booleanOption(tokens, 'json');
|
|
520
|
+
if (json && stage !== 'development') {
|
|
521
|
+
// Protected stages keep native output and the human-typed TTY
|
|
522
|
+
// acknowledgement; a structured mode must never stand in for either.
|
|
523
|
+
return usageError('ebk deploy --json is available only for development; staging and production keep native output and the interactive acknowledgement.');
|
|
524
|
+
}
|
|
525
|
+
const expectedRoleArn = stringOption(tokens, 'expectedRoleArn');
|
|
526
|
+
if (!expectedRoleArn ||
|
|
527
|
+
!/^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role\/[A-Za-z0-9+=,.@_/-]{1,512}$/.test(expectedRoleArn)) {
|
|
528
|
+
return usageError('ebk deploy requires --expectedRoleArn=<exact-stage-deployment-role-arn>. See ebk deploy --help.');
|
|
529
|
+
}
|
|
530
|
+
const profile = stringOption(tokens, 'profile');
|
|
531
|
+
const slices = tokens.positionals.slice(positionalStage ? 1 : 0);
|
|
532
|
+
if (slices.length > 64 ||
|
|
533
|
+
new Set(slices).size !== slices.length ||
|
|
534
|
+
slices.some((slice) => !SLICE_PATTERN.test(slice) || stages.includes(slice))) {
|
|
535
|
+
return usageError('ebk deploy requires unique Slice names after the optional stage.');
|
|
536
|
+
}
|
|
537
|
+
return {
|
|
538
|
+
kind: 'deploy',
|
|
539
|
+
command: 'deploy',
|
|
540
|
+
stage,
|
|
541
|
+
expectedRoleArn,
|
|
542
|
+
...(profile === undefined
|
|
543
|
+
? {}
|
|
544
|
+
: { profile: (0, local_context_js_1.normalizeLocalDevProfile)(profile) }),
|
|
545
|
+
...(json ? { json: true } : {}),
|
|
546
|
+
...(slices.length === 0 ? {} : { slices }),
|
|
547
|
+
};
|
|
548
|
+
}
|
|
489
549
|
(0, personal_stage_js_1.rejectExplicitStageArguments)(arguments_);
|
|
490
550
|
if (arguments_.length === 0 || arguments_[0] === '--help') {
|
|
491
551
|
if (arguments_.length > 1) {
|
|
@@ -532,6 +592,17 @@ function parseEbkArguments(arguments_) {
|
|
|
532
592
|
const command = arguments_[1];
|
|
533
593
|
const rest = arguments_.slice(2);
|
|
534
594
|
switch (command) {
|
|
595
|
+
case 'attach': {
|
|
596
|
+
const tokens = parseTokens(rest, JSON_OPTION);
|
|
597
|
+
if (tokens.positionals.length !== 1)
|
|
598
|
+
return usageError('ebk dev attach requires exactly one task ID.');
|
|
599
|
+
return {
|
|
600
|
+
command: 'attach',
|
|
601
|
+
kind: 'dev',
|
|
602
|
+
json: booleanOption(tokens, 'json'),
|
|
603
|
+
taskId: (0, task_identity_js_1.requireTaskId)(tokens.positionals[0]),
|
|
604
|
+
};
|
|
605
|
+
}
|
|
535
606
|
case 'configure':
|
|
536
607
|
return parseConfigure(rest);
|
|
537
608
|
case 'setup':
|
package/src/cli/main.d.ts
CHANGED
|
@@ -16,8 +16,12 @@ import { type FleetRuntimePaths } from '../local-dev/runtime-paths.js';
|
|
|
16
16
|
import { assertSecretSliceClaimAuthority } from '../local-dev/secret-slice-claim.js';
|
|
17
17
|
import { type HiddenSecretInputReader, type HumanSecretCeremony, type PersonalSecretConfirmation, type PersonalSecretValueValidator, type PersonalSstSecretStore } from '../secrets/personal-command.js';
|
|
18
18
|
import type { SecretMetadataDeclaration } from '../secrets/model.js';
|
|
19
|
+
import { assertWorkspaceStageOwnershipForWorkspace } from '../workspace-deployment/index.js';
|
|
20
|
+
import { attachStoppedTask } from '../local-dev/task-attachment.js';
|
|
21
|
+
import { bindTaskEnvironment } from '../local-dev/task-identity.js';
|
|
19
22
|
import { type DevCliCommand, type DevSliceSelector } from './dev-command.js';
|
|
20
23
|
import type { AgentCliCommand } from './agent-command.js';
|
|
24
|
+
import { executeDeployCommand } from './deploy-runtime.js';
|
|
21
25
|
import { executeDeveloperAgentCommand } from './agent-runtime.js';
|
|
22
26
|
import { type LoadedPersonalOperatorSecret, type PersonalSecretAwsContext } from './personal-secret-runtime.js';
|
|
23
27
|
export interface EbkCliIo {
|
|
@@ -64,13 +68,17 @@ interface WorkspaceFilesystemIdentity {
|
|
|
64
68
|
}
|
|
65
69
|
export declare function sameWorkspaceRealpath(left: string, right: string, currentPlatform?: NodeJS.Platform, inspectIdentity?: (path: string) => WorkspaceFilesystemIdentity): boolean;
|
|
66
70
|
export interface EbkCliDependencies {
|
|
71
|
+
bindTask: typeof bindTaskEnvironment;
|
|
72
|
+
attachTask: typeof attachStoppedTask;
|
|
67
73
|
acquireSecretLedgerLock: typeof acquirePersonalSecretLedgerLock;
|
|
68
74
|
appData: () => string;
|
|
69
75
|
assertSecretSliceClaim: typeof assertSecretSliceClaimAuthority;
|
|
76
|
+
assertWorkspaceOwnership: typeof assertWorkspaceStageOwnershipForWorkspace;
|
|
70
77
|
changeDirectory: (workspaceRoot: string) => void;
|
|
71
78
|
client: (paths: FleetRuntimePaths) => FleetClientPort;
|
|
72
79
|
discoverContext: (explicit: LocalDevContextInput, environment: NodeJS.ProcessEnv) => Promise<LocalDevContextDiscovery>;
|
|
73
80
|
executeAgent: typeof executeDeveloperAgentCommand;
|
|
81
|
+
executeDeploy: typeof executeDeployCommand;
|
|
74
82
|
followLogs: typeof followFleetLogs;
|
|
75
83
|
frameworkVersion: () => string;
|
|
76
84
|
gitCommonDirectory: (workspaceRoot: string) => string;
|
|
@@ -127,5 +135,5 @@ export declare function runAgentCommandCore(command: AgentCliCommand, io?: EbkCl
|
|
|
127
135
|
* Nx never calls back through argv parsing or the CLI entry point.
|
|
128
136
|
*/
|
|
129
137
|
export declare function runDevCommandCore(command: DevCliCommand, io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<0 | 1 | 2>;
|
|
130
|
-
export declare function runEbkCli(arguments_: readonly string[], io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<
|
|
138
|
+
export declare function runEbkCli(arguments_: readonly string[], io?: EbkCliIo, overrides?: Partial<EbkCliDependencies>): Promise<number>;
|
|
131
139
|
export {};
|