@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
package/dist/surface/tier.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ISurfaceConfig } from '@shrkcrft/config';
|
|
2
2
|
import { CommandTier, type ICommandCatalogEntry } from '../commands/command-catalog.js';
|
|
3
|
+
import type { ISurfaceDenial } from './i-surface-denial.js';
|
|
3
4
|
/**
|
|
4
5
|
* Bootstrap commands. Always tier=Core regardless of any other
|
|
5
6
|
* derivation rule. Listed here (and only here) so the rule is mechanical:
|
|
@@ -14,6 +15,11 @@ import { CommandTier, type ICommandCatalogEntry } from '../commands/command-cata
|
|
|
14
15
|
* recommend`.
|
|
15
16
|
*/
|
|
16
17
|
export declare const BOOTSTRAP_COMMANDS: readonly string[];
|
|
18
|
+
/**
|
|
19
|
+
* The detail of a tool-maintenance command resolved outside SharkCraft's own
|
|
20
|
+
* repository (round 11 §5.1).
|
|
21
|
+
*/
|
|
22
|
+
export declare const TOOL_MAINTENANCE_DETAIL = "maintains SharkCraft itself; does not apply to this repository";
|
|
17
23
|
/**
|
|
18
24
|
* Source explanations for tier classification. Returned by the
|
|
19
25
|
* resolver so `shrk surface explain <name>` can describe why a
|
|
@@ -25,7 +31,21 @@ export declare enum TierSource {
|
|
|
25
31
|
PackContribution = "pack-contribution",
|
|
26
32
|
Override = "override",
|
|
27
33
|
Hidden = "hidden-flag",
|
|
28
|
-
Default = "default"
|
|
34
|
+
Default = "default",
|
|
35
|
+
/**
|
|
36
|
+
* A registered, dispatchable command with no catalog row. Extended (it runs),
|
|
37
|
+
* flagged so `commands doctor` / `surface list` point at the missing row.
|
|
38
|
+
*/
|
|
39
|
+
Uncatalogued = "uncatalogued",
|
|
40
|
+
/**
|
|
41
|
+
* A command that maintains SharkCraft itself (catalog audience
|
|
42
|
+
* `tool-maintenance`), resolved OUTSIDE SharkCraft's own repository:
|
|
43
|
+
* experimental (gated, hidden from `--help`) unless `surface.enabled` names
|
|
44
|
+
* it. Invoking it exits 78 through the surface gate — never a check failure.
|
|
45
|
+
*/
|
|
46
|
+
ToolMaintenance = "tool-maintenance",
|
|
47
|
+
/** Denied by a `surface.disabled` selector (project config or profile). */
|
|
48
|
+
Disabled = "disabled"
|
|
29
49
|
}
|
|
30
50
|
export interface ITierResolution {
|
|
31
51
|
/** Resolved tier (post-derivation, post-config). */
|
|
@@ -36,14 +56,32 @@ export interface ITierResolution {
|
|
|
36
56
|
detail?: string;
|
|
37
57
|
/** True if the user's surface config flipped the default. */
|
|
38
58
|
configApplied?: boolean;
|
|
59
|
+
/** The `surface.disabled` selector (and its layer) that denies the command — source `disabled` only. */
|
|
60
|
+
deniedBy?: ISurfaceDenial;
|
|
39
61
|
}
|
|
40
62
|
export interface ITierResolverContext {
|
|
41
63
|
/** Catalog command names ({@link ICommandCatalogEntry.command}) referenced by spine pipelines. */
|
|
42
64
|
spineCommands: ReadonlySet<string>;
|
|
43
65
|
/** Catalog command names contributed by loaded packs (pack-contributed commands). */
|
|
44
66
|
packContributions: ReadonlyMap<string, string>;
|
|
45
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* The EFFECTIVE `surface{}` block: the active profile's lists merged with the
|
|
69
|
+
* project config's (may be undefined for a fresh repo).
|
|
70
|
+
*/
|
|
46
71
|
surfaceConfig: ISurfaceConfig | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* True only inside SharkCraft's OWN repository — `detectSharkcraftRepo`, the
|
|
74
|
+
* one host authority. Everywhere else a tool-maintenance command resolves
|
|
75
|
+
* experimental with source {@link TierSource.ToolMaintenance}.
|
|
76
|
+
*/
|
|
77
|
+
isToolRepo: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* The project config's OWN `surface.enabled` / `surface.disabled`, before the
|
|
80
|
+
* profile merge. The resolver needs the layer for exactly one rule: an
|
|
81
|
+
* explicit config `enabled` overrides a PROFILE's deny, never a config deny.
|
|
82
|
+
* Absent = `surfaceConfig` IS the project config (no profile layer).
|
|
83
|
+
*/
|
|
84
|
+
explicitSurface?: Pick<ISurfaceConfig, 'enabled' | 'disabled'>;
|
|
47
85
|
}
|
|
48
86
|
/**
|
|
49
87
|
* Mechanically derive a command's tier.
|
|
@@ -52,36 +90,61 @@ export interface ITierResolverContext {
|
|
|
52
90
|
*
|
|
53
91
|
* 1. Bootstrap set → Core.
|
|
54
92
|
* 2. Spine pipeline reference → Core.
|
|
55
|
-
* 3.
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
93
|
+
* 3. A `surface.disabled` selector → Experimental, source `disabled`
|
|
94
|
+
* (never a bootstrap command or one of its subverbs; an explicit config
|
|
95
|
+
* `enabled` overrides a PROFILE's deny, never a config deny).
|
|
96
|
+
* 4. A tool-maintenance command outside SharkCraft's own repository →
|
|
97
|
+
* Experimental, source `tool-maintenance` (unless in surface.enabled).
|
|
98
|
+
* 5. Pack contribution → Experimental (unless in surface.enabled).
|
|
99
|
+
* 6. Explicit catalog `tier` override → that value (cannot demote Core).
|
|
100
|
+
* 7. Catalog overlay `hidden` verdict → Experimental.
|
|
101
|
+
* 8. Otherwise → Extended.
|
|
59
102
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
103
|
+
* Every `enabled` / `hidden` / `disabled` entry is a selector — an exact path
|
|
104
|
+
* (or alias spelling) or `<group> *` — matched by the ONE matcher
|
|
105
|
+
* (`surface-selector.ts`).
|
|
62
106
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* visibility is governed by the catalog's own defaultShowInHelp).
|
|
66
|
-
* - `surface.hidden` contains the command AND tier is Extended →
|
|
67
|
-
* remains Extended-tier but hidden from `--help`. The visibility
|
|
68
|
-
* flip is read by the help renderer, not by the tier resolver
|
|
69
|
-
* directly.
|
|
107
|
+
* After derivation, `surface.hidden` flips `--help` visibility of an Extended
|
|
108
|
+
* command (read by the summary); it never changes callability.
|
|
70
109
|
*
|
|
71
110
|
* Core commands cannot be hidden or disabled. Attempts to do so are
|
|
72
111
|
* surfaced as warnings by `shrk doctor` and `shrk surface list --json`.
|
|
73
112
|
*/
|
|
74
113
|
export declare function resolveTier(entry: ICommandCatalogEntry, context: ITierResolverContext): ITierResolution;
|
|
114
|
+
/**
|
|
115
|
+
* Tier of a command-index path. `entry` is the path's base catalog row, or
|
|
116
|
+
* `undefined` for a registered command the catalog does not document — which
|
|
117
|
+
* still gets the bootstrap / spine / deny / pack derivation, and otherwise
|
|
118
|
+
* resolves Extended with {@link TierSource.Uncatalogued}. `aliases` are the
|
|
119
|
+
* path's alias spellings: a selector naming an alias names the command.
|
|
120
|
+
*/
|
|
121
|
+
export declare function resolveTierForPath(path: string, entry: ICommandCatalogEntry | undefined, context: ITierResolverContext, aliases?: readonly string[]): ITierResolution;
|
|
122
|
+
/**
|
|
123
|
+
* A bootstrap command or one of its subverbs (`surface allow`, `doctor
|
|
124
|
+
* suppress`). A deny selector never applies to one: `surface deny 'surface *'`
|
|
125
|
+
* must not lock the user out of the verb that undoes it.
|
|
126
|
+
*/
|
|
127
|
+
export declare function isBootstrapFamily(name: string): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* THE deny decision: the `surface.disabled` selector that denies a command
|
|
130
|
+
* named by any of `names` (its path plus alias spellings), with the layer that
|
|
131
|
+
* declared it — or `undefined` when nothing denies it.
|
|
132
|
+
*
|
|
133
|
+
* - a config deny always wins (even over a config `enabled` — the summary
|
|
134
|
+
* warns `enable-disable-conflict`);
|
|
135
|
+
* - a deny only the active PROFILE declares is overridden by an explicit
|
|
136
|
+
* config `enabled` match ("config wins over the profile").
|
|
137
|
+
*/
|
|
138
|
+
export declare function surfaceDenial(names: readonly string[], context: ITierResolverContext): ISurfaceDenial | undefined;
|
|
75
139
|
/**
|
|
76
140
|
* Is the command callable from the CLI / MCP in the current
|
|
77
141
|
* surface configuration?
|
|
78
142
|
*
|
|
79
143
|
* - Core: always callable.
|
|
80
144
|
* - Extended: always callable.
|
|
81
|
-
* - Experimental: callable only if in `surface.enabled
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* for `enabled[]`, so this is a simple tier check.
|
|
145
|
+
* - Experimental: callable only if in `surface.enabled` (the resolver has
|
|
146
|
+
* already promoted an enabled command to Extended — and never promotes a
|
|
147
|
+
* denied one).
|
|
85
148
|
*/
|
|
86
149
|
export declare function isCallable(resolution: ITierResolution): boolean;
|
|
87
150
|
/**
|
|
@@ -92,9 +155,9 @@ export declare function isCallable(resolution: ITierResolution): boolean;
|
|
|
92
155
|
* checks the config and consults `defaultShowInHelp(entry)`).
|
|
93
156
|
* - Experimental: never visible in `--help`; only in `surface list`.
|
|
94
157
|
*
|
|
95
|
-
* The caller still consults
|
|
96
|
-
*
|
|
97
|
-
*
|
|
158
|
+
* The caller still consults the catalog's help rule for the underlying
|
|
159
|
+
* surface/lifecycle gating; this function answers "does the tier permit
|
|
160
|
+
* visibility at all?".
|
|
98
161
|
*/
|
|
99
162
|
export declare function isVisibleInDefaultHelp(resolution: ITierResolution, hiddenByConfig: boolean): boolean;
|
|
100
163
|
//# sourceMappingURL=tier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier.d.ts","sourceRoot":"","sources":["../../src/surface/tier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"tier.d.ts","sourceRoot":"","sources":["../../src/surface/tier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,WAAW,EAEX,KAAK,oBAAoB,EAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAW9C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mEAAmE,CAAC;AAExG;;;;GAIG;AACH,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,gBAAgB,sBAAsB;IACtC,QAAQ,aAAa;IACrB,MAAM,gBAAgB;IACtB,OAAO,YAAY;IACnB;;;OAGG;IACH,YAAY,iBAAiB;IAC7B;;;;;OAKG;IACH,eAAe,qBAAqB;IACpC,2EAA2E;IAC3E,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,IAAI,EAAE,WAAW,CAAC;IAClB,sCAAsC;IACtC,MAAM,EAAE,UAAU,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,qFAAqF;IACrF,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,oBAAoB,GAC5B,eAAe,CAEjB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,oBAAoB,GAAG,SAAS,EACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,SAAS,MAAM,EAAO,GAC9B,eAAe,CAEjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,oBAAoB,GAC5B,cAAc,GAAG,SAAS,CAQ5B;AAiID;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAK/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAC3B,cAAc,EAAE,OAAO,GACtB,OAAO,CAKT"}
|
package/dist/surface/tier.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { CommandTier, } from "../commands/command-catalog.js";
|
|
1
|
+
import { CommandTier, isToolMaintenance, } from "../commands/command-catalog.js";
|
|
2
|
+
import { SurfaceLayer } from "./surface-layer.js";
|
|
3
|
+
import { firstMatchingSelector } from "./surface-selector.js";
|
|
2
4
|
/**
|
|
3
5
|
* Bootstrap commands. Always tier=Core regardless of any other
|
|
4
6
|
* derivation rule. Listed here (and only here) so the rule is mechanical:
|
|
@@ -24,6 +26,11 @@ export const BOOTSTRAP_COMMANDS = Object.freeze([
|
|
|
24
26
|
// completeness so `surface list` surfaces it.
|
|
25
27
|
'--about',
|
|
26
28
|
]);
|
|
29
|
+
/**
|
|
30
|
+
* The detail of a tool-maintenance command resolved outside SharkCraft's own
|
|
31
|
+
* repository (round 11 §5.1).
|
|
32
|
+
*/
|
|
33
|
+
export const TOOL_MAINTENANCE_DETAIL = 'maintains SharkCraft itself; does not apply to this repository';
|
|
27
34
|
/**
|
|
28
35
|
* Source explanations for tier classification. Returned by the
|
|
29
36
|
* resolver so `shrk surface explain <name>` can describe why a
|
|
@@ -37,6 +44,20 @@ export var TierSource;
|
|
|
37
44
|
TierSource["Override"] = "override";
|
|
38
45
|
TierSource["Hidden"] = "hidden-flag";
|
|
39
46
|
TierSource["Default"] = "default";
|
|
47
|
+
/**
|
|
48
|
+
* A registered, dispatchable command with no catalog row. Extended (it runs),
|
|
49
|
+
* flagged so `commands doctor` / `surface list` point at the missing row.
|
|
50
|
+
*/
|
|
51
|
+
TierSource["Uncatalogued"] = "uncatalogued";
|
|
52
|
+
/**
|
|
53
|
+
* A command that maintains SharkCraft itself (catalog audience
|
|
54
|
+
* `tool-maintenance`), resolved OUTSIDE SharkCraft's own repository:
|
|
55
|
+
* experimental (gated, hidden from `--help`) unless `surface.enabled` names
|
|
56
|
+
* it. Invoking it exits 78 through the surface gate — never a check failure.
|
|
57
|
+
*/
|
|
58
|
+
TierSource["ToolMaintenance"] = "tool-maintenance";
|
|
59
|
+
/** Denied by a `surface.disabled` selector (project config or profile). */
|
|
60
|
+
TierSource["Disabled"] = "disabled";
|
|
40
61
|
})(TierSource || (TierSource = {}));
|
|
41
62
|
/**
|
|
42
63
|
* Mechanically derive a command's tier.
|
|
@@ -45,27 +66,70 @@ export var TierSource;
|
|
|
45
66
|
*
|
|
46
67
|
* 1. Bootstrap set → Core.
|
|
47
68
|
* 2. Spine pipeline reference → Core.
|
|
48
|
-
* 3.
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
69
|
+
* 3. A `surface.disabled` selector → Experimental, source `disabled`
|
|
70
|
+
* (never a bootstrap command or one of its subverbs; an explicit config
|
|
71
|
+
* `enabled` overrides a PROFILE's deny, never a config deny).
|
|
72
|
+
* 4. A tool-maintenance command outside SharkCraft's own repository →
|
|
73
|
+
* Experimental, source `tool-maintenance` (unless in surface.enabled).
|
|
74
|
+
* 5. Pack contribution → Experimental (unless in surface.enabled).
|
|
75
|
+
* 6. Explicit catalog `tier` override → that value (cannot demote Core).
|
|
76
|
+
* 7. Catalog overlay `hidden` verdict → Experimental.
|
|
77
|
+
* 8. Otherwise → Extended.
|
|
52
78
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
79
|
+
* Every `enabled` / `hidden` / `disabled` entry is a selector — an exact path
|
|
80
|
+
* (or alias spelling) or `<group> *` — matched by the ONE matcher
|
|
81
|
+
* (`surface-selector.ts`).
|
|
55
82
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* visibility is governed by the catalog's own defaultShowInHelp).
|
|
59
|
-
* - `surface.hidden` contains the command AND tier is Extended →
|
|
60
|
-
* remains Extended-tier but hidden from `--help`. The visibility
|
|
61
|
-
* flip is read by the help renderer, not by the tier resolver
|
|
62
|
-
* directly.
|
|
83
|
+
* After derivation, `surface.hidden` flips `--help` visibility of an Extended
|
|
84
|
+
* command (read by the summary); it never changes callability.
|
|
63
85
|
*
|
|
64
86
|
* Core commands cannot be hidden or disabled. Attempts to do so are
|
|
65
87
|
* surfaced as warnings by `shrk doctor` and `shrk surface list --json`.
|
|
66
88
|
*/
|
|
67
89
|
export function resolveTier(entry, context) {
|
|
68
|
-
|
|
90
|
+
return deriveTier(entry.command, entry, context, []);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Tier of a command-index path. `entry` is the path's base catalog row, or
|
|
94
|
+
* `undefined` for a registered command the catalog does not document — which
|
|
95
|
+
* still gets the bootstrap / spine / deny / pack derivation, and otherwise
|
|
96
|
+
* resolves Extended with {@link TierSource.Uncatalogued}. `aliases` are the
|
|
97
|
+
* path's alias spellings: a selector naming an alias names the command.
|
|
98
|
+
*/
|
|
99
|
+
export function resolveTierForPath(path, entry, context, aliases = []) {
|
|
100
|
+
return deriveTier(path, entry, context, aliases);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A bootstrap command or one of its subverbs (`surface allow`, `doctor
|
|
104
|
+
* suppress`). A deny selector never applies to one: `surface deny 'surface *'`
|
|
105
|
+
* must not lock the user out of the verb that undoes it.
|
|
106
|
+
*/
|
|
107
|
+
export function isBootstrapFamily(name) {
|
|
108
|
+
return BOOTSTRAP_COMMANDS.some((b) => name === b || name.startsWith(`${b} `));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* THE deny decision: the `surface.disabled` selector that denies a command
|
|
112
|
+
* named by any of `names` (its path plus alias spellings), with the layer that
|
|
113
|
+
* declared it — or `undefined` when nothing denies it.
|
|
114
|
+
*
|
|
115
|
+
* - a config deny always wins (even over a config `enabled` — the summary
|
|
116
|
+
* warns `enable-disable-conflict`);
|
|
117
|
+
* - a deny only the active PROFILE declares is overridden by an explicit
|
|
118
|
+
* config `enabled` match ("config wins over the profile").
|
|
119
|
+
*/
|
|
120
|
+
export function surfaceDenial(names, context) {
|
|
121
|
+
const explicit = context.explicitSurface ?? context.surfaceConfig;
|
|
122
|
+
const configSelector = firstMatchingSelector(explicit?.disabled, names);
|
|
123
|
+
if (configSelector !== undefined)
|
|
124
|
+
return { selector: configSelector, origin: SurfaceLayer.Config };
|
|
125
|
+
const mergedSelector = firstMatchingSelector(context.surfaceConfig?.disabled, names);
|
|
126
|
+
if (mergedSelector === undefined)
|
|
127
|
+
return undefined;
|
|
128
|
+
if (firstMatchingSelector(explicit?.enabled, names) !== undefined)
|
|
129
|
+
return undefined;
|
|
130
|
+
return { selector: mergedSelector, origin: SurfaceLayer.Profile };
|
|
131
|
+
}
|
|
132
|
+
function deriveTier(name, entry, context, aliases) {
|
|
69
133
|
// 1. Bootstrap set always wins.
|
|
70
134
|
if (BOOTSTRAP_COMMANDS.includes(name)) {
|
|
71
135
|
return {
|
|
@@ -82,10 +146,33 @@ export function resolveTier(entry, context) {
|
|
|
82
146
|
detail: 'referenced from a spine pipeline',
|
|
83
147
|
};
|
|
84
148
|
}
|
|
85
|
-
|
|
149
|
+
const names = [name, ...aliases];
|
|
150
|
+
// 3. A deny selector. Not callable, whatever the other derivations say.
|
|
151
|
+
const deniedBy = isBootstrapFamily(name) ? undefined : surfaceDenial(names, context);
|
|
152
|
+
if (deniedBy) {
|
|
153
|
+
return {
|
|
154
|
+
tier: CommandTier.Experimental,
|
|
155
|
+
source: TierSource.Disabled,
|
|
156
|
+
detail: deniedBy.origin === SurfaceLayer.Config
|
|
157
|
+
? `disabled by surface.disabled ('${deniedBy.selector}')`
|
|
158
|
+
: `disabled by the ${profileLabel(context)} surface profile ('${deniedBy.selector}')`,
|
|
159
|
+
configApplied: true,
|
|
160
|
+
deniedBy,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const enabled = firstMatchingSelector(context.surfaceConfig?.enabled, names) !== undefined;
|
|
164
|
+
// 4. A command that maintains SharkCraft itself, outside SharkCraft's repo.
|
|
165
|
+
if (entry && isToolMaintenance(entry) && !context.isToolRepo) {
|
|
166
|
+
return {
|
|
167
|
+
tier: enabled ? CommandTier.Extended : CommandTier.Experimental,
|
|
168
|
+
source: TierSource.ToolMaintenance,
|
|
169
|
+
detail: enabled ? `${TOOL_MAINTENANCE_DETAIL} — enabled in surface.enabled` : TOOL_MAINTENANCE_DETAIL,
|
|
170
|
+
...(enabled ? { configApplied: true } : {}),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// 5. Pack contributions default to Experimental, unless explicitly enabled.
|
|
86
174
|
const pack = context.packContributions.get(name);
|
|
87
175
|
if (pack !== undefined) {
|
|
88
|
-
const enabled = (context.surfaceConfig?.enabled ?? []).includes(name);
|
|
89
176
|
return {
|
|
90
177
|
tier: enabled ? CommandTier.Extended : CommandTier.Experimental,
|
|
91
178
|
source: TierSource.PackContribution,
|
|
@@ -95,11 +182,23 @@ export function resolveTier(entry, context) {
|
|
|
95
182
|
configApplied: enabled,
|
|
96
183
|
};
|
|
97
184
|
}
|
|
98
|
-
//
|
|
185
|
+
// No catalog row: the derivations above are all that apply.
|
|
186
|
+
if (!entry) {
|
|
187
|
+
return {
|
|
188
|
+
tier: CommandTier.Extended,
|
|
189
|
+
source: TierSource.Uncatalogued,
|
|
190
|
+
// `commands doctor` maintains SharkCraft itself (exit 78 elsewhere): only
|
|
191
|
+
// inside the tool repository is it the remedy. Outside, the missing row
|
|
192
|
+
// is SharkCraft's catalog gap — nothing this repository can fix.
|
|
193
|
+
detail: context.isToolRepo
|
|
194
|
+
? 'registered but has no catalog row — run `shrk commands doctor`'
|
|
195
|
+
: "registered but missing from SharkCraft's command catalog — a SharkCraft catalog gap, not a problem in this repository",
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// 6. Explicit override on the catalog entry.
|
|
99
199
|
if (entry.tier !== undefined) {
|
|
100
200
|
// Cannot demote Core. The override applies for Extended/Experimental only.
|
|
101
201
|
if (entry.tier === CommandTier.Experimental) {
|
|
102
|
-
const enabled = (context.surfaceConfig?.enabled ?? []).includes(name);
|
|
103
202
|
return {
|
|
104
203
|
tier: enabled ? CommandTier.Extended : CommandTier.Experimental,
|
|
105
204
|
source: TierSource.Override,
|
|
@@ -113,14 +212,13 @@ export function resolveTier(entry, context) {
|
|
|
113
212
|
detail: `catalog override (tier=${entry.tier})`,
|
|
114
213
|
};
|
|
115
214
|
}
|
|
116
|
-
//
|
|
215
|
+
// 7. Catalog overlay `hidden` verdict implies Experimental.
|
|
117
216
|
// We can't import the overlay here without a circular dep risk; the
|
|
118
217
|
// caller passes a precomputed view via context. For now, we rely on
|
|
119
218
|
// the catalog's surface=Internal/Legacy combined with showInDefaultHelp.
|
|
120
219
|
// If the entry is marked showInDefaultHelp: false explicitly, that's a
|
|
121
220
|
// weaker signal than the overlay but still pushes toward Experimental.
|
|
122
221
|
if (entry.showInDefaultHelp === false) {
|
|
123
|
-
const enabled = (context.surfaceConfig?.enabled ?? []).includes(name);
|
|
124
222
|
return {
|
|
125
223
|
tier: enabled ? CommandTier.Extended : CommandTier.Experimental,
|
|
126
224
|
source: TierSource.Hidden,
|
|
@@ -128,23 +226,27 @@ export function resolveTier(entry, context) {
|
|
|
128
226
|
configApplied: enabled,
|
|
129
227
|
};
|
|
130
228
|
}
|
|
131
|
-
//
|
|
229
|
+
// 8. Default — Extended. No `detail`: it was the same placeholder sentence on
|
|
230
|
+
// every one of ~436 rows, so the listing could not say what anything does.
|
|
231
|
+
// `surface explain` renders the source instead.
|
|
132
232
|
return {
|
|
133
233
|
tier: CommandTier.Extended,
|
|
134
234
|
source: TierSource.Default,
|
|
135
|
-
detail: 'default for catalog entries not in spine and not pack-contributed',
|
|
136
235
|
};
|
|
137
236
|
}
|
|
237
|
+
function profileLabel(context) {
|
|
238
|
+
const id = context.surfaceConfig?.profile;
|
|
239
|
+
return id ? `'${id}'` : 'active';
|
|
240
|
+
}
|
|
138
241
|
/**
|
|
139
242
|
* Is the command callable from the CLI / MCP in the current
|
|
140
243
|
* surface configuration?
|
|
141
244
|
*
|
|
142
245
|
* - Core: always callable.
|
|
143
246
|
* - Extended: always callable.
|
|
144
|
-
* - Experimental: callable only if in `surface.enabled
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* for `enabled[]`, so this is a simple tier check.
|
|
247
|
+
* - Experimental: callable only if in `surface.enabled` (the resolver has
|
|
248
|
+
* already promoted an enabled command to Extended — and never promotes a
|
|
249
|
+
* denied one).
|
|
148
250
|
*/
|
|
149
251
|
export function isCallable(resolution) {
|
|
150
252
|
return (resolution.tier === CommandTier.Core ||
|
|
@@ -158,9 +260,9 @@ export function isCallable(resolution) {
|
|
|
158
260
|
* checks the config and consults `defaultShowInHelp(entry)`).
|
|
159
261
|
* - Experimental: never visible in `--help`; only in `surface list`.
|
|
160
262
|
*
|
|
161
|
-
* The caller still consults
|
|
162
|
-
*
|
|
163
|
-
*
|
|
263
|
+
* The caller still consults the catalog's help rule for the underlying
|
|
264
|
+
* surface/lifecycle gating; this function answers "does the tier permit
|
|
265
|
+
* visibility at all?".
|
|
164
266
|
*/
|
|
165
267
|
export function isVisibleInDefaultHelp(resolution, hiddenByConfig) {
|
|
166
268
|
if (resolution.tier === CommandTier.Core)
|
|
@@ -49,6 +49,11 @@ export declare function sanitizeFlagNames(rawArgv: readonly string[]): string[];
|
|
|
49
49
|
/**
|
|
50
50
|
* Extract the leading command path (top-level + first
|
|
51
51
|
* subcommand if present, no flags) from raw argv.
|
|
52
|
+
*
|
|
53
|
+
* `maxTokens` defaults to 2, which is what the usage log records. The
|
|
54
|
+
* verdict-verb check passes `VERDICT_PATH_TOKENS` (3) so a three-token verdict
|
|
55
|
+
* verb (`docs references check`) can be told apart from its informational
|
|
56
|
+
* siblings (`docs references list`).
|
|
52
57
|
*/
|
|
53
|
-
export declare function extractCommandPath(rawArgv: readonly string[]): string;
|
|
58
|
+
export declare function extractCommandPath(rawArgv: readonly string[], maxTokens?: number): string;
|
|
54
59
|
//# sourceMappingURL=usage-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-log.d.ts","sourceRoot":"","sources":["../../src/usage/usage-log.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAqB3D;AAcD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAkBtE;AAED
|
|
1
|
+
{"version":3,"file":"usage-log.d.ts","sourceRoot":"","sources":["../../src/usage/usage-log.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAqB3D;AAcD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAkBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,MAAM,CAQpF"}
|
package/dist/usage/usage-log.js
CHANGED
|
@@ -91,13 +91,18 @@ export function sanitizeFlagNames(rawArgv) {
|
|
|
91
91
|
/**
|
|
92
92
|
* Extract the leading command path (top-level + first
|
|
93
93
|
* subcommand if present, no flags) from raw argv.
|
|
94
|
+
*
|
|
95
|
+
* `maxTokens` defaults to 2, which is what the usage log records. The
|
|
96
|
+
* verdict-verb check passes `VERDICT_PATH_TOKENS` (3) so a three-token verdict
|
|
97
|
+
* verb (`docs references check`) can be told apart from its informational
|
|
98
|
+
* siblings (`docs references list`).
|
|
94
99
|
*/
|
|
95
|
-
export function extractCommandPath(rawArgv) {
|
|
100
|
+
export function extractCommandPath(rawArgv, maxTokens = 2) {
|
|
96
101
|
const tokens = [];
|
|
97
102
|
for (const t of rawArgv) {
|
|
98
103
|
if (t.startsWith('-'))
|
|
99
104
|
break;
|
|
100
|
-
if (tokens.length >=
|
|
105
|
+
if (tokens.length >= maxTokens)
|
|
101
106
|
break;
|
|
102
107
|
tokens.push(t);
|
|
103
108
|
}
|
|
@@ -26,6 +26,15 @@ export interface IRunValidationLoopResult {
|
|
|
26
26
|
commandsRun: IValidationCommandResult[];
|
|
27
27
|
commandsFailed: string[];
|
|
28
28
|
boundaryViolations: number;
|
|
29
|
+
/**
|
|
30
|
+
* THE boundary verdict (`runBoundaryCheck`, what `check boundaries`
|
|
31
|
+
* reports): `not-verified` when zero rules loaded or part of a rule's scope
|
|
32
|
+
* was never examined — never a silent `boundaryViolations: 0`. Absent when
|
|
33
|
+
* the scan itself could not run.
|
|
34
|
+
*/
|
|
35
|
+
boundaryVerdict?: 'pass' | 'fail' | 'not-verified' | 'usage-error';
|
|
36
|
+
/** Why the boundary verdict is not a clean pass, when it is not. */
|
|
37
|
+
boundaryShortfalls?: readonly string[];
|
|
29
38
|
reportPath?: string;
|
|
30
39
|
}
|
|
31
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-validation-loop.d.ts","sourceRoot":"","sources":["../../src/validation/run-validation-loop.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2EAA2E;IAC3E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"run-validation-loop.d.ts","sourceRoot":"","sources":["../../src/validation/run-validation-loop.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2EAA2E;IAC3E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IACnE,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA2GnC"}
|
|
@@ -75,19 +75,22 @@ export async function runValidationLoop(options) {
|
|
|
75
75
|
out.passed = false;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
// Boundary scan as a non-fatal warning (mirrors `shrk apply --validate`)
|
|
78
|
+
// Boundary scan as a non-fatal warning (mirrors `shrk apply --validate`) —
|
|
79
|
+
// through THE boundary orchestrator (round 11 review R11-GAP-3). It used to
|
|
80
|
+
// evaluate without the tsconfig alias map, skip unread files, and report
|
|
81
|
+
// `boundaryViolations: 0` over zero rules; zero rules or an unexamined scope
|
|
82
|
+
// is now `boundaryVerdict: not-verified` (a warning), an errored rule fails.
|
|
79
83
|
try {
|
|
80
|
-
const { inspectSharkcraft } = await import('@shrkcrft/inspector');
|
|
81
|
-
const { evaluateBoundaries, scanImports } = await import('@shrkcrft/boundaries');
|
|
84
|
+
const { inspectSharkcraft, runBoundaryCheck } = await import('@shrkcrft/inspector');
|
|
82
85
|
const inspection = await inspectSharkcraft({ cwd: options.cwd });
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
out.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
const evalResult = runBoundaryCheck(inspection);
|
|
87
|
+
out.boundaryViolations = evalResult.violations.length;
|
|
88
|
+
out.boundaryVerdict = evalResult.verdict;
|
|
89
|
+
if (evalResult.shortfalls.length > 0)
|
|
90
|
+
out.boundaryShortfalls = evalResult.shortfalls;
|
|
91
|
+
out.warnings += evalResult.counts.warning + (evalResult.verdict === 'not-verified' ? 1 : 0);
|
|
92
|
+
if (evalResult.counts.error > 0 || evalResult.loadIssues.length > 0)
|
|
93
|
+
out.passed = false;
|
|
91
94
|
}
|
|
92
95
|
catch {
|
|
93
96
|
// boundary scan is best-effort.
|
|
@@ -21,16 +21,15 @@ export interface IEmittedTypecheckResult {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Typecheck a set of EMITTED (not-yet-written) files against the project's
|
|
24
|
-
* detected tsconfig, without touching disk
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* a scaffold that references a real project symbol resolves, and a template bug
|
|
28
|
-
* (bad syntax, a dangling import, a type mismatch) surfaces BEFORE apply instead
|
|
29
|
-
* of at the human's next build.
|
|
24
|
+
* detected tsconfig, without touching disk — a scaffold that references a real
|
|
25
|
+
* project symbol resolves, and a template bug (bad syntax, a dangling import, a
|
|
26
|
+
* type mismatch) surfaces BEFORE apply instead of at the human's next build.
|
|
30
27
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* A thin wrapper over the ONE in-process TypeScript check,
|
|
29
|
+
* `typecheckFiles` (`@shrkcrft/inspector`): the emitted bodies are passed as
|
|
30
|
+
* an overlay and only diagnostics IN the emitted files are reported —
|
|
31
|
+
* pre-existing errors elsewhere in the project are ignored (this is a
|
|
32
|
+
* generation gate, not a whole-repo typecheck).
|
|
34
33
|
*/
|
|
35
34
|
export declare function typecheckEmittedFiles(projectRoot: string, files: readonly IEmittedFile[]): IEmittedTypecheckResult;
|
|
36
35
|
//# sourceMappingURL=typecheck-emitted.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck-emitted.d.ts","sourceRoot":"","sources":["../../src/validation/typecheck-emitted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typecheck-emitted.d.ts","sourceRoot":"","sources":["../../src/validation/typecheck-emitted.ts"],"names":[],"mappings":"AAGA,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC1C,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,YAAY,EAAE,GAC7B,uBAAuB,CAczB"}
|