@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,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeveloperAgentOperationRegistryError = void 0;
|
|
3
|
+
exports.ROUTER_WAF_REHEARSAL_OWNER_RATIONALE = exports.GRAPH_INTERACTIVE_RATIONALE = exports.FORMAT_WRITE_OWNER_RATIONALE = exports.WORKLOAD_DEV_OWNER_RATIONALE = exports.DOCKER_BUILD_OWNER_RATIONALE = exports.DEPLOY_LOCAL_OWNER_RATIONALE = exports.DeveloperAgentOperationRegistryError = void 0;
|
|
4
4
|
exports.joinDeveloperAgentAuthorityClasses = joinDeveloperAgentAuthorityClasses;
|
|
5
5
|
exports.createDeveloperAgentOperationRegistry = createDeveloperAgentOperationRegistry;
|
|
6
6
|
exports.requireDeveloperAgentOperation = requireDeveloperAgentOperation;
|
|
7
7
|
exports.operationLooksMutating = operationLooksMutating;
|
|
8
8
|
const node_util_1 = require("node:util");
|
|
9
|
+
const contracts_js_1 = require("../local-dev/contracts.js");
|
|
9
10
|
const blueprint_trust_js_1 = require("../supply-chain/blueprint-trust.js");
|
|
10
11
|
const model_js_1 = require("./model.js");
|
|
11
12
|
const ordering_js_1 = require("./ordering.js");
|
|
@@ -36,12 +37,21 @@ const PROTECTED_CANONICAL_STAGES = [
|
|
|
36
37
|
'production',
|
|
37
38
|
];
|
|
38
39
|
const PROTECTED_WORKFLOW_ONLY_RATIONALE = 'This exact target is reserved for a protected workflow that supplies reviewed authority and retained evidence; Developer-Agent planning must use that owning workflow.';
|
|
39
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Non-plannable local targets name their real owner. Each string states only
|
|
42
|
+
* behaviour that exists: none of them promises a Developer-Agent plan entry.
|
|
43
|
+
*/
|
|
44
|
+
exports.DEPLOY_LOCAL_OWNER_RATIONALE = 'Development deployment is owned by ebk deploy development [slice]: run that command directly with the saved development --profile and the policy-derived --expectedRoleArn. This root target is its Nx implementation, not a separate entry point.';
|
|
45
|
+
exports.DOCKER_BUILD_OWNER_RATIONALE = 'Local workload image builds use the host Docker daemon outside any bounded owner. Verify workload source with its build, test and typecheck targets; ebk deploy development <slice> builds the deployable image.';
|
|
46
|
+
exports.WORKLOAD_DEV_OWNER_RATIONALE = 'A hot workload process started outside the ebk dev Fleet has no owned port, lifecycle or cleanup. Verify Service and Job source with its test, typecheck and build targets and exercise it through ebk deploy development <slice>.';
|
|
47
|
+
exports.FORMAT_WRITE_OWNER_RATIONALE = 'Formatting rewrites source files only: run pnpm nx format:write directly as part of a source edit, then rerun the required verification.';
|
|
48
|
+
exports.GRAPH_INTERACTIVE_RATIONALE = 'nx graph starts an interactive browser server and is not a bounded operation; use ebk agent context for the read-only project inventory.';
|
|
49
|
+
exports.ROUTER_WAF_REHEARSAL_OWNER_RATIONALE = 'The Router WAF rehearsal requires an exact --probeUrl that planning cannot derive: run it directly through its Nx target with that option after a development deployment.';
|
|
40
50
|
function policyLifecycleActionForTarget(targetName) {
|
|
41
|
-
if (exact('deploy', 'deploy-infrastructure', '
|
|
51
|
+
if (exact('deploy', 'deploy-infrastructure', 'deploy-local', 'deployment-plan', 'foundation-ready')(targetName)) {
|
|
42
52
|
return 'deploy';
|
|
43
53
|
}
|
|
44
|
-
if (exact('dev', 'dev-cleanup', 'dev-setup')(targetName))
|
|
54
|
+
if (exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'dev-setup')(targetName))
|
|
45
55
|
return 'dev';
|
|
46
56
|
if (exact('db-local-migrate', 'db-migrate')(targetName))
|
|
47
57
|
return 'migrate';
|
|
@@ -60,7 +70,11 @@ function runCommandSignature(targetName, command, settings = {}) {
|
|
|
60
70
|
return {
|
|
61
71
|
...(settings.continuous ? { continuous: true } : {}),
|
|
62
72
|
...(settings.dependsOn
|
|
63
|
-
? {
|
|
73
|
+
? {
|
|
74
|
+
dependsOn: (input) => typeof settings.dependsOn === 'function'
|
|
75
|
+
? settings.dependsOn(input)
|
|
76
|
+
: settings.dependsOn,
|
|
77
|
+
}
|
|
64
78
|
: {}),
|
|
65
79
|
executor: 'nx:run-commands',
|
|
66
80
|
...(settings.nonPlannableRationale
|
|
@@ -98,20 +112,39 @@ function runScriptSignature(targetName, expectedScript, settings = {}) {
|
|
|
98
112
|
function executorSignature(targetName, executor, options, dependsOn, settings = {}) {
|
|
99
113
|
return {
|
|
100
114
|
...settings,
|
|
101
|
-
...(dependsOn
|
|
115
|
+
...(dependsOn
|
|
116
|
+
? {
|
|
117
|
+
dependsOn: (input) => typeof dependsOn === 'function' ? dependsOn(input) : dependsOn,
|
|
118
|
+
}
|
|
119
|
+
: {}),
|
|
102
120
|
executor,
|
|
103
121
|
optionsMatch: options,
|
|
104
122
|
targetName,
|
|
105
123
|
};
|
|
106
124
|
}
|
|
107
|
-
|
|
125
|
+
// Use the inspected target inventory, not the workspace-wide Foundation
|
|
126
|
+
// capability: a SQL-free Slice may coexist with a relational Slice. Any SQL
|
|
127
|
+
// target keeps the SQL prerequisites mandatory, including in a partial/tampered
|
|
128
|
+
// graph where db-check alone was removed.
|
|
129
|
+
function sliceDeclaresSql(input) {
|
|
130
|
+
return input.project.targets.some((name) => [
|
|
131
|
+
'db-check',
|
|
132
|
+
'db-generate',
|
|
133
|
+
'db-migrate',
|
|
134
|
+
'db-local-down',
|
|
135
|
+
'db-local-migrate',
|
|
136
|
+
'db-local-up',
|
|
137
|
+
'db-retirement-rehearsal',
|
|
138
|
+
].includes(name));
|
|
139
|
+
}
|
|
140
|
+
const sliceVerifyDependencies = (input) => [
|
|
108
141
|
'api-contract-check',
|
|
109
142
|
'async-verify',
|
|
110
143
|
'authorization-check',
|
|
111
144
|
'build',
|
|
112
145
|
'contract-dependencies-check',
|
|
113
146
|
'data-policy-check',
|
|
114
|
-
'db-check',
|
|
147
|
+
...(sliceDeclaresSql(input) ? ['db-check'] : []),
|
|
115
148
|
'frontend-boundaries',
|
|
116
149
|
'lint',
|
|
117
150
|
'performance-budget',
|
|
@@ -123,11 +156,26 @@ const sliceVerifyDependencies = [
|
|
|
123
156
|
'test-integration',
|
|
124
157
|
'typecheck',
|
|
125
158
|
];
|
|
159
|
+
function sliceReleaseArtifactDependencies(input) {
|
|
160
|
+
if (input.project.root !== `packages/${input.project.name}` ||
|
|
161
|
+
!input.project.tags.includes('type:slice')) {
|
|
162
|
+
return [];
|
|
163
|
+
}
|
|
164
|
+
return [
|
|
165
|
+
'build',
|
|
166
|
+
{
|
|
167
|
+
params: 'ignore',
|
|
168
|
+
projects: [`@${input.project.name}/job-data-retention`],
|
|
169
|
+
target: 'build',
|
|
170
|
+
},
|
|
171
|
+
];
|
|
172
|
+
}
|
|
126
173
|
// These are execution signatures, not name heuristics. Generator changes that
|
|
127
174
|
// alter executor options or dependency closure must update this reviewed list;
|
|
128
175
|
// external Blueprint verification instead enters through the exact protected
|
|
129
176
|
// target-closure review passed to the registry below.
|
|
130
177
|
const TARGET_SIGNATURES = [
|
|
178
|
+
runCommandSignature('verify-local-browser', 'node scripts/verify-local-browser.mjs', { forwardAllArgs: false }),
|
|
131
179
|
runCommandSignature('api-contract-baseline', 'node --experimental-strip-types scripts/api-contract.mjs baseline', { forwardAllArgs: true }),
|
|
132
180
|
runCommandSignature('api-contract-check', 'node --experimental-strip-types scripts/api-contract.mjs check', { forwardAllArgs: false }),
|
|
133
181
|
runCommandSignature('api-contract-generate', 'node --experimental-strip-types scripts/api-contract.mjs generate', { forwardAllArgs: false }),
|
|
@@ -140,6 +188,14 @@ const TARGET_SIGNATURES = [
|
|
|
140
188
|
protectedBranch: 'develop',
|
|
141
189
|
protectedRef: 'refs/remotes/origin/develop',
|
|
142
190
|
}))),
|
|
191
|
+
executorSignature('blueprint-trust-check-main', '@empire-builder-kit/nx:blueprint-trust', exactOptions(() => ({
|
|
192
|
+
operation: 'adopt',
|
|
193
|
+
output: '.ebk/evidence/supply-chain/blueprint-trust.json',
|
|
194
|
+
protectedBranch: 'main',
|
|
195
|
+
protectedRef: 'refs/remotes/origin/main',
|
|
196
|
+
})), undefined, {
|
|
197
|
+
nonPlannableRationale: PROTECTED_WORKFLOW_ONLY_RATIONALE,
|
|
198
|
+
}),
|
|
143
199
|
executorSignature('blueprint-trust-check-protected', '@empire-builder-kit/nx:blueprint-trust', exactOptions(() => ({
|
|
144
200
|
operation: 'deploy',
|
|
145
201
|
output: '.ebk/evidence/supply-chain/blueprint-trust.json',
|
|
@@ -161,7 +217,7 @@ const TARGET_SIGNATURES = [
|
|
|
161
217
|
runCommandSignature('async-workflow-recovery-report', 'node --experimental-strip-types scripts/async-recovery.mjs report workflow-recovery', { forwardAllArgs: false }),
|
|
162
218
|
runCommandSignature('async-workflow-recovery-status', 'node --experimental-strip-types scripts/async-recovery.mjs status workflow-recovery', { forwardAllArgs: false }),
|
|
163
219
|
runCommandSignature('async-verify', 'node --experimental-strip-types scripts/async-contract.mjs', { forwardAllArgs: false }),
|
|
164
|
-
runCommandSignature('build', 'next build web', {
|
|
220
|
+
runCommandSignature('build', 'next build --webpack web', {
|
|
165
221
|
dependsOn: ['secret-guardrails', 'typecheck'],
|
|
166
222
|
env: { NODE_ENV: 'production' },
|
|
167
223
|
}),
|
|
@@ -170,14 +226,17 @@ const TARGET_SIGNATURES = [
|
|
|
170
226
|
runCommandSignature('contract-dependencies-check', 'node scripts/contract-dependencies.mjs check', { forwardAllArgs: false }),
|
|
171
227
|
runCommandSignature('contract-dependencies-sync', 'node scripts/contract-dependencies.mjs sync', { forwardAllArgs: false }),
|
|
172
228
|
runCommandSignature('container-release-amd64', 'node ../../tools/container-release.mjs platform linux/amd64', {
|
|
229
|
+
dependsOn: ['release-artifacts'],
|
|
173
230
|
forwardAllArgs: false,
|
|
174
231
|
nonPlannableRationale: PROTECTED_WORKFLOW_ONLY_RATIONALE,
|
|
175
232
|
}),
|
|
176
233
|
runCommandSignature('container-release-arm64', 'node ../../tools/container-release.mjs platform linux/arm64', {
|
|
234
|
+
dependsOn: ['release-artifacts'],
|
|
177
235
|
forwardAllArgs: false,
|
|
178
236
|
nonPlannableRationale: PROTECTED_WORKFLOW_ONLY_RATIONALE,
|
|
179
237
|
}),
|
|
180
238
|
runCommandSignature('container-release-assemble', 'node ../../tools/container-release.mjs assemble', {
|
|
239
|
+
dependsOn: ['release-artifacts'],
|
|
181
240
|
forwardAllArgs: false,
|
|
182
241
|
nonPlannableRationale: PROTECTED_WORKFLOW_ONLY_RATIONALE,
|
|
183
242
|
}),
|
|
@@ -204,11 +263,22 @@ const TARGET_SIGNATURES = [
|
|
|
204
263
|
runCommandSignature('data-restore-reconcile', 'node --experimental-strip-types scripts/data-restore-reconcile.mjs', { forwardAllArgs: true }),
|
|
205
264
|
runCommandSignature('data-retention', 'node --experimental-strip-types scripts/data-retention.mjs', { forwardAllArgs: true }),
|
|
206
265
|
runCommandSignature('deploy', 'node scripts/confirm-deploy.mjs', {
|
|
207
|
-
dependsOn:
|
|
266
|
+
dependsOn: (input) => [
|
|
267
|
+
{
|
|
268
|
+
params: 'forward',
|
|
269
|
+
target: sliceDeclaresSql(input)
|
|
270
|
+
? 'db-migrate'
|
|
271
|
+
: 'deploy-infrastructure',
|
|
272
|
+
},
|
|
273
|
+
],
|
|
208
274
|
forwardAllArgs: true,
|
|
209
275
|
}),
|
|
210
276
|
runCommandSignature('dev-prerequisite', 'node scripts/verify-live-mode.mjs', {
|
|
211
|
-
dependsOn:
|
|
277
|
+
dependsOn: (input) => [
|
|
278
|
+
...(sliceDeclaresSql(input) ? ['db-check'] : []),
|
|
279
|
+
'secret-guardrails',
|
|
280
|
+
'typecheck',
|
|
281
|
+
],
|
|
212
282
|
}),
|
|
213
283
|
runCommandSignature('frontend-boundaries', 'node scripts/frontend-boundaries.mjs --output=.ebk/evidence/frontend/frontend-boundaries.json', { forwardAllArgs: false }),
|
|
214
284
|
runCommandSignature('frontend-security-headers', 'node scripts/frontend-security-headers.mjs', {
|
|
@@ -251,8 +321,18 @@ const TARGET_SIGNATURES = [
|
|
|
251
321
|
runCommandSignature('reliability-remediation', 'node scripts/incident-remediation.mjs', { forwardAllArgs: false }),
|
|
252
322
|
runCommandSignature('reliability-report', 'node scripts/reliability-report.mjs', { forwardAllArgs: false }),
|
|
253
323
|
runCommandSignature('reliability-verify', 'node scripts/verify-reliability.mjs', { forwardAllArgs: false }),
|
|
254
|
-
runCommandSignature('release-artifacts', 'node --experimental-strip-types scripts/release-artifacts.mjs', {
|
|
255
|
-
|
|
324
|
+
runCommandSignature('release-artifacts', 'node --experimental-strip-types scripts/release-artifacts.mjs', {
|
|
325
|
+
dependsOn: sliceReleaseArtifactDependencies,
|
|
326
|
+
forwardAllArgs: false,
|
|
327
|
+
}),
|
|
328
|
+
runCommandSignature('release-candidate', 'node --experimental-strip-types scripts/release-candidate.mjs', {
|
|
329
|
+
dependsOn: [
|
|
330
|
+
'api-contract-check',
|
|
331
|
+
'release-artifacts',
|
|
332
|
+
'test-integration',
|
|
333
|
+
],
|
|
334
|
+
forwardAllArgs: false,
|
|
335
|
+
}),
|
|
256
336
|
runCommandSignature('release-lifecycle', 'node --experimental-strip-types scripts/release-lifecycle.mjs', { forwardAllArgs: false }),
|
|
257
337
|
runCommandSignature('release-manifest', 'node --experimental-strip-types scripts/release-manifest.mjs', { forwardAllArgs: false }),
|
|
258
338
|
runCommandSignature('release-rollout', 'node --experimental-strip-types scripts/release-rollout.mjs', { forwardAllArgs: false }),
|
|
@@ -285,42 +365,65 @@ const TARGET_SIGNATURES = [
|
|
|
285
365
|
nonPlannableRationale: PROTECTED_WORKFLOW_ONLY_RATIONALE,
|
|
286
366
|
workspaceRoot: true,
|
|
287
367
|
}),
|
|
368
|
+
runCommandSignature('stage-authority-render', 'node tools/stage-authority-render.mjs', {
|
|
369
|
+
forwardAllArgs: true,
|
|
370
|
+
workspaceRoot: true,
|
|
371
|
+
}),
|
|
288
372
|
runCommandSignature('workload-role-candidate-report', 'node tools/workload-role-baseline/report-candidate-bundle.mjs', { forwardAllArgs: true, workspaceRoot: true }),
|
|
289
373
|
runCommandSignature('workload-role-provisioner-build', 'node tools/workload-role-baseline/build.mjs', { workspaceRoot: true }),
|
|
290
374
|
runCommandSignature('verify', 'node tools/workspace-health.mjs', {
|
|
291
375
|
dependsOn: ['blueprint-trust-check', 'supply-chain-check'],
|
|
292
376
|
workspaceRoot: true,
|
|
293
377
|
}),
|
|
378
|
+
runCommandSignature('verify-proposed', 'node tools/workspace-health.mjs', {
|
|
379
|
+
dependsOn: ['supply-chain-check'],
|
|
380
|
+
workspaceRoot: true,
|
|
381
|
+
}),
|
|
294
382
|
runCommandSignature('workspace-health', 'node tools/workspace-health.mjs', {
|
|
295
383
|
workspaceRoot: true,
|
|
296
384
|
}),
|
|
297
|
-
runScriptSignature('build', (input) =>
|
|
298
|
-
|
|
299
|
-
|
|
385
|
+
runScriptSignature('build', (input) => {
|
|
386
|
+
if (input.project.tags.includes('scope:workspace')) {
|
|
387
|
+
return `nx run-many -t build --exclude=${input.project.name}`;
|
|
388
|
+
}
|
|
389
|
+
const dataRetentionJob = /^packages\/([^/]+)\/jobs\/data-retention$/u.exec(input.project.root);
|
|
390
|
+
if (dataRetentionJob) {
|
|
391
|
+
return input.project.name ===
|
|
392
|
+
`@${dataRetentionJob[1]}/job-data-retention`
|
|
393
|
+
? 'tsc -p tsconfig.build.json'
|
|
394
|
+
: undefined;
|
|
395
|
+
}
|
|
396
|
+
return input.project.root.includes('/services/') ||
|
|
300
397
|
input.project.root.includes('/jobs/')
|
|
301
398
|
? 'tsc -p tsconfig.json'
|
|
302
|
-
: undefined
|
|
399
|
+
: undefined;
|
|
400
|
+
}, { dependsOn: ['^build'] }),
|
|
303
401
|
runScriptSignature('docker-build', (input) => {
|
|
304
402
|
const match = /^packages\/([^/]+)\/(services|jobs)\/([^/]+)$/u.exec(input.project.root);
|
|
305
403
|
if (!match)
|
|
306
404
|
return undefined;
|
|
307
405
|
const [, slice, plural, workload] = match;
|
|
406
|
+
if (plural === 'jobs' && workload === 'data-retention') {
|
|
407
|
+
return input.project.name === `@${slice}/job-data-retention`
|
|
408
|
+
? `docker build -f packages/${slice}/jobs/data-retention/Dockerfile -t ${slice}-data-retention:local ../../../..`
|
|
409
|
+
: undefined;
|
|
410
|
+
}
|
|
308
411
|
const kind = plural === 'services' ? 'service' : 'job';
|
|
309
412
|
return (`docker build -f packages/${slice}/${plural}/${workload}/Dockerfile ` +
|
|
310
413
|
`-t ${slice}-${kind}-${workload}:local ../../../..`);
|
|
311
|
-
}, { nonPlannableRationale:
|
|
414
|
+
}, { nonPlannableRationale: exports.DOCKER_BUILD_OWNER_RATIONALE }),
|
|
312
415
|
runScriptSignature('dev', (input) => input.project.root.includes('/services/')
|
|
313
416
|
? 'node --experimental-strip-types src/main.ts'
|
|
314
417
|
: input.project.root.includes('/jobs/')
|
|
315
418
|
? 'node --experimental-strip-types src/run.ts'
|
|
316
|
-
: undefined, { nonPlannableRationale:
|
|
419
|
+
: undefined, { nonPlannableRationale: exports.WORKLOAD_DEV_OWNER_RATIONALE }),
|
|
317
420
|
runScriptSignature('format', (input) => input.project.tags.includes('scope:workspace')
|
|
318
421
|
? 'nx format:write'
|
|
319
|
-
: undefined, { nonPlannableRationale:
|
|
422
|
+
: undefined, { nonPlannableRationale: exports.FORMAT_WRITE_OWNER_RATIONALE }),
|
|
320
423
|
runScriptSignature('format:check', (input) => input.project.tags.includes('scope:workspace')
|
|
321
|
-
? 'nx format:check'
|
|
424
|
+
? 'nx format:check --all'
|
|
322
425
|
: undefined),
|
|
323
|
-
runScriptSignature('graph', (input) => input.project.tags.includes('scope:workspace') ? 'nx graph' : undefined, { nonPlannableRationale:
|
|
426
|
+
runScriptSignature('graph', (input) => input.project.tags.includes('scope:workspace') ? 'nx graph' : undefined, { nonPlannableRationale: exports.GRAPH_INTERACTIVE_RATIONALE }),
|
|
324
427
|
runScriptSignature('health', (input) => input.project.tags.includes('scope:workspace')
|
|
325
428
|
? `nx run ${input.project.name}:workspace-health`
|
|
326
429
|
: undefined),
|
|
@@ -347,9 +450,9 @@ const TARGET_SIGNATURES = [
|
|
|
347
450
|
? 'pnpm run lint && pnpm run typecheck && pnpm test && pnpm run build'
|
|
348
451
|
: undefined),
|
|
349
452
|
executorSignature('deployment-plan', '@empire-builder-kit/nx:deployment-plan', exactOptions(() => ({ action: 'deploy', stage: 'staging' }))),
|
|
453
|
+
executorSignature('deploy-local', '@empire-builder-kit/nx:local-deploy', exactOptions(() => ({ stage: 'development' })), ['workspace-health'], { nonPlannableRationale: exports.DEPLOY_LOCAL_OWNER_RATIONALE }),
|
|
350
454
|
executorSignature('dev', '@empire-builder-kit/nx:fleet', exactOptions(() => ({})), undefined, {
|
|
351
455
|
continuous: true,
|
|
352
|
-
nonPlannableRationale: LOCAL_OWNER_ONLY_RATIONALE,
|
|
353
456
|
}),
|
|
354
457
|
executorSignature('developer-context', '@empire-builder-kit/nx:developer-context', exactOptions(() => ({}))),
|
|
355
458
|
executorSignature('dev-doctor', '@empire-builder-kit/nx:dev-doctor', exactOptions(() => ({}))),
|
|
@@ -357,14 +460,29 @@ const TARGET_SIGNATURES = [
|
|
|
357
460
|
executorSignature('github-bootstrap', '@empire-builder-kit/nx:github-bootstrap', exactOptions(() => ({}))),
|
|
358
461
|
executorSignature('work-markers', '@empire-builder-kit/nx:work-markers', exactOptions(() => ({}))),
|
|
359
462
|
executorSignature('secret-guardrails', '@empire-builder-kit/nx:secret-guardrails', exactOptions(() => ({}))),
|
|
463
|
+
executorSignature('secret-initialize', '@empire-builder-kit/nx:secret-initialize', exactOptions(() => ({
|
|
464
|
+
logicalName: 'GeneratedPerformanceLoadHmacKeys',
|
|
465
|
+
stage: 'production',
|
|
466
|
+
}))),
|
|
360
467
|
executorSignature('secret-metadata', '@empire-builder-kit/nx:secret-metadata', exactOptions(() => ({ stage: 'development' }))),
|
|
361
|
-
executorSignature('dev-cleanup', 'nx:
|
|
468
|
+
executorSignature('dev-cleanup', 'nx:run-commands', exactOptions((input) => ({
|
|
469
|
+
commands: [
|
|
470
|
+
...(sliceDeclaresSql(input)
|
|
471
|
+
? [`pnpm nx run ${input.project.name}:db-local-down`]
|
|
472
|
+
: []),
|
|
473
|
+
`pnpm nx run ${input.project.name}:secret-personal-down`,
|
|
474
|
+
],
|
|
475
|
+
cwd: '.',
|
|
476
|
+
forwardAllArgs: false,
|
|
477
|
+
parallel: false,
|
|
478
|
+
})), ['dev-task-cleanup']),
|
|
479
|
+
executorSignature('dev-task-cleanup', '@empire-builder-kit/nx:dev-task-cleanup', exactOptions(() => ({}))),
|
|
362
480
|
executorSignature('dev', '@empire-builder-kit/nx:dev', exactOptions((input) => ({
|
|
363
481
|
cwd: input.project.root,
|
|
364
482
|
stageMode: 'consumer',
|
|
365
|
-
})), [
|
|
483
|
+
})), (input) => [
|
|
366
484
|
'dev-prerequisite',
|
|
367
|
-
'db-local-migrate',
|
|
485
|
+
...(sliceDeclaresSql(input) ? ['db-local-migrate'] : []),
|
|
368
486
|
{ params: 'forward', target: 'foundation-preflight' },
|
|
369
487
|
]),
|
|
370
488
|
executorSignature('deploy-infrastructure', '@empire-builder-kit/nx:deploy', exactOptions((input) => ({
|
|
@@ -378,13 +496,11 @@ const TARGET_SIGNATURES = [
|
|
|
378
496
|
stageMode: 'foundation',
|
|
379
497
|
})), ['verify', { params: 'forward', target: 'profile-preflight' }]),
|
|
380
498
|
executorSignature('infrastructure-plan', '@empire-builder-kit/nx:infrastructure-plan', exactOptions((input) => ({
|
|
381
|
-
action: 'deploy',
|
|
382
499
|
cwd: input.project.root,
|
|
383
500
|
stage: 'development',
|
|
384
501
|
stageMode: 'consumer',
|
|
385
502
|
}))),
|
|
386
503
|
executorSignature('infrastructure-plan', '@empire-builder-kit/nx:infrastructure-plan', exactOptions((input) => ({
|
|
387
|
-
action: 'deploy',
|
|
388
504
|
cwd: input.project.root,
|
|
389
505
|
stage: 'development',
|
|
390
506
|
stageMode: 'foundation',
|
|
@@ -421,6 +537,7 @@ const TARGET_SIGNATURES = [
|
|
|
421
537
|
'capabilities,contract,deployIfMissing,foundationProject,stage', [{ params: 'ignore', projects: ['foundation'], target: 'verify' }]),
|
|
422
538
|
executorSignature('profile-preflight', '@empire-builder-kit/nx:foundation-profile-preflight', exactOptions(() => ({ stage: 'development' }))),
|
|
423
539
|
executorSignature('remove-preflight', '@empire-builder-kit/nx:foundation-remove-preflight', exactOptions(() => ({ stage: 'development' }))),
|
|
540
|
+
executorSignature('router-waf-rehearsal', '@empire-builder-kit/nx:router-waf-rehearsal', exactOptions(() => ({})), undefined, { nonPlannableRationale: exports.ROUTER_WAF_REHEARSAL_OWNER_RATIONALE }),
|
|
424
541
|
];
|
|
425
542
|
/**
|
|
426
543
|
* Rules are deliberately ordered from highest/conservative authority to
|
|
@@ -466,6 +583,8 @@ const TARGET_RULES = [
|
|
|
466
583
|
!suffix('-report', '-status')(targetName)),
|
|
467
584
|
requiredVerification: ['verify', 'protected-proof'],
|
|
468
585
|
},
|
|
586
|
+
// These two apply shared GitHub repository or AWS secret-container state
|
|
587
|
+
// outside the personal development stage, so they keep an approval point.
|
|
469
588
|
{
|
|
470
589
|
approvalRequired: true,
|
|
471
590
|
authority: 'protected-propose',
|
|
@@ -481,26 +600,59 @@ const TARGET_RULES = [
|
|
|
481
600
|
'docs/developer-agent.md',
|
|
482
601
|
],
|
|
483
602
|
evidenceClasses: ['protected-promotion-proof'],
|
|
484
|
-
matches:
|
|
603
|
+
matches: exact('github-bootstrap', 'secret-initialize'),
|
|
604
|
+
requiredVerification: ['source', 'protected-proof'],
|
|
605
|
+
},
|
|
606
|
+
// Report-first plans, collectors and deployed verification read and
|
|
607
|
+
// propose only; staging and production reach stays bounded by the
|
|
608
|
+
// deployment role, not by a plan-time approval point.
|
|
609
|
+
{
|
|
610
|
+
approvalRequired: false,
|
|
611
|
+
authority: 'protected-propose',
|
|
612
|
+
contractClasses: [
|
|
613
|
+
'configuration',
|
|
614
|
+
'infrastructure',
|
|
615
|
+
'reliability',
|
|
616
|
+
'performance',
|
|
617
|
+
],
|
|
618
|
+
documentationPaths: [
|
|
619
|
+
'AGENTS.md',
|
|
620
|
+
'docs/git-workflow.md',
|
|
621
|
+
'docs/developer-agent.md',
|
|
622
|
+
],
|
|
623
|
+
evidenceClasses: ['protected-promotion-proof'],
|
|
624
|
+
matches: (targetName) => exact('deployment-plan', 'infrastructure-plan', 'infrastructure-drift', 'ecr-inspector-collect', 'performance-cost-collect', 'reliability-deployed-verify', 'reliability-diagnostic', 'reliability-exercise-collect', 'secret-metadata', 'smoke-deployed', 'stage-authority-render')(targetName),
|
|
485
625
|
requiredVerification: ['source', 'protected-proof'],
|
|
486
626
|
},
|
|
487
627
|
{
|
|
488
628
|
applicableStages: ['development'],
|
|
489
|
-
approvalRequired:
|
|
629
|
+
approvalRequired: false,
|
|
490
630
|
authority: 'development-mutate',
|
|
491
631
|
contractClasses: ['database'],
|
|
492
632
|
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
493
633
|
evidenceClasses: ['local-integration'],
|
|
494
|
-
matches: exact('test-integration'),
|
|
634
|
+
matches: exact('test-integration', 'verify-local-browser'),
|
|
495
635
|
requiredVerification: ['local-integration'],
|
|
496
636
|
},
|
|
637
|
+
// dev-setup can reach host trust-store installation and privileged port
|
|
638
|
+
// forwarding (--trust, --portless): an OS-level consent boundary.
|
|
497
639
|
{
|
|
498
640
|
approvalRequired: true,
|
|
499
641
|
authority: 'development-mutate',
|
|
500
642
|
contractClasses: ['database', 'infrastructure'],
|
|
501
643
|
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
502
644
|
evidenceClasses: ['local-integration'],
|
|
503
|
-
matches: exact('dev
|
|
645
|
+
matches: exact('dev-setup'),
|
|
646
|
+
requiredVerification: ['local-integration'],
|
|
647
|
+
},
|
|
648
|
+
// Personal development-stage work under the human's own bounded identity.
|
|
649
|
+
{
|
|
650
|
+
approvalRequired: false,
|
|
651
|
+
authority: 'development-mutate',
|
|
652
|
+
contractClasses: ['database', 'infrastructure'],
|
|
653
|
+
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
654
|
+
evidenceClasses: ['local-integration'],
|
|
655
|
+
matches: exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'db-local-down', 'db-local-migrate', 'db-local-up', 'secret-personal-down'),
|
|
504
656
|
requiredVerification: ['local-integration'],
|
|
505
657
|
},
|
|
506
658
|
{
|
|
@@ -515,7 +667,7 @@ const TARGET_RULES = [
|
|
|
515
667
|
],
|
|
516
668
|
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
517
669
|
evidenceClasses: ['source'],
|
|
518
|
-
matches: (targetName) => exact('api-contract-baseline', 'api-contract-generate', 'authorization-check', 'build', 'configuration-expected', 'contract-dependencies-sync', 'db-generate', 'ecr-scan-applicability', 'format:check', 'frontend-visual', 'frontend-visual-update', 'install-git-hooks', 'performance-tag-coverage', 'performance-unit-cost', 'release-artifacts', 'release-candidate', 'release-manifest', 'smoke-deployed-check', 'supply-chain-scan', 'test', 'typecheck', 'verify', 'workload-role-provisioner-build')(targetName),
|
|
670
|
+
matches: (targetName) => exact('api-contract-baseline', 'api-contract-generate', 'authorization-check', 'build', 'configuration-expected', 'contract-dependencies-sync', 'db-generate', 'ecr-scan-applicability', 'format:check', 'frontend-visual', 'frontend-visual-update', 'install-git-hooks', 'performance-tag-coverage', 'performance-unit-cost', 'release-artifacts', 'release-candidate', 'release-manifest', 'smoke-deployed-check', 'supply-chain-scan', 'test', 'typecheck', 'verify', 'verify-proposed', 'workload-role-provisioner-build')(targetName),
|
|
519
671
|
requiredVerification: ['source'],
|
|
520
672
|
},
|
|
521
673
|
{
|
|
@@ -540,9 +692,11 @@ const TARGET_RULES = [
|
|
|
540
692
|
* Static invocable operations contain complete argv only. Source edits use a
|
|
541
693
|
* commandless, project-scoped identity. Stable generators use commandless
|
|
542
694
|
* typed templates that planning binds to exact normalized argv. Mutable dev
|
|
543
|
-
* configuration and human-
|
|
695
|
+
* configuration and human-supplied secret set/remove stay with their direct
|
|
696
|
+
* owner. Value-blind generated-secret initialization is admitted only through
|
|
697
|
+
* its exact report-first Nx target.
|
|
544
698
|
*/
|
|
545
|
-
function localDevOperations(projects, externalOwnedProjectNames) {
|
|
699
|
+
function localDevOperations(projects, externalOwnedProjectNames, developmentClosures, blockedDevelopment) {
|
|
546
700
|
const sliceNames = projects
|
|
547
701
|
.map(({ context }) => context)
|
|
548
702
|
.filter(({ tags }) => tags.includes('type:slice'))
|
|
@@ -563,7 +717,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
|
|
|
563
717
|
});
|
|
564
718
|
const lifecycle = (command, slice) => ({
|
|
565
719
|
applicableStages: ['development'],
|
|
566
|
-
approvalRequired:
|
|
720
|
+
approvalRequired: false,
|
|
567
721
|
authority: 'development-mutate',
|
|
568
722
|
command: {
|
|
569
723
|
args: ['dev', command, slice, '--no-wait', '--json'],
|
|
@@ -578,7 +732,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
|
|
|
578
732
|
id: `ebk-dev:${command}:${slice}`,
|
|
579
733
|
owner: 'ebk-reconciler',
|
|
580
734
|
policyLifecycleAction: 'dev',
|
|
581
|
-
projects: [slice],
|
|
735
|
+
projects: developmentClosures.get(slice) ?? [slice],
|
|
582
736
|
requiredVerification: ['ebk-dev:doctor'],
|
|
583
737
|
});
|
|
584
738
|
return [
|
|
@@ -593,7 +747,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
|
|
|
593
747
|
readOnly('ebk-dev:status', ['dev', 'status', '--json']),
|
|
594
748
|
...sliceNames.flatMap((slice) => [
|
|
595
749
|
readOnly(`ebk-dev:logs:${slice}`, ['dev', 'logs', slice, '--limit=200', '--json'], [slice]),
|
|
596
|
-
...(externalOwnedProjectNames.has(slice)
|
|
750
|
+
...(externalOwnedProjectNames.has(slice) || blockedDevelopment.has(slice)
|
|
597
751
|
? []
|
|
598
752
|
: [
|
|
599
753
|
lifecycle('up', slice),
|
|
@@ -754,7 +908,17 @@ function reviewedExternalDependencies(input) {
|
|
|
754
908
|
}
|
|
755
909
|
function dependencyTargets(input, dependsOn, availableProjects, availableTargets) {
|
|
756
910
|
const targets = [];
|
|
757
|
-
|
|
911
|
+
// The exact generated sequential composite invokes these targets after its
|
|
912
|
+
// native prerequisite; include their authority even though they are not
|
|
913
|
+
// sibling Nx prerequisites (which would execute before native cleanup).
|
|
914
|
+
const executionDependencies = input.targetName === 'dev-cleanup'
|
|
915
|
+
? [
|
|
916
|
+
...dependsOn,
|
|
917
|
+
...(sliceDeclaresSql(input) ? ['db-local-down'] : []),
|
|
918
|
+
'secret-personal-down',
|
|
919
|
+
]
|
|
920
|
+
: dependsOn;
|
|
921
|
+
for (const dependency of executionDependencies) {
|
|
758
922
|
if (typeof dependency === 'string') {
|
|
759
923
|
if (dependency.startsWith('^')) {
|
|
760
924
|
const targetName = dependency.slice(1);
|
|
@@ -887,7 +1051,10 @@ function operationForTarget(input, forwardedStage, reviewedExternal = false) {
|
|
|
887
1051
|
: ALL_CANONICAL_STAGES;
|
|
888
1052
|
return {
|
|
889
1053
|
applicableStages,
|
|
890
|
-
|
|
1054
|
+
// Development needs no lifecycle acknowledgement (the governed executors
|
|
1055
|
+
// prompt only for staging and production); protected stages never reach
|
|
1056
|
+
// this branch and keep the rule's approval.
|
|
1057
|
+
approvalRequired: developmentLifecycle ? false : rule.approvalRequired,
|
|
891
1058
|
authority,
|
|
892
1059
|
...(authority === 'protected-mutate' || authority === 'destructive'
|
|
893
1060
|
? {}
|
|
@@ -988,12 +1155,34 @@ function composeTargetOperation(operation, dependencies) {
|
|
|
988
1155
|
function sourceEditOperations(projects, authenticatedTargets, workspaceVerification) {
|
|
989
1156
|
return projects.flatMap(({ context }) => {
|
|
990
1157
|
const projectVerification = `${context.name}:verify`;
|
|
991
|
-
const
|
|
1158
|
+
const fallbackVerification = context.targets.includes('verify')
|
|
992
1159
|
? authenticatedTargets.has(projectVerification)
|
|
993
1160
|
? projectVerification
|
|
994
1161
|
: undefined
|
|
995
1162
|
: workspaceVerification;
|
|
996
|
-
|
|
1163
|
+
const featureTargets = ['lint', 'secret-guardrails', 'test', 'typecheck']
|
|
1164
|
+
.filter((target) => context.targets.includes(target))
|
|
1165
|
+
.map((target) => `${context.name}:${target}`);
|
|
1166
|
+
// Never substitute an unauthenticated check with a weaker fallback.
|
|
1167
|
+
if (featureTargets.some((target) => !authenticatedTargets.has(target)))
|
|
1168
|
+
return [];
|
|
1169
|
+
const workspace = workspaceVerification?.slice(0, workspaceVerification.lastIndexOf(':'));
|
|
1170
|
+
const ownershipChecks = workspace
|
|
1171
|
+
? ['work-markers', 'workspace-health']
|
|
1172
|
+
.map((target) => `${workspace}:${target}`)
|
|
1173
|
+
.filter((target) => authenticatedTargets.has(target))
|
|
1174
|
+
: [];
|
|
1175
|
+
const requiredVerification = [
|
|
1176
|
+
...new Set([
|
|
1177
|
+
...(featureTargets.length > 0
|
|
1178
|
+
? featureTargets
|
|
1179
|
+
: fallbackVerification
|
|
1180
|
+
? [fallbackVerification]
|
|
1181
|
+
: []),
|
|
1182
|
+
...ownershipChecks,
|
|
1183
|
+
]),
|
|
1184
|
+
].sort();
|
|
1185
|
+
if (requiredVerification.length === 0)
|
|
997
1186
|
return [];
|
|
998
1187
|
return [
|
|
999
1188
|
{
|
|
@@ -1006,7 +1195,7 @@ function sourceEditOperations(projects, authenticatedTargets, workspaceVerificat
|
|
|
1006
1195
|
id: `source-edit:${context.name}`,
|
|
1007
1196
|
owner: 'source-edit',
|
|
1008
1197
|
projects: [context.name],
|
|
1009
|
-
requiredVerification
|
|
1198
|
+
requiredVerification,
|
|
1010
1199
|
},
|
|
1011
1200
|
];
|
|
1012
1201
|
});
|
|
@@ -1015,10 +1204,38 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1015
1204
|
const namedInputRuntimeDetected = options.namedInputDefinitions.some(containsRuntimeInput);
|
|
1016
1205
|
const exposedProjectNames = new Set(options.exposedProjectNames ?? projects.map(({ context }) => context.name));
|
|
1017
1206
|
const externalOwnedProjectNames = new Set(options.externalOwnedProjectNames);
|
|
1207
|
+
const missingFleetSlice = options.allSliceProjectNames?.find((name) => !projects.some(({ context }) => context.name === name));
|
|
1208
|
+
const implicitFleetCrossesExternalOwnership = (input) => externalOwnedProjectNames.size > 0 &&
|
|
1209
|
+
input.target.executor === '@empire-builder-kit/nx:fleet';
|
|
1018
1210
|
const exposedProjects = projects.filter(({ context }) => exposedProjectNames.has(context.name));
|
|
1019
|
-
const operations = [
|
|
1020
|
-
|
|
1021
|
-
|
|
1211
|
+
const operations = [];
|
|
1212
|
+
const adapters = new Map();
|
|
1213
|
+
const developmentClosures = new Map();
|
|
1214
|
+
const developmentReasons = new Map();
|
|
1215
|
+
for (const project of projects) {
|
|
1216
|
+
if (project.localDev === undefined)
|
|
1217
|
+
continue;
|
|
1218
|
+
try {
|
|
1219
|
+
adapters.set(project.context.name, (0, contracts_js_1.validateLocalDevAdapter)(project.localDev));
|
|
1220
|
+
}
|
|
1221
|
+
catch {
|
|
1222
|
+
developmentReasons.set(project.context.name, `Slice ${project.context.name} has invalid local-development metadata; repair its versioned adapter before planning development.`);
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
for (const name of adapters.keys()) {
|
|
1226
|
+
try {
|
|
1227
|
+
const closure = (0, contracts_js_1.resolveFleetSliceDependencies)(adapters, [name]);
|
|
1228
|
+
developmentClosures.set(name, closure);
|
|
1229
|
+
const external = closure.find((dependency) => externalOwnedProjectNames.has(dependency));
|
|
1230
|
+
if (external)
|
|
1231
|
+
developmentReasons.set(name, options.externalOwnershipHistoryComplete === false
|
|
1232
|
+
? `Slice ${name} has history-unverified dependency ${external}; protected external-Blueprint history is incomplete. Retained-plan execution is unavailable until the configured protected history is available. Ordinary feature work may use the documented typed generator and inspected seeded/user-owned surfaces with focused Nx checks; do not invent external Blueprint trust.`
|
|
1233
|
+
: `Slice ${name} requires external-owned dependency ${external}; use its explicit Blueprint owner. External development contracts are not authenticated by this operation registry.`);
|
|
1234
|
+
}
|
|
1235
|
+
catch {
|
|
1236
|
+
developmentReasons.set(name, `Slice ${name} has an unresolved, cyclic, or invalid dependency Slice; repair its declared dependencySlices before planning development.`);
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1022
1239
|
const nonPlannableTargets = [];
|
|
1023
1240
|
const unsupportedTargets = [];
|
|
1024
1241
|
const orderedProjects = [...projects].sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.context.name, right.context.name));
|
|
@@ -1027,7 +1244,7 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1027
1244
|
for (const [targetName, target] of Object.entries(project.targets)) {
|
|
1028
1245
|
targetInputs.set(`${project.context.name}:${targetName}`, {
|
|
1029
1246
|
namedInputRuntimeDetected,
|
|
1030
|
-
project: project.context,
|
|
1247
|
+
project: { ...project.context, targets: Object.keys(project.targets) },
|
|
1031
1248
|
target,
|
|
1032
1249
|
targetName,
|
|
1033
1250
|
});
|
|
@@ -1078,7 +1295,10 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1078
1295
|
authentication.set(id, false);
|
|
1079
1296
|
return false;
|
|
1080
1297
|
}
|
|
1081
|
-
if (input.namedInputRuntimeDetected
|
|
1298
|
+
if (input.namedInputRuntimeDetected ||
|
|
1299
|
+
(input.target.executor === '@empire-builder-kit/nx:fleet' &&
|
|
1300
|
+
missingFleetSlice !== undefined) ||
|
|
1301
|
+
implicitFleetCrossesExternalOwnership(input)) {
|
|
1082
1302
|
authentication.set(id, false);
|
|
1083
1303
|
return false;
|
|
1084
1304
|
}
|
|
@@ -1112,6 +1332,35 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1112
1332
|
}
|
|
1113
1333
|
const nextActive = new Set(active);
|
|
1114
1334
|
nextActive.add(id);
|
|
1335
|
+
if (input.target.executor === '@empire-builder-kit/nx:fleet') {
|
|
1336
|
+
for (const project of projects.filter(({ context }) => context.tags.includes('type:slice'))) {
|
|
1337
|
+
if (!authenticate(`${project.context.name}:${adapters.get(project.context.name)?.target ?? 'dev'}`, nextActive)) {
|
|
1338
|
+
authentication.set(id, false);
|
|
1339
|
+
return false;
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
if (input.targetName === (adapters.get(input.project.name)?.target ?? 'dev')) {
|
|
1344
|
+
if (developmentReasons.has(input.project.name)) {
|
|
1345
|
+
authentication.set(id, false);
|
|
1346
|
+
return false;
|
|
1347
|
+
}
|
|
1348
|
+
for (const name of developmentClosures.get(input.project.name) ?? []) {
|
|
1349
|
+
if (name === input.project.name)
|
|
1350
|
+
continue;
|
|
1351
|
+
const dependencyAdapter = adapters.get(name);
|
|
1352
|
+
if (!dependencyAdapter) {
|
|
1353
|
+
authentication.set(id, false);
|
|
1354
|
+
return false;
|
|
1355
|
+
}
|
|
1356
|
+
const dependencyId = `${name}:${dependencyAdapter.target}`;
|
|
1357
|
+
if (!authenticate(dependencyId, nextActive)) {
|
|
1358
|
+
developmentReasons.set(input.project.name, `Slice ${input.project.name} requires non-plannable dependency ${dependencyId}; use that dependency's explicit owner before planning development.`);
|
|
1359
|
+
authentication.set(id, false);
|
|
1360
|
+
return false;
|
|
1361
|
+
}
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1115
1364
|
const authenticated = dependencies.every((dependency) => authenticate(dependency.id, nextActive));
|
|
1116
1365
|
authentication.set(id, authenticated);
|
|
1117
1366
|
return authenticated;
|
|
@@ -1148,7 +1397,24 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1148
1397
|
composedInvocations.set(memoKey, null);
|
|
1149
1398
|
return undefined;
|
|
1150
1399
|
}
|
|
1151
|
-
const
|
|
1400
|
+
const allDependencyTargets = [...dependencyTargetsForOperation];
|
|
1401
|
+
const developmentProjects = input.target.executor === '@empire-builder-kit/nx:fleet'
|
|
1402
|
+
? projects
|
|
1403
|
+
.filter(({ context }) => context.tags.includes('type:slice'))
|
|
1404
|
+
.map(({ context }) => context.name)
|
|
1405
|
+
: input.targetName === adapters.get(input.project.name)?.target
|
|
1406
|
+
? (developmentClosures.get(input.project.name) ?? []).filter((name) => name !== input.project.name)
|
|
1407
|
+
: [];
|
|
1408
|
+
for (const name of developmentProjects) {
|
|
1409
|
+
const dependencyId = `${name}:${adapters.get(name)?.target ?? 'dev'}`;
|
|
1410
|
+
if (!allDependencyTargets.some(({ id }) => id === dependencyId)) {
|
|
1411
|
+
allDependencyTargets.push({
|
|
1412
|
+
id: dependencyId,
|
|
1413
|
+
params: 'ignore',
|
|
1414
|
+
});
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
const dependencies = allDependencyTargets.map((dependency) => {
|
|
1152
1418
|
const composed = composeInvocation(dependency.id, dependency.params === 'forward' ? forwardedStage : undefined);
|
|
1153
1419
|
if (!composed)
|
|
1154
1420
|
return undefined;
|
|
@@ -1209,6 +1475,12 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1209
1475
|
}
|
|
1210
1476
|
}
|
|
1211
1477
|
const authenticatedTargets = new Set([...targetInputs.keys()].filter((target) => compose(target) !== undefined));
|
|
1478
|
+
const blockedDevelopment = new Set(developmentReasons.keys());
|
|
1479
|
+
for (const [name, adapter] of adapters) {
|
|
1480
|
+
if (!authenticatedTargets.has(`${name}:${adapter.target}`))
|
|
1481
|
+
blockedDevelopment.add(name);
|
|
1482
|
+
}
|
|
1483
|
+
operations.push(...localDevOperations(exposedProjects, externalOwnedProjectNames, developmentClosures, blockedDevelopment));
|
|
1212
1484
|
operations.push(...sourceEditOperations(exposedProjects, authenticatedTargets, workspaceVerification));
|
|
1213
1485
|
for (const project of orderedProjects) {
|
|
1214
1486
|
if (!exposedProjectNames.has(project.context.name))
|
|
@@ -1217,6 +1489,27 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1217
1489
|
const target = `${project.context.name}:${targetName}`;
|
|
1218
1490
|
const input = targetInputs.get(target);
|
|
1219
1491
|
const signature = input ? authenticatedTargetSignature(input) : undefined;
|
|
1492
|
+
if (input?.target.executor === '@empire-builder-kit/nx:fleet' &&
|
|
1493
|
+
missingFleetSlice !== undefined) {
|
|
1494
|
+
nonPlannableTargets.push({
|
|
1495
|
+
target,
|
|
1496
|
+
rationale: `Root Fleet development implicitly selects Slice ${missingFleetSlice} outside this bounded context. Select an owned Slice ebk-dev operation or inspect the full development target inventory first.`,
|
|
1497
|
+
});
|
|
1498
|
+
continue;
|
|
1499
|
+
}
|
|
1500
|
+
const developmentReason = developmentReasons.get(project.context.name);
|
|
1501
|
+
if (developmentReason &&
|
|
1502
|
+
targetName === (adapters.get(project.context.name)?.target ?? 'dev')) {
|
|
1503
|
+
nonPlannableTargets.push({ target, rationale: developmentReason });
|
|
1504
|
+
continue;
|
|
1505
|
+
}
|
|
1506
|
+
if (input && signature && implicitFleetCrossesExternalOwnership(input)) {
|
|
1507
|
+
nonPlannableTargets.push({
|
|
1508
|
+
target,
|
|
1509
|
+
rationale: 'This root Fleet target implicitly selects all Slices, including external-owned Blueprint targets outside the authenticated development execution boundary. Select an owned Slice ebk-dev operation or require an explicit external Blueprint development contract from its owner (Milestone 4).',
|
|
1510
|
+
});
|
|
1511
|
+
continue;
|
|
1512
|
+
}
|
|
1220
1513
|
if (signature?.nonPlannableRationale &&
|
|
1221
1514
|
!externalOwnedProjectNames.has(project.context.name)) {
|
|
1222
1515
|
nonPlannableTargets.push({
|