@shrkcrft/cli 0.1.0-alpha.29 → 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 +76 -0
- package/dist/commands/baseline.command.d.ts.map +1 -1
- package/dist/commands/baseline.command.js +599 -75
- 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 +164 -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 +1260 -324
- 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 +8 -1
- 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 +20 -0
- package/dist/commands/docs-references.command.d.ts.map +1 -0
- package/dist/commands/docs-references.command.js +520 -0
- package/dist/commands/doctor.command.d.ts.map +1 -1
- package/dist/commands/doctor.command.js +60 -5
- 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 +54 -0
- package/dist/commands/gates.command.d.ts.map +1 -1
- package/dist/commands/gates.command.js +1314 -64
- 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 +62 -0
- package/dist/commands/generated.command.d.ts.map +1 -1
- package/dist/commands/generated.command.js +639 -156
- 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 +203 -25
- 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 +362 -74
- 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 +67 -0
- package/dist/gates/gate-rule-globs.d.ts.map +1 -0
- package/dist/gates/gate-rule-globs.js +139 -0
- package/dist/gates/gate-rule-view.d.ts +25 -6
- package/dist/gates/gate-rule-view.d.ts.map +1 -1
- package/dist/gates/gate-rule-view.js +105 -77
- 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 +225 -4
- package/dist/gates/rule-coverage.d.ts.map +1 -1
- package/dist/gates/rule-coverage.js +610 -43
- package/dist/gates/run-gate-planes.d.ts +58 -0
- package/dist/gates/run-gate-planes.d.ts.map +1 -0
- package/dist/gates/run-gate-planes.js +403 -0
- 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 +204 -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
|
-
import { type IBaselineRule, type IGeneratedArtifactRule, type IPolicyRule, type IRegistrationIdiom, type IRegistryDeclaration, type IRuleSelfTest, type IWiringRule } from '@shrkcrft/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { type IBaselineRule, type IDocReferenceRule, type IGeneratedArtifactRule, type IPolicyRule, type IRegistrationIdiom, type IRegistryDeclaration, type IRuleSelfTest, type IWiringRule } from '@shrkcrft/core';
|
|
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.
|
|
@@ -17,9 +21,14 @@ export interface IGateRuleView {
|
|
|
17
21
|
readonly severity: 'error' | 'warning';
|
|
18
22
|
/** True when a zero-match is a hard failure rather than a loud skip. */
|
|
19
23
|
readonly failOnEmpty: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* True when an EMPTY result is the rule's passing state (a fence). The
|
|
26
|
+
* loud-skip contract is inverted for these, and only for these.
|
|
27
|
+
*/
|
|
28
|
+
readonly expectEmpty?: boolean;
|
|
20
29
|
readonly selfTest?: IRuleSelfTest;
|
|
21
30
|
/** The underlying rule, for the plane-specific explainer. */
|
|
22
|
-
readonly raw: IWiringRule | IPolicyRule | IRegistryDeclaration | IRegistrationIdiom | IBaselineRule | IGeneratedArtifactRule;
|
|
31
|
+
readonly raw: IWiringRule | IPolicyRule | IRegistryDeclaration | IRegistrationIdiom | IBaselineRule | IGeneratedArtifactRule | IDocReferenceRule;
|
|
23
32
|
}
|
|
24
33
|
/** The config planes this view is built from. */
|
|
25
34
|
export interface IGatePlanes {
|
|
@@ -29,7 +38,17 @@ export interface IGatePlanes {
|
|
|
29
38
|
readonly registrationGraph?: readonly IRegistrationIdiom[];
|
|
30
39
|
readonly baselines?: readonly IBaselineRule[];
|
|
31
40
|
readonly generatedArtifacts?: readonly IGeneratedArtifactRule[];
|
|
41
|
+
readonly docReferences?: readonly IDocReferenceRule[];
|
|
32
42
|
}
|
|
33
|
-
/** 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. */
|
|
34
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;
|
|
35
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,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,81 +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
|
-
|
|
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 } : {}),
|
|
43
46
|
severity: 'warning',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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 } : {}),
|
|
53
58
|
severity: 'warning',
|
|
54
|
-
|
|
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
|
-
|
|
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)`;
|
|
81
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"}
|
|
@@ -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
|