@intentius/chant 0.124.46 → 0.124.49
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/__golden__/wave-loop/op-by-apply-after-fails.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-hold.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-ignored.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-pass.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-skip.json +10 -0
- package/dist/__golden__/wave-loop/op-cost-member-clash.json +6 -0
- package/dist/__golden__/wave-loop/op-cost-member.json +13 -0
- package/dist/__golden__/wave-loop/op-denied-source.json +16 -0
- package/dist/__golden__/wave-loop/op-denied.json +16 -0
- package/dist/__golden__/wave-loop/op-discover-rest-short.json +6 -0
- package/dist/__golden__/wave-loop/op-discover-rest-stops.json +13 -0
- package/dist/__golden__/wave-loop/op-discover-rest.json +26 -0
- package/dist/__golden__/wave-loop/op-discover-wide.json +26 -0
- package/dist/__golden__/wave-loop/op-held-on-again.json +16 -0
- package/dist/__golden__/wave-loop/op-held-on-before-apply.json +16 -0
- package/dist/__golden__/wave-loop/op-held-on.json +16 -0
- package/dist/__golden__/wave-loop/op-hooks-apply-fails.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-after-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-before-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-before-plan.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-held.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-hold-before-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-pass.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-refused-at-base.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-share.json +33 -0
- package/dist/__golden__/wave-loop/op-outcome-held.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan-approved.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan-forever.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-stood-down.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-unreadable.json +10 -0
- package/dist/__golden__/wave-loop/op-overridden.json +16 -0
- package/dist/__golden__/wave-loop/op-per-run.json +20 -0
- package/dist/__golden__/wave-loop/op-point.json +13 -0
- package/dist/__golden__/wave-loop/op-pr-review.json +10 -0
- package/dist/__golden__/wave-loop/op-sealed.json +10 -0
- package/dist/__golden__/wave-loop/op-spend-change-only.json +10 -0
- package/dist/__golden__/wave-loop/op-spend.json +10 -0
- package/dist/__golden__/wave-loop/op-wave-commands.json +55 -0
- package/dist/__golden__/wave-loop/op-wide-refused.json +26 -0
- package/dist/__golden__/wave-loop/op-wide-waiting.json +29 -0
- package/dist/__golden__/wave-loop/op-wide.json +39 -0
- package/dist/action-pins.d.ts +61 -0
- package/dist/action-pins.d.ts.map +1 -0
- package/dist/action-pins.js +77 -0
- package/dist/cli/commands/carve.d.ts +3 -0
- package/dist/cli/commands/carve.d.ts.map +1 -1
- package/dist/cli/commands/carve.js +36 -7
- package/dist/cli/commands/import-report.d.ts +26 -0
- package/dist/cli/commands/import-report.d.ts.map +1 -0
- package/dist/cli/commands/import-report.js +65 -0
- package/dist/cli/commands/import.d.ts +11 -1
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +22 -3
- package/dist/cli/commands/migrate.d.ts +13 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +134 -10
- package/dist/cli/handlers/approve.d.ts.map +1 -1
- package/dist/cli/handlers/approve.js +41 -14
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/build.js +6 -1
- package/dist/cli/handlers/graph-reader.d.ts +26 -0
- package/dist/cli/handlers/graph-reader.d.ts.map +1 -0
- package/dist/cli/handlers/graph-reader.js +41 -0
- package/dist/cli/handlers/graph.d.ts.map +1 -1
- package/dist/cli/handlers/graph.js +14 -0
- package/dist/cli/handlers/ledger.d.ts +3 -0
- package/dist/cli/handlers/ledger.d.ts.map +1 -0
- package/dist/cli/handlers/ledger.js +55 -0
- package/dist/cli/handlers/migrate.d.ts.map +1 -1
- package/dist/cli/handlers/migrate.js +18 -11
- package/dist/cli/handlers/misc.d.ts.map +1 -1
- package/dist/cli/handlers/misc.js +12 -1
- package/dist/cli/handlers/pr-env.js +2 -2
- package/dist/cli/handlers/pr.d.ts +15 -1
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +183 -40
- package/dist/cli/handlers/query.d.ts +7 -2
- package/dist/cli/handlers/query.d.ts.map +1 -1
- package/dist/cli/handlers/query.js +16 -4
- package/dist/cli/handlers/release.d.ts.map +1 -1
- package/dist/cli/handlers/release.js +6 -3
- package/dist/cli/handlers/search.d.ts +2 -4
- package/dist/cli/handlers/search.d.ts.map +1 -1
- package/dist/cli/handlers/search.js +13 -39
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +87 -14
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +47 -2
- package/dist/cli/registry.d.ts +22 -4
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/components/builders.d.ts +5 -1
- package/dist/components/builders.d.ts.map +1 -1
- package/dist/components/builders.js +5 -0
- package/dist/components/capability-plugin-loader.d.ts.map +1 -1
- package/dist/components/capability-plugin-loader.js +16 -1
- package/dist/components/capability-plugin.d.ts +14 -0
- package/dist/components/capability-plugin.d.ts.map +1 -1
- package/dist/components/pr-hooks.d.ts +21 -1
- package/dist/components/pr-hooks.d.ts.map +1 -1
- package/dist/components/pr-hooks.js +72 -4
- package/dist/components/pr-pipeline.d.ts +45 -10
- package/dist/components/pr-pipeline.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +47 -14
- package/dist/components/pr-policy.d.ts +36 -0
- package/dist/components/pr-policy.d.ts.map +1 -1
- package/dist/components/pr-policy.js +36 -0
- package/dist/components/pr-run.d.ts +3 -0
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +1 -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 +5 -1
- package/dist/components/verbs/index.d.ts +2 -0
- package/dist/components/verbs/index.d.ts.map +1 -1
- package/dist/components/verbs/index.js +2 -0
- package/dist/components/verbs/publish-artifact.d.ts +65 -0
- package/dist/components/verbs/publish-artifact.d.ts.map +1 -0
- package/dist/components/verbs/publish-artifact.js +74 -0
- package/dist/components/verbs/publish-image.d.ts +129 -0
- package/dist/components/verbs/publish-image.d.ts.map +1 -0
- package/dist/components/verbs/publish-image.js +145 -0
- package/dist/config-environments.d.ts +20 -0
- package/dist/config-environments.d.ts.map +1 -1
- package/dist/config-environments.js +12 -0
- package/dist/config.d.ts +25 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -2
- package/dist/gate-decision.d.ts +20 -2
- package/dist/gate-decision.d.ts.map +1 -1
- package/dist/gate-decision.js +30 -3
- package/dist/graph-ir.d.ts +25 -0
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/graph-walk.d.ts +66 -0
- package/dist/graph-walk.d.ts.map +1 -0
- package/dist/graph-walk.js +70 -0
- package/dist/import/parser.d.ts +19 -0
- package/dist/import/parser.d.ts.map +1 -1
- package/dist/lexicon.d.ts +94 -6
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +11 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/git.d.ts +2 -5
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/ledger-read.d.ts +65 -0
- package/dist/lifecycle/ledger-read.d.ts.map +1 -0
- package/dist/lifecycle/ledger-read.js +160 -0
- package/dist/lifecycle/release-workstation.d.ts +7 -0
- package/dist/lifecycle/release-workstation.d.ts.map +1 -1
- package/dist/lifecycle/release-workstation.js +25 -0
- package/dist/lifecycle/run-ledger.d.ts +4 -3
- package/dist/lifecycle/run-ledger.d.ts.map +1 -1
- package/dist/lifecycle/run-ledger.js +1 -0
- package/dist/lint/discover.js +3 -1
- package/dist/lint/post-synth.d.ts +127 -1
- package/dist/lint/post-synth.d.ts.map +1 -1
- package/dist/lint/post-synth.js +84 -2
- package/dist/lint/rules/op/index.d.ts +1 -0
- package/dist/lint/rules/op/index.d.ts.map +1 -1
- package/dist/lint/rules/op/index.js +2 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.d.ts +32 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.d.ts.map +1 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.js +63 -0
- package/dist/op/activities/activity-contracts.d.ts +9 -6
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.js +5 -2
- package/dist/op/activities/index.d.ts +2 -2
- package/dist/op/activities/index.d.ts.map +1 -1
- package/dist/op/activities/index.js +1 -1
- package/dist/op/activities/review-agent.d.ts +90 -4
- package/dist/op/activities/review-agent.d.ts.map +1 -1
- package/dist/op/activities/review-agent.js +217 -19
- package/dist/op/activities/work-evidence.d.ts +8 -1
- package/dist/op/activities/work-evidence.d.ts.map +1 -1
- package/dist/op/activities/work-evidence.js +1 -0
- package/dist/op/builders.d.ts +9 -5
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/builders.js +9 -5
- package/dist/op/composites/apply-op.d.ts +29 -2
- package/dist/op/composites/apply-op.d.ts.map +1 -1
- package/dist/op/composites/apply-op.js +20 -1
- package/dist/op/gate-approval-base.d.ts +25 -0
- package/dist/op/gate-approval-base.d.ts.map +1 -0
- package/dist/op/gate-approval-base.js +71 -0
- package/dist/op/gate-approval.d.ts +18 -9
- package/dist/op/gate-approval.d.ts.map +1 -1
- package/dist/op/gate-approval.js +13 -31
- package/dist/op/gate-name.d.ts +13 -0
- package/dist/op/gate-name.d.ts.map +1 -1
- package/dist/op/gate-name.js +14 -1
- package/dist/op/gate-quorum.d.ts +100 -3
- package/dist/op/gate-quorum.d.ts.map +1 -1
- package/dist/op/gate-quorum.js +108 -6
- package/dist/op/gate-review.d.ts +9 -0
- package/dist/op/gate-review.d.ts.map +1 -1
- package/dist/op/gate-review.js +13 -0
- package/dist/op/gate.d.ts +47 -5
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/op/gate.js +25 -4
- package/dist/op/index.d.ts +3 -3
- package/dist/op/index.d.ts.map +1 -1
- package/dist/op/index.js +1 -1
- package/dist/op/local-executor.d.ts +45 -3
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-executor.js +68 -7
- package/dist/op/op-waves-run.d.ts +26 -1
- package/dist/op/op-waves-run.d.ts.map +1 -1
- package/dist/op/op-waves-run.js +259 -13
- package/dist/op/op-waves.d.ts +72 -5
- package/dist/op/op-waves.d.ts.map +1 -1
- package/dist/op/op-waves.js +110 -15
- package/dist/op/runtime.d.ts +11 -0
- package/dist/op/runtime.d.ts.map +1 -1
- package/dist/op/schedule-overdue.d.ts +16 -0
- package/dist/op/schedule-overdue.d.ts.map +1 -1
- package/dist/op/schedule-overdue.js +36 -0
- package/dist/op/stage-hooks.d.ts +9 -2
- package/dist/op/stage-hooks.d.ts.map +1 -1
- package/dist/op/stage-hooks.js +7 -5
- package/dist/op/workspace-run-env.d.ts +22 -0
- package/dist/op/workspace-run-env.d.ts.map +1 -0
- package/dist/op/workspace-run-env.js +21 -0
- package/dist/pr-forge.d.ts +24 -0
- package/dist/pr-forge.d.ts.map +1 -1
- package/dist/pr-forge.js +47 -0
- package/dist/pr-loop.d.ts +10 -0
- package/dist/pr-loop.d.ts.map +1 -1
- package/dist/pr-loop.js +4 -0
- package/dist/pr-migrations.d.ts +62 -0
- package/dist/pr-migrations.d.ts.map +1 -0
- package/dist/pr-migrations.js +50 -0
- package/dist/pr-post.d.ts +42 -0
- package/dist/pr-post.d.ts.map +1 -1
- package/dist/pr-post.js +68 -2
- package/dist/read-filter.d.ts +65 -0
- package/dist/read-filter.d.ts.map +1 -0
- package/dist/read-filter.js +179 -0
- package/dist/run-event.d.ts +1 -1
- package/dist/run-event.d.ts.map +1 -1
- package/dist/terraform/carve.d.ts +24 -3
- package/dist/terraform/carve.d.ts.map +1 -1
- package/dist/terraform/carve.js +32 -14
- package/dist/terraform/cuts.d.ts +97 -0
- package/dist/terraform/cuts.d.ts.map +1 -0
- package/dist/terraform/cuts.js +138 -0
- package/dist/terraform/folds.d.ts +26 -0
- package/dist/terraform/folds.d.ts.map +1 -0
- package/dist/terraform/folds.js +38 -0
- package/dist/terraform/graph.d.ts.map +1 -1
- package/dist/terraform/graph.js +10 -0
- package/dist/terraform/reach.d.ts +140 -0
- package/dist/terraform/reach.d.ts.map +1 -0
- package/dist/terraform/reach.js +170 -0
- package/dist/terraform/score.d.ts +14 -0
- package/dist/terraform/score.d.ts.map +1 -1
- package/dist/terraform/score.js +14 -31
- package/dist/terraform/state.d.ts.map +1 -1
- package/dist/terraform/state.js +4 -2
- package/dist/terraform/types.d.ts +8 -0
- package/dist/terraform/types.d.ts.map +1 -1
- package/dist/wave-blocked.d.ts +10 -1
- package/dist/wave-blocked.d.ts.map +1 -1
- package/dist/wave-blocked.js +31 -3
- package/dist/wave-runtime.mjs +264 -254
- package/dist/workspace/check.schema.json +13 -2
- package/dist/workspace/checks/ci-branch.d.ts +44 -0
- package/dist/workspace/checks/ci-branch.d.ts.map +1 -0
- package/dist/workspace/checks/ci-branch.js +133 -0
- package/dist/workspace/checks/gate-approval.d.ts +58 -0
- package/dist/workspace/checks/gate-approval.d.ts.map +1 -0
- package/dist/workspace/checks/gate-approval.js +103 -0
- package/dist/workspace/checks/links.d.ts +3 -0
- package/dist/workspace/checks/links.d.ts.map +1 -1
- package/dist/workspace/checks/links.js +12 -1
- package/dist/workspace/checks/org.d.ts +48 -0
- package/dist/workspace/checks/org.d.ts.map +1 -0
- package/dist/workspace/checks/org.js +156 -0
- package/dist/workspace/checks.d.ts +12 -1
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/checks.js +63 -7
- package/dist/workspace/ci-branches.d.ts +16 -0
- package/dist/workspace/ci-branches.d.ts.map +1 -1
- package/dist/workspace/ci-branches.js +27 -0
- package/dist/workspace/ci-green-cli.js +7 -7
- package/dist/workspace/ci-green-workflow.d.ts +1 -1
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +13 -8
- package/dist/workspace/ci-green.d.ts +14 -0
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +44 -11
- package/dist/workspace/ci-run.d.ts +9 -1
- package/dist/workspace/ci-run.d.ts.map +1 -1
- package/dist/workspace/ci-run.js +67 -6
- package/dist/workspace/ci-serve.d.ts +9 -0
- package/dist/workspace/ci-serve.d.ts.map +1 -1
- package/dist/workspace/ci-serve.js +114 -76
- package/dist/workspace/compose-graph.d.ts +14 -0
- package/dist/workspace/compose-graph.d.ts.map +1 -1
- package/dist/workspace/composites.d.ts +4 -1
- package/dist/workspace/composites.d.ts.map +1 -1
- package/dist/workspace/composites.js +5 -2
- package/dist/workspace/composites.schema.json +22 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +105 -1
- package/dist/workspace/cross-root-lint.d.ts +56 -0
- package/dist/workspace/cross-root-lint.d.ts.map +1 -0
- package/dist/workspace/cross-root-lint.js +111 -0
- package/dist/workspace/dbt-models-reader.d.ts +44 -0
- package/dist/workspace/dbt-models-reader.d.ts.map +1 -0
- package/dist/workspace/dbt-models-reader.js +356 -0
- package/dist/workspace/dbt-project-common.d.ts +40 -0
- package/dist/workspace/dbt-project-common.d.ts.map +1 -0
- package/dist/workspace/dbt-project-common.js +106 -0
- package/dist/workspace/dbt-project-reader.d.ts +4 -3
- package/dist/workspace/dbt-project-reader.d.ts.map +1 -1
- package/dist/workspace/dbt-project-reader.js +14 -108
- package/dist/workspace/decision-rank.d.ts +26 -0
- package/dist/workspace/decision-rank.d.ts.map +1 -0
- package/dist/workspace/decision-rank.js +16 -0
- package/dist/workspace/declaration.d.ts +50 -2
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.js +57 -11
- package/dist/workspace/declaration.schema.json +166 -24
- package/dist/workspace/environments.d.ts +26 -2
- package/dist/workspace/environments.d.ts.map +1 -1
- package/dist/workspace/environments.js +26 -2
- package/dist/workspace/exit-cli.d.ts +44 -0
- package/dist/workspace/exit-cli.d.ts.map +1 -0
- package/dist/workspace/exit-cli.js +198 -0
- package/dist/workspace/exit.d.ts +159 -0
- package/dist/workspace/exit.d.ts.map +1 -0
- package/dist/workspace/exit.js +480 -0
- package/dist/workspace/exit.schema.json +257 -0
- package/dist/workspace/flyway-dir.d.ts +39 -0
- package/dist/workspace/flyway-dir.d.ts.map +1 -0
- package/dist/workspace/flyway-dir.js +104 -0
- package/dist/workspace/flyway-layout.d.ts +96 -0
- package/dist/workspace/flyway-layout.d.ts.map +1 -0
- package/dist/workspace/flyway-layout.js +308 -0
- package/dist/workspace/graph-cache.d.ts +3 -1
- package/dist/workspace/graph-cache.d.ts.map +1 -1
- package/dist/workspace/graph-cache.js +12 -1
- package/dist/workspace/graph-cli.d.ts.map +1 -1
- package/dist/workspace/graph-cli.js +26 -8
- package/dist/workspace/graph.schema.json +34 -0
- package/dist/workspace/import-fetch.d.ts +38 -0
- package/dist/workspace/import-fetch.d.ts.map +1 -0
- package/dist/workspace/import-fetch.js +99 -0
- package/dist/workspace/import-init.d.ts +26 -0
- package/dist/workspace/import-init.d.ts.map +1 -0
- package/dist/workspace/import-init.js +130 -0
- package/dist/workspace/import-source.d.ts +147 -0
- package/dist/workspace/import-source.d.ts.map +1 -0
- package/dist/workspace/import-source.js +370 -0
- package/dist/workspace/init.d.ts +4 -0
- package/dist/workspace/init.d.ts.map +1 -1
- package/dist/workspace/init.js +70 -3
- package/dist/workspace/intent.d.ts +2 -3
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/intent.js +5 -9
- package/dist/workspace/kind-link-readers.d.ts +59 -2
- package/dist/workspace/kind-link-readers.d.ts.map +1 -1
- package/dist/workspace/kind-link-readers.js +17 -1
- package/dist/workspace/kind-readers.d.ts +6 -0
- package/dist/workspace/kind-readers.d.ts.map +1 -1
- package/dist/workspace/kind-readers.js +18 -0
- package/dist/workspace/kinds.d.ts +90 -3
- package/dist/workspace/kinds.d.ts.map +1 -1
- package/dist/workspace/kinds.js +161 -7
- package/dist/workspace/ledger.schema.json +158 -0
- package/dist/workspace/lexicon-outputs.d.ts +20 -1
- package/dist/workspace/lexicon-outputs.d.ts.map +1 -1
- package/dist/workspace/lexicon-outputs.js +102 -10
- package/dist/workspace/lineage-check.d.ts +3 -0
- package/dist/workspace/lineage-check.d.ts.map +1 -1
- package/dist/workspace/lineage-check.js +23 -4
- package/dist/workspace/lineage-upgrade.d.ts.map +1 -1
- package/dist/workspace/lineage-upgrade.js +13 -4
- package/dist/workspace/links.d.ts +8 -1
- package/dist/workspace/links.d.ts.map +1 -1
- package/dist/workspace/links.js +25 -1
- package/dist/workspace/ls.d.ts +8 -0
- package/dist/workspace/ls.d.ts.map +1 -1
- package/dist/workspace/ls.js +7 -1
- package/dist/workspace/ls.schema.json +7 -0
- package/dist/workspace/member-commands.d.ts.map +1 -1
- package/dist/workspace/member-commands.js +54 -5
- package/dist/workspace/migrate-links.d.ts +45 -0
- package/dist/workspace/migrate-links.d.ts.map +1 -0
- package/dist/workspace/migrate-links.js +100 -0
- package/dist/workspace/migration-dirs.d.ts +74 -0
- package/dist/workspace/migration-dirs.d.ts.map +1 -0
- package/dist/workspace/migration-dirs.js +254 -0
- package/dist/workspace/new-migrations.d.ts +47 -0
- package/dist/workspace/new-migrations.d.ts.map +1 -0
- package/dist/workspace/new-migrations.js +91 -0
- package/dist/workspace/pr-report.schema.json +46 -0
- package/dist/workspace/promote.d.ts +96 -0
- package/dist/workspace/promote.d.ts.map +1 -0
- package/dist/workspace/promote.js +263 -0
- package/dist/workspace/reason-codes.d.ts +21 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +25 -0
- package/dist/workspace/records-cli.d.ts +11 -0
- package/dist/workspace/records-cli.d.ts.map +1 -1
- package/dist/workspace/records-cli.js +57 -5
- package/dist/workspace/records.schema.json +5 -0
- package/dist/workspace/release-candidates.d.ts +2 -0
- package/dist/workspace/release-candidates.d.ts.map +1 -1
- package/dist/workspace/release-candidates.js +5 -2
- package/dist/workspace/release-train.d.ts +53 -0
- package/dist/workspace/release-train.d.ts.map +1 -0
- package/dist/workspace/release-train.js +134 -0
- package/dist/workspace/release-workflow.d.ts.map +1 -1
- package/dist/workspace/release-workflow.js +4 -3
- package/dist/workspace/repo-ref.d.ts +45 -0
- package/dist/workspace/repo-ref.d.ts.map +1 -0
- package/dist/workspace/repo-ref.js +114 -0
- package/dist/workspace/run-event.schema.json +2 -2
- package/dist/workspace/runs-cli.d.ts +9 -0
- package/dist/workspace/runs-cli.d.ts.map +1 -1
- package/dist/workspace/runs-cli.js +48 -3
- package/dist/workspace/runs.schema.json +7 -0
- package/dist/workspace/search-contract.d.ts +1 -1
- package/dist/workspace/search-contract.d.ts.map +1 -1
- package/dist/workspace/status-decisions.d.ts +37 -0
- package/dist/workspace/status-decisions.d.ts.map +1 -0
- package/dist/workspace/status-decisions.js +147 -0
- package/dist/workspace/status-gates.d.ts +9 -0
- package/dist/workspace/status-gates.d.ts.map +1 -1
- package/dist/workspace/status.d.ts +4 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/status.js +14 -2
- package/dist/workspace/status.schema.json +6 -0
- package/dist/workspace/work-cli.d.ts.map +1 -1
- package/dist/workspace/work-cli.js +5 -3
- package/dist/workspace/work-evidence-ops.d.ts +83 -0
- package/dist/workspace/work-evidence-ops.d.ts.map +1 -0
- package/dist/workspace/work-evidence-ops.js +169 -0
- package/dist/workspace/work-evidence.d.ts +12 -2
- package/dist/workspace/work-evidence.d.ts.map +1 -1
- package/dist/workspace/work-evidence.js +21 -3
- package/dist/workspace/work-evidence.schema.json +49 -2
- package/dist/workspace/workspace-gates.d.ts +110 -0
- package/dist/workspace/workspace-gates.d.ts.map +1 -0
- package/dist/workspace/workspace-gates.js +140 -0
- package/dist/workspace/workspace-kinds.schema.json +108 -10
- package/dist/workspace/workspace-ledger.d.ts +76 -0
- package/dist/workspace/workspace-ledger.d.ts.map +1 -0
- package/dist/workspace/workspace-ledger.js +91 -0
- package/dist/workspace/workspace-run.d.ts +112 -0
- package/dist/workspace/workspace-run.d.ts.map +1 -0
- package/dist/workspace/workspace-run.js +432 -0
- package/package.json +1 -1
- package/src/__golden__/wave-loop/op-by-apply-after-fails.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-hold.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-ignored.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-pass.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-skip.json +10 -0
- package/src/__golden__/wave-loop/op-cost-member-clash.json +6 -0
- package/src/__golden__/wave-loop/op-cost-member.json +13 -0
- package/src/__golden__/wave-loop/op-denied-source.json +16 -0
- package/src/__golden__/wave-loop/op-denied.json +16 -0
- package/src/__golden__/wave-loop/op-discover-rest-short.json +6 -0
- package/src/__golden__/wave-loop/op-discover-rest-stops.json +13 -0
- package/src/__golden__/wave-loop/op-discover-rest.json +26 -0
- package/src/__golden__/wave-loop/op-discover-wide.json +26 -0
- package/src/__golden__/wave-loop/op-held-on-again.json +16 -0
- package/src/__golden__/wave-loop/op-held-on-before-apply.json +16 -0
- package/src/__golden__/wave-loop/op-held-on.json +16 -0
- package/src/__golden__/wave-loop/op-hooks-apply-fails.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-after-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-before-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-before-plan.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-held.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-hold-before-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-pass.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-refused-at-base.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-share.json +33 -0
- package/src/__golden__/wave-loop/op-outcome-held.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan-approved.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan-forever.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-stood-down.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-unreadable.json +10 -0
- package/src/__golden__/wave-loop/op-overridden.json +16 -0
- package/src/__golden__/wave-loop/op-per-run.json +20 -0
- package/src/__golden__/wave-loop/op-point.json +13 -0
- package/src/__golden__/wave-loop/op-pr-review.json +10 -0
- package/src/__golden__/wave-loop/op-sealed.json +10 -0
- package/src/__golden__/wave-loop/op-spend-change-only.json +10 -0
- package/src/__golden__/wave-loop/op-spend.json +10 -0
- package/src/__golden__/wave-loop/op-wave-commands.json +55 -0
- package/src/__golden__/wave-loop/op-wide-refused.json +26 -0
- package/src/__golden__/wave-loop/op-wide-waiting.json +29 -0
- package/src/__golden__/wave-loop/op-wide.json +39 -0
- package/src/action-pins.test.ts +78 -0
- package/src/action-pins.ts +92 -0
- package/src/cli/commands/carve-score-once.test.ts +99 -0
- package/src/cli/commands/carve.ts +37 -6
- package/src/cli/commands/check-lexicon.test.ts +2 -2
- package/src/cli/commands/import-report.ts +71 -0
- package/src/cli/commands/import.ts +33 -3
- package/src/cli/commands/migrate-dialect.test.ts +145 -0
- package/src/cli/commands/migrate.ts +132 -11
- package/src/cli/handlers/__snapshots__/build-member.test.ts.snap +4 -4
- package/src/cli/handlers/approve.ts +33 -4
- package/src/cli/handlers/build.ts +7 -1
- package/src/cli/handlers/graph-reader.test.ts +31 -0
- package/src/cli/handlers/graph-reader.ts +51 -0
- package/src/cli/handlers/graph.ts +14 -0
- package/src/cli/handlers/ledger.ts +54 -0
- package/src/cli/handlers/migrate.ts +21 -12
- package/src/cli/handlers/misc.ts +10 -1
- package/src/cli/handlers/pr-env.ts +2 -2
- package/src/cli/handlers/pr.ts +176 -37
- package/src/cli/handlers/query.ts +16 -4
- package/src/cli/handlers/release.ts +6 -3
- package/src/cli/handlers/search.ts +13 -34
- package/src/cli/main.test.ts +17 -0
- package/src/cli/main.ts +87 -14
- package/src/cli/parse-args.ts +35 -2
- package/src/cli/registry.ts +22 -4
- package/src/components/builders.ts +8 -0
- package/src/components/capability-plugin-loader.ts +13 -1
- package/src/components/capability-plugin.ts +16 -0
- package/src/components/pr-env-run-bundle.test.ts +1 -0
- package/src/components/pr-hooks.test.ts +73 -5
- package/src/components/pr-hooks.ts +95 -5
- package/src/components/pr-pipeline.ts +64 -16
- package/src/components/pr-policy.test.ts +64 -1
- package/src/components/pr-policy.ts +53 -0
- package/src/components/pr-run.ts +4 -0
- package/src/components/registry.test.ts +1 -1
- package/src/components/starter-plugin.ts +6 -0
- package/src/components/verbs/index.ts +2 -0
- package/src/components/verbs/publish-artifact.test.ts +60 -0
- package/src/components/verbs/publish-artifact.ts +122 -0
- package/src/components/verbs/publish-image.test.ts +101 -0
- package/src/components/verbs/publish-image.ts +265 -0
- package/src/config-environments.ts +28 -1
- package/src/config.ts +24 -1
- package/src/gate-decision-bundle.test.ts +5 -2
- package/src/gate-decision-identity.test.ts +20 -0
- package/src/gate-decision.ts +46 -3
- package/src/graph-ir.ts +27 -0
- package/src/graph-walk.test.ts +44 -0
- package/src/graph-walk.ts +102 -0
- package/src/import/parser.ts +20 -0
- package/src/lexicon.ts +98 -6
- package/src/lifecycle/gate-ledger.ts +8 -0
- package/src/lifecycle/git.ts +2 -2
- package/src/lifecycle/ledger-read.test.ts +107 -0
- package/src/lifecycle/ledger-read.ts +195 -0
- package/src/lifecycle/release-workstation.ts +24 -0
- package/src/lifecycle/run-ledger.ts +5 -2
- package/src/lint/cross-root.test.ts +122 -0
- package/src/lint/discover.ts +3 -1
- package/src/lint/post-synth.ts +212 -2
- package/src/lint/rules/op/index.ts +2 -0
- package/src/lint/rules/op/ops019-workspace-op-target.ts +89 -0
- package/src/op/activities/activity-contracts.ts +5 -2
- package/src/op/activities/index.ts +2 -2
- package/src/op/activities/review-agent.test.ts +221 -4
- package/src/op/activities/review-agent.ts +265 -22
- package/src/op/activities/work-evidence.ts +9 -1
- package/src/op/builders.ts +9 -5
- package/src/op/composites/apply-op.test.ts +108 -0
- package/src/op/composites/apply-op.ts +37 -2
- package/src/op/gate-approval-at-base.test.ts +97 -0
- package/src/op/gate-approval-base.ts +72 -0
- package/src/op/gate-approval.test.ts +6 -1
- package/src/op/gate-approval.ts +22 -27
- package/src/op/gate-name.ts +16 -1
- package/src/op/gate-quorum-at-base.test.ts +211 -0
- package/src/op/gate-quorum.ts +156 -8
- package/src/op/gate-review.ts +14 -0
- package/src/op/gate.ts +69 -9
- package/src/op/index.ts +3 -2
- package/src/op/local-executor.ts +91 -11
- package/src/op/op-waves-depends-on.test.ts +81 -0
- package/src/op/op-waves-hook-targets.test.ts +4 -2
- package/src/op/op-waves-quorum-product.test.ts +158 -0
- package/src/op/op-waves-run.ts +288 -14
- package/src/op/op-waves.ts +143 -14
- package/src/op/runtime.ts +8 -0
- package/src/op/schedule-overdue.ts +33 -0
- package/src/op/stage-hooks.ts +13 -5
- package/src/op/workspace-run-env.ts +29 -0
- package/src/pr-forge-bundle.test.ts +2 -2
- package/src/pr-forge.test.ts +47 -0
- package/src/pr-forge.ts +68 -0
- package/src/pr-loop-bundle.test.ts +3 -2
- package/src/pr-loop.test.ts +52 -0
- package/src/pr-loop.ts +12 -0
- package/src/pr-migrations.ts +97 -0
- package/src/pr-post-open.e2e.test.ts +36 -0
- package/src/pr-post.test.ts +102 -3
- package/src/pr-post.ts +90 -2
- package/src/read-filter.test.ts +54 -0
- package/src/read-filter.ts +193 -0
- package/src/run-event.ts +1 -1
- package/src/stage-hooks-bundle.test.ts +1 -0
- package/src/terraform/carve.ts +52 -15
- package/src/terraform/cuts.test.ts +173 -0
- package/src/terraform/cuts.ts +188 -0
- package/src/terraform/folds.ts +44 -0
- package/src/terraform/graph.ts +9 -0
- package/src/terraform/radius.test.ts +90 -0
- package/src/terraform/reach.test.ts +146 -0
- package/src/terraform/reach.ts +247 -0
- package/src/terraform/score.ts +27 -29
- package/src/terraform/state.ts +3 -1
- package/src/terraform/types.ts +8 -0
- package/src/wave-blocked.ts +28 -3
- package/src/wave-loop-golden.test.ts +4 -3
- package/src/workspace/__fixtures__/import/spacelift.json +9 -0
- package/src/workspace/__fixtures__/import/tfc.json +13 -0
- package/src/workspace/behold-kinds.test.ts +2 -1
- package/src/workspace/check-contract.test.ts +8 -6
- package/src/workspace/check.schema.json +13 -2
- package/src/workspace/checks/ci-branch.test.ts +128 -0
- package/src/workspace/checks/ci-branch.ts +141 -0
- package/src/workspace/checks/gate-approval.test.ts +77 -0
- package/src/workspace/checks/gate-approval.ts +121 -0
- package/src/workspace/checks/links.ts +12 -1
- package/src/workspace/checks/org.ts +169 -0
- package/src/workspace/checks.ts +68 -7
- package/src/workspace/ci-branches.ts +31 -0
- package/src/workspace/ci-green-branches.test.ts +153 -0
- package/src/workspace/ci-green-cli.ts +7 -7
- package/src/workspace/ci-green-workflow.test.ts +4 -3
- package/src/workspace/ci-green-workflow.ts +13 -9
- package/src/workspace/ci-green.ts +49 -12
- package/src/workspace/ci-run.test.ts +72 -1
- package/src/workspace/ci-run.ts +68 -8
- package/src/workspace/ci-serve.test.ts +95 -0
- package/src/workspace/ci-serve.ts +106 -65
- package/src/workspace/component-environments.test.ts +25 -2
- package/src/workspace/compose-graph.ts +9 -2
- package/src/workspace/composites.schema.json +22 -0
- package/src/workspace/composites.test.ts +39 -8
- package/src/workspace/composites.ts +6 -2
- package/src/workspace/conformance/__writer_fixture__/work/work.schema.json +105 -1
- package/src/workspace/cross-root-lint.test.ts +90 -0
- package/src/workspace/cross-root-lint.ts +126 -0
- package/src/workspace/dbt-kind.test.ts +3 -2
- package/src/workspace/dbt-models-reader.ts +362 -0
- package/src/workspace/dbt-models.test.ts +248 -0
- package/src/workspace/dbt-project-common.ts +113 -0
- package/src/workspace/dbt-project-reader.ts +29 -112
- package/src/workspace/decision-rank.ts +40 -0
- package/src/workspace/declaration.schema.json +166 -24
- package/src/workspace/declaration.ts +101 -15
- package/src/workspace/environments.ts +40 -4
- package/src/workspace/exit-cli.ts +219 -0
- package/src/workspace/exit.schema.json +257 -0
- package/src/workspace/exit.test.ts +185 -0
- package/src/workspace/exit.ts +560 -0
- package/src/workspace/flyway-dir.ts +113 -0
- package/src/workspace/flyway-layout.ts +337 -0
- package/src/workspace/graph-cache.ts +12 -2
- package/src/workspace/graph-cli.ts +25 -10
- package/src/workspace/graph-contract.test.ts +4 -2
- package/src/workspace/graph.schema.json +34 -0
- package/src/workspace/identity.test.ts +29 -2
- package/src/workspace/import-fetch.ts +151 -0
- package/src/workspace/import-init.ts +147 -0
- package/src/workspace/import-source.test.ts +183 -0
- package/src/workspace/import-source.ts +462 -0
- package/src/workspace/init.test.ts +55 -1
- package/src/workspace/init.ts +66 -4
- package/src/workspace/intent.ts +6 -14
- package/src/workspace/kind-link-readers.ts +68 -3
- package/src/workspace/kind-readers.test.ts +36 -0
- package/src/workspace/kind-readers.ts +18 -1
- package/src/workspace/kinds.test.ts +35 -7
- package/src/workspace/kinds.ts +212 -11
- package/src/workspace/ledger.schema.json +158 -0
- package/src/workspace/lexicon-outputs.ts +132 -13
- package/src/workspace/lineage-check.ts +30 -7
- package/src/workspace/lineage-upgrade.test.ts +20 -0
- package/src/workspace/lineage-upgrade.ts +16 -7
- package/src/workspace/links.ts +24 -1
- package/src/workspace/ls-contract.test.ts +1 -1
- package/src/workspace/ls.schema.json +7 -0
- package/src/workspace/ls.ts +10 -1
- package/src/workspace/member-commands.ts +60 -2
- package/src/workspace/member-file-schema.test.ts +124 -0
- package/src/workspace/migrate-links.test.ts +99 -0
- package/src/workspace/migrate-links.ts +108 -0
- package/src/workspace/migration-dirs.test.ts +272 -0
- package/src/workspace/migration-dirs.ts +267 -0
- package/src/workspace/new-migrations.test.ts +98 -0
- package/src/workspace/new-migrations.ts +109 -0
- package/src/workspace/org-scope.test.ts +238 -0
- package/src/workspace/pr-report.schema.json +46 -0
- package/src/workspace/promote.test.ts +114 -0
- package/src/workspace/promote.ts +302 -0
- package/src/workspace/reason-codes.test.ts +10 -1
- package/src/workspace/reason-codes.ts +25 -0
- package/src/workspace/records-cli.ts +58 -5
- package/src/workspace/records.schema.json +5 -0
- package/src/workspace/release-candidates.ts +7 -2
- package/src/workspace/release-train.ts +157 -0
- package/src/workspace/release-workflow.ts +4 -3
- package/src/workspace/repo-ref.ts +113 -0
- package/src/workspace/run-event.schema.json +2 -2
- package/src/workspace/runs-cli.ts +48 -4
- package/src/workspace/runs.schema.json +7 -0
- package/src/workspace/status-contract.test.ts +46 -1
- package/src/workspace/status-decisions.test.ts +100 -0
- package/src/workspace/status-decisions.ts +151 -0
- package/src/workspace/status-gates.ts +9 -0
- package/src/workspace/status.schema.json +6 -0
- package/src/workspace/status.ts +17 -3
- package/src/workspace/where-filters.test.ts +39 -0
- package/src/workspace/work-cli.ts +5 -3
- package/src/workspace/work-evidence-ops.test.ts +176 -0
- package/src/workspace/work-evidence-ops.ts +189 -0
- package/src/workspace/work-evidence.schema.json +49 -2
- package/src/workspace/work-evidence.ts +22 -3
- package/src/workspace/workspace-gates.ts +200 -0
- package/src/workspace/workspace-kinds.schema.json +108 -10
- package/src/workspace/workspace-ledger.ts +130 -0
- package/src/workspace/workspace-run.test.ts +322 -0
- package/src/workspace/workspace-run.ts +461 -0
|
@@ -340,6 +340,22 @@
|
|
|
340
340
|
"wave 1 (net) applies vpc under their overrides, which are now spent"
|
|
341
341
|
],
|
|
342
342
|
"files": {
|
|
343
|
+
".chant/op-waves/tf-apply/outcomes/outcome-wave-1.json": {
|
|
344
|
+
"version": 1,
|
|
345
|
+
"wave": 1,
|
|
346
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
347
|
+
"members": {
|
|
348
|
+
"dns": {
|
|
349
|
+
"status": "applied"
|
|
350
|
+
},
|
|
351
|
+
"nat": {
|
|
352
|
+
"status": "applied"
|
|
353
|
+
},
|
|
354
|
+
"vpc": {
|
|
355
|
+
"status": "applied"
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
},
|
|
343
359
|
".chant/op-waves/tf-apply/wave-1/dns.plan.json": {
|
|
344
360
|
"planDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
|
|
345
361
|
},
|
|
@@ -418,6 +418,26 @@
|
|
|
418
418
|
"Nothing in wave 2 or after it ran. Read the plans, then approve: chant approve migrations migrations-wave-2 --plan jcs1-sha256:121fce9fb501cc2872d4239f620d465480edef5fcbe86d290f3b17c017231e8d (with --resume, the approval also starts this job again)"
|
|
419
419
|
],
|
|
420
420
|
"files": {
|
|
421
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-1.json": {
|
|
422
|
+
"version": 1,
|
|
423
|
+
"wave": 1,
|
|
424
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
425
|
+
"members": {
|
|
426
|
+
"dev": {
|
|
427
|
+
"status": "applied"
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-2.json": {
|
|
432
|
+
"version": 1,
|
|
433
|
+
"wave": 2,
|
|
434
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
435
|
+
"members": {
|
|
436
|
+
"staging": {
|
|
437
|
+
"status": "waiting"
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
},
|
|
421
441
|
".chant/op-waves/migrations/wave-1/dev.hooks.json": {
|
|
422
442
|
"version": 1,
|
|
423
443
|
"opWaves": "migrations",
|
|
@@ -402,6 +402,19 @@
|
|
|
402
402
|
"wave 1 (prod): the decision point at base cannot be asked (waves.json at bbbbbbbbbbbb: `point.name` is a decision point's name: lower case letters, digits and hyphens, starting with a letter), so nothing in it was planned or applied"
|
|
403
403
|
],
|
|
404
404
|
"files": {
|
|
405
|
+
".chant/op-waves/tf-apply/outcomes/outcome-wave-1.json": {
|
|
406
|
+
"version": 1,
|
|
407
|
+
"wave": 1,
|
|
408
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
409
|
+
"members": {
|
|
410
|
+
"db": {
|
|
411
|
+
"status": "failed"
|
|
412
|
+
},
|
|
413
|
+
"net": {
|
|
414
|
+
"status": "failed"
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
},
|
|
405
418
|
".chant/op-waves/tf-apply/wave-1/db.hooks.json": {
|
|
406
419
|
"version": 1,
|
|
407
420
|
"opWaves": "tf-apply",
|
|
@@ -330,6 +330,16 @@
|
|
|
330
330
|
"Nothing in wave 2 or after it ran. Read the plans, then approve: chant approve migrations migrations-wave-2 --plan jcs1-sha256:121fce9fb501cc2872d4239f620d465480edef5fcbe86d290f3b17c017231e8d (with --resume, the approval also starts this job again)"
|
|
331
331
|
],
|
|
332
332
|
"files": {
|
|
333
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-2.json": {
|
|
334
|
+
"version": 1,
|
|
335
|
+
"wave": 2,
|
|
336
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
337
|
+
"members": {
|
|
338
|
+
"staging": {
|
|
339
|
+
"status": "waiting"
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
},
|
|
333
343
|
".chant/op-waves/migrations/wave-2/staging.hooks.json": {
|
|
334
344
|
"version": 1,
|
|
335
345
|
"opWaves": "migrations",
|
|
@@ -85,6 +85,16 @@
|
|
|
85
85
|
"Nothing in wave 2 or after it ran. Read the plans, then approve: chant approve migrations migrations-wave-2 --plan jcs1-sha256:121fce9fb501cc2872d4239f620d465480edef5fcbe86d290f3b17c017231e8d --sign (with --resume, the approval also starts this job again)"
|
|
86
86
|
],
|
|
87
87
|
"files": {
|
|
88
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-2.json": {
|
|
89
|
+
"version": 1,
|
|
90
|
+
"wave": 2,
|
|
91
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
92
|
+
"members": {
|
|
93
|
+
"staging": {
|
|
94
|
+
"status": "waiting"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
88
98
|
".chant/op-waves/migrations/wave-2/staging.plan.json": {
|
|
89
99
|
"planDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
90
100
|
"destructive": true
|
|
@@ -114,6 +114,16 @@
|
|
|
114
114
|
"wave 2 (staging) applies under the approval by alice at 2026-10-10T00:00:00Z, which is now spent"
|
|
115
115
|
],
|
|
116
116
|
"files": {
|
|
117
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-2.json": {
|
|
118
|
+
"version": 1,
|
|
119
|
+
"wave": 2,
|
|
120
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
121
|
+
"members": {
|
|
122
|
+
"staging": {
|
|
123
|
+
"status": "applied"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
117
127
|
".chant/op-waves/migrations/wave-2/staging.hooks.json": {
|
|
118
128
|
"version": 1,
|
|
119
129
|
"opWaves": "migrations",
|
|
@@ -278,6 +278,16 @@
|
|
|
278
278
|
"wave 2 (staging) could not record that it applies under the approval by alice, so nothing applied: this gate ledger cannot record an applied approval"
|
|
279
279
|
],
|
|
280
280
|
"files": {
|
|
281
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-2.json": {
|
|
282
|
+
"version": 1,
|
|
283
|
+
"wave": 2,
|
|
284
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
285
|
+
"members": {
|
|
286
|
+
"staging": {
|
|
287
|
+
"status": "failed"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
},
|
|
281
291
|
".chant/op-waves/migrations/wave-2/staging.hooks.json": {
|
|
282
292
|
"version": 1,
|
|
283
293
|
"opWaves": "migrations",
|
|
@@ -1503,6 +1503,22 @@
|
|
|
1503
1503
|
"wave 2 (apps): gate never (read at bbbbbbbbbbbb), digest jcs1-sha256:528ae61c94cd24622aade0c3b2acbebe58dfa1789f13f71de15b9d5d7519f0d3: not-required"
|
|
1504
1504
|
],
|
|
1505
1505
|
"files": {
|
|
1506
|
+
".chant/op-waves/tf-apply/outcomes/outcome-wave-1.json": {
|
|
1507
|
+
"version": 1,
|
|
1508
|
+
"wave": 1,
|
|
1509
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
1510
|
+
"members": {
|
|
1511
|
+
"dns": {
|
|
1512
|
+
"status": "waiting"
|
|
1513
|
+
},
|
|
1514
|
+
"nat": {
|
|
1515
|
+
"status": "waiting"
|
|
1516
|
+
},
|
|
1517
|
+
"vpc": {
|
|
1518
|
+
"status": "waiting"
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
},
|
|
1506
1522
|
".chant/op-waves/tf-apply/wave-1/dns.plan.json": {
|
|
1507
1523
|
"planDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
1508
1524
|
"empty": true
|
|
@@ -1810,6 +1826,45 @@
|
|
|
1810
1826
|
"outcome": "passed"
|
|
1811
1827
|
}
|
|
1812
1828
|
]
|
|
1829
|
+
},
|
|
1830
|
+
"wide-outcomes/outcome-wave-2-share-1.json": {
|
|
1831
|
+
"version": 1,
|
|
1832
|
+
"wave": 2,
|
|
1833
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
1834
|
+
"members": {
|
|
1835
|
+
"a1": {
|
|
1836
|
+
"status": "applied"
|
|
1837
|
+
},
|
|
1838
|
+
"a2": {
|
|
1839
|
+
"status": "applied"
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
"wide-outcomes/outcome-wave-2-share-2.json": {
|
|
1844
|
+
"version": 1,
|
|
1845
|
+
"wave": 2,
|
|
1846
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
1847
|
+
"members": {
|
|
1848
|
+
"a3": {
|
|
1849
|
+
"status": "applied"
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
},
|
|
1853
|
+
"wide-outcomes/outcome-wave-2.json": {
|
|
1854
|
+
"version": 1,
|
|
1855
|
+
"wave": 2,
|
|
1856
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
1857
|
+
"members": {
|
|
1858
|
+
"a1": {
|
|
1859
|
+
"status": "decided"
|
|
1860
|
+
},
|
|
1861
|
+
"a2": {
|
|
1862
|
+
"status": "decided"
|
|
1863
|
+
},
|
|
1864
|
+
"a3": {
|
|
1865
|
+
"status": "decided"
|
|
1866
|
+
}
|
|
1867
|
+
}
|
|
1813
1868
|
}
|
|
1814
1869
|
}
|
|
1815
1870
|
}
|
|
@@ -190,6 +190,32 @@
|
|
|
190
190
|
"wave 1 (apps) is refused by its policy; nothing applied."
|
|
191
191
|
],
|
|
192
192
|
"files": {
|
|
193
|
+
".chant/op-waves/tf-apply/outcomes/outcome-wave-1-share-2.json": {
|
|
194
|
+
"version": 1,
|
|
195
|
+
"wave": 1,
|
|
196
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
197
|
+
"members": {
|
|
198
|
+
"t3": {
|
|
199
|
+
"status": "refused"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
".chant/op-waves/tf-apply/outcomes/outcome-wave-1.json": {
|
|
204
|
+
"version": 1,
|
|
205
|
+
"wave": 1,
|
|
206
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
207
|
+
"members": {
|
|
208
|
+
"t1": {
|
|
209
|
+
"status": "refused"
|
|
210
|
+
},
|
|
211
|
+
"t2": {
|
|
212
|
+
"status": "refused"
|
|
213
|
+
},
|
|
214
|
+
"t3": {
|
|
215
|
+
"status": "refused"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
},
|
|
193
219
|
".chant/op-waves/tf-apply/wave-1/plans.json": {
|
|
194
220
|
"runs": [
|
|
195
221
|
{
|
|
@@ -178,6 +178,35 @@
|
|
|
178
178
|
"wave 3 (prod) is waiting on migrations-wave-3; nothing applied. chant approve migrations migrations-wave-3 --plan jcs1-sha256:106d25f35ee6bc02e9aa253d0b2633a764396833c82e0c5ec5a4ad83a2a85b4e"
|
|
179
179
|
],
|
|
180
180
|
"files": {
|
|
181
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-3-share-1.json": {
|
|
182
|
+
"version": 1,
|
|
183
|
+
"wave": 3,
|
|
184
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
185
|
+
"members": {
|
|
186
|
+
"t1": {
|
|
187
|
+
"status": "waiting"
|
|
188
|
+
},
|
|
189
|
+
"t2": {
|
|
190
|
+
"status": "waiting"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-3.json": {
|
|
195
|
+
"version": 1,
|
|
196
|
+
"wave": 3,
|
|
197
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
198
|
+
"members": {
|
|
199
|
+
"t1": {
|
|
200
|
+
"status": "waiting"
|
|
201
|
+
},
|
|
202
|
+
"t2": {
|
|
203
|
+
"status": "waiting"
|
|
204
|
+
},
|
|
205
|
+
"t3": {
|
|
206
|
+
"status": "waiting"
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
},
|
|
181
210
|
".chant/op-waves/migrations/wave-3/t1.plan.json": {
|
|
182
211
|
"planDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
|
|
183
212
|
},
|
|
@@ -351,6 +351,45 @@
|
|
|
351
351
|
"t2: its plan moved since wave 3 was decided, so it was not applied. decided: sha256:2222222222222222222222222222222222222222222222222222222222222222; planned now: sha256:9999999999999999999999999999999999999999999999999999999999999999"
|
|
352
352
|
],
|
|
353
353
|
"files": {
|
|
354
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-3-share-1.json": {
|
|
355
|
+
"version": 1,
|
|
356
|
+
"wave": 3,
|
|
357
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
358
|
+
"members": {
|
|
359
|
+
"t1": {
|
|
360
|
+
"status": "applied"
|
|
361
|
+
},
|
|
362
|
+
"t2": {
|
|
363
|
+
"status": "not-applied"
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-3-share-2.json": {
|
|
368
|
+
"version": 1,
|
|
369
|
+
"wave": 3,
|
|
370
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
371
|
+
"members": {
|
|
372
|
+
"t3": {
|
|
373
|
+
"status": "applied"
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
".chant/op-waves/migrations/outcomes/outcome-wave-3.json": {
|
|
378
|
+
"version": 1,
|
|
379
|
+
"wave": 3,
|
|
380
|
+
"at": "2026-10-11T00:00:00.000Z",
|
|
381
|
+
"members": {
|
|
382
|
+
"t1": {
|
|
383
|
+
"status": "decided"
|
|
384
|
+
},
|
|
385
|
+
"t2": {
|
|
386
|
+
"status": "decided"
|
|
387
|
+
},
|
|
388
|
+
"t3": {
|
|
389
|
+
"status": "decided"
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
},
|
|
354
393
|
".chant/op-waves/migrations/wave-3/t1.hooks.json": {
|
|
355
394
|
"version": 1,
|
|
356
395
|
"opWaves": "migrations",
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The GitHub Actions the workflows chant generates use, each pinned by commit
|
|
3
|
+
* SHA (#4403). A tag can move; a SHA cannot. Every generator takes its `uses:`
|
|
4
|
+
* from here, so an update is one change to this table. Each row is the commit
|
|
5
|
+
* the named major tag pointed at, with the release that commit carries;
|
|
6
|
+
* `tagComments` writes that release beside each `uses:` line.
|
|
7
|
+
*
|
|
8
|
+
* Forgejo's actions mirror (code.forgejo.org) carries the same commits. The
|
|
9
|
+
* forgejo lexicon moves `upload-artifact` and `download-artifact` to v3, whose
|
|
10
|
+
* rows are here too: v4 and later refuse to run on a Forgejo runner (#4008).
|
|
11
|
+
*
|
|
12
|
+
* Refresh a row by resolving the major tag to its commit:
|
|
13
|
+
*
|
|
14
|
+
* gh api repos/actions/checkout/commits/v6 --jq .sha
|
|
15
|
+
*/
|
|
16
|
+
export interface ActionPin {
|
|
17
|
+
/** The action, with its subpath: `actions/cache/restore`. */
|
|
18
|
+
readonly slug: string;
|
|
19
|
+
/** The major tag the row follows, such as `v4`. */
|
|
20
|
+
readonly major: string;
|
|
21
|
+
readonly sha: string;
|
|
22
|
+
/** The release at that commit, written beside the `uses:` line. */
|
|
23
|
+
readonly tag: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const ACTION_PINS: {
|
|
26
|
+
readonly checkout7: ActionPin;
|
|
27
|
+
readonly checkout6: ActionPin;
|
|
28
|
+
readonly checkout4: ActionPin;
|
|
29
|
+
readonly setupNode6: ActionPin;
|
|
30
|
+
readonly setupNode4: ActionPin;
|
|
31
|
+
readonly setupNode7: ActionPin;
|
|
32
|
+
readonly cache6: ActionPin;
|
|
33
|
+
readonly uploadArtifact7: ActionPin;
|
|
34
|
+
readonly downloadArtifact8: ActionPin;
|
|
35
|
+
readonly setupGo7: ActionPin;
|
|
36
|
+
readonly setupPython7: ActionPin;
|
|
37
|
+
readonly setupBun2: ActionPin;
|
|
38
|
+
readonly golangciLint9: ActionPin;
|
|
39
|
+
readonly dockerLogin4: ActionPin;
|
|
40
|
+
readonly dockerSetupBuildx4: ActionPin;
|
|
41
|
+
readonly dockerMetadata6: ActionPin;
|
|
42
|
+
readonly dockerBuildPush7: ActionPin;
|
|
43
|
+
readonly createGithubAppToken2: ActionPin;
|
|
44
|
+
readonly cacheRestore4: ActionPin;
|
|
45
|
+
readonly cacheSave4: ActionPin;
|
|
46
|
+
readonly uploadArtifact4: ActionPin;
|
|
47
|
+
readonly uploadArtifact3: ActionPin;
|
|
48
|
+
readonly downloadArtifact4: ActionPin;
|
|
49
|
+
readonly downloadArtifact3: ActionPin;
|
|
50
|
+
};
|
|
51
|
+
/** The `uses:` value for a pin: `actions/checkout@<sha>`. */
|
|
52
|
+
export declare const usesRef: (p: ActionPin) => string;
|
|
53
|
+
/** Write each pinned `uses:` line's release beside it, as `# v4.4.0`. A line that has a comment, or a SHA not in the table, is left alone. */
|
|
54
|
+
export declare function tagComments(yaml: string): string;
|
|
55
|
+
/** Every `uses:` in a workflow that names an action by a tag or branch, not a 40-character commit SHA. Local actions and docker images are not actions on a forge. */
|
|
56
|
+
export declare function unpinnedActions(yaml: string): string[];
|
|
57
|
+
/** The row for the same action as the one `sha` pins, at `major`. The forgejo lexicon uses it to move a pinned `upload-artifact` v4 to v3. */
|
|
58
|
+
export declare function pinAtMajor(sha: string, major: string): ActionPin | undefined;
|
|
59
|
+
/** The major of the row `sha` belongs to, as a number, when it is in the table. */
|
|
60
|
+
export declare function pinMajor(sha: string): number | undefined;
|
|
61
|
+
//# sourceMappingURL=action-pins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-pins.d.ts","sourceRoot":"","sources":["../src/action-pins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAyBsB,CAAC;AAE/C,6DAA6D;AAC7D,eAAO,MAAM,OAAO,MAAO,SAAS,KAAG,MAA8B,CAAC;AAKtE,8IAA8I;AAC9I,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,sKAAsK;AACtK,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,8IAA8I;AAC9I,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAI5E;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The GitHub Actions the workflows chant generates use, each pinned by commit
|
|
3
|
+
* SHA (#4403). A tag can move; a SHA cannot. Every generator takes its `uses:`
|
|
4
|
+
* from here, so an update is one change to this table. Each row is the commit
|
|
5
|
+
* the named major tag pointed at, with the release that commit carries;
|
|
6
|
+
* `tagComments` writes that release beside each `uses:` line.
|
|
7
|
+
*
|
|
8
|
+
* Forgejo's actions mirror (code.forgejo.org) carries the same commits. The
|
|
9
|
+
* forgejo lexicon moves `upload-artifact` and `download-artifact` to v3, whose
|
|
10
|
+
* rows are here too: v4 and later refuse to run on a Forgejo runner (#4008).
|
|
11
|
+
*
|
|
12
|
+
* Refresh a row by resolving the major tag to its commit:
|
|
13
|
+
*
|
|
14
|
+
* gh api repos/actions/checkout/commits/v6 --jq .sha
|
|
15
|
+
*/
|
|
16
|
+
const pin = (slug, major, sha, tag) => ({ slug, major, sha, tag });
|
|
17
|
+
export const ACTION_PINS = {
|
|
18
|
+
checkout7: pin("actions/checkout", "v7", "3d3c42e5aac5ba805825da76410c181273ba90b1", "v7.0.1"),
|
|
19
|
+
checkout6: pin("actions/checkout", "v6", "d23441a48e516b6c34aea4fa41551a30e30af803", "v6.1.0"),
|
|
20
|
+
checkout4: pin("actions/checkout", "v4", "11d5960a326750d5838078e36cf38b85af677262", "v4.4.0"),
|
|
21
|
+
setupNode6: pin("actions/setup-node", "v6", "249970729cb0ef3589644e2896645e5dc5ba9c38", "v6.5.0"),
|
|
22
|
+
setupNode4: pin("actions/setup-node", "v4", "49933ea5288caeca8642d1e84afbd3f7d6820020", "v4.4.0"),
|
|
23
|
+
setupNode7: pin("actions/setup-node", "v7", "949feb2413d6458794dcd2491c4babbbce0c15c1", "v7.1.0"),
|
|
24
|
+
cache6: pin("actions/cache", "v6", "55cc8345863c7cc4c66a329aec7e433d2d1c52a9", "v6.1.0"),
|
|
25
|
+
uploadArtifact7: pin("actions/upload-artifact", "v7", "cf430e030ddbb5b0abf93d22962f4752f3646cd9", "v7.0.2"),
|
|
26
|
+
downloadArtifact8: pin("actions/download-artifact", "v8", "9000827ccba6bdab643e8b6fd33ac0654aef8333", "v8.0.2"),
|
|
27
|
+
setupGo7: pin("actions/setup-go", "v7", "b7ad1dad31e06c5925ef5d2fc7ad053ef454303e", "v7.0.0"),
|
|
28
|
+
setupPython7: pin("actions/setup-python", "v7", "6d4fd22b20465ccc0f7354476588e8df7c9ca0e0", "v7.1.0"),
|
|
29
|
+
setupBun2: pin("oven-sh/setup-bun", "v2", "0c5077e51419868618aeaa5fe8019c62421857d6", "v2.2.0"),
|
|
30
|
+
golangciLint9: pin("golangci/golangci-lint-action", "v9", "ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a", "v9.3.0"),
|
|
31
|
+
dockerLogin4: pin("docker/login-action", "v4", "81c6f93d4bc991e510b342a00b419b3bb4efc5c6", "v4.7.0"),
|
|
32
|
+
dockerSetupBuildx4: pin("docker/setup-buildx-action", "v4", "f87e5991a6d7451dcb8d9637bfbc97413f497069", "v4.4.1"),
|
|
33
|
+
dockerMetadata6: pin("docker/metadata-action", "v6", "dc802804100637a589fabce1cb79ff13a1411302", "v6.2.0"),
|
|
34
|
+
dockerBuildPush7: pin("docker/build-push-action", "v7", "c3c9e263c25d99ce0380d002d59b67737d91b0dc", "v7.4.0"),
|
|
35
|
+
createGithubAppToken2: pin("actions/create-github-app-token", "v2", "fee1f7d63c2ff003460e3d139729b119787bc349", "v2.2.2"),
|
|
36
|
+
cacheRestore4: pin("actions/cache/restore", "v4", "0057852bfaa89a56745cba8c7296529d2fc39830", "v4.3.0"),
|
|
37
|
+
cacheSave4: pin("actions/cache/save", "v4", "0057852bfaa89a56745cba8c7296529d2fc39830", "v4.3.0"),
|
|
38
|
+
uploadArtifact4: pin("actions/upload-artifact", "v4", "ea165f8d65b6e75b540449e92b4886f43607fa02", "v4.6.2"),
|
|
39
|
+
uploadArtifact3: pin("actions/upload-artifact", "v3", "ff15f0306b3f739f7b6fd43fb5d26cd321bd4de5", "v3.2.1"),
|
|
40
|
+
downloadArtifact4: pin("actions/download-artifact", "v4", "d3f86a106a0bac45b974a628896c90dbdf5c8093", "v4.3.0"),
|
|
41
|
+
downloadArtifact3: pin("actions/download-artifact", "v3", "9bc31d5ccc31df68ecc42ccf4149144866c47d8a", "v3.0.2"),
|
|
42
|
+
};
|
|
43
|
+
/** The `uses:` value for a pin: `actions/checkout@<sha>`. */
|
|
44
|
+
export const usesRef = (p) => `${p.slug}@${p.sha}`;
|
|
45
|
+
const TAG_BY_SHA = new Map();
|
|
46
|
+
for (const p of Object.values(ACTION_PINS))
|
|
47
|
+
TAG_BY_SHA.set(p.sha, p.tag);
|
|
48
|
+
/** Write each pinned `uses:` line's release beside it, as `# v4.4.0`. A line that has a comment, or a SHA not in the table, is left alone. */
|
|
49
|
+
export function tagComments(yaml) {
|
|
50
|
+
return yaml.replace(/^(\s*(?:- )?uses: *["']?[^\s"'#]+@([0-9a-f]{40})["']?)[ \t]*$/gm, (line, head, sha) => {
|
|
51
|
+
const tag = TAG_BY_SHA.get(sha);
|
|
52
|
+
return tag ? `${head} # ${tag}` : line;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Every `uses:` in a workflow that names an action by a tag or branch, not a 40-character commit SHA. Local actions and docker images are not actions on a forge. */
|
|
56
|
+
export function unpinnedActions(yaml) {
|
|
57
|
+
const out = [];
|
|
58
|
+
for (const m of yaml.matchAll(/^\s*(?:- )?uses: *["']?([^\s"'#]+)["']?/gm)) {
|
|
59
|
+
const ref = m[1];
|
|
60
|
+
if (ref.startsWith("./") || ref.startsWith("../") || ref.startsWith("docker://"))
|
|
61
|
+
continue;
|
|
62
|
+
if (!/@[0-9a-f]{40}$/.test(ref))
|
|
63
|
+
out.push(ref);
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
/** The row for the same action as the one `sha` pins, at `major`. The forgejo lexicon uses it to move a pinned `upload-artifact` v4 to v3. */
|
|
68
|
+
export function pinAtMajor(sha, major) {
|
|
69
|
+
const rows = Object.values(ACTION_PINS);
|
|
70
|
+
const from = rows.find((p) => p.sha === sha);
|
|
71
|
+
return from ? rows.find((p) => p.slug === from.slug && p.major === major) : undefined;
|
|
72
|
+
}
|
|
73
|
+
/** The major of the row `sha` belongs to, as a number, when it is in the table. */
|
|
74
|
+
export function pinMajor(sha) {
|
|
75
|
+
const row = Object.values(ACTION_PINS).find((p) => p.sha === sha);
|
|
76
|
+
return row ? Number(row.major.slice(1)) : undefined;
|
|
77
|
+
}
|
|
@@ -74,6 +74,9 @@ export declare function carveAdvise(opts: CarveAdviseOptions): Promise<CarveAdvi
|
|
|
74
74
|
* additive and ignorable: the top-level `source` discriminator, per-resource
|
|
75
75
|
* `notes` and `members`, and two more `bridge` values in a list that was
|
|
76
76
|
* already declared open-ended.
|
|
77
|
+
*
|
|
78
|
+
* Per-resource `radius` (#2326) is additive the same way: a new field beside
|
|
79
|
+
* `score`, not a term inside it, so the score and its penalties are unchanged.
|
|
77
80
|
*/
|
|
78
81
|
export declare const CARVE_REPORT_VERSION = 1;
|
|
79
82
|
/** One ranked resource in the JSON report: its score, plus the boundary its carve would cut. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/carve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAe,KAAK,WAAW,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,
|
|
1
|
+
{"version":3,"file":"carve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/carve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAe,KAAK,WAAW,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAqD,KAAK,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAChI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAID,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAatF;AA4CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,gGAAgG;AAChG,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CAClE;AAED,yGAAyG;AACzG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAkBpE;AAiBD,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA+CnE"}
|
|
@@ -18,7 +18,7 @@ import { adviseCloudAssembly, CDK_DIALECT } from "../../cdk/advise.js";
|
|
|
18
18
|
import { isCloudAssembly } from "../../cdk/assembly.js";
|
|
19
19
|
import { parseTerraformDir, Hcl2JsonNotInstalled } from "../../terraform/parse.js";
|
|
20
20
|
import { scoreEstate } from "../../terraform/score.js";
|
|
21
|
-
import { boundaryReport } from "../../terraform/carve.js";
|
|
21
|
+
import { boundaryIndex, boundaryReport } from "../../terraform/carve.js";
|
|
22
22
|
const BAND_ORDER = ["clean leaf", "carvable w/ edits", "leave in Terraform"];
|
|
23
23
|
export async function carveAdvise(opts) {
|
|
24
24
|
if (!opts.from) {
|
|
@@ -100,6 +100,9 @@ async function adviseTerraform(opts) {
|
|
|
100
100
|
* additive and ignorable: the top-level `source` discriminator, per-resource
|
|
101
101
|
* `notes` and `members`, and two more `bridge` values in a list that was
|
|
102
102
|
* already declared open-ended.
|
|
103
|
+
*
|
|
104
|
+
* Per-resource `radius` (#2326) is additive the same way: a new field beside
|
|
105
|
+
* `score`, not a term inside it, so the score and its penalties are unchanged.
|
|
103
106
|
*/
|
|
104
107
|
export const CARVE_REPORT_VERSION = 1;
|
|
105
108
|
/** Build the `--json` / `--report` payload. */
|
|
@@ -108,6 +111,7 @@ export function carveJson(result) {
|
|
|
108
111
|
const counts = Object.fromEntries(BAND_ORDER.map((b) => [b, results.filter((r) => r.band === b).length]));
|
|
109
112
|
const source = result.source ?? "terraform";
|
|
110
113
|
const dialect = source === "cdk" ? CDK_DIALECT : "terraform";
|
|
114
|
+
const index = result.graph ? boundaryIndex(result.graph) : undefined;
|
|
111
115
|
return {
|
|
112
116
|
version: CARVE_REPORT_VERSION,
|
|
113
117
|
from: result.from,
|
|
@@ -116,14 +120,15 @@ export function carveJson(result) {
|
|
|
116
120
|
count: results.length,
|
|
117
121
|
bands: counts,
|
|
118
122
|
...(result.diagnostics?.length ? { diagnostics: result.diagnostics } : {}),
|
|
119
|
-
resources: results.map((r) => withBoundary(r, result.graph, dialect, result.scoreOptions)),
|
|
123
|
+
resources: results.map((r) => withBoundary(r, result.graph, dialect, result.scoreOptions, index)),
|
|
120
124
|
};
|
|
121
125
|
}
|
|
122
126
|
/** A scored resource plus its carve boundary, when the graph is at hand (#1636). */
|
|
123
|
-
function withBoundary(r, graph, dialect, score) {
|
|
127
|
+
function withBoundary(r, graph, dialect, score, index) {
|
|
124
128
|
if (!graph)
|
|
125
129
|
return r;
|
|
126
|
-
|
|
130
|
+
// The ranking already scored this resource; the report reads it back rather than rescoring the estate (#4391).
|
|
131
|
+
const report = boundaryReport(graph, r.address, { dialect, score, peelability: r, index });
|
|
127
132
|
if (!report)
|
|
128
133
|
return r;
|
|
129
134
|
return { ...r, boundary: { inbound: report.inbound, outbound: report.outbound } };
|
|
@@ -145,6 +150,8 @@ export function formatCarveReport(result) {
|
|
|
145
150
|
for (const note of result.diagnostics ?? [])
|
|
146
151
|
lines.push(` ! ${note}`);
|
|
147
152
|
lines.push("");
|
|
153
|
+
const cells = new Map(results.map((r) => [r.address, radiusCell(r)]));
|
|
154
|
+
const cellWidth = Math.max(...[...cells.values()].map((c) => c.length));
|
|
148
155
|
for (const band of BAND_ORDER) {
|
|
149
156
|
const inBand = results.filter((r) => r.band === band);
|
|
150
157
|
if (inBand.length === 0)
|
|
@@ -152,16 +159,38 @@ export function formatCarveReport(result) {
|
|
|
152
159
|
lines.push(`${bandLabel(band, cdk)} (${inBand.length})`);
|
|
153
160
|
for (const r of inBand) {
|
|
154
161
|
const target = r.mapsTo ? ` -> ${r.mapsTo}` : "";
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
const cell = cellWidth > 0 ? `${cells.get(r.address).padEnd(cellWidth)} ` : "";
|
|
163
|
+
const indent = " ".repeat(7 + (cellWidth > 0 ? cellWidth + 2 : 0));
|
|
164
|
+
lines.push(` ${String(r.score).padStart(3)} ${cell}${r.address}${target}`);
|
|
165
|
+
lines.push(`${indent}${reasons(r, cdk)}`);
|
|
157
166
|
for (const note of r.notes ?? [])
|
|
158
|
-
lines.push(
|
|
167
|
+
lines.push(`${indent}${note}`);
|
|
159
168
|
}
|
|
160
169
|
lines.push("");
|
|
161
170
|
}
|
|
162
171
|
lines.push(`Bands: 80-100 carve now | 50-79 carve with boundary edits | 0-49 leave in ${cdk ? "CDK" : "Terraform"}`);
|
|
172
|
+
if (cellWidth > 0) {
|
|
173
|
+
lines.push("Radius: resources+outputs that depend on it at any depth, dN the farthest hop; - none; " +
|
|
174
|
+
(cdk ? "xN across a stack boundary." : "? a module or unresolved count/for_each hides how many."));
|
|
175
|
+
}
|
|
163
176
|
return lines.join("\n").trimEnd();
|
|
164
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* The radius column (#2326): `3+1 d2` is three resources and one output that
|
|
180
|
+
* depend on the node, the farthest two hops away; `-` is nothing; `?` stands in
|
|
181
|
+
* for a count a module or unresolved `count` hides; ` x2` is how many sit
|
|
182
|
+
* across a stack boundary. Empty when the result carries no radius.
|
|
183
|
+
*/
|
|
184
|
+
function radiusCell(r) {
|
|
185
|
+
const radius = r.radius;
|
|
186
|
+
if (!radius)
|
|
187
|
+
return "";
|
|
188
|
+
if (radius.depth === 0)
|
|
189
|
+
return "-";
|
|
190
|
+
const n = (v) => (v === "unknown" ? "?" : String(v));
|
|
191
|
+
const cross = radius.crossStack !== undefined && radius.crossStack !== 0 ? ` x${n(radius.crossStack)}` : "";
|
|
192
|
+
return `${n(radius.resources)}+${radius.outputs} d${radius.depth}${cross}`;
|
|
193
|
+
}
|
|
165
194
|
function bandLabel(band, cdk) {
|
|
166
195
|
switch (band) {
|
|
167
196
|
case "clean leaf":
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The review report of `chant import` (#4398): the parser's diagnostics as
|
|
3
|
+
* SARIF (`--report <path>`), a summary on stderr, and the exit code under
|
|
4
|
+
* `--strict`. The shape follows `chant migrate`: a needs-review diagnostic is
|
|
5
|
+
* a `warning`, and `--strict` makes any open `warning` or `error` fail the
|
|
6
|
+
* run. An `info` diagnostic names something not carried that needs no
|
|
7
|
+
* decision, and never fails a run.
|
|
8
|
+
*/
|
|
9
|
+
import type { ImportDiagnostic } from "../../import/parser.js";
|
|
10
|
+
import type { LintDiagnostic } from "../../lint/rule.js";
|
|
11
|
+
/** Import diagnostics as lint diagnostics against `file`, the template that was imported. */
|
|
12
|
+
export declare function importDiagnosticsToLint(file: string, diagnostics: readonly ImportDiagnostic[]): LintDiagnostic[];
|
|
13
|
+
/** The SARIF document for a run. */
|
|
14
|
+
export declare function importSarif(file: string, diagnostics: readonly ImportDiagnostic[], version?: string): string;
|
|
15
|
+
/** Write the SARIF report; an unwritable path is returned as a message, not thrown. */
|
|
16
|
+
export declare function writeImportReport(path: string, file: string, diagnostics: readonly ImportDiagnostic[], version?: string): string | undefined;
|
|
17
|
+
/** Diagnostics that are open: everything but `info`. */
|
|
18
|
+
export declare function openDiagnostics(diagnostics: readonly ImportDiagnostic[]): ImportDiagnostic[];
|
|
19
|
+
/**
|
|
20
|
+
* The exit code for a finished import. An `error` always fails (a failed
|
|
21
|
+
* `--validate`); a `warning` fails under `--strict`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function importExitCode(diagnostics: readonly ImportDiagnostic[] | undefined, strict: boolean): number;
|
|
24
|
+
/** Counts by severity and rule, as the lines printed after an import. */
|
|
25
|
+
export declare function summarizeImportDiagnostics(diagnostics: readonly ImportDiagnostic[]): string;
|
|
26
|
+
//# sourceMappingURL=import-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import-report.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD,6FAA6F;AAC7F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAUhH;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5G;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5I;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE5F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAI5G;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAY3F"}
|