@empire-builder-kit/nx 1.0.0-rc.4 → 1.0.0-rc.40
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 +18 -0
- 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.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 +6 -0
- package/src/cli/deploy-runtime.js +58 -0
- package/src/cli/dev-command.d.ts +16 -4
- package/src/cli/dev-command.js +63 -0
- package/src/cli/main.d.ts +9 -1
- package/src/cli/main.js +139 -20
- package/src/cli/output.d.ts +1 -1
- package/src/cli/output.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 +5 -0
- package/src/developer-agent/operation-registry.js +286 -40
- package/src/developer-agent/planning.js +16 -13
- 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 +162 -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 +40 -6
- package/src/executors/sst-lifecycle/run-sst-command.js +779 -70
- 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/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/tool-versions.d.ts +2 -0
- package/src/generators/preset/tool-versions.js +3 -1
- package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
- package/src/generators/preset/workspace-files-adopter-skills.js +303 -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 +90 -28
- 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-stage-authority.d.ts +6 -0
- package/src/generators/preset/workspace-files-stage-authority.js +518 -0
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +55 -0
- package/src/generators/preset/workspace-files-thin-deploy.js +2473 -0
- package/src/generators/preset/workspace-files-thin-docs.d.ts +7 -0
- package/src/generators/preset/workspace-files-thin-docs.js +352 -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 +1504 -608
- 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 +42 -7
- 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 +92 -329
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +60 -2
- 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 +163 -1196
- 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 +20 -1
- 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 +7 -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 -729
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +67 -11
- 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 +157 -28
- 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 +279 -43
- 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-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.js +178 -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 +80 -29
- 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/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 +39 -8
- package/src/git-policy/github-bootstrap.js +329 -175
- 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 +46 -18
- 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 +14 -2
- 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/registry.d.ts +2 -1
- package/src/secrets/registry.js +18 -1
- package/src/secrets/verification.js +9 -1
- 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
|
@@ -93,10 +93,11 @@ function isSafeWorkspacePath(path) {
|
|
|
93
93
|
(0, workspace_path_js_1.isCanonicalDeveloperAgentWorkspacePath)(path) &&
|
|
94
94
|
path.split('/').every((segment) => segment.length > 0 && segment !== '.'));
|
|
95
95
|
}
|
|
96
|
-
function blockingWarnings(context, readOnly, upgradeTarget) {
|
|
96
|
+
function blockingWarnings(context, readOnly, upgradeTarget, allowDirtyDevelopment = false) {
|
|
97
97
|
const blocking = new Set(model_js_1.DEVELOPER_AGENT_CONTEXT_BLOCKING_FAILURES);
|
|
98
98
|
if (!readOnly) {
|
|
99
|
-
|
|
99
|
+
if (!allowDirtyDevelopment)
|
|
100
|
+
blocking.add('dirty-worktree');
|
|
100
101
|
blocking.add('stale-base');
|
|
101
102
|
}
|
|
102
103
|
const ownershipVersions = context.workspace.ownershipVersions;
|
|
@@ -120,16 +121,14 @@ function blockingWarnings(context, readOnly, upgradeTarget) {
|
|
|
120
121
|
}
|
|
121
122
|
if (upgradeTarget === 'workspace')
|
|
122
123
|
return true;
|
|
123
|
-
if (
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (upgradeTarget !== 'foundation' &&
|
|
128
|
-
!hasExpectedVersionDrift('workspace') &&
|
|
129
|
-
!hasExpectedVersionDrift('foundation')) {
|
|
130
|
-
return drift.kind === 'slice' && drift.target === upgradeTarget;
|
|
124
|
+
if (hasExpectedVersionDrift('workspace'))
|
|
125
|
+
return false;
|
|
126
|
+
if (upgradeTarget === 'foundation') {
|
|
127
|
+
return drift.kind === 'foundation' || drift.kind === 'slice';
|
|
131
128
|
}
|
|
132
|
-
|
|
129
|
+
if (hasExpectedVersionDrift('foundation'))
|
|
130
|
+
return false;
|
|
131
|
+
return drift.kind === 'slice';
|
|
133
132
|
};
|
|
134
133
|
return context.warnings.filter((warning) => blocking.has(warning.classification) &&
|
|
135
134
|
!mayConsumeExpectedVersionDrift(warning));
|
|
@@ -352,7 +351,9 @@ function planDeveloperAgentWork(context, registry, request, options = {}) {
|
|
|
352
351
|
const blockers = [
|
|
353
352
|
...blockingWarnings(context, readOnlyForSourceWarnings, request.generatorInput?.generator === 'upgrade'
|
|
354
353
|
? request.generatorInput.name
|
|
355
|
-
: undefined
|
|
354
|
+
: undefined, operation.owner === 'source-edit' ||
|
|
355
|
+
(operation.authority === 'development-mutate' &&
|
|
356
|
+
context.policy.canonicalStage === 'development')),
|
|
356
357
|
...concurrentPathBlockers(context, selectedFiles, readOnlyForSourceWarnings),
|
|
357
358
|
...policyBlockers(context, operation),
|
|
358
359
|
].filter((blocker, index, values) => values.findIndex((candidate) => candidate.classification === blocker.classification &&
|
|
@@ -438,7 +439,9 @@ function planDeveloperAgentWork(context, registry, request, options = {}) {
|
|
|
438
439
|
selectedProjects: operation.projects,
|
|
439
440
|
verification: [
|
|
440
441
|
...new Set([
|
|
441
|
-
...
|
|
442
|
+
...(operation.owner === 'source-edit'
|
|
443
|
+
? []
|
|
444
|
+
: context.requiredVerification),
|
|
442
445
|
...operation.requiredVerification,
|
|
443
446
|
]),
|
|
444
447
|
].sort(),
|
|
@@ -21,6 +21,8 @@ export declare class DeferredDeveloperAgentTree implements Tree {
|
|
|
21
21
|
isFile(path: string): boolean;
|
|
22
22
|
children(path: string): string[];
|
|
23
23
|
listChanges(): FileChange[];
|
|
24
|
+
/** Inspect pending configuration without adding parent edits to this transaction. */
|
|
25
|
+
hasPendingChange(path: string): boolean;
|
|
24
26
|
changePermissions(path: string, mode: Mode): void;
|
|
25
27
|
apply(): void;
|
|
26
28
|
}
|
|
@@ -64,7 +64,9 @@ function developerAgentPreviewOwnershipModes(tree, target) {
|
|
|
64
64
|
}
|
|
65
65
|
add('', result.value);
|
|
66
66
|
}
|
|
67
|
-
if (target === 'foundation'
|
|
67
|
+
if (target === 'foundation' ||
|
|
68
|
+
(target !== 'workspace' &&
|
|
69
|
+
tree.exists('packages/foundation/.ebk/ownership.json'))) {
|
|
68
70
|
const source = tree.read('packages/foundation/.ebk/ownership.json', 'utf8');
|
|
69
71
|
const result = (0, index_js_1.validateFoundationOwnershipRecord)(JSON.parse(source ?? 'null'));
|
|
70
72
|
if (!result.valid) {
|
|
@@ -72,7 +74,7 @@ function developerAgentPreviewOwnershipModes(tree, target) {
|
|
|
72
74
|
}
|
|
73
75
|
add('packages/foundation', result.value);
|
|
74
76
|
}
|
|
75
|
-
|
|
77
|
+
if (target !== 'workspace' && target !== 'foundation') {
|
|
76
78
|
const prefix = `packages/${target}`;
|
|
77
79
|
const source = tree.read(`${prefix}/.ebk/ownership.json`, 'utf8');
|
|
78
80
|
const result = (0, index_js_1.validateGeneratedOwnershipRecord)(JSON.parse(source ?? 'null'));
|
|
@@ -181,6 +183,16 @@ class DeferredDeveloperAgentTree {
|
|
|
181
183
|
}))
|
|
182
184
|
.sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.path, right.path));
|
|
183
185
|
}
|
|
186
|
+
/** Inspect pending configuration without adding parent edits to this transaction. */
|
|
187
|
+
hasPendingChange(path) {
|
|
188
|
+
const normalized = canonicalPath(path);
|
|
189
|
+
return (this.changes.has(normalized) ||
|
|
190
|
+
(this.source instanceof DeferredDeveloperAgentTree
|
|
191
|
+
? this.source.hasPendingChange(normalized)
|
|
192
|
+
: this.source
|
|
193
|
+
.listChanges()
|
|
194
|
+
.some((change) => change.path === normalized)));
|
|
195
|
+
}
|
|
184
196
|
changePermissions(path, mode) {
|
|
185
197
|
const contents = this.current(path);
|
|
186
198
|
if (contents === null) {
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.developerAgentGeneratorPreviewSource = developerAgentGeneratorPreviewSource;
|
|
4
4
|
function developerAgentGeneratorPreviewSource(context) {
|
|
5
|
+
if (context.git.commit === null) {
|
|
6
|
+
throw new Error('Commit-bound generator previews require an initial Git commit; local orientation and feature checks do not establish committed-source authority.');
|
|
7
|
+
}
|
|
5
8
|
return {
|
|
6
9
|
blueprintVersions: [...context.workspace.blueprintVersions],
|
|
7
10
|
...(context.workspace.candidateProvenance
|
|
@@ -54,7 +54,11 @@ const OPERATION_OWNER_SET = new Set(model_js_1.DEVELOPER_AGENT_OPERATION_OWNERS)
|
|
|
54
54
|
const POLICY_LIFECYCLE_ACTION_SET = new Set(model_js_1.DEVELOPER_AGENT_POLICY_LIFECYCLE_ACTIONS);
|
|
55
55
|
const STABLE_GENERATOR_SET = new Set(model_js_1.DEVELOPER_AGENT_STABLE_GENERATORS);
|
|
56
56
|
const GENERATOR_MODE_SET = new Set(model_js_1.DEVELOPER_AGENT_GENERATOR_MODES);
|
|
57
|
-
const PRODUCTION_PROFILE_SET = new Set([
|
|
57
|
+
const PRODUCTION_PROFILE_SET = new Set([
|
|
58
|
+
'cost-optimized',
|
|
59
|
+
'balanced',
|
|
60
|
+
'standard',
|
|
61
|
+
]);
|
|
58
62
|
const BLOCKING_FAILURES = new Set([
|
|
59
63
|
'unsupported-operation',
|
|
60
64
|
'invalid-input',
|
|
@@ -478,10 +482,20 @@ function validateGitContext(value, path, issues) {
|
|
|
478
482
|
return false;
|
|
479
483
|
requireInteger(record.ahead, `${path}.ahead`, issues, 0, 1_000_000);
|
|
480
484
|
requireInteger(record.behind, `${path}.behind`, issues, 0, 1_000_000);
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
+
if (record.commit !== null) {
|
|
486
|
+
requireSafeString(record.commit, `${path}.commit`, issues, {
|
|
487
|
+
maximumLength: 64,
|
|
488
|
+
pattern: COMMIT_PATTERN,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
else if (typeof record.branch !== 'string' ||
|
|
492
|
+
record.ahead !== 0 ||
|
|
493
|
+
record.behind !== 0 ||
|
|
494
|
+
has(record, 'upstream') ||
|
|
495
|
+
has(record, 'baseCommit') ||
|
|
496
|
+
has(record, 'headCommit')) {
|
|
497
|
+
addIssue(issues, `${path}.commit`, 'uncommitted state requires a symbolic branch without upstream or comparison authority');
|
|
498
|
+
}
|
|
485
499
|
requireBoolean(record.concurrentChangeInspectionComplete, `${path}.concurrentChangeInspectionComplete`, issues);
|
|
486
500
|
const concurrentChanges = requireArray(record.concurrentChanges, `${path}.concurrentChanges`, issues, MAX_CONCURRENT_PATHS);
|
|
487
501
|
const concurrentPaths = new Set();
|
|
@@ -516,10 +530,12 @@ function validateGitContext(value, path, issues) {
|
|
|
516
530
|
}
|
|
517
531
|
requireInteger(concurrent.worktreeCount, `${entryPath}.worktreeCount`, issues, 1, 64);
|
|
518
532
|
});
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
533
|
+
if (record.defaultBaseCommit !== null) {
|
|
534
|
+
requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
|
|
535
|
+
maximumLength: 64,
|
|
536
|
+
pattern: COMMIT_PATTERN,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
523
539
|
requireSafeString(record.defaultBaseRef, `${path}.defaultBaseRef`, issues, {
|
|
524
540
|
maximumLength: MAX_PATH_LENGTH,
|
|
525
541
|
});
|
|
@@ -6,6 +6,7 @@ const node_util_1 = require("node:util");
|
|
|
6
6
|
const semver_1 = require("semver");
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = require("node:path");
|
|
9
|
+
const contracts_js_1 = require("../local-dev/contracts.js");
|
|
9
10
|
const index_js_1 = require("../ownership/index.js");
|
|
10
11
|
const index_js_2 = require("../repository-policy/index.js");
|
|
11
12
|
const index_js_3 = require("../work-markers/index.js");
|
|
@@ -222,7 +223,22 @@ function selectedDependencyClosureNodes(graph, selected) {
|
|
|
222
223
|
const node = pending.pop();
|
|
223
224
|
if (!node)
|
|
224
225
|
continue;
|
|
225
|
-
|
|
226
|
+
let localDependencies = [];
|
|
227
|
+
try {
|
|
228
|
+
const adapter = (0, contracts_js_1.validateLocalDevAdapter)(node.data.metadata?.['ebk']
|
|
229
|
+
?.localDev);
|
|
230
|
+
if (adapter.adapterVersion === 3) {
|
|
231
|
+
localDependencies = adapter.dependencySlices;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
// The operation registry rejects malformed metadata; do not traverse it.
|
|
236
|
+
}
|
|
237
|
+
const dependencyNames = new Set([
|
|
238
|
+
...(graph.dependencies[node.name] ?? []).map(({ target }) => target),
|
|
239
|
+
...localDependencies,
|
|
240
|
+
]);
|
|
241
|
+
for (const target of dependencyNames) {
|
|
226
242
|
const dependency = graph.nodes[target];
|
|
227
243
|
if (!dependency || closure.has(target))
|
|
228
244
|
continue;
|
|
@@ -612,7 +628,7 @@ function protectedExternalBlueprintVerification(root, frameworkVersion, records,
|
|
|
612
628
|
git.defaultBaseRef === 'refs/remotes/origin/develop'
|
|
613
629
|
? 'develop'
|
|
614
630
|
: undefined;
|
|
615
|
-
if (!protectedBranch)
|
|
631
|
+
if (!protectedBranch || !git.commit || !git.defaultBaseCommit)
|
|
616
632
|
return unavailable();
|
|
617
633
|
const configurationPaths = (0, blueprint_verification_authority_js_1.assertNoMutableBlueprintVerificationConfiguration)(root);
|
|
618
634
|
(0, blueprint_verification_authority_js_1.assertBlueprintVerificationNxAuthority)(readBoundedWorkspaceFile(root, 'nx.json', 'Blueprint verification Nx authority', MAX_CONTROL_JSON_BYTES).bytes.toString('utf8'));
|
|
@@ -862,6 +878,23 @@ function policyContext(root, stage, policy, nodes) {
|
|
|
862
878
|
};
|
|
863
879
|
});
|
|
864
880
|
const fields = [
|
|
881
|
+
{
|
|
882
|
+
name: 'workspaceDeploymentId',
|
|
883
|
+
value: policy.workspaceDeploymentId,
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
name: 'workspaceDeploymentProvenance.kind',
|
|
887
|
+
value: policy.workspaceDeploymentProvenance.kind,
|
|
888
|
+
},
|
|
889
|
+
{ name: 'deploymentProfile', value: policy.deploymentProfile },
|
|
890
|
+
{
|
|
891
|
+
name: 'deploymentRegion',
|
|
892
|
+
value: policy.deploymentRegion ?? 'unconfigured',
|
|
893
|
+
},
|
|
894
|
+
...['development', 'staging', 'production'].map((stage) => ({
|
|
895
|
+
name: `deploymentAccounts.${stage}`,
|
|
896
|
+
value: policy.deploymentAccounts[stage] ?? 'unconfigured',
|
|
897
|
+
})),
|
|
865
898
|
{ name: 'productionAccess', value: policy.productionAccess },
|
|
866
899
|
{
|
|
867
900
|
name: 'productionApproval.mode',
|
|
@@ -886,11 +919,16 @@ function policyContext(root, stage, policy, nodes) {
|
|
|
886
919
|
decisions,
|
|
887
920
|
policy: {
|
|
888
921
|
$schema: policy.$schema ?? null,
|
|
922
|
+
deploymentAccounts: policy.deploymentAccounts,
|
|
923
|
+
deploymentProfile: policy.deploymentProfile,
|
|
924
|
+
deploymentRegion: policy.deploymentRegion,
|
|
889
925
|
productionAccess: policy.productionAccess,
|
|
890
926
|
productionApproval: policy.productionApproval,
|
|
891
927
|
productionFoundation: policy.productionFoundation,
|
|
892
928
|
schemaVersion: policy.schemaVersion,
|
|
893
929
|
slices: Object.fromEntries(Object.entries(policy.slices).sort(([left], [right]) => (0, ordering_js_1.compareDeveloperAgentStrings)(left, right))),
|
|
930
|
+
workspaceDeploymentId: policy.workspaceDeploymentId,
|
|
931
|
+
workspaceDeploymentProvenance: policy.workspaceDeploymentProvenance,
|
|
894
932
|
},
|
|
895
933
|
selected,
|
|
896
934
|
stage,
|
|
@@ -1047,8 +1085,7 @@ function inspectDeveloperAgentWorkspace(options) {
|
|
|
1047
1085
|
let policy;
|
|
1048
1086
|
const policyWarnings = [];
|
|
1049
1087
|
try {
|
|
1050
|
-
|
|
1051
|
-
policy = (0, index_js_2.parseRepositoryOperatingPolicy)(policySource, index_js_2.REPOSITORY_POLICY_FILE);
|
|
1088
|
+
policy = (0, index_js_2.readRepositoryOperatingPolicy)(root);
|
|
1052
1089
|
}
|
|
1053
1090
|
catch {
|
|
1054
1091
|
policyWarnings.push(warning('policy-conflict', 'Repository Operating Policy is missing, malformed, or contradictory.'));
|
|
@@ -1062,12 +1099,17 @@ function inspectDeveloperAgentWorkspace(options) {
|
|
|
1062
1099
|
const marker = markerContext(root);
|
|
1063
1100
|
const projectTargets = registryNodes.map((node) => ({
|
|
1064
1101
|
context: projectContext(options.graph, node),
|
|
1102
|
+
localDev: node.data.metadata?.['ebk']?.localDev,
|
|
1065
1103
|
targets: (node.data.targets ?? {}),
|
|
1066
1104
|
}));
|
|
1067
1105
|
const externalVerification = protectedExternalBlueprintVerification(root, versions.workspace.frameworkVersion, ownership.records, options.graph, new Set(registryNodes.map(({ name }) => name)), options.blueprintTrustNow ?? new Date().toISOString(), options.git);
|
|
1068
1106
|
const operationRegistry = (0, operation_registry_js_1.createDeveloperAgentOperationRegistry)(projectTargets, {
|
|
1107
|
+
allSliceProjectNames: Object.values(options.graph.nodes)
|
|
1108
|
+
.filter((node) => node.data.tags?.includes('type:slice'))
|
|
1109
|
+
.map(({ name }) => name),
|
|
1069
1110
|
exposedProjectNames: nodes.map(({ name }) => name),
|
|
1070
1111
|
externalOwnedProjectNames: externalOwnedProjectNames(root, registryNodes, externalOwnershipRoots, options.externalOwnershipHistory, foundationProjectName),
|
|
1112
|
+
externalOwnershipHistoryComplete: options.externalOwnershipHistory.complete,
|
|
1071
1113
|
namedInputDefinitions: [
|
|
1072
1114
|
options.workspaceNamedInputs ?? { runtime: 'uninspected' },
|
|
1073
1115
|
...Object.values(options.graph.nodes).map((node) => node.data.namedInputs ?? {}),
|
|
@@ -1088,13 +1130,26 @@ function inspectDeveloperAgentWorkspace(options) {
|
|
|
1088
1130
|
...externalVerification.warnings,
|
|
1089
1131
|
...unsupportedWarnings,
|
|
1090
1132
|
]);
|
|
1133
|
+
// The name "verify" alone is not a framework verification obligation.
|
|
1134
|
+
// Adopter-owned authoring projects may run arbitrary recipe checks; they
|
|
1135
|
+
// remain visible but cannot inject authority into an unrelated operation.
|
|
1136
|
+
// Keep generated obligations even when their implementation is tampered
|
|
1137
|
+
// with, so planning still refuses unauthenticated required verification.
|
|
1138
|
+
const governedProjectNames = new Set([
|
|
1139
|
+
identity.name,
|
|
1140
|
+
...(foundationProjectName ? [foundationProjectName] : []),
|
|
1141
|
+
...ownership.records.flatMap(({ slice }) => slice ? [slice.slice, ...slice.projects] : []),
|
|
1142
|
+
]);
|
|
1143
|
+
const authenticatedTargets = new Set(operationRegistry.authenticatedTargets);
|
|
1091
1144
|
const requiredVerification = [
|
|
1092
1145
|
...new Set([
|
|
1093
1146
|
...ownership.records.flatMap((record) => record.slice && selectedProjectNames.has(record.slice.slice)
|
|
1094
1147
|
? record.slice.verification.map((target) => `${record.slice.slice}:${target}`)
|
|
1095
1148
|
: []),
|
|
1096
1149
|
...projects
|
|
1097
|
-
.filter(({ targets }) => targets.includes('verify')
|
|
1150
|
+
.filter(({ name, targets }) => targets.includes('verify') &&
|
|
1151
|
+
(governedProjectNames.has(name) ||
|
|
1152
|
+
authenticatedTargets.has(`${name}:verify`)))
|
|
1098
1153
|
.map(({ name }) => `${name}:verify`),
|
|
1099
1154
|
]),
|
|
1100
1155
|
].sort();
|
|
@@ -16,6 +16,12 @@ const TARGET_OPTIONS = Object.freeze({
|
|
|
16
16
|
protectedBranch: 'develop',
|
|
17
17
|
protectedRef: 'refs/remotes/origin/develop',
|
|
18
18
|
}),
|
|
19
|
+
'blueprint-trust-check-main': Object.freeze({
|
|
20
|
+
operation: 'adopt',
|
|
21
|
+
output: '.ebk/evidence/supply-chain/blueprint-trust.json',
|
|
22
|
+
protectedBranch: 'main',
|
|
23
|
+
protectedRef: 'refs/remotes/origin/main',
|
|
24
|
+
}),
|
|
19
25
|
'blueprint-trust-check-protected': Object.freeze({
|
|
20
26
|
operation: 'deploy',
|
|
21
27
|
output: '.ebk/evidence/supply-chain/blueprint-trust.json',
|
|
@@ -7,3 +7,5 @@ interface DeploymentPlanOptions {
|
|
|
7
7
|
}
|
|
8
8
|
declare const executor: PromiseExecutor<DeploymentPlanOptions>;
|
|
9
9
|
export default executor;
|
|
10
|
+
/** Derive protected OCI work from the committed inventory, not Slice existence. */
|
|
11
|
+
export declare function hasContainerArtifacts(value: unknown): boolean;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasContainerArtifacts = hasContainerArtifacts;
|
|
3
4
|
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
4
6
|
const devkit_1 = require("@nx/devkit");
|
|
5
7
|
const index_js_1 = require("../../repository-policy/index.js");
|
|
6
8
|
const index_js_2 = require("../../work-markers/index.js");
|
|
@@ -10,11 +12,22 @@ function writeGithubOutputs(plan) {
|
|
|
10
12
|
return;
|
|
11
13
|
(0, node_fs_1.appendFileSync)(output, [
|
|
12
14
|
`foundation_project=${plan.foundationProject ?? ''}`,
|
|
15
|
+
`deployment_profile=${plan.deploymentProfile}`,
|
|
16
|
+
`deployment_region=${plan.deploymentRegion}`,
|
|
17
|
+
`development_account_id=${plan.deploymentAccounts.development ?? ''}`,
|
|
18
|
+
`staging_account_id=${plan.deploymentAccounts.staging ?? ''}`,
|
|
19
|
+
`production_account_id=${plan.deploymentAccounts.production ?? ''}`,
|
|
13
20
|
`foundation_profile=${plan.effectiveProductionProfile ?? ''}`,
|
|
14
21
|
`has_slices=${plan.sliceProjects.length > 0 ? 'true' : 'false'}`,
|
|
15
22
|
`ordered_projects=${plan.orderedProjects.join(',')}`,
|
|
16
23
|
`production_approval_mode=${plan.productionApprovalMode}`,
|
|
17
24
|
`slice_projects=${plan.sliceProjects.join(',')}`,
|
|
25
|
+
// One matrix row per selected Slice so the protected OCI build fans out
|
|
26
|
+
// per Slice and architecture instead of looping on one runner.
|
|
27
|
+
`slice_matrix=${JSON.stringify(plan.sliceProjects.map((project) => ({ project })))}`,
|
|
28
|
+
`has_containers=${plan.containerProjects.length > 0 ? 'true' : 'false'}`,
|
|
29
|
+
`container_projects=${plan.containerProjects.join(',')}`,
|
|
30
|
+
`container_matrix=${JSON.stringify(plan.containerProjects.map((project) => ({ project })))}`,
|
|
18
31
|
'',
|
|
19
32
|
].join('\n'), 'utf8');
|
|
20
33
|
}
|
|
@@ -38,8 +51,23 @@ const executor = async (options, context) => {
|
|
|
38
51
|
: {}),
|
|
39
52
|
stage: options.stage,
|
|
40
53
|
});
|
|
41
|
-
|
|
42
|
-
|
|
54
|
+
const containerProjects = options.action === 'deploy'
|
|
55
|
+
? plan.sliceProjects.filter((name) => {
|
|
56
|
+
const project = context.projectsConfigurations?.projects[name];
|
|
57
|
+
if (!project?.root)
|
|
58
|
+
throw new Error(`Release inventory root is absent for ${name}.`);
|
|
59
|
+
const inventoryPath = (0, node_path_1.resolve)(context.root, project.root, 'operations/release.json');
|
|
60
|
+
const local = (0, node_path_1.relative)(context.root, inventoryPath);
|
|
61
|
+
if ((0, node_path_1.isAbsolute)(local) ||
|
|
62
|
+
local === '..' ||
|
|
63
|
+
local.startsWith('../') ||
|
|
64
|
+
local.startsWith('..\\'))
|
|
65
|
+
throw new Error(`Release inventory for ${name} is outside the workspace.`);
|
|
66
|
+
return hasContainerArtifacts(JSON.parse((0, node_fs_1.readFileSync)(inventoryPath, 'utf8')));
|
|
67
|
+
})
|
|
68
|
+
: [];
|
|
69
|
+
devkit_1.logger.info(`[ebk-deployment-plan] validated before AWS access\n${JSON.stringify({ ...plan, containerProjects }, null, 2)}`);
|
|
70
|
+
writeGithubOutputs({ ...plan, containerProjects });
|
|
43
71
|
return { success: true };
|
|
44
72
|
}
|
|
45
73
|
catch (error) {
|
|
@@ -48,4 +76,31 @@ const executor = async (options, context) => {
|
|
|
48
76
|
}
|
|
49
77
|
};
|
|
50
78
|
exports.default = executor;
|
|
79
|
+
/** Derive protected OCI work from the committed inventory, not Slice existence. */
|
|
80
|
+
function hasContainerArtifacts(value) {
|
|
81
|
+
const inventory = value;
|
|
82
|
+
if (inventory?.schemaVersion !== 1 ||
|
|
83
|
+
!Array.isArray(inventory.artifactInventory) ||
|
|
84
|
+
inventory.artifactInventory.length === 0)
|
|
85
|
+
throw new Error('Release inventory is absent or malformed.');
|
|
86
|
+
let containers = false;
|
|
87
|
+
for (const artifact of inventory.artifactInventory) {
|
|
88
|
+
if (!artifact ||
|
|
89
|
+
!artifact.finalArtifact ||
|
|
90
|
+
typeof artifact.finalArtifact.family !== 'string')
|
|
91
|
+
throw new Error('Release artifact identity is malformed.');
|
|
92
|
+
if (artifact.finalArtifact.family === 'sst-provider-artifact') {
|
|
93
|
+
if (artifact.finalArtifact.support !== 'unsupported')
|
|
94
|
+
throw new Error('Provider artifacts require their declared support boundary.');
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (artifact.finalArtifact.family !== 'oci-image')
|
|
98
|
+
throw new Error('Release artifact family is unsupported.');
|
|
99
|
+
if (artifact.finalArtifact.support !== 'supported' ||
|
|
100
|
+
artifact.finalArtifact.imageConsumption !== 'digest-qualified')
|
|
101
|
+
throw new Error('OCI artifacts require supported digest-qualified release identity.');
|
|
102
|
+
containers = true;
|
|
103
|
+
}
|
|
104
|
+
return containers;
|
|
105
|
+
}
|
|
51
106
|
//# sourceMappingURL=deployment-plan.js.map
|
|
@@ -85,11 +85,10 @@ function effectiveProbeAuthorities(rootCertificatePath) {
|
|
|
85
85
|
return (0, node_fs_1.readFileSync)(rootCertificatePath);
|
|
86
86
|
}
|
|
87
87
|
async function inspectLocalDevelopment(options, context, dependencies = {}) {
|
|
88
|
-
const stage = (dependencies.personalStageResolver ?? (0, personal_stage_js_1.createPersonalStageResolver)()).resolve().stage;
|
|
89
88
|
const hostname = options.hostname?.trim() ||
|
|
90
89
|
(0, identity_js_1.createFleetHostname)((0, identity_js_1.createFleetId)({
|
|
91
90
|
checkoutPath: context.root,
|
|
92
|
-
stage,
|
|
91
|
+
stage: (dependencies.personalStageResolver ?? (0, personal_stage_js_1.createPersonalStageResolver)()).resolve(context.root).stage,
|
|
93
92
|
workspaceName: context.projectName ?? 'workspace',
|
|
94
93
|
}));
|
|
95
94
|
const paths = (0, tls_js_1.localTlsPaths)(options.appData);
|
|
@@ -147,9 +146,17 @@ async function inspectLocalDevelopment(options, context, dependencies = {}) {
|
|
|
147
146
|
const trust = (dependencies.inspectTrust ?? inspectCertificateTrust)(paths.rootCertificate, paths.intermediateCertificate, paths.leafCertificate, hostname);
|
|
148
147
|
let authorities;
|
|
149
148
|
let connectivity = 'missing';
|
|
150
|
-
|
|
149
|
+
{
|
|
151
150
|
try {
|
|
152
|
-
|
|
151
|
+
// Prove the fleet's exact private chain without installing it into the
|
|
152
|
+
// operating system. Browser automation admits only this chain/origin.
|
|
153
|
+
authorities =
|
|
154
|
+
trust === 'ready'
|
|
155
|
+
? effectiveProbeAuthorities(paths.rootCertificate)
|
|
156
|
+
: [
|
|
157
|
+
(0, node_fs_1.readFileSync)(paths.rootCertificate),
|
|
158
|
+
(0, node_fs_1.readFileSync)(paths.intermediateCertificate),
|
|
159
|
+
];
|
|
153
160
|
await (dependencies.probeExplicitTls ?? effects_js_1.probeEphemeralTlsEndpoint)({
|
|
154
161
|
ca: authorities,
|
|
155
162
|
certificate: (0, node_fs_1.readFileSync)(paths.leafCertificate),
|
|
@@ -162,8 +169,8 @@ async function inspectLocalDevelopment(options, context, dependencies = {}) {
|
|
|
162
169
|
issues.push(`Supported explicit-port TLS effect probe failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
163
170
|
}
|
|
164
171
|
}
|
|
165
|
-
|
|
166
|
-
issues.push('
|
|
172
|
+
if (trust !== 'ready') {
|
|
173
|
+
issues.push('System trust is not installed. Use the generated verify-local-browser target for browser-scoped trust; human browsers may require explicit ebk dev setup --trust after reviewing the root.');
|
|
167
174
|
}
|
|
168
175
|
let state;
|
|
169
176
|
if ((0, node_fs_1.existsSync)(paths.gatewayState)) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ExecutorContext, type PromiseExecutor } from '@nx/devkit';
|
|
2
|
+
import { type TaskAuthorityEffects } from '../../local-dev/task-authority.js';
|
|
3
|
+
import { createLocalFederatedCredentialTransport } from '../local-deploy/federated-credential-transport.js';
|
|
4
|
+
import { runSstCommand, type SstLifecycleOptions } from '../sst-lifecycle/run-sst-command.js';
|
|
5
|
+
import { inspectNeverCreatedTaskStack, verifyRemovedTaskStack } from './task-stack-absence.js';
|
|
6
|
+
export type DevTaskCleanupOptions = Record<string, never>;
|
|
7
|
+
export interface DevTaskCleanupDependencies {
|
|
8
|
+
authority?: TaskAuthorityEffects;
|
|
9
|
+
createTransport?: typeof createLocalFederatedCredentialTransport;
|
|
10
|
+
environment?: NodeJS.ProcessEnv;
|
|
11
|
+
preflight?: typeof preflightTaskRemove;
|
|
12
|
+
inspectStack?: typeof inspectNeverCreatedTaskStack;
|
|
13
|
+
verifyStack?: typeof verifyRemovedTaskStack;
|
|
14
|
+
run?: typeof runSstCommand;
|
|
15
|
+
}
|
|
16
|
+
declare function preflightTaskRemove(options: SstLifecycleOptions, context: ExecutorContext, environment: NodeJS.ProcessEnv): Promise<string>;
|
|
17
|
+
/** Internal generated cleanup target: never accepts a caller-selected task. */
|
|
18
|
+
export declare function runDevTaskCleanup(options: DevTaskCleanupOptions, context: ExecutorContext, dependencies?: DevTaskCleanupDependencies): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
taskStack?: 'already-absent';
|
|
21
|
+
}>;
|
|
22
|
+
declare const executor: PromiseExecutor<DevTaskCleanupOptions>;
|
|
23
|
+
export default executor;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runDevTaskCleanup = runDevTaskCleanup;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const index_js_1 = require("../../aws-authority/index.js");
|
|
6
|
+
const fleet_launcher_js_1 = require("../../local-dev/fleet-launcher.js");
|
|
7
|
+
const local_context_js_1 = require("../../local-dev/local-context.js");
|
|
8
|
+
const task_authority_js_1 = require("../../local-dev/task-authority.js");
|
|
9
|
+
const task_identity_js_1 = require("../../local-dev/task-identity.js");
|
|
10
|
+
const federated_credential_transport_js_1 = require("../local-deploy/federated-credential-transport.js");
|
|
11
|
+
const run_sst_command_js_1 = require("../sst-lifecycle/run-sst-command.js");
|
|
12
|
+
const task_stack_absence_js_1 = require("./task-stack-absence.js");
|
|
13
|
+
async function preflightTaskRemove(options, context, environment) {
|
|
14
|
+
const invocation = (0, run_sst_command_js_1.buildSstCommandInvocation)('remove', options, context, environment);
|
|
15
|
+
await (0, run_sst_command_js_1.runSstLifecyclePreflights)('remove', options, context, invocation, {}, environment);
|
|
16
|
+
return invocation.cwd;
|
|
17
|
+
}
|
|
18
|
+
/** Internal generated cleanup target: never accepts a caller-selected task. */
|
|
19
|
+
async function runDevTaskCleanup(options, context, dependencies = {}) {
|
|
20
|
+
let transport;
|
|
21
|
+
let success = false;
|
|
22
|
+
let alreadyAbsent = false;
|
|
23
|
+
try {
|
|
24
|
+
if (!options ||
|
|
25
|
+
typeof options !== 'object' ||
|
|
26
|
+
Array.isArray(options) ||
|
|
27
|
+
Reflect.ownKeys(options).length !== 0) {
|
|
28
|
+
throw new Error('Task cleanup accepts no caller options, stage, task, or AWS profile overrides.');
|
|
29
|
+
}
|
|
30
|
+
const environment = dependencies.environment ?? process.env;
|
|
31
|
+
if (environment.GITHUB_ACTIONS === 'true') {
|
|
32
|
+
throw new Error('Task cleanup is available only in the owning local worktree, not GitHub Actions.');
|
|
33
|
+
}
|
|
34
|
+
const projectName = context.projectName;
|
|
35
|
+
const project = projectName
|
|
36
|
+
? context.projectsConfigurations?.projects[projectName]
|
|
37
|
+
: undefined;
|
|
38
|
+
if (!projectName ||
|
|
39
|
+
!project?.tags?.includes('type:slice') ||
|
|
40
|
+
project.tags.includes('scope:foundation')) {
|
|
41
|
+
throw new Error('Task cleanup requires one Product Slice, never a Foundation.');
|
|
42
|
+
}
|
|
43
|
+
const task = (0, task_identity_js_1.resolveTaskIdentity)(context.root);
|
|
44
|
+
const saved = (0, local_context_js_1.readSavedLocalDevContext)((0, fleet_launcher_js_1.resolveGitCommonDirectory)(context.root));
|
|
45
|
+
if (saved.kind !== 'ready') {
|
|
46
|
+
throw new Error('Task cleanup requires a valid saved local development AWS context. Run ebk dev configure.');
|
|
47
|
+
}
|
|
48
|
+
const verified = await (0, task_authority_js_1.verifyTaskEnvironment)(context.root, saved.resolution.context, dependencies.authority);
|
|
49
|
+
(0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
|
|
50
|
+
const region = verified.region;
|
|
51
|
+
const expectedRoleArn = (0, index_js_1.createStageAuthorityIdentity)({
|
|
52
|
+
accountId: verified.accountId,
|
|
53
|
+
partition: region.startsWith('cn-')
|
|
54
|
+
? 'aws-cn'
|
|
55
|
+
: region.startsWith('us-gov-')
|
|
56
|
+
? 'aws-us-gov'
|
|
57
|
+
: 'aws',
|
|
58
|
+
region,
|
|
59
|
+
stage: 'development',
|
|
60
|
+
}).deploymentRoleArn;
|
|
61
|
+
transport = await (dependencies.createTransport ?? federated_credential_transport_js_1.createLocalFederatedCredentialTransport)({
|
|
62
|
+
account: verified.accountId,
|
|
63
|
+
expectedRoleArn,
|
|
64
|
+
profile: saved.resolution.context.profile,
|
|
65
|
+
region,
|
|
66
|
+
});
|
|
67
|
+
await transport.refresh();
|
|
68
|
+
// Recheck ownership after asynchronous authority acquisition, before mutation.
|
|
69
|
+
(0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
|
|
70
|
+
if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId) {
|
|
71
|
+
throw new Error('Task ownership changed during cleanup authorization.');
|
|
72
|
+
}
|
|
73
|
+
const nativeOptions = {
|
|
74
|
+
expectedRoleArn,
|
|
75
|
+
foundationStage: 'development',
|
|
76
|
+
profile: transport.profile,
|
|
77
|
+
region,
|
|
78
|
+
stage: (0, task_identity_js_1.taskStage)(task.taskId),
|
|
79
|
+
stageMode: 'consumer',
|
|
80
|
+
};
|
|
81
|
+
const childEnvironment = {
|
|
82
|
+
...transport.childEnvironment(environment),
|
|
83
|
+
AWS_EXPECTED_ACCOUNT_ID: verified.accountId,
|
|
84
|
+
AWS_REGION: region,
|
|
85
|
+
EBK_NX_TASK_CLEANUP: task.taskId,
|
|
86
|
+
};
|
|
87
|
+
// An absence result must pass the same role/project/task/ownership gates
|
|
88
|
+
// as removal. Present state still goes through the unchanged native runner.
|
|
89
|
+
const projectRoot = await (dependencies.preflight ?? preflightTaskRemove)(nativeOptions, context, childEnvironment);
|
|
90
|
+
const metadata = await (dependencies.inspectStack ?? task_stack_absence_js_1.inspectNeverCreatedTaskStack)({
|
|
91
|
+
workspaceRoot: context.root,
|
|
92
|
+
projectRoot,
|
|
93
|
+
projectName,
|
|
94
|
+
taskId: task.taskId,
|
|
95
|
+
verifiedEnvironment: verified,
|
|
96
|
+
awsEnvironment: childEnvironment,
|
|
97
|
+
});
|
|
98
|
+
(0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
|
|
99
|
+
if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId)
|
|
100
|
+
throw new Error('Task ownership changed during cleanup inspection.');
|
|
101
|
+
if (metadata.status === 'already-absent') {
|
|
102
|
+
alreadyAbsent = true;
|
|
103
|
+
success = true;
|
|
104
|
+
devkit_1.logger.info('Task cloud stack is already absent (verified native metadata; no SST removal executed).');
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const removed = (await (dependencies.run ?? run_sst_command_js_1.runSstCommand)('remove', nativeOptions, context, { environment: childEnvironment })).success;
|
|
108
|
+
if (removed) {
|
|
109
|
+
await (dependencies.verifyStack ?? task_stack_absence_js_1.verifyRemovedTaskStack)({
|
|
110
|
+
workspaceRoot: context.root,
|
|
111
|
+
projectRoot,
|
|
112
|
+
projectName,
|
|
113
|
+
taskId: task.taskId,
|
|
114
|
+
verifiedEnvironment: verified,
|
|
115
|
+
awsEnvironment: childEnvironment,
|
|
116
|
+
});
|
|
117
|
+
(0, task_identity_js_1.assertCurrentTaskEnvironment)(context.root, verified);
|
|
118
|
+
if ((0, task_identity_js_1.resolveTaskIdentity)(context.root).taskId !== task.taskId)
|
|
119
|
+
throw new Error('Task ownership changed during cleanup verification.');
|
|
120
|
+
}
|
|
121
|
+
success = removed;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
devkit_1.logger.error(`Task cloud cleanup failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
try {
|
|
129
|
+
transport?.cleanup();
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
success = false;
|
|
133
|
+
devkit_1.logger.error(`Task cleanup credential removal failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
success,
|
|
138
|
+
...(success && alreadyAbsent
|
|
139
|
+
? { taskStack: 'already-absent' }
|
|
140
|
+
: {}),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const executor = (options, context) => runDevTaskCleanup(options, context);
|
|
144
|
+
exports.default = executor;
|
|
145
|
+
//# sourceMappingURL=dev-task-cleanup.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"version": 2,
|
|
4
|
+
"title": "Empire Builder Kit internal task cloud cleanup",
|
|
5
|
+
"description": "Remove only this worktree's owned task Slice stack through verified development authority.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {}
|
|
9
|
+
}
|