@empire-builder-kit/nx 1.0.0-rc.37 → 1.0.0-rc.39
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 +5 -0
- package/generators.json +10 -0
- package/package.json +20 -3
- package/src/aws-authority/index.d.ts +1 -0
- package/src/aws-authority/index.js +1 -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 +11 -3
- package/src/aws-authority/stage-authority.js +615 -29
- 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 +7 -1
- package/src/cli/main.js +128 -20
- package/src/cli/output.d.ts +1 -1
- package/src/developer-agent/context.js +41 -9
- package/src/developer-agent/generator-planning.js +16 -2
- 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 +4 -2
- package/src/developer-agent/operation-registry.d.ts +5 -0
- package/src/developer-agent/operation-registry.js +179 -23
- 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 +20 -8
- package/src/developer-agent/workspace-inspection.js +37 -3
- package/src/executors/deployment-plan/deployment-plan.d.ts +2 -0
- package/src/executors/deployment-plan/deployment-plan.js +51 -4
- 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-remove-preflight/foundation-remove-preflight.js +28 -1
- package/src/executors/local-deploy/local-deploy.d.ts +8 -1
- package/src/executors/local-deploy/local-deploy.js +97 -24
- package/src/executors/local-deploy/schema.json +8 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +30 -18
- package/src/executors/sst-lifecycle/governed-native-operation.d.ts +2 -0
- package/src/executors/sst-lifecycle/governed-native-operation.js +9 -0
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +5 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +220 -32
- package/src/executors/sst-lifecycle/sst-environment-source.d.ts +8 -0
- package/src/executors/sst-lifecycle/sst-environment-source.js +54 -0
- package/src/executors/sst-lifecycle/task-unlock.d.ts +15 -0
- package/src/executors/sst-lifecycle/task-unlock.js +126 -0
- 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 +1 -0
- package/src/foundation/index.js +1 -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/preflight.js +37 -18
- package/src/foundation/private-smoke-access.js +10 -2
- package/src/foundation/private-smoke-admission.d.ts +3 -1
- package/src/foundation/private-smoke-admission.js +29 -8
- package/src/foundation/private-smoke-control-plane.js +17 -6
- 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 +13 -8
- package/src/foundation/requirements.d.ts +3 -3
- package/src/foundation/requirements.js +24 -12
- package/src/foundation/router-waf.d.ts +1 -0
- package/src/foundation/router-waf.js +14 -1
- 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.js +24 -1
- package/src/generators/logging-registry.d.ts +2 -0
- package/src/generators/logging-registry.js +22 -0
- package/src/generators/preset/workspace-files-adopter-skills.d.ts +7 -0
- package/src/generators/preset/workspace-files-adopter-skills.js +301 -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.js +40 -13
- package/src/generators/preset/workspace-files-performance-load.js +8 -0
- package/src/generators/preset/workspace-files-stage-authority.js +40 -1
- package/src/generators/preset/workspace-files-thin-deploy.js +66 -34
- package/src/generators/preset/workspace-files-thin-docs.js +64 -18
- package/src/generators/preset/workspace-files.d.ts +4 -0
- package/src/generators/preset/workspace-files.js +159 -91
- package/src/generators/repository-policy/repository-policy.js +37 -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 +47 -389
- package/src/generators/slice/built-in-plan-async-work-files.js +19 -1912
- package/src/generators/slice/built-in-plan-authorization-files.js +92 -329
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +36 -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 +1 -1
- package/src/generators/slice/built-in-plan-background-work-files.js +15 -5
- package/src/generators/slice/built-in-plan-data-deletion-files.js +2 -830
- package/src/generators/slice/built-in-plan-data-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-data-files.js +61 -1164
- 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 +18 -2
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +7 -2446
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +30 -6
- package/src/generators/slice/built-in-plan-data-rights-files.js +6 -4482
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +4 -15
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -1
- package/src/generators/slice/built-in-plan-foundation-files.js +34 -10
- package/src/generators/slice/built-in-plan-frontend-files.js +2 -2
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +180 -522
- 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 +120 -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 +140 -28
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-native-runtime-authority-files.js +36 -19
- package/src/generators/slice/built-in-plan-operations-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +89 -50
- package/src/generators/slice/built-in-plan-performance-files.js +84 -1010
- package/src/generators/slice/built-in-plan-project-files.js +116 -67
- package/src/generators/slice/built-in-plan-release-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-release-files.js +64 -15
- package/src/generators/slice/built-in-plan-reliability-files.js +54 -28
- 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 +257 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-testing-files.js +184 -132
- 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 +1 -1
- package/src/generators/slice/built-in-plan-thin-release-files.js +35 -2
- package/src/generators/slice/built-in-plan-verification-files.js +70 -0
- package/src/generators/slice/built-in-plan-web-files.d.ts +1 -1
- package/src/generators/slice/built-in-plan-web-files.js +206 -14
- 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 +113 -274
- package/src/generators/slice/built-in-plan.d.ts +9 -1
- package/src/generators/slice/built-in-plan.js +49 -21
- 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 +29 -24
- 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 +2 -0
- package/src/generators/upgrade/upgrade.js +136 -9
- package/src/generators/workload/workload.js +51 -2
- 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 +6 -0
- package/src/local-dev/private-state.js +126 -34
- 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 +3 -1
- 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/scenario.d.ts +22 -0
- package/src/performance/scenario.js +100 -92
- package/src/repository-policy/deployment-plan.d.ts +2 -2
- package/src/repository-policy/deployment-plan.js +2 -1
- package/src/repository-policy/policy.js +38 -3
- package/src/schemas/blueprint-v1.json +5 -4
- package/src/schemas/foundation-requirement-v1.json +5 -4
- package/src/schemas/testing-evidence-result-v1.json +1 -1
- package/src/secrets/operator.d.ts +3 -1
- package/src/secrets/operator.js +22 -3
- package/src/sst-environment-source-format.d.ts +3 -0
- package/src/sst-environment-source-format.js +20 -0
- package/src/supply-chain/blueprint-trust-git.js +13 -3
- package/src/supply-chain/build-output.js +15 -0
- package/src/supply-chain/generated-blueprint-trust-command.js +18 -1
- 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/standard-slice.js +2 -3
- 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/aws/child-environment.js.map +0 -1
- package/src/aws/identity.js.map +0 -1
- package/src/aws-authority/index.js.map +0 -1
- package/src/aws-authority/stage-authority.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-profile-preflight/production-database-safeguard.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/local-deploy/federated-credential-transport.js.map +0 -1
- package/src/executors/local-deploy/fixtures/local-deploy-state-machine.mjs +0 -53
- package/src/executors/local-deploy/local-approval.js.map +0 -1
- package/src/executors/local-deploy/local-deploy.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/router-waf-rehearsal/router-waf-rehearsal.js.map +0 -1
- package/src/executors/secret-guardrails/secret-guardrails.js.map +0 -1
- package/src/executors/secret-initialize/secret-initialize.js.map +0 -1
- package/src/executors/secret-metadata/secret-metadata.js.map +0 -1
- package/src/executors/sst-lifecycle/generated-secret-retirement.js.map +0 -1
- package/src/executors/sst-lifecycle/governed-native-operation.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/sst-lifecycle/sst-environment-source.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/partial-state.js.map +0 -1
- package/src/foundation/preflight.js.map +0 -1
- package/src/foundation/private-smoke-access.js.map +0 -1
- package/src/foundation/private-smoke-admission.js.map +0 -1
- package/src/foundation/private-smoke-control-plane.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/router-waf-rate-rehearsal.js.map +0 -1
- package/src/foundation/router-waf.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/formatting.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/dependency-overrides.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-ci-acceptance.js.map +0 -1
- package/src/generators/preset/workspace-files-developer-agent.js.map +0 -1
- package/src/generators/preset/workspace-files-ecr-inspector.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-stage-authority.js.map +0 -1
- package/src/generators/preset/workspace-files-thin-deploy.js.map +0 -1
- package/src/generators/preset/workspace-files-thin-docs.js.map +0 -1
- package/src/generators/preset/workspace-files-thin-release.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/repository-policy/tree-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-background-work-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-native-runtime-authority-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-thin-release-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/local-capability.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 -167
- 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/capacity-migration.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/generated-aws-control-plane.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/sst-environment-source-format.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-bounds.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
- package/src/workspace-deployment/affected-lifecycle.js.map +0 -1
- package/src/workspace-deployment/identity.js.map +0 -1
- package/src/workspace-deployment/index.js.map +0 -1
- package/src/workspace-deployment/migration-evidence.js.map +0 -1
- package/src/workspace-deployment/migration.js.map +0 -1
- package/src/workspace-deployment/ownership.js.map +0 -1
|
@@ -7,8 +7,12 @@ export interface DeveloperAgentTargetInput {
|
|
|
7
7
|
targetName: string;
|
|
8
8
|
}
|
|
9
9
|
export interface DeveloperAgentOperationRegistryOptions {
|
|
10
|
+
/** Full graph Slice inventory; a bounded selection cannot authorize root `all`. */
|
|
11
|
+
allSliceProjectNames?: readonly string[];
|
|
10
12
|
exposedProjectNames?: readonly string[];
|
|
11
13
|
externalOwnedProjectNames: readonly string[];
|
|
14
|
+
/** Diagnostic only: incomplete history retains the same conservative authority. */
|
|
15
|
+
externalOwnershipHistoryComplete?: boolean;
|
|
12
16
|
namedInputDefinitions: readonly unknown[];
|
|
13
17
|
reviewedExternalVerification?: readonly DeveloperAgentReviewedExternalVerification[];
|
|
14
18
|
}
|
|
@@ -39,6 +43,7 @@ export declare class DeveloperAgentOperationRegistryError extends Error {
|
|
|
39
43
|
export declare function joinDeveloperAgentAuthorityClasses(left: DeveloperAgentAuthorityClass, right: DeveloperAgentAuthorityClass): DeveloperAgentAuthorityClass | undefined;
|
|
40
44
|
export declare function createDeveloperAgentOperationRegistry(projects: readonly {
|
|
41
45
|
context: DeveloperAgentProjectContext;
|
|
46
|
+
localDev?: unknown;
|
|
42
47
|
targets: Readonly<Record<string, TargetConfiguration>>;
|
|
43
48
|
}[], options: DeveloperAgentOperationRegistryOptions): DeveloperAgentOperationRegistry;
|
|
44
49
|
export declare function requireDeveloperAgentOperation(registry: DeveloperAgentOperationRegistry, id: string): DeveloperAgentSupportedOperation;
|
|
@@ -6,6 +6,7 @@ exports.createDeveloperAgentOperationRegistry = createDeveloperAgentOperationReg
|
|
|
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");
|
|
@@ -41,7 +42,7 @@ function policyLifecycleActionForTarget(targetName) {
|
|
|
41
42
|
if (exact('deploy', 'deploy-infrastructure', 'deploy-local', 'deployment-plan', 'foundation-ready')(targetName)) {
|
|
42
43
|
return 'deploy';
|
|
43
44
|
}
|
|
44
|
-
if (exact('dev', 'dev-cleanup', 'dev-setup')(targetName))
|
|
45
|
+
if (exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'dev-setup')(targetName))
|
|
45
46
|
return 'dev';
|
|
46
47
|
if (exact('db-local-migrate', 'db-migrate')(targetName))
|
|
47
48
|
return 'migrate';
|
|
@@ -102,20 +103,39 @@ function runScriptSignature(targetName, expectedScript, settings = {}) {
|
|
|
102
103
|
function executorSignature(targetName, executor, options, dependsOn, settings = {}) {
|
|
103
104
|
return {
|
|
104
105
|
...settings,
|
|
105
|
-
...(dependsOn
|
|
106
|
+
...(dependsOn
|
|
107
|
+
? {
|
|
108
|
+
dependsOn: (input) => typeof dependsOn === 'function' ? dependsOn(input) : dependsOn,
|
|
109
|
+
}
|
|
110
|
+
: {}),
|
|
106
111
|
executor,
|
|
107
112
|
optionsMatch: options,
|
|
108
113
|
targetName,
|
|
109
114
|
};
|
|
110
115
|
}
|
|
111
|
-
|
|
116
|
+
// Use the inspected target inventory, not the workspace-wide Foundation
|
|
117
|
+
// capability: a SQL-free Slice may coexist with a relational Slice. Any SQL
|
|
118
|
+
// target keeps the SQL prerequisites mandatory, including in a partial/tampered
|
|
119
|
+
// graph where db-check alone was removed.
|
|
120
|
+
function sliceDeclaresSql(input) {
|
|
121
|
+
return input.project.targets.some((name) => [
|
|
122
|
+
'db-check',
|
|
123
|
+
'db-generate',
|
|
124
|
+
'db-migrate',
|
|
125
|
+
'db-local-down',
|
|
126
|
+
'db-local-migrate',
|
|
127
|
+
'db-local-up',
|
|
128
|
+
'db-retirement-rehearsal',
|
|
129
|
+
].includes(name));
|
|
130
|
+
}
|
|
131
|
+
const sliceVerifyDependencies = (input) => [
|
|
112
132
|
'api-contract-check',
|
|
113
133
|
'async-verify',
|
|
114
134
|
'authorization-check',
|
|
115
135
|
'build',
|
|
116
136
|
'contract-dependencies-check',
|
|
117
137
|
'data-policy-check',
|
|
118
|
-
'db-check',
|
|
138
|
+
...(sliceDeclaresSql(input) ? ['db-check'] : []),
|
|
119
139
|
'frontend-boundaries',
|
|
120
140
|
'lint',
|
|
121
141
|
'performance-budget',
|
|
@@ -146,6 +166,7 @@ function sliceReleaseArtifactDependencies(input) {
|
|
|
146
166
|
// external Blueprint verification instead enters through the exact protected
|
|
147
167
|
// target-closure review passed to the registry below.
|
|
148
168
|
const TARGET_SIGNATURES = [
|
|
169
|
+
runCommandSignature('verify-local-browser', 'node scripts/verify-local-browser.mjs', { forwardAllArgs: false }),
|
|
149
170
|
runCommandSignature('api-contract-baseline', 'node --experimental-strip-types scripts/api-contract.mjs baseline', { forwardAllArgs: true }),
|
|
150
171
|
runCommandSignature('api-contract-check', 'node --experimental-strip-types scripts/api-contract.mjs check', { forwardAllArgs: false }),
|
|
151
172
|
runCommandSignature('api-contract-generate', 'node --experimental-strip-types scripts/api-contract.mjs generate', { forwardAllArgs: false }),
|
|
@@ -187,7 +208,7 @@ const TARGET_SIGNATURES = [
|
|
|
187
208
|
runCommandSignature('async-workflow-recovery-report', 'node --experimental-strip-types scripts/async-recovery.mjs report workflow-recovery', { forwardAllArgs: false }),
|
|
188
209
|
runCommandSignature('async-workflow-recovery-status', 'node --experimental-strip-types scripts/async-recovery.mjs status workflow-recovery', { forwardAllArgs: false }),
|
|
189
210
|
runCommandSignature('async-verify', 'node --experimental-strip-types scripts/async-contract.mjs', { forwardAllArgs: false }),
|
|
190
|
-
runCommandSignature('build', 'next build web', {
|
|
211
|
+
runCommandSignature('build', 'next build --webpack web', {
|
|
191
212
|
dependsOn: ['secret-guardrails', 'typecheck'],
|
|
192
213
|
env: { NODE_ENV: 'production' },
|
|
193
214
|
}),
|
|
@@ -233,11 +254,22 @@ const TARGET_SIGNATURES = [
|
|
|
233
254
|
runCommandSignature('data-restore-reconcile', 'node --experimental-strip-types scripts/data-restore-reconcile.mjs', { forwardAllArgs: true }),
|
|
234
255
|
runCommandSignature('data-retention', 'node --experimental-strip-types scripts/data-retention.mjs', { forwardAllArgs: true }),
|
|
235
256
|
runCommandSignature('deploy', 'node scripts/confirm-deploy.mjs', {
|
|
236
|
-
dependsOn:
|
|
257
|
+
dependsOn: (input) => [
|
|
258
|
+
{
|
|
259
|
+
params: 'forward',
|
|
260
|
+
target: sliceDeclaresSql(input)
|
|
261
|
+
? 'db-migrate'
|
|
262
|
+
: 'deploy-infrastructure',
|
|
263
|
+
},
|
|
264
|
+
],
|
|
237
265
|
forwardAllArgs: true,
|
|
238
266
|
}),
|
|
239
267
|
runCommandSignature('dev-prerequisite', 'node scripts/verify-live-mode.mjs', {
|
|
240
|
-
dependsOn:
|
|
268
|
+
dependsOn: (input) => [
|
|
269
|
+
...(sliceDeclaresSql(input) ? ['db-check'] : []),
|
|
270
|
+
'secret-guardrails',
|
|
271
|
+
'typecheck',
|
|
272
|
+
],
|
|
241
273
|
}),
|
|
242
274
|
runCommandSignature('frontend-boundaries', 'node scripts/frontend-boundaries.mjs --output=.ebk/evidence/frontend/frontend-boundaries.json', { forwardAllArgs: false }),
|
|
243
275
|
runCommandSignature('frontend-security-headers', 'node scripts/frontend-security-headers.mjs', {
|
|
@@ -412,7 +444,6 @@ const TARGET_SIGNATURES = [
|
|
|
412
444
|
executorSignature('deploy-local', '@empire-builder-kit/nx:local-deploy', exactOptions(() => ({ stage: 'development' })), ['workspace-health'], { nonPlannableRationale: LOCAL_OWNER_ONLY_RATIONALE }),
|
|
413
445
|
executorSignature('dev', '@empire-builder-kit/nx:fleet', exactOptions(() => ({})), undefined, {
|
|
414
446
|
continuous: true,
|
|
415
|
-
nonPlannableRationale: LOCAL_OWNER_ONLY_RATIONALE,
|
|
416
447
|
}),
|
|
417
448
|
executorSignature('developer-context', '@empire-builder-kit/nx:developer-context', exactOptions(() => ({}))),
|
|
418
449
|
executorSignature('dev-doctor', '@empire-builder-kit/nx:dev-doctor', exactOptions(() => ({}))),
|
|
@@ -425,13 +456,24 @@ const TARGET_SIGNATURES = [
|
|
|
425
456
|
stage: 'production',
|
|
426
457
|
}))),
|
|
427
458
|
executorSignature('secret-metadata', '@empire-builder-kit/nx:secret-metadata', exactOptions(() => ({ stage: 'development' }))),
|
|
428
|
-
executorSignature('dev-cleanup', 'nx:
|
|
459
|
+
executorSignature('dev-cleanup', 'nx:run-commands', exactOptions((input) => ({
|
|
460
|
+
commands: [
|
|
461
|
+
...(sliceDeclaresSql(input)
|
|
462
|
+
? [`pnpm nx run ${input.project.name}:db-local-down`]
|
|
463
|
+
: []),
|
|
464
|
+
`pnpm nx run ${input.project.name}:secret-personal-down`,
|
|
465
|
+
],
|
|
466
|
+
cwd: '.',
|
|
467
|
+
forwardAllArgs: false,
|
|
468
|
+
parallel: false,
|
|
469
|
+
})), ['dev-task-cleanup']),
|
|
470
|
+
executorSignature('dev-task-cleanup', '@empire-builder-kit/nx:dev-task-cleanup', exactOptions(() => ({}))),
|
|
429
471
|
executorSignature('dev', '@empire-builder-kit/nx:dev', exactOptions((input) => ({
|
|
430
472
|
cwd: input.project.root,
|
|
431
473
|
stageMode: 'consumer',
|
|
432
|
-
})), [
|
|
474
|
+
})), (input) => [
|
|
433
475
|
'dev-prerequisite',
|
|
434
|
-
'db-local-migrate',
|
|
476
|
+
...(sliceDeclaresSql(input) ? ['db-local-migrate'] : []),
|
|
435
477
|
{ params: 'forward', target: 'foundation-preflight' },
|
|
436
478
|
]),
|
|
437
479
|
executorSignature('deploy-infrastructure', '@empire-builder-kit/nx:deploy', exactOptions((input) => ({
|
|
@@ -557,7 +599,7 @@ const TARGET_RULES = [
|
|
|
557
599
|
contractClasses: ['database'],
|
|
558
600
|
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
559
601
|
evidenceClasses: ['local-integration'],
|
|
560
|
-
matches: exact('test-integration'),
|
|
602
|
+
matches: exact('test-integration', 'verify-local-browser'),
|
|
561
603
|
requiredVerification: ['local-integration'],
|
|
562
604
|
},
|
|
563
605
|
{
|
|
@@ -566,7 +608,7 @@ const TARGET_RULES = [
|
|
|
566
608
|
contractClasses: ['database', 'infrastructure'],
|
|
567
609
|
documentationPaths: ['AGENTS.md', 'docs/developer-agent.md'],
|
|
568
610
|
evidenceClasses: ['local-integration'],
|
|
569
|
-
matches: exact('dev', 'dev-cleanup', 'dev-setup', 'db-local-down', 'db-local-migrate', 'db-local-up', 'secret-personal-down'),
|
|
611
|
+
matches: exact('dev', 'dev-cleanup', 'dev-task-cleanup', 'dev-setup', 'db-local-down', 'db-local-migrate', 'db-local-up', 'secret-personal-down'),
|
|
570
612
|
requiredVerification: ['local-integration'],
|
|
571
613
|
},
|
|
572
614
|
{
|
|
@@ -610,7 +652,7 @@ const TARGET_RULES = [
|
|
|
610
652
|
* owner. Value-blind generated-secret initialization is admitted only through
|
|
611
653
|
* its exact report-first Nx target.
|
|
612
654
|
*/
|
|
613
|
-
function localDevOperations(projects, externalOwnedProjectNames) {
|
|
655
|
+
function localDevOperations(projects, externalOwnedProjectNames, developmentClosures, blockedDevelopment) {
|
|
614
656
|
const sliceNames = projects
|
|
615
657
|
.map(({ context }) => context)
|
|
616
658
|
.filter(({ tags }) => tags.includes('type:slice'))
|
|
@@ -646,7 +688,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
|
|
|
646
688
|
id: `ebk-dev:${command}:${slice}`,
|
|
647
689
|
owner: 'ebk-reconciler',
|
|
648
690
|
policyLifecycleAction: 'dev',
|
|
649
|
-
projects: [slice],
|
|
691
|
+
projects: developmentClosures.get(slice) ?? [slice],
|
|
650
692
|
requiredVerification: ['ebk-dev:doctor'],
|
|
651
693
|
});
|
|
652
694
|
return [
|
|
@@ -661,7 +703,7 @@ function localDevOperations(projects, externalOwnedProjectNames) {
|
|
|
661
703
|
readOnly('ebk-dev:status', ['dev', 'status', '--json']),
|
|
662
704
|
...sliceNames.flatMap((slice) => [
|
|
663
705
|
readOnly(`ebk-dev:logs:${slice}`, ['dev', 'logs', slice, '--limit=200', '--json'], [slice]),
|
|
664
|
-
...(externalOwnedProjectNames.has(slice)
|
|
706
|
+
...(externalOwnedProjectNames.has(slice) || blockedDevelopment.has(slice)
|
|
665
707
|
? []
|
|
666
708
|
: [
|
|
667
709
|
lifecycle('up', slice),
|
|
@@ -822,7 +864,17 @@ function reviewedExternalDependencies(input) {
|
|
|
822
864
|
}
|
|
823
865
|
function dependencyTargets(input, dependsOn, availableProjects, availableTargets) {
|
|
824
866
|
const targets = [];
|
|
825
|
-
|
|
867
|
+
// The exact generated sequential composite invokes these targets after its
|
|
868
|
+
// native prerequisite; include their authority even though they are not
|
|
869
|
+
// sibling Nx prerequisites (which would execute before native cleanup).
|
|
870
|
+
const executionDependencies = input.targetName === 'dev-cleanup'
|
|
871
|
+
? [
|
|
872
|
+
...dependsOn,
|
|
873
|
+
...(sliceDeclaresSql(input) ? ['db-local-down'] : []),
|
|
874
|
+
'secret-personal-down',
|
|
875
|
+
]
|
|
876
|
+
: dependsOn;
|
|
877
|
+
for (const dependency of executionDependencies) {
|
|
826
878
|
if (typeof dependency === 'string') {
|
|
827
879
|
if (dependency.startsWith('^')) {
|
|
828
880
|
const targetName = dependency.slice(1);
|
|
@@ -1105,10 +1157,38 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1105
1157
|
const namedInputRuntimeDetected = options.namedInputDefinitions.some(containsRuntimeInput);
|
|
1106
1158
|
const exposedProjectNames = new Set(options.exposedProjectNames ?? projects.map(({ context }) => context.name));
|
|
1107
1159
|
const externalOwnedProjectNames = new Set(options.externalOwnedProjectNames);
|
|
1160
|
+
const missingFleetSlice = options.allSliceProjectNames?.find((name) => !projects.some(({ context }) => context.name === name));
|
|
1161
|
+
const implicitFleetCrossesExternalOwnership = (input) => externalOwnedProjectNames.size > 0 &&
|
|
1162
|
+
input.target.executor === '@empire-builder-kit/nx:fleet';
|
|
1108
1163
|
const exposedProjects = projects.filter(({ context }) => exposedProjectNames.has(context.name));
|
|
1109
|
-
const operations = [
|
|
1110
|
-
|
|
1111
|
-
|
|
1164
|
+
const operations = [];
|
|
1165
|
+
const adapters = new Map();
|
|
1166
|
+
const developmentClosures = new Map();
|
|
1167
|
+
const developmentReasons = new Map();
|
|
1168
|
+
for (const project of projects) {
|
|
1169
|
+
if (project.localDev === undefined)
|
|
1170
|
+
continue;
|
|
1171
|
+
try {
|
|
1172
|
+
adapters.set(project.context.name, (0, contracts_js_1.validateLocalDevAdapter)(project.localDev));
|
|
1173
|
+
}
|
|
1174
|
+
catch {
|
|
1175
|
+
developmentReasons.set(project.context.name, `Slice ${project.context.name} has invalid local-development metadata; repair its versioned adapter before planning development.`);
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
for (const name of adapters.keys()) {
|
|
1179
|
+
try {
|
|
1180
|
+
const closure = (0, contracts_js_1.resolveFleetSliceDependencies)(adapters, [name]);
|
|
1181
|
+
developmentClosures.set(name, closure);
|
|
1182
|
+
const external = closure.find((dependency) => externalOwnedProjectNames.has(dependency));
|
|
1183
|
+
if (external)
|
|
1184
|
+
developmentReasons.set(name, options.externalOwnershipHistoryComplete === false
|
|
1185
|
+
? `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.`
|
|
1186
|
+
: `Slice ${name} requires external-owned dependency ${external}; use its explicit Blueprint owner. External development contracts are not authenticated by this operation registry.`);
|
|
1187
|
+
}
|
|
1188
|
+
catch {
|
|
1189
|
+
developmentReasons.set(name, `Slice ${name} has an unresolved, cyclic, or invalid dependency Slice; repair its declared dependencySlices before planning development.`);
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1112
1192
|
const nonPlannableTargets = [];
|
|
1113
1193
|
const unsupportedTargets = [];
|
|
1114
1194
|
const orderedProjects = [...projects].sort((left, right) => (0, ordering_js_1.compareDeveloperAgentStrings)(left.context.name, right.context.name));
|
|
@@ -1117,7 +1197,7 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1117
1197
|
for (const [targetName, target] of Object.entries(project.targets)) {
|
|
1118
1198
|
targetInputs.set(`${project.context.name}:${targetName}`, {
|
|
1119
1199
|
namedInputRuntimeDetected,
|
|
1120
|
-
project: project.context,
|
|
1200
|
+
project: { ...project.context, targets: Object.keys(project.targets) },
|
|
1121
1201
|
target,
|
|
1122
1202
|
targetName,
|
|
1123
1203
|
});
|
|
@@ -1168,7 +1248,10 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1168
1248
|
authentication.set(id, false);
|
|
1169
1249
|
return false;
|
|
1170
1250
|
}
|
|
1171
|
-
if (input.namedInputRuntimeDetected
|
|
1251
|
+
if (input.namedInputRuntimeDetected ||
|
|
1252
|
+
(input.target.executor === '@empire-builder-kit/nx:fleet' &&
|
|
1253
|
+
missingFleetSlice !== undefined) ||
|
|
1254
|
+
implicitFleetCrossesExternalOwnership(input)) {
|
|
1172
1255
|
authentication.set(id, false);
|
|
1173
1256
|
return false;
|
|
1174
1257
|
}
|
|
@@ -1202,6 +1285,35 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1202
1285
|
}
|
|
1203
1286
|
const nextActive = new Set(active);
|
|
1204
1287
|
nextActive.add(id);
|
|
1288
|
+
if (input.target.executor === '@empire-builder-kit/nx:fleet') {
|
|
1289
|
+
for (const project of projects.filter(({ context }) => context.tags.includes('type:slice'))) {
|
|
1290
|
+
if (!authenticate(`${project.context.name}:${adapters.get(project.context.name)?.target ?? 'dev'}`, nextActive)) {
|
|
1291
|
+
authentication.set(id, false);
|
|
1292
|
+
return false;
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
if (input.targetName === (adapters.get(input.project.name)?.target ?? 'dev')) {
|
|
1297
|
+
if (developmentReasons.has(input.project.name)) {
|
|
1298
|
+
authentication.set(id, false);
|
|
1299
|
+
return false;
|
|
1300
|
+
}
|
|
1301
|
+
for (const name of developmentClosures.get(input.project.name) ?? []) {
|
|
1302
|
+
if (name === input.project.name)
|
|
1303
|
+
continue;
|
|
1304
|
+
const dependencyAdapter = adapters.get(name);
|
|
1305
|
+
if (!dependencyAdapter) {
|
|
1306
|
+
authentication.set(id, false);
|
|
1307
|
+
return false;
|
|
1308
|
+
}
|
|
1309
|
+
const dependencyId = `${name}:${dependencyAdapter.target}`;
|
|
1310
|
+
if (!authenticate(dependencyId, nextActive)) {
|
|
1311
|
+
developmentReasons.set(input.project.name, `Slice ${input.project.name} requires non-plannable dependency ${dependencyId}; use that dependency's explicit owner before planning development.`);
|
|
1312
|
+
authentication.set(id, false);
|
|
1313
|
+
return false;
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1205
1317
|
const authenticated = dependencies.every((dependency) => authenticate(dependency.id, nextActive));
|
|
1206
1318
|
authentication.set(id, authenticated);
|
|
1207
1319
|
return authenticated;
|
|
@@ -1238,7 +1350,24 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1238
1350
|
composedInvocations.set(memoKey, null);
|
|
1239
1351
|
return undefined;
|
|
1240
1352
|
}
|
|
1241
|
-
const
|
|
1353
|
+
const allDependencyTargets = [...dependencyTargetsForOperation];
|
|
1354
|
+
const developmentProjects = input.target.executor === '@empire-builder-kit/nx:fleet'
|
|
1355
|
+
? projects
|
|
1356
|
+
.filter(({ context }) => context.tags.includes('type:slice'))
|
|
1357
|
+
.map(({ context }) => context.name)
|
|
1358
|
+
: input.targetName === adapters.get(input.project.name)?.target
|
|
1359
|
+
? (developmentClosures.get(input.project.name) ?? []).filter((name) => name !== input.project.name)
|
|
1360
|
+
: [];
|
|
1361
|
+
for (const name of developmentProjects) {
|
|
1362
|
+
const dependencyId = `${name}:${adapters.get(name)?.target ?? 'dev'}`;
|
|
1363
|
+
if (!allDependencyTargets.some(({ id }) => id === dependencyId)) {
|
|
1364
|
+
allDependencyTargets.push({
|
|
1365
|
+
id: dependencyId,
|
|
1366
|
+
params: 'ignore',
|
|
1367
|
+
});
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
const dependencies = allDependencyTargets.map((dependency) => {
|
|
1242
1371
|
const composed = composeInvocation(dependency.id, dependency.params === 'forward' ? forwardedStage : undefined);
|
|
1243
1372
|
if (!composed)
|
|
1244
1373
|
return undefined;
|
|
@@ -1299,6 +1428,12 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1299
1428
|
}
|
|
1300
1429
|
}
|
|
1301
1430
|
const authenticatedTargets = new Set([...targetInputs.keys()].filter((target) => compose(target) !== undefined));
|
|
1431
|
+
const blockedDevelopment = new Set(developmentReasons.keys());
|
|
1432
|
+
for (const [name, adapter] of adapters) {
|
|
1433
|
+
if (!authenticatedTargets.has(`${name}:${adapter.target}`))
|
|
1434
|
+
blockedDevelopment.add(name);
|
|
1435
|
+
}
|
|
1436
|
+
operations.push(...localDevOperations(exposedProjects, externalOwnedProjectNames, developmentClosures, blockedDevelopment));
|
|
1302
1437
|
operations.push(...sourceEditOperations(exposedProjects, authenticatedTargets, workspaceVerification));
|
|
1303
1438
|
for (const project of orderedProjects) {
|
|
1304
1439
|
if (!exposedProjectNames.has(project.context.name))
|
|
@@ -1307,6 +1442,27 @@ function createDeveloperAgentOperationRegistry(projects, options) {
|
|
|
1307
1442
|
const target = `${project.context.name}:${targetName}`;
|
|
1308
1443
|
const input = targetInputs.get(target);
|
|
1309
1444
|
const signature = input ? authenticatedTargetSignature(input) : undefined;
|
|
1445
|
+
if (input?.target.executor === '@empire-builder-kit/nx:fleet' &&
|
|
1446
|
+
missingFleetSlice !== undefined) {
|
|
1447
|
+
nonPlannableTargets.push({
|
|
1448
|
+
target,
|
|
1449
|
+
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.`,
|
|
1450
|
+
});
|
|
1451
|
+
continue;
|
|
1452
|
+
}
|
|
1453
|
+
const developmentReason = developmentReasons.get(project.context.name);
|
|
1454
|
+
if (developmentReason &&
|
|
1455
|
+
targetName === (adapters.get(project.context.name)?.target ?? 'dev')) {
|
|
1456
|
+
nonPlannableTargets.push({ target, rationale: developmentReason });
|
|
1457
|
+
continue;
|
|
1458
|
+
}
|
|
1459
|
+
if (input && signature && implicitFleetCrossesExternalOwnership(input)) {
|
|
1460
|
+
nonPlannableTargets.push({
|
|
1461
|
+
target,
|
|
1462
|
+
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).',
|
|
1463
|
+
});
|
|
1464
|
+
continue;
|
|
1465
|
+
}
|
|
1310
1466
|
if (signature?.nonPlannableRationale &&
|
|
1311
1467
|
!externalOwnedProjectNames.has(project.context.name)) {
|
|
1312
1468
|
nonPlannableTargets.push({
|
|
@@ -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
|
|
@@ -482,10 +482,20 @@ function validateGitContext(value, path, issues) {
|
|
|
482
482
|
return false;
|
|
483
483
|
requireInteger(record.ahead, `${path}.ahead`, issues, 0, 1_000_000);
|
|
484
484
|
requireInteger(record.behind, `${path}.behind`, issues, 0, 1_000_000);
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
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
|
+
}
|
|
489
499
|
requireBoolean(record.concurrentChangeInspectionComplete, `${path}.concurrentChangeInspectionComplete`, issues);
|
|
490
500
|
const concurrentChanges = requireArray(record.concurrentChanges, `${path}.concurrentChanges`, issues, MAX_CONCURRENT_PATHS);
|
|
491
501
|
const concurrentPaths = new Set();
|
|
@@ -520,10 +530,12 @@ function validateGitContext(value, path, issues) {
|
|
|
520
530
|
}
|
|
521
531
|
requireInteger(concurrent.worktreeCount, `${entryPath}.worktreeCount`, issues, 1, 64);
|
|
522
532
|
});
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
533
|
+
if (record.defaultBaseCommit !== null) {
|
|
534
|
+
requireSafeString(record.defaultBaseCommit, `${path}.defaultBaseCommit`, issues, {
|
|
535
|
+
maximumLength: 64,
|
|
536
|
+
pattern: COMMIT_PATTERN,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
527
539
|
requireSafeString(record.defaultBaseRef, `${path}.defaultBaseRef`, issues, {
|
|
528
540
|
maximumLength: MAX_PATH_LENGTH,
|
|
529
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'));
|
|
@@ -1083,12 +1099,17 @@ function inspectDeveloperAgentWorkspace(options) {
|
|
|
1083
1099
|
const marker = markerContext(root);
|
|
1084
1100
|
const projectTargets = registryNodes.map((node) => ({
|
|
1085
1101
|
context: projectContext(options.graph, node),
|
|
1102
|
+
localDev: node.data.metadata?.['ebk']?.localDev,
|
|
1086
1103
|
targets: (node.data.targets ?? {}),
|
|
1087
1104
|
}));
|
|
1088
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);
|
|
1089
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),
|
|
1090
1110
|
exposedProjectNames: nodes.map(({ name }) => name),
|
|
1091
1111
|
externalOwnedProjectNames: externalOwnedProjectNames(root, registryNodes, externalOwnershipRoots, options.externalOwnershipHistory, foundationProjectName),
|
|
1112
|
+
externalOwnershipHistoryComplete: options.externalOwnershipHistory.complete,
|
|
1092
1113
|
namedInputDefinitions: [
|
|
1093
1114
|
options.workspaceNamedInputs ?? { runtime: 'uninspected' },
|
|
1094
1115
|
...Object.values(options.graph.nodes).map((node) => node.data.namedInputs ?? {}),
|
|
@@ -1109,13 +1130,26 @@ function inspectDeveloperAgentWorkspace(options) {
|
|
|
1109
1130
|
...externalVerification.warnings,
|
|
1110
1131
|
...unsupportedWarnings,
|
|
1111
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);
|
|
1112
1144
|
const requiredVerification = [
|
|
1113
1145
|
...new Set([
|
|
1114
1146
|
...ownership.records.flatMap((record) => record.slice && selectedProjectNames.has(record.slice.slice)
|
|
1115
1147
|
? record.slice.verification.map((target) => `${record.slice.slice}:${target}`)
|
|
1116
1148
|
: []),
|
|
1117
1149
|
...projects
|
|
1118
|
-
.filter(({ targets }) => targets.includes('verify')
|
|
1150
|
+
.filter(({ name, targets }) => targets.includes('verify') &&
|
|
1151
|
+
(governedProjectNames.has(name) ||
|
|
1152
|
+
authenticatedTargets.has(`${name}:verify`)))
|
|
1119
1153
|
.map(({ name }) => `${name}:verify`),
|
|
1120
1154
|
]),
|
|
1121
1155
|
].sort();
|
|
@@ -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;
|