@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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describeUnread, readScopeCoverage, readScopeHasUnread, registryDuplicates, registryExists, } from '@shrkcrft/boundaries';
|
|
2
|
+
import { ExitCode } from "../exit-codes.js";
|
|
3
|
+
import { asJson } from "../output/format-output.js";
|
|
4
|
+
import { settleVerdict } from "./settle-verdict.js";
|
|
5
|
+
import { verdictLine } from "./verdict-line.js";
|
|
6
|
+
/**
|
|
7
|
+
* Answer a `registry <name> list | exists | where | duplicates` query over an
|
|
8
|
+
* INCOMPLETE inventory: one whose source globs matched a file the reader did
|
|
9
|
+
* not read (over the read cap). Returns `undefined` when the answer is
|
|
10
|
+
* verified anyway, so the caller answers normally.
|
|
11
|
+
*
|
|
12
|
+
* Only a POSITIVE finding survives an incomplete read. An id found among the
|
|
13
|
+
* files read is declared, and a duplicate found there is a duplicate. Absence
|
|
14
|
+
* ("no", "not declared", "no duplicates") and the listing itself may be wrong,
|
|
15
|
+
* because the unread file can hold the id. So those are NOT VERIFIED (2),
|
|
16
|
+
* whatever guard flag was passed, and are settled through the one coverage
|
|
17
|
+
* guard (`readScopeCoverage` → `settleVerdict`) so the exit and the printed
|
|
18
|
+
* verdict agree. `exists X --fail-if-taken` over an unread file is never the
|
|
19
|
+
* "free" 0 a duplicate guard would march on.
|
|
20
|
+
*/
|
|
21
|
+
export function answerIncompleteInventory(inventory, decl, action, id, json) {
|
|
22
|
+
if (!readScopeHasUnread(inventory.readScope))
|
|
23
|
+
return undefined;
|
|
24
|
+
if ((action === 'exists' || action === 'where') && id !== undefined && registryExists(inventory, id)) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
if (action === 'duplicates' && registryDuplicates(inventory).length > 0)
|
|
28
|
+
return undefined;
|
|
29
|
+
const coverage = {
|
|
30
|
+
...readScopeCoverage({ unit: 'ids', expected: inventory.entries.length, examined: inventory.entries.length }, inventory.readScope),
|
|
31
|
+
subject: `registry "${inventory.name}"`,
|
|
32
|
+
};
|
|
33
|
+
const settled = settleVerdict(ExitCode.VerifiedPass, [coverage]);
|
|
34
|
+
const what = describeUnread(inventory.readScope.unread);
|
|
35
|
+
if (json) {
|
|
36
|
+
process.stdout.write(asJson({
|
|
37
|
+
name: inventory.name,
|
|
38
|
+
...(action ? { action } : {}),
|
|
39
|
+
...(id !== undefined ? { id } : {}),
|
|
40
|
+
ids: inventory.entries.map((e) => e.id),
|
|
41
|
+
verified: false,
|
|
42
|
+
unread: inventory.readScope.unread,
|
|
43
|
+
exitCode: settled.exit,
|
|
44
|
+
verdict: settled.verdict,
|
|
45
|
+
shortfalls: settled.shortfalls,
|
|
46
|
+
}) + '\n');
|
|
47
|
+
return settled.exit;
|
|
48
|
+
}
|
|
49
|
+
process.stdout.write(`Registry "${inventory.name}"${decl.description ? ` — ${decl.description}` : ''}: its source globs matched ${what},\n` +
|
|
50
|
+
' so the inventory is incomplete and this answer is NOT verified.\n');
|
|
51
|
+
if (action === 'list' || action === undefined) {
|
|
52
|
+
process.stdout.write(` ${inventory.entries.length} id(s) among the files read:\n`);
|
|
53
|
+
for (const e of inventory.entries)
|
|
54
|
+
process.stdout.write(` • ${e.id}\n`);
|
|
55
|
+
}
|
|
56
|
+
else if (id !== undefined) {
|
|
57
|
+
process.stdout.write(` "${id}" is not among the ids read; the unread file may declare it.\n`);
|
|
58
|
+
}
|
|
59
|
+
const line = verdictLine(settled, '');
|
|
60
|
+
if (line)
|
|
61
|
+
process.stdout.write(`${line}\n`);
|
|
62
|
+
return settled.exit;
|
|
63
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE role measurement of a registration idiom — re-exported. Round 13 (P4):
|
|
3
|
+
* the implementation moved to `@shrkcrft/boundaries`
|
|
4
|
+
* (`packages/boundaries/src/wiring/measure-registration-roles.ts`) so the
|
|
5
|
+
* registration-graph queries read the SAME authority `gates check` / `gates
|
|
6
|
+
* coverage` read — MCP `get_wiring_graph` cannot import the CLI. Edit it
|
|
7
|
+
* there; this path stays so every gates import is unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export { measureRegistrationRoles } from '@shrkcrft/boundaries';
|
|
10
|
+
//# sourceMappingURL=measure-registration-roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measure-registration-roles.d.ts","sourceRoot":"","sources":["../../src/gates/measure-registration-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE role measurement of a registration idiom — re-exported. Round 13 (P4):
|
|
3
|
+
* the implementation moved to `@shrkcrft/boundaries`
|
|
4
|
+
* (`packages/boundaries/src/wiring/measure-registration-roles.ts`) so the
|
|
5
|
+
* registration-graph queries read the SAME authority `gates check` / `gates
|
|
6
|
+
* coverage` read — MCP `get_wiring_graph` cannot import the CLI. Edit it
|
|
7
|
+
* there; this path stays so every gates import is unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export { measureRegistrationRoles } from '@shrkcrft/boundaries';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A plane payload's top-level `verdict`, derived from the SETTLED exit — so a
|
|
3
|
+
* `--json` payload can never say `pass` (or `warnings`) next to `exitCode: 2`.
|
|
4
|
+
*
|
|
5
|
+
* 0 → `warnings` when the engine reported non-blocking findings, else `pass`
|
|
6
|
+
* 1 → `errors`
|
|
7
|
+
* 2 → `not-verified`
|
|
8
|
+
* 3 → `usage-error`
|
|
9
|
+
*
|
|
10
|
+
* Spread the engine's report first and set `verdict: planeVerdictForExit(exit,
|
|
11
|
+
* report.verdict)` after it, so the settled word overrides the engine's.
|
|
12
|
+
*/
|
|
13
|
+
export declare function planeVerdictForExit(exit: number, engineVerdict?: string): 'pass' | 'warnings' | 'errors' | 'not-verified' | 'usage-error';
|
|
14
|
+
//# sourceMappingURL=plane-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plane-verdict.d.ts","sourceRoot":"","sources":["../../src/gates/plane-verdict.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,CAKjE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ExitCode } from "../exit-codes.js";
|
|
2
|
+
/**
|
|
3
|
+
* A plane payload's top-level `verdict`, derived from the SETTLED exit — so a
|
|
4
|
+
* `--json` payload can never say `pass` (or `warnings`) next to `exitCode: 2`.
|
|
5
|
+
*
|
|
6
|
+
* 0 → `warnings` when the engine reported non-blocking findings, else `pass`
|
|
7
|
+
* 1 → `errors`
|
|
8
|
+
* 2 → `not-verified`
|
|
9
|
+
* 3 → `usage-error`
|
|
10
|
+
*
|
|
11
|
+
* Spread the engine's report first and set `verdict: planeVerdictForExit(exit,
|
|
12
|
+
* report.verdict)` after it, so the settled word overrides the engine's.
|
|
13
|
+
*/
|
|
14
|
+
export function planeVerdictForExit(exit, engineVerdict) {
|
|
15
|
+
if (exit === ExitCode.VerifiedPass)
|
|
16
|
+
return engineVerdict === 'warnings' ? 'warnings' : 'pass';
|
|
17
|
+
if (exit === ExitCode.Failure)
|
|
18
|
+
return 'errors';
|
|
19
|
+
if (exit === ExitCode.NotVerified)
|
|
20
|
+
return 'not-verified';
|
|
21
|
+
return 'usage-error';
|
|
22
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IUnitStateNotes } from './i-unit-state-notes.js';
|
|
2
|
+
/**
|
|
3
|
+
* A verb's clean sentence, qualified by THE shared unit-state renderer's
|
|
4
|
+
* findings (round 13, K2): with a dead unit or a LOCAL went-live marker listed
|
|
5
|
+
* above, EVERY ✓ is withheld and the sentence says why — `No policy
|
|
6
|
+
* violations on the scanned surfaces, but 1 expectEmpty unit(s) went live —
|
|
7
|
+
* remove the markers (listed above).` The exit is unchanged (advisory);
|
|
8
|
+
* `verdictLine` still prints the sentence only at exit 0, followed by any
|
|
9
|
+
* acceptance. An empty `clean` stays empty.
|
|
10
|
+
*/
|
|
11
|
+
export declare function qualifyCleanForUnits(clean: string, notes: IUnitStateNotes): string;
|
|
12
|
+
//# sourceMappingURL=qualify-clean-for-units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualify-clean-for-units.d.ts","sourceRoot":"","sources":["../../src/gates/qualify-clean-for-units.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAOlF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A verb's clean sentence, qualified by THE shared unit-state renderer's
|
|
3
|
+
* findings (round 13, K2): with a dead unit or a LOCAL went-live marker listed
|
|
4
|
+
* above, EVERY ✓ is withheld and the sentence says why — `No policy
|
|
5
|
+
* violations on the scanned surfaces, but 1 expectEmpty unit(s) went live —
|
|
6
|
+
* remove the markers (listed above).` The exit is unchanged (advisory);
|
|
7
|
+
* `verdictLine` still prints the sentence only at exit 0, followed by any
|
|
8
|
+
* acceptance. An empty `clean` stays empty.
|
|
9
|
+
*/
|
|
10
|
+
export function qualifyCleanForUnits(clean, notes) {
|
|
11
|
+
if (clean.length === 0 || notes.stale.length === 0)
|
|
12
|
+
return clean;
|
|
13
|
+
const lead = clean
|
|
14
|
+
.replace(/\s*✓/gu, '')
|
|
15
|
+
.replace(/ {2,}/gu, ' ')
|
|
16
|
+
.replace(/[.\s]+$/u, '');
|
|
17
|
+
return `${lead}, but ${notes.stale.join(', and ')} (listed above).`;
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type IGateEnvelope } from './gate-envelope.js';
|
|
2
|
+
import type { IRegistrationQuerySettleInput } from './i-registration-query-settle-input.js';
|
|
3
|
+
/**
|
|
4
|
+
* Settle a registration-graph absence query (`wiring unprovided` / `wiring
|
|
5
|
+
* orphans`) against what the graph read AND what every idiom's roles examined.
|
|
6
|
+
*
|
|
7
|
+
* The coverage comes from ONE place, @shrkcrft/boundaries
|
|
8
|
+
* `registrationUnprovidedVerdict` / `registrationOrphansVerdict`: the idiom
|
|
9
|
+
* files the reader could not read (over the read cap), named; every absence
|
|
10
|
+
* such a file could refute, demoted from a finding to `unproven`; and — round
|
|
11
|
+
* 13 (P4) — every idiom's ROLE record from THE role authority
|
|
12
|
+
* (`measureRegistrationRoles`), so a declared role that matched no file is a
|
|
13
|
+
* shortfall here exactly as on `gates check`. finish's unprovided sub-gate and
|
|
14
|
+
* MCP `get_wiring_graph` read the same records, so the verb and its siblings
|
|
15
|
+
* cannot disagree.
|
|
16
|
+
*
|
|
17
|
+
* The settle runs through the shared gate envelope (one row per record, the
|
|
18
|
+
* query's own row carrying its findings): a proposed 0 over a shortfall is NOT
|
|
19
|
+
* VERIFIED (2), a 1 keeps its exit and gains the `(also not verified: …)`
|
|
20
|
+
* line, an expectEmpty acceptance is printed at 0, and a fully-examined graph
|
|
21
|
+
* settles exactly as proposed, with the clean line. `--json` ALWAYS carries
|
|
22
|
+
* `gate`, `coverage`, `exitCode`, `verdict`, `shortfalls` and `accepted` — it
|
|
23
|
+
* carried them only when a file was unread, so a dead declared role printed
|
|
24
|
+
* `{"total":0,"unprovided":[]}` at exit 0 with nothing to say it proved nothing.
|
|
25
|
+
*/
|
|
26
|
+
export declare function settleRegistrationGraph<T extends {
|
|
27
|
+
readonly token: string;
|
|
28
|
+
}>(input: IRegistrationQuerySettleInput<T>): {
|
|
29
|
+
readonly exit: number;
|
|
30
|
+
readonly line: string;
|
|
31
|
+
readonly json: Readonly<Record<string, unknown>>;
|
|
32
|
+
readonly gate: IGateEnvelope;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=registration-graph-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-graph-verdict.d.ts","sourceRoot":"","sources":["../../src/gates/registration-graph-verdict.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAG5F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC1E,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC,GACtC;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,CA6CA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ExitCode } from "../exit-codes.js";
|
|
2
|
+
import { buildGateEnvelope } from "./gate-envelope.js";
|
|
3
|
+
import { verdictLine } from "./verdict-line.js";
|
|
4
|
+
/**
|
|
5
|
+
* Settle a registration-graph absence query (`wiring unprovided` / `wiring
|
|
6
|
+
* orphans`) against what the graph read AND what every idiom's roles examined.
|
|
7
|
+
*
|
|
8
|
+
* The coverage comes from ONE place, @shrkcrft/boundaries
|
|
9
|
+
* `registrationUnprovidedVerdict` / `registrationOrphansVerdict`: the idiom
|
|
10
|
+
* files the reader could not read (over the read cap), named; every absence
|
|
11
|
+
* such a file could refute, demoted from a finding to `unproven`; and — round
|
|
12
|
+
* 13 (P4) — every idiom's ROLE record from THE role authority
|
|
13
|
+
* (`measureRegistrationRoles`), so a declared role that matched no file is a
|
|
14
|
+
* shortfall here exactly as on `gates check`. finish's unprovided sub-gate and
|
|
15
|
+
* MCP `get_wiring_graph` read the same records, so the verb and its siblings
|
|
16
|
+
* cannot disagree.
|
|
17
|
+
*
|
|
18
|
+
* The settle runs through the shared gate envelope (one row per record, the
|
|
19
|
+
* query's own row carrying its findings): a proposed 0 over a shortfall is NOT
|
|
20
|
+
* VERIFIED (2), a 1 keeps its exit and gains the `(also not verified: …)`
|
|
21
|
+
* line, an expectEmpty acceptance is printed at 0, and a fully-examined graph
|
|
22
|
+
* settles exactly as proposed, with the clean line. `--json` ALWAYS carries
|
|
23
|
+
* `gate`, `coverage`, `exitCode`, `verdict`, `shortfalls` and `accepted` — it
|
|
24
|
+
* carried them only when a file was unread, so a dead declared role printed
|
|
25
|
+
* `{"total":0,"unprovided":[]}` at exit 0 with nothing to say it proved nothing.
|
|
26
|
+
*/
|
|
27
|
+
export function settleRegistrationGraph(input) {
|
|
28
|
+
const { verdict } = input;
|
|
29
|
+
const own = verdict.coverage.find((c) => c.subject === input.subject);
|
|
30
|
+
const all = { unit: 'registration idioms', expected: input.idioms, examined: input.idioms };
|
|
31
|
+
const fails = input.proposed === ExitCode.Failure;
|
|
32
|
+
const rows = [
|
|
33
|
+
...verdict.coverage
|
|
34
|
+
.filter((c) => c !== own)
|
|
35
|
+
.map((c) => ({
|
|
36
|
+
id: `${c.subject ?? 'registration graph'}${c.acceptedBy !== undefined ? ' (expectEmpty)' : ''}`,
|
|
37
|
+
type: 'registration',
|
|
38
|
+
status: 'passed',
|
|
39
|
+
severity: 'warning',
|
|
40
|
+
counts: {},
|
|
41
|
+
violations: [],
|
|
42
|
+
coverage: c,
|
|
43
|
+
})),
|
|
44
|
+
{
|
|
45
|
+
id: input.subject,
|
|
46
|
+
type: 'registration',
|
|
47
|
+
status: fails ? 'failed' : 'passed',
|
|
48
|
+
severity: fails ? 'error' : 'warning',
|
|
49
|
+
counts: { findings: verdict.findings.length, unproven: verdict.unproven.length },
|
|
50
|
+
violations: fails ? verdict.findings.map((t) => ({ id: t.token })) : [],
|
|
51
|
+
coverage: own ?? all,
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
const gate = buildGateEnvelope(input.verb, input.proposed, rows, all);
|
|
55
|
+
return {
|
|
56
|
+
exit: gate.exit,
|
|
57
|
+
line: verdictLine(gate, input.clean),
|
|
58
|
+
json: {
|
|
59
|
+
coverage: verdict.coverage,
|
|
60
|
+
...(verdict.unread.length > 0 ? { unread: verdict.unread } : {}),
|
|
61
|
+
...(verdict.unproven.length > 0 ? { unproven: verdict.unproven } : {}),
|
|
62
|
+
exitCode: gate.exit,
|
|
63
|
+
verdict: gate.verdict,
|
|
64
|
+
shortfalls: gate.shortfalls,
|
|
65
|
+
accepted: gate.accepted,
|
|
66
|
+
gate,
|
|
67
|
+
},
|
|
68
|
+
gate,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE registration-role measurement's shape — re-exported. Round 13 (P4): it
|
|
3
|
+
* moved to `@shrkcrft/boundaries`
|
|
4
|
+
* (`packages/boundaries/src/wiring/i-registration-roles.ts`) with
|
|
5
|
+
* `measureRegistrationRoles`, and gained the `unitAcceptance?` carrier (settle
|
|
6
|
+
* record B). Edit it there.
|
|
7
|
+
*/
|
|
8
|
+
export type { IRegistrationRoles } from '@shrkcrft/boundaries';
|
|
9
|
+
//# sourceMappingURL=registration-roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-roles.d.ts","sourceRoot":"","sources":["../../src/gates/registration-roles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IRegistryDeclaration, ISettledUnitLiveness } from '@shrkcrft/core';
|
|
2
|
+
/**
|
|
3
|
+
* A registry's `source` / `consumer` glob units settled with their
|
|
4
|
+
* `expectEmpty` markers (round 13) — THE per-source request `gates coverage`
|
|
5
|
+
* builds too (`sourceLivenessRequest` over `registryLabeledSources`). The
|
|
6
|
+
* registry verbs (`registry <name> list|exists|where|duplicates`) and `gates
|
|
7
|
+
* check` both decide an empty inventory from it, so they cannot disagree about
|
|
8
|
+
* a registry over a planned directory.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registryLiveness(cwd: string, decl: IRegistryDeclaration, excludeDirs: readonly string[]): ISettledUnitLiveness;
|
|
11
|
+
//# sourceMappingURL=registry-liveness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-liveness.d.ts","sourceRoot":"","sources":["../../src/gates/registry-liveness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIjF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,oBAAoB,EAC1B,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,oBAAoB,CAEtB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { settleGlobLists, sourceLivenessRequest } from '@shrkcrft/boundaries';
|
|
2
|
+
import { registryLabeledSources } from "./gate-rule-globs.js";
|
|
3
|
+
/**
|
|
4
|
+
* A registry's `source` / `consumer` glob units settled with their
|
|
5
|
+
* `expectEmpty` markers (round 13) — THE per-source request `gates coverage`
|
|
6
|
+
* builds too (`sourceLivenessRequest` over `registryLabeledSources`). The
|
|
7
|
+
* registry verbs (`registry <name> list|exists|where|duplicates`) and `gates
|
|
8
|
+
* check` both decide an empty inventory from it, so they cannot disagree about
|
|
9
|
+
* a registry over a planned directory.
|
|
10
|
+
*/
|
|
11
|
+
export function registryLiveness(cwd, decl, excludeDirs) {
|
|
12
|
+
return settleGlobLists(sourceLivenessRequest(cwd, registryLabeledSources(decl), excludeDirs, decl.name));
|
|
13
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import type { IWiringSource } from '@shrkcrft/core';
|
|
1
|
+
import type { IWiringSource, ISelectorUnitFailOptions, IUnitLiveness, IUnitStateLists, IVerdictCoverage } from '@shrkcrft/core';
|
|
2
|
+
import { RuleEmptiness } from '@shrkcrft/core';
|
|
3
|
+
import type { ICoverageDeadGlob } from './i-coverage-dead-glob.js';
|
|
4
|
+
import type { ICoverageNegation } from './i-coverage-negation.js';
|
|
2
5
|
import { type ISharkcraftInspection } from '@shrkcrft/inspector';
|
|
3
6
|
import type { IGateRuleView } from './gate-rule-view.js';
|
|
7
|
+
import { type IGateEnvelope, type IGateRuleResult } from './gate-envelope.js';
|
|
8
|
+
import type { ISelfTestCheck } from './self-test-check.js';
|
|
4
9
|
export declare const GATE_COVERAGE_SCHEMA: "sharkcraft.gate-coverage/v1";
|
|
5
10
|
/**
|
|
6
11
|
* Whether a rule is connected to anything at all.
|
|
@@ -9,7 +14,9 @@ export declare const GATE_COVERAGE_SCHEMA: "sharkcraft.gate-coverage/v1";
|
|
|
9
14
|
* matches nothing passes every gate forever, so the ONLY way to notice is to
|
|
10
15
|
* report the match count itself and flag zero. `failed-expectation` is the
|
|
11
16
|
* stronger form — the author wrote down what the rule should match, and it
|
|
12
|
-
* doesn't.
|
|
17
|
+
* doesn't. A rule whose empty result is the INTENDED one (round 13: a fence's
|
|
18
|
+
* asserted empty set, or every primary input glob marked `expectEmpty`) is
|
|
19
|
+
* `ok` — its acceptance is printed.
|
|
13
20
|
*/
|
|
14
21
|
export type GateCoverageStatus = 'ok' | 'empty' | 'error' | 'failed-expectation';
|
|
15
22
|
export interface IGateCoverage {
|
|
@@ -19,10 +26,17 @@ export interface IGateCoverage {
|
|
|
19
26
|
readonly status: GateCoverageStatus;
|
|
20
27
|
/** Files the rule's primary selector matched. */
|
|
21
28
|
readonly filesMatched: number;
|
|
22
|
-
/** Ids/units the rule extracted (
|
|
29
|
+
/** Ids/units the rule extracted (content units scanned, for the policy plane). */
|
|
23
30
|
readonly unitsMatched: number;
|
|
24
31
|
/** What "units" means for this plane, for honest reporting. */
|
|
25
32
|
readonly unitLabel: string;
|
|
33
|
+
/** What one extracted "id" is on this plane — what `expectIds` is checked against. */
|
|
34
|
+
readonly idLabel: string;
|
|
35
|
+
/**
|
|
36
|
+
* The selector coverage (and the selfTest) consulted, e.g.
|
|
37
|
+
* `registry "mcp-tools" — source packages/…/*.tool.ts (regex-capture)`.
|
|
38
|
+
*/
|
|
39
|
+
readonly consulted: string;
|
|
26
40
|
/** A few of the extracted ids, so the author can eyeball correctness. */
|
|
27
41
|
readonly sampleIds: readonly string[];
|
|
28
42
|
/**
|
|
@@ -31,22 +45,115 @@ export interface IGateCoverage {
|
|
|
31
45
|
* fact almost no consumer of it needs — `gates try --full` does.
|
|
32
46
|
*/
|
|
33
47
|
readonly allIds?: readonly string[];
|
|
48
|
+
/**
|
|
49
|
+
* The extracted ids a `selfTest` may safely PIN, when that is narrower than
|
|
50
|
+
* the whole set. Present only on the policy plane. It holds the distinct hits
|
|
51
|
+
* an `exemptFiles` / `exemptLines` exemption let through (a fixture proving
|
|
52
|
+
* the forbidden pattern still bites). A live finding is debt the author will
|
|
53
|
+
* pay down, so `gates scaffold-selftest` never pins one: the gate would go
|
|
54
|
+
* red on the day the violation is fixed.
|
|
55
|
+
*/
|
|
56
|
+
readonly pinIds?: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* `false` when coverage cannot inspect this rule without a side effect: a
|
|
59
|
+
* `command` baseline with no `watchFiles`, or a doc-reference rule whose
|
|
60
|
+
* registries were not loaded. Such a rule's `coverage` records nothing
|
|
61
|
+
* examined. A caller that ran the rule's own check (`shrk quality`) settles
|
|
62
|
+
* it on that check's coverage instead. Absent when the rule was inspected.
|
|
63
|
+
*/
|
|
64
|
+
readonly inspectable?: boolean;
|
|
34
65
|
/** True when a zero match is a hard failure for this rule. */
|
|
35
66
|
readonly failOnEmpty: boolean;
|
|
36
67
|
readonly error?: string;
|
|
37
68
|
/**
|
|
38
69
|
* A diagnosis for a zero-match that is correct but probably not intended —
|
|
39
70
|
* e.g. an `import-edges` rule targeting `to.files` against barrel imports.
|
|
71
|
+
* Never set on a rule whose empty result is the intended one (a verified
|
|
72
|
+
* fence, an intended-empty rule): it would invite the author to "fix" it.
|
|
40
73
|
*/
|
|
41
74
|
readonly hint?: string;
|
|
42
|
-
/** Unmet `selfTest` expectations, each a
|
|
75
|
+
/** Unmet `selfTest` expectations, each a sentence naming the selector consulted. */
|
|
43
76
|
readonly expectationFailures: readonly string[];
|
|
77
|
+
/**
|
|
78
|
+
* EVERY declared `selfTest` expectation with its result — held, failed, or
|
|
79
|
+
* not-evaluable — from the one evaluator (`gates/self-test.ts`). Present only
|
|
80
|
+
* when the rule declares a selfTest.
|
|
81
|
+
*/
|
|
82
|
+
readonly selfTestChecks?: readonly ISelfTestCheck[];
|
|
83
|
+
/**
|
|
84
|
+
* Globs inside this rule that do nothing — a dead unit a connected rule
|
|
85
|
+
* hides, because its sibling globs keep it matching: an inclusion glob that
|
|
86
|
+
* selects nothing, or a negation that excludes nothing. Prefixed with the
|
|
87
|
+
* side (`declared: src/moved/*.ts`) when the rule reads more than one source.
|
|
88
|
+
* UNMARKED dead units only (round 13): a glob marked `expectEmpty` is
|
|
89
|
+
* intended-empty (accepted) or went-live, never here. Advisory unless
|
|
90
|
+
* `gates coverage --fail-on-dead-units`.
|
|
91
|
+
*/
|
|
92
|
+
readonly deadGlobs: readonly string[];
|
|
93
|
+
/**
|
|
94
|
+
* The units behind {@link deadGlobs}, in the same order, each with the
|
|
95
|
+
* reason it is dead (`matched 0 files`, `matches only files the list's
|
|
96
|
+
* negations exclude (N)`, `excludes nothing — …`). Always set by
|
|
97
|
+
* {@link buildGateCoverage}; read it through {@link coverageDeadUnits}.
|
|
98
|
+
*/
|
|
99
|
+
readonly deadGlobUnits?: readonly ICoverageDeadGlob[];
|
|
100
|
+
/**
|
|
101
|
+
* The LIVE negations inside this rule (`!` entries that exclude at least one
|
|
102
|
+
* file from their own list), each with what it excludes — the narrowing a
|
|
103
|
+
* `!` performs, made visible. Always set by {@link buildGateCoverage}.
|
|
104
|
+
*/
|
|
105
|
+
readonly negations?: readonly ICoverageNegation[];
|
|
106
|
+
/**
|
|
107
|
+
* Present only when the rule's PRIMARY selector list was emptied by its own
|
|
108
|
+
* negations: its inclusion globs matched files and these negations (each
|
|
109
|
+
* with what it excluded) removed every one. A zero match here is the
|
|
110
|
+
* author's `!` at work, not a stale selector — the text line, the `gate`
|
|
111
|
+
* envelope's `skipReason` and `shrk quality` say so. Exits are unchanged.
|
|
112
|
+
*/
|
|
113
|
+
readonly excludedByNegations?: readonly ICoverageNegation[];
|
|
114
|
+
/** How many distinct globs the dead-glob check examined (0 = not checked on this plane). */
|
|
115
|
+
readonly globsChecked: number;
|
|
44
116
|
/**
|
|
45
117
|
* Named extractor this rule's primary selector came from. Present only for a
|
|
46
118
|
* `$use` consumer — the answer to "is this rule looking at the shared set, or
|
|
47
119
|
* a copy of it that has since drifted?".
|
|
48
120
|
*/
|
|
49
121
|
readonly viaExtractor?: string;
|
|
122
|
+
/**
|
|
123
|
+
* How much of the rule's scope this coverage run could see: every unit it
|
|
124
|
+
* matched; for a subset wiring rule, the registered tokens its declared
|
|
125
|
+
* selector produced (from the engine `check wiring` runs, so the two agree);
|
|
126
|
+
* for a fence, the asserted empty set (accepted by `expectEmpty: true`); for
|
|
127
|
+
* an intended-empty rule, the acceptance of its marked inputs; for a rule
|
|
128
|
+
* that could not be inspected, nothing. The `gate` envelope turns a gap here
|
|
129
|
+
* into a `partial` rule.
|
|
130
|
+
*/
|
|
131
|
+
readonly coverage: IVerdictCoverage;
|
|
132
|
+
/**
|
|
133
|
+
* The rule's `expectEmpty` acceptance — settle record B
|
|
134
|
+
* (`settleUnitLiveness(...).acceptance`, `@shrkcrft/core`) over every glob
|
|
135
|
+
* list the rule reads — carried beside the primary {@link coverage} so
|
|
136
|
+
* `settleGateCoverage` hands it to the envelope rule's `unitAcceptance`;
|
|
137
|
+
* without a carrier an acceptance would be dropped silently. Absent when no
|
|
138
|
+
* unit of the rule is intended-empty.
|
|
139
|
+
*/
|
|
140
|
+
readonly unitAcceptance?: IVerdictCoverage;
|
|
141
|
+
/** The rule's dead / intended-empty / went-live glob units as printed lines (`unitStateLists`). */
|
|
142
|
+
readonly units?: IUnitStateLists;
|
|
143
|
+
/**
|
|
144
|
+
* The rule's non-live glob units (dead, intended-empty, went-live, unproven),
|
|
145
|
+
* as the settle judged them — what `--fail-on-dead-units` decides through
|
|
146
|
+
* (`selectorUnitFails`) and what the ⚠ `expectEmpty is stale` rows print.
|
|
147
|
+
*/
|
|
148
|
+
readonly unitLiveness?: readonly IUnitLiveness[];
|
|
149
|
+
/**
|
|
150
|
+
* Set when the rule matched nothing: THE rule-emptiness settle's state
|
|
151
|
+
* (`settleRuleEmptiness`) — `intended-empty` and `asserted-empty-output`
|
|
152
|
+
* read `ok` (accepted), `stale` / `emptied-by-negations` read `empty`.
|
|
153
|
+
*/
|
|
154
|
+
readonly emptiness?: RuleEmptiness;
|
|
155
|
+
/** The skip reason of an `empty` rule, when it is more than "matched 0 units" (a fence over a dead input). */
|
|
156
|
+
readonly emptyReason?: string;
|
|
50
157
|
}
|
|
51
158
|
/**
|
|
52
159
|
* One named extractor, reported ONCE with the rules that share it.
|
|
@@ -72,11 +179,14 @@ export interface IGateCoverageReport {
|
|
|
72
179
|
readonly empty: number;
|
|
73
180
|
readonly errored: number;
|
|
74
181
|
readonly expectationFailures: number;
|
|
182
|
+
/** Dead globs across every rule (the sum of each rule's `deadGlobs`). */
|
|
183
|
+
readonly deadGlobCount: number;
|
|
75
184
|
/** Named extractors referenced by at least one rule, each reported once. */
|
|
76
185
|
readonly extractors: readonly ISharedExtractorCoverage[];
|
|
77
186
|
/**
|
|
78
187
|
* `pass` — every rule matched something and met its expectations.
|
|
79
188
|
* `stale` — at least one rule matched nothing (or broke an expectation).
|
|
189
|
+
* Dead globs inside connected rules are advisory and do not change it.
|
|
80
190
|
*/
|
|
81
191
|
readonly verdict: 'pass' | 'stale';
|
|
82
192
|
}
|
|
@@ -88,4 +198,77 @@ export interface IGateCoverageReport {
|
|
|
88
198
|
* the report never claims a fact it did not check.
|
|
89
199
|
*/
|
|
90
200
|
export declare function buildGateCoverage(cwd: string, rules: readonly IGateRuleView[], excludeDirs?: readonly string[], extractors?: Readonly<Record<string, IWiringSource>>, includeAllIds?: boolean, inspection?: ISharkcraftInspection): IGateCoverageReport;
|
|
201
|
+
/**
|
|
202
|
+
* The coverage report with every pack rule the merge seam REJECTED folded in as
|
|
203
|
+
* a misconfigured (`error`) row (round 12 review, R12-X1) — from THE rows
|
|
204
|
+
* `seamRejectedRules` builds for `gates check`, so the coverage verb and the
|
|
205
|
+
* check cannot disagree about a rule that never ran. It counts in `total` and
|
|
206
|
+
* `errored`, so `settleGateCoverage` fails it (exit 1) and names it unexamined.
|
|
207
|
+
*/
|
|
208
|
+
export declare function withRejectedRules(report: IGateCoverageReport, rejected: readonly (IGateRuleResult & {
|
|
209
|
+
readonly type: IGateRuleView['plane'];
|
|
210
|
+
})[]): IGateCoverageReport;
|
|
211
|
+
/**
|
|
212
|
+
* Whether a rule's dead globs are a finding of their OWN: the rule is connected
|
|
213
|
+
* (it matched something, or it is an inspected fence / clean rule reported
|
|
214
|
+
* `ok`), so sibling globs can hide the dead ones.
|
|
215
|
+
*
|
|
216
|
+
* A rule already reported as matching nothing has no live sibling to hide
|
|
217
|
+
* behind. Its "matched nothing" verdict (skip, or failOnEmpty failure) already
|
|
218
|
+
* says it, so its dead globs are not counted, drawn or failed a second time.
|
|
219
|
+
* `--fail-on-dead-units` must never turn a soft-empty rule's `2` into a `1`.
|
|
220
|
+
* The report count, the ⚠ lines, the settle and the quality notes all read
|
|
221
|
+
* this one predicate.
|
|
222
|
+
*/
|
|
223
|
+
export declare function reportsDeadGlobs(r: IGateCoverage): boolean;
|
|
224
|
+
/**
|
|
225
|
+
* THE dead units of a coverage row, each with its reason — what the ⚠ line,
|
|
226
|
+
* the `--fail-on-dead-units` violation and the `shrk quality` note all print,
|
|
227
|
+
* so the three cannot word one unit differently. A row built without
|
|
228
|
+
* `deadGlobUnits` (a hand-built report) falls back to its `deadGlobs` labels,
|
|
229
|
+
* read as inclusion globs that matched nothing.
|
|
230
|
+
*/
|
|
231
|
+
export declare function coverageDeadUnits(r: IGateCoverage): readonly ICoverageDeadGlob[];
|
|
232
|
+
/**
|
|
233
|
+
* THE went-live units of a coverage row (round 13): each glob marked
|
|
234
|
+
* `expectEmpty` whose target now exists — the fence went live. What the ⚠
|
|
235
|
+
* `expectEmpty is stale` rows, the `--fail-on-dead-units` violation and the
|
|
236
|
+
* `shrk quality` note print.
|
|
237
|
+
*/
|
|
238
|
+
export declare function coverageWentLiveUnits(r: IGateCoverage): readonly IUnitLiveness[];
|
|
239
|
+
/**
|
|
240
|
+
* The selector units that FAIL a coverage row under the given flags — decided
|
|
241
|
+
* by THE predicate every `--fail-on-dead-units` consumer calls
|
|
242
|
+
* (`selectorUnitFails`, core): an unmarked dead glob of a connected rule
|
|
243
|
+
* ({@link reportsDeadGlobs}), and a LOCAL went-live marker. A pack marker that
|
|
244
|
+
* went live is INFO, never a failure; an intended-empty unit never fails.
|
|
245
|
+
*/
|
|
246
|
+
export declare function coverageUnitFailures(r: IGateCoverage, flags: ISelectorUnitFailOptions): readonly {
|
|
247
|
+
readonly selector: string;
|
|
248
|
+
readonly message: string;
|
|
249
|
+
}[];
|
|
250
|
+
/** `declared: src/moved/*.ts (matched 0 files), !src/nowhere/** (excludes nothing — …)`. */
|
|
251
|
+
export declare function formatDeadUnits(units: readonly ICoverageDeadGlob[]): string;
|
|
252
|
+
/** `declared: !src/**\/*.spec.ts (1 file), !docs/drafts/** (3 files)`. */
|
|
253
|
+
export declare function formatNegations(negations: readonly ICoverageNegation[]): string;
|
|
254
|
+
/** Options for {@link settleGateCoverage}. */
|
|
255
|
+
interface ISettleGateCoverageOptions {
|
|
256
|
+
/** `--fail-on-dead-units`: a dead glob inside a connected rule, or a local went-live marker, fails the run. */
|
|
257
|
+
readonly failOnDeadUnits?: boolean;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Settle a coverage report into the shared `gate` envelope — THE derivation of
|
|
261
|
+
* what `gates coverage` concludes.
|
|
262
|
+
*
|
|
263
|
+
* `gates coverage` and `shrk quality`'s coverage item both call this, so the
|
|
264
|
+
* pre-push bundle cannot pass a rule set the verb itself reports broken (a
|
|
265
|
+
* failed selfTest, a stale failOnEmpty selector, a partial rule). A rule that
|
|
266
|
+
* matched nothing is not-verified (2) by default; `failOnEmpty` on the rule
|
|
267
|
+
* makes it a failure (1); `failOnDeadUnits` makes a dead glob inside a
|
|
268
|
+
* connected rule — or a local marker whose target went live — a failure too
|
|
269
|
+
* (`selectorUnitFails`). Each rule's `expectEmpty` acceptance rides on its
|
|
270
|
+
* envelope rule (`unitAcceptance`) into the one settle.
|
|
271
|
+
*/
|
|
272
|
+
export declare function settleGateCoverage(report: IGateCoverageReport, options?: ISettleGateCoverageOptions): IGateEnvelope;
|
|
273
|
+
export {};
|
|
91
274
|
//# sourceMappingURL=rule-coverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-coverage.d.ts","sourceRoot":"","sources":["../../src/gates/rule-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rule-coverage.d.ts","sourceRoot":"","sources":["../../src/gates/rule-coverage.ts"],"names":[],"mappings":"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"}
|