@shrkcrft/cli 0.1.0-alpha.30 → 0.1.0-alpha.31
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/asset-preview/apply-asset-preview.js +1 -1
- package/dist/authoring/authoring-kit.d.ts +9 -1
- package/dist/authoring/authoring-kit.d.ts.map +1 -1
- package/dist/authoring/authoring-kit.js +26 -13
- package/dist/bootstrap/unlinked-workspace-dependency.d.ts +11 -0
- package/dist/bootstrap/unlinked-workspace-dependency.d.ts.map +1 -0
- package/dist/bootstrap/unlinked-workspace-dependency.js +99 -0
- package/dist/command-registry.d.ts +100 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +130 -3
- package/dist/commands/api-diff.command.d.ts.map +1 -1
- package/dist/commands/api-diff.command.js +12 -0
- package/dist/commands/apply.command.d.ts.map +1 -1
- package/dist/commands/apply.command.js +3 -0
- package/dist/commands/arch.command.d.ts.map +1 -1
- package/dist/commands/arch.command.js +26 -7
- package/dist/commands/architecture.command.d.ts.map +1 -1
- package/dist/commands/architecture.command.js +8 -2
- package/dist/commands/baseline.command.d.ts +54 -3
- package/dist/commands/baseline.command.d.ts.map +1 -1
- package/dist/commands/baseline.command.js +582 -74
- package/dist/commands/biome.command.d.ts.map +1 -1
- package/dist/commands/biome.command.js +20 -0
- package/dist/commands/boundaries.command.d.ts +9 -1
- package/dist/commands/boundaries.command.d.ts.map +1 -1
- package/dist/commands/boundaries.command.js +88 -20
- package/dist/commands/bundle.command.d.ts.map +1 -1
- package/dist/commands/bundle.command.js +57 -11
- package/dist/commands/cache-align.command.d.ts.map +1 -1
- package/dist/commands/cache-align.command.js +3 -1
- package/dist/commands/changelog-data.d.ts.map +1 -1
- package/dist/commands/changelog-data.js +138 -0
- package/dist/commands/changes.command.d.ts.map +1 -1
- package/dist/commands/changes.command.js +15 -0
- package/dist/commands/check.command.d.ts.map +1 -1
- package/dist/commands/check.command.js +1241 -322
- package/dist/commands/checks.command.d.ts.map +1 -1
- package/dist/commands/checks.command.js +188 -40
- package/dist/commands/ci.command.d.ts.map +1 -1
- package/dist/commands/ci.command.js +35 -2
- package/dist/commands/code-intel.command.d.ts.map +1 -1
- package/dist/commands/code-intel.command.js +3 -0
- package/dist/commands/command-catalog.d.ts +23 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/command-catalog.js +152 -35
- package/dist/commands/commands.command.d.ts +21 -3
- package/dist/commands/commands.command.d.ts.map +1 -1
- package/dist/commands/commands.command.js +172 -27
- package/dist/commands/compress.command.d.ts.map +1 -1
- package/dist/commands/compress.command.js +4 -0
- package/dist/commands/constructs.command.d.ts.map +1 -1
- package/dist/commands/constructs.command.js +50 -12
- package/dist/commands/context.command.d.ts.map +1 -1
- package/dist/commands/context.command.js +40 -5
- package/dist/commands/contract-templates.command.d.ts.map +1 -1
- package/dist/commands/contract-templates.command.js +9 -1
- package/dist/commands/contract.command.d.ts.map +1 -1
- package/dist/commands/contract.command.js +35 -0
- package/dist/commands/conventions.command.d.ts.map +1 -1
- package/dist/commands/conventions.command.js +189 -29
- package/dist/commands/coverage.command.d.ts.map +1 -1
- package/dist/commands/coverage.command.js +9 -0
- package/dist/commands/daily.commands.d.ts +0 -1
- package/dist/commands/daily.commands.d.ts.map +1 -1
- package/dist/commands/daily.commands.js +12 -76
- package/dist/commands/dashboard.command.d.ts.map +1 -1
- package/dist/commands/dashboard.command.js +10 -0
- package/dist/commands/dev.command.d.ts.map +1 -1
- package/dist/commands/dev.command.js +45 -2
- package/dist/commands/diagnostics.command.d.ts +0 -2
- package/dist/commands/diagnostics.command.d.ts.map +1 -1
- package/dist/commands/diagnostics.command.js +5 -78
- package/dist/commands/diff-check.command.d.ts +6 -4
- package/dist/commands/diff-check.command.d.ts.map +1 -1
- package/dist/commands/diff-check.command.js +190 -103
- package/dist/commands/docs-references.command.d.ts +13 -0
- package/dist/commands/docs-references.command.d.ts.map +1 -1
- package/dist/commands/docs-references.command.js +269 -72
- package/dist/commands/doctor.command.d.ts.map +1 -1
- package/dist/commands/doctor.command.js +58 -4
- package/dist/commands/drift.command.d.ts.map +1 -1
- package/dist/commands/drift.command.js +17 -4
- package/dist/commands/eslint.command.d.ts.map +1 -1
- package/dist/commands/eslint.command.js +20 -0
- package/dist/commands/export.command.d.ts.map +1 -1
- package/dist/commands/export.command.js +23 -1
- package/dist/commands/feedback-dispatch.command.d.ts.map +1 -1
- package/dist/commands/feedback-dispatch.command.js +29 -0
- package/dist/commands/feedback.command.d.ts.map +1 -1
- package/dist/commands/feedback.command.js +6 -1
- package/dist/commands/finish.command.d.ts.map +1 -1
- package/dist/commands/finish.command.js +32 -8
- package/dist/commands/fix.command.d.ts.map +1 -1
- package/dist/commands/fix.command.js +19 -0
- package/dist/commands/gate.command.d.ts +6 -1
- package/dist/commands/gate.command.d.ts.map +1 -1
- package/dist/commands/gate.command.js +50 -124
- package/dist/commands/gates.command.d.ts +52 -0
- package/dist/commands/gates.command.d.ts.map +1 -1
- package/dist/commands/gates.command.js +811 -185
- package/dist/commands/gen.command.d.ts.map +1 -1
- package/dist/commands/gen.command.js +4 -0
- package/dist/commands/generated.command.d.ts +33 -3
- package/dist/commands/generated.command.d.ts.map +1 -1
- package/dist/commands/generated.command.js +499 -147
- package/dist/commands/graph-code-subverbs.d.ts +15 -0
- package/dist/commands/graph-code-subverbs.d.ts.map +1 -1
- package/dist/commands/graph-code-subverbs.js +198 -24
- package/dist/commands/graph.command.d.ts.map +1 -1
- package/dist/commands/graph.command.js +79 -37
- package/dist/commands/help.command.d.ts +30 -6
- package/dist/commands/help.command.d.ts.map +1 -1
- package/dist/commands/help.command.js +323 -199
- package/dist/commands/helper.command.d.ts +1 -0
- package/dist/commands/helper.command.d.ts.map +1 -1
- package/dist/commands/helper.command.js +195 -56
- package/dist/commands/impact.command.d.ts.map +1 -1
- package/dist/commands/impact.command.js +115 -12
- package/dist/commands/infer.command.d.ts.map +1 -1
- package/dist/commands/infer.command.js +20 -45
- package/dist/commands/ingest.command.d.ts +0 -1
- package/dist/commands/ingest.command.d.ts.map +1 -1
- package/dist/commands/ingest.command.js +25 -41
- package/dist/commands/knowledge-author.command.d.ts +0 -3
- package/dist/commands/knowledge-author.command.d.ts.map +1 -1
- package/dist/commands/knowledge-author.command.js +10 -23
- package/dist/commands/knowledge.command.d.ts.map +1 -1
- package/dist/commands/knowledge.command.js +469 -129
- package/dist/commands/languages.command.d.ts.map +1 -1
- package/dist/commands/languages.command.js +27 -0
- package/dist/commands/lint.command.d.ts.map +1 -1
- package/dist/commands/lint.command.js +3 -0
- package/dist/commands/mcp.command.d.ts +18 -0
- package/dist/commands/mcp.command.d.ts.map +1 -1
- package/dist/commands/mcp.command.js +33 -8
- package/dist/commands/onboard.command.d.ts.map +1 -1
- package/dist/commands/onboard.command.js +20 -0
- package/dist/commands/owners.command.d.ts.map +1 -1
- package/dist/commands/owners.command.js +14 -2
- package/dist/commands/packs-new.d.ts +13 -1
- package/dist/commands/packs-new.d.ts.map +1 -1
- package/dist/commands/packs-new.js +500 -335
- package/dist/commands/packs.command.d.ts.map +1 -1
- package/dist/commands/packs.command.js +378 -36
- package/dist/commands/paths.command.d.ts.map +1 -1
- package/dist/commands/paths.command.js +9 -1
- package/dist/commands/pipelines.command.d.ts.map +1 -1
- package/dist/commands/pipelines.command.js +7 -1
- package/dist/commands/plan-check.command.d.ts.map +1 -1
- package/dist/commands/plan-check.command.js +3 -0
- package/dist/commands/plan.command.d.ts.map +1 -1
- package/dist/commands/plan.command.js +3 -0
- package/dist/commands/playbooks.command.d.ts.map +1 -1
- package/dist/commands/playbooks.command.js +7 -2
- package/dist/commands/policy-lint.command.d.ts +19 -2
- package/dist/commands/policy-lint.command.d.ts.map +1 -1
- package/dist/commands/policy-lint.command.js +224 -65
- package/dist/commands/policy.command.d.ts.map +1 -1
- package/dist/commands/policy.command.js +6 -1
- package/dist/commands/pr.command.d.ts.map +1 -1
- package/dist/commands/pr.command.js +14 -0
- package/dist/commands/presets.command.d.ts.map +1 -1
- package/dist/commands/presets.command.js +12 -27
- package/dist/commands/profiles.command.d.ts.map +1 -1
- package/dist/commands/profiles.command.js +94 -26
- package/dist/commands/provenance.command.js +1 -1
- package/dist/commands/quality.command.d.ts.map +1 -1
- package/dist/commands/quality.command.js +129 -33
- package/dist/commands/recommend.command.d.ts +20 -4
- package/dist/commands/recommend.command.d.ts.map +1 -1
- package/dist/commands/recommend.command.js +172 -278
- package/dist/commands/registrations.command.d.ts.map +1 -1
- package/dist/commands/registrations.command.js +138 -13
- package/dist/commands/registry-lifecycle-run.d.ts +14 -0
- package/dist/commands/registry-lifecycle-run.d.ts.map +1 -0
- package/dist/commands/registry-lifecycle-run.js +336 -0
- package/dist/commands/registry.command.d.ts.map +1 -1
- package/dist/commands/registry.command.js +235 -62
- package/dist/commands/release.command.d.ts.map +1 -1
- package/dist/commands/release.command.js +99 -20
- package/dist/commands/report.command.d.ts.map +1 -1
- package/dist/commands/report.command.js +38 -2
- package/dist/commands/reuse-coverage.command.d.ts +23 -0
- package/dist/commands/reuse-coverage.command.d.ts.map +1 -0
- package/dist/commands/reuse-coverage.command.js +536 -0
- package/dist/commands/reuse.command.d.ts +3 -18
- package/dist/commands/reuse.command.d.ts.map +1 -1
- package/dist/commands/reuse.command.js +395 -244
- package/dist/commands/review.command.d.ts.map +1 -1
- package/dist/commands/review.command.js +33 -1
- package/dist/commands/rounds.command.d.ts.map +1 -1
- package/dist/commands/rounds.command.js +5 -0
- package/dist/commands/safety.command.d.ts.map +1 -1
- package/dist/commands/safety.command.js +9 -0
- package/dist/commands/scaffolds.command.d.ts.map +1 -1
- package/dist/commands/scaffolds.command.js +97 -25
- package/dist/commands/search.command.d.ts +0 -8
- package/dist/commands/search.command.d.ts.map +1 -1
- package/dist/commands/search.command.js +136 -28
- package/dist/commands/self-config-xrefs.command.d.ts +24 -0
- package/dist/commands/self-config-xrefs.command.d.ts.map +1 -0
- package/dist/commands/self-config-xrefs.command.js +170 -0
- package/dist/commands/self-config.command.d.ts.map +1 -1
- package/dist/commands/self-config.command.js +261 -65
- package/dist/commands/smart-context.command.d.ts.map +1 -1
- package/dist/commands/smart-context.command.js +39 -3
- package/dist/commands/spec.command.d.ts.map +1 -1
- package/dist/commands/spec.command.js +3 -0
- package/dist/commands/stats.command.d.ts.map +1 -1
- package/dist/commands/stats.command.js +3 -0
- package/dist/commands/surface.command.d.ts +6 -1
- package/dist/commands/surface.command.d.ts.map +1 -1
- package/dist/commands/surface.command.js +256 -54
- package/dist/commands/task-context.command.js +1 -1
- package/dist/commands/task.command.d.ts.map +1 -1
- package/dist/commands/task.command.js +22 -1
- package/dist/commands/templates.command.d.ts +4 -0
- package/dist/commands/templates.command.d.ts.map +1 -1
- package/dist/commands/templates.command.js +109 -22
- package/dist/commands/test.command.d.ts.map +1 -1
- package/dist/commands/test.command.js +161 -33
- package/dist/commands/tests.command.d.ts.map +1 -1
- package/dist/commands/tests.command.js +29 -3
- package/dist/commands/trace.command.d.ts.map +1 -1
- package/dist/commands/trace.command.js +29 -4
- package/dist/commands/watch.command.d.ts.map +1 -1
- package/dist/commands/watch.command.js +3 -0
- package/dist/commands/why.command.d.ts.map +1 -1
- package/dist/commands/why.command.js +3 -0
- package/dist/commands/wiring.command.d.ts +18 -4
- package/dist/commands/wiring.command.d.ts.map +1 -1
- package/dist/commands/wiring.command.js +360 -73
- package/dist/dashboard/code-intelligence-data.js +4 -4
- package/dist/diff/deleted-orphan-coverage.d.ts +32 -0
- package/dist/diff/deleted-orphan-coverage.d.ts.map +1 -0
- package/dist/diff/deleted-orphan-coverage.js +107 -0
- package/dist/diff/deleted-orphan-scope-notes.d.ts +23 -0
- package/dist/diff/deleted-orphan-scope-notes.d.ts.map +1 -0
- package/dist/diff/deleted-orphan-scope-notes.js +49 -0
- package/dist/diff/deleted-orphans.d.ts +32 -0
- package/dist/diff/deleted-orphans.d.ts.map +1 -1
- package/dist/diff/deleted-orphans.js +42 -2
- package/dist/dispatch/closest-match.d.ts +15 -0
- package/dist/dispatch/closest-match.d.ts.map +1 -0
- package/dist/dispatch/closest-match.js +47 -0
- package/dist/dispatch/global-flags.d.ts +94 -0
- package/dist/dispatch/global-flags.d.ts.map +1 -0
- package/dist/dispatch/global-flags.js +123 -0
- package/dist/dispatch/guard-invocation-input.d.ts +24 -0
- package/dist/dispatch/guard-invocation-input.d.ts.map +1 -0
- package/dist/dispatch/guard-invocation-input.js +1 -0
- package/dist/dispatch/guard-invocation.d.ts +33 -0
- package/dist/dispatch/guard-invocation.d.ts.map +1 -0
- package/dist/dispatch/guard-invocation.js +183 -0
- package/dist/dispatch/help-intercept.d.ts +22 -0
- package/dist/dispatch/help-intercept.d.ts.map +1 -0
- package/dist/dispatch/help-intercept.js +42 -0
- package/dist/dispatch/i-declared-invocation.d.ts +17 -0
- package/dist/dispatch/i-declared-invocation.d.ts.map +1 -0
- package/dist/dispatch/i-declared-invocation.js +1 -0
- package/dist/dispatch/i-unknown-flag-refusal-input.d.ts +28 -0
- package/dist/dispatch/i-unknown-flag-refusal-input.d.ts.map +1 -0
- package/dist/dispatch/i-unknown-flag-refusal-input.js +1 -0
- package/dist/dispatch/invocation-rejection-kind.d.ts +15 -0
- package/dist/dispatch/invocation-rejection-kind.d.ts.map +1 -0
- package/dist/dispatch/invocation-rejection-kind.js +15 -0
- package/dist/dispatch/invocation-rejection.d.ts +18 -0
- package/dist/dispatch/invocation-rejection.d.ts.map +1 -0
- package/dist/dispatch/invocation-rejection.js +1 -0
- package/dist/dispatch/judge-invocation.d.ts +24 -0
- package/dist/dispatch/judge-invocation.d.ts.map +1 -0
- package/dist/dispatch/judge-invocation.js +50 -0
- package/dist/dispatch/positional-mode.d.ts +18 -0
- package/dist/dispatch/positional-mode.d.ts.map +1 -0
- package/dist/dispatch/positional-mode.js +18 -0
- package/dist/dispatch/read-tracking-map.d.ts +28 -0
- package/dist/dispatch/read-tracking-map.d.ts.map +1 -0
- package/dist/dispatch/read-tracking-map.js +58 -0
- package/dist/dispatch/refuse-sibling-valve-flags.d.ts +30 -0
- package/dist/dispatch/refuse-sibling-valve-flags.d.ts.map +1 -0
- package/dist/dispatch/refuse-sibling-valve-flags.js +65 -0
- package/dist/dispatch/subverb-spec.d.ts +26 -0
- package/dist/dispatch/subverb-spec.d.ts.map +1 -0
- package/dist/dispatch/subverb-spec.js +1 -0
- package/dist/dispatch/undocumented-flag-reads.d.ts +22 -0
- package/dist/dispatch/undocumented-flag-reads.d.ts.map +1 -0
- package/dist/dispatch/undocumented-flag-reads.js +283 -0
- package/dist/dispatch/unknown-flag-refusal-mode.d.ts +13 -0
- package/dist/dispatch/unknown-flag-refusal-mode.d.ts.map +1 -0
- package/dist/dispatch/unknown-flag-refusal-mode.js +13 -0
- package/dist/dispatch/unknown-flag-refusal.d.ts +22 -0
- package/dist/dispatch/unknown-flag-refusal.d.ts.map +1 -0
- package/dist/dispatch/unknown-flag-refusal.js +57 -0
- package/dist/dispatch/unread-flags.d.ts +152 -0
- package/dist/dispatch/unread-flags.d.ts.map +1 -0
- package/dist/dispatch/unread-flags.js +295 -0
- package/dist/dispatch/verdict-valve-flag.d.ts +21 -0
- package/dist/dispatch/verdict-valve-flag.d.ts.map +1 -0
- package/dist/dispatch/verdict-valve-flag.js +21 -0
- package/dist/dispatch/walk-declared-subverbs.d.ts +14 -0
- package/dist/dispatch/walk-declared-subverbs.d.ts.map +1 -0
- package/dist/dispatch/walk-declared-subverbs.js +28 -0
- package/dist/exit-codes.d.ts +41 -3
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +153 -14
- package/dist/finish/run-finish.d.ts +72 -5
- package/dist/finish/run-finish.d.ts.map +1 -1
- package/dist/finish/run-finish.js +453 -104
- package/dist/gates/accepted-empty-note.d.ts +10 -0
- package/dist/gates/accepted-empty-note.d.ts.map +1 -0
- package/dist/gates/accepted-empty-note.js +11 -0
- package/dist/gates/allow-empty.d.ts +25 -0
- package/dist/gates/allow-empty.d.ts.map +1 -0
- package/dist/gates/allow-empty.js +27 -0
- package/dist/gates/asset-doctor-failing-units.d.ts +16 -0
- package/dist/gates/asset-doctor-failing-units.d.ts.map +1 -0
- package/dist/gates/asset-doctor-failing-units.js +14 -0
- package/dist/gates/asset-doctor-failure-line.d.ts +16 -0
- package/dist/gates/asset-doctor-failure-line.d.ts.map +1 -0
- package/dist/gates/asset-doctor-failure-line.js +28 -0
- package/dist/gates/empty-rule-advice-lines.d.ts +15 -0
- package/dist/gates/empty-rule-advice-lines.d.ts.map +1 -0
- package/dist/gates/empty-rule-advice-lines.js +20 -0
- package/dist/gates/gate-envelope.d.ts +85 -8
- package/dist/gates/gate-envelope.d.ts.map +1 -1
- package/dist/gates/gate-envelope.js +56 -7
- package/dist/gates/gate-rule-globs.d.ts +37 -3
- package/dist/gates/gate-rule-globs.d.ts.map +1 -1
- package/dist/gates/gate-rule-globs.js +78 -40
- package/dist/gates/gate-rule-view.d.ts +17 -4
- package/dist/gates/gate-rule-view.d.ts.map +1 -1
- package/dist/gates/gate-rule-view.js +105 -90
- package/dist/gates/i-coverage-dead-glob.d.ts +19 -0
- package/dist/gates/i-coverage-dead-glob.d.ts.map +1 -0
- package/dist/gates/i-coverage-dead-glob.js +1 -0
- package/dist/gates/i-coverage-negation.d.ts +13 -0
- package/dist/gates/i-coverage-negation.d.ts.map +1 -0
- package/dist/gates/i-coverage-negation.js +1 -0
- package/dist/gates/i-registration-query-settle-input.d.ts +18 -0
- package/dist/gates/i-registration-query-settle-input.d.ts.map +1 -0
- package/dist/gates/i-registration-query-settle-input.js +1 -0
- package/dist/gates/i-unit-state-note-row.d.ts +16 -0
- package/dist/gates/i-unit-state-note-row.d.ts.map +1 -0
- package/dist/gates/i-unit-state-note-row.js +1 -0
- package/dist/gates/i-unit-state-notes.d.ts +32 -0
- package/dist/gates/i-unit-state-notes.d.ts.map +1 -0
- package/dist/gates/i-unit-state-notes.js +1 -0
- package/dist/gates/incomplete-registry-inventory.d.ts +19 -0
- package/dist/gates/incomplete-registry-inventory.d.ts.map +1 -0
- package/dist/gates/incomplete-registry-inventory.js +63 -0
- package/dist/gates/measure-registration-roles.d.ts +10 -0
- package/dist/gates/measure-registration-roles.d.ts.map +1 -0
- package/dist/gates/measure-registration-roles.js +9 -0
- package/dist/gates/plane-verdict.d.ts +14 -0
- package/dist/gates/plane-verdict.d.ts.map +1 -0
- package/dist/gates/plane-verdict.js +22 -0
- package/dist/gates/qualify-clean-for-units.d.ts +12 -0
- package/dist/gates/qualify-clean-for-units.d.ts.map +1 -0
- package/dist/gates/qualify-clean-for-units.js +18 -0
- package/dist/gates/registration-graph-verdict.d.ts +34 -0
- package/dist/gates/registration-graph-verdict.d.ts.map +1 -0
- package/dist/gates/registration-graph-verdict.js +70 -0
- package/dist/gates/registration-roles.d.ts +9 -0
- package/dist/gates/registration-roles.d.ts.map +1 -0
- package/dist/gates/registration-roles.js +1 -0
- package/dist/gates/registry-liveness.d.ts +11 -0
- package/dist/gates/registry-liveness.d.ts.map +1 -0
- package/dist/gates/registry-liveness.js +13 -0
- package/dist/gates/rule-coverage.d.ts +187 -4
- package/dist/gates/rule-coverage.d.ts.map +1 -1
- package/dist/gates/rule-coverage.js +501 -49
- package/dist/gates/run-gate-planes.d.ts +14 -0
- package/dist/gates/run-gate-planes.d.ts.map +1 -1
- package/dist/gates/run-gate-planes.js +172 -30
- package/dist/gates/scaffold-selftest.d.ts +56 -0
- package/dist/gates/scaffold-selftest.d.ts.map +1 -0
- package/dist/gates/scaffold-selftest.js +119 -0
- package/dist/gates/seam-rejected-rules.d.ts +28 -0
- package/dist/gates/seam-rejected-rules.d.ts.map +1 -0
- package/dist/gates/seam-rejected-rules.js +95 -0
- package/dist/gates/self-test-check.d.ts +29 -0
- package/dist/gates/self-test-check.d.ts.map +1 -0
- package/dist/gates/self-test-check.js +1 -0
- package/dist/gates/self-test-subject.d.ts +28 -0
- package/dist/gates/self-test-subject.d.ts.map +1 -0
- package/dist/gates/self-test-subject.js +1 -0
- package/dist/gates/self-test.d.ts +20 -0
- package/dist/gates/self-test.d.ts.map +1 -0
- package/dist/gates/self-test.js +82 -0
- package/dist/gates/settle-verdict.d.ts +14 -0
- package/dist/gates/settle-verdict.d.ts.map +1 -0
- package/dist/gates/settle-verdict.js +13 -0
- package/dist/gates/settled-verdict.d.ts +8 -0
- package/dist/gates/settled-verdict.d.ts.map +1 -0
- package/dist/gates/settled-verdict.js +1 -0
- package/dist/gates/template-registry-coverage.d.ts +18 -0
- package/dist/gates/template-registry-coverage.d.ts.map +1 -0
- package/dist/gates/template-registry-coverage.js +24 -0
- package/dist/gates/unit-state-notes.d.ts +40 -0
- package/dist/gates/unit-state-notes.d.ts.map +1 -0
- package/dist/gates/unit-state-notes.js +71 -0
- package/dist/gates/verdict-line.d.ts +18 -0
- package/dist/gates/verdict-line.d.ts.map +1 -0
- package/dist/gates/verdict-line.js +40 -0
- package/dist/graph/graph-reuse-lookup.d.ts +10 -0
- package/dist/graph/graph-reuse-lookup.d.ts.map +1 -0
- package/dist/graph/graph-reuse-lookup.js +41 -0
- package/dist/graph/index-behind-hint.d.ts +11 -0
- package/dist/graph/index-behind-hint.d.ts.map +1 -0
- package/dist/graph/index-behind-hint.js +27 -0
- package/dist/knowledge/knowledge-stale-gate-flags.d.ts +3 -0
- package/dist/knowledge/knowledge-stale-gate-flags.d.ts.map +1 -0
- package/dist/knowledge/knowledge-stale-gate-flags.js +1 -0
- package/dist/knowledge/knowledge-stale-gate-input.d.ts +3 -0
- package/dist/knowledge/knowledge-stale-gate-input.d.ts.map +1 -0
- package/dist/knowledge/knowledge-stale-gate-input.js +1 -0
- package/dist/knowledge/knowledge-stale-gate-result.d.ts +3 -0
- package/dist/knowledge/knowledge-stale-gate-result.d.ts.map +1 -0
- package/dist/knowledge/knowledge-stale-gate-result.js +1 -0
- package/dist/knowledge/knowledge-stale-gate.d.ts +10 -0
- package/dist/knowledge/knowledge-stale-gate.d.ts.map +1 -0
- package/dist/knowledge/knowledge-stale-gate.js +9 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +200 -83
- package/dist/output/failure-hints.d.ts.map +1 -1
- package/dist/output/failure-hints.js +11 -9
- package/dist/output/rejected-entries-note.d.ts +57 -0
- package/dist/output/rejected-entries-note.d.ts.map +1 -0
- package/dist/output/rejected-entries-note.js +103 -0
- package/dist/output/stdout-is-pipe.d.ts +13 -0
- package/dist/output/stdout-is-pipe.d.ts.map +1 -0
- package/dist/output/stdout-is-pipe.js +21 -0
- package/dist/packs/stale-build-warning.d.ts +11 -0
- package/dist/packs/stale-build-warning.d.ts.map +1 -0
- package/dist/packs/stale-build-warning.js +23 -0
- package/dist/quality/run-quality.d.ts +123 -0
- package/dist/quality/run-quality.d.ts.map +1 -0
- package/dist/quality/run-quality.js +442 -0
- package/dist/schemas/json-schemas.d.ts +184 -3
- package/dist/schemas/json-schemas.d.ts.map +1 -1
- package/dist/schemas/json-schemas.js +113 -2
- package/dist/shrk.d.ts +3 -0
- package/dist/shrk.d.ts.map +1 -0
- package/dist/shrk.js +30 -0
- package/dist/surface/audience-applicability.d.ts +26 -0
- package/dist/surface/audience-applicability.d.ts.map +1 -0
- package/dist/surface/audience-applicability.js +60 -0
- package/dist/surface/catalog-command-safety.d.ts +18 -0
- package/dist/surface/catalog-command-safety.d.ts.map +1 -0
- package/dist/surface/catalog-command-safety.js +62 -0
- package/dist/surface/cli-command-resolver.d.ts +21 -0
- package/dist/surface/cli-command-resolver.d.ts.map +1 -0
- package/dist/surface/cli-command-resolver.js +87 -0
- package/dist/surface/command-dispatch-kind.d.ts +20 -0
- package/dist/surface/command-dispatch-kind.d.ts.map +1 -0
- package/dist/surface/command-dispatch-kind.js +20 -0
- package/dist/surface/command-index-entry.d.ts +40 -0
- package/dist/surface/command-index-entry.d.ts.map +1 -0
- package/dist/surface/command-index-entry.js +1 -0
- package/dist/surface/command-index.d.ts +77 -0
- package/dist/surface/command-index.d.ts.map +1 -0
- package/dist/surface/command-index.js +323 -0
- package/dist/surface/i-command-index.d.ts +22 -0
- package/dist/surface/i-command-index.d.ts.map +1 -0
- package/dist/surface/i-command-index.js +1 -0
- package/dist/surface/i-command-string-context.d.ts +20 -0
- package/dist/surface/i-command-string-context.d.ts.map +1 -0
- package/dist/surface/i-command-string-context.js +1 -0
- package/dist/surface/i-surface-denial.d.ts +13 -0
- package/dist/surface/i-surface-denial.d.ts.map +1 -0
- package/dist/surface/i-surface-denial.js +1 -0
- package/dist/surface/load-surface-context.d.ts +17 -1
- package/dist/surface/load-surface-context.d.ts.map +1 -1
- package/dist/surface/load-surface-context.js +48 -10
- package/dist/surface/not-enabled-error.d.ts +38 -4
- package/dist/surface/not-enabled-error.d.ts.map +1 -1
- package/dist/surface/not-enabled-error.js +96 -6
- package/dist/surface/profiles.d.ts +7 -0
- package/dist/surface/profiles.d.ts.map +1 -1
- package/dist/surface/resolve-command-string.d.ts +10 -0
- package/dist/surface/resolve-command-string.d.ts.map +1 -0
- package/dist/surface/resolve-command-string.js +572 -0
- package/dist/surface/surface-config-writer.d.ts +7 -2
- package/dist/surface/surface-config-writer.d.ts.map +1 -1
- package/dist/surface/surface-config-writer.js +25 -6
- package/dist/surface/surface-layer.d.ts +11 -0
- package/dist/surface/surface-layer.d.ts.map +1 -0
- package/dist/surface/surface-layer.js +11 -0
- package/dist/surface/surface-refusal-reason.d.ts +16 -0
- package/dist/surface/surface-refusal-reason.d.ts.map +1 -0
- package/dist/surface/surface-refusal-reason.js +16 -0
- package/dist/surface/surface-selector.d.ts +26 -0
- package/dist/surface/surface-selector.d.ts.map +1 -0
- package/dist/surface/surface-selector.js +42 -0
- package/dist/surface/surface-summary.d.ts +61 -18
- package/dist/surface/surface-summary.d.ts.map +1 -1
- package/dist/surface/surface-summary.js +147 -60
- package/dist/surface/tier.d.ts +85 -22
- package/dist/surface/tier.d.ts.map +1 -1
- package/dist/surface/tier.js +132 -30
- package/dist/usage/usage-log.d.ts +6 -1
- package/dist/usage/usage-log.d.ts.map +1 -1
- package/dist/usage/usage-log.js +7 -2
- package/dist/validation/run-validation-loop.d.ts +9 -0
- package/dist/validation/run-validation-loop.d.ts.map +1 -1
- package/dist/validation/run-validation-loop.js +14 -11
- package/dist/validation/typecheck-emitted.d.ts +8 -9
- package/dist/validation/typecheck-emitted.d.ts.map +1 -1
- package/dist/validation/typecheck-emitted.js +17 -97
- package/package.json +34 -34
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { resolveSourceGlobs, } from '@shrkcrft/core';
|
|
2
|
-
import {
|
|
2
|
+
import { globListSelects, wiringLabeledSources } from '@shrkcrft/boundaries';
|
|
3
3
|
/**
|
|
4
|
-
* The FOOTPRINT of a gate rule
|
|
4
|
+
* The FOOTPRINT of a gate rule, as the glob LISTS it reads — one per source's
|
|
5
|
+
* `files`, per `import-edges` `to.files`, per watched input, per generated
|
|
6
|
+
* writer. Kept as separate lists because a `!` entry subtracts from ITS OWN
|
|
7
|
+
* list only: flattened, one source's `!x` would hide a file another source
|
|
8
|
+
* reads (and a changeset touching x would skip a rule it does touch).
|
|
5
9
|
*
|
|
6
10
|
* `--changed-only` is only trustworthy if the footprint is complete. A rule
|
|
7
11
|
* scoped by its declared side alone would go unevaluated when the change edits
|
|
@@ -9,39 +13,53 @@ import { matchesAny } from '@shrkcrft/boundaries';
|
|
|
9
13
|
* rule declared over file A is the precise bug this plane exists to catch, so
|
|
10
14
|
* every side, every hop, and every watched input counts.
|
|
11
15
|
*/
|
|
12
|
-
export function
|
|
13
|
-
if (view.plane === 'policy')
|
|
14
|
-
|
|
16
|
+
export function gateRuleGlobLists(view) {
|
|
17
|
+
if (view.plane === 'policy') {
|
|
18
|
+
const files = view.raw.files ?? [];
|
|
19
|
+
return files.length > 0 ? [files] : [];
|
|
20
|
+
}
|
|
15
21
|
if (view.plane === 'baseline') {
|
|
16
22
|
const rule = view.raw;
|
|
17
23
|
// `watchFiles` is the ONLY footprint a command compute has — without it a
|
|
18
24
|
// command baseline can never be scoped, so it always runs (see below).
|
|
19
25
|
return [
|
|
20
|
-
...gateRuleSources(view).flatMap(
|
|
21
|
-
...(rule.watchFiles
|
|
22
|
-
rule
|
|
26
|
+
...gateRuleSources(view).flatMap(sourceGlobLists),
|
|
27
|
+
...(rule.watchFiles && rule.watchFiles.length > 0 ? [rule.watchFiles] : []),
|
|
28
|
+
// A ceiling rule has no committed artifact — its pinned value is the
|
|
29
|
+
// number in the config, so its footprint is its compute alone.
|
|
30
|
+
...(rule.baseline ? [[rule.baseline]] : []),
|
|
23
31
|
];
|
|
24
32
|
}
|
|
25
33
|
if (view.plane === 'generated') {
|
|
26
34
|
const rule = view.raw;
|
|
27
35
|
return [
|
|
28
|
-
|
|
29
|
-
...(rule.sources ?? []).
|
|
30
|
-
...(rule.handMaintained
|
|
36
|
+
rule.generatedGlob,
|
|
37
|
+
...(rule.sources ?? []).map((s) => s.glob),
|
|
38
|
+
...(rule.handMaintained && rule.handMaintained.length > 0 ? [rule.handMaintained] : []),
|
|
31
39
|
];
|
|
32
40
|
}
|
|
33
|
-
return gateRuleSources(view).flatMap(
|
|
41
|
+
return gateRuleSources(view).flatMap(sourceGlobLists);
|
|
34
42
|
}
|
|
35
43
|
/**
|
|
36
|
-
* Every glob
|
|
44
|
+
* Every glob a gate rule reads, flattened — for DISPLAY only. A scope question
|
|
45
|
+
* ("does this change touch the rule?") goes through {@link gateRuleGlobLists}
|
|
46
|
+
* per list ({@link ruleTouchedBy}), never through this union.
|
|
47
|
+
*/
|
|
48
|
+
export function gateRuleGlobs(view) {
|
|
49
|
+
return gateRuleGlobLists(view).flat();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The glob lists one source reads: the files it scans, plus an `import-edges`
|
|
37
53
|
* source's TARGET globs.
|
|
38
54
|
*
|
|
39
55
|
* A fence whose footprint covered only the consumer side would go unevaluated
|
|
40
56
|
* when the target subtree moved — and "cannot be proven out of scope" must
|
|
41
57
|
* always resolve to staying IN scope, never to a quiet skip.
|
|
42
58
|
*/
|
|
43
|
-
function
|
|
44
|
-
|
|
59
|
+
function sourceGlobLists(src) {
|
|
60
|
+
const files = resolveSourceGlobs(src);
|
|
61
|
+
const to = src.to?.files ?? [];
|
|
62
|
+
return [...(files.length > 0 ? [files] : []), ...(to.length > 0 ? [to] : [])];
|
|
45
63
|
}
|
|
46
64
|
/**
|
|
47
65
|
* EVERY extraction source a rule reads — both wiring sides, every union sink,
|
|
@@ -54,30 +72,44 @@ function sourceGlobs(src) {
|
|
|
54
72
|
* the guarantee the shared extractor exists to provide.
|
|
55
73
|
*/
|
|
56
74
|
export function gateRuleSources(view) {
|
|
75
|
+
return gateRuleLabeledSources(view).map((s) => s.source);
|
|
76
|
+
}
|
|
77
|
+
/** A registry's sources, named `source` / `consumer` — THE labels its markers and dead units are qualified by. */
|
|
78
|
+
export function registryLabeledSources(decl) {
|
|
79
|
+
return decl.consumer
|
|
80
|
+
? [
|
|
81
|
+
{ label: 'source', source: decl.source },
|
|
82
|
+
{ label: 'consumer', source: decl.consumer },
|
|
83
|
+
]
|
|
84
|
+
: [{ label: 'source', source: decl.source }];
|
|
85
|
+
}
|
|
86
|
+
/** A registration idiom's roles, named `declared` / `provided` / `consumed` — the labels `measureRegistrationRoles` settles them under. */
|
|
87
|
+
export function registrationLabeledSources(idiom) {
|
|
88
|
+
return [
|
|
89
|
+
{ label: 'declared', source: idiom.declared },
|
|
90
|
+
{ label: 'provided', source: idiom.provided },
|
|
91
|
+
{ label: 'consumed', source: idiom.consumed },
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* {@link gateRuleSources}, each named by the side it plays (`declared`,
|
|
96
|
+
* `registered[1]`, `chain[0]`, `consumer`, …) — the ONE enumeration of a
|
|
97
|
+
* rule's sources, so a report naming a dead glob by its side cannot list a
|
|
98
|
+
* different set of sides than the extractor-consumer report does.
|
|
99
|
+
*/
|
|
100
|
+
export function gateRuleLabeledSources(view) {
|
|
57
101
|
switch (view.plane) {
|
|
58
|
-
case 'wiring':
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
: []),
|
|
67
|
-
...(rule.chain ?? []),
|
|
68
|
-
].filter((s) => s !== undefined);
|
|
69
|
-
}
|
|
70
|
-
case 'registry': {
|
|
71
|
-
const decl = view.raw;
|
|
72
|
-
return decl.consumer ? [decl.source, decl.consumer] : [decl.source];
|
|
73
|
-
}
|
|
74
|
-
case 'registration': {
|
|
75
|
-
const idiom = view.raw;
|
|
76
|
-
return [idiom.declared, idiom.provided, idiom.consumed];
|
|
77
|
-
}
|
|
102
|
+
case 'wiring':
|
|
103
|
+
// THE wiring side labels (round 13) — the engine's own enumeration, so a
|
|
104
|
+
// unit is named by one side label here and in `check wiring`.
|
|
105
|
+
return wiringLabeledSources(view.raw);
|
|
106
|
+
case 'registry':
|
|
107
|
+
return registryLabeledSources(view.raw);
|
|
108
|
+
case 'registration':
|
|
109
|
+
return registrationLabeledSources(view.raw);
|
|
78
110
|
case 'baseline': {
|
|
79
111
|
const source = view.raw.compute.source;
|
|
80
|
-
return source ? [source] : [];
|
|
112
|
+
return source ? [{ label: 'compute.source', source }] : [];
|
|
81
113
|
}
|
|
82
114
|
default:
|
|
83
115
|
// `policy` and `generated` select files by glob, not by an extraction
|
|
@@ -86,7 +118,11 @@ export function gateRuleSources(view) {
|
|
|
86
118
|
}
|
|
87
119
|
}
|
|
88
120
|
/**
|
|
89
|
-
* Whether a rule's footprint intersects the changed set
|
|
121
|
+
* Whether a rule's footprint intersects the changed set: some changed file is
|
|
122
|
+
* SELECTED by one of the rule's glob lists (`globListSelects` — an inclusion
|
|
123
|
+
* glob matches, none of that list's negations does). Exact per list, so a
|
|
124
|
+
* changeset touching only files the rule excludes does not select it, and one
|
|
125
|
+
* source's `!` can never hide another source's file.
|
|
90
126
|
*
|
|
91
127
|
* A rule with NO resolvable footprint (a command baseline with no
|
|
92
128
|
* `watchFiles`) cannot be proven out of scope, so it stays IN scope. Guessing
|
|
@@ -94,8 +130,10 @@ export function gateRuleSources(view) {
|
|
|
94
130
|
* the one thing that broke.
|
|
95
131
|
*/
|
|
96
132
|
export function ruleTouchedBy(view, changed) {
|
|
97
|
-
const
|
|
98
|
-
|
|
133
|
+
const lists = gateRuleGlobLists(view)
|
|
134
|
+
.map((l) => l.filter((g) => g.length > 0))
|
|
135
|
+
.filter((l) => l.length > 0);
|
|
136
|
+
if (lists.length === 0)
|
|
99
137
|
return true;
|
|
100
|
-
return changed.some((file) =>
|
|
138
|
+
return lists.some((l) => changed.some((file) => globListSelects(file, l)));
|
|
101
139
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { type IBaselineRule, type IDocReferenceRule, type IGeneratedArtifactRule, type IPolicyRule, type IRegistrationIdiom, type IRegistryDeclaration, type IRuleSelfTest, type IWiringRule } from '@shrkcrft/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { type GatePlane } from '@shrkcrft/config';
|
|
3
|
+
/** Which data-defined plane a rule belongs to — THE config-schema type (`@shrkcrft/config`). */
|
|
4
|
+
export type { GatePlane } from '@shrkcrft/config';
|
|
5
|
+
/**
|
|
6
|
+
* Every plane, in the order `shrk gates list` prints them — THE list beside
|
|
7
|
+
* the config schema (`GATE_PLANE_ORDER`), never a CLI copy of it.
|
|
8
|
+
*/
|
|
5
9
|
export declare const GATE_PLANES: readonly GatePlane[];
|
|
6
10
|
/**
|
|
7
11
|
* One data-defined rule, normalized across planes.
|
|
@@ -36,6 +40,15 @@ export interface IGatePlanes {
|
|
|
36
40
|
readonly generatedArtifacts?: readonly IGeneratedArtifactRule[];
|
|
37
41
|
readonly docReferences?: readonly IDocReferenceRule[];
|
|
38
42
|
}
|
|
39
|
-
/** Flatten every declared rule across every plane into one iterable list. */
|
|
43
|
+
/** Flatten every declared rule across every plane into one iterable list, in {@link GATE_PLANES} order. */
|
|
40
44
|
export declare function collectGateRules(planes: IGatePlanes): IGateRuleView[];
|
|
45
|
+
/**
|
|
46
|
+
* The "` · scan: code (N chars blanked)`" suffix for an explain line.
|
|
47
|
+
*
|
|
48
|
+
* A zone is the one setting that legitimately makes a rule match LESS while
|
|
49
|
+
* still reading green, so every surface that reports what a rule extracted also
|
|
50
|
+
* reports what the zone removed to get there. Empty string when the rule scans
|
|
51
|
+
* raw text, so an unzoned rule's output is byte-identical to before.
|
|
52
|
+
*/
|
|
53
|
+
export declare function scanNote(zone?: string, blankedChars?: number): string;
|
|
41
54
|
//# sourceMappingURL=gate-rule-view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-rule-view.d.ts","sourceRoot":"","sources":["../../src/gates/gate-rule-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-rule-view.d.ts","sourceRoot":"","sources":["../../src/gates/gate-rule-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE3F,gGAAgG;AAChG,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAqB,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EACR,WAAW,GACX,WAAW,GACX,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,sBAAsB,GACtB,iBAAiB,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACvD;AA4GD,2GAA2G;AAC3G,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrE"}
|
|
@@ -1,94 +1,109 @@
|
|
|
1
1
|
import { failsWhenEmpty, } from '@shrkcrft/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
2
|
+
import { GATE_PLANE_CONFIG_KEY, GATE_PLANE_ORDER } from '@shrkcrft/config';
|
|
3
|
+
/**
|
|
4
|
+
* Every plane, in the order `shrk gates list` prints them — THE list beside
|
|
5
|
+
* the config schema (`GATE_PLANE_ORDER`), never a CLI copy of it.
|
|
6
|
+
*/
|
|
7
|
+
export const GATE_PLANES = GATE_PLANE_ORDER;
|
|
8
|
+
/**
|
|
9
|
+
* One view builder per plane, keyed by {@link GatePlane} so the record is
|
|
10
|
+
* exhaustive: a plane added to the config list fails the build here until it
|
|
11
|
+
* has a builder. Each reads its rules under THE config key
|
|
12
|
+
* (`GATE_PLANE_CONFIG_KEY`) — no plane → key name is spelled in the CLI.
|
|
13
|
+
*/
|
|
14
|
+
const PLANE_VIEWS = {
|
|
15
|
+
wiring: (planes) => (planes[GATE_PLANE_CONFIG_KEY.wiring] ?? []).map((r) => ({
|
|
16
|
+
id: r.id,
|
|
17
|
+
plane: 'wiring',
|
|
18
|
+
...(r.description ? { description: r.description } : {}),
|
|
19
|
+
severity: r.severity ?? 'error',
|
|
20
|
+
failOnEmpty: failsWhenEmpty(r),
|
|
21
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
22
|
+
raw: r,
|
|
23
|
+
})),
|
|
24
|
+
policy: (planes) => (planes[GATE_PLANE_CONFIG_KEY.policy] ?? []).map((r) => ({
|
|
25
|
+
id: r.id,
|
|
26
|
+
plane: 'policy',
|
|
27
|
+
...(r.description ? { description: r.description } : {}),
|
|
28
|
+
severity: r.severity ?? 'error',
|
|
29
|
+
failOnEmpty: failsWhenEmpty(r),
|
|
30
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
31
|
+
raw: r,
|
|
32
|
+
})),
|
|
33
|
+
registry: (planes) => (planes[GATE_PLANE_CONFIG_KEY.registry] ?? []).map((r) => ({
|
|
34
|
+
id: r.name,
|
|
35
|
+
plane: 'registry',
|
|
36
|
+
...(r.description ? { description: r.description } : {}),
|
|
37
|
+
// A registry is an inventory, not a gate — it never fails a build on its
|
|
38
|
+
// own, so it carries no severity of its own. A `selfTest` still applies:
|
|
39
|
+
// an inventory whose selector went stale reports an empty registry as
|
|
40
|
+
// fact, which is worse than a failing gate because nothing looks wrong.
|
|
41
|
+
// `failOnEmpty` goes through the one shared helper; with no severity the
|
|
42
|
+
// default stays `false` (a loud skip), and an explicit `true` promotes it.
|
|
43
|
+
severity: 'warning',
|
|
44
|
+
failOnEmpty: failsWhenEmpty({
|
|
45
|
+
...(r.failOnEmpty !== undefined ? { failOnEmpty: r.failOnEmpty } : {}),
|
|
44
46
|
severity: 'warning',
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
}),
|
|
48
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
49
|
+
raw: r,
|
|
50
|
+
})),
|
|
51
|
+
registration: (planes) => (planes[GATE_PLANE_CONFIG_KEY.registration] ?? []).map((r) => ({
|
|
52
|
+
id: r.name,
|
|
53
|
+
plane: 'registration',
|
|
54
|
+
...(r.description ? { description: r.description } : {}),
|
|
55
|
+
severity: 'warning',
|
|
56
|
+
failOnEmpty: failsWhenEmpty({
|
|
57
|
+
...(r.failOnEmpty !== undefined ? { failOnEmpty: r.failOnEmpty } : {}),
|
|
54
58
|
severity: 'warning',
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
59
|
+
}),
|
|
60
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
61
|
+
raw: r,
|
|
62
|
+
})),
|
|
63
|
+
baseline: (planes) => (planes[GATE_PLANE_CONFIG_KEY.baseline] ?? []).map((r) => ({
|
|
64
|
+
id: r.id,
|
|
65
|
+
plane: 'baseline',
|
|
66
|
+
...(r.description ? { description: r.description } : {}),
|
|
67
|
+
severity: r.severity ?? 'error',
|
|
68
|
+
failOnEmpty: failsWhenEmpty(r),
|
|
69
|
+
...(r.expectEmpty === true ? { expectEmpty: true } : {}),
|
|
70
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
71
|
+
raw: r,
|
|
72
|
+
})),
|
|
73
|
+
generated: (planes) => (planes[GATE_PLANE_CONFIG_KEY.generated] ?? []).map((r) => ({
|
|
74
|
+
id: r.id,
|
|
75
|
+
plane: 'generated',
|
|
76
|
+
...(r.description ? { description: r.description } : {}),
|
|
77
|
+
severity: r.severity ?? 'error',
|
|
78
|
+
failOnEmpty: failsWhenEmpty(r),
|
|
79
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
80
|
+
raw: r,
|
|
81
|
+
})),
|
|
82
|
+
'doc-reference': (planes) => (planes[GATE_PLANE_CONFIG_KEY['doc-reference']] ?? []).map((r) => ({
|
|
83
|
+
id: r.id,
|
|
84
|
+
plane: 'doc-reference',
|
|
85
|
+
...(r.description ? { description: r.description } : {}),
|
|
86
|
+
severity: r.severity ?? 'error',
|
|
87
|
+
failOnEmpty: failsWhenEmpty(r),
|
|
88
|
+
...(r.selfTest ? { selfTest: r.selfTest } : {}),
|
|
89
|
+
raw: r,
|
|
90
|
+
})),
|
|
91
|
+
};
|
|
92
|
+
/** Flatten every declared rule across every plane into one iterable list, in {@link GATE_PLANES} order. */
|
|
93
|
+
export function collectGateRules(planes) {
|
|
94
|
+
return GATE_PLANES.flatMap((plane) => PLANE_VIEWS[plane](planes));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The "` · scan: code (N chars blanked)`" suffix for an explain line.
|
|
98
|
+
*
|
|
99
|
+
* A zone is the one setting that legitimately makes a rule match LESS while
|
|
100
|
+
* still reading green, so every surface that reports what a rule extracted also
|
|
101
|
+
* reports what the zone removed to get there. Empty string when the rule scans
|
|
102
|
+
* raw text, so an unzoned rule's output is byte-identical to before.
|
|
103
|
+
*/
|
|
104
|
+
export function scanNote(zone, blankedChars) {
|
|
105
|
+
if (!zone || zone === 'all')
|
|
106
|
+
return '';
|
|
107
|
+
const n = blankedChars ?? 0;
|
|
108
|
+
return ` · scan: ${zone} (${n} char${n === 1 ? '' : 's'} blanked)`;
|
|
94
109
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One dead glob inside a gate rule, as `gates coverage` reports it (the
|
|
3
|
+
* `deadGlobUnits` of `sharkcraft.gate-coverage/v1`): an inclusion glob that
|
|
4
|
+
* selects nothing, or a negation that excludes nothing.
|
|
5
|
+
*/
|
|
6
|
+
export interface ICoverageDeadGlob {
|
|
7
|
+
/** The side-qualified label — identical to the rule's `deadGlobs` entry (`declared: src/moved/*.ts`). */
|
|
8
|
+
readonly selector: string;
|
|
9
|
+
/** The glob as written (a negation keeps its `!`). */
|
|
10
|
+
readonly glob: string;
|
|
11
|
+
readonly negation: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Why it is dead: `matched 0 files`, `matches only files the list's
|
|
14
|
+
* negations exclude (N)`, or `excludes nothing — none of the N file(s) the
|
|
15
|
+
* other globs select match it`.
|
|
16
|
+
*/
|
|
17
|
+
readonly reason: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=i-coverage-dead-glob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-coverage-dead-glob.d.ts","sourceRoot":"","sources":["../../src/gates/i-coverage-dead-glob.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,yGAAyG;IACzG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A LIVE negation inside a gate rule and what it excludes, as `gates coverage`
|
|
3
|
+
* reports it (the `negations` of `sharkcraft.gate-coverage/v1`). The narrowing
|
|
4
|
+
* a `!` performs is printed (`excludes: !src/**\/*.spec.ts (512 files)`), so a
|
|
5
|
+
* reader sees what the rule does NOT measure.
|
|
6
|
+
*/
|
|
7
|
+
export interface ICoverageNegation {
|
|
8
|
+
/** The side-qualified negation (`declared: !src/**\/*.spec.ts`). */
|
|
9
|
+
readonly selector: string;
|
|
10
|
+
/** Files it excludes from its own list's positive set (at least 1). */
|
|
11
|
+
readonly excludes: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=i-coverage-negation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-coverage-negation.d.ts","sourceRoot":"","sources":["../../src/gates/i-coverage-negation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IRegistrationQueryVerdict } from '@shrkcrft/boundaries';
|
|
2
|
+
/** What `settleRegistrationGraph` needs to settle one registration-graph absence query. */
|
|
3
|
+
export interface IRegistrationQuerySettleInput<T extends {
|
|
4
|
+
readonly token: string;
|
|
5
|
+
}> {
|
|
6
|
+
/** The verdict verb (`wiring unprovided` / `wiring orphans`). */
|
|
7
|
+
readonly verb: string;
|
|
8
|
+
readonly verdict: IRegistrationQueryVerdict<T>;
|
|
9
|
+
/** The exit the findings propose (1 over an unprovided token; orphans never fail). */
|
|
10
|
+
readonly proposed: number;
|
|
11
|
+
/** The clean sentence — printed only when the settled exit is 0. */
|
|
12
|
+
readonly clean: string;
|
|
13
|
+
/** The query's own coverage subject (`unprovided` / `orphans`) — its row carries the findings. */
|
|
14
|
+
readonly subject: string;
|
|
15
|
+
/** How many idioms the graph was built from — the run's coverage. */
|
|
16
|
+
readonly idioms: number;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=i-registration-query-settle-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-registration-query-settle-input.d.ts","sourceRoot":"","sources":["../../src/gates/i-registration-query-settle-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,2FAA2F;AAC3F,MAAM,WAAW,6BAA6B,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;IACjF,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAC/C,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IUnitLiveness } from '@shrkcrft/core';
|
|
2
|
+
/**
|
|
3
|
+
* One rule's settled selector units, as a plane verb hands them to THE shared
|
|
4
|
+
* unit-state renderer (`unitStateNotes`): the rule id it prints them under and
|
|
5
|
+
* the rule's non-live units (`unitLiveness` on every plane engine's result).
|
|
6
|
+
*/
|
|
7
|
+
export interface IUnitStateNoteRow {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly unitLiveness?: readonly IUnitLiveness[];
|
|
10
|
+
/**
|
|
11
|
+
* The rule is already reported as matching nothing (skipped / failed empty):
|
|
12
|
+
* its dead units are that verdict, never a second advisory line.
|
|
13
|
+
*/
|
|
14
|
+
readonly reportedEmpty?: boolean;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=i-unit-state-note-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-unit-state-note-row.d.ts","sourceRoot":"","sources":["../../src/gates/i-unit-state-note-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What THE shared unit-state renderer (`unitStateNotes`) found across a plane
|
|
3
|
+
* verb's rules — the printed block, the per-unit lines and the counts the
|
|
4
|
+
* verb's clean line reads.
|
|
5
|
+
*/
|
|
6
|
+
export interface IUnitStateNotes {
|
|
7
|
+
/** Unmarked dead units of rules NOT already reported as matching nothing (advisory). */
|
|
8
|
+
readonly dead: number;
|
|
9
|
+
/** LOCAL `expectEmpty` markers whose target appeared — ✓ withheld, fails under `--fail-on-dead-units`. */
|
|
10
|
+
readonly localWentLive: number;
|
|
11
|
+
/** PACK markers whose target appeared — INFO, never a failure, never the consumer's to remove. */
|
|
12
|
+
readonly packWentLive: number;
|
|
13
|
+
/** The block to print (empty when there is nothing to say), each line `\n`-terminated. */
|
|
14
|
+
readonly text: string;
|
|
15
|
+
/**
|
|
16
|
+
* The same units as bare lines (`<rule id>: <formatUnitLiveness(u)>`, causes
|
|
17
|
+
* left to the caller's footer) — what a surface that prints NOTES instead of
|
|
18
|
+
* a block (finish, quality) decorates with its own `[advisory]` / `[info]`.
|
|
19
|
+
*/
|
|
20
|
+
readonly deadLines: readonly string[];
|
|
21
|
+
readonly localWentLiveLines: readonly string[];
|
|
22
|
+
readonly packWentLiveLines: readonly string[];
|
|
23
|
+
/**
|
|
24
|
+
* The clauses a clean line must carry instead of its ✓ (`2 dead selector
|
|
25
|
+
* unit(s)`, `1 expectEmpty unit(s) went live — remove the markers`). Pack
|
|
26
|
+
* went-live units never withhold the ✓ (INFO).
|
|
27
|
+
*/
|
|
28
|
+
readonly stale: readonly string[];
|
|
29
|
+
/** Rule ids with a dead or LOCAL went-live unit — their per-rule row reads `⚠`, never `✓`. */
|
|
30
|
+
readonly staleIds: ReadonlySet<string>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=i-unit-state-notes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-unit-state-notes.d.ts","sourceRoot":"","sources":["../../src/gates/i-unit-state-notes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IRegistryDeclaration } from '@shrkcrft/core';
|
|
2
|
+
import { type IRegistryInventory } from '@shrkcrft/boundaries';
|
|
3
|
+
/**
|
|
4
|
+
* Answer a `registry <name> list | exists | where | duplicates` query over an
|
|
5
|
+
* INCOMPLETE inventory: one whose source globs matched a file the reader did
|
|
6
|
+
* not read (over the read cap). Returns `undefined` when the answer is
|
|
7
|
+
* verified anyway, so the caller answers normally.
|
|
8
|
+
*
|
|
9
|
+
* Only a POSITIVE finding survives an incomplete read. An id found among the
|
|
10
|
+
* files read is declared, and a duplicate found there is a duplicate. Absence
|
|
11
|
+
* ("no", "not declared", "no duplicates") and the listing itself may be wrong,
|
|
12
|
+
* because the unread file can hold the id. So those are NOT VERIFIED (2),
|
|
13
|
+
* whatever guard flag was passed, and are settled through the one coverage
|
|
14
|
+
* guard (`readScopeCoverage` → `settleVerdict`) so the exit and the printed
|
|
15
|
+
* verdict agree. `exists X --fail-if-taken` over an unread file is never the
|
|
16
|
+
* "free" 0 a duplicate guard would march on.
|
|
17
|
+
*/
|
|
18
|
+
export declare function answerIncompleteInventory(inventory: IRegistryInventory, decl: IRegistryDeclaration, action: string | undefined, id: string | undefined, json: boolean): number | undefined;
|
|
19
|
+
//# sourceMappingURL=incomplete-registry-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incomplete-registry-inventory.d.ts","sourceRoot":"","sources":["../../src/gates/incomplete-registry-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAM9B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,IAAI,EAAE,OAAO,GACZ,MAAM,GAAG,SAAS,CA6CpB"}
|