@intentius/chant 0.124.51 → 0.124.54
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/dist/audit/discover.d.ts.map +1 -1
- package/dist/audit/discover.js +3 -1
- package/dist/behaviour.d.ts +1 -1
- package/dist/behaviour.d.ts.map +1 -1
- package/dist/capabilities/templates.d.ts +65 -0
- package/dist/capabilities/templates.d.ts.map +1 -0
- package/dist/capabilities/templates.js +193 -0
- package/dist/capabilities/templates.json +145 -0
- package/dist/change-set-graph.d.ts +35 -3
- package/dist/change-set-graph.d.ts.map +1 -1
- package/dist/change-set-graph.js +60 -9
- package/dist/change-set.d.ts +65 -7
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +23 -12
- package/dist/ci-identity.d.ts +7 -2
- package/dist/ci-identity.d.ts.map +1 -1
- package/dist/ci-identity.js +4 -1
- package/dist/cli/commands/import-index.d.ts +52 -0
- package/dist/cli/commands/import-index.d.ts.map +1 -0
- package/dist/cli/commands/import-index.js +226 -0
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +4 -2
- package/dist/cli/handlers/components.d.ts.map +1 -1
- package/dist/cli/handlers/components.js +11 -2
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.js +16 -3
- package/dist/cli/handlers/graph.d.ts.map +1 -1
- package/dist/cli/handlers/graph.js +22 -4
- package/dist/cli/handlers/index-cloud.d.ts +14 -0
- package/dist/cli/handlers/index-cloud.d.ts.map +1 -0
- package/dist/cli/handlers/index-cloud.js +22 -0
- package/dist/cli/handlers/index-diff.d.ts +18 -0
- package/dist/cli/handlers/index-diff.d.ts.map +1 -0
- package/dist/cli/handlers/index-diff.js +142 -0
- package/dist/cli/handlers/lifecycle-drift.d.ts +25 -0
- package/dist/cli/handlers/lifecycle-drift.d.ts.map +1 -0
- package/dist/cli/handlers/lifecycle-drift.js +64 -0
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
- package/dist/cli/handlers/lifecycle.js +188 -28
- package/dist/cli/handlers/misc.d.ts +9 -0
- package/dist/cli/handlers/misc.d.ts.map +1 -1
- package/dist/cli/handlers/misc.js +77 -0
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +17 -3
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/promote.js +89 -15
- package/dist/cli/handlers/query.d.ts.map +1 -1
- package/dist/cli/handlers/query.js +28 -4
- package/dist/cli/handlers/scenario.d.ts.map +1 -1
- package/dist/cli/handlers/scenario.js +8 -7
- package/dist/cli/handlers/search.d.ts +34 -4
- package/dist/cli/handlers/search.d.ts.map +1 -1
- package/dist/cli/handlers/search.js +216 -36
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +55 -1
- package/dist/cli/mcp/lifecycle-tools.d.ts.map +1 -1
- package/dist/cli/mcp/lifecycle-tools.js +3 -2
- package/dist/cli/mcp/resource-handlers.d.ts.map +1 -1
- package/dist/cli/mcp/resource-handlers.js +4 -3
- package/dist/cli/mcp/workspace-tools.js +1 -1
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +55 -2
- package/dist/cli/registry.d.ts +19 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cloud-lister/aws.d.ts +35 -0
- package/dist/cloud-lister/aws.d.ts.map +1 -0
- package/dist/cloud-lister/aws.js +203 -0
- package/dist/cloud-lister/azure.d.ts +34 -0
- package/dist/cloud-lister/azure.d.ts.map +1 -0
- package/dist/cloud-lister/azure.js +129 -0
- package/dist/cloud-lister/common.d.ts +40 -0
- package/dist/cloud-lister/common.d.ts.map +1 -0
- package/dist/cloud-lister/common.js +83 -0
- package/dist/cloud-lister/credentials.d.ts +50 -0
- package/dist/cloud-lister/credentials.d.ts.map +1 -0
- package/dist/cloud-lister/credentials.js +86 -0
- package/dist/cloud-lister/fakes.d.ts +27 -0
- package/dist/cloud-lister/fakes.d.ts.map +1 -0
- package/dist/cloud-lister/fakes.js +50 -0
- package/dist/cloud-lister/gcp.d.ts +42 -0
- package/dist/cloud-lister/gcp.d.ts.map +1 -0
- package/dist/cloud-lister/gcp.js +143 -0
- package/dist/cloud-lister/guard.d.ts +49 -0
- package/dist/cloud-lister/guard.d.ts.map +1 -0
- package/dist/cloud-lister/guard.js +103 -0
- package/dist/cloud-lister/ids.d.ts +23 -0
- package/dist/cloud-lister/ids.d.ts.map +1 -0
- package/dist/cloud-lister/ids.js +42 -0
- package/dist/cloud-lister/index.d.ts +67 -0
- package/dist/cloud-lister/index.d.ts.map +1 -0
- package/dist/cloud-lister/index.js +102 -0
- package/dist/cloud-lister/kubernetes.d.ts +64 -0
- package/dist/cloud-lister/kubernetes.d.ts.map +1 -0
- package/dist/cloud-lister/kubernetes.js +276 -0
- package/dist/cloud-lister/markers.d.ts +31 -0
- package/dist/cloud-lister/markers.d.ts.map +1 -0
- package/dist/cloud-lister/markers.js +73 -0
- package/dist/cloud-lister/mask.d.ts +31 -0
- package/dist/cloud-lister/mask.d.ts.map +1 -0
- package/dist/cloud-lister/mask.js +74 -0
- package/dist/cloud-lister/sigv4.d.ts +29 -0
- package/dist/cloud-lister/sigv4.d.ts.map +1 -0
- package/dist/cloud-lister/sigv4.js +54 -0
- package/dist/cloud-lister/transport.d.ts +55 -0
- package/dist/cloud-lister/transport.d.ts.map +1 -0
- package/dist/cloud-lister/transport.js +86 -0
- package/dist/cloud-lister/types.d.ts +121 -0
- package/dist/cloud-lister/types.d.ts.map +1 -0
- package/dist/cloud-lister/types.js +24 -0
- package/dist/components/capability-plugin-loader.d.ts.map +1 -1
- package/dist/components/capability-plugin-loader.js +6 -0
- package/dist/components/capability-plugin.d.ts +9 -0
- package/dist/components/capability-plugin.d.ts.map +1 -1
- package/dist/components/capability.d.ts +224 -0
- package/dist/components/capability.d.ts.map +1 -1
- package/dist/components/cli-support.d.ts +21 -0
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/cli-support.js +58 -14
- package/dist/components/covered-round.d.ts +173 -0
- package/dist/components/covered-round.d.ts.map +1 -0
- package/dist/components/covered-round.js +200 -0
- package/dist/components/declared-reads.d.ts +38 -0
- package/dist/components/declared-reads.d.ts.map +1 -0
- package/dist/components/declared-reads.js +131 -0
- package/dist/components/deploy-units.d.ts.map +1 -1
- package/dist/components/deploy-units.js +4 -0
- package/dist/components/driver.d.ts +42 -1
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/driver.js +74 -3
- package/dist/components/fan-out-run.d.ts +23 -1
- package/dist/components/fan-out-run.d.ts.map +1 -1
- package/dist/components/fan-out-run.js +82 -14
- package/dist/components/fan-out-support.d.ts +6 -0
- package/dist/components/fan-out-support.d.ts.map +1 -1
- package/dist/components/fan-out-support.js +4 -1
- package/dist/components/fan-out.d.ts +28 -0
- package/dist/components/fan-out.d.ts.map +1 -1
- package/dist/components/groups.d.ts +229 -0
- package/dist/components/groups.d.ts.map +1 -0
- package/dist/components/groups.js +760 -0
- package/dist/components/index.d.ts +7 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +5 -0
- package/dist/components/plan-shape-conformance.d.ts +48 -0
- package/dist/components/plan-shape-conformance.d.ts.map +1 -0
- package/dist/components/plan-shape-conformance.js +122 -0
- package/dist/components/pr-run.d.ts +62 -7
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +354 -53
- package/dist/components/promote-rounds.d.ts +9 -0
- package/dist/components/promote-rounds.d.ts.map +1 -1
- package/dist/components/promote-rounds.js +23 -2
- package/dist/components/promote.d.ts +17 -0
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/promote.js +36 -6
- package/dist/components/release-gate.d.ts +23 -1
- package/dist/components/release-gate.d.ts.map +1 -1
- package/dist/components/release-gate.js +97 -33
- package/dist/components/run-groups.d.ts +58 -0
- package/dist/components/run-groups.d.ts.map +1 -0
- package/dist/components/run-groups.js +78 -0
- package/dist/components/starter-plugin.d.ts +1 -0
- package/dist/components/starter-plugin.d.ts.map +1 -1
- package/dist/components/starter-plugin.js +6 -1
- package/dist/components/verbs/index.d.ts +1 -0
- package/dist/components/verbs/index.d.ts.map +1 -1
- package/dist/components/verbs/index.js +1 -0
- package/dist/components/verbs/member-outputs.d.ts +187 -0
- package/dist/components/verbs/member-outputs.d.ts.map +1 -0
- package/dist/components/verbs/member-outputs.js +218 -0
- package/dist/components/wave-plan.d.ts +2 -0
- package/dist/components/wave-plan.d.ts.map +1 -1
- package/dist/components/wave-plan.js +4 -1
- package/dist/config.d.ts +60 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +27 -0
- package/dist/deep-observation.d.ts +1 -13
- package/dist/deep-observation.d.ts.map +1 -1
- package/dist/deep-observation.js +5 -22
- package/dist/drift-record.d.ts +542 -0
- package/dist/drift-record.d.ts.map +1 -0
- package/dist/drift-record.js +886 -0
- package/dist/engine-facts.d.ts +144 -0
- package/dist/engine-facts.d.ts.map +1 -0
- package/dist/engine-facts.js +14 -0
- package/dist/graph-ir.d.ts +153 -2
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/graph-ir.js +224 -6
- package/dist/graph-refs.d.ts +145 -0
- package/dist/graph-refs.d.ts.map +1 -1
- package/dist/graph-refs.js +305 -0
- package/dist/graph-schema/fixtures/adopt.json +15 -0
- package/dist/graph-schema/fixtures/choudoufu.engine-graph.json +169 -0
- package/dist/graph-schema/fixtures/index.json +68 -0
- package/dist/graph-schema/fixtures/plunge.engine-graph.json +158 -0
- package/dist/graph-schema/fixtures.d.ts +23 -0
- package/dist/graph-schema/fixtures.d.ts.map +1 -0
- package/dist/graph-schema/fixtures.js +246 -0
- package/dist/graph-schema/generate.d.ts +15 -0
- package/dist/graph-schema/generate.d.ts.map +1 -0
- package/dist/graph-schema/generate.js +267 -0
- package/dist/graph-schema/graph.schema.json +1387 -0
- package/dist/health.schema.json +2 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/instance-nodes.d.ts +159 -0
- package/dist/instance-nodes.d.ts.map +1 -0
- package/dist/instance-nodes.js +231 -0
- package/dist/lexicon.d.ts +72 -0
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/adoption-file.d.ts +56 -0
- package/dist/lifecycle/adoption-file.d.ts.map +1 -0
- package/dist/lifecycle/adoption-file.js +123 -0
- package/dist/lifecycle/cloud-index.d.ts +186 -0
- package/dist/lifecycle/cloud-index.d.ts.map +1 -0
- package/dist/lifecycle/cloud-index.js +618 -0
- package/dist/lifecycle/derive-edges.d.ts +59 -0
- package/dist/lifecycle/derive-edges.d.ts.map +1 -0
- package/dist/lifecycle/derive-edges.js +126 -0
- package/dist/lifecycle/git.d.ts +10 -9
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/git.js +7 -1
- package/dist/lifecycle/identity-match.d.ts +133 -0
- package/dist/lifecycle/identity-match.d.ts.map +1 -0
- package/dist/lifecycle/identity-match.js +147 -0
- package/dist/lifecycle/index-diff.d.ts +224 -0
- package/dist/lifecycle/index-diff.d.ts.map +1 -0
- package/dist/lifecycle/index-diff.js +327 -0
- package/dist/lifecycle/index-document.d.ts +130 -0
- package/dist/lifecycle/index-document.d.ts.map +1 -0
- package/dist/lifecycle/index-document.js +189 -0
- package/dist/lifecycle/index-drift.d.ts +121 -0
- package/dist/lifecycle/index-drift.d.ts.map +1 -0
- package/dist/lifecycle/index-drift.js +178 -0
- package/dist/lifecycle/index-import.d.ts +168 -0
- package/dist/lifecycle/index-import.d.ts.map +1 -0
- package/dist/lifecycle/index-import.js +515 -0
- package/dist/lifecycle/index-join.d.ts +129 -0
- package/dist/lifecycle/index-join.d.ts.map +1 -0
- package/dist/lifecycle/index-join.js +248 -0
- package/dist/lifecycle/index.d.ts +4 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +4 -0
- package/dist/lifecycle/observation-baseline.d.ts +61 -21
- package/dist/lifecycle/observation-baseline.d.ts.map +1 -1
- package/dist/lifecycle/observation-baseline.js +144 -19
- package/dist/lifecycle/observe.d.ts.map +1 -1
- package/dist/lifecycle/observe.js +6 -1
- package/dist/lifecycle/query.d.ts +45 -4
- package/dist/lifecycle/query.d.ts.map +1 -1
- package/dist/lifecycle/query.js +89 -7
- package/dist/lifecycle/replay.d.ts +10 -3
- package/dist/lifecycle/replay.d.ts.map +1 -1
- package/dist/lifecycle/replay.js +10 -6
- package/dist/lifecycle/scenario.d.ts +4 -3
- package/dist/lifecycle/scenario.d.ts.map +1 -1
- package/dist/lifecycle/snapshot-store-fake.d.ts +9 -0
- package/dist/lifecycle/snapshot-store-fake.d.ts.map +1 -0
- package/dist/lifecycle/snapshot-store-fake.js +21 -0
- package/dist/lifecycle/snapshot-store-s3.d.ts +102 -0
- package/dist/lifecycle/snapshot-store-s3.d.ts.map +1 -0
- package/dist/lifecycle/snapshot-store-s3.js +254 -0
- package/dist/lifecycle/snapshot-store.d.ts +170 -0
- package/dist/lifecycle/snapshot-store.d.ts.map +1 -0
- package/dist/lifecycle/snapshot-store.js +832 -0
- package/dist/lifecycle/snapshot.d.ts +11 -0
- package/dist/lifecycle/snapshot.d.ts.map +1 -1
- package/dist/lifecycle/snapshot.js +18 -5
- package/dist/lifecycle/type-listing.d.ts +148 -0
- package/dist/lifecycle/type-listing.d.ts.map +1 -0
- package/dist/lifecycle/type-listing.js +166 -0
- package/dist/lint/component-checks.d.ts +15 -1
- package/dist/lint/component-checks.d.ts.map +1 -1
- package/dist/lint/component-checks.js +1 -0
- package/dist/lint/presets/relaxed.json +2 -1
- package/dist/lint/presets/strict.json +2 -1
- package/dist/lint/rules/__fixtures__/comp/comp008/fail/dns.component.d.ts +4 -0
- package/dist/lint/rules/__fixtures__/comp/comp008/fail/dns.component.d.ts.map +1 -0
- package/dist/lint/rules/__fixtures__/comp/comp008/fail/dns.component.js +13 -0
- package/dist/lint/rules/__fixtures__/comp/comp008/pass/dns.component.d.ts +4 -0
- package/dist/lint/rules/__fixtures__/comp/comp008/pass/dns.component.d.ts.map +1 -0
- package/dist/lint/rules/__fixtures__/comp/comp008/pass/dns.component.js +8 -0
- package/dist/lint/rules/comp/comp008-applies-signal-only-root.d.ts +33 -0
- package/dist/lint/rules/comp/comp008-applies-signal-only-root.d.ts.map +1 -0
- package/dist/lint/rules/comp/comp008-applies-signal-only-root.js +123 -0
- package/dist/lint/rules/comp/index.d.ts +2 -1
- package/dist/lint/rules/comp/index.d.ts.map +1 -1
- package/dist/lint/rules/comp/index.js +4 -1
- package/dist/observation.d.ts +19 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +18 -1
- package/dist/op/activities/activity-contracts.d.ts +1 -1
- package/dist/op/activities/activity-contracts.js +1 -1
- package/dist/op/activities/change-set.d.ts +6 -4
- package/dist/op/activities/change-set.d.ts.map +1 -1
- package/dist/op/activities/change-set.js +4 -2
- package/dist/op/activity-failure.d.ts +27 -0
- package/dist/op/activity-failure.d.ts.map +1 -1
- package/dist/op/activity-failure.js +31 -0
- package/dist/op/index.d.ts +2 -1
- package/dist/op/index.d.ts.map +1 -1
- package/dist/op/index.js +1 -1
- package/dist/op/local-executor.d.ts +5 -1
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-executor.js +22 -8
- package/dist/pr-loop.d.ts +92 -3
- package/dist/pr-loop.d.ts.map +1 -1
- package/dist/pr-loop.js +62 -3
- package/dist/pulumi-urn.d.ts +101 -0
- package/dist/pulumi-urn.d.ts.map +1 -0
- package/dist/pulumi-urn.js +131 -0
- package/dist/release-floors.d.ts +23 -0
- package/dist/release-floors.d.ts.map +1 -0
- package/dist/release-floors.js +22 -0
- package/dist/sensitive-key.d.ts +23 -0
- package/dist/sensitive-key.d.ts.map +1 -0
- package/dist/sensitive-key.js +31 -0
- package/dist/wave-runtime.mjs +234 -234
- package/dist/workspace/adoption-report.d.ts +53 -0
- package/dist/workspace/adoption-report.d.ts.map +1 -0
- package/dist/workspace/adoption-report.js +76 -0
- package/dist/workspace/capabilities-contract.d.ts +7 -0
- package/dist/workspace/capabilities-contract.d.ts.map +1 -1
- package/dist/workspace/capabilities-contract.js +2 -1
- package/dist/workspace/capabilities.schema.json +98 -0
- package/dist/workspace/change-set.schema.json +42 -3
- package/dist/workspace/ci-cloud-identity.d.ts +13 -1
- package/dist/workspace/ci-cloud-identity.d.ts.map +1 -1
- package/dist/workspace/ci-cloud-identity.js +30 -1
- package/dist/workspace/compose-graph.d.ts +10 -1
- package/dist/workspace/compose-graph.d.ts.map +1 -1
- package/dist/workspace/compose-graph.js +6 -1
- package/dist/workspace/conformance/index.d.ts +1 -1
- package/dist/workspace/conformance/index.d.ts.map +1 -1
- package/dist/workspace/conformance/index.js +6 -1
- package/dist/workspace/drift-cli.d.ts +81 -0
- package/dist/workspace/drift-cli.d.ts.map +1 -0
- package/dist/workspace/drift-cli.js +317 -0
- package/dist/workspace/drift.schema.json +672 -0
- package/dist/workspace/graph-cli.d.ts +2 -0
- package/dist/workspace/graph-cli.d.ts.map +1 -1
- package/dist/workspace/graph-cli.js +3 -0
- package/dist/workspace/graph.schema.json +72 -0
- package/dist/workspace/init.d.ts +5 -1
- package/dist/workspace/init.d.ts.map +1 -1
- package/dist/workspace/init.js +55 -9
- package/dist/workspace/ledger.schema.json +1 -1
- package/dist/workspace/nested-graph.d.ts.map +1 -1
- package/dist/workspace/nested-graph.js +2 -0
- package/dist/workspace/pr-report.schema.json +76 -3
- package/dist/workspace/promote-waves.d.ts +112 -0
- package/dist/workspace/promote-waves.d.ts.map +1 -0
- package/dist/workspace/promote-waves.js +290 -0
- package/dist/workspace/promote.d.ts +84 -2
- package/dist/workspace/promote.d.ts.map +1 -1
- package/dist/workspace/promote.js +347 -61
- package/dist/workspace/reason-codes.d.ts +12 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +14 -0
- package/dist/workspace/search-contract.d.ts +3 -3
- package/dist/workspace/search-contract.d.ts.map +1 -1
- package/dist/workspace/search-contract.js +2 -0
- package/dist/workspace/search.schema.json +103 -5
- package/package.json +14 -1
- package/src/__fixtures__/drift-record/README.md +58 -0
- package/src/__fixtures__/drift-record/choudoufu-cone.ndjson +4 -0
- package/src/__fixtures__/drift-record/choudoufu-resource.ndjson +3 -0
- package/src/__fixtures__/drift-record/component-status-ledger.json +65 -0
- package/src/__fixtures__/drift-record/component-status.json +91 -0
- package/src/__fixtures__/drift-record/deep-diff.json +259 -0
- package/src/__fixtures__/drift-record/lifecycle-diff-live.json +825 -0
- package/src/__fixtures__/drift-record/live-diff.json +125 -0
- package/src/audit/discover.e2e.test.ts +14 -0
- package/src/audit/discover.ts +3 -1
- package/src/behaviour.ts +1 -1
- package/src/capabilities/templates.json +145 -0
- package/src/capabilities/templates.test.ts +212 -0
- package/src/capabilities/templates.ts +204 -0
- package/src/change-set-bundle.test.ts +83 -0
- package/src/change-set-graph.ts +80 -9
- package/src/change-set.test.ts +24 -0
- package/src/change-set.ts +77 -14
- package/src/ci-identity-targets.test.ts +23 -0
- package/src/ci-identity.ts +10 -4
- package/src/cli/commands/import-index.test.ts +117 -0
- package/src/cli/commands/import-index.ts +265 -0
- package/src/cli/commands/lint.ts +4 -2
- package/src/cli/handlers/components.test.ts +9 -0
- package/src/cli/handlers/components.ts +12 -2
- package/src/cli/handlers/fan-out.ts +17 -3
- package/src/cli/handlers/graph.test.ts +42 -0
- package/src/cli/handlers/graph.ts +26 -4
- package/src/cli/handlers/index-cloud.ts +32 -0
- package/src/cli/handlers/index-diff.test.ts +68 -0
- package/src/cli/handlers/index-diff.ts +146 -0
- package/src/cli/handlers/ledger-root-member.test.ts +161 -0
- package/src/cli/handlers/lifecycle-drift.ts +68 -0
- package/src/cli/handlers/lifecycle.test.ts +33 -11
- package/src/cli/handlers/lifecycle.ts +205 -30
- package/src/cli/handlers/misc.ts +73 -0
- package/src/cli/handlers/pr-waves-blocked.test.ts +37 -2
- package/src/cli/handlers/pr.ts +16 -3
- package/src/cli/handlers/promote.test.ts +64 -0
- package/src/cli/handlers/promote.ts +81 -6
- package/src/cli/handlers/query.ts +27 -4
- package/src/cli/handlers/run-declared-reads-cli.test.ts +187 -0
- package/src/cli/handlers/run-groups-cli.test.ts +229 -0
- package/src/cli/handlers/scenario.test.ts +13 -0
- package/src/cli/handlers/scenario.ts +8 -7
- package/src/cli/handlers/search-index.test.ts +255 -0
- package/src/cli/handlers/search-json.test.ts +1 -1
- package/src/cli/handlers/search-ownership.test.ts +194 -0
- package/src/cli/handlers/search.ts +271 -38
- package/src/cli/main.test.ts +7 -0
- package/src/cli/main.ts +56 -1
- package/src/cli/mcp/lifecycle-tools.ts +3 -2
- package/src/cli/mcp/resource-handlers.ts +4 -3
- package/src/cli/mcp/workspace-tools.ts +1 -1
- package/src/cli/parse-args.ts +40 -2
- package/src/cli/registry.ts +19 -1
- package/src/cloud-lister/aws.test.ts +202 -0
- package/src/cloud-lister/aws.ts +226 -0
- package/src/cloud-lister/azure.test.ts +132 -0
- package/src/cloud-lister/azure.ts +142 -0
- package/src/cloud-lister/common.ts +115 -0
- package/src/cloud-lister/credentials.ts +110 -0
- package/src/cloud-lister/fakes.ts +66 -0
- package/src/cloud-lister/gcp.test.ts +121 -0
- package/src/cloud-lister/gcp.ts +159 -0
- package/src/cloud-lister/guard.test.ts +198 -0
- package/src/cloud-lister/guard.ts +111 -0
- package/src/cloud-lister/ids.ts +54 -0
- package/src/cloud-lister/index.ts +134 -0
- package/src/cloud-lister/kubernetes.test.ts +160 -0
- package/src/cloud-lister/kubernetes.ts +284 -0
- package/src/cloud-lister/markers.ts +74 -0
- package/src/cloud-lister/mask.ts +77 -0
- package/src/cloud-lister/shape.test.ts +81 -0
- package/src/cloud-lister/sigv4.ts +70 -0
- package/src/cloud-lister/transport.ts +118 -0
- package/src/cloud-lister/types.ts +135 -0
- package/src/components/capability-plugin-loader.ts +4 -0
- package/src/components/capability-plugin.ts +10 -0
- package/src/components/capability.ts +238 -0
- package/src/components/cli-support.ts +70 -14
- package/src/components/covered-round.test.ts +166 -0
- package/src/components/covered-round.ts +293 -0
- package/src/components/declared-reads.test.ts +103 -0
- package/src/components/declared-reads.ts +134 -0
- package/src/components/deploy-units.ts +4 -0
- package/src/components/driver.ts +101 -4
- package/src/components/fan-out-run.ts +95 -15
- package/src/components/fan-out-support.ts +10 -1
- package/src/components/fan-out.ts +30 -0
- package/src/components/groups.test.ts +320 -0
- package/src/components/groups.ts +880 -0
- package/src/components/index.ts +59 -0
- package/src/components/plan-shape-conformance.ts +130 -0
- package/src/components/pr-env-run-bundle.test.ts +2 -0
- package/src/components/pr-run.test.ts +728 -4
- package/src/components/pr-run.ts +395 -55
- package/src/components/promote-rounds.ts +25 -2
- package/src/components/promote.ts +55 -5
- package/src/components/registry.test.ts +1 -1
- package/src/components/release-gate.ts +115 -30
- package/src/components/release-groups.test.ts +362 -0
- package/src/components/run-groups.ts +113 -0
- package/src/components/starter-plugin.ts +6 -0
- package/src/components/verbs/index.ts +1 -0
- package/src/components/verbs/member-outputs.test.ts +205 -0
- package/src/components/verbs/member-outputs.ts +308 -0
- package/src/components/wave-plan.ts +5 -2
- package/src/config.ts +44 -0
- package/src/deep-observation.ts +5 -23
- package/src/drift-record.test.ts +596 -0
- package/src/drift-record.ts +1206 -0
- package/src/engine-facts.guard.test.ts +111 -0
- package/src/engine-facts.test.ts +178 -0
- package/src/engine-facts.ts +154 -0
- package/src/gated-waves-bundle.test.ts +2 -0
- package/src/graph-ir-live.test.ts +92 -0
- package/src/graph-ir.ts +317 -7
- package/src/graph-refs.ts +416 -0
- package/src/graph-schema/fixtures/adopt.json +15 -0
- package/src/graph-schema/fixtures/choudoufu.engine-graph.json +169 -0
- package/src/graph-schema/fixtures/index.json +68 -0
- package/src/graph-schema/fixtures/plunge.engine-graph.json +158 -0
- package/src/graph-schema/fixtures.ts +267 -0
- package/src/graph-schema/generate.ts +263 -0
- package/src/graph-schema/graph-schema.test.ts +153 -0
- package/src/graph-schema/graph.schema.json +1387 -0
- package/src/health.schema.json +2 -1
- package/src/identity.ts +2 -0
- package/src/index.ts +2 -0
- package/src/instance-nodes.ts +288 -0
- package/src/lexicon.ts +76 -0
- package/src/lifecycle/__fixtures__/index-diff/20261026T120000Z-aaaaaaaaaaaa.json +149 -0
- package/src/lifecycle/__fixtures__/index-diff/20261026T130000Z-bbbbbbbbbbbb.json +127 -0
- package/src/lifecycle/adoption-file.test.ts +100 -0
- package/src/lifecycle/adoption-file.ts +154 -0
- package/src/lifecycle/cloud-index.test.ts +517 -0
- package/src/lifecycle/cloud-index.ts +736 -0
- package/src/lifecycle/derive-edges.test.ts +193 -0
- package/src/lifecycle/derive-edges.ts +182 -0
- package/src/lifecycle/git.ts +10 -4
- package/src/lifecycle/identity-match.test.ts +308 -0
- package/src/lifecycle/identity-match.ts +257 -0
- package/src/lifecycle/index-diff.test.ts +198 -0
- package/src/lifecycle/index-diff.ts +476 -0
- package/src/lifecycle/index-document.test.ts +64 -0
- package/src/lifecycle/index-document.ts +299 -0
- package/src/lifecycle/index-drift.test.ts +191 -0
- package/src/lifecycle/index-drift.ts +304 -0
- package/src/lifecycle/index-import.test.ts +255 -0
- package/src/lifecycle/index-import.ts +634 -0
- package/src/lifecycle/index-join.test.ts +250 -0
- package/src/lifecycle/index-join.ts +304 -0
- package/src/lifecycle/index-store-load-bearing.test.ts +187 -0
- package/src/lifecycle/index.ts +4 -0
- package/src/lifecycle/member-ledger.test.ts +25 -7
- package/src/lifecycle/observation-baseline.test.ts +72 -1
- package/src/lifecycle/observation-baseline.ts +190 -27
- package/src/lifecycle/observe.ts +6 -1
- package/src/lifecycle/query.test.ts +69 -1
- package/src/lifecycle/query.ts +103 -10
- package/src/lifecycle/replay.test.ts +9 -5
- package/src/lifecycle/replay.ts +9 -5
- package/src/lifecycle/scenario.ts +4 -3
- package/src/lifecycle/snapshot-store-fake.ts +29 -0
- package/src/lifecycle/snapshot-store-s3.ts +316 -0
- package/src/lifecycle/snapshot-store.test.ts +385 -0
- package/src/lifecycle/snapshot-store.ts +981 -0
- package/src/lifecycle/snapshot.test.ts +13 -0
- package/src/lifecycle/snapshot.ts +23 -6
- package/src/lifecycle/type-listing.test.ts +166 -0
- package/src/lifecycle/type-listing.ts +309 -0
- package/src/lint/component-checks.ts +17 -1
- package/src/lint/config.test.ts +3 -0
- package/src/lint/presets/relaxed.json +2 -1
- package/src/lint/presets/strict.json +2 -1
- package/src/lint/rules/__fixtures__/comp/comp008/fail/dns.component.ts +15 -0
- package/src/lint/rules/__fixtures__/comp/comp008/pass/dns.component.ts +10 -0
- package/src/lint/rules/comp/comp.test.ts +2 -1
- package/src/lint/rules/comp/comp008-applies-signal-only-root.ts +121 -0
- package/src/lint/rules/comp/comp008.test.ts +77 -0
- package/src/lint/rules/comp/index.ts +4 -1
- package/src/observation-edges.test.ts +33 -0
- package/src/observation.ts +36 -1
- package/src/op/activities/activity-contracts.ts +1 -1
- package/src/op/activities/change-set.ts +8 -5
- package/src/op/activity-failure.ts +36 -0
- package/src/op/index.ts +2 -1
- package/src/op/local-executor.test.ts +80 -0
- package/src/op/local-executor.ts +27 -9
- package/src/pr-loop-bundle.test.ts +5 -2
- package/src/pr-loop.test.ts +57 -1
- package/src/pr-loop.ts +154 -6
- package/src/pulumi-urn.ts +151 -0
- package/src/release-floors.ts +22 -0
- package/src/sensitive-key.ts +34 -0
- package/src/workspace/adoption-report.test.ts +61 -0
- package/src/workspace/adoption-report.ts +103 -0
- package/src/workspace/capabilities-contract.test.ts +4 -0
- package/src/workspace/capabilities-contract.ts +9 -1
- package/src/workspace/capabilities.schema.json +98 -0
- package/src/workspace/change-set.schema.json +42 -3
- package/src/workspace/ci-cloud-identity.ts +31 -1
- package/src/workspace/compose-graph.test.ts +12 -0
- package/src/workspace/compose-graph.ts +12 -1
- package/src/workspace/conformance/conformance.e2e.test.ts +2 -1
- package/src/workspace/conformance/index.ts +6 -1
- package/src/workspace/drift-cli.test.ts +65 -0
- package/src/workspace/drift-cli.ts +365 -0
- package/src/workspace/drift.schema.json +672 -0
- package/src/workspace/graph-cli.ts +5 -0
- package/src/workspace/graph.schema.json +72 -0
- package/src/workspace/init.test.ts +38 -1
- package/src/workspace/init.ts +50 -8
- package/src/workspace/intent-gaps.test.ts +18 -2
- package/src/workspace/ledger.schema.json +1 -1
- package/src/workspace/nested-graph.ts +1 -0
- package/src/workspace/pr-report.schema.json +76 -3
- package/src/workspace/promote-waves.test.ts +296 -0
- package/src/workspace/promote-waves.ts +340 -0
- package/src/workspace/promote.test.ts +158 -4
- package/src/workspace/promote.ts +398 -57
- package/src/workspace/reason-codes.test.ts +4 -1
- package/src/workspace/reason-codes.ts +14 -0
- package/src/workspace/search-contract.ts +2 -0
- package/src/workspace/search.schema.json +103 -5
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adoption report `chant workspace promote <member> --state` shows on the
|
|
3
|
+
* `terraform` to `choudoufu` rung (INTENTIUS/behold#999): choudoufu's
|
|
4
|
+
* `live-import` ratification report, read off the text it prints.
|
|
5
|
+
*
|
|
6
|
+
* `choudoufu live-import -state=<file> -estate=<name>` without `-approve` is
|
|
7
|
+
* read-only and has no JSON view (choudoufu internal/command/views/
|
|
8
|
+
* live_import.go: "There is no JSON implementation, matching live-mv"). Its
|
|
9
|
+
* human view prints one group per status, each resource on two lines:
|
|
10
|
+
*
|
|
11
|
+
* VERIFIED (2) - verified against the live system:
|
|
12
|
+
* aws_s3_bucket.logs aws_s3_bucket live id: logs-123
|
|
13
|
+
* <detail>
|
|
14
|
+
*
|
|
15
|
+
* This module turns that text into one entry per resource, so `promote
|
|
16
|
+
* --json` can carry it and a reader (behold) never parses choudoufu's output
|
|
17
|
+
* itself. VERIFIED and DRIFTED are stamped by `live-import -approve`; MISSING,
|
|
18
|
+
* UNTAGGABLE and UNADMITTED_TYPE never are.
|
|
19
|
+
*/
|
|
20
|
+
/** The statuses choudoufu's ratification gives, in the order it prints them. */
|
|
21
|
+
export declare const ADOPTION_STATUSES: readonly ["VERIFIED", "DRIFTED", "MISSING", "UNTAGGABLE", "UNADMITTED_TYPE"];
|
|
22
|
+
export type AdoptionStatus = (typeof ADOPTION_STATUSES)[number];
|
|
23
|
+
/** The statuses `live-import -approve` stamps. */
|
|
24
|
+
export declare const CLAIMED_STATUSES: readonly AdoptionStatus[];
|
|
25
|
+
export interface AdoptionEntry {
|
|
26
|
+
/** The resource instance address, with its module path. */
|
|
27
|
+
address: string;
|
|
28
|
+
type: string;
|
|
29
|
+
status: AdoptionStatus;
|
|
30
|
+
/** The live id the state recorded, or null when choudoufu printed `-`. */
|
|
31
|
+
liveId: string | null;
|
|
32
|
+
/** choudoufu's reason for the status, verbatim. */
|
|
33
|
+
detail: string;
|
|
34
|
+
/** True when `live-import -approve` stamps it (VERIFIED or DRIFTED). */
|
|
35
|
+
claimed: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface AdoptionReport {
|
|
38
|
+
/** The estate name the report was made for (`-estate`). */
|
|
39
|
+
estate: string | null;
|
|
40
|
+
/** The state file it read (`-state`). */
|
|
41
|
+
state: string | null;
|
|
42
|
+
entries: AdoptionEntry[];
|
|
43
|
+
/** How many entries `-approve` stamps. */
|
|
44
|
+
claimed: number;
|
|
45
|
+
total: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Read choudoufu's ratification report out of `text` (the step's combined
|
|
49
|
+
* output, so diagnostics may sit around it). Undefined when the text holds no
|
|
50
|
+
* report: no `Ratifying` line and no status group.
|
|
51
|
+
*/
|
|
52
|
+
export declare function parseLiveImportReport(text: string): AdoptionReport | undefined;
|
|
53
|
+
//# sourceMappingURL=adoption-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adoption-report.d.ts","sourceRoot":"","sources":["../../src/workspace/adoption-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,YAAI,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAU,CAAC;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAA4B,CAAC;AAEnF,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AASD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAuC9E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adoption report `chant workspace promote <member> --state` shows on the
|
|
3
|
+
* `terraform` to `choudoufu` rung (INTENTIUS/behold#999): choudoufu's
|
|
4
|
+
* `live-import` ratification report, read off the text it prints.
|
|
5
|
+
*
|
|
6
|
+
* `choudoufu live-import -state=<file> -estate=<name>` without `-approve` is
|
|
7
|
+
* read-only and has no JSON view (choudoufu internal/command/views/
|
|
8
|
+
* live_import.go: "There is no JSON implementation, matching live-mv"). Its
|
|
9
|
+
* human view prints one group per status, each resource on two lines:
|
|
10
|
+
*
|
|
11
|
+
* VERIFIED (2) - verified against the live system:
|
|
12
|
+
* aws_s3_bucket.logs aws_s3_bucket live id: logs-123
|
|
13
|
+
* <detail>
|
|
14
|
+
*
|
|
15
|
+
* This module turns that text into one entry per resource, so `promote
|
|
16
|
+
* --json` can carry it and a reader (behold) never parses choudoufu's output
|
|
17
|
+
* itself. VERIFIED and DRIFTED are stamped by `live-import -approve`; MISSING,
|
|
18
|
+
* UNTAGGABLE and UNADMITTED_TYPE never are.
|
|
19
|
+
*/
|
|
20
|
+
/** The statuses choudoufu's ratification gives, in the order it prints them. */
|
|
21
|
+
export const ADOPTION_STATUSES = ["VERIFIED", "DRIFTED", "MISSING", "UNTAGGABLE", "UNADMITTED_TYPE"];
|
|
22
|
+
/** The statuses `live-import -approve` stamps. */
|
|
23
|
+
export const CLAIMED_STATUSES = ["VERIFIED", "DRIFTED"];
|
|
24
|
+
const HEADER = /^Ratifying (.+) for estate "(.*)" against the live system\./;
|
|
25
|
+
const GROUP = /^([A-Z_]+) \((\d+)\) - .*:$/;
|
|
26
|
+
const ROW = /^ {2}(\S.*?)\s+(\S+)\s+live id: (.*)$/;
|
|
27
|
+
const DETAIL = /^ {4}(.*)$/;
|
|
28
|
+
const isStatus = (s) => ADOPTION_STATUSES.includes(s);
|
|
29
|
+
/**
|
|
30
|
+
* Read choudoufu's ratification report out of `text` (the step's combined
|
|
31
|
+
* output, so diagnostics may sit around it). Undefined when the text holds no
|
|
32
|
+
* report: no `Ratifying` line and no status group.
|
|
33
|
+
*/
|
|
34
|
+
export function parseLiveImportReport(text) {
|
|
35
|
+
const lines = text.replace(/\x1b\[[0-9;]*m/g, "").split(/\r?\n/);
|
|
36
|
+
let estate = null;
|
|
37
|
+
let state = null;
|
|
38
|
+
let status;
|
|
39
|
+
let seen = false;
|
|
40
|
+
const entries = [];
|
|
41
|
+
for (const line of lines) {
|
|
42
|
+
const h = HEADER.exec(line);
|
|
43
|
+
if (h) {
|
|
44
|
+
state = h[1];
|
|
45
|
+
estate = h[2];
|
|
46
|
+
seen = true;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const g = GROUP.exec(line);
|
|
50
|
+
if (g) {
|
|
51
|
+
status = isStatus(g[1]) ? g[1] : undefined;
|
|
52
|
+
seen = true;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (line.trim() === "")
|
|
56
|
+
continue;
|
|
57
|
+
if (!status)
|
|
58
|
+
continue;
|
|
59
|
+
const r = ROW.exec(line);
|
|
60
|
+
if (r && !line.startsWith(" ")) {
|
|
61
|
+
entries.push({ address: r[1], type: r[2], status, liveId: r[3].trim() === "-" ? null : r[3].trim(), detail: "", claimed: CLAIMED_STATUSES.includes(status) });
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const d = DETAIL.exec(line);
|
|
65
|
+
if (d && entries.length > 0) {
|
|
66
|
+
const last = entries[entries.length - 1];
|
|
67
|
+
last.detail = last.detail ? `${last.detail} ${d[1].trim()}` : d[1].trim();
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// A line at the margin ends the group: the summary lines that follow the last one.
|
|
71
|
+
status = undefined;
|
|
72
|
+
}
|
|
73
|
+
if (!seen)
|
|
74
|
+
return undefined;
|
|
75
|
+
return { estate, state, entries, claimed: entries.filter((e) => e.claimed).length, total: entries.length };
|
|
76
|
+
}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* runs, unchanged.
|
|
14
14
|
*/
|
|
15
15
|
import type { CapabilityEntry } from "../capabilities/catalog.js";
|
|
16
|
+
import type { TemplateEntry } from "../capabilities/templates.js";
|
|
16
17
|
/** The version of the `capabilities` document this chant writes. */
|
|
17
18
|
export declare const CAPABILITIES_CONTRACT_VERSION = 1;
|
|
18
19
|
/** `$id` of the JSON Schema for the document, shipped beside this file. */
|
|
@@ -34,6 +35,12 @@ export interface CapabilitiesResult extends CapabilitiesHead {
|
|
|
34
35
|
name: string;
|
|
35
36
|
rule: string;
|
|
36
37
|
}[];
|
|
38
|
+
/**
|
|
39
|
+
* The investigation templates (#4531), the catalog's second kind of entry.
|
|
40
|
+
* Added within contract 1; a document from a chant older than
|
|
41
|
+
* CAPABILITY_TEMPLATES_FLOOR lacks it.
|
|
42
|
+
*/
|
|
43
|
+
templates: TemplateEntry[];
|
|
37
44
|
}
|
|
38
45
|
export interface CapabilitiesFailure extends CapabilitiesHead {
|
|
39
46
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities-contract.d.ts","sourceRoot":"","sources":["../../src/workspace/capabilities-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,oEAAoE;AACpE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,0FAA0F,CAAC;AAErI,kCAAkC;AAClC,eAAO,MAAM,wBAAwB,4BAA6D,CAAC;AACnG,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,uFAAwH,CAAC;AAE9J,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAC9C,QAAQ,EAAE,OAAO,6BAA6B,CAAC;IAC/C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities-contract.d.ts","sourceRoot":"","sources":["../../src/workspace/capabilities-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,oEAAoE;AACpE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,0FAA0F,CAAC;AAErI,kCAAkC;AAClC,eAAO,MAAM,wBAAwB,4BAA6D,CAAC;AACnG,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,uFAAwH,CAAC;AAE9J,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAC9C,QAAQ,EAAE,OAAO,6BAA6B,CAAC;IAC/C,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C;;;;OAIG;IACH,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,KAAK,EAAE;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAO5E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC,GAC1E,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE3G;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBtE;AAED,sGAAsG;AACtG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAYpE"}
|
|
@@ -44,13 +44,14 @@ export async function capabilitiesDocument(lexicons, load) {
|
|
|
44
44
|
mappings[name] = undefined;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
const { investigationTemplates } = await import("../capabilities/templates.js");
|
|
47
48
|
const catalog = capabilityCatalog(mappings);
|
|
48
49
|
for (const c of catalog.capabilities) {
|
|
49
50
|
for (const name of notLoaded) {
|
|
50
51
|
c.lexicons[name] = { code: "lexicon-not-loaded", message: `the ${name} lexicon isn't installed where this chant runs, so its mapping wasn't read` };
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
return { ...(await head()), ...catalog };
|
|
54
|
+
return { ...(await head()), ...catalog, templates: investigationTemplates() };
|
|
54
55
|
}
|
|
55
56
|
export async function capabilitiesFailure(error) {
|
|
56
57
|
return { ...(await head()), error };
|
|
@@ -58,6 +58,13 @@
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
+
},
|
|
62
|
+
"templates": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"description": "The investigation templates (#4531), the catalog's second kind of entry: each a fixed query about one resource, as a chant search path pattern or as Cypher for behold's graph pane. Added within contract 1 by #4531, written by chant 0.124.54 and newer; a document without it is from an older chant.",
|
|
65
|
+
"items": {
|
|
66
|
+
"$ref": "#/$defs/template"
|
|
67
|
+
}
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
70
|
},
|
|
@@ -184,6 +191,97 @@
|
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
},
|
|
194
|
+
"template": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"required": [
|
|
197
|
+
"id",
|
|
198
|
+
"title",
|
|
199
|
+
"question",
|
|
200
|
+
"inputs",
|
|
201
|
+
"reads",
|
|
202
|
+
"query"
|
|
203
|
+
],
|
|
204
|
+
"properties": {
|
|
205
|
+
"id": {
|
|
206
|
+
"type": "string",
|
|
207
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
208
|
+
},
|
|
209
|
+
"title": {
|
|
210
|
+
"type": "string"
|
|
211
|
+
},
|
|
212
|
+
"question": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"description": "The question it answers, in people's words."
|
|
215
|
+
},
|
|
216
|
+
"sources": {
|
|
217
|
+
"type": "array",
|
|
218
|
+
"description": "The sources whose nodes it applies to; absent means every source.",
|
|
219
|
+
"items": {
|
|
220
|
+
"type": "string"
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"inputs": {
|
|
224
|
+
"type": "array",
|
|
225
|
+
"description": "What it is filled with. The first is the resource, the only one of kind resource. A path pattern fills {{<name>}}; a Cypher query binds the resource as $key and each other input as $<name>. A scope input says where the query is read and appears in neither.",
|
|
226
|
+
"items": {
|
|
227
|
+
"type": "object",
|
|
228
|
+
"required": [
|
|
229
|
+
"name",
|
|
230
|
+
"kind",
|
|
231
|
+
"description"
|
|
232
|
+
],
|
|
233
|
+
"properties": {
|
|
234
|
+
"name": {
|
|
235
|
+
"type": "string"
|
|
236
|
+
},
|
|
237
|
+
"kind": {
|
|
238
|
+
"enum": [
|
|
239
|
+
"resource",
|
|
240
|
+
"scope",
|
|
241
|
+
"term"
|
|
242
|
+
],
|
|
243
|
+
"description": "resource: a name, an IR id, a block address or a cloud ID, resolved to one node. scope: an environment or estate. term: one search term, such as a kind or a capability call."
|
|
244
|
+
},
|
|
245
|
+
"description": {
|
|
246
|
+
"type": "string"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"reads": {
|
|
252
|
+
"enum": [
|
|
253
|
+
"source",
|
|
254
|
+
"live",
|
|
255
|
+
"snapshots",
|
|
256
|
+
"session"
|
|
257
|
+
],
|
|
258
|
+
"description": "What answering reads: the declared source, a live read, recorded snapshots, or only the graph loaded into the session."
|
|
259
|
+
},
|
|
260
|
+
"query": {
|
|
261
|
+
"type": "object",
|
|
262
|
+
"required": [
|
|
263
|
+
"kind",
|
|
264
|
+
"text"
|
|
265
|
+
],
|
|
266
|
+
"properties": {
|
|
267
|
+
"kind": {
|
|
268
|
+
"enum": [
|
|
269
|
+
"path",
|
|
270
|
+
"cypher"
|
|
271
|
+
],
|
|
272
|
+
"description": "path: a chant search query, which needs no graph database. cypher: a read-only Cypher statement for behold's graph pane."
|
|
273
|
+
},
|
|
274
|
+
"text": {
|
|
275
|
+
"type": "string"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"note": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"description": "What it does not answer, said where it is offered."
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
187
285
|
"failure": {
|
|
188
286
|
"type": "object",
|
|
189
287
|
"description": "Exit code 1.",
|
|
@@ -111,7 +111,8 @@
|
|
|
111
111
|
"choudoufu",
|
|
112
112
|
"chant",
|
|
113
113
|
"warden",
|
|
114
|
-
"sql"
|
|
114
|
+
"sql",
|
|
115
|
+
"pulumi"
|
|
115
116
|
]
|
|
116
117
|
},
|
|
117
118
|
"scope": {
|
|
@@ -147,6 +148,13 @@
|
|
|
147
148
|
"const": true,
|
|
148
149
|
"description": "Planned before what it reads applied, so it may hold stand-in values (a Terragrunt dependent planned on mock_outputs). Left out of the document's digest, refused by a wave's set digest, and never grouped with real plans."
|
|
149
150
|
},
|
|
151
|
+
"placeholders": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"items": {
|
|
154
|
+
"type": "string"
|
|
155
|
+
},
|
|
156
|
+
"description": "Added in contract 1 by #4463, written by chant 0.124.54 and newer. The inputs the member was previewed with stand-in values for (#4463), as var.<name>, sorted. Every attribute they drive is marked unknown in its entries, and its planDigest covers them."
|
|
157
|
+
},
|
|
150
158
|
"holes": {
|
|
151
159
|
"type": "array",
|
|
152
160
|
"description": "What the planner could not read, so the plan says nothing about it.",
|
|
@@ -168,6 +176,28 @@
|
|
|
168
176
|
}
|
|
169
177
|
}
|
|
170
178
|
}
|
|
179
|
+
},
|
|
180
|
+
"group": {
|
|
181
|
+
"type": "object",
|
|
182
|
+
"required": [
|
|
183
|
+
"digest",
|
|
184
|
+
"reads"
|
|
185
|
+
],
|
|
186
|
+
"description": "Added in contract 1 by #4440, written by chant 0.124.54 and newer. Set on a member a capability planned with others as one group (ws-107). Part of digest when present.",
|
|
187
|
+
"properties": {
|
|
188
|
+
"digest": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"pattern": "^(?:jcs1-)?sha256:[0-9a-f]{64}$",
|
|
191
|
+
"description": "The group digest folded into planDigest: computePlanDigest(\"capability-group\", ...) over the capability's kind, each member's component, member and own plan digest, and the capability's digest of the composition."
|
|
192
|
+
},
|
|
193
|
+
"reads": {
|
|
194
|
+
"type": "array",
|
|
195
|
+
"items": {
|
|
196
|
+
"type": "string"
|
|
197
|
+
},
|
|
198
|
+
"description": "The <component>.<output> values the member reads from another member of its group that the plan does not know, sorted. The group's apply computes them. A change set with any is never passed as empty."
|
|
199
|
+
}
|
|
200
|
+
}
|
|
171
201
|
}
|
|
172
202
|
}
|
|
173
203
|
},
|
|
@@ -196,7 +226,8 @@
|
|
|
196
226
|
"choudoufu",
|
|
197
227
|
"chant",
|
|
198
228
|
"warden",
|
|
199
|
-
"sql"
|
|
229
|
+
"sql",
|
|
230
|
+
"pulumi"
|
|
200
231
|
]
|
|
201
232
|
},
|
|
202
233
|
"address": {
|
|
@@ -256,6 +287,10 @@
|
|
|
256
287
|
],
|
|
257
288
|
"description": "Set on update, replace and delete."
|
|
258
289
|
},
|
|
290
|
+
"mayAppear": {
|
|
291
|
+
"const": true,
|
|
292
|
+
"description": "Added in contract 1 by #4453. The planner could not enumerate what the entry stands for: a Pulumi resource registered inside an apply() whose input is unknown at preview. One entry per component whose children may appear, at <component URN with $* after its type and /* after its name>, and one per resource the last stack export holds under such a component that the preview did not list or plans to delete. Never dropped; a change set with one is never empty. Part of digest."
|
|
293
|
+
},
|
|
259
294
|
"region": {
|
|
260
295
|
"type": "string"
|
|
261
296
|
},
|
|
@@ -270,7 +305,11 @@
|
|
|
270
305
|
},
|
|
271
306
|
"node": {
|
|
272
307
|
"type": ["string", "null"],
|
|
273
|
-
"description": "Added in contract 1 by #4022, written by chant 0.124.28 and newer on a stored change set (chant change-set show). The graph node the entry changes, as chant graph --format ir names it, with the member in front (<member>/<id>) inside a workspace, as chant workspace graph names it. A chant entry's node is its address; a terraform-family entry's is <root>/<block key>, where the block key is each module call as module.<name>/ and then the block's address with no index. Null when the graph holds no node for the address, such as a delete of a block the source no longer declares. Absent on a document never mapped onto a graph. Not part of digest."
|
|
308
|
+
"description": "Added in contract 1 by #4022, written by chant 0.124.28 and newer on a stored change set (chant change-set show). The graph node the entry changes, as chant graph --format ir names it, with the member in front (<member>/<id>) inside a workspace, as chant workspace graph names it. A chant entry's node is its address; a terraform-family entry's is <root>/<block key>, where the block key is each module call as module.<name>/ and then the block's address with no index. Since #4454 an instance of a count or for_each block gets the instance node's id, the block node's id followed by the instance key as the planner prints it (<root>/aws_eip.pool[0], <root>/aws_eip.pool[\"a\"]), with instanceOf naming the block node; an instance under an expanded module call keeps the block node. Null when the graph holds no node for the address, such as a delete of a block the source no longer declares. Absent on a document never mapped onto a graph. Not part of digest."
|
|
309
|
+
},
|
|
310
|
+
"instanceOf": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"description": "Added in contract 1 by #4454. Set when node is an instance node of a count or for_each block: the id of the block node it is an instance of, in the same id space as node. The block node is the rollup. Absent on every other entry. Not part of digest."
|
|
274
313
|
},
|
|
275
314
|
"source": {
|
|
276
315
|
"type": "string",
|
|
@@ -5,9 +5,21 @@
|
|
|
5
5
|
* the workspace that holds `cwd`, as `ci.reportUrl` is (./ci-report-url.ts).
|
|
6
6
|
* A directory outside a workspace reads nothing.
|
|
7
7
|
*/
|
|
8
|
-
import { type CloudTradeSpec, type PipelineCloudIdentity } from "../ci-identity.js";
|
|
8
|
+
import { type CloudTradeSpec, type PipelineCloudIdentity, type TargetNames } from "../ci-identity.js";
|
|
9
9
|
/** The plan and apply identities of the pipeline for `env` and `member`, or undefined. */
|
|
10
10
|
export declare function declaredCloudIdentity(cwd: string, env: string, member?: string): Promise<PipelineCloudIdentity | undefined>;
|
|
11
11
|
/** The trade a pull request environment's jobs take for `member` (#4330, `resolvePrEnvCloudIdentity`), or undefined. */
|
|
12
12
|
export declare function declaredPrEnvCloudIdentity(cwd: string, member?: string): Promise<CloudTradeSpec | undefined>;
|
|
13
|
+
/** A target-to-identity lookup, as {@link declaredTargetCloudIdentity} returns it. */
|
|
14
|
+
export type TargetCloudIdentityLookup = (target: TargetNames) => PipelineCloudIdentity | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* The plan and apply identities of each target (#4332,
|
|
17
|
+
* `resolveTargetCloudIdentity`) for `env` and the member whose directory
|
|
18
|
+
* holds `cwd`, as one lookup that reads the declaration once. Undefined
|
|
19
|
+
* outside a workspace. A target is one name or several (a Terraform root's
|
|
20
|
+
* key and its directory): a rule covers it when any name matches, and the
|
|
21
|
+
* first rule that does wins. A lexicon that runs several targets in one process,
|
|
22
|
+
* such as `terraform-apply`'s group (#4447), compares them with it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function declaredTargetCloudIdentity(cwd: string, env: string): Promise<TargetCloudIdentityLookup | undefined>;
|
|
13
25
|
//# sourceMappingURL=ci-cloud-identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-cloud-identity.d.ts","sourceRoot":"","sources":["../../src/workspace/ci-cloud-identity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ci-cloud-identity.d.ts","sourceRoot":"","sources":["../../src/workspace/ci-cloud-identity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAA+E,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhL,0FAA0F;AAC1F,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAUjI;AAED,wHAAwH;AACxH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAUlH;AAED,sFAAsF;AACtF,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,qBAAqB,GAAG,SAAS,CAAC;AAEnG;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAe1H"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* the workspace that holds `cwd`, as `ci.reportUrl` is (./ci-report-url.ts).
|
|
6
6
|
* A directory outside a workspace reads nothing.
|
|
7
7
|
*/
|
|
8
|
+
import { relative, resolve, sep } from "node:path";
|
|
8
9
|
import { findWorkspaceRoot } from "../project-root.js";
|
|
9
|
-
import { resolveCloudIdentity, resolvePrEnvCloudIdentity } from "../ci-identity.js";
|
|
10
|
+
import { resolveCloudIdentity, resolvePrEnvCloudIdentity, resolveTargetCloudIdentity } from "../ci-identity.js";
|
|
10
11
|
/** The plan and apply identities of the pipeline for `env` and `member`, or undefined. */
|
|
11
12
|
export async function declaredCloudIdentity(cwd, env, member) {
|
|
12
13
|
const found = findWorkspaceRoot(cwd);
|
|
@@ -37,3 +38,31 @@ export async function declaredPrEnvCloudIdentity(cwd, member) {
|
|
|
37
38
|
throw Object.assign(new Error(`${err.describe()} [${err.code}]`), { code: err.code });
|
|
38
39
|
}
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* The plan and apply identities of each target (#4332,
|
|
43
|
+
* `resolveTargetCloudIdentity`) for `env` and the member whose directory
|
|
44
|
+
* holds `cwd`, as one lookup that reads the declaration once. Undefined
|
|
45
|
+
* outside a workspace. A target is one name or several (a Terraform root's
|
|
46
|
+
* key and its directory): a rule covers it when any name matches, and the
|
|
47
|
+
* first rule that does wins. A lexicon that runs several targets in one process,
|
|
48
|
+
* such as `terraform-apply`'s group (#4447), compares them with it.
|
|
49
|
+
*/
|
|
50
|
+
export async function declaredTargetCloudIdentity(cwd, env) {
|
|
51
|
+
const found = findWorkspaceRoot(cwd);
|
|
52
|
+
if (!found)
|
|
53
|
+
return undefined;
|
|
54
|
+
const [{ readDeclaration, WorkspaceReadError }, { workingTree }, { memberHolding }] = await Promise.all([import("./declaration.js"), import("./tree.js"), import("./record-assets.js")]);
|
|
55
|
+
try {
|
|
56
|
+
const declaration = readDeclaration(workingTree(found.dir));
|
|
57
|
+
const decl = declaration.ci?.identity?.cloud;
|
|
58
|
+
const rel = relative(found.dir, resolve(cwd));
|
|
59
|
+
const posix = sep === "/" ? rel : rel.split(sep).join("/");
|
|
60
|
+
const member = rel.startsWith("..") ? null : memberHolding(posix === "" ? "." : posix, declaration.members ?? []);
|
|
61
|
+
return (target) => resolveTargetCloudIdentity(decl, env, member ?? undefined, target);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (!(err instanceof WorkspaceReadError))
|
|
65
|
+
throw err;
|
|
66
|
+
throw Object.assign(new Error(`${err.describe()} [${err.code}]`), { code: err.code });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* - Every node id becomes `<member>/<id>`. Member names can't hold `/`, and
|
|
9
9
|
* `::` keeps its meaning for stacks inside a member (`app/web::Bucket`).
|
|
10
10
|
* Edge ends, `$ref` values in attributes, `compositeInstance`,
|
|
11
|
-
* `runtimeOwner` and export and import nodes are
|
|
11
|
+
* `runtimeOwner`, `instanceOf` (#4454) and export and import nodes are
|
|
12
|
+
* rewritten the same way.
|
|
12
13
|
* - `groups.byMember` maps each member to its node ids. `byLexicon` and
|
|
13
14
|
* `byComposite` keep their keys (a lexicon or composite type is the same
|
|
14
15
|
* thing in every member) and merge the ids. `byStack`, `byContainer`,
|
|
@@ -40,6 +41,7 @@ import type { KindLinkRead } from "./kind-link-readers.js";
|
|
|
40
41
|
import type { RecordLinkRow } from "./record-assets.js";
|
|
41
42
|
import { type GraphIR, type IRExport, type IRDanglingRef, type IRGroups, type IRImport, type IREdge, type IRNode } from "../graph-ir.js";
|
|
42
43
|
import type { ViewDocument } from "../capabilities/view.js";
|
|
44
|
+
import type { RootRead } from "../observation.js";
|
|
43
45
|
/** The version of the composed document `chant workspace graph` writes. */
|
|
44
46
|
export declare const WORKSPACE_GRAPH_VERSION = 1;
|
|
45
47
|
/**
|
|
@@ -105,6 +107,13 @@ export interface ComposedMember {
|
|
|
105
107
|
* when the member's chant predates the view and printed none.
|
|
106
108
|
*/
|
|
107
109
|
capabilityView?: ViewDocument | null;
|
|
110
|
+
/**
|
|
111
|
+
* With `--live` (INTENTIUS/chant#4452): which read answered each of the
|
|
112
|
+
* member's roots, its IR's `rootReads` as the member's chant wrote it. Keys
|
|
113
|
+
* are the member's own root keys, unprefixed: they name roots, not nodes.
|
|
114
|
+
* Absent when the member's IR had none.
|
|
115
|
+
*/
|
|
116
|
+
rootReads?: Record<string, RootRead>;
|
|
108
117
|
/** Whole-read facts the member's IR carried (`meta`, `pipeline`), kept apart from the composed sections. */
|
|
109
118
|
meta?: Record<string, unknown>;
|
|
110
119
|
pipeline?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-graph.d.ts","sourceRoot":"","sources":["../../src/workspace/compose-graph.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compose-graph.d.ts","sourceRoot":"","sources":["../../src/workspace/compose-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* - Every node id becomes `<member>/<id>`. Member names can't hold `/`, and
|
|
9
9
|
* `::` keeps its meaning for stacks inside a member (`app/web::Bucket`).
|
|
10
10
|
* Edge ends, `$ref` values in attributes, `compositeInstance`,
|
|
11
|
-
* `runtimeOwner` and export and import nodes are
|
|
11
|
+
* `runtimeOwner`, `instanceOf` (#4454) and export and import nodes are
|
|
12
|
+
* rewritten the same way.
|
|
12
13
|
* - `groups.byMember` maps each member to its node ids. `byLexicon` and
|
|
13
14
|
* `byComposite` keep their keys (a lexicon or composite type is the same
|
|
14
15
|
* thing in every member) and merge the ids. `byStack`, `byContainer`,
|
|
@@ -180,6 +181,8 @@ export function composeWorkspaceGraph(workspace, inputs, links) {
|
|
|
180
181
|
composed.compositeInstance = prefix(m, node.compositeInstance);
|
|
181
182
|
if (node.runtimeOwner)
|
|
182
183
|
composed.runtimeOwner = prefix(m, node.runtimeOwner);
|
|
184
|
+
if (node.instanceOf)
|
|
185
|
+
composed.instanceOf = prefix(m, node.instanceOf);
|
|
183
186
|
nodes.push(composed);
|
|
184
187
|
ids.push(composed.id);
|
|
185
188
|
}
|
|
@@ -216,6 +219,8 @@ export function composeWorkspaceGraph(workspace, inputs, links) {
|
|
|
216
219
|
}
|
|
217
220
|
if (ir.pipeline)
|
|
218
221
|
member.pipeline = ir.pipeline;
|
|
222
|
+
if (ir.rootReads && Object.keys(ir.rootReads).length > 0)
|
|
223
|
+
member.rootReads = ir.rootReads;
|
|
219
224
|
}
|
|
220
225
|
nodes.sort((a, b) => a.id.localeCompare(b.id));
|
|
221
226
|
const edgeKey = (e) => `${e.from}\u0000${e.to}\u0000${e.viaAttr ?? ""}`;
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
* checkout does, often nothing uncommitted.
|
|
46
46
|
*/
|
|
47
47
|
/** The read-contract commands, as a reader names them. */
|
|
48
|
-
export declare const READ_CONTRACT_COMMANDS: readonly ["ls", "graph", "check", "status", "records", "records --uncommitted", "graph --intent", "graph --composites", "runs", "wip", "search", "search --capabilities"];
|
|
48
|
+
export declare const READ_CONTRACT_COMMANDS: readonly ["ls", "graph", "check", "status", "records", "records --uncommitted", "graph --intent", "graph --composites", "runs", "wip", "search", "search --capabilities", "drift"];
|
|
49
49
|
export type ReadContractCommand = (typeof READ_CONTRACT_COMMANDS)[number];
|
|
50
50
|
/**
|
|
51
51
|
* Each command's output schema, beside this module's parent in `src/workspace/`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workspace/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAYH,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,YAAI,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workspace/conformance/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
54
54
|
import { isDeepStrictEqual } from "node:util";
|
|
55
55
|
import { READ_CONTRACT_VERSION } from "../reason-codes.js";
|
|
56
56
|
/** The read-contract commands, as a reader names them. */
|
|
57
|
-
export const READ_CONTRACT_COMMANDS = ["ls", "graph", "check", "status", "records", "records --uncommitted", "graph --intent", "graph --composites", "runs", "wip", "search", "search --capabilities"];
|
|
57
|
+
export const READ_CONTRACT_COMMANDS = ["ls", "graph", "check", "status", "records", "records --uncommitted", "graph --intent", "graph --composites", "runs", "wip", "search", "search --capabilities", "drift"];
|
|
58
58
|
/**
|
|
59
59
|
* Each command's output schema, beside this module's parent in `src/workspace/`.
|
|
60
60
|
* The write commands' schemas (`records-new`, `records-amend`,
|
|
@@ -75,6 +75,8 @@ export const READ_CONTRACT_SCHEMAS = {
|
|
|
75
75
|
search: "search.schema.json",
|
|
76
76
|
// The capability catalog (#4375), from the workspace's chant.
|
|
77
77
|
"search --capabilities": "capabilities.schema.json",
|
|
78
|
+
// One member's drift record (behold#995, #4451), the drift document with the contract's head.
|
|
79
|
+
drift: "drift.schema.json",
|
|
78
80
|
};
|
|
79
81
|
/** The flags that ask each command for its JSON document. A reader adds one of these and nothing else. */
|
|
80
82
|
export const READ_CONTRACT_JSON_FLAGS = {
|
|
@@ -90,6 +92,7 @@ export const READ_CONTRACT_JSON_FLAGS = {
|
|
|
90
92
|
wip: [["--json"]],
|
|
91
93
|
search: [["--json"]],
|
|
92
94
|
"search --capabilities": [["--json"]],
|
|
95
|
+
drift: [[], ["--json"]],
|
|
93
96
|
};
|
|
94
97
|
/** The arguments the suite passes each read, on the reference workspace or the generated one. */
|
|
95
98
|
export const REFERENCE_READS = {
|
|
@@ -106,6 +109,8 @@ export const REFERENCE_READS = {
|
|
|
106
109
|
// A bare word: on either workspace it searches the chant member, delivery, and lists the others.
|
|
107
110
|
search: ["app"],
|
|
108
111
|
"search --capabilities": [],
|
|
112
|
+
// The app member has no drift read on either workspace, so the read answers the no-drift-read error document and reaches no account.
|
|
113
|
+
drift: ["--member", "app"],
|
|
109
114
|
};
|
|
110
115
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
111
116
|
/** The package this module ships in: `packages/core` in the repository, `node_modules/@intentius/chant` when installed. */
|