@intentius/chant 0.80.0 → 0.81.0
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 +8 -16
- package/dist/audit/discover.d.ts.map +1 -1
- package/dist/audit/report-html.d.ts +5 -0
- package/dist/audit/report-html.d.ts.map +1 -1
- package/dist/audit/report-model.d.ts +13 -0
- package/dist/audit/report-model.d.ts.map +1 -1
- package/dist/audit/terraform-state.d.ts +4 -5
- package/dist/audit/terraform-state.d.ts.map +1 -1
- package/dist/cli/commands/audit.d.ts +25 -9
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon.d.ts +8 -0
- package/dist/cli/commands/check-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/import-agents.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/update.d.ts +6 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/vendor.d.ts +5 -0
- package/dist/cli/commands/vendor.d.ts.map +1 -1
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/components.d.ts.map +1 -1
- package/dist/cli/handlers/dev.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/init.d.ts.map +1 -1
- package/dist/cli/handlers/operator.d.ts +7 -0
- package/dist/cli/handlers/operator.d.ts.map +1 -1
- package/dist/cli/handlers/promote.d.ts +7 -4
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/run-generate.d.ts.map +1 -1
- package/dist/cli/handlers/run.d.ts +4 -1
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/handlers/vendor.d.ts +8 -3
- package/dist/cli/handlers/vendor.d.ts.map +1 -1
- package/dist/cli/main.d.ts +12 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/plugins.d.ts +12 -7
- package/dist/cli/plugins.d.ts.map +1 -1
- package/dist/cli/registry.d.ts +32 -0
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/codegen/fetch.d.ts +10 -0
- package/dist/codegen/fetch.d.ts.map +1 -1
- package/dist/components/cli-support.d.ts +3 -1
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/discover.d.ts.map +1 -1
- package/dist/components/driver.d.ts +16 -2
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/gate-plan.d.ts +40 -0
- package/dist/components/gate-plan.d.ts.map +1 -0
- package/dist/components/promote.d.ts +60 -7
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/sandbox/driver.d.ts.map +1 -1
- package/dist/components/sandbox/run.d.ts.map +1 -1
- package/dist/components/verbs/build-archive.d.ts +22 -11
- package/dist/components/verbs/build-archive.d.ts.map +1 -1
- package/dist/components/verbs/run-agent.d.ts.map +1 -1
- package/dist/config-static.d.ts +59 -0
- package/dist/config-static.d.ts.map +1 -0
- package/dist/config.d.ts +32 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/content-digest.d.ts +17 -0
- package/dist/content-digest.d.ts.map +1 -0
- package/dist/discovery/files.d.ts +10 -5
- package/dist/discovery/files.d.ts.map +1 -1
- package/dist/discovery/fold-import.d.ts +20 -4
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/sandbox/driver.d.ts +20 -0
- package/dist/discovery/sandbox/driver.d.ts.map +1 -1
- package/dist/discovery/sandbox/fork.d.ts +20 -0
- package/dist/discovery/sandbox/fork.d.ts.map +1 -1
- package/dist/discovery/walk.d.ts +119 -0
- package/dist/discovery/walk.d.ts.map +1 -0
- package/dist/graph-ir.d.ts +4 -1
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/join-key.d.ts +31 -0
- package/dist/join-key.d.ts.map +1 -0
- package/dist/lexicon-module.d.ts +51 -6
- package/dist/lexicon-module.d.ts.map +1 -1
- package/dist/lexicon.d.ts +58 -1
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/build-ledger-store.d.ts.map +1 -1
- package/dist/lifecycle/digest.d.ts +5 -1
- package/dist/lifecycle/digest.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +20 -5
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/git.d.ts +64 -0
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/lease.d.ts +8 -1
- package/dist/lifecycle/lease.d.ts.map +1 -1
- package/dist/lifecycle/legacy-digest.d.ts +41 -8
- package/dist/lifecycle/legacy-digest.d.ts.map +1 -1
- package/dist/lifecycle/member-ledger.d.ts +67 -0
- package/dist/lifecycle/member-ledger.d.ts.map +1 -0
- package/dist/lifecycle/plan-digest.d.ts +4 -3
- package/dist/lifecycle/plan-digest.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.d.ts +18 -2
- package/dist/lifecycle/release-ledger.d.ts.map +1 -1
- package/dist/lifecycle/status.d.ts +90 -5
- package/dist/lifecycle/status.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.d.ts +32 -0
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/index.d.ts +2 -0
- package/dist/op/activities/index.d.ts.map +1 -1
- package/dist/op/activities/propose-upgrade.d.ts +75 -0
- package/dist/op/activities/propose-upgrade.d.ts.map +1 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/gate-name.d.ts +7 -0
- package/dist/op/gate-name.d.ts.map +1 -1
- package/dist/op/gate-summary.d.ts +16 -0
- package/dist/op/gate-summary.d.ts.map +1 -1
- package/dist/op/gate.d.ts +16 -2
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/project-root.d.ts +26 -0
- package/dist/project-root.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/contract-repo.d.ts +37 -0
- package/dist/workspace/__fixtures__/contract-repo.d.ts.map +1 -0
- package/dist/workspace/__fixtures__/two-member-workspace.d.ts +11 -0
- package/dist/workspace/__fixtures__/two-member-workspace.d.ts.map +1 -0
- package/dist/workspace/checks/generated.d.ts +156 -0
- package/dist/workspace/checks/generated.d.ts.map +1 -0
- package/dist/workspace/checks/ledgers.d.ts +78 -0
- package/dist/workspace/checks/ledgers.d.ts.map +1 -0
- package/dist/workspace/checks/links.d.ts +25 -0
- package/dist/workspace/checks/links.d.ts.map +1 -0
- package/dist/workspace/checks/pipelines.d.ts +76 -0
- package/dist/workspace/checks/pipelines.d.ts.map +1 -0
- package/dist/workspace/checks.d.ts +161 -0
- package/dist/workspace/checks.d.ts.map +1 -0
- package/dist/workspace/compose-graph.d.ts +115 -0
- package/dist/workspace/compose-graph.d.ts.map +1 -0
- package/dist/workspace/compose-reports.d.ts +68 -0
- package/dist/workspace/compose-reports.d.ts.map +1 -0
- package/dist/workspace/declaration.d.ts +220 -0
- package/dist/workspace/declaration.d.ts.map +1 -0
- package/dist/workspace/declaration.schema.json +434 -0
- package/dist/workspace/generated-files.d.ts +65 -0
- package/dist/workspace/generated-files.d.ts.map +1 -0
- package/dist/workspace/glob.d.ts +13 -0
- package/dist/workspace/glob.d.ts.map +1 -0
- package/dist/workspace/graph-cli.d.ts +75 -0
- package/dist/workspace/graph-cli.d.ts.map +1 -0
- package/dist/workspace/init.d.ts +96 -0
- package/dist/workspace/init.d.ts.map +1 -0
- package/dist/workspace/jsonc.d.ts +38 -0
- package/dist/workspace/jsonc.d.ts.map +1 -0
- package/dist/workspace/kinds.d.ts +192 -0
- package/dist/workspace/kinds.d.ts.map +1 -0
- package/dist/workspace/lineage-check.d.ts +84 -0
- package/dist/workspace/lineage-check.d.ts.map +1 -0
- package/dist/workspace/lineage-cli.d.ts +31 -0
- package/dist/workspace/lineage-cli.d.ts.map +1 -0
- package/dist/workspace/lineage-init.d.ts +101 -0
- package/dist/workspace/lineage-init.d.ts.map +1 -0
- package/dist/workspace/lineage-lock.d.ts +258 -0
- package/dist/workspace/lineage-lock.d.ts.map +1 -0
- package/dist/workspace/lineage-merge.d.ts +14 -0
- package/dist/workspace/lineage-merge.d.ts.map +1 -0
- package/dist/workspace/lineage-migrations.d.ts +178 -0
- package/dist/workspace/lineage-migrations.d.ts.map +1 -0
- package/dist/workspace/lineage-update.d.ts +59 -0
- package/dist/workspace/lineage-update.d.ts.map +1 -0
- package/dist/workspace/lineage-upgrade-cli.d.ts +40 -0
- package/dist/workspace/lineage-upgrade-cli.d.ts.map +1 -0
- package/dist/workspace/lineage-upgrade.d.ts +146 -0
- package/dist/workspace/lineage-upgrade.d.ts.map +1 -0
- package/dist/workspace/lineage-vendor.d.ts +63 -0
- package/dist/workspace/lineage-vendor.d.ts.map +1 -0
- package/dist/workspace/lineage-version.d.ts +32 -0
- package/dist/workspace/lineage-version.d.ts.map +1 -0
- package/dist/workspace/links.d.ts +150 -0
- package/dist/workspace/links.d.ts.map +1 -0
- package/dist/workspace/ls.d.ts +99 -0
- package/dist/workspace/ls.d.ts.map +1 -0
- package/dist/workspace/member-commands.d.ts +139 -0
- package/dist/workspace/member-commands.d.ts.map +1 -0
- package/dist/workspace/member-handles.d.ts +54 -0
- package/dist/workspace/member-handles.d.ts.map +1 -0
- package/dist/workspace/member-pipeline.d.ts +143 -0
- package/dist/workspace/member-pipeline.d.ts.map +1 -0
- package/dist/workspace/member-run.d.ts +67 -0
- package/dist/workspace/member-run.d.ts.map +1 -0
- package/dist/workspace/reason-codes.d.ts +65 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -0
- package/dist/workspace/records-cli.d.ts +28 -4
- package/dist/workspace/records-cli.d.ts.map +1 -1
- package/dist/workspace/records.d.ts.map +1 -1
- package/dist/workspace/root-refusal.d.ts +53 -0
- package/dist/workspace/root-refusal.d.ts.map +1 -0
- package/dist/workspace/status.d.ts +150 -0
- package/dist/workspace/status.d.ts.map +1 -0
- package/dist/workspace/template-manifest.d.ts +90 -0
- package/dist/workspace/template-manifest.d.ts.map +1 -0
- package/dist/workspace/tree.d.ts +36 -0
- package/dist/workspace/tree.d.ts.map +1 -0
- package/dist/workspace/trust/attestor.d.ts +67 -0
- package/dist/workspace/trust/attestor.d.ts.map +1 -0
- package/dist/workspace/trust/policy.d.ts +111 -0
- package/dist/workspace/trust/policy.d.ts.map +1 -0
- package/dist/workspace/trust/provenance.d.ts +67 -0
- package/dist/workspace/trust/provenance.d.ts.map +1 -0
- package/dist/workspace/trust/ssh-commit.d.ts +43 -0
- package/dist/workspace/trust/ssh-commit.d.ts.map +1 -0
- package/dist/workspace/trust/test-repo.d.ts +42 -0
- package/dist/workspace/trust/test-repo.d.ts.map +1 -0
- package/dist/workspace/trust/verify-cli.d.ts +9 -0
- package/dist/workspace/trust/verify-cli.d.ts.map +1 -0
- package/dist/workspace/trust/verify.d.ts +66 -0
- package/dist/workspace/trust/verify.d.ts.map +1 -0
- package/dist/workspace/which-chant.d.ts +58 -0
- package/dist/workspace/which-chant.d.ts.map +1 -0
- package/dist/workspace/workspace-kinds.schema.json +133 -0
- package/package.json +2 -1
- package/src/audit/discover.ts +66 -78
- package/src/audit/report-html.ts +3 -1
- package/src/audit/report-model.ts +14 -1
- package/src/audit/terraform-state.test.ts +4 -9
- package/src/audit/terraform-state.ts +4 -5
- package/src/cli/commands/audit-truncation.test.ts +167 -0
- package/src/cli/commands/audit.ts +89 -60
- package/src/cli/commands/check-lexicon.ts +24 -0
- package/src/cli/commands/doctor.test.ts +30 -0
- package/src/cli/commands/doctor.ts +18 -0
- package/src/cli/commands/import-agents.ts +6 -2
- package/src/cli/commands/init.ts +22 -3
- package/src/cli/commands/lint.test.ts +17 -23
- package/src/cli/commands/lint.ts +24 -84
- package/src/cli/commands/update.ts +13 -4
- package/src/cli/commands/vendor.ts +11 -6
- package/src/cli/handlers/__snapshots__/build-member.test.ts.snap +38 -0
- package/src/cli/handlers/build-member.test.ts +127 -0
- package/src/cli/handlers/build.ts +35 -1
- package/src/cli/handlers/components.test.ts +127 -0
- package/src/cli/handlers/components.ts +70 -8
- package/src/cli/handlers/dev.ts +5 -3
- package/src/cli/handlers/fan-out.ts +9 -2
- package/src/cli/handlers/init.ts +54 -1
- package/src/cli/handlers/operator.test.ts +68 -0
- package/src/cli/handlers/operator.ts +37 -9
- package/src/cli/handlers/promote.test.ts +118 -2
- package/src/cli/handlers/promote.ts +82 -16
- package/src/cli/handlers/run-generate-member.test.ts +83 -0
- package/src/cli/handlers/run-generate.test.ts +6 -8
- package/src/cli/handlers/run-generate.ts +36 -1
- package/src/cli/handlers/run.test.ts +47 -0
- package/src/cli/handlers/run.ts +28 -5
- package/src/cli/handlers/vendor.ts +147 -43
- package/src/cli/main.test.ts +105 -1
- package/src/cli/main.ts +230 -17
- package/src/cli/plugins.ts +17 -17
- package/src/cli/registry.ts +32 -0
- package/src/cli/static-config-read.test.ts +208 -0
- package/src/codegen/fetch.test.ts +63 -1
- package/src/codegen/fetch.ts +30 -1
- package/src/components/cli-support.ts +6 -1
- package/src/components/discover.test.ts +27 -57
- package/src/components/discover.ts +13 -68
- package/src/components/driver.test.ts +78 -1
- package/src/components/driver.ts +43 -7
- package/src/components/gate-plan.ts +53 -0
- package/src/components/promote.test.ts +276 -2
- package/src/components/promote.ts +119 -15
- package/src/components/sandbox/driver.ts +8 -8
- package/src/components/sandbox/run.ts +4 -1
- package/src/components/verbs/build-archive.ts +27 -21
- package/src/components/verbs/run-agent.ts +3 -5
- package/src/config-static.test.ts +136 -0
- package/src/config-static.ts +232 -0
- package/src/config.test.ts +2 -2
- package/src/config.ts +48 -15
- package/src/content-digest.test.ts +120 -0
- package/src/content-digest.ts +21 -0
- package/src/discovery/files.test.ts +10 -10
- package/src/discovery/files.ts +25 -81
- package/src/discovery/fold-import.ts +49 -5
- package/src/discovery/index.ts +1 -0
- package/src/discovery/sandbox/driver.ts +73 -35
- package/src/discovery/sandbox/fork-diagnostic.test.ts +136 -13
- package/src/discovery/sandbox/fork.ts +83 -43
- package/src/discovery/sandbox/path-lexicon-multifile.test.ts +285 -0
- package/src/discovery/walk.test.ts +263 -0
- package/src/discovery/walk.ts +334 -0
- package/src/effect-receipt.ts +2 -2
- package/src/graph-ir.ts +4 -1
- package/src/join-key.test.ts +25 -0
- package/src/join-key.ts +39 -0
- package/src/lexicon-module.ts +108 -10
- package/src/lexicon.ts +79 -1
- package/src/lifecycle/build-ledger-store.ts +11 -10
- package/src/lifecycle/digest.ts +9 -5
- package/src/lifecycle/gate-ledger.test.ts +20 -0
- package/src/lifecycle/gate-ledger.ts +28 -6
- package/src/lifecycle/git.test.ts +13 -1
- package/src/lifecycle/git.ts +221 -176
- package/src/lifecycle/lease.ts +25 -10
- package/src/lifecycle/legacy-digest.test.ts +115 -23
- package/src/lifecycle/legacy-digest.ts +60 -19
- package/src/lifecycle/member-ledger.test.ts +319 -0
- package/src/lifecycle/member-ledger.ts +145 -0
- package/src/lifecycle/plan-digest.ts +7 -7
- package/src/lifecycle/release-ledger.test.ts +20 -0
- package/src/lifecycle/release-ledger.ts +23 -7
- package/src/lifecycle/status.test.ts +151 -1
- package/src/lifecycle/status.ts +228 -7
- package/src/op/activities/activity-contracts.ts +37 -0
- package/src/op/activities/index.ts +10 -0
- package/src/op/activities/propose-upgrade.ts +206 -0
- package/src/op/discover.test.ts +14 -4
- package/src/op/discover.ts +19 -27
- package/src/op/gate-name.ts +8 -0
- package/src/op/gate-summary.test.ts +14 -0
- package/src/op/gate-summary.ts +25 -2
- package/src/op/gate.ts +36 -7
- package/src/op/generate-pipeline.test.ts +14 -5
- package/src/project-root.test.ts +66 -1
- package/src/project-root.ts +48 -0
- package/src/workspace/__fixtures__/contract-repo.ts +100 -0
- package/src/workspace/__fixtures__/two-member-workspace.ts +35 -0
- package/src/workspace/behold-kinds.test.ts +162 -0
- package/src/workspace/check-contract.test.ts +127 -0
- package/src/workspace/check.schema.json +347 -0
- package/src/workspace/checks/generated.test.ts +287 -0
- package/src/workspace/checks/generated.ts +475 -0
- package/src/workspace/checks/ledgers.test.ts +139 -0
- package/src/workspace/checks/ledgers.ts +246 -0
- package/src/workspace/checks/links.ts +183 -0
- package/src/workspace/checks/pipelines.test.ts +133 -0
- package/src/workspace/checks/pipelines.ts +225 -0
- package/src/workspace/checks-repo.test.ts +71 -0
- package/src/workspace/checks.test.ts +450 -0
- package/src/workspace/checks.ts +461 -0
- package/src/workspace/compose-graph.test.ts +146 -0
- package/src/workspace/compose-graph.ts +228 -0
- package/src/workspace/compose-reports.test.ts +109 -0
- package/src/workspace/compose-reports.ts +186 -0
- package/src/workspace/declaration.schema.json +434 -0
- package/src/workspace/declaration.test.ts +347 -0
- package/src/workspace/declaration.ts +623 -0
- package/src/workspace/generated-files.test.ts +114 -0
- package/src/workspace/generated-files.ts +94 -0
- package/src/workspace/glob.ts +49 -0
- package/src/workspace/graph-cli.ts +220 -0
- package/src/workspace/graph-contract.test.ts +204 -0
- package/src/workspace/graph.schema.json +662 -0
- package/src/workspace/init.test.ts +223 -0
- package/src/workspace/init.ts +585 -0
- package/src/workspace/jsonc.test.ts +65 -0
- package/src/workspace/jsonc.ts +231 -0
- package/src/workspace/kinds.test.ts +288 -0
- package/src/workspace/kinds.ts +506 -0
- package/src/workspace/lineage-check.ts +264 -0
- package/src/workspace/lineage-cli.ts +114 -0
- package/src/workspace/lineage-init.test.ts +231 -0
- package/src/workspace/lineage-init.ts +365 -0
- package/src/workspace/lineage-lock.test.ts +224 -0
- package/src/workspace/lineage-lock.ts +357 -0
- package/src/workspace/lineage-merge.ts +44 -0
- package/src/workspace/lineage-migrations.test.ts +178 -0
- package/src/workspace/lineage-migrations.ts +343 -0
- package/src/workspace/lineage-update.ts +160 -0
- package/src/workspace/lineage-upgrade-cli.ts +151 -0
- package/src/workspace/lineage-upgrade.test.ts +474 -0
- package/src/workspace/lineage-upgrade.ts +624 -0
- package/src/workspace/lineage-vendor.test.ts +126 -0
- package/src/workspace/lineage-vendor.ts +215 -0
- package/src/workspace/lineage-version.ts +127 -0
- package/src/workspace/links.test.ts +344 -0
- package/src/workspace/links.ts +331 -0
- package/src/workspace/ls-contract.test.ts +200 -0
- package/src/workspace/ls.schema.json +190 -0
- package/src/workspace/ls.ts +254 -0
- package/src/workspace/member-commands.e2e.test.ts +244 -0
- package/src/workspace/member-commands.test.ts +217 -0
- package/src/workspace/member-commands.ts +540 -0
- package/src/workspace/member-handles.test.ts +76 -0
- package/src/workspace/member-handles.ts +228 -0
- package/src/workspace/member-pipeline.test.ts +135 -0
- package/src/workspace/member-pipeline.ts +317 -0
- package/src/workspace/member-run.ts +146 -0
- package/src/workspace/read-contract.test.ts +129 -0
- package/src/workspace/reason-codes.test.ts +113 -0
- package/src/workspace/reason-codes.ts +81 -0
- package/src/workspace/records-cli.ts +86 -14
- package/src/workspace/records-contract.test.ts +5 -0
- package/src/workspace/records.schema.json +32 -2
- package/src/workspace/records.ts +3 -2
- package/src/workspace/root-refusal.ts +97 -0
- package/src/workspace/status-contract.test.ts +308 -0
- package/src/workspace/status.schema.json +210 -0
- package/src/workspace/status.ts +412 -0
- package/src/workspace/template-manifest.test.ts +79 -0
- package/src/workspace/template-manifest.ts +221 -0
- package/src/workspace/tree.ts +132 -0
- package/src/workspace/trust/attestor.ts +93 -0
- package/src/workspace/trust/policy.ts +306 -0
- package/src/workspace/trust/provenance.ts +181 -0
- package/src/workspace/trust/ssh-commit.ts +138 -0
- package/src/workspace/trust/test-repo.ts +138 -0
- package/src/workspace/trust/trust.test.ts +397 -0
- package/src/workspace/trust/verify-cli.ts +56 -0
- package/src/workspace/trust/verify.ts +194 -0
- package/src/workspace/which-chant.test.ts +117 -0
- package/src/workspace/which-chant.ts +151 -0
- package/src/workspace/workspace-kinds.schema.json +133 -0
- package/dist/components/unbound-gate-approval.d.ts +0 -24
- package/dist/components/unbound-gate-approval.d.ts.map +0 -1
- package/dist/discovery/convergence.d.ts +0 -97
- package/dist/discovery/convergence.d.ts.map +0 -1
- package/src/cli/commands/audit-walk-warnings.test.ts +0 -156
- package/src/components/unbound-gate-approval.test.ts +0 -82
- package/src/components/unbound-gate-approval.ts +0 -51
- package/src/discovery/convergence.test.ts +0 -231
- package/src/discovery/convergence.ts +0 -399
- package/src/op/discover-convergence.test.ts +0 -70
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://intentius.io/chant/schemas/workspace/declaration/v1/chant.workspace.schema.json",
|
|
4
|
+
"title": "chant.workspace.json",
|
|
5
|
+
"description": "A workspace declaration, schema 1 (#2524 D1, D2; ws-051). Only this file makes a directory a workspace. It may also be named chant.workspace.jsonc, which allows comments and trailing commas; having both is an error. Unknown fields are refused, except fields whose names start with x-. A field added later within schema 1 is optional, and a declaration that uses one sets minReader to the first chant that knows it, so an older chant says so instead of misreading the file. Uniqueness of names and the placement rules are checked in code, since JSON Schema cannot say them.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"name",
|
|
9
|
+
"schema",
|
|
10
|
+
"members"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"$schema": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "An editor hint. chant ignores it."
|
|
16
|
+
},
|
|
17
|
+
"$comment": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "A note for people. chant ignores it."
|
|
20
|
+
},
|
|
21
|
+
"name": {
|
|
22
|
+
"$ref": "#/$defs/name",
|
|
23
|
+
"description": "The workspace's name. With a git revision it identifies the workspace to readers (#2524 D15)."
|
|
24
|
+
},
|
|
25
|
+
"schema": {
|
|
26
|
+
"const": 1,
|
|
27
|
+
"description": "The declaration format version."
|
|
28
|
+
},
|
|
29
|
+
"minReader": {
|
|
30
|
+
"$ref": "#/$defs/version",
|
|
31
|
+
"description": "The oldest chant that may read this declaration. An older chant refuses it with reader-too-old."
|
|
32
|
+
},
|
|
33
|
+
"members": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"description": "Members and example groups, in the order readers list them.",
|
|
36
|
+
"items": {
|
|
37
|
+
"$ref": "#/$defs/entry"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"pins": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"description": "The toolchain and plugins that read this workspace, pinned (#2524 D3, threat model). Member kinds come only from pinned packages, read as data from their ./workspace-kinds subpath (#2535).",
|
|
43
|
+
"items": {
|
|
44
|
+
"$ref": "#/$defs/pin"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"checks": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "Severity for the declaration checks that allow it, keyed by WSP id (#2535, ws-028): error, warning, info or off. chant workspace check refuses an id it does not know, and one whose severity is fixed.",
|
|
50
|
+
"propertyNames": {
|
|
51
|
+
"pattern": "^WSP[0-9]{3}$"
|
|
52
|
+
},
|
|
53
|
+
"additionalProperties": {
|
|
54
|
+
"$ref": "#/$defs/severity"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"patternProperties": {
|
|
59
|
+
"^x-": true
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false,
|
|
62
|
+
"$defs": {
|
|
63
|
+
"name": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
|
|
66
|
+
"description": "Lowercase letters, digits and hyphens, starting with a letter or digit, at most 40 characters. _workspace and _members are reserved; the pattern already rules them out."
|
|
67
|
+
},
|
|
68
|
+
"kindName": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"pattern": "^[a-z][a-z0-9-]{0,39}$"
|
|
71
|
+
},
|
|
72
|
+
"version": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-[0-9A-Za-z.-]+)?$"
|
|
75
|
+
},
|
|
76
|
+
"dir": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"description": "A directory relative to the workspace root, with / separators: \".\" for the root itself, otherwise no leading /, no . or .. segments and no trailing /.",
|
|
79
|
+
"pattern": "^(\\.|(?!\\.\\.?(/|$))[^/\\\\]+(/(?!\\.\\.?(/|$))[^/\\\\]+)*)$"
|
|
80
|
+
},
|
|
81
|
+
"glob": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "A glob over directories, relative to the workspace root: * and ? within one segment, ** across segments, [...] classes. No leading /, no . or .. segments.",
|
|
84
|
+
"pattern": "^(?!\\.\\.?(/|$))[^/\\\\]+(/(?!\\.\\.?(/|$))[^/\\\\]+)*$"
|
|
85
|
+
},
|
|
86
|
+
"severity": {
|
|
87
|
+
"enum": [
|
|
88
|
+
"error",
|
|
89
|
+
"warning",
|
|
90
|
+
"info",
|
|
91
|
+
"off"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"suppress": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"description": "Declaration checks suppressed for this entry (#2535). Each names a WSP id and says why. A suppressed finding is still reported, as suppressed, and never fails check.",
|
|
97
|
+
"items": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"required": [
|
|
100
|
+
"check",
|
|
101
|
+
"because"
|
|
102
|
+
],
|
|
103
|
+
"properties": {
|
|
104
|
+
"check": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"pattern": "^WSP[0-9]{3}$"
|
|
107
|
+
},
|
|
108
|
+
"because": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"minLength": 1
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"patternProperties": {
|
|
114
|
+
"^x-": true
|
|
115
|
+
},
|
|
116
|
+
"additionalProperties": false
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"outputName": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1,
|
|
122
|
+
"maxLength": 255,
|
|
123
|
+
"pattern": "^[^\\u0000-\\u001f]+$",
|
|
124
|
+
"description": "An output's name, compared exactly."
|
|
125
|
+
},
|
|
126
|
+
"link": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"description": "A member link: this member reads output of member (#2539).",
|
|
129
|
+
"required": [
|
|
130
|
+
"member",
|
|
131
|
+
"output"
|
|
132
|
+
],
|
|
133
|
+
"properties": {
|
|
134
|
+
"member": {
|
|
135
|
+
"$ref": "#/$defs/name",
|
|
136
|
+
"description": "The producer: another member of this workspace."
|
|
137
|
+
},
|
|
138
|
+
"output": {
|
|
139
|
+
"$ref": "#/$defs/outputName",
|
|
140
|
+
"description": "The producer's output, matched exactly. It must be one the producer's kind exposes."
|
|
141
|
+
},
|
|
142
|
+
"kind": {
|
|
143
|
+
"$ref": "#/$defs/kindName",
|
|
144
|
+
"description": "The link kind. output, the default, is the only one so far: the consumer reads the named output."
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"patternProperties": {
|
|
148
|
+
"^x-": true
|
|
149
|
+
},
|
|
150
|
+
"additionalProperties": false
|
|
151
|
+
},
|
|
152
|
+
"entry": {
|
|
153
|
+
"description": "A member, or an example group when kind is examples (ws-051).",
|
|
154
|
+
"type": "object",
|
|
155
|
+
"required": [
|
|
156
|
+
"kind"
|
|
157
|
+
],
|
|
158
|
+
"properties": {
|
|
159
|
+
"kind": {
|
|
160
|
+
"$ref": "#/$defs/kindName"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"if": {
|
|
164
|
+
"type": "object",
|
|
165
|
+
"properties": {
|
|
166
|
+
"kind": {
|
|
167
|
+
"const": "examples"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"required": [
|
|
171
|
+
"kind"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"then": {
|
|
175
|
+
"$ref": "#/$defs/group"
|
|
176
|
+
},
|
|
177
|
+
"else": {
|
|
178
|
+
"$ref": "#/$defs/member"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"member": {
|
|
182
|
+
"type": "object",
|
|
183
|
+
"description": "A member (#2524 D2). Its directory leaves the root project, and it gets its own build, lint and ledger.",
|
|
184
|
+
"required": [
|
|
185
|
+
"name",
|
|
186
|
+
"dir",
|
|
187
|
+
"kind"
|
|
188
|
+
],
|
|
189
|
+
"properties": {
|
|
190
|
+
"name": {
|
|
191
|
+
"$ref": "#/$defs/name",
|
|
192
|
+
"description": "Frozen once the member deploys; a rename is an alias record."
|
|
193
|
+
},
|
|
194
|
+
"dir": {
|
|
195
|
+
"$ref": "#/$defs/dir"
|
|
196
|
+
},
|
|
197
|
+
"kind": {
|
|
198
|
+
"$ref": "#/$defs/kindName",
|
|
199
|
+
"description": "How to read the member: chant, workspace, other, or a kind a pinned plugin supplies (#2535)."
|
|
200
|
+
},
|
|
201
|
+
"roles": {
|
|
202
|
+
"type": "array",
|
|
203
|
+
"description": "Roles the member plays. A role may point at a path inside the member.",
|
|
204
|
+
"items": {
|
|
205
|
+
"oneOf": [
|
|
206
|
+
{
|
|
207
|
+
"$ref": "#/$defs/kindName"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "object",
|
|
211
|
+
"required": [
|
|
212
|
+
"name"
|
|
213
|
+
],
|
|
214
|
+
"properties": {
|
|
215
|
+
"name": {
|
|
216
|
+
"$ref": "#/$defs/kindName"
|
|
217
|
+
},
|
|
218
|
+
"path": {
|
|
219
|
+
"$ref": "#/$defs/dir",
|
|
220
|
+
"description": "Relative to the member's directory."
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"patternProperties": {
|
|
224
|
+
"^x-": true
|
|
225
|
+
},
|
|
226
|
+
"additionalProperties": false
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
"generated": {
|
|
232
|
+
"type": "array",
|
|
233
|
+
"description": "Files in the member's directory that a command writes (#2524 D14, #2541). chant workspace check fails when one differs from what its generator writes, unless the entry is marked handWritten with a reason. The lineage lock classes the same files as generated. skills/*/SKILL.md, which chant update writes, is listed implicitly for a chant member.",
|
|
234
|
+
"items": {
|
|
235
|
+
"$ref": "#/$defs/generatedFile"
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
"outputs": {
|
|
239
|
+
"type": "array",
|
|
240
|
+
"uniqueItems": true,
|
|
241
|
+
"description": "The outputs this member exposes as link targets (#2539), for a member whose kind takes them from the entry: other, or a kind a pinned package supplies. A chant member's outputs are read from its source, and a nested workspace exposes none.",
|
|
242
|
+
"items": {
|
|
243
|
+
"$ref": "#/$defs/outputName"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"links": {
|
|
247
|
+
"type": "array",
|
|
248
|
+
"description": "Member links (#2524 D6, #2539): the outputs of other members this member reads. A link is stated once, here on the consumer, and matched exactly against the producer's outputs. chant workspace check resolves it in source.",
|
|
249
|
+
"items": {
|
|
250
|
+
"$ref": "#/$defs/link"
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"upstream": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"minLength": 1,
|
|
256
|
+
"description": "Where an embedded member's files come from. Versions live in the lock."
|
|
257
|
+
},
|
|
258
|
+
"because": {
|
|
259
|
+
"type": "string",
|
|
260
|
+
"minLength": 1,
|
|
261
|
+
"description": "Why the member is there. Required for kind other."
|
|
262
|
+
},
|
|
263
|
+
"suppress": {
|
|
264
|
+
"$ref": "#/$defs/suppress"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"patternProperties": {
|
|
268
|
+
"^x-": true
|
|
269
|
+
},
|
|
270
|
+
"additionalProperties": false,
|
|
271
|
+
"if": {
|
|
272
|
+
"type": "object",
|
|
273
|
+
"properties": {
|
|
274
|
+
"kind": {
|
|
275
|
+
"const": "other"
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"required": [
|
|
279
|
+
"kind"
|
|
280
|
+
]
|
|
281
|
+
},
|
|
282
|
+
"then": {
|
|
283
|
+
"type": "object",
|
|
284
|
+
"properties": {
|
|
285
|
+
"because": {
|
|
286
|
+
"type": "string"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"required": [
|
|
290
|
+
"because"
|
|
291
|
+
]
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"group": {
|
|
295
|
+
"type": "object",
|
|
296
|
+
"description": "An example group (ws-051): every directory the glob matches that holds a chant project is built and linted. A group has no ledger, releases or links, and its matches are never members. A match may sit inside a member's directory; that member leaves it to the group.",
|
|
297
|
+
"required": [
|
|
298
|
+
"name",
|
|
299
|
+
"kind",
|
|
300
|
+
"glob"
|
|
301
|
+
],
|
|
302
|
+
"properties": {
|
|
303
|
+
"name": {
|
|
304
|
+
"$ref": "#/$defs/name"
|
|
305
|
+
},
|
|
306
|
+
"kind": {
|
|
307
|
+
"const": "examples"
|
|
308
|
+
},
|
|
309
|
+
"glob": {
|
|
310
|
+
"oneOf": [
|
|
311
|
+
{
|
|
312
|
+
"$ref": "#/$defs/glob"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"type": "array",
|
|
316
|
+
"minItems": 1,
|
|
317
|
+
"uniqueItems": true,
|
|
318
|
+
"items": {
|
|
319
|
+
"$ref": "#/$defs/glob"
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
},
|
|
324
|
+
"suppress": {
|
|
325
|
+
"$ref": "#/$defs/suppress"
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"patternProperties": {
|
|
329
|
+
"^x-": true
|
|
330
|
+
},
|
|
331
|
+
"additionalProperties": false
|
|
332
|
+
},
|
|
333
|
+
"path": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"description": "A file or directory path with / separators: no leading /, no . or .. segments and no trailing /.",
|
|
336
|
+
"pattern": "^(?!\\.\\.?(/|$))[^/\\\\]+(/(?!\\.\\.?(/|$))[^/\\\\]+)*$"
|
|
337
|
+
},
|
|
338
|
+
"generatedFile": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"description": "One generated file of a member (#2524 D14, #2541).",
|
|
341
|
+
"required": [
|
|
342
|
+
"path",
|
|
343
|
+
"generator"
|
|
344
|
+
],
|
|
345
|
+
"properties": {
|
|
346
|
+
"path": {
|
|
347
|
+
"$ref": "#/$defs/path",
|
|
348
|
+
"description": "The file, relative to the member's directory."
|
|
349
|
+
},
|
|
350
|
+
"generator": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"minLength": 1,
|
|
353
|
+
"description": "The command line that writes the file, run in the member's directory with the member's own node_modules/.bin first on PATH, such as chant build ci --lexicon github -o ci.yml. When it passes -o or --output with this file's path, chant workspace check --generated points that flag at a temporary file. Otherwise the generator writes in place and check restores the tree afterwards."
|
|
354
|
+
},
|
|
355
|
+
"sources": {
|
|
356
|
+
"type": "array",
|
|
357
|
+
"description": "The files or directories the generator reads, relative to the workspace root, since a generator often reads other members.",
|
|
358
|
+
"items": {
|
|
359
|
+
"$ref": "#/$defs/path"
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
"handWritten": {
|
|
363
|
+
"type": "object",
|
|
364
|
+
"description": "The file is kept by hand instead of regenerated. chant workspace check reports it with the reason and never runs its generator, and the lock classes it owned.",
|
|
365
|
+
"required": [
|
|
366
|
+
"because"
|
|
367
|
+
],
|
|
368
|
+
"properties": {
|
|
369
|
+
"because": {
|
|
370
|
+
"type": "string",
|
|
371
|
+
"minLength": 1
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"patternProperties": {
|
|
375
|
+
"^x-": true
|
|
376
|
+
},
|
|
377
|
+
"additionalProperties": false
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
"patternProperties": {
|
|
381
|
+
"^x-": true
|
|
382
|
+
},
|
|
383
|
+
"additionalProperties": false
|
|
384
|
+
},
|
|
385
|
+
"pin": {
|
|
386
|
+
"description": "An npm package at an exact version, or a local plugin by path. integrity is a Subresource Integrity digest.",
|
|
387
|
+
"oneOf": [
|
|
388
|
+
{
|
|
389
|
+
"type": "object",
|
|
390
|
+
"required": [
|
|
391
|
+
"package",
|
|
392
|
+
"version"
|
|
393
|
+
],
|
|
394
|
+
"properties": {
|
|
395
|
+
"package": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"pattern": "^(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*$"
|
|
398
|
+
},
|
|
399
|
+
"version": {
|
|
400
|
+
"$ref": "#/$defs/version"
|
|
401
|
+
},
|
|
402
|
+
"integrity": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"pattern": "^sha(256|384|512)-[A-Za-z0-9+/]+={0,2}$"
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"patternProperties": {
|
|
408
|
+
"^x-": true
|
|
409
|
+
},
|
|
410
|
+
"additionalProperties": false
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"type": "object",
|
|
414
|
+
"required": [
|
|
415
|
+
"path"
|
|
416
|
+
],
|
|
417
|
+
"properties": {
|
|
418
|
+
"path": {
|
|
419
|
+
"$ref": "#/$defs/dir"
|
|
420
|
+
},
|
|
421
|
+
"integrity": {
|
|
422
|
+
"type": "string",
|
|
423
|
+
"pattern": "^sha(256|384|512)-[A-Za-z0-9+/]+={0,2}$"
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
"patternProperties": {
|
|
427
|
+
"^x-": true
|
|
428
|
+
},
|
|
429
|
+
"additionalProperties": false
|
|
430
|
+
}
|
|
431
|
+
]
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which files are generated, and by what (#2524 D14, #2541).
|
|
3
|
+
*
|
|
4
|
+
* One list answers the question for everyone who asks it: the drift check in
|
|
5
|
+
* `checks/generated.ts` and the lineage lock's `generated` class
|
|
6
|
+
* (`lineage-lock.ts`). The list is the member's declared `generated` entries
|
|
7
|
+
* plus the files core registers itself:
|
|
8
|
+
*
|
|
9
|
+
* | File | Class |
|
|
10
|
+
* |-----------------------|-----------|
|
|
11
|
+
* | `skills/*\/SKILL.md` | generated, by `chant update` |
|
|
12
|
+
* | `.mcp.json` | seed |
|
|
13
|
+
* | `.chant/types/` | ignored: gitignored, never listed |
|
|
14
|
+
*
|
|
15
|
+
* A declared entry wins over the implicit rules, so a member can list a
|
|
16
|
+
* `SKILL.md` it keeps by hand. A hand-written entry is the project's own
|
|
17
|
+
* file, so the lock classes it `owned`.
|
|
18
|
+
*
|
|
19
|
+
* Everything here loads only with the lineage and workspace commands.
|
|
20
|
+
*/
|
|
21
|
+
import { type Declaration } from "./declaration.js";
|
|
22
|
+
/** What `chant update` rewrites, registered as implicit generated entries. */
|
|
23
|
+
export declare const IMPLICIT_GENERATED: readonly [{
|
|
24
|
+
readonly glob: "skills/*/SKILL.md";
|
|
25
|
+
readonly pattern: RegExp;
|
|
26
|
+
readonly command: "chant update";
|
|
27
|
+
}];
|
|
28
|
+
/** Written once at init and never again. */
|
|
29
|
+
export declare const SEED_FILES: readonly [".mcp.json"];
|
|
30
|
+
/** Gitignored output, out of scope for both the lock and the drift check. */
|
|
31
|
+
export declare const IGNORED_DIRS: readonly [".chant/types"];
|
|
32
|
+
/** A declared entry, keyed by its path relative to the directory asked about. */
|
|
33
|
+
export interface DeclaredFile {
|
|
34
|
+
command: string;
|
|
35
|
+
handWritten: boolean;
|
|
36
|
+
}
|
|
37
|
+
export type DeclaredFiles = ReadonlyMap<string, DeclaredFile>;
|
|
38
|
+
export type FileClassification = {
|
|
39
|
+
class: "owned";
|
|
40
|
+
} | {
|
|
41
|
+
class: "generated";
|
|
42
|
+
command: string;
|
|
43
|
+
} | {
|
|
44
|
+
class: "seed";
|
|
45
|
+
} | {
|
|
46
|
+
class: "ignored";
|
|
47
|
+
};
|
|
48
|
+
/** The implicit entry `path` matches, if any. */
|
|
49
|
+
export declare function implicitGenerated(path: string): (typeof IMPLICIT_GENERATED)[number] | undefined;
|
|
50
|
+
/** Class a file by the declared entries first, then by the implicit rules (D14). */
|
|
51
|
+
export declare function classifyFile(path: string, declared?: DeclaredFiles): FileClassification;
|
|
52
|
+
/**
|
|
53
|
+
* Every declared generated file of `declaration` that sits under `dir`
|
|
54
|
+
* (relative to the workspace root, `"."` for all of it), keyed by its path
|
|
55
|
+
* relative to `dir`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function declaredFilesUnder(declaration: Declaration, dir: string): Map<string, DeclaredFile>;
|
|
58
|
+
/**
|
|
59
|
+
* The declared generated files for the absolute directory `absDir`, from the
|
|
60
|
+
* nearest `chant.workspace.json` above it. Empty when there is none, which is
|
|
61
|
+
* the plain-project case: only the implicit rules apply. A declaration that
|
|
62
|
+
* can't be read throws its `WorkspaceReadError`; it is never read as empty.
|
|
63
|
+
*/
|
|
64
|
+
export declare function declaredFilesFor(absDir: string): Map<string, DeclaredFile>;
|
|
65
|
+
//# sourceMappingURL=generated-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-files.d.ts","sourceRoot":"","sources":["../../src/workspace/generated-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5E,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB;;;;EAA2G,CAAC;AAE3I,4CAA4C;AAC5C,eAAO,MAAM,UAAU,wBAAyB,CAAC;AAEjD,6EAA6E;AAC7E,eAAO,MAAM,YAAY,2BAA4B,CAAC;AAEtD,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAClB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzB,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAE/F;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAUnG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAM1E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expand an example group's globs to directories (ws-051).
|
|
3
|
+
*
|
|
4
|
+
* The walk goes one path segment at a time, so a glob such as
|
|
5
|
+
* `lexicons/*\/examples/*` reads only the directories it can match, never the
|
|
6
|
+
* whole tree. Within a segment, picomatch does the matching; `**` matches zero
|
|
7
|
+
* or more directories. `node_modules` and dot-directories are never entered
|
|
8
|
+
* by a wildcard, though a literal segment may name them.
|
|
9
|
+
*/
|
|
10
|
+
import { type WorkspaceTree } from "./tree.js";
|
|
11
|
+
/** Every directory `glob` matches in `tree`, sorted. */
|
|
12
|
+
export declare function expandGlob(tree: WorkspaceTree, glob: string): string[];
|
|
13
|
+
//# sourceMappingURL=glob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/workspace/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAMlE,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BtE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `chant workspace graph [dir] [--at <rev>] [--member <name>] [-o <file>]
|
|
3
|
+
* [--env <env>] [--dry-run]` (#2537, #2536): every `chant` member's IR, read
|
|
4
|
+
* through the member's own toolchain and composed into one document
|
|
5
|
+
* (`compose-graph.ts`).
|
|
6
|
+
*
|
|
7
|
+
* The document is part of the read contract, described by `graph.schema.json`
|
|
8
|
+
* beside this file. It is printed for a failure too, with the error's reason
|
|
9
|
+
* code, so a reader always has JSON to parse.
|
|
10
|
+
*
|
|
11
|
+
* `--at <rev>` reads the declaration from git objects, as `ls --at` does. A
|
|
12
|
+
* member's IR comes from running its chant config, so for `--at` the
|
|
13
|
+
* workspace root's tree at that revision is exported to a temporary
|
|
14
|
+
* directory with `git archive`, the `node_modules` directories installed in
|
|
15
|
+
* the working tree are linked into it, and each member runs there under the
|
|
16
|
+
* toolchain it resolves, which is the one installed now. Nothing touches the
|
|
17
|
+
* checkout or the network. When no member needs running (a workspace with no
|
|
18
|
+
* `chant` members, or `--dry-run`) nothing is exported.
|
|
19
|
+
*/
|
|
20
|
+
import type { CommandContext, ParsedArgs } from "../cli/registry.js";
|
|
21
|
+
import { type WorkspaceGraph } from "./compose-graph.js";
|
|
22
|
+
import { type ErrorLocation, type WorkspaceErrorCode } from "./declaration.js";
|
|
23
|
+
import { type MemberPlan, type Toolchain } from "./member-commands.js";
|
|
24
|
+
import { type LocatedWorkspace } from "./which-chant.js";
|
|
25
|
+
/** The version of the `graph` document this chant writes. */
|
|
26
|
+
export declare const GRAPH_CONTRACT_VERSION = 1;
|
|
27
|
+
/** `$id` of the JSON Schema for the document, shipped beside this file. */
|
|
28
|
+
export declare const GRAPH_OUTPUT_SCHEMA_ID = "https://intentius.io/chant/schemas/workspace/graph/v1/graph.schema.json";
|
|
29
|
+
/** Why the graph couldn't be read at all: the declaration's codes, `--at`'s included. */
|
|
30
|
+
export declare const GRAPH_ERROR_CODES: readonly ["declaration-missing", "declaration-ambiguous", "declaration-unparseable", "declaration-invalid", "placement-invalid", "reader-too-old", "root-chant-required", "not-a-git-repository", "revision-unknown"];
|
|
31
|
+
interface Head {
|
|
32
|
+
$schema: string;
|
|
33
|
+
contract: number;
|
|
34
|
+
chant: string;
|
|
35
|
+
}
|
|
36
|
+
export type GraphDocument = (Head & {
|
|
37
|
+
at: string | null;
|
|
38
|
+
} & WorkspaceGraph) | (Head & {
|
|
39
|
+
error: {
|
|
40
|
+
code: WorkspaceErrorCode;
|
|
41
|
+
message: string;
|
|
42
|
+
location: ErrorLocation | null;
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
export interface GraphQuery {
|
|
46
|
+
/** Where the walk up to the declaration starts. */
|
|
47
|
+
cwd: string;
|
|
48
|
+
at?: string;
|
|
49
|
+
/** Only these members. */
|
|
50
|
+
members?: string[];
|
|
51
|
+
/** The flags each member's `chant graph` gets (`--env`). */
|
|
52
|
+
args?: Partial<ParsedArgs>;
|
|
53
|
+
/** The chant for members with none of their own; the running chant by default. */
|
|
54
|
+
reader?: Toolchain;
|
|
55
|
+
/** Called with each member's stderr, so the command can pass it on. */
|
|
56
|
+
onStderr?: (text: string) => void;
|
|
57
|
+
}
|
|
58
|
+
export interface GraphResult {
|
|
59
|
+
doc: GraphDocument;
|
|
60
|
+
/** A member failed or couldn't be read, or the declaration couldn't be read. */
|
|
61
|
+
failed: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Export the workspace root's tree at `at` into a temporary directory and link
|
|
65
|
+
* the working tree's `node_modules` into it, so members' configs resolve the
|
|
66
|
+
* packages installed now. Returns the directory; the caller removes it.
|
|
67
|
+
*/
|
|
68
|
+
export declare function exportRevision(located: LocatedWorkspace, memberDirs: string[]): string;
|
|
69
|
+
/** Plan a graph read without running anything, for `--dry-run`. Throws a {@link WorkspaceReadError}. */
|
|
70
|
+
export declare function planGraph(query: GraphQuery): MemberPlan;
|
|
71
|
+
/** Read and compose the graph, and build the document. Never throws a {@link WorkspaceReadError}. */
|
|
72
|
+
export declare function workspaceGraph(query: GraphQuery): Promise<GraphResult>;
|
|
73
|
+
export declare function runWorkspaceGraph(ctx: CommandContext): Promise<number>;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=graph-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-cli.d.ts","sourceRoot":"","sources":["../../src/workspace/graph-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAA0D,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAA6E,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvJ,OAAO,EAAgF,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAGnK,OAAO,EAAoC,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAExF,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,4EAA4E,CAAC;AAEhH,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,uNAAwB,CAAC;AAIvD,UAAU,IAAI;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GACrB,CAAC,IAAI,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,cAAc,CAAC,GAC/C,CAAC,IAAI,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEtG,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,kFAAkF;IAClF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,aAAa,CAAC;IACnB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAmCtF;AAkCD,wGAAwG;AACxG,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAIvD;AAED,qGAAqG;AACrG,wBAAsB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAwB5E;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC5E"}
|