@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,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FleetSession = void 0;
|
|
4
|
+
const contracts_js_1 = require("./contracts.js");
|
|
4
5
|
const deterministic_order_js_1 = require("../deterministic-order.js");
|
|
5
6
|
const errors_js_1 = require("./errors.js");
|
|
6
7
|
const slice_claim_js_1 = require("./slice-claim.js");
|
|
@@ -10,6 +11,7 @@ function sessionError(classification, message) {
|
|
|
10
11
|
class FleetSession {
|
|
11
12
|
routes;
|
|
12
13
|
#allocatePort;
|
|
14
|
+
#adapters;
|
|
13
15
|
#claimOwner;
|
|
14
16
|
#cleanupStates = new Map();
|
|
15
17
|
#fleetId;
|
|
@@ -23,6 +25,7 @@ class FleetSession {
|
|
|
23
25
|
#sliceClaimsDirectory;
|
|
24
26
|
#started = false;
|
|
25
27
|
constructor(options) {
|
|
28
|
+
this.#adapters = options.adapters;
|
|
26
29
|
this.#allocatePort = options.allocatePort;
|
|
27
30
|
this.#fleetId = options.fleetId;
|
|
28
31
|
this.#processFactory = options.processFactory;
|
|
@@ -47,7 +50,7 @@ class FleetSession {
|
|
|
47
50
|
state: 'remote',
|
|
48
51
|
}));
|
|
49
52
|
for (const route of this.routes) {
|
|
50
|
-
this.#cleanupStates.set(route.name, route.adapter.adapterVersion
|
|
53
|
+
this.#cleanupStates.set(route.name, route.adapter.adapterVersion !== 1 && route.adapter.lifecycle
|
|
51
54
|
? 'pending'
|
|
52
55
|
: 'not-declared');
|
|
53
56
|
}
|
|
@@ -78,10 +81,7 @@ class FleetSession {
|
|
|
78
81
|
}
|
|
79
82
|
up(names) {
|
|
80
83
|
return this.#serialized(async () => {
|
|
81
|
-
const requested =
|
|
82
|
-
if (requested.length !== names.length || requested.length === 0) {
|
|
83
|
-
return sessionError('invalid-input', 'Fleet up requires unique non-empty Slice names.');
|
|
84
|
-
}
|
|
84
|
+
const requested = (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'up', names, this.selectedSlices());
|
|
85
85
|
const changed = requested.filter((name) => !this.#route(name).selected);
|
|
86
86
|
if (changed.length === 0) {
|
|
87
87
|
return requested.map((name) => {
|
|
@@ -102,7 +102,7 @@ class FleetSession {
|
|
|
102
102
|
route.upstream = new URL(`http://127.0.0.1:${port}`);
|
|
103
103
|
route.selected = true;
|
|
104
104
|
route.state = 'starting';
|
|
105
|
-
this.#cleanupStates.set(name, route.adapter.adapterVersion
|
|
105
|
+
this.#cleanupStates.set(name, route.adapter.adapterVersion !== 1 && route.adapter.lifecycle
|
|
106
106
|
? 'pending'
|
|
107
107
|
: 'not-declared');
|
|
108
108
|
const process = this.#processFactory({
|
|
@@ -125,6 +125,7 @@ class FleetSession {
|
|
|
125
125
|
const process = this.#processes.get(name);
|
|
126
126
|
if (process) {
|
|
127
127
|
try {
|
|
128
|
+
(0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'down', [name], this.selectedSlices());
|
|
128
129
|
await process.stop({ cleanup: true });
|
|
129
130
|
this.#processes.delete(name);
|
|
130
131
|
}
|
|
@@ -142,7 +143,7 @@ class FleetSession {
|
|
|
142
143
|
const route = this.#route(name);
|
|
143
144
|
route.selected = false;
|
|
144
145
|
route.state = 'remote';
|
|
145
|
-
this.#cleanupStates.set(name, route.adapter.adapterVersion
|
|
146
|
+
this.#cleanupStates.set(name, route.adapter.adapterVersion !== 1 && route.adapter.lifecycle
|
|
146
147
|
? 'succeeded'
|
|
147
148
|
: 'not-declared');
|
|
148
149
|
delete route.upstream;
|
|
@@ -181,7 +182,12 @@ class FleetSession {
|
|
|
181
182
|
return sessionError('invalid-input', 'Fleet restart requires unique selected Slice names.');
|
|
182
183
|
}
|
|
183
184
|
const results = [];
|
|
184
|
-
|
|
185
|
+
const ordered = (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'restart', names, this.selectedSlices());
|
|
186
|
+
for (const name of ordered) {
|
|
187
|
+
if (!this.#processes.has(name))
|
|
188
|
+
return sessionError('not-running', `Product Slice ${name} has no owned process.`);
|
|
189
|
+
}
|
|
190
|
+
for (const name of ordered) {
|
|
185
191
|
const route = this.#route(name);
|
|
186
192
|
const process = this.#processes.get(name);
|
|
187
193
|
if (!route.selected || !process) {
|
|
@@ -199,14 +205,16 @@ class FleetSession {
|
|
|
199
205
|
return results;
|
|
200
206
|
});
|
|
201
207
|
}
|
|
202
|
-
down(names) {
|
|
208
|
+
async down(names) {
|
|
209
|
+
this.interruptStartup(names);
|
|
203
210
|
return this.#serialized(async () => {
|
|
204
211
|
if (names.length === 0 || new Set(names).size !== names.length) {
|
|
205
212
|
return sessionError('invalid-input', 'Fleet down requires unique selected Slice names.');
|
|
206
213
|
}
|
|
207
214
|
const results = [];
|
|
208
215
|
const cleanupFailures = [];
|
|
209
|
-
|
|
216
|
+
const ordered = (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'down', names, this.selectedSlices());
|
|
217
|
+
for (const name of ordered) {
|
|
210
218
|
const route = this.#route(name);
|
|
211
219
|
const process = this.#processes.get(name);
|
|
212
220
|
const previousState = route.state;
|
|
@@ -220,12 +228,13 @@ class FleetSession {
|
|
|
220
228
|
continue;
|
|
221
229
|
}
|
|
222
230
|
try {
|
|
231
|
+
(0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'down', [name], this.selectedSlices());
|
|
223
232
|
await process.stop({ cleanup: true });
|
|
224
233
|
(0, slice_claim_js_1.releaseSliceClaims)(this.#sliceClaimsDirectory, [name], this.#claimOwner, this.#security);
|
|
225
234
|
this.#processes.delete(name);
|
|
226
235
|
route.selected = false;
|
|
227
236
|
route.state = 'remote';
|
|
228
|
-
this.#cleanupStates.set(name, route.adapter.adapterVersion
|
|
237
|
+
this.#cleanupStates.set(name, route.adapter.adapterVersion !== 1 && route.adapter.lifecycle
|
|
229
238
|
? 'succeeded'
|
|
230
239
|
: 'not-declared');
|
|
231
240
|
delete route.upstream;
|
|
@@ -261,6 +270,14 @@ class FleetSession {
|
|
|
261
270
|
.map(({ name }) => name)
|
|
262
271
|
.sort();
|
|
263
272
|
}
|
|
273
|
+
interruptStartup(names) {
|
|
274
|
+
// Validate dependency/selection authority before cancelling any wait. The
|
|
275
|
+
// running up operation owns rollback; down waits for that rollback rather
|
|
276
|
+
// than racing a second native cleanup against a live writer.
|
|
277
|
+
const ordered = (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, 'down', names, this.selectedSlices());
|
|
278
|
+
for (const name of ordered)
|
|
279
|
+
this.#processes.get(name)?.interruptStartup?.();
|
|
280
|
+
}
|
|
264
281
|
allSlices() {
|
|
265
282
|
return this.routes.map(({ name }) => name).sort();
|
|
266
283
|
}
|
|
@@ -16,6 +16,10 @@ if (require.main === module) {
|
|
|
16
16
|
.catch((error) => {
|
|
17
17
|
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
18
18
|
process.exitCode = 1;
|
|
19
|
+
})
|
|
20
|
+
.finally(() => {
|
|
21
|
+
if (process.connected)
|
|
22
|
+
process.disconnect();
|
|
19
23
|
});
|
|
20
24
|
}
|
|
21
25
|
//# sourceMappingURL=fleet-slice-runner-daemon.js.map
|
|
@@ -12,7 +12,7 @@ export type FleetRouteState = (typeof FLEET_ROUTE_STATES)[number];
|
|
|
12
12
|
export type FleetCleanupState = (typeof FLEET_CLEANUP_STATES)[number];
|
|
13
13
|
export type FleetOperationState = (typeof FLEET_OPERATION_STATES)[number];
|
|
14
14
|
export interface FleetSliceState {
|
|
15
|
-
adapterVersion: 1 | 2;
|
|
15
|
+
adapterVersion: 1 | 2 | 3;
|
|
16
16
|
cleanup: FleetCleanupState;
|
|
17
17
|
lastTransitionAt: string;
|
|
18
18
|
logSequence: number;
|
|
@@ -42,7 +42,7 @@ export interface FleetStateRecord {
|
|
|
42
42
|
frameworkVersion: string;
|
|
43
43
|
gitCommonDirectory: string;
|
|
44
44
|
heartbeatAt: string;
|
|
45
|
-
identitySource: '
|
|
45
|
+
identitySource: 'worktree-task';
|
|
46
46
|
nxVersion: string;
|
|
47
47
|
operations: FleetOperationStateRecord[];
|
|
48
48
|
origin: string;
|
|
@@ -55,6 +55,9 @@ export interface FleetStateRecord {
|
|
|
55
55
|
supervisor: FleetProcessIdentity;
|
|
56
56
|
workspaceRealpath: string;
|
|
57
57
|
}
|
|
58
|
+
/** An up operation persists its resolved closure before acquiring any claims. */
|
|
59
|
+
export declare function fleetOwnedSliceNames(state: FleetStateRecord): string[];
|
|
60
|
+
export declare function fleetOwnsStartingSlice(state: FleetStateRecord, slice: string, acquiredAt: string): boolean;
|
|
58
61
|
export declare function validateFleetStateRecord(value: unknown): FleetStateRecord;
|
|
59
62
|
export declare function transitionFleetSliceState(value: FleetSliceState, next: FleetRouteState, transitionedAt?: string): FleetSliceState;
|
|
60
63
|
export declare function fleetStatePath(sessionDirectory: string): string;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FLEET_OPERATION_STATES = exports.FLEET_CLEANUP_STATES = exports.FLEET_ROUTE_STATES = exports.FLEET_STATE_FILE = exports.FLEET_STATE_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.fleetOwnedSliceNames = fleetOwnedSliceNames;
|
|
5
|
+
exports.fleetOwnsStartingSlice = fleetOwnsStartingSlice;
|
|
4
6
|
exports.validateFleetStateRecord = validateFleetStateRecord;
|
|
5
7
|
exports.transitionFleetSliceState = transitionFleetSliceState;
|
|
6
8
|
exports.fleetStatePath = fleetStatePath;
|
|
@@ -34,6 +36,23 @@ exports.FLEET_OPERATION_STATES = [
|
|
|
34
36
|
'succeeded',
|
|
35
37
|
'failed',
|
|
36
38
|
];
|
|
39
|
+
/** An up operation persists its resolved closure before acquiring any claims. */
|
|
40
|
+
function fleetOwnedSliceNames(state) {
|
|
41
|
+
return state.slices
|
|
42
|
+
.filter((slice) => slice.selected ||
|
|
43
|
+
state.operations.some((operation) => operation.command === 'up' &&
|
|
44
|
+
operation.state === 'running' &&
|
|
45
|
+
operation.slices.includes(slice.name)))
|
|
46
|
+
.map(({ name }) => name)
|
|
47
|
+
.sort();
|
|
48
|
+
}
|
|
49
|
+
function fleetOwnsStartingSlice(state, slice, acquiredAt) {
|
|
50
|
+
return (state.slices.some((entry) => entry.name === slice) &&
|
|
51
|
+
state.operations.some((operation) => operation.command === 'up' &&
|
|
52
|
+
operation.state === 'running' &&
|
|
53
|
+
operation.slices.includes(slice) &&
|
|
54
|
+
operation.acceptedAt <= acquiredAt));
|
|
55
|
+
}
|
|
37
56
|
const ALLOWED_ROUTE_TRANSITIONS = {
|
|
38
57
|
ready: ['unavailable'],
|
|
39
58
|
remote: ['starting'],
|
|
@@ -65,8 +84,10 @@ function validateSliceState(value) {
|
|
|
65
84
|
'routeState',
|
|
66
85
|
'selected',
|
|
67
86
|
], ['runnerGeneration'], 'Fleet Slice state');
|
|
68
|
-
if (value.adapterVersion !== 1 &&
|
|
69
|
-
|
|
87
|
+
if (value.adapterVersion !== 1 &&
|
|
88
|
+
value.adapterVersion !== 2 &&
|
|
89
|
+
value.adapterVersion !== 3) {
|
|
90
|
+
return stateError('Fleet Slice adapterVersion must be 1, 2, or 3.');
|
|
70
91
|
}
|
|
71
92
|
if (!exports.FLEET_CLEANUP_STATES.includes(value.cleanup)) {
|
|
72
93
|
return stateError('Fleet Slice cleanup state is invalid.');
|
|
@@ -199,7 +220,7 @@ function validateFleetStateRecord(value) {
|
|
|
199
220
|
], [], 'Fleet state');
|
|
200
221
|
if (value.schemaVersion !== exports.FLEET_STATE_SCHEMA_VERSION ||
|
|
201
222
|
value.controlProtocolVersion !== control_contract_js_1.FLEET_CONTROL_PROTOCOL_VERSION ||
|
|
202
|
-
value.identitySource !== '
|
|
223
|
+
value.identitySource !== 'worktree-task') {
|
|
203
224
|
return stateError('Fleet state schema, control protocol, or identity source is unsupported.');
|
|
204
225
|
}
|
|
205
226
|
if (!Array.isArray(value.slices) || value.slices.length > 128) {
|
|
@@ -237,7 +258,7 @@ function validateFleetStateRecord(value) {
|
|
|
237
258
|
frameworkVersion: (0, contract_validation_js_1.requireBoundedString)(value.frameworkVersion, 'Fleet frameworkVersion', { maximumLength: 128 }),
|
|
238
259
|
gitCommonDirectory: requireAbsolutePath(value.gitCommonDirectory, 'Fleet gitCommonDirectory'),
|
|
239
260
|
heartbeatAt,
|
|
240
|
-
identitySource: '
|
|
261
|
+
identitySource: 'worktree-task',
|
|
241
262
|
nxVersion: (0, contract_validation_js_1.requireBoundedString)(value.nxVersion, 'Fleet nxVersion', {
|
|
242
263
|
maximumLength: 128,
|
|
243
264
|
pattern: /^[0-9A-Za-z][0-9A-Za-z.+-]{0,127}$/,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LocalDevAdapter } from './contracts.js';
|
|
1
2
|
import { type FleetControlRequest } from './control-contract.js';
|
|
2
3
|
import { type FleetControlHandler } from './fleet-ipc.js';
|
|
3
4
|
import { type FleetProcessIdentity } from './fleet-lock.js';
|
|
@@ -14,6 +15,7 @@ export interface FleetSupervisorMutationHost {
|
|
|
14
15
|
allSlices(): readonly string[];
|
|
15
16
|
closeProxyWhenEmpty(): Promise<boolean>;
|
|
16
17
|
down(slices: readonly string[]): Promise<FleetSupervisorTargetResult[]>;
|
|
18
|
+
interruptStartup?(slices: readonly string[]): void;
|
|
17
19
|
restart(slices: readonly string[]): Promise<FleetSupervisorTargetResult[]>;
|
|
18
20
|
selectedSlices(): readonly string[];
|
|
19
21
|
sliceStates(): ReadonlyArray<Pick<FleetSliceState, 'cleanup' | 'name' | 'restartAttempts' | 'routeState' | 'runnerGeneration' | 'selected'>>;
|
|
@@ -32,6 +34,7 @@ export interface FleetSupervisorEffects {
|
|
|
32
34
|
processIdentity?: () => FleetProcessIdentity;
|
|
33
35
|
}
|
|
34
36
|
export interface FleetSupervisorOptions {
|
|
37
|
+
adapters: ReadonlyMap<string, LocalDevAdapter>;
|
|
35
38
|
heartbeatIntervalMs?: number;
|
|
36
39
|
host: FleetSupervisorMutationHost;
|
|
37
40
|
initialState: FleetStateRecord;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FleetSupervisor = void 0;
|
|
4
4
|
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const contracts_js_1 = require("./contracts.js");
|
|
5
6
|
const node_fs_1 = require("node:fs");
|
|
6
7
|
const control_contract_js_1 = require("./control-contract.js");
|
|
7
8
|
const errors_js_1 = require("./errors.js");
|
|
@@ -11,6 +12,7 @@ const fleet_state_js_1 = require("./fleet-state.js");
|
|
|
11
12
|
const private_state_js_1 = require("./private-state.js");
|
|
12
13
|
const process_identity_js_1 = require("./process-identity.js");
|
|
13
14
|
const slice_claim_js_1 = require("./slice-claim.js");
|
|
15
|
+
const fleet_runner_evidence_js_1 = require("./fleet-runner-evidence.js");
|
|
14
16
|
function supervisorError(classification, message) {
|
|
15
17
|
throw new errors_js_1.LocalDevContractError(classification, message);
|
|
16
18
|
}
|
|
@@ -33,6 +35,7 @@ function failureClassification(error) {
|
|
|
33
35
|
}
|
|
34
36
|
class FleetSupervisor {
|
|
35
37
|
#closed = false;
|
|
38
|
+
#adapters;
|
|
36
39
|
#closedWaiters = [];
|
|
37
40
|
#controlServer;
|
|
38
41
|
#effects;
|
|
@@ -49,6 +52,7 @@ class FleetSupervisor {
|
|
|
49
52
|
#state;
|
|
50
53
|
#stopping = false;
|
|
51
54
|
constructor(options, effects = {}) {
|
|
55
|
+
this.#adapters = options.adapters;
|
|
52
56
|
this.#host = options.host;
|
|
53
57
|
this.#paths = options.paths;
|
|
54
58
|
this.#security = options.security ?? {};
|
|
@@ -167,7 +171,13 @@ class FleetSupervisor {
|
|
|
167
171
|
? [...this.#host.allSlices()]
|
|
168
172
|
: [...this.#host.selectedSlices()]
|
|
169
173
|
: [...request.payload.selector.slices];
|
|
170
|
-
|
|
174
|
+
// An empty all-down selector is an idle Fleet, not malformed caller input.
|
|
175
|
+
// Keep explicit empty/duplicate roots rejected by the dependency resolver.
|
|
176
|
+
if (request.payload.command === 'down' &&
|
|
177
|
+
request.payload.selector.all &&
|
|
178
|
+
selected.length === 0)
|
|
179
|
+
return [];
|
|
180
|
+
return (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, request.payload.command, selected, this.#host.selectedSlices());
|
|
171
181
|
}
|
|
172
182
|
#syncSliceStates(results) {
|
|
173
183
|
const byName = new Map(results.map((result) => [result.name, result]));
|
|
@@ -252,6 +262,8 @@ class FleetSupervisor {
|
|
|
252
262
|
this.#shutdownAfterOperations.add(operation.id);
|
|
253
263
|
}
|
|
254
264
|
this.#persistState();
|
|
265
|
+
if (request.payload.command === 'down')
|
|
266
|
+
this.#host.interruptStartup?.(slices);
|
|
255
267
|
this.#operationQueue = this.#operationQueue
|
|
256
268
|
.then(() => this.#runOperation(operation.id))
|
|
257
269
|
.finally(() => {
|
|
@@ -272,11 +284,13 @@ class FleetSupervisor {
|
|
|
272
284
|
this.#state.operations[index] = { ...operation, state: 'running' };
|
|
273
285
|
this.#persistState();
|
|
274
286
|
try {
|
|
287
|
+
// Recheck at execution: queued operations may have changed dependency ownership.
|
|
288
|
+
const slices = (0, contracts_js_1.resolveFleetSliceOperation)(this.#adapters, operation.command, operation.slices, this.#host.selectedSlices());
|
|
275
289
|
const results = operation.command === 'up'
|
|
276
|
-
? await this.#host.up(
|
|
290
|
+
? await this.#host.up(slices)
|
|
277
291
|
: operation.command === 'restart'
|
|
278
|
-
? await this.#host.restart(
|
|
279
|
-
: await this.#host.down(
|
|
292
|
+
? await this.#host.restart(slices)
|
|
293
|
+
: await this.#host.down(slices);
|
|
280
294
|
this.#syncSliceStates(results);
|
|
281
295
|
this.#syncLiveSliceStates();
|
|
282
296
|
this.#state.operations[index] = {
|
|
@@ -290,7 +304,11 @@ class FleetSupervisor {
|
|
|
290
304
|
const timer = setTimeout(() => {
|
|
291
305
|
if (!this.#closed && !this.#stopping) {
|
|
292
306
|
this.#stopping = true;
|
|
293
|
-
void this.stopGracefully()
|
|
307
|
+
void this.stopGracefully().catch(() => {
|
|
308
|
+
// Keep authenticated control available when terminal evidence
|
|
309
|
+
// cannot be retired. Never turn an archival failure into exit.
|
|
310
|
+
this.#stopping = false;
|
|
311
|
+
});
|
|
294
312
|
}
|
|
295
313
|
}, this.#shutdownGraceMs);
|
|
296
314
|
timer.unref();
|
|
@@ -332,11 +350,16 @@ class FleetSupervisor {
|
|
|
332
350
|
case 'submit':
|
|
333
351
|
return this.#queueOperation(request);
|
|
334
352
|
case 'shutdown':
|
|
335
|
-
if (this.#
|
|
336
|
-
return supervisorError('operation-conflict', 'Fleet shutdown requires all
|
|
353
|
+
if (this.#state.operations.some(({ state }) => state === 'accepted' || state === 'running')) {
|
|
354
|
+
return supervisorError('operation-conflict', 'Fleet shutdown requires all accepted operations to finish first.');
|
|
337
355
|
}
|
|
356
|
+
this.#assertShutdownOwnership();
|
|
338
357
|
this.#stopping = true;
|
|
339
|
-
setImmediate(() =>
|
|
358
|
+
setImmediate(() => {
|
|
359
|
+
void this.stopGracefully().catch(() => {
|
|
360
|
+
this.#stopping = false;
|
|
361
|
+
});
|
|
362
|
+
});
|
|
340
363
|
return { accepted: true };
|
|
341
364
|
}
|
|
342
365
|
}
|
|
@@ -356,10 +379,17 @@ class FleetSupervisor {
|
|
|
356
379
|
return;
|
|
357
380
|
this.#stopping = true;
|
|
358
381
|
await this.waitForIdle();
|
|
359
|
-
|
|
360
|
-
|
|
382
|
+
try {
|
|
383
|
+
this.#assertShutdownOwnership();
|
|
384
|
+
await this.#host.closeProxyWhenEmpty();
|
|
385
|
+
(0, fleet_runner_evidence_js_1.retireFleetRunnerEvidence)(this.#state, this.#paths, {
|
|
386
|
+
security: this.#security,
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
this.#stopping = false;
|
|
391
|
+
throw error;
|
|
361
392
|
}
|
|
362
|
-
await this.#host.closeProxyWhenEmpty();
|
|
363
393
|
if (this.#heartbeat)
|
|
364
394
|
clearInterval(this.#heartbeat);
|
|
365
395
|
this.#heartbeat = undefined;
|
|
@@ -374,11 +404,36 @@ class FleetSupervisor {
|
|
|
374
404
|
removeExactPrivateFile(this.#paths.startup);
|
|
375
405
|
removeExactPrivateFile(this.#paths.supervisorPid);
|
|
376
406
|
removeExactPrivateFile(this.#paths.state);
|
|
407
|
+
// Retire only this empty session, never unknown files or a new owner.
|
|
408
|
+
// Leaving an empty directory makes inventory report a missing-authority
|
|
409
|
+
// session even though governed shutdown completed successfully.
|
|
410
|
+
try {
|
|
411
|
+
(0, node_fs_1.rmdirSync)(this.#paths.sessionDirectory);
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
if (!['ENOENT', 'ENOTEMPTY', 'EEXIST'].includes(error.code ?? '')) {
|
|
415
|
+
throw error;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
377
418
|
this.#closed = true;
|
|
378
419
|
for (const resolvePromise of this.#closedWaiters.splice(0)) {
|
|
379
420
|
resolvePromise();
|
|
380
421
|
}
|
|
381
422
|
}
|
|
423
|
+
#assertShutdownOwnership() {
|
|
424
|
+
this.#syncLiveSliceStates();
|
|
425
|
+
if (this.#host.selectedSlices().length > 0) {
|
|
426
|
+
return supervisorError('operation-conflict', 'Graceful supervisor shutdown requires every Slice down.');
|
|
427
|
+
}
|
|
428
|
+
if (this.#host
|
|
429
|
+
.sliceStates()
|
|
430
|
+
.some(({ cleanup, runnerGeneration }) => cleanup === 'failed' || (cleanup === 'pending' && runnerGeneration))) {
|
|
431
|
+
return supervisorError('operation-conflict', 'Fleet shutdown requires all owned runner cleanup to succeed first.');
|
|
432
|
+
}
|
|
433
|
+
(0, fleet_runner_evidence_js_1.retireFleetRunnerEvidence)(this.#state, this.#paths, {
|
|
434
|
+
security: this.#security,
|
|
435
|
+
});
|
|
436
|
+
}
|
|
382
437
|
}
|
|
383
438
|
exports.FleetSupervisor = FleetSupervisor;
|
|
384
439
|
//# sourceMappingURL=fleet-supervisor.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FleetSliceRunnerRequest } from './slice-runner.js';
|
|
2
|
+
import { type PrivateStateSecurity } from './private-state.js';
|
|
3
|
+
type WebStartOwner = Pick<FleetSliceRunnerRequest, 'fleetId' | 'runnerGeneration' | 'sessionGeneration' | 'slice' | 'port' | 'workspaceRealpath'>;
|
|
4
|
+
export declare function fleetWebStartPath(requestPath: string): string;
|
|
5
|
+
/** A private, generation-bound notification, never deployment authority or
|
|
6
|
+
* proof of application health. Only the native web-command wrapper publishes it.
|
|
7
|
+
* A duplicate for this generation is idempotent and cannot reset a health clock. */
|
|
8
|
+
export declare function hasFleetWebStarted(requestPath: string, owner: WebStartOwner, security?: PrivateStateSecurity): boolean;
|
|
9
|
+
export declare function publishFleetWebStarted(requestPath: string, owner: WebStartOwner, security?: PrivateStateSecurity): void;
|
|
10
|
+
/** Called only after the native child group and declared cleanup have settled. */
|
|
11
|
+
export declare function retireFleetWebStarted(requestPath: string, owner: WebStartOwner, security?: PrivateStateSecurity): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fleetWebStartPath = fleetWebStartPath;
|
|
4
|
+
exports.hasFleetWebStarted = hasFleetWebStarted;
|
|
5
|
+
exports.publishFleetWebStarted = publishFleetWebStarted;
|
|
6
|
+
exports.retireFleetWebStarted = retireFleetWebStarted;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const contract_validation_js_1 = require("./contract-validation.js");
|
|
9
|
+
const errors_js_1 = require("./errors.js");
|
|
10
|
+
const private_state_js_1 = require("./private-state.js");
|
|
11
|
+
function fleetWebStartPath(requestPath) {
|
|
12
|
+
if (!requestPath.endsWith('.request.json'))
|
|
13
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', 'Invalid web-start owner path.');
|
|
14
|
+
return requestPath.replace(/\.request\.json$/, '.web-start.json');
|
|
15
|
+
}
|
|
16
|
+
function record(owner) {
|
|
17
|
+
return {
|
|
18
|
+
fleetId: owner.fleetId,
|
|
19
|
+
port: owner.port,
|
|
20
|
+
runnerGeneration: owner.runnerGeneration,
|
|
21
|
+
schemaVersion: 1,
|
|
22
|
+
sessionGeneration: owner.sessionGeneration,
|
|
23
|
+
slice: owner.slice,
|
|
24
|
+
workspaceRealpath: owner.workspaceRealpath,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** A private, generation-bound notification, never deployment authority or
|
|
28
|
+
* proof of application health. Only the native web-command wrapper publishes it.
|
|
29
|
+
* A duplicate for this generation is idempotent and cannot reset a health clock. */
|
|
30
|
+
function hasFleetWebStarted(requestPath, owner, security = {}) {
|
|
31
|
+
const path = fleetWebStartPath(requestPath);
|
|
32
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
33
|
+
return false;
|
|
34
|
+
const value = JSON.parse((0, private_state_js_1.readPrivateFile)(path, security).toString('utf8'));
|
|
35
|
+
if ((0, contract_validation_js_1.canonicalJson)(value) !== (0, contract_validation_js_1.canonicalJson)(record(owner)))
|
|
36
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', 'Web-start notification does not match the exact Fleet runner generation.');
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
function publishFleetWebStarted(requestPath, owner, security = {}) {
|
|
40
|
+
(0, private_state_js_1.publishPrivateFileExclusive)(fleetWebStartPath(requestPath), `${(0, contract_validation_js_1.canonicalJson)(record(owner))}\n`, security);
|
|
41
|
+
hasFleetWebStarted(requestPath, owner, security);
|
|
42
|
+
}
|
|
43
|
+
/** Called only after the native child group and declared cleanup have settled. */
|
|
44
|
+
function retireFleetWebStarted(requestPath, owner, security = {}) {
|
|
45
|
+
if (hasFleetWebStarted(requestPath, owner, security))
|
|
46
|
+
(0, node_fs_1.unlinkSync)(fleetWebStartPath(requestPath));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=fleet-web-start.js.map
|
|
@@ -6,9 +6,7 @@ exports.normalizeFleetHostSuffix = normalizeFleetHostSuffix;
|
|
|
6
6
|
exports.createFleetHostname = createFleetHostname;
|
|
7
7
|
exports.isLoopbackAddress = isLoopbackAddress;
|
|
8
8
|
exports.resolveFleetHostname = resolveFleetHostname;
|
|
9
|
-
const node_crypto_1 = require("node:crypto");
|
|
10
9
|
const node_dns_1 = require("node:dns");
|
|
11
|
-
const node_fs_1 = require("node:fs");
|
|
12
10
|
const personal_stage_js_1 = require("./personal-stage.js");
|
|
13
11
|
const dnsLabelPattern = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
|
|
14
12
|
function label(value) {
|
|
@@ -30,18 +28,9 @@ function createFleetId(options) {
|
|
|
30
28
|
const workspace = label(options.workspaceName);
|
|
31
29
|
if (!workspace)
|
|
32
30
|
throw new Error('Workspace name cannot form a DNS label.');
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
checkout = options.checkoutPath;
|
|
39
|
-
}
|
|
40
|
-
const digest = (0, node_crypto_1.createHash)('sha256')
|
|
41
|
-
.update(`${checkout}\0${workspace}\0${stage}`)
|
|
42
|
-
.digest('hex')
|
|
43
|
-
.slice(0, 10);
|
|
44
|
-
const suffix = `-${stage}-${digest}`;
|
|
31
|
+
// The random task stage owns identity; checkout paths are ownership bindings,
|
|
32
|
+
// not identity entropy. Explicit reattachment must preserve the origin.
|
|
33
|
+
const suffix = `-${stage}`;
|
|
45
34
|
const available = 63 - suffix.length;
|
|
46
35
|
const prefix = workspace.slice(0, Math.max(1, available)).replace(/-+$/g, '');
|
|
47
36
|
const result = `${prefix}${suffix}`;
|
package/src/local-dev/index.d.ts
CHANGED
package/src/local-dev/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./contracts.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./browser-verification.js"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./gateway.js"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./identity.js"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./personal-secret-ledger.js"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type NativeDevelopmentCompletion = 'pending' | 'succeeded' | 'failed';
|
|
2
|
+
/** Read only SST 4.17.1's current native completion. Never retain its body:
|
|
3
|
+
* links, outputs and resources can contain private application material.
|
|
4
|
+
* This observes deployment, not preview/state authority or application health. */
|
|
5
|
+
export declare function readNativeDevelopmentCompletion(input: {
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
stage: string;
|
|
8
|
+
startedAt: string;
|
|
9
|
+
}, signal: AbortSignal): Promise<NativeDevelopmentCompletion>;
|