@empire-builder-kit/nx 1.0.0-beta.9 → 1.0.0-rc.2
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/NOTICE +6 -0
- package/README.md +113 -3
- package/executors.json +30 -0
- package/package.json +84 -6
- package/src/api-contract/baseline-update.d.ts +82 -0
- package/src/api-contract/baseline-update.js +225 -0
- package/src/api-contract/baseline-update.js.map +1 -0
- package/src/api-contract/compatibility.d.ts +30 -0
- package/src/api-contract/compatibility.js +643 -0
- package/src/api-contract/compatibility.js.map +1 -0
- package/src/api-contract/contract-graph.d.ts +35 -0
- package/src/api-contract/contract-graph.js +141 -0
- package/src/api-contract/contract-graph.js.map +1 -0
- package/src/api-contract/evidence.d.ts +23 -0
- package/src/api-contract/evidence.js +87 -0
- package/src/api-contract/evidence.js.map +1 -0
- package/src/api-contract/index.d.ts +6 -0
- package/src/api-contract/index.js +10 -0
- package/src/api-contract/index.js.map +1 -0
- package/src/api-contract/model.d.ts +144 -0
- package/src/api-contract/model.fixtures.d.ts +2 -0
- package/src/api-contract/model.fixtures.js +81 -0
- package/src/api-contract/model.fixtures.js.map +1 -0
- package/src/api-contract/model.js +993 -0
- package/src/api-contract/model.js.map +1 -0
- package/src/api-contract/rollout.d.ts +32 -0
- package/src/api-contract/rollout.js +88 -0
- package/src/api-contract/rollout.js.map +1 -0
- package/src/authorization/compatibility.d.ts +62 -0
- package/src/authorization/compatibility.js +175 -0
- package/src/authorization/compatibility.js.map +1 -0
- package/src/authorization/index.d.ts +1 -0
- package/src/authorization/index.js +5 -0
- package/src/authorization/index.js.map +1 -0
- package/src/blueprints/execution.d.ts +25 -1
- package/src/blueprints/execution.js +246 -83
- package/src/blueprints/execution.js.map +1 -1
- package/src/blueprints/external-sandbox.d.ts +53 -0
- package/src/blueprints/external-sandbox.js +1182 -0
- package/src/blueprints/external-sandbox.js.map +1 -0
- package/src/blueprints/manifest.d.ts +42 -2
- package/src/blueprints/manifest.js +82 -27
- package/src/blueprints/manifest.js.map +1 -1
- package/src/blueprints/resolver.d.ts +14 -5
- package/src/blueprints/resolver.js +228 -68
- package/src/blueprints/resolver.js.map +1 -1
- package/src/cli/agent-command.d.ts +30 -0
- package/src/cli/agent-command.js +204 -0
- package/src/cli/agent-command.js.map +1 -0
- package/src/cli/agent-runtime.d.ts +25 -0
- package/src/cli/agent-runtime.js +488 -0
- package/src/cli/agent-runtime.js.map +1 -0
- package/src/cli/blueprint-authority.d.ts +9 -0
- package/src/cli/blueprint-authority.js +43 -0
- package/src/cli/blueprint-authority.js.map +1 -0
- package/src/cli/blueprint-command.d.ts +24 -0
- package/src/cli/blueprint-command.js +63 -0
- package/src/cli/blueprint-command.js.map +1 -0
- package/src/cli/bootstrap.d.ts +31 -0
- package/src/cli/bootstrap.js +165 -0
- package/src/cli/bootstrap.js.map +1 -0
- package/src/cli/dev-command.d.ts +92 -0
- package/src/cli/dev-command.js +561 -0
- package/src/cli/dev-command.js.map +1 -0
- package/src/cli/main.d.ts +131 -0
- package/src/cli/main.js +1199 -0
- package/src/cli/main.js.map +1 -0
- package/src/cli/output.d.ts +19 -0
- package/src/cli/output.js +51 -0
- package/src/cli/output.js.map +1 -0
- package/src/cli/personal-secret-runtime.d.ts +81 -0
- package/src/cli/personal-secret-runtime.js +567 -0
- package/src/cli/personal-secret-runtime.js.map +1 -0
- package/src/cli/secret-terminal.d.ts +12 -0
- package/src/cli/secret-terminal.js +128 -0
- package/src/cli/secret-terminal.js.map +1 -0
- package/src/container-images.d.ts +1 -0
- package/src/container-images.js +5 -0
- package/src/container-images.js.map +1 -0
- package/src/data-lifecycle/index.d.ts +3 -0
- package/src/data-lifecycle/index.js +7 -0
- package/src/data-lifecycle/index.js.map +1 -0
- package/src/data-lifecycle/model.d.ts +172 -0
- package/src/data-lifecycle/model.fixtures.d.ts +2 -0
- package/src/data-lifecycle/model.fixtures.js +244 -0
- package/src/data-lifecycle/model.fixtures.js.map +1 -0
- package/src/data-lifecycle/model.js +95 -0
- package/src/data-lifecycle/model.js.map +1 -0
- package/src/data-lifecycle/sensitive-artifacts.d.ts +28 -0
- package/src/data-lifecycle/sensitive-artifacts.js +146 -0
- package/src/data-lifecycle/sensitive-artifacts.js.map +1 -0
- package/src/data-lifecycle/validation.d.ts +32 -0
- package/src/data-lifecycle/validation.js +837 -0
- package/src/data-lifecycle/validation.js.map +1 -0
- package/src/database-retirement/contract.d.ts +68 -0
- package/src/database-retirement/contract.js +166 -0
- package/src/database-retirement/contract.js.map +1 -0
- package/src/database-retirement/index.d.ts +1 -0
- package/src/database-retirement/index.js +5 -0
- package/src/database-retirement/index.js.map +1 -0
- package/src/deterministic-order.d.ts +2 -0
- package/src/deterministic-order.js +7 -0
- package/src/deterministic-order.js.map +1 -0
- package/src/developer-agent/context.d.ts +27 -0
- package/src/developer-agent/context.js +497 -0
- package/src/developer-agent/context.js.map +1 -0
- package/src/developer-agent/generator-planning.d.ts +34 -0
- package/src/developer-agent/generator-planning.js +645 -0
- package/src/developer-agent/generator-planning.js.map +1 -0
- package/src/developer-agent/generator-preview.d.ts +8 -0
- package/src/developer-agent/generator-preview.js +650 -0
- package/src/developer-agent/generator-preview.js.map +1 -0
- package/src/developer-agent/git-inspection.d.ts +108 -0
- package/src/developer-agent/git-inspection.js +815 -0
- package/src/developer-agent/git-inspection.js.map +1 -0
- package/src/developer-agent/handoff.d.ts +43 -0
- package/src/developer-agent/handoff.js +698 -0
- package/src/developer-agent/handoff.js.map +1 -0
- package/src/developer-agent/index.d.ts +10 -0
- package/src/developer-agent/index.js +14 -0
- package/src/developer-agent/index.js.map +1 -0
- package/src/developer-agent/model.d.ts +481 -0
- package/src/developer-agent/model.js +143 -0
- package/src/developer-agent/model.js.map +1 -0
- package/src/developer-agent/operation-registry.d.ts +45 -0
- package/src/developer-agent/operation-registry.js +1255 -0
- package/src/developer-agent/operation-registry.js.map +1 -0
- package/src/developer-agent/ordering.d.ts +9 -0
- package/src/developer-agent/ordering.js +15 -0
- package/src/developer-agent/ordering.js.map +1 -0
- package/src/developer-agent/planning.d.ts +18 -0
- package/src/developer-agent/planning.js +447 -0
- package/src/developer-agent/planning.js.map +1 -0
- package/src/developer-agent/preview-changes.d.ts +26 -0
- package/src/developer-agent/preview-changes.js +203 -0
- package/src/developer-agent/preview-changes.js.map +1 -0
- package/src/developer-agent/preview-source.d.ts +2 -0
- package/src/developer-agent/preview-source.js +16 -0
- package/src/developer-agent/preview-source.js.map +1 -0
- package/src/developer-agent/validation.d.ts +18 -0
- package/src/developer-agent/validation.js +2617 -0
- package/src/developer-agent/validation.js.map +1 -0
- package/src/developer-agent/workspace-inspection.d.ts +20 -0
- package/src/developer-agent/workspace-inspection.js +1134 -0
- package/src/developer-agent/workspace-inspection.js.map +1 -0
- package/src/developer-agent/workspace-path.d.ts +6 -0
- package/src/developer-agent/workspace-path.js +22 -0
- package/src/developer-agent/workspace-path.js.map +1 -0
- package/src/executors/blueprint-trust/blueprint-trust.d.ts +29 -0
- package/src/executors/blueprint-trust/blueprint-trust.js +115 -0
- package/src/executors/blueprint-trust/blueprint-trust.js.map +1 -0
- package/src/executors/blueprint-trust/schema.json +27 -0
- package/src/executors/blueprint-verification/blueprint-verification.d.ts +13 -0
- package/src/executors/blueprint-verification/blueprint-verification.js +110 -0
- package/src/executors/blueprint-verification/blueprint-verification.js.map +1 -0
- package/src/executors/blueprint-verification/schema.json +44 -0
- package/src/executors/deployment-plan/deployment-plan.js +1 -0
- package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
- package/src/executors/dev-doctor/dev-doctor.d.ts +19 -5
- package/src/executors/dev-doctor/dev-doctor.js +186 -32
- package/src/executors/dev-doctor/dev-doctor.js.map +1 -1
- package/src/executors/dev-doctor/schema.json +1 -6
- package/src/executors/dev-setup/dev-setup.d.ts +7 -1
- package/src/executors/dev-setup/dev-setup.js +14 -3
- package/src/executors/dev-setup/dev-setup.js.map +1 -1
- package/src/executors/developer-context/developer-context.d.ts +38 -0
- package/src/executors/developer-context/developer-context.js +78 -0
- package/src/executors/developer-context/developer-context.js.map +1 -0
- package/src/executors/developer-context/schema.json +87 -0
- package/src/executors/fleet/fleet.d.ts +12 -43
- package/src/executors/fleet/fleet.js +120 -500
- package/src/executors/fleet/fleet.js.map +1 -1
- package/src/executors/fleet/schema.json +64 -14
- package/src/executors/github-bootstrap/github-bootstrap.d.ts +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
- package/src/executors/github-bootstrap/schema.json +5 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.d.ts +144 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js +3320 -0
- package/src/executors/infrastructure-plan/infrastructure-plan.js.map +1 -0
- package/src/executors/infrastructure-plan/schema.json +78 -0
- package/src/executors/secret-guardrails/schema.json +6 -0
- package/src/executors/secret-guardrails/secret-guardrails.d.ts +3 -0
- package/src/executors/secret-guardrails/secret-guardrails.js +44 -0
- package/src/executors/secret-guardrails/secret-guardrails.js.map +1 -0
- package/src/executors/secret-metadata/schema.json +31 -0
- package/src/executors/secret-metadata/secret-metadata.d.ts +32 -0
- package/src/executors/secret-metadata/secret-metadata.js +131 -0
- package/src/executors/secret-metadata/secret-metadata.js.map +1 -0
- package/src/executors/sst-lifecycle/logging-preflight.d.ts +17 -0
- package/src/executors/sst-lifecycle/logging-preflight.js +196 -0
- package/src/executors/sst-lifecycle/logging-preflight.js.map +1 -0
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +23 -3
- package/src/executors/sst-lifecycle/run-sst-command.js +113 -10
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/executors/sst-lifecycle/schema.json +9 -5
- package/src/executors/sst-lifecycle/secret-preflight.d.ts +25 -0
- package/src/executors/sst-lifecycle/secret-preflight.js +119 -0
- package/src/executors/sst-lifecycle/secret-preflight.js.map +1 -0
- package/src/foundation/discovery.d.ts +17 -1
- package/src/foundation/discovery.js +16 -1
- package/src/foundation/discovery.js.map +1 -1
- package/src/foundation/index.d.ts +3 -0
- package/src/foundation/index.js +3 -0
- package/src/foundation/index.js.map +1 -1
- package/src/foundation/local-database-contract.d.ts +1 -0
- package/src/foundation/local-database-contract.js +3 -0
- package/src/foundation/local-database-contract.js.map +1 -1
- package/src/foundation/logging-preflight.d.ts +30 -0
- package/src/foundation/logging-preflight.js +138 -0
- package/src/foundation/logging-preflight.js.map +1 -0
- package/src/foundation/logging.d.ts +70 -0
- package/src/foundation/logging.js +133 -0
- package/src/foundation/logging.js.map +1 -0
- package/src/foundation/preflight.d.ts +9 -0
- package/src/foundation/preflight.js +58 -2
- package/src/foundation/preflight.js.map +1 -1
- package/src/foundation/provision-database-bindings.d.ts +9 -1
- package/src/foundation/provision-database-bindings.js +25 -5
- package/src/foundation/provision-database-bindings.js.map +1 -1
- package/src/foundation/provision-logical-database.d.ts +10 -2
- package/src/foundation/provision-logical-database.js +68 -113
- package/src/foundation/provision-logical-database.js.map +1 -1
- package/src/foundation/router-origin-proof.d.ts +2 -0
- package/src/foundation/router-origin-proof.js +25 -0
- package/src/foundation/router-origin-proof.js.map +1 -0
- package/src/foundation/stages.d.ts +1 -0
- package/src/foundation/stages.js +9 -1
- package/src/foundation/stages.js.map +1 -1
- package/src/frontend-security/index.d.ts +1 -0
- package/src/frontend-security/index.js +5 -0
- package/src/frontend-security/index.js.map +1 -0
- package/src/frontend-security/security-headers.d.ts +50 -0
- package/src/frontend-security/security-headers.js +418 -0
- package/src/frontend-security/security-headers.js.map +1 -0
- package/src/generators/feature-registry.d.ts +13 -0
- package/src/generators/feature-registry.js +73 -0
- package/src/generators/feature-registry.js.map +1 -0
- package/src/generators/function/function.d.ts +1 -1
- package/src/generators/function/function.js +51 -6
- package/src/generators/function/function.js.map +1 -1
- package/src/generators/function/schema.d.ts +1 -0
- package/src/generators/function/schema.json +6 -1
- package/src/generators/logging-registry.d.ts +13 -0
- package/src/generators/logging-registry.js +62 -0
- package/src/generators/logging-registry.js.map +1 -0
- package/src/generators/post-generation-install.d.ts +67 -0
- package/src/generators/post-generation-install.js +3308 -0
- package/src/generators/post-generation-install.js.map +1 -0
- package/src/generators/preset/generator.js +3 -0
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/preset/tool-versions.d.ts +18 -0
- package/src/generators/preset/tool-versions.js +22 -0
- package/src/generators/preset/tool-versions.js.map +1 -0
- package/src/generators/preset/workspace-files-developer-agent.d.ts +14 -0
- package/src/generators/preset/workspace-files-developer-agent.js +511 -0
- package/src/generators/preset/workspace-files-developer-agent.js.map +1 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.d.ts +6 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js +406 -0
- package/src/generators/preset/workspace-files-foundation-workload-roles.js.map +1 -0
- package/src/generators/preset/workspace-files-performance-cost.d.ts +66 -0
- package/src/generators/preset/workspace-files-performance-cost.js +866 -0
- package/src/generators/preset/workspace-files-performance-cost.js.map +1 -0
- package/src/generators/preset/workspace-files-performance-load.d.ts +73 -0
- package/src/generators/preset/workspace-files-performance-load.js +801 -0
- package/src/generators/preset/workspace-files-performance-load.js.map +1 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.d.ts +9 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js +1102 -0
- package/src/generators/preset/workspace-files-workload-role-baseline.js.map +1 -0
- package/src/generators/preset/workspace-files.d.ts +14 -1
- package/src/generators/preset/workspace-files.js +8189 -245
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +3 -47
- package/src/generators/repository-policy/repository-policy.js.map +1 -1
- package/src/generators/slice/built-in-plan-api-contract-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js +2656 -0
- package/src/generators/slice/built-in-plan-api-contract-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-api-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-api-files.js +1186 -0
- package/src/generators/slice/built-in-plan-api-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-async-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-async-work-files.js +7903 -0
- package/src/generators/slice/built-in-plan-async-work-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-authorization-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-authorization-files.js +2314 -0
- package/src/generators/slice/built-in-plan-authorization-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +559 -0
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js +1101 -0
- package/src/generators/slice/built-in-plan-data-deletion-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js +249 -0
- package/src/generators/slice/built-in-plan-data-export-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-files.js +1530 -0
- package/src/generators/slice/built-in-plan-data-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js +750 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js +828 -0
- package/src/generators/slice/built-in-plan-data-lifecycle-runtime-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.js +2604 -0
- package/src/generators/slice/built-in-plan-data-retention-job-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js +144 -0
- package/src/generators/slice/built-in-plan-data-retention-launcher-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-data-rights-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-data-rights-files.js +4628 -0
- package/src/generators/slice/built-in-plan-data-rights-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +1901 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +485 -0
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-foundation-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-foundation-files.js +184 -0
- package/src/generators/slice/built-in-plan-foundation-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-frontend-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-frontend-files.js +2233 -0
- package/src/generators/slice/built-in-plan-frontend-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.js +3038 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +312 -0
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-metadata-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-metadata-files.js +219 -0
- package/src/generators/slice/built-in-plan-metadata-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-operations-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-operations-files.js +630 -0
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-performance-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-performance-files.js +3293 -0
- package/src/generators/slice/built-in-plan-performance-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-project-files.d.ts +3 -0
- package/src/generators/slice/built-in-plan-project-files.js +979 -0
- package/src/generators/slice/built-in-plan-project-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-release-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-release-files.js +6387 -0
- package/src/generators/slice/built-in-plan-release-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-reliability-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-reliability-files.js +4499 -0
- package/src/generators/slice/built-in-plan-reliability-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js +1004 -0
- package/src/generators/slice/built-in-plan-secret-runtime-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-shared.d.ts +53 -0
- package/src/generators/slice/built-in-plan-shared.js +113 -0
- package/src/generators/slice/built-in-plan-shared.js.map +1 -0
- package/src/generators/slice/built-in-plan-testing-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-testing-files.js +2356 -0
- package/src/generators/slice/built-in-plan-testing-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-verification-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-verification-files.js +358 -0
- package/src/generators/slice/built-in-plan-verification-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-web-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-web-files.js +430 -0
- package/src/generators/slice/built-in-plan-web-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-workload-role-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-workload-role-files.js +2356 -0
- package/src/generators/slice/built-in-plan-workload-role-files.js.map +1 -0
- package/src/generators/slice/built-in-plan.d.ts +8 -0
- package/src/generators/slice/built-in-plan.js +264 -0
- package/src/generators/slice/built-in-plan.js.map +1 -0
- package/src/generators/slice/schema.json +1 -1
- package/src/generators/slice/slice.d.ts +1 -22
- package/src/generators/slice/slice.js +185 -1510
- package/src/generators/slice/slice.js.map +1 -1
- package/src/generators/upgrade/schema.d.ts +2 -0
- package/src/generators/upgrade/schema.json +11 -1
- package/src/generators/upgrade/upgrade.d.ts +51 -1
- package/src/generators/upgrade/upgrade.js +820 -82
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/frozen-container.d.ts +8 -0
- package/src/generators/workload/frozen-container.js +36 -0
- package/src/generators/workload/frozen-container.js.map +1 -0
- package/src/generators/workload/performance-registration.d.ts +32 -0
- package/src/generators/workload/performance-registration.js +226 -0
- package/src/generators/workload/performance-registration.js.map +1 -0
- package/src/generators/workload/reliability-registration.d.ts +16 -0
- package/src/generators/workload/reliability-registration.js +150 -0
- package/src/generators/workload/reliability-registration.js.map +1 -0
- package/src/generators/workload/schema.d.ts +1 -0
- package/src/generators/workload/schema.json +6 -1
- package/src/generators/workload/service-performance-files.d.ts +4 -0
- package/src/generators/workload/service-performance-files.js +1846 -0
- package/src/generators/workload/service-performance-files.js.map +1 -0
- package/src/generators/workload/workload.d.ts +3 -2
- package/src/generators/workload/workload.js +1083 -18
- package/src/generators/workload/workload.js.map +1 -1
- package/src/git-policy/action-pins.d.ts +10 -0
- package/src/git-policy/action-pins.js +10 -0
- package/src/git-policy/action-pins.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +14 -1
- package/src/git-policy/github-bootstrap.js +274 -46
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/infrastructure-change/convergence.d.ts +13 -0
- package/src/infrastructure-change/convergence.js +85 -0
- package/src/infrastructure-change/convergence.js.map +1 -0
- package/src/infrastructure-change/drift.d.ts +13 -0
- package/src/infrastructure-change/drift.js +112 -0
- package/src/infrastructure-change/drift.js.map +1 -0
- package/src/infrastructure-change/index.d.ts +7 -0
- package/src/infrastructure-change/index.js +11 -0
- package/src/infrastructure-change/index.js.map +1 -0
- package/src/infrastructure-change/model.d.ts +253 -0
- package/src/infrastructure-change/model.js +28 -0
- package/src/infrastructure-change/model.js.map +1 -0
- package/src/infrastructure-change/normalize.d.ts +12 -0
- package/src/infrastructure-change/normalize.js +245 -0
- package/src/infrastructure-change/normalize.js.map +1 -0
- package/src/infrastructure-change/plan.d.ts +40 -0
- package/src/infrastructure-change/plan.js +361 -0
- package/src/infrastructure-change/plan.js.map +1 -0
- package/src/infrastructure-change/risk.d.ts +7 -0
- package/src/infrastructure-change/risk.js +269 -0
- package/src/infrastructure-change/risk.js.map +1 -0
- package/src/infrastructure-change/summary.d.ts +20 -0
- package/src/infrastructure-change/summary.js +130 -0
- package/src/infrastructure-change/summary.js.map +1 -0
- package/src/local-dev/context-discovery.d.ts +2 -0
- package/src/local-dev/context-discovery.js +59 -0
- package/src/local-dev/context-discovery.js.map +1 -0
- package/src/local-dev/contract-validation.d.ts +15 -0
- package/src/local-dev/contract-validation.js +84 -0
- package/src/local-dev/contract-validation.js.map +1 -0
- package/src/local-dev/contracts.d.ts +10 -1
- package/src/local-dev/contracts.js +57 -5
- package/src/local-dev/contracts.js.map +1 -1
- package/src/local-dev/control-contract.d.ts +67 -0
- package/src/local-dev/control-contract.js +180 -0
- package/src/local-dev/control-contract.js.map +1 -0
- package/src/local-dev/dev-command-core.d.ts +60 -0
- package/src/local-dev/dev-command-core.js +89 -0
- package/src/local-dev/dev-command-core.js.map +1 -0
- package/src/local-dev/effects.d.ts +16 -0
- package/src/local-dev/effects.js +63 -0
- package/src/local-dev/effects.js.map +1 -0
- package/src/local-dev/environment-inspector.d.ts +125 -0
- package/src/local-dev/environment-inspector.js +687 -0
- package/src/local-dev/environment-inspector.js.map +1 -0
- package/src/local-dev/environment-state.d.ts +113 -0
- package/src/local-dev/environment-state.js +463 -0
- package/src/local-dev/environment-state.js.map +1 -0
- package/src/local-dev/errors.d.ts +6 -0
- package/src/local-dev/errors.js +41 -0
- package/src/local-dev/errors.js.map +1 -0
- package/src/local-dev/fleet-client.d.ts +33 -0
- package/src/local-dev/fleet-client.js +156 -0
- package/src/local-dev/fleet-client.js.map +1 -0
- package/src/local-dev/fleet-configuration.d.ts +13 -0
- package/src/local-dev/fleet-configuration.js +71 -0
- package/src/local-dev/fleet-configuration.js.map +1 -0
- package/src/local-dev/fleet-inventory.d.ts +56 -0
- package/src/local-dev/fleet-inventory.js +469 -0
- package/src/local-dev/fleet-inventory.js.map +1 -0
- package/src/local-dev/fleet-ipc.d.ts +28 -0
- package/src/local-dev/fleet-ipc.js +267 -0
- package/src/local-dev/fleet-ipc.js.map +1 -0
- package/src/local-dev/fleet-launcher.d.ts +53 -0
- package/src/local-dev/fleet-launcher.js +379 -0
- package/src/local-dev/fleet-launcher.js.map +1 -0
- package/src/local-dev/fleet-lock.d.ts +41 -0
- package/src/local-dev/fleet-lock.js +135 -0
- package/src/local-dev/fleet-lock.js.map +1 -0
- package/src/local-dev/fleet-logs.d.ts +66 -0
- package/src/local-dev/fleet-logs.js +542 -0
- package/src/local-dev/fleet-logs.js.map +1 -0
- package/src/local-dev/fleet-process.d.ts +50 -0
- package/src/local-dev/fleet-process.js +289 -0
- package/src/local-dev/fleet-process.js.map +1 -0
- package/src/local-dev/fleet-runtime.d.ts +22 -0
- package/src/local-dev/fleet-runtime.js +368 -0
- package/src/local-dev/fleet-runtime.js.map +1 -0
- package/src/local-dev/fleet-session.d.ts +70 -0
- package/src/local-dev/fleet-session.js +301 -0
- package/src/local-dev/fleet-session.js.map +1 -0
- package/src/local-dev/fleet-slice-runner-daemon.d.ts +1 -0
- package/src/local-dev/fleet-slice-runner-daemon.js +21 -0
- package/src/local-dev/fleet-slice-runner-daemon.js.map +1 -0
- package/src/local-dev/fleet-startup.d.ts +22 -0
- package/src/local-dev/fleet-startup.js +114 -0
- package/src/local-dev/fleet-startup.js.map +1 -0
- package/src/local-dev/fleet-state.d.ts +62 -0
- package/src/local-dev/fleet-state.js +297 -0
- package/src/local-dev/fleet-state.js.map +1 -0
- package/src/local-dev/fleet-supervisor-daemon.d.ts +1 -0
- package/src/local-dev/fleet-supervisor-daemon.js +41 -0
- package/src/local-dev/fleet-supervisor-daemon.js.map +1 -0
- package/src/local-dev/fleet-supervisor.d.ts +52 -0
- package/src/local-dev/fleet-supervisor.js +384 -0
- package/src/local-dev/fleet-supervisor.js.map +1 -0
- package/src/local-dev/gateway.js +1 -1
- package/src/local-dev/gateway.js.map +1 -1
- package/src/local-dev/identity.js +4 -6
- package/src/local-dev/identity.js.map +1 -1
- package/src/local-dev/index.d.ts +1 -0
- package/src/local-dev/index.js +1 -0
- package/src/local-dev/index.js.map +1 -1
- package/src/local-dev/local-context.d.ts +62 -0
- package/src/local-dev/local-context.js +299 -0
- package/src/local-dev/local-context.js.map +1 -0
- package/src/local-dev/nx-workspace.d.ts +45 -0
- package/src/local-dev/nx-workspace.js +228 -0
- package/src/local-dev/nx-workspace.js.map +1 -0
- package/src/local-dev/personal-secret-ledger.d.ts +75 -0
- package/src/local-dev/personal-secret-ledger.js +391 -0
- package/src/local-dev/personal-secret-ledger.js.map +1 -0
- package/src/local-dev/personal-stage.d.ts +18 -0
- package/src/local-dev/personal-stage.js +129 -0
- package/src/local-dev/personal-stage.js.map +1 -0
- package/src/local-dev/private-state.d.ts +17 -0
- package/src/local-dev/private-state.js +254 -0
- package/src/local-dev/private-state.js.map +1 -0
- package/src/local-dev/process-identity.d.ts +9 -0
- package/src/local-dev/process-identity.js +79 -0
- package/src/local-dev/process-identity.js.map +1 -0
- package/src/local-dev/runtime-paths.d.ts +17 -0
- package/src/local-dev/runtime-paths.js +33 -0
- package/src/local-dev/runtime-paths.js.map +1 -0
- package/src/local-dev/secret-slice-claim.d.ts +17 -0
- package/src/local-dev/secret-slice-claim.js +75 -0
- package/src/local-dev/secret-slice-claim.js.map +1 -0
- package/src/local-dev/slice-claim.d.ts +36 -0
- package/src/local-dev/slice-claim.js +199 -0
- package/src/local-dev/slice-claim.js.map +1 -0
- package/src/local-dev/slice-runner.d.ts +121 -0
- package/src/local-dev/slice-runner.js +715 -0
- package/src/local-dev/slice-runner.js.map +1 -0
- package/src/local-dev/tls.js +51 -17
- package/src/local-dev/tls.js.map +1 -1
- package/src/ownership/composition.d.ts +5 -2
- package/src/ownership/composition.js +26 -3
- package/src/ownership/composition.js.map +1 -1
- package/src/ownership/hash.d.ts +1 -1
- package/src/ownership/hash.js +3 -1
- package/src/ownership/hash.js.map +1 -1
- package/src/ownership/record.d.ts +32 -1
- package/src/ownership/record.js +139 -2
- package/src/ownership/record.js.map +1 -1
- package/src/performance/cost-collection.d.ts +225 -0
- package/src/performance/cost-collection.js +825 -0
- package/src/performance/cost-collection.js.map +1 -0
- package/src/performance/cost-controls.d.ts +131 -0
- package/src/performance/cost-controls.js +336 -0
- package/src/performance/cost-controls.js.map +1 -0
- package/src/performance/evidence.d.ts +140 -0
- package/src/performance/evidence.js +599 -0
- package/src/performance/evidence.js.map +1 -0
- package/src/performance/index.d.ts +10 -0
- package/src/performance/index.js +14 -0
- package/src/performance/index.js.map +1 -0
- package/src/performance/load-safety.d.ts +84 -0
- package/src/performance/load-safety.js +346 -0
- package/src/performance/load-safety.js.map +1 -0
- package/src/performance/model.d.ts +129 -0
- package/src/performance/model.js +452 -0
- package/src/performance/model.js.map +1 -0
- package/src/performance/pr-artifact-budget.d.ts +42 -0
- package/src/performance/pr-artifact-budget.js +151 -0
- package/src/performance/pr-artifact-budget.js.map +1 -0
- package/src/performance/runner.d.ts +75 -0
- package/src/performance/runner.js +227 -0
- package/src/performance/runner.js.map +1 -0
- package/src/performance/scenario-endpoint.d.ts +1 -0
- package/src/performance/scenario-endpoint.js +5 -0
- package/src/performance/scenario-endpoint.js.map +1 -0
- package/src/performance/scenario.d.ts +193 -0
- package/src/performance/scenario.js +736 -0
- package/src/performance/scenario.js.map +1 -0
- package/src/performance/test-fixtures.d.ts +7 -0
- package/src/performance/test-fixtures.js +169 -0
- package/src/performance/test-fixtures.js.map +1 -0
- package/src/performance/unit-cost.d.ts +105 -0
- package/src/performance/unit-cost.js +364 -0
- package/src/performance/unit-cost.js.map +1 -0
- package/src/release/index.d.ts +4 -0
- package/src/release/index.js +8 -0
- package/src/release/index.js.map +1 -0
- package/src/release/lifecycle.d.ts +132 -0
- package/src/release/lifecycle.js +411 -0
- package/src/release/lifecycle.js.map +1 -0
- package/src/release/manifest.d.ts +148 -0
- package/src/release/manifest.js +503 -0
- package/src/release/manifest.js.map +1 -0
- package/src/release/rollout.d.ts +170 -0
- package/src/release/rollout.js +578 -0
- package/src/release/rollout.js.map +1 -0
- package/src/release/source-authority.d.ts +19 -0
- package/src/release/source-authority.js +195 -0
- package/src/release/source-authority.js.map +1 -0
- package/src/repository-policy/deployment-plan.d.ts +2 -1
- package/src/repository-policy/deployment-plan.js +2 -0
- package/src/repository-policy/deployment-plan.js.map +1 -1
- package/src/repository-policy/policy.d.ts +1 -1
- package/src/repository-policy/policy.js +29 -25
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/aggregate-count-evidence-v1.json +135 -0
- package/src/schemas/api-contract-baseline-v1.json +674 -0
- package/src/schemas/api-contract-compatibility-report-v1.json +126 -0
- package/src/schemas/aws-billing-actual-evidence-v1.json +407 -0
- package/src/schemas/blueprint-v1.json +18 -1
- package/src/schemas/data-lifecycle-policy-v1.json +517 -0
- package/src/schemas/generated-ownership-v2.json +22 -0
- package/src/schemas/performance-policy-v1.json +335 -0
- package/src/schemas/repository-policy-v1.json +1 -0
- package/src/schemas/testing-evidence-quarantine-v1.json +168 -0
- package/src/schemas/testing-evidence-result-v1.json +319 -0
- package/src/secrets/adapters.d.ts +49 -0
- package/src/secrets/adapters.js +184 -0
- package/src/secrets/adapters.js.map +1 -0
- package/src/secrets/aws-control-plane.d.ts +20 -0
- package/src/secrets/aws-control-plane.js +255 -0
- package/src/secrets/aws-control-plane.js.map +1 -0
- package/src/secrets/declaration-verification.d.ts +11 -0
- package/src/secrets/declaration-verification.js +68 -0
- package/src/secrets/declaration-verification.js.map +1 -0
- package/src/secrets/guardrails.d.ts +26 -0
- package/src/secrets/guardrails.js +328 -0
- package/src/secrets/guardrails.js.map +1 -0
- package/src/secrets/index.d.ts +12 -0
- package/src/secrets/index.js +16 -0
- package/src/secrets/index.js.map +1 -0
- package/src/secrets/metadata.d.ts +48 -0
- package/src/secrets/metadata.js +171 -0
- package/src/secrets/metadata.js.map +1 -0
- package/src/secrets/model.d.ts +49 -0
- package/src/secrets/model.js +125 -0
- package/src/secrets/model.js.map +1 -0
- package/src/secrets/operator.d.ts +101 -0
- package/src/secrets/operator.js +229 -0
- package/src/secrets/operator.js.map +1 -0
- package/src/secrets/permissions.d.ts +34 -0
- package/src/secrets/permissions.js +86 -0
- package/src/secrets/permissions.js.map +1 -0
- package/src/secrets/personal-command.d.ts +83 -0
- package/src/secrets/personal-command.js +197 -0
- package/src/secrets/personal-command.js.map +1 -0
- package/src/secrets/personal-ledger.d.ts +21 -0
- package/src/secrets/personal-ledger.js +135 -0
- package/src/secrets/personal-ledger.js.map +1 -0
- package/src/secrets/registry.d.ts +9 -0
- package/src/secrets/registry.js +86 -0
- package/src/secrets/registry.js.map +1 -0
- package/src/secrets/verification.d.ts +18 -0
- package/src/secrets/verification.js +139 -0
- package/src/secrets/verification.js.map +1 -0
- package/src/secrets/workload-access.d.ts +46 -0
- package/src/secrets/workload-access.js +163 -0
- package/src/secrets/workload-access.js.map +1 -0
- package/src/supply-chain/action-pins.d.ts +26 -0
- package/src/supply-chain/action-pins.js +208 -0
- package/src/supply-chain/action-pins.js.map +1 -0
- package/src/supply-chain/blueprint-trust-git.d.ts +130 -0
- package/src/supply-chain/blueprint-trust-git.js +1581 -0
- package/src/supply-chain/blueprint-trust-git.js.map +1 -0
- package/src/supply-chain/blueprint-trust-process.d.ts +4 -0
- package/src/supply-chain/blueprint-trust-process.js +88 -0
- package/src/supply-chain/blueprint-trust-process.js.map +1 -0
- package/src/supply-chain/blueprint-trust.d.ts +354 -0
- package/src/supply-chain/blueprint-trust.js +1558 -0
- package/src/supply-chain/blueprint-trust.js.map +1 -0
- package/src/supply-chain/blueprint-verification-authority.d.ts +62 -0
- package/src/supply-chain/blueprint-verification-authority.js +588 -0
- package/src/supply-chain/blueprint-verification-authority.js.map +1 -0
- package/src/supply-chain/blueprint-verification-execution.d.ts +68 -0
- package/src/supply-chain/blueprint-verification-execution.js +624 -0
- package/src/supply-chain/blueprint-verification-execution.js.map +1 -0
- package/src/supply-chain/build-output.d.ts +35 -0
- package/src/supply-chain/build-output.js +398 -0
- package/src/supply-chain/build-output.js.map +1 -0
- package/src/supply-chain/common.d.ts +21 -0
- package/src/supply-chain/common.js +107 -0
- package/src/supply-chain/common.js.map +1 -0
- package/src/supply-chain/container-artifact-contract.d.ts +23 -0
- package/src/supply-chain/container-artifact-contract.js +208 -0
- package/src/supply-chain/container-artifact-contract.js.map +1 -0
- package/src/supply-chain/container-release.d.ts +119 -0
- package/src/supply-chain/container-release.js +496 -0
- package/src/supply-chain/container-release.js.map +1 -0
- package/src/supply-chain/ecr-applicability.d.ts +19 -0
- package/src/supply-chain/ecr-applicability.js +103 -0
- package/src/supply-chain/ecr-applicability.js.map +1 -0
- package/src/supply-chain/ecr-scanning.d.ts +83 -0
- package/src/supply-chain/ecr-scanning.js +321 -0
- package/src/supply-chain/ecr-scanning.js.map +1 -0
- package/src/supply-chain/ecs-deployed-image.d.ts +85 -0
- package/src/supply-chain/ecs-deployed-image.js +300 -0
- package/src/supply-chain/ecs-deployed-image.js.map +1 -0
- package/src/supply-chain/errors.d.ts +6 -0
- package/src/supply-chain/errors.js +15 -0
- package/src/supply-chain/errors.js.map +1 -0
- package/src/supply-chain/generated-blueprint-trust-command.d.ts +4 -0
- package/src/supply-chain/generated-blueprint-trust-command.js +1362 -0
- package/src/supply-chain/generated-blueprint-trust-command.js.map +1 -0
- package/src/supply-chain/generated-command.d.ts +1 -0
- package/src/supply-chain/generated-command.js +687 -0
- package/src/supply-chain/generated-command.js.map +1 -0
- package/src/supply-chain/generated-container-release-command.d.ts +16 -0
- package/src/supply-chain/generated-container-release-command.js +2087 -0
- package/src/supply-chain/generated-container-release-command.js.map +1 -0
- package/src/supply-chain/generated-ecr-collector-command.d.ts +21 -0
- package/src/supply-chain/generated-ecr-collector-command.js +1338 -0
- package/src/supply-chain/generated-ecr-collector-command.js.map +1 -0
- package/src/supply-chain/generated-files.d.ts +13 -0
- package/src/supply-chain/generated-files.js +401 -0
- package/src/supply-chain/generated-files.js.map +1 -0
- package/src/supply-chain/generated-scanner-command.d.ts +1 -0
- package/src/supply-chain/generated-scanner-command.js +718 -0
- package/src/supply-chain/generated-scanner-command.js.map +1 -0
- package/src/supply-chain/index.d.ts +28 -0
- package/src/supply-chain/index.js +35 -0
- package/src/supply-chain/index.js.map +1 -0
- package/src/supply-chain/inventory.d.ts +79 -0
- package/src/supply-chain/inventory.js +717 -0
- package/src/supply-chain/inventory.js.map +1 -0
- package/src/supply-chain/license-expression.d.ts +7 -0
- package/src/supply-chain/license-expression.js +128 -0
- package/src/supply-chain/license-expression.js.map +1 -0
- package/src/supply-chain/pnpm-toolchain-authority.d.ts +31 -0
- package/src/supply-chain/pnpm-toolchain-authority.js +316 -0
- package/src/supply-chain/pnpm-toolchain-authority.js.map +1 -0
- package/src/supply-chain/policy.d.ts +105 -0
- package/src/supply-chain/policy.js +301 -0
- package/src/supply-chain/policy.js.map +1 -0
- package/src/supply-chain/publication.d.ts +48 -0
- package/src/supply-chain/publication.js +85 -0
- package/src/supply-chain/publication.js.map +1 -0
- package/src/supply-chain/sbom.d.ts +228 -0
- package/src/supply-chain/sbom.js +826 -0
- package/src/supply-chain/sbom.js.map +1 -0
- package/src/supply-chain/scanner.d.ts +77 -0
- package/src/supply-chain/scanner.js +502 -0
- package/src/supply-chain/scanner.js.map +1 -0
- package/src/supply-chain/vendored-source.d.ts +95 -0
- package/src/supply-chain/vendored-source.js +315 -0
- package/src/supply-chain/vendored-source.js.map +1 -0
- package/src/testing-evidence/fixture-scope.d.ts +52 -0
- package/src/testing-evidence/fixture-scope.js +140 -0
- package/src/testing-evidence/fixture-scope.js.map +1 -0
- package/src/testing-evidence/index.d.ts +5 -0
- package/src/testing-evidence/index.js +9 -0
- package/src/testing-evidence/index.js.map +1 -0
- package/src/testing-evidence/quarantine.d.ts +48 -0
- package/src/testing-evidence/quarantine.js +253 -0
- package/src/testing-evidence/quarantine.js.map +1 -0
- package/src/testing-evidence/result.d.ts +108 -0
- package/src/testing-evidence/result.js +571 -0
- package/src/testing-evidence/result.js.map +1 -0
- package/src/testing-evidence/runner-adapter.d.ts +51 -0
- package/src/testing-evidence/runner-adapter.js +288 -0
- package/src/testing-evidence/runner-adapter.js.map +1 -0
- package/src/testing-evidence/sensitive-artifacts.d.ts +13 -0
- package/src/testing-evidence/sensitive-artifacts.js +93 -0
- package/src/testing-evidence/sensitive-artifacts.js.map +1 -0
- package/src/work-markers/work-markers.js +4 -3
- package/src/work-markers/work-markers.js.map +1 -1
- package/src/workload-roles/account-baseline.d.ts +132 -0
- package/src/workload-roles/account-baseline.js +743 -0
- package/src/workload-roles/account-baseline.js.map +1 -0
- package/src/workload-roles/authority.d.ts +38 -0
- package/src/workload-roles/authority.js +156 -0
- package/src/workload-roles/authority.js.map +1 -0
- package/src/workload-roles/aws-adapter.d.ts +99 -0
- package/src/workload-roles/aws-adapter.js +416 -0
- package/src/workload-roles/aws-adapter.js.map +1 -0
- package/src/workload-roles/aws-internal-handler.d.ts +27 -0
- package/src/workload-roles/aws-internal-handler.js +58 -0
- package/src/workload-roles/aws-internal-handler.js.map +1 -0
- package/src/workload-roles/aws-s3-state.d.ts +52 -0
- package/src/workload-roles/aws-s3-state.js +164 -0
- package/src/workload-roles/aws-s3-state.js.map +1 -0
- package/src/workload-roles/aws-sdk-control-plane.d.ts +12 -0
- package/src/workload-roles/aws-sdk-control-plane.js +291 -0
- package/src/workload-roles/aws-sdk-control-plane.js.map +1 -0
- package/src/workload-roles/boundary.d.ts +33 -0
- package/src/workload-roles/boundary.js +130 -0
- package/src/workload-roles/boundary.js.map +1 -0
- package/src/workload-roles/convergence.d.ts +66 -0
- package/src/workload-roles/convergence.js +186 -0
- package/src/workload-roles/convergence.js.map +1 -0
- package/src/workload-roles/effective-policy.d.ts +51 -0
- package/src/workload-roles/effective-policy.js +183 -0
- package/src/workload-roles/effective-policy.js.map +1 -0
- package/src/workload-roles/handler.d.ts +43 -0
- package/src/workload-roles/handler.js +130 -0
- package/src/workload-roles/handler.js.map +1 -0
- package/src/workload-roles/history.d.ts +47 -0
- package/src/workload-roles/history.js +324 -0
- package/src/workload-roles/history.js.map +1 -0
- package/src/workload-roles/index.d.ts +17 -0
- package/src/workload-roles/index.js +21 -0
- package/src/workload-roles/index.js.map +1 -0
- package/src/workload-roles/injection.d.ts +119 -0
- package/src/workload-roles/injection.js +495 -0
- package/src/workload-roles/injection.js.map +1 -0
- package/src/workload-roles/manifest.d.ts +54 -0
- package/src/workload-roles/manifest.js +343 -0
- package/src/workload-roles/manifest.js.map +1 -0
- package/src/workload-roles/provisioner.d.ts +70 -0
- package/src/workload-roles/provisioner.js +231 -0
- package/src/workload-roles/provisioner.js.map +1 -0
- package/src/workload-roles/registration.d.ts +101 -0
- package/src/workload-roles/registration.js +457 -0
- package/src/workload-roles/registration.js.map +1 -0
- package/src/workload-roles/stage-boundary.d.ts +31 -0
- package/src/workload-roles/stage-boundary.js +208 -0
- package/src/workload-roles/stage-boundary.js.map +1 -0
- package/src/workload-roles/standard-slice.d.ts +54 -0
- package/src/workload-roles/standard-slice.js +252 -0
- package/src/workload-roles/standard-slice.js.map +1 -0
- package/migrations/standard-pre-v1-to-v1.md +0 -11
- package/src/foundation/aurora-logical-database.d.ts +0 -76
- package/src/foundation/aurora-logical-database.js +0 -419
- package/src/foundation/aurora-logical-database.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const PRIVATE_DIRECTORY_MODE: 448;
|
|
2
|
+
export declare const PRIVATE_FILE_MODE: 384;
|
|
3
|
+
export declare const PRIVATE_STATE_MAX_BYTES: number;
|
|
4
|
+
export type PrivatePathKind = 'directory' | 'file';
|
|
5
|
+
export interface WindowsPrivateAcl {
|
|
6
|
+
assert(path: string, kind: PrivatePathKind): void;
|
|
7
|
+
harden(path: string, kind: PrivatePathKind): void;
|
|
8
|
+
}
|
|
9
|
+
export interface PrivateStateSecurity {
|
|
10
|
+
platform?: NodeJS.Platform;
|
|
11
|
+
windowsAcl?: WindowsPrivateAcl;
|
|
12
|
+
}
|
|
13
|
+
export declare function assertPrivatePath(path: string, kind: PrivatePathKind, security?: PrivateStateSecurity): void;
|
|
14
|
+
export declare function ensurePrivateDirectory(path: string, security?: PrivateStateSecurity): void;
|
|
15
|
+
export declare function createPrivateFileExclusive(path: string, contents: string | Buffer, security?: PrivateStateSecurity): boolean;
|
|
16
|
+
export declare function atomicWritePrivateFile(path: string, contents: string | Buffer, security?: PrivateStateSecurity): void;
|
|
17
|
+
export declare function readPrivateFile(path: string, security?: PrivateStateSecurity): Buffer;
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRIVATE_STATE_MAX_BYTES = exports.PRIVATE_FILE_MODE = exports.PRIVATE_DIRECTORY_MODE = void 0;
|
|
4
|
+
exports.assertPrivatePath = assertPrivatePath;
|
|
5
|
+
exports.ensurePrivateDirectory = ensurePrivateDirectory;
|
|
6
|
+
exports.createPrivateFileExclusive = createPrivateFileExclusive;
|
|
7
|
+
exports.atomicWritePrivateFile = atomicWritePrivateFile;
|
|
8
|
+
exports.readPrivateFile = readPrivateFile;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_os_1 = require("node:os");
|
|
13
|
+
const node_path_1 = require("node:path");
|
|
14
|
+
const errors_js_1 = require("./errors.js");
|
|
15
|
+
exports.PRIVATE_DIRECTORY_MODE = 0o700;
|
|
16
|
+
exports.PRIVATE_FILE_MODE = 0o600;
|
|
17
|
+
exports.PRIVATE_STATE_MAX_BYTES = 64 * 1024;
|
|
18
|
+
const WINDOWS_HARDEN_ACL = String.raw `
|
|
19
|
+
$ErrorActionPreference = 'Stop'
|
|
20
|
+
$path = $env:EBK_PRIVATE_PATH
|
|
21
|
+
$kind = $env:EBK_PRIVATE_KIND
|
|
22
|
+
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
|
|
23
|
+
if ($kind -eq 'directory') {
|
|
24
|
+
$info = [System.IO.DirectoryInfo]::new($path)
|
|
25
|
+
} else {
|
|
26
|
+
$info = [System.IO.FileInfo]::new($path)
|
|
27
|
+
}
|
|
28
|
+
$acl = $info.GetAccessControl()
|
|
29
|
+
$acl.SetAccessRuleProtection($true, $false)
|
|
30
|
+
foreach ($rule in @($acl.Access)) {
|
|
31
|
+
[void]$acl.RemoveAccessRuleSpecific($rule)
|
|
32
|
+
}
|
|
33
|
+
$rights = [System.Security.AccessControl.FileSystemRights]::FullControl
|
|
34
|
+
$type = [System.Security.AccessControl.AccessControlType]::Allow
|
|
35
|
+
if ($kind -eq 'directory') {
|
|
36
|
+
$inheritance = [System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
|
|
37
|
+
$propagation = [System.Security.AccessControl.PropagationFlags]::None
|
|
38
|
+
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
|
|
39
|
+
$identity.User, $rights, $inheritance, $propagation, $type
|
|
40
|
+
)
|
|
41
|
+
} else {
|
|
42
|
+
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new(
|
|
43
|
+
$identity.User, $rights, $type
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
$acl.AddAccessRule($rule)
|
|
47
|
+
$info.SetAccessControl($acl)
|
|
48
|
+
`;
|
|
49
|
+
const WINDOWS_ASSERT_PRIVATE_ACL = String.raw `
|
|
50
|
+
$ErrorActionPreference = 'Stop'
|
|
51
|
+
$path = $env:EBK_PRIVATE_PATH
|
|
52
|
+
$kind = $env:EBK_PRIVATE_KIND
|
|
53
|
+
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
|
|
54
|
+
if ($kind -eq 'directory') {
|
|
55
|
+
$info = [System.IO.DirectoryInfo]::new($path)
|
|
56
|
+
} else {
|
|
57
|
+
$info = [System.IO.FileInfo]::new($path)
|
|
58
|
+
}
|
|
59
|
+
$acl = $info.GetAccessControl()
|
|
60
|
+
if (-not $acl.AreAccessRulesProtected) {
|
|
61
|
+
throw 'ACL inheritance is enabled.'
|
|
62
|
+
}
|
|
63
|
+
$allowRules = @($acl.Access | Where-Object {
|
|
64
|
+
$_.AccessControlType -eq [System.Security.AccessControl.AccessControlType]::Allow
|
|
65
|
+
})
|
|
66
|
+
$unsafeRules = @($allowRules | Where-Object {
|
|
67
|
+
$_.IdentityReference.Translate([System.Security.Principal.SecurityIdentifier]).Value -ne $identity.User.Value
|
|
68
|
+
})
|
|
69
|
+
$selfRules = @($allowRules | Where-Object {
|
|
70
|
+
$_.IdentityReference.Translate([System.Security.Principal.SecurityIdentifier]).Value -eq $identity.User.Value
|
|
71
|
+
})
|
|
72
|
+
if ($unsafeRules.Count -ne 0 -or $selfRules.Count -eq 0) {
|
|
73
|
+
throw 'ACL grants access beyond the current user or omits the current user.'
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
function runWindowsAclScript(script, path, kind) {
|
|
77
|
+
const systemRoot = process.env.SystemRoot;
|
|
78
|
+
if (!systemRoot) {
|
|
79
|
+
throw new Error('SystemRoot is unavailable.');
|
|
80
|
+
}
|
|
81
|
+
const powershell = (0, node_path_1.join)(systemRoot, 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe');
|
|
82
|
+
(0, node_child_process_1.execFileSync)(powershell, [
|
|
83
|
+
'-NoLogo',
|
|
84
|
+
'-NoProfile',
|
|
85
|
+
'-NonInteractive',
|
|
86
|
+
'-EncodedCommand',
|
|
87
|
+
Buffer.from(script, 'utf16le').toString('base64'),
|
|
88
|
+
], {
|
|
89
|
+
env: {
|
|
90
|
+
...process.env,
|
|
91
|
+
EBK_PRIVATE_KIND: kind,
|
|
92
|
+
EBK_PRIVATE_PATH: path,
|
|
93
|
+
},
|
|
94
|
+
stdio: 'pipe',
|
|
95
|
+
timeout: 15_000,
|
|
96
|
+
windowsHide: true,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const defaultWindowsAcl = {
|
|
100
|
+
assert(path, kind) {
|
|
101
|
+
runWindowsAclScript(WINDOWS_ASSERT_PRIVATE_ACL, path, kind);
|
|
102
|
+
},
|
|
103
|
+
harden(path, kind) {
|
|
104
|
+
runWindowsAclScript(WINDOWS_HARDEN_ACL, path, kind);
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
function platformFor(security) {
|
|
108
|
+
return security.platform ?? (0, node_os_1.platform)();
|
|
109
|
+
}
|
|
110
|
+
function windowsAclFor(security) {
|
|
111
|
+
return security.windowsAcl ?? defaultWindowsAcl;
|
|
112
|
+
}
|
|
113
|
+
function assertNotSymbolicLink(path, kind) {
|
|
114
|
+
const status = (0, node_fs_1.lstatSync)(path);
|
|
115
|
+
if (status.isSymbolicLink()) {
|
|
116
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Private ${kind} ${path} must not be a symbolic link.`);
|
|
117
|
+
}
|
|
118
|
+
if ((kind === 'directory' && !status.isDirectory()) ||
|
|
119
|
+
(kind === 'file' && !status.isFile())) {
|
|
120
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Private path ${path} is not a ${kind}.`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function hardenPrivatePath(path, kind, security) {
|
|
124
|
+
try {
|
|
125
|
+
if (platformFor(security) === 'win32') {
|
|
126
|
+
windowsAclFor(security).harden(path, kind);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
(0, node_fs_1.chmodSync)(path, kind === 'directory' ? exports.PRIVATE_DIRECTORY_MODE : exports.PRIVATE_FILE_MODE);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Unable to restrict private ${kind} ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function assertPrivatePath(path, kind, security = {}) {
|
|
137
|
+
try {
|
|
138
|
+
assertNotSymbolicLink(path, kind);
|
|
139
|
+
if (platformFor(security) === 'win32') {
|
|
140
|
+
windowsAclFor(security).assert(path, kind);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const expected = kind === 'directory' ? exports.PRIVATE_DIRECTORY_MODE : exports.PRIVATE_FILE_MODE;
|
|
144
|
+
const mode = (0, node_fs_1.statSync)(path).mode & 0o777;
|
|
145
|
+
if (mode !== expected) {
|
|
146
|
+
throw new Error(`mode is ${mode.toString(8)} instead of ${expected.toString(8)}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (error instanceof errors_js_1.LocalDevContractError) {
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Private ${kind} ${path} is not current-user-only: ${error instanceof Error ? error.message : String(error)}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function ensurePrivateDirectory(path, security = {}) {
|
|
157
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
158
|
+
assertNotSymbolicLink(path, 'directory');
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
(0, node_fs_1.mkdirSync)(path, { mode: exports.PRIVATE_DIRECTORY_MODE, recursive: true });
|
|
162
|
+
assertNotSymbolicLink(path, 'directory');
|
|
163
|
+
}
|
|
164
|
+
hardenPrivatePath(path, 'directory', security);
|
|
165
|
+
assertPrivatePath(path, 'directory', security);
|
|
166
|
+
}
|
|
167
|
+
function assertBoundedContents(contents) {
|
|
168
|
+
if (Buffer.byteLength(contents) > exports.PRIVATE_STATE_MAX_BYTES) {
|
|
169
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Private state exceeds ${exports.PRIVATE_STATE_MAX_BYTES} bytes.`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function writeOpenedFile(descriptor, contents) {
|
|
173
|
+
(0, node_fs_1.writeFileSync)(descriptor, contents);
|
|
174
|
+
(0, node_fs_1.fsyncSync)(descriptor);
|
|
175
|
+
}
|
|
176
|
+
function createPrivateFileExclusive(path, contents, security = {}) {
|
|
177
|
+
assertBoundedContents(contents);
|
|
178
|
+
ensurePrivateDirectory((0, node_path_1.dirname)(path), security);
|
|
179
|
+
let descriptor;
|
|
180
|
+
let created = false;
|
|
181
|
+
try {
|
|
182
|
+
descriptor = (0, node_fs_1.openSync)(path, node_fs_1.constants.O_CREAT | node_fs_1.constants.O_EXCL | node_fs_1.constants.O_WRONLY, exports.PRIVATE_FILE_MODE);
|
|
183
|
+
created = true;
|
|
184
|
+
writeOpenedFile(descriptor, contents);
|
|
185
|
+
(0, node_fs_1.closeSync)(descriptor);
|
|
186
|
+
descriptor = undefined;
|
|
187
|
+
hardenPrivatePath(path, 'file', security);
|
|
188
|
+
assertPrivatePath(path, 'file', security);
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
if (descriptor !== undefined) {
|
|
193
|
+
(0, node_fs_1.closeSync)(descriptor);
|
|
194
|
+
}
|
|
195
|
+
if (error &&
|
|
196
|
+
typeof error === 'object' &&
|
|
197
|
+
'code' in error &&
|
|
198
|
+
error.code === 'EEXIST') {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
if (created && (0, node_fs_1.existsSync)(path)) {
|
|
202
|
+
try {
|
|
203
|
+
(0, node_fs_1.unlinkSync)(path);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// Preserve the original failure; callers will classify residual state.
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function atomicWritePrivateFile(path, contents, security = {}) {
|
|
213
|
+
assertBoundedContents(contents);
|
|
214
|
+
const directory = (0, node_path_1.dirname)(path);
|
|
215
|
+
ensurePrivateDirectory(directory, security);
|
|
216
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
217
|
+
assertPrivatePath(path, 'file', security);
|
|
218
|
+
}
|
|
219
|
+
const temporaryPath = (0, node_path_1.join)(directory, `.${(0, node_path_1.basename)(path)}.${process.pid}.${(0, node_crypto_1.randomBytes)(8).toString('hex')}.tmp`);
|
|
220
|
+
let descriptor;
|
|
221
|
+
try {
|
|
222
|
+
descriptor = (0, node_fs_1.openSync)(temporaryPath, node_fs_1.constants.O_CREAT | node_fs_1.constants.O_EXCL | node_fs_1.constants.O_WRONLY, exports.PRIVATE_FILE_MODE);
|
|
223
|
+
writeOpenedFile(descriptor, contents);
|
|
224
|
+
(0, node_fs_1.closeSync)(descriptor);
|
|
225
|
+
descriptor = undefined;
|
|
226
|
+
hardenPrivatePath(temporaryPath, 'file', security);
|
|
227
|
+
assertPrivatePath(temporaryPath, 'file', security);
|
|
228
|
+
(0, node_fs_1.renameSync)(temporaryPath, path);
|
|
229
|
+
assertPrivatePath(path, 'file', security);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
if (descriptor !== undefined) {
|
|
233
|
+
(0, node_fs_1.closeSync)(descriptor);
|
|
234
|
+
}
|
|
235
|
+
if ((0, node_fs_1.existsSync)(temporaryPath)) {
|
|
236
|
+
try {
|
|
237
|
+
(0, node_fs_1.unlinkSync)(temporaryPath);
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// Preserve the original failure and leave a private diagnostic remnant.
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function readPrivateFile(path, security = {}) {
|
|
247
|
+
assertPrivatePath(path, 'file', security);
|
|
248
|
+
const status = (0, node_fs_1.statSync)(path);
|
|
249
|
+
if (status.size > exports.PRIVATE_STATE_MAX_BYTES) {
|
|
250
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', `Private state ${path} exceeds ${exports.PRIVATE_STATE_MAX_BYTES} bytes.`);
|
|
251
|
+
}
|
|
252
|
+
return (0, node_fs_1.readFileSync)(path);
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=private-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-state.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/private-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FleetProcessIdentity, ProcessIdentityProbe } from './fleet-lock.js';
|
|
2
|
+
export interface ProcessIdentityEffects {
|
|
3
|
+
exists?: (path: string) => boolean;
|
|
4
|
+
platform?: NodeJS.Platform;
|
|
5
|
+
readFile?: (path: string) => string;
|
|
6
|
+
run?: (executable: string, arguments_: readonly string[]) => string;
|
|
7
|
+
}
|
|
8
|
+
export declare function captureProcessIdentity(pid?: number, now?: Date, effects?: ProcessIdentityEffects): FleetProcessIdentity;
|
|
9
|
+
export declare function probeProcessIdentity(identity: FleetProcessIdentity, effects?: ProcessIdentityEffects): ProcessIdentityProbe;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.captureProcessIdentity = captureProcessIdentity;
|
|
4
|
+
exports.probeProcessIdentity = probeProcessIdentity;
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_os_1 = require("node:os");
|
|
8
|
+
const contract_validation_js_1 = require("./contract-validation.js");
|
|
9
|
+
function processMarker(pid, effects = {}) {
|
|
10
|
+
const targetPlatform = effects.platform ?? (0, node_os_1.platform)();
|
|
11
|
+
const exists = effects.exists ?? node_fs_1.existsSync;
|
|
12
|
+
const readFile = effects.readFile ?? ((path) => (0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
13
|
+
const run = effects.run ??
|
|
14
|
+
((executable, arguments_) => (0, node_child_process_1.execFileSync)(executable, [...arguments_], {
|
|
15
|
+
encoding: 'utf8',
|
|
16
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
17
|
+
timeout: 3_000,
|
|
18
|
+
windowsHide: true,
|
|
19
|
+
}).trim());
|
|
20
|
+
try {
|
|
21
|
+
if (targetPlatform === 'linux') {
|
|
22
|
+
const path = `/proc/${pid}/stat`;
|
|
23
|
+
if (!exists(path))
|
|
24
|
+
return undefined;
|
|
25
|
+
const value = readFile(path);
|
|
26
|
+
const closing = value.lastIndexOf(')');
|
|
27
|
+
if (closing === -1)
|
|
28
|
+
return undefined;
|
|
29
|
+
const fields = value.slice(closing + 2).split(' ');
|
|
30
|
+
const startTicks = fields[19];
|
|
31
|
+
return startTicks ? `linux:${pid}:${startTicks}` : undefined;
|
|
32
|
+
}
|
|
33
|
+
if (targetPlatform === 'darwin') {
|
|
34
|
+
const marker = run('ps', ['-o', 'lstart=', '-p', String(pid)]);
|
|
35
|
+
return marker ? `darwin:${pid}:${marker}` : undefined;
|
|
36
|
+
}
|
|
37
|
+
if (targetPlatform === 'win32') {
|
|
38
|
+
const marker = run('powershell.exe', [
|
|
39
|
+
'-NoLogo',
|
|
40
|
+
'-NoProfile',
|
|
41
|
+
'-NonInteractive',
|
|
42
|
+
'-Command',
|
|
43
|
+
`(Get-CimInstance Win32_Process -Filter "ProcessId=${pid}").CreationDate.ToUniversalTime().ToString('o')`,
|
|
44
|
+
]);
|
|
45
|
+
return marker ? `win32:${pid}:${marker}` : undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
function captureProcessIdentity(pid = process.pid, now = new Date(), effects = {}) {
|
|
54
|
+
const marker = processMarker(pid, effects);
|
|
55
|
+
if (!marker) {
|
|
56
|
+
throw new Error(`The operating system cannot provide a PID-reuse-safe identity for process ${pid}.`);
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
pid,
|
|
60
|
+
processIdentity: (0, contract_validation_js_1.sha256Digest)(marker),
|
|
61
|
+
startedAt: now.toISOString(),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function probeProcessIdentity(identity, effects = {}) {
|
|
65
|
+
const marker = processMarker(identity.pid, effects);
|
|
66
|
+
if (!marker) {
|
|
67
|
+
try {
|
|
68
|
+
process.kill(identity.pid, 0);
|
|
69
|
+
return 'ambiguous';
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return 'absent';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return (0, contract_validation_js_1.sha256Digest)(marker) === identity.processIdentity
|
|
76
|
+
? 'matching'
|
|
77
|
+
: 'absent';
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=process-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/process-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface FleetRuntimePaths {
|
|
2
|
+
appData: string;
|
|
3
|
+
capability: string;
|
|
4
|
+
controlSocket: string;
|
|
5
|
+
heartbeat: string;
|
|
6
|
+
lock: string;
|
|
7
|
+
logDirectory: string;
|
|
8
|
+
personalSecretLedgersDirectory: string;
|
|
9
|
+
runnersDirectory: string;
|
|
10
|
+
sessionDirectory: string;
|
|
11
|
+
sessionsDirectory: string;
|
|
12
|
+
sliceClaimsDirectory: string;
|
|
13
|
+
startup: string;
|
|
14
|
+
state: string;
|
|
15
|
+
supervisorPid: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function fleetRuntimePaths(fleetId: string, appData?: string): FleetRuntimePaths;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fleetRuntimePaths = fleetRuntimePaths;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const errors_js_1 = require("./errors.js");
|
|
6
|
+
const fleet_lock_js_1 = require("./fleet-lock.js");
|
|
7
|
+
const tls_js_1 = require("./tls.js");
|
|
8
|
+
function fleetRuntimePaths(fleetId, appData = (0, tls_js_1.defaultLocalDevAppData)()) {
|
|
9
|
+
const normalizedFleetId = (0, fleet_lock_js_1.validateFleetIdentitySlug)(fleetId, 'Fleet runtime fleetId');
|
|
10
|
+
if (!(0, node_path_1.isAbsolute)(appData)) {
|
|
11
|
+
throw new errors_js_1.LocalDevContractError('invalid-input', 'Fleet application-data path must be absolute.');
|
|
12
|
+
}
|
|
13
|
+
const normalizedAppData = (0, node_path_1.resolve)(appData);
|
|
14
|
+
const sessionsDirectory = (0, node_path_1.join)(normalizedAppData, 'sessions');
|
|
15
|
+
const sessionDirectory = (0, node_path_1.join)(sessionsDirectory, normalizedFleetId);
|
|
16
|
+
return {
|
|
17
|
+
appData: normalizedAppData,
|
|
18
|
+
capability: (0, node_path_1.join)(sessionDirectory, 'control.capability'),
|
|
19
|
+
controlSocket: (0, tls_js_1.createLocalIpcPath)(sessionDirectory, `fleet-control-${normalizedFleetId}`),
|
|
20
|
+
heartbeat: (0, node_path_1.join)(sessionDirectory, 'heartbeat.json'),
|
|
21
|
+
lock: (0, node_path_1.join)(sessionDirectory, 'fleet.lock'),
|
|
22
|
+
logDirectory: (0, node_path_1.join)(normalizedAppData, 'logs', normalizedFleetId),
|
|
23
|
+
personalSecretLedgersDirectory: (0, node_path_1.join)(normalizedAppData, 'personal-secret-ledgers'),
|
|
24
|
+
runnersDirectory: (0, node_path_1.join)(sessionDirectory, 'runners'),
|
|
25
|
+
sessionDirectory,
|
|
26
|
+
sessionsDirectory,
|
|
27
|
+
sliceClaimsDirectory: (0, node_path_1.join)(normalizedAppData, 'slice-claims'),
|
|
28
|
+
startup: (0, node_path_1.join)(sessionDirectory, 'startup.json'),
|
|
29
|
+
state: (0, node_path_1.join)(sessionDirectory, 'control-state.json'),
|
|
30
|
+
supervisorPid: (0, node_path_1.join)(sessionDirectory, 'supervisor.pid'),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=runtime-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-paths.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/runtime-paths.ts"],"names":[],"mappings":";;AAuBA,8CAuCC;AA9DD,yCAAsD;AAEtD,2CAAoD;AACpD,mDAA4D;AAC5D,qCAAsE;AAmBtE,SAAgB,iBAAiB,CAC/B,OAAe,EACf,OAAO,GAAG,IAAA,+BAAsB,GAAE;IAElC,MAAM,iBAAiB,GAAG,IAAA,yCAAyB,EACjD,OAAO,EACP,uBAAuB,CACxB,CAAC;IACF,IAAI,CAAC,IAAA,sBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,iCAAqB,CAC7B,eAAe,EACf,+CAA+C,CAChD,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAA,gBAAI,EAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IACpE,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,oBAAoB,CAAC;QACxD,aAAa,EAAE,IAAA,2BAAkB,EAC/B,gBAAgB,EAChB,iBAAiB,iBAAiB,EAAE,CACrC;QACD,SAAS,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACnD,IAAI,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,YAAY,CAAC;QAC1C,YAAY,EAAE,IAAA,gBAAI,EAAC,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAChE,8BAA8B,EAAE,IAAA,gBAAI,EAClC,iBAAiB,EACjB,yBAAyB,CAC1B;QACD,gBAAgB,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,SAAS,CAAC;QACnD,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB,EAAE,IAAA,gBAAI,EAAC,iBAAiB,EAAE,cAAc,CAAC;QAC7D,OAAO,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,cAAc,CAAC;QAC/C,KAAK,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,oBAAoB,CAAC;QACnD,aAAa,EAAE,IAAA,gBAAI,EAAC,gBAAgB,EAAE,gBAAgB,CAAC;KACxD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { inspectFleetLock, type ProcessIdentityProbe } from './fleet-lock.js';
|
|
2
|
+
import { readFleetState } from './fleet-state.js';
|
|
3
|
+
import { probeProcessIdentity } from './process-identity.js';
|
|
4
|
+
import { inspectSliceClaim } from './slice-claim.js';
|
|
5
|
+
export interface SecretSliceClaimAuthorityInput {
|
|
6
|
+
appData: string;
|
|
7
|
+
slice: string;
|
|
8
|
+
stage: string;
|
|
9
|
+
workspaceName: string;
|
|
10
|
+
workspaceRoot: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function assertSecretSliceClaimAuthority(input: SecretSliceClaimAuthorityInput, effects?: {
|
|
13
|
+
inspectLock?: typeof inspectFleetLock;
|
|
14
|
+
inspect?: typeof inspectSliceClaim;
|
|
15
|
+
processProbe?: (identity: Parameters<typeof probeProcessIdentity>[0]) => ProcessIdentityProbe;
|
|
16
|
+
readState?: typeof readFleetState;
|
|
17
|
+
}): void;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertSecretSliceClaimAuthority = assertSecretSliceClaimAuthority;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const errors_js_1 = require("./errors.js");
|
|
6
|
+
const fleet_lock_js_1 = require("./fleet-lock.js");
|
|
7
|
+
const fleet_state_js_1 = require("./fleet-state.js");
|
|
8
|
+
const identity_js_1 = require("./identity.js");
|
|
9
|
+
const process_identity_js_1 = require("./process-identity.js");
|
|
10
|
+
const runtime_paths_js_1 = require("./runtime-paths.js");
|
|
11
|
+
const slice_claim_js_1 = require("./slice-claim.js");
|
|
12
|
+
function assertSecretSliceClaimAuthority(input, effects = {}) {
|
|
13
|
+
let workspaceRealpath;
|
|
14
|
+
try {
|
|
15
|
+
workspaceRealpath = (0, node_fs_1.realpathSync)(input.workspaceRoot);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
throw new errors_js_1.LocalDevContractError('invalid-state', 'Personal secret Slice-claim authorization requires a canonical checkout.');
|
|
19
|
+
}
|
|
20
|
+
const fleetId = (0, identity_js_1.createFleetId)({
|
|
21
|
+
checkoutPath: workspaceRealpath,
|
|
22
|
+
stage: input.stage,
|
|
23
|
+
workspaceName: input.workspaceName,
|
|
24
|
+
});
|
|
25
|
+
const paths = (0, runtime_paths_js_1.fleetRuntimePaths)(fleetId, input.appData);
|
|
26
|
+
let claim;
|
|
27
|
+
try {
|
|
28
|
+
claim = (effects.inspect ?? slice_claim_js_1.inspectSliceClaim)(paths.sliceClaimsDirectory, input.slice);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
throw new errors_js_1.LocalDevContractError('slice-claim-ambiguous', `Slice ${input.slice} claim cannot be validated; recover it with ebk dev ps/prune before changing personal secrets.`);
|
|
32
|
+
}
|
|
33
|
+
if (!claim)
|
|
34
|
+
return;
|
|
35
|
+
const ownerPaths = (0, runtime_paths_js_1.fleetRuntimePaths)(claim.fleetId, input.appData);
|
|
36
|
+
let state;
|
|
37
|
+
let lock;
|
|
38
|
+
try {
|
|
39
|
+
state = (effects.readState ?? fleet_state_js_1.readFleetState)(ownerPaths.sessionDirectory);
|
|
40
|
+
lock = (effects.inspectLock ?? fleet_lock_js_1.inspectFleetLock)(ownerPaths.lock);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
throw new errors_js_1.LocalDevContractError('slice-claim-ambiguous', `Slice ${input.slice} claim has unreadable Fleet authority; recover it with ebk dev ps/prune before changing personal secrets.`);
|
|
44
|
+
}
|
|
45
|
+
if (!state ||
|
|
46
|
+
!lock ||
|
|
47
|
+
state.fleetId !== claim.fleetId ||
|
|
48
|
+
state.sessionGeneration !== claim.sessionGeneration ||
|
|
49
|
+
state.supervisor.pid !== claim.owner.pid ||
|
|
50
|
+
state.supervisor.processIdentity !== claim.owner.processIdentity ||
|
|
51
|
+
state.supervisor.startedAt !== claim.owner.startedAt ||
|
|
52
|
+
!state.slices.some(({ name, selected }) => name === input.slice && selected) ||
|
|
53
|
+
lock.fleetId !== claim.fleetId ||
|
|
54
|
+
lock.sessionGeneration !== claim.sessionGeneration ||
|
|
55
|
+
lock.owner.pid !== state.supervisor.pid ||
|
|
56
|
+
lock.owner.processIdentity !== state.supervisor.processIdentity ||
|
|
57
|
+
lock.owner.startedAt !== state.supervisor.startedAt) {
|
|
58
|
+
throw new errors_js_1.LocalDevContractError('slice-claim-ambiguous', `Slice ${input.slice} claim does not match exact Fleet state and lock authority; recover it with ebk dev ps/prune before changing personal secrets.`);
|
|
59
|
+
}
|
|
60
|
+
const processProbe = (effects.processProbe ?? process_identity_js_1.probeProcessIdentity)(lock.owner);
|
|
61
|
+
if (claim.fleetId === fleetId &&
|
|
62
|
+
state.workspaceRealpath === workspaceRealpath &&
|
|
63
|
+
state.resolvedStage === input.stage &&
|
|
64
|
+
processProbe === 'matching') {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (claim.fleetId === fleetId) {
|
|
68
|
+
throw new errors_js_1.LocalDevContractError('slice-claim-ambiguous', `Slice ${input.slice} claim does not identify the current canonical checkout and personal stage exactly.`);
|
|
69
|
+
}
|
|
70
|
+
if (processProbe === 'matching') {
|
|
71
|
+
throw new errors_js_1.LocalDevContractError('slice-active-elsewhere', `Slice ${input.slice} is actively claimed by another canonical checkout.`);
|
|
72
|
+
}
|
|
73
|
+
throw new errors_js_1.LocalDevContractError('slice-claim-ambiguous', `Slice ${input.slice} has stale or ambiguous claim state; recover it with ebk dev ps/prune before changing personal secrets.`);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=secret-slice-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-slice-claim.js","sourceRoot":"","sources":["../../../../../packages/nx/src/local-dev/secret-slice-claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type FleetProcessIdentity } from './fleet-lock.js';
|
|
2
|
+
import { type PrivateStateSecurity } from './private-state.js';
|
|
3
|
+
export declare const SLICE_CLAIM_SCHEMA_VERSION: 1;
|
|
4
|
+
export interface SliceClaimRecord {
|
|
5
|
+
acquiredAt: string;
|
|
6
|
+
fleetId: string;
|
|
7
|
+
heartbeatAt: string;
|
|
8
|
+
owner: FleetProcessIdentity;
|
|
9
|
+
schemaVersion: typeof SLICE_CLAIM_SCHEMA_VERSION;
|
|
10
|
+
sessionGeneration: string;
|
|
11
|
+
slice: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SliceClaimOwner {
|
|
14
|
+
fleetId: string;
|
|
15
|
+
owner: FleetProcessIdentity;
|
|
16
|
+
sessionGeneration: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SliceClaimAcquisition {
|
|
19
|
+
acquired: readonly string[];
|
|
20
|
+
alreadyOwned: readonly string[];
|
|
21
|
+
claims: readonly SliceClaimRecord[];
|
|
22
|
+
}
|
|
23
|
+
export type SliceClaimClassification = 'active' | 'ambiguous' | 'owned' | 'stale';
|
|
24
|
+
export declare function validateSliceClaimRecord(value: unknown): SliceClaimRecord;
|
|
25
|
+
export declare function sliceClaimPath(directory: string, slice: string): string;
|
|
26
|
+
export declare function inspectSliceClaim(directory: string, slice: string, security?: PrivateStateSecurity): SliceClaimRecord | undefined;
|
|
27
|
+
export declare function acquireSliceClaims(directory: string, slices: readonly string[], owner: SliceClaimOwner, options?: {
|
|
28
|
+
now?: string;
|
|
29
|
+
security?: PrivateStateSecurity;
|
|
30
|
+
}): SliceClaimAcquisition;
|
|
31
|
+
export declare function releaseSliceClaims(directory: string, slices: readonly string[], owner: SliceClaimOwner, security?: PrivateStateSecurity): void;
|
|
32
|
+
export declare function heartbeatSliceClaim(directory: string, slice: string, owner: SliceClaimOwner, heartbeatAt?: string, security?: PrivateStateSecurity): SliceClaimRecord;
|
|
33
|
+
export declare function classifySliceClaim(record: SliceClaimRecord, input: {
|
|
34
|
+
expected?: SliceClaimOwner;
|
|
35
|
+
processProbe: 'absent' | 'ambiguous' | 'matching';
|
|
36
|
+
}): SliceClaimClassification;
|