@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biome.command.d.ts","sourceRoot":"","sources":["../../src/commands/biome.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"biome.command.d.ts","sourceRoot":"","sources":["../../src/commands/biome.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAyChC,eAAO,MAAM,oBAAoB,EAAE,eAuDlC,CAAC;AA+BF,eAAO,MAAM,kBAAkB,EAAE,eAkEhC,CAAC;AAkGF,eAAO,MAAM,iBAAiB,EAAE,eA4C/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,eAwC5C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAqD1B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import * as nodePath from 'node:path';
|
|
3
3
|
import { inspectSharkcraft } from '@shrkcrft/inspector';
|
|
4
4
|
import { flagBool, flagString, resolveCwd, } from "../command-registry.js";
|
|
5
|
+
import { PositionalMode } from "../dispatch/positional-mode.js";
|
|
5
6
|
import { asJson, header } from "../output/format-output.js";
|
|
6
7
|
/**
|
|
7
8
|
* Biome bridge. Biome's rule grammar is narrower than ESLint's, so this
|
|
@@ -316,6 +317,25 @@ export const biomeExplainLimitationsCommand = {
|
|
|
316
317
|
};
|
|
317
318
|
export const biomeCommand = {
|
|
318
319
|
name: 'biome',
|
|
320
|
+
// positional[0] is the bridge verb — `run` refuses anything else. Each spec
|
|
321
|
+
// reuses its verb handler's usage, so the flags the verb reads (`--force`,
|
|
322
|
+
// `--output`, `--from`, …) are documented for the post-run flag detector.
|
|
323
|
+
positionals: PositionalMode.None,
|
|
324
|
+
subverbs: [
|
|
325
|
+
{
|
|
326
|
+
name: 'scaffold',
|
|
327
|
+
aliases: ['config'],
|
|
328
|
+
description: biomeScaffoldCommand.description,
|
|
329
|
+
usage: biomeScaffoldCommand.usage,
|
|
330
|
+
},
|
|
331
|
+
{ name: 'report', description: biomeReportCommand.description, usage: biomeReportCommand.usage },
|
|
332
|
+
{ name: 'rules', description: biomeRulesCommand.description, usage: biomeRulesCommand.usage },
|
|
333
|
+
{
|
|
334
|
+
name: 'explain-limitations',
|
|
335
|
+
description: biomeExplainLimitationsCommand.description,
|
|
336
|
+
usage: biomeExplainLimitationsCommand.usage,
|
|
337
|
+
},
|
|
338
|
+
],
|
|
319
339
|
description: 'Biome bridge. `scaffold` emits a minimal biome.json that ignores SharkCraft generated paths; `report` converts boundary JSON to a Biome-adjacent diagnostics shape; `rules` inventories what can be bridged; `explain-limitations` documents what cannot. `config` is an alias for `scaffold`.',
|
|
320
340
|
usage: 'shrk biome <scaffold|config|report|rules|explain-limitations> [...flags]',
|
|
321
341
|
async run(args) {
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { type ICommandHandler } from '../command-registry.js';
|
|
1
|
+
import { type ICommandHandler, type ParsedArgs } from '../command-registry.js';
|
|
2
2
|
export declare const boundariesListCommand: ICommandHandler;
|
|
3
3
|
export declare const boundariesGetCommand: ICommandHandler;
|
|
4
4
|
export declare const boundariesExplainCommand: ICommandHandler;
|
|
5
|
+
/**
|
|
6
|
+
* `shrk explain <ruleId>` for a BOUNDARY rule id (round 13): the unified
|
|
7
|
+
* entrypoint resolved gate-plane rule ids only, so a boundary rule fell through
|
|
8
|
+
* to the knowledge topic search ("no matching knowledge entries"). Answers with
|
|
9
|
+
* `boundaries explain` when the id names a registered boundary rule; otherwise
|
|
10
|
+
* `undefined`, and the caller keeps its topic search.
|
|
11
|
+
*/
|
|
12
|
+
export declare function tryExplainBoundaryRule(args: ParsedArgs, id: string): Promise<number | undefined>;
|
|
5
13
|
export declare const boundariesInferCommand: ICommandHandler;
|
|
6
14
|
/** Polyglot enforcement subcommand. */
|
|
7
15
|
export declare const boundariesEnforceCommand: ICommandHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundaries.command.d.ts","sourceRoot":"","sources":["../../src/commands/boundaries.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"boundaries.command.d.ts","sourceRoot":"","sources":["../../src/commands/boundaries.command.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAwB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAc,MAAM,wBAAwB,CAAC;AAKjH,eAAO,MAAM,qBAAqB,EAAE,eA0BnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAgDlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAyGtC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAItG;AAED,eAAO,MAAM,sBAAsB,EAAE,eAyEpC,CAAC;AAsCF,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,EAAE,eAqEtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eA6CtC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import * as nodePath from 'node:path';
|
|
3
|
-
import { buildOnboardingPlan, buildPolyglotBoundaryReport, inspectSharkcraft, renderPolyglotBoundaryReportMarkdown, renderPolyglotBoundaryReportText, suggestBoundaryFixes, } from '@shrkcrft/inspector';
|
|
4
|
-
import {
|
|
3
|
+
import { buildOnboardingPlan, buildPolyglotBoundaryReport, ContributionKind, describeBoundaryConfiguration, inspectSharkcraft, renderPolyglotBoundaryReportMarkdown, renderPolyglotBoundaryReportText, runBoundaryCheck, suggestBoundaryFixes, } from '@shrkcrft/inspector';
|
|
4
|
+
import { boundaryForbiddenMatch, boundaryIntendedEmptyLine, boundaryPatternOverlaps, boundaryRuleFailsOnEmpty, boundaryRuleSeverity, } from '@shrkcrft/boundaries';
|
|
5
5
|
import { flagBool, flagString, resolveCwd } from "../command-registry.js";
|
|
6
6
|
import { asJson, header, kv } from "../output/format-output.js";
|
|
7
|
+
import { writeRejectedEntriesNote } from "../output/rejected-entries-note.js";
|
|
8
|
+
import { ExitCode } from "../exit-codes.js";
|
|
7
9
|
export const boundariesListCommand = {
|
|
8
10
|
name: 'list',
|
|
9
11
|
description: 'List all registered boundary rules (local + pack-contributed).',
|
|
@@ -11,18 +13,22 @@ export const boundariesListCommand = {
|
|
|
11
13
|
async run(args) {
|
|
12
14
|
const inspection = await inspectSharkcraft({ cwd: resolveCwd(args) });
|
|
13
15
|
const rules = inspection.boundaryRegistry.list();
|
|
16
|
+
// A rule its loader refused is named (round 12, 12.1); `check boundaries`
|
|
17
|
+
// reports it as an ERRORED rule. The exit stays 0: a list is no verdict.
|
|
18
|
+
const note = { next: 'shrk check boundaries' };
|
|
14
19
|
if (flagBool(args, 'json')) {
|
|
15
20
|
process.stdout.write(asJson(rules) + '\n');
|
|
21
|
+
await writeRejectedEntriesNote(inspection, [ContributionKind.Boundary], { ...note, json: true });
|
|
16
22
|
return 0;
|
|
17
23
|
}
|
|
18
24
|
process.stdout.write(header(`Boundary rules (${rules.length})`));
|
|
19
|
-
if (rules.length === 0)
|
|
25
|
+
if (rules.length === 0)
|
|
20
26
|
process.stdout.write(' (none registered)\n');
|
|
21
|
-
return 0;
|
|
22
|
-
}
|
|
23
27
|
for (const r of rules) {
|
|
24
|
-
|
|
28
|
+
// The ENFORCED severity (unset = error) — one authority with the evaluator.
|
|
29
|
+
process.stdout.write(` ${boundaryRuleSeverity(r).toUpperCase().padEnd(8)} ${r.id.padEnd(36)} ${r.title}\n`);
|
|
25
30
|
}
|
|
31
|
+
await writeRejectedEntriesNote(inspection, [ContributionKind.Boundary], note);
|
|
26
32
|
return 0;
|
|
27
33
|
},
|
|
28
34
|
};
|
|
@@ -48,16 +54,28 @@ export const boundariesGetCommand = {
|
|
|
48
54
|
}
|
|
49
55
|
process.stdout.write(header(`Boundary rule: ${rule.id}`));
|
|
50
56
|
process.stdout.write(kv('title', rule.title) + '\n');
|
|
51
|
-
process.stdout.write(kv('severity', rule
|
|
57
|
+
process.stdout.write(kv('severity', boundaryRuleSeverity(rule)) + '\n');
|
|
52
58
|
if (rule.from && rule.from.length > 0) {
|
|
53
59
|
process.stdout.write(kv('from', rule.from.join(', ')) + '\n');
|
|
54
60
|
}
|
|
55
61
|
if (rule.forbiddenImports && rule.forbiddenImports.length > 0) {
|
|
56
62
|
process.stdout.write(kv('forbidden', rule.forbiddenImports.join(', ')) + '\n');
|
|
63
|
+
process.stdout.write(kv('forbiddenMatch', boundaryForbiddenMatch(rule)) + '\n');
|
|
57
64
|
}
|
|
58
65
|
if (rule.allowedImports && rule.allowedImports.length > 0) {
|
|
59
66
|
process.stdout.write(kv('allowed', rule.allowedImports.join(', ')) + '\n');
|
|
60
67
|
}
|
|
68
|
+
if (rule.exemptFiles && rule.exemptFiles.length > 0) {
|
|
69
|
+
process.stdout.write(kv('exemptFiles', rule.exemptFiles.join(', ')) + '\n');
|
|
70
|
+
}
|
|
71
|
+
if (rule.excludeTests)
|
|
72
|
+
process.stdout.write(kv('excludeTests', 'true') + '\n');
|
|
73
|
+
for (const m of rule.expectEmptyUnits ?? []) {
|
|
74
|
+
process.stdout.write(kv('expectEmpty marker', `${boundaryIntendedEmptyLine(m)} (state: see \`shrk check boundaries\`)`) + '\n');
|
|
75
|
+
}
|
|
76
|
+
if (rule.exceptions && rule.exceptions.length > 0) {
|
|
77
|
+
process.stdout.write(kv('exceptions', String(rule.exceptions.length)) + '\n');
|
|
78
|
+
}
|
|
61
79
|
if (rule.suggestedFix) {
|
|
62
80
|
process.stdout.write(kv('suggestedFix', rule.suggestedFix) + '\n');
|
|
63
81
|
}
|
|
@@ -66,7 +84,7 @@ export const boundariesGetCommand = {
|
|
|
66
84
|
};
|
|
67
85
|
export const boundariesExplainCommand = {
|
|
68
86
|
name: 'explain',
|
|
69
|
-
description: 'Explain a boundary rule: where it came from (local vs pack), what it forbids, what to do about violations.',
|
|
87
|
+
description: 'Explain a boundary rule: where it came from (local vs pack), what it forbids, what it exempts, what to do about violations.',
|
|
70
88
|
usage: 'shrk [--cwd <dir>] boundaries explain <ruleId> [--json]',
|
|
71
89
|
async run(args) {
|
|
72
90
|
const id = args.positional[0];
|
|
@@ -81,14 +99,29 @@ export const boundariesExplainCommand = {
|
|
|
81
99
|
return 1;
|
|
82
100
|
}
|
|
83
101
|
const source = inspection.boundarySources.get(id);
|
|
102
|
+
// The one static answer the evaluator's coverage (`subsumedBy` /
|
|
103
|
+
// `shadowedBy`) and MCP `get_boundary_rule` read (round 12, R12-5.3/5.6).
|
|
104
|
+
const overlaps = boundaryPatternOverlaps(rule);
|
|
84
105
|
const explanation = {
|
|
85
106
|
id: rule.id,
|
|
86
107
|
title: rule.title,
|
|
87
|
-
|
|
108
|
+
// The severity the evaluator ENFORCES (an unset one is `error`) — this
|
|
109
|
+
// used to print `warning` for a rule that blocks CI.
|
|
110
|
+
severity: boundaryRuleSeverity(rule),
|
|
88
111
|
origin: source ? (source.type === 'pack' ? `pack: ${source.packageName}` : 'local') : 'unknown',
|
|
89
112
|
from: rule.from ?? [],
|
|
90
113
|
forbiddenImports: rule.forbiddenImports ?? [],
|
|
114
|
+
forbiddenMatch: boundaryForbiddenMatch(rule),
|
|
91
115
|
allowedImports: rule.allowedImports ?? [],
|
|
116
|
+
exemptFiles: rule.exemptFiles ?? [],
|
|
117
|
+
excludeTests: rule.excludeTests === true,
|
|
118
|
+
exceptions: rule.exceptions ?? [],
|
|
119
|
+
failOnEmpty: boundaryRuleFailsOnEmpty(rule),
|
|
120
|
+
redundantForbidden: overlaps.redundantForbidden.map((o) => ({ pattern: o.pattern, coveredBy: o.by })),
|
|
121
|
+
shadowedAllowed: overlaps.shadowedAllowed.map((o) => ({ pattern: o.pattern, shadowedBy: o.by })),
|
|
122
|
+
// Round 13: the rule's expectEmpty markers — each an 'intended empty'
|
|
123
|
+
// line below, next to redundant and shadowed.
|
|
124
|
+
expectEmptyUnits: rule.expectEmptyUnits ?? [],
|
|
92
125
|
suggestedFix: rule.suggestedFix,
|
|
93
126
|
howToFix: 'Adjust the offending import to either (a) drop the disallowed dependency, (b) use a public interface from the allowed list, or (c) move the importer into a layer where this dependency is permitted.',
|
|
94
127
|
};
|
|
@@ -98,23 +131,56 @@ export const boundariesExplainCommand = {
|
|
|
98
131
|
}
|
|
99
132
|
process.stdout.write(header(`Boundary explain: ${rule.id}`));
|
|
100
133
|
process.stdout.write(kv('title', rule.title) + '\n');
|
|
101
|
-
process.stdout.write(kv('severity',
|
|
134
|
+
process.stdout.write(kv('severity', explanation.severity) + '\n');
|
|
102
135
|
process.stdout.write(kv('origin', explanation.origin) + '\n');
|
|
103
136
|
if (explanation.from.length > 0) {
|
|
104
137
|
process.stdout.write(kv('applies to', explanation.from.join(', ')) + '\n');
|
|
105
138
|
}
|
|
106
139
|
if (explanation.forbiddenImports.length > 0) {
|
|
107
|
-
process.stdout.write(kv('forbidden', explanation.forbiddenImports.join(', ')) + '\n');
|
|
140
|
+
process.stdout.write(kv('forbidden', `${explanation.forbiddenImports.join(', ')} (${explanation.forbiddenMatch === 'package' ? 'package semantics: each bare pattern covers its subpaths' : 'exact: entrypoint only'})`) + '\n');
|
|
108
141
|
}
|
|
109
142
|
if (explanation.allowedImports.length > 0) {
|
|
110
143
|
process.stdout.write(kv('allowed', explanation.allowedImports.join(', ')) + '\n');
|
|
111
144
|
}
|
|
145
|
+
const pkgNote = explanation.forbiddenMatch === 'package';
|
|
146
|
+
for (const o of explanation.redundantForbidden) {
|
|
147
|
+
process.stdout.write(kv('redundant', `'${o.pattern}' is covered by '${o.coveredBy}'${pkgNote ? ' (package semantics)' : ''} — redundant; safe to delete`) + '\n');
|
|
148
|
+
}
|
|
149
|
+
for (const o of explanation.shadowedAllowed) {
|
|
150
|
+
process.stdout.write(kv('shadowed', `allowed '${o.pattern}' can never admit an import — forbidden '${o.shadowedBy}' is checked first and covers it; carve the subpath out with exceptions[{ path, target, reason }]${pkgNote ? " or set forbiddenMatch: 'exact'" : ''}`) + '\n');
|
|
151
|
+
}
|
|
152
|
+
// Round 13: each expectEmpty marker, beside redundant and shadowed. The
|
|
153
|
+
// assertion only — whether its target has appeared since (went live) is a
|
|
154
|
+
// run-time fact `shrk check boundaries` reports.
|
|
155
|
+
for (const m of explanation.expectEmptyUnits) {
|
|
156
|
+
process.stdout.write(kv('expectEmpty marker', `${boundaryIntendedEmptyLine(m)} (state: see \`shrk check boundaries\`)`) + '\n');
|
|
157
|
+
}
|
|
158
|
+
if (explanation.exemptFiles.length > 0 || explanation.excludeTests) {
|
|
159
|
+
process.stdout.write(kv('exempt', [...explanation.exemptFiles, ...(explanation.excludeTests ? ['(test files)'] : [])].join(', ')) + '\n');
|
|
160
|
+
}
|
|
161
|
+
for (const ex of explanation.exceptions) {
|
|
162
|
+
process.stdout.write(kv('exception', `${ex.path} → ${ex.target} — ${ex.reason}`) + '\n');
|
|
163
|
+
}
|
|
164
|
+
process.stdout.write(kv('failOnEmpty', explanation.failOnEmpty ? 'yes — matching no file fails the run' : 'no — matching no file is reported skipped') + '\n');
|
|
112
165
|
if (rule.suggestedFix)
|
|
113
166
|
process.stdout.write(`\nSuggested fix: ${rule.suggestedFix}\n`);
|
|
114
167
|
process.stdout.write(`\nHow to fix: ${explanation.howToFix}\n`);
|
|
115
168
|
return 0;
|
|
116
169
|
},
|
|
117
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* `shrk explain <ruleId>` for a BOUNDARY rule id (round 13): the unified
|
|
173
|
+
* entrypoint resolved gate-plane rule ids only, so a boundary rule fell through
|
|
174
|
+
* to the knowledge topic search ("no matching knowledge entries"). Answers with
|
|
175
|
+
* `boundaries explain` when the id names a registered boundary rule; otherwise
|
|
176
|
+
* `undefined`, and the caller keeps its topic search.
|
|
177
|
+
*/
|
|
178
|
+
export async function tryExplainBoundaryRule(args, id) {
|
|
179
|
+
const inspection = await inspectSharkcraft({ cwd: resolveCwd(args) });
|
|
180
|
+
if (!inspection.boundaryRegistry.has(id))
|
|
181
|
+
return undefined;
|
|
182
|
+
return boundariesExplainCommand.run({ ...args, positional: [id] });
|
|
183
|
+
}
|
|
118
184
|
export const boundariesInferCommand = {
|
|
119
185
|
name: 'infer',
|
|
120
186
|
description: 'Infer candidate boundary rules from the current repo (monorepo structure, package boundaries, naming heuristics). Dry-run by default; --write-drafts writes to sharkcraft/boundary-drafts/boundaries.draft.ts. --language all|java|csharp|python|go|rust adds polyglot suggestions.',
|
|
@@ -280,18 +346,20 @@ export const boundariesSuggestCommand = {
|
|
|
280
346
|
const inspection = await inspectSharkcraft({ cwd });
|
|
281
347
|
const rules = inspection.boundaryRegistry.list();
|
|
282
348
|
if (rules.length === 0) {
|
|
283
|
-
|
|
284
|
-
|
|
349
|
+
// Zero rules is not "nothing to suggest" — nothing was checked (round 11,
|
|
350
|
+
// L-1). Say where discovery looked and why nothing loaded.
|
|
351
|
+
const status = describeBoundaryConfiguration(inspection);
|
|
352
|
+
process.stderr.write(`No boundary rules loaded — nothing was checked (sharkcraft dir: ${status.sharkcraftDir ?? '(none found)'}).\n`);
|
|
353
|
+
for (const d of status.diagnostics)
|
|
354
|
+
process.stderr.write(` ! ${d}\n`);
|
|
355
|
+
return ExitCode.NotVerified;
|
|
285
356
|
}
|
|
286
|
-
|
|
287
|
-
const
|
|
288
|
-
const evalResult = evaluateBoundaries(scan, rules, {
|
|
289
|
-
...(tsconfigPaths.aliases.size > 0 ? { tsconfigPaths } : {}),
|
|
290
|
-
});
|
|
357
|
+
// THE boundary orchestrator — the same violations `check boundaries` reports.
|
|
358
|
+
const result = runBoundaryCheck(inspection);
|
|
291
359
|
const filter = args.positional[0];
|
|
292
360
|
const filtered = filter
|
|
293
|
-
?
|
|
294
|
-
:
|
|
361
|
+
? result.violations.filter((v) => v.ruleId === filter || v.file.includes(filter))
|
|
362
|
+
: result.violations;
|
|
295
363
|
const suggestions = suggestBoundaryFixes(inspection, filtered.map((v) => ({
|
|
296
364
|
ruleId: v.ruleId,
|
|
297
365
|
file: v.file,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.command.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.command.ts"],"names":[],"mappings":"AA0CA,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.command.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.command.ts"],"names":[],"mappings":"AA0CA,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAu5BhC,eAAO,MAAM,aAAa,EAAE,eA2E3B,CAAC"}
|
|
@@ -3,6 +3,7 @@ import * as nodePath from 'node:path';
|
|
|
3
3
|
import { buildBundleDiffFromIds, buildPlanDependencyGraph, buildTaskPacket, createFeatureBundleState, decomposeTask, inspectSharkcraft, listFeatureBundles, markBundlePlanApplied, readFeatureBundle, recomputeBundleStatus, recordBundleReport, recordBundleValidation, renderBundleDiff, renderBundleValidationHtml, renderGraphDot, renderGraphMermaid, renderGraphText, renderBundleReplayWorkflow, replayAllBundles, replayBundle, renderBundleReplayBatchHtml, setBundleDependencies, setBundleNextAction, upsertBundlePlan, writeFeatureBundle, getBundleDir, BundleReplayStatus, } from '@shrkcrft/inspector';
|
|
4
4
|
import { buildSavedPlan, generate, OverwriteStrategy, savePlanToFile, } from '@shrkcrft/generator';
|
|
5
5
|
import { flagBool, flagString, flagVars, resolveCwd, } from "../command-registry.js";
|
|
6
|
+
import { PositionalMode } from "../dispatch/positional-mode.js";
|
|
6
7
|
import { asJson, header, kv } from "../output/format-output.js";
|
|
7
8
|
const SUBCOMMANDS = new Set([
|
|
8
9
|
'create',
|
|
@@ -638,18 +639,17 @@ async function bundleValidate(args) {
|
|
|
638
639
|
let warnings = 0;
|
|
639
640
|
if (runBoundaries) {
|
|
640
641
|
try {
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
const
|
|
645
|
-
|
|
646
|
-
});
|
|
642
|
+
// THE boundary orchestrator — the verdict `check boundaries` settles
|
|
643
|
+
// (round 11 review R11-GAP-3): zero rules, an errored rule or a scope it
|
|
644
|
+
// could not fully examine is never a passed boundaries step.
|
|
645
|
+
const { runBoundaryCheck } = await import('@shrkcrft/inspector');
|
|
646
|
+
const evalResult = runBoundaryCheck(inspection, { strict });
|
|
647
647
|
boundaryViolations = evalResult.violations.length;
|
|
648
|
-
const
|
|
648
|
+
const notVerified = evalResult.verdict === 'not-verified' ? ` — NOT VERIFIED: ${evalResult.shortfalls.slice(0, 2).join('; ')}` : '';
|
|
649
649
|
commandsRun.push({
|
|
650
650
|
command: 'boundaries',
|
|
651
|
-
passed:
|
|
652
|
-
note: `${boundaryViolations} violations (${evalResult.counts.error}err / ${evalResult.counts.warning}warn)`,
|
|
651
|
+
passed: evalResult.exitCode === 0,
|
|
652
|
+
note: `${boundaryViolations} violations (${evalResult.counts.error}err / ${evalResult.counts.warning}warn)${notVerified}`,
|
|
653
653
|
});
|
|
654
654
|
warnings += evalResult.counts.warning;
|
|
655
655
|
}
|
|
@@ -661,11 +661,14 @@ async function bundleValidate(args) {
|
|
|
661
661
|
try {
|
|
662
662
|
const { buildDriftReport } = await import('@shrkcrft/inspector');
|
|
663
663
|
const drift = buildDriftReport(inspection);
|
|
664
|
-
|
|
664
|
+
// THE drift verdict: a boundary scope drift could not fully examine is
|
|
665
|
+
// NOT VERIFIED, never a passed step.
|
|
666
|
+
const fail = drift.exitCode !== 0 || (strict && drift.counts.warning > 0);
|
|
665
667
|
commandsRun.push({
|
|
666
668
|
command: 'drift',
|
|
667
669
|
passed: !fail,
|
|
668
|
-
note: `${drift.counts.error}err / ${drift.counts.warning}warn / ${drift.counts.info}info
|
|
670
|
+
note: `${drift.counts.error}err / ${drift.counts.warning}warn / ${drift.counts.info}info` +
|
|
671
|
+
(drift.verdict === 'not-verified' ? ` — NOT VERIFIED: ${drift.shortfalls.slice(0, 2).join('; ')}` : ''),
|
|
669
672
|
});
|
|
670
673
|
warnings += drift.counts.warning;
|
|
671
674
|
}
|
|
@@ -692,6 +695,8 @@ async function bundleValidate(args) {
|
|
|
692
695
|
if (runAgent) {
|
|
693
696
|
try {
|
|
694
697
|
const { loadAgentContractTests, runAgentContractTest } = await import('@shrkcrft/inspector');
|
|
698
|
+
// Same registry + command index `shrk test agent` resolves against.
|
|
699
|
+
await (await import("../surface/cli-command-resolver.js")).warmCliReferenceRegistries(inspection);
|
|
695
700
|
const tests = await loadAgentContractTests(inspection);
|
|
696
701
|
const results = tests.map((t) => runAgentContractTest(inspection, t));
|
|
697
702
|
const failed = results.filter((r) => !r.passed).length;
|
|
@@ -708,6 +713,7 @@ async function bundleValidate(args) {
|
|
|
708
713
|
if (runContext) {
|
|
709
714
|
try {
|
|
710
715
|
const { loadContextTests, runContextTest } = await import('@shrkcrft/inspector');
|
|
716
|
+
await (await import("../surface/cli-command-resolver.js")).warmCliReferenceRegistries(inspection);
|
|
711
717
|
const tests = await loadContextTests(inspection);
|
|
712
718
|
const results = tests.map((t) => runContextTest(inspection, t));
|
|
713
719
|
const failed = results.filter((r) => !r.passed).length;
|
|
@@ -846,6 +852,46 @@ async function bundleDecompose(args) {
|
|
|
846
852
|
}
|
|
847
853
|
export const bundleCommand = {
|
|
848
854
|
name: 'bundle',
|
|
855
|
+
positionals: PositionalMode.None,
|
|
856
|
+
subverbs: [
|
|
857
|
+
{ name: 'create', description: 'Create a feature bundle for a task.', usage: 'shrk bundle create "<task>"', positionals: PositionalMode.Free },
|
|
858
|
+
{ name: 'list', description: 'List the feature bundles.', usage: 'shrk bundle list' },
|
|
859
|
+
{ name: 'show', description: 'Show one bundle.', usage: 'shrk bundle show <id>', positionals: PositionalMode.Free },
|
|
860
|
+
{ name: 'status', description: 'Which of a bundle’s plans are applied / validated.', usage: 'shrk bundle status <id>', positionals: PositionalMode.Free },
|
|
861
|
+
{ name: 'next', description: 'The next plan to work on in a bundle.', usage: 'shrk bundle next <id>', positionals: PositionalMode.Free },
|
|
862
|
+
{ name: 'report', description: 'A bundle report.', usage: 'shrk bundle report <id>', positionals: PositionalMode.Free },
|
|
863
|
+
{ name: 'review', description: 'Review a bundle before applying it.', usage: 'shrk bundle review <id>', positionals: PositionalMode.Free },
|
|
864
|
+
{ name: 'commands', description: 'The CLI commands a bundle needs, in order.', usage: 'shrk bundle commands <id>', positionals: PositionalMode.Free },
|
|
865
|
+
{ name: 'plan', description: 'One plan of a bundle.', usage: 'shrk bundle plan <id> [<planName>]', positionals: PositionalMode.Free },
|
|
866
|
+
{ name: 'graph', description: 'The bundle’s plan dependency graph.', usage: 'shrk bundle graph <id>', positionals: PositionalMode.Free },
|
|
867
|
+
{
|
|
868
|
+
name: 'apply-assist',
|
|
869
|
+
aliases: ['apply-plan'],
|
|
870
|
+
description: 'Apply assist: the next `shrk apply` step for a bundle.',
|
|
871
|
+
usage: 'shrk bundle apply-assist <id>',
|
|
872
|
+
positionals: PositionalMode.Free,
|
|
873
|
+
},
|
|
874
|
+
{ name: 'validate', description: 'Validate a bundle.', usage: 'shrk bundle validate <id>', positionals: PositionalMode.Free },
|
|
875
|
+
{ name: 'decompose', description: 'Decompose a task into bundle subtasks.', usage: 'shrk bundle decompose "<task>"', positionals: PositionalMode.Free },
|
|
876
|
+
{
|
|
877
|
+
name: 'record-apply',
|
|
878
|
+
description: 'Record that one bundle plan was applied.',
|
|
879
|
+
usage: 'shrk bundle record-apply <id> <planName> [--note <text>]',
|
|
880
|
+
positionals: PositionalMode.Free,
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
name: 'replay',
|
|
884
|
+
description: 'Replay a bundle (or --all) to detect drift; `replay scaffold github-actions` prints a CI job.',
|
|
885
|
+
usage: 'shrk bundle replay <id> [--strict] [--json] | shrk bundle replay --all | shrk bundle replay scaffold github-actions [--schedule weekly|daily|manual] [--with-report-site] [--output <path>] [--write] [--force]',
|
|
886
|
+
positionals: PositionalMode.Free,
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
name: 'diff',
|
|
890
|
+
description: 'Diff two bundles.',
|
|
891
|
+
usage: 'shrk bundle diff <bundleA> <bundleB> [--format text|markdown|html|json] [--output <path>]',
|
|
892
|
+
positionals: PositionalMode.Free,
|
|
893
|
+
},
|
|
894
|
+
],
|
|
849
895
|
description: 'Feature workflow bundles (multi-plan, dep graph, apply assist, validate).',
|
|
850
896
|
usage: 'shrk bundle create|list|show|status|report|commands|plan|graph|apply-assist|validate|replay|decompose|record-apply|next|review [...args]',
|
|
851
897
|
async run(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-align.command.d.ts","sourceRoot":"","sources":["../../src/commands/cache-align.command.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAkBhC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,eA4B1B,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"cache-align.command.d.ts","sourceRoot":"","sources":["../../src/commands/cache-align.command.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAkBhC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,eA4B1B,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,eAyB5B,CAAC"}
|
|
@@ -55,7 +55,9 @@ export const alignCommand = {
|
|
|
55
55
|
export const unalignCommand = {
|
|
56
56
|
name: 'unalign',
|
|
57
57
|
description: 'Restore the original volatile tokens in aligned text using its `--map`.',
|
|
58
|
-
|
|
58
|
+
// `--map` defaults to .sharkcraft/cache-align/align.json (the file `align`
|
|
59
|
+
// writes), so it is optional — the usage used to mark it required.
|
|
60
|
+
usage: 'shrk [--cwd <dir>] unalign [<file>|-] [--stdin] [--map <path>]',
|
|
59
61
|
run(args) {
|
|
60
62
|
const cwd = resolveCwd(args);
|
|
61
63
|
const mapPath = flagString(args, 'map') ?? nodePath.join(cwd, '.sharkcraft', 'cache-align', 'align.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog-data.d.ts","sourceRoot":"","sources":["../../src/commands/changelog-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,
|
|
1
|
+
{"version":3,"file":"changelog-data.d.ts","sourceRoot":"","sources":["../../src/commands/changelog-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,sBAAsB,EAAE,SAAS,oBAAoB,EAsTjE,CAAC"}
|