@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
|
@@ -41,8 +41,10 @@ export function fuzzyImpactAmbiguousHints() {
|
|
|
41
41
|
}
|
|
42
42
|
export function agentTestMissingExpectedHints() {
|
|
43
43
|
return [
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
// `why <id> --for-task` / `why-not` are gone (`why` explains a FILE now);
|
|
45
|
+
// the ranking trace for a task lives on `task` and `search`.
|
|
46
|
+
{ label: 'see how each id ranked for the task (or why it was left out)', command: 'shrk task "<task>" --explain-ranking' },
|
|
47
|
+
{ label: 'see what the ranker matched for the query', command: 'shrk search "<task>" --explain' },
|
|
46
48
|
];
|
|
47
49
|
}
|
|
48
50
|
export function ciReportEmptyHints() {
|
|
@@ -87,25 +89,25 @@ export function errorFooterFor(kind, context) {
|
|
|
87
89
|
return {
|
|
88
90
|
next: `shrk recommend "${task}"`,
|
|
89
91
|
why: 'Free-form input routes to the canonical human entrypoint — `shrk recommend` ranks commands for a query without writes.',
|
|
90
|
-
more: ['shrk commands', 'shrk commands
|
|
92
|
+
more: ['shrk commands', 'shrk commands search "<partial>"', 'shrk start-here'],
|
|
91
93
|
};
|
|
92
94
|
case 'ambiguous-command':
|
|
93
95
|
return {
|
|
94
|
-
next: 'shrk commands
|
|
96
|
+
next: 'shrk commands search "<partial>"',
|
|
95
97
|
why: 'Multiple commands matched the input — narrow it down or pick the canonical entrypoint.',
|
|
96
|
-
more: ['shrk
|
|
98
|
+
more: ['shrk help <cmd>', 'shrk commands overlaps'],
|
|
97
99
|
};
|
|
98
100
|
case 'apply-rejected':
|
|
99
101
|
return {
|
|
100
102
|
next: 'shrk plan review <plan.json>',
|
|
101
103
|
why: 'The apply gate refused the plan — review the safety report before retrying.',
|
|
102
|
-
more: ['shrk plan
|
|
104
|
+
more: ['shrk plan simulate <plan.json>', 'shrk safety audit --deep'],
|
|
103
105
|
};
|
|
104
106
|
case 'signature-mismatch':
|
|
105
107
|
return {
|
|
106
|
-
next: 'shrk plan
|
|
107
|
-
why: 'The plan signature does not match the source content — re-
|
|
108
|
-
more: ['shrk
|
|
108
|
+
next: 'shrk plan review <plan.json>',
|
|
109
|
+
why: 'The plan signature does not match the source content — regenerate the plan (which re-signs it) before retrying.',
|
|
110
|
+
more: ['shrk gen <template> --save-plan <plan.json>'],
|
|
109
111
|
};
|
|
110
112
|
case 'contract-gate-blocked':
|
|
111
113
|
return {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE list-verb note (round 12, 12.1 — and, since the round-12 review (A-4),
|
|
3
|
+
* the files that failed to load).
|
|
4
|
+
*
|
|
5
|
+
* A contributed entry its loader refused used to vanish: the `list` verb
|
|
6
|
+
* printed the survivors and exited 0, and nothing said an entry was dropped.
|
|
7
|
+
* A contribution FILE that failed to import dropped every entry it declares
|
|
8
|
+
* just as silently — `conventions list` even pointed at that very file as the
|
|
9
|
+
* place to contribute. Every list verb now prints, after its list, one line
|
|
10
|
+
* per file:
|
|
11
|
+
*
|
|
12
|
+
* ⚠ sharkcraft/conventions.ts failed to load (boom) — nothing in it is listed → shrk conventions doctor
|
|
13
|
+
* ⚠ 2 entries rejected from node_modules/@r12/pack/conventions.ts: 'conv.b' (default[8]) — severity: …; 'conv.j' (default[9]) — … → shrk conventions doctor
|
|
14
|
+
*
|
|
15
|
+
* with the wording of THE formatter (`formatEntryRejection`), from THE channel
|
|
16
|
+
* (`collectKindOutcomes`). A list verb is not a verdict: its exit stays 0.
|
|
17
|
+
* Under `--json` the stdout array is untouched (a parser never breaks) and the
|
|
18
|
+
* note goes to stderr, one line per failed file plus one for the rejections.
|
|
19
|
+
*/
|
|
20
|
+
import { type ContributionKind, type IContributionEntryRejection, type IContributionLoadFailure, type IKindOutcomes, type inspectSharkcraft } from '@shrkcrft/inspector';
|
|
21
|
+
type IInspection = Awaited<ReturnType<typeof inspectSharkcraft>>;
|
|
22
|
+
/** The note lines (text, stdout) — `''` when nothing was rejected. */
|
|
23
|
+
export declare function rejectedEntriesNote(rejections: readonly IContributionEntryRejection[], projectRoot: string, next?: string): string;
|
|
24
|
+
/** The one-line `--json` stderr form — `''` when nothing was rejected. */
|
|
25
|
+
export declare function rejectedEntriesStderrNote(rejections: readonly IContributionEntryRejection[], projectRoot: string, next?: string): string;
|
|
26
|
+
/** One line per contribution file that failed to load (text, stdout) — `''` when every file loaded. */
|
|
27
|
+
export declare function loadFailuresNote(failures: readonly IContributionLoadFailure[], projectRoot: string, next?: string): string;
|
|
28
|
+
/** The `--json` stderr form, one line per failed file — `''` when every file loaded. */
|
|
29
|
+
export declare function loadFailuresStderrNote(failures: readonly IContributionLoadFailure[], projectRoot: string, next?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* What `kinds`' loaders reported — refused entries and files that never
|
|
32
|
+
* loaded — narrowed to `--source`. `loadFailures: false` for a verb that
|
|
33
|
+
* already reports its own load failures (knowledge list's partial-list WARN,
|
|
34
|
+
* helper list's broken-file line), so no failure is said twice.
|
|
35
|
+
*/
|
|
36
|
+
export declare function collectListVerbNote(inspection: IInspection, kinds: readonly ContributionKind[], options?: {
|
|
37
|
+
readonly source?: string;
|
|
38
|
+
readonly loadFailures?: boolean;
|
|
39
|
+
}): Promise<IKindOutcomes>;
|
|
40
|
+
/** Write a collected note: text after the list on stdout, or stderr lines under `--json`. */
|
|
41
|
+
export declare function writeListVerbNote(outcomes: IKindOutcomes, projectRoot: string, options?: {
|
|
42
|
+
readonly json?: boolean;
|
|
43
|
+
readonly next?: string;
|
|
44
|
+
}): void;
|
|
45
|
+
/**
|
|
46
|
+
* Collect `kinds`' outcomes (THE channel, running only the loaders those
|
|
47
|
+
* kinds need) and write the note: text after the list on stdout, or stderr
|
|
48
|
+
* lines under `--json`. Returns the rejections it reported.
|
|
49
|
+
*/
|
|
50
|
+
export declare function writeRejectedEntriesNote(inspection: IInspection, kinds: readonly ContributionKind[], options?: {
|
|
51
|
+
readonly json?: boolean;
|
|
52
|
+
readonly source?: string;
|
|
53
|
+
readonly next?: string;
|
|
54
|
+
readonly loadFailures?: boolean;
|
|
55
|
+
}): Promise<readonly IContributionEntryRejection[]>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=rejected-entries-note.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rejected-entries-note.d.ts","sourceRoot":"","sources":["../../src/output/rejected-entries-note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAUjE,sEAAsE;AACtE,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,2BAA2B,EAAE,EAClD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAaR;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,2BAA2B,EAAE,EAClD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAIR;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAUR;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAUR;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAChE,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,GAAE;IACP,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC5B,GACL,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAIjD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE list-verb note (round 12, 12.1 — and, since the round-12 review (A-4),
|
|
3
|
+
* the files that failed to load).
|
|
4
|
+
*
|
|
5
|
+
* A contributed entry its loader refused used to vanish: the `list` verb
|
|
6
|
+
* printed the survivors and exited 0, and nothing said an entry was dropped.
|
|
7
|
+
* A contribution FILE that failed to import dropped every entry it declares
|
|
8
|
+
* just as silently — `conventions list` even pointed at that very file as the
|
|
9
|
+
* place to contribute. Every list verb now prints, after its list, one line
|
|
10
|
+
* per file:
|
|
11
|
+
*
|
|
12
|
+
* ⚠ sharkcraft/conventions.ts failed to load (boom) — nothing in it is listed → shrk conventions doctor
|
|
13
|
+
* ⚠ 2 entries rejected from node_modules/@r12/pack/conventions.ts: 'conv.b' (default[8]) — severity: …; 'conv.j' (default[9]) — … → shrk conventions doctor
|
|
14
|
+
*
|
|
15
|
+
* with the wording of THE formatter (`formatEntryRejection`), from THE channel
|
|
16
|
+
* (`collectKindOutcomes`). A list verb is not a verdict: its exit stays 0.
|
|
17
|
+
* Under `--json` the stdout array is untouched (a parser never breaks) and the
|
|
18
|
+
* note goes to stderr, one line per failed file plus one for the rejections.
|
|
19
|
+
*/
|
|
20
|
+
import { collectKindOutcomes, contributionFileLabel, formatEntryRejection, } from '@shrkcrft/inspector';
|
|
21
|
+
/** Narrow to what a `--source local|pack` list shows: a pack record has an owning pack. */
|
|
22
|
+
function bySource(records, source) {
|
|
23
|
+
if (source === 'pack')
|
|
24
|
+
return records.filter((r) => r.packageName !== undefined);
|
|
25
|
+
if (source === 'local')
|
|
26
|
+
return records.filter((r) => r.packageName === undefined);
|
|
27
|
+
if (source === 'builtin')
|
|
28
|
+
return [];
|
|
29
|
+
return records;
|
|
30
|
+
}
|
|
31
|
+
/** The note lines (text, stdout) — `''` when nothing was rejected. */
|
|
32
|
+
export function rejectedEntriesNote(rejections, projectRoot, next) {
|
|
33
|
+
if (rejections.length === 0)
|
|
34
|
+
return '';
|
|
35
|
+
const byFile = new Map();
|
|
36
|
+
for (const r of rejections)
|
|
37
|
+
byFile.set(r.file, [...(byFile.get(r.file) ?? []), r]);
|
|
38
|
+
const lines = [];
|
|
39
|
+
for (const [file, list] of byFile) {
|
|
40
|
+
lines.push(`⚠ ${list.length} ${list.length === 1 ? 'entry' : 'entries'} rejected from ${contributionFileLabel(projectRoot, file)}: ${list
|
|
41
|
+
.map((r) => formatEntryRejection(r))
|
|
42
|
+
.join('; ')}${next ? ` → ${next}` : ''}`);
|
|
43
|
+
}
|
|
44
|
+
return lines.join('\n') + '\n';
|
|
45
|
+
}
|
|
46
|
+
/** The one-line `--json` stderr form — `''` when nothing was rejected. */
|
|
47
|
+
export function rejectedEntriesStderrNote(rejections, projectRoot, next) {
|
|
48
|
+
if (rejections.length === 0)
|
|
49
|
+
return '';
|
|
50
|
+
const files = [...new Set(rejections.map((r) => contributionFileLabel(projectRoot, r.file)))];
|
|
51
|
+
return `note: ${rejections.length} ${rejections.length === 1 ? 'entry' : 'entries'} rejected by the loader from ${files.join(', ')} — not listed above${next ? ` (see ${next})` : ''}\n`;
|
|
52
|
+
}
|
|
53
|
+
/** One line per contribution file that failed to load (text, stdout) — `''` when every file loaded. */
|
|
54
|
+
export function loadFailuresNote(failures, projectRoot, next) {
|
|
55
|
+
if (failures.length === 0)
|
|
56
|
+
return '';
|
|
57
|
+
return (failures
|
|
58
|
+
.map((f) => `⚠ ${contributionFileLabel(projectRoot, f.file)} failed to load (${f.message}) — nothing in it is listed${next ? ` → ${next}` : ''}`)
|
|
59
|
+
.join('\n') + '\n');
|
|
60
|
+
}
|
|
61
|
+
/** The `--json` stderr form, one line per failed file — `''` when every file loaded. */
|
|
62
|
+
export function loadFailuresStderrNote(failures, projectRoot, next) {
|
|
63
|
+
if (failures.length === 0)
|
|
64
|
+
return '';
|
|
65
|
+
return (failures
|
|
66
|
+
.map((f) => `note: ${contributionFileLabel(projectRoot, f.file)} failed to load (${f.message}) — nothing in it is listed above${next ? ` (see ${next})` : ''}`)
|
|
67
|
+
.join('\n') + '\n');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* What `kinds`' loaders reported — refused entries and files that never
|
|
71
|
+
* loaded — narrowed to `--source`. `loadFailures: false` for a verb that
|
|
72
|
+
* already reports its own load failures (knowledge list's partial-list WARN,
|
|
73
|
+
* helper list's broken-file line), so no failure is said twice.
|
|
74
|
+
*/
|
|
75
|
+
export async function collectListVerbNote(inspection, kinds, options = {}) {
|
|
76
|
+
const outcomes = await collectKindOutcomes(inspection, kinds);
|
|
77
|
+
return {
|
|
78
|
+
rejections: bySource(outcomes.rejections, options.source),
|
|
79
|
+
loadFailures: options.loadFailures === false ? [] : bySource(outcomes.loadFailures, options.source),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** Write a collected note: text after the list on stdout, or stderr lines under `--json`. */
|
|
83
|
+
export function writeListVerbNote(outcomes, projectRoot, options = {}) {
|
|
84
|
+
const { rejections, loadFailures } = outcomes;
|
|
85
|
+
if (rejections.length === 0 && loadFailures.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
if (options.json) {
|
|
88
|
+
process.stderr.write(loadFailuresStderrNote(loadFailures, projectRoot, options.next) +
|
|
89
|
+
rejectedEntriesStderrNote(rejections, projectRoot, options.next));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
process.stdout.write(`\n${loadFailuresNote(loadFailures, projectRoot, options.next)}${rejectedEntriesNote(rejections, projectRoot, options.next)}`);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Collect `kinds`' outcomes (THE channel, running only the loaders those
|
|
96
|
+
* kinds need) and write the note: text after the list on stdout, or stderr
|
|
97
|
+
* lines under `--json`. Returns the rejections it reported.
|
|
98
|
+
*/
|
|
99
|
+
export async function writeRejectedEntriesNote(inspection, kinds, options = {}) {
|
|
100
|
+
const outcomes = await collectListVerbNote(inspection, kinds, options);
|
|
101
|
+
writeListVerbNote(outcomes, inspection.projectRoot, options);
|
|
102
|
+
return outcomes.rejections;
|
|
103
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True when stdout (`fd`, default 1) feeds ANOTHER PROCESS — a pipe (FIFO) or
|
|
3
|
+
* a socket — so a downstream command's `$?` masks shrk's. False for a TTY, a
|
|
4
|
+
* plain file redirect (`shrk check boundaries > out.log`), `/dev/null`, or an
|
|
5
|
+
* fd that cannot be stat'ed.
|
|
6
|
+
*
|
|
7
|
+
* Round 13: the "stdout is piped" note keyed on `!process.stdout.isTTY`, which
|
|
8
|
+
* is true for a file redirect too — `… > log 2>&1; echo $?` printed exit 1
|
|
9
|
+
* correctly and still wrote "note: stdout is piped — $? reflects the
|
|
10
|
+
* downstream command" into the log, where there was no downstream command.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isStdoutPipe(fd?: number): boolean;
|
|
13
|
+
//# sourceMappingURL=stdout-is-pipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdout-is-pipe.d.ts","sourceRoot":"","sources":["../../src/output/stdout-is-pipe.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,GAAE,MAAU,GAAG,OAAO,CAOpD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { fstatSync } from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* True when stdout (`fd`, default 1) feeds ANOTHER PROCESS — a pipe (FIFO) or
|
|
4
|
+
* a socket — so a downstream command's `$?` masks shrk's. False for a TTY, a
|
|
5
|
+
* plain file redirect (`shrk check boundaries > out.log`), `/dev/null`, or an
|
|
6
|
+
* fd that cannot be stat'ed.
|
|
7
|
+
*
|
|
8
|
+
* Round 13: the "stdout is piped" note keyed on `!process.stdout.isTTY`, which
|
|
9
|
+
* is true for a file redirect too — `… > log 2>&1; echo $?` printed exit 1
|
|
10
|
+
* correctly and still wrote "note: stdout is piped — $? reflects the
|
|
11
|
+
* downstream command" into the log, where there was no downstream command.
|
|
12
|
+
*/
|
|
13
|
+
export function isStdoutPipe(fd = 1) {
|
|
14
|
+
try {
|
|
15
|
+
const st = fstatSync(fd);
|
|
16
|
+
return st.isFIFO() || st.isSocket();
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI startup warning for a pack serving compiled contributions built from
|
|
3
|
+
* an OLDER source — "shrk is serving the previous build". Read from the
|
|
4
|
+
* inspection's `packAssetFreshness` (THE pack-asset freshness authority,
|
|
5
|
+
* content digests, never mtimes); printed once per process, to stderr, only
|
|
6
|
+
* for a real divergence (`build.state === 'stale'`). An unrecorded build is a
|
|
7
|
+
* doctor / `packs doctor` / `packs dev-status` finding, not a startup banner.
|
|
8
|
+
*/
|
|
9
|
+
import { type ISharkcraftInspection } from '@shrkcrft/inspector';
|
|
10
|
+
export declare function warnStaleCompiledPacks(inspection: Pick<ISharkcraftInspection, 'packAssetFreshness'>, write?: (s: string) => void): void;
|
|
11
|
+
//# sourceMappingURL=stale-build-warning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-build-warning.d.ts","sourceRoot":"","sources":["../../src/packs/stale-build-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAA8B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI7F,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,EAC7D,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAA0C,GAC/D,IAAI,CASN"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI startup warning for a pack serving compiled contributions built from
|
|
3
|
+
* an OLDER source — "shrk is serving the previous build". Read from the
|
|
4
|
+
* inspection's `packAssetFreshness` (THE pack-asset freshness authority,
|
|
5
|
+
* content digests, never mtimes); printed once per process, to stderr, only
|
|
6
|
+
* for a real divergence (`build.state === 'stale'`). An unrecorded build is a
|
|
7
|
+
* doctor / `packs doctor` / `packs dev-status` finding, not a startup banner.
|
|
8
|
+
*/
|
|
9
|
+
import { describePackAssetFreshness } from '@shrkcrft/inspector';
|
|
10
|
+
let warned = false;
|
|
11
|
+
export function warnStaleCompiledPacks(inspection, write = (s) => void process.stderr.write(s)) {
|
|
12
|
+
if (warned)
|
|
13
|
+
return;
|
|
14
|
+
const lines = (inspection.packAssetFreshness ?? [])
|
|
15
|
+
.filter((f) => f.build.state === 'stale')
|
|
16
|
+
.map((f) => describePackAssetFreshness(f).build)
|
|
17
|
+
.filter((l) => Boolean(l));
|
|
18
|
+
if (lines.length === 0)
|
|
19
|
+
return;
|
|
20
|
+
warned = true;
|
|
21
|
+
for (const l of lines)
|
|
22
|
+
write(`⚠ ${l}\n`);
|
|
23
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { type IVerdictCoverage } from '@shrkcrft/core';
|
|
2
|
+
import type { IQualityConfig, ISharkcraftInspection } from '@shrkcrft/inspector';
|
|
3
|
+
import { type GatePlane, type IGateRuleView } from '../gates/gate-rule-view.js';
|
|
4
|
+
import { type IGateRuleResult } from '../gates/gate-envelope.js';
|
|
5
|
+
export declare const QUALITY_RUN_SCHEMA: "sharkcraft.quality-run/v1";
|
|
6
|
+
/**
|
|
7
|
+
* Outcome of ONE gate in the pre-push bundle.
|
|
8
|
+
*
|
|
9
|
+
* `error` is deliberately distinct from `failed`: a gate that could not run
|
|
10
|
+
* proved nothing, and folding it into either a pass or a violation is how an
|
|
11
|
+
* unmeasured verdict ships as a green one.
|
|
12
|
+
*/
|
|
13
|
+
export type QualityItemStatus = 'passed' | 'failed' | 'skipped' | 'error';
|
|
14
|
+
export interface IQualityItem {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly label: string;
|
|
17
|
+
readonly status: QualityItemStatus;
|
|
18
|
+
/** `error` severity blocks the exit code; `warning` reports without failing. */
|
|
19
|
+
readonly severity: 'error' | 'warning';
|
|
20
|
+
readonly notes: readonly string[];
|
|
21
|
+
/**
|
|
22
|
+
* The exact command that reproduces THIS gate on its own.
|
|
23
|
+
*
|
|
24
|
+
* The aggregate exists to collapse a multi-round CI cascade into one local
|
|
25
|
+
* run, and that only pays off if each failure is immediately actionable —
|
|
26
|
+
* otherwise the developer's next step is to re-derive which verb produced the
|
|
27
|
+
* line, which is the round-trip the aggregate was supposed to remove.
|
|
28
|
+
*/
|
|
29
|
+
readonly repro: string;
|
|
30
|
+
/** True when the skip was REQUESTED (scope / fail-fast), not accidental. */
|
|
31
|
+
readonly skippedDeliberately?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* True when the gate RAN but examined only part of its scope (a plane rule
|
|
34
|
+
* the envelope settled `partial`, or an inspector gate reporting
|
|
35
|
+
* `data.partial`). Its status is `skipped` (accidental, so never a pass);
|
|
36
|
+
* this flag names it PARTIAL instead of SKIP in every rendering.
|
|
37
|
+
*/
|
|
38
|
+
readonly partial?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The gate's own structured payload — drift counts, boundary error totals, a
|
|
41
|
+
* rule's declared/registered sizes.
|
|
42
|
+
*
|
|
43
|
+
* Carried per item rather than hoisted into one-off top-level fields: a
|
|
44
|
+
* bundle that grows a `drift` key for the drift gate cannot keep doing that
|
|
45
|
+
* as gates are added, and a CI consumer then has to know which gates got a
|
|
46
|
+
* field and which did not.
|
|
47
|
+
*/
|
|
48
|
+
readonly data?: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
export interface IQualityRun {
|
|
51
|
+
readonly schema: typeof QUALITY_RUN_SCHEMA;
|
|
52
|
+
readonly items: readonly IQualityItem[];
|
|
53
|
+
readonly passed: number;
|
|
54
|
+
/** BLOCKING failures — an error-severity gate that ran and found violations. */
|
|
55
|
+
readonly failed: number;
|
|
56
|
+
/**
|
|
57
|
+
* Failures that do NOT block, because the gate is warning-severity.
|
|
58
|
+
*
|
|
59
|
+
* Reported separately rather than folded into either bucket: a summary line
|
|
60
|
+
* reading "0 failed" above a list containing FAIL rows is the kind of
|
|
61
|
+
* self-contradiction that teaches people to stop trusting the summary.
|
|
62
|
+
* `--strict` promotes these into {@link failed}.
|
|
63
|
+
*/
|
|
64
|
+
readonly failedWarnings: number;
|
|
65
|
+
readonly skipped: number;
|
|
66
|
+
readonly errored: number;
|
|
67
|
+
/** Gates that ran a real check (not skipped, not errored). */
|
|
68
|
+
readonly evaluated: number;
|
|
69
|
+
readonly verdict: 'pass' | 'fail' | 'not-verified';
|
|
70
|
+
/** The settled exit — never `0` while {@link shortfalls} is non-empty. */
|
|
71
|
+
readonly exit: number;
|
|
72
|
+
/**
|
|
73
|
+
* Gates examined of gates the run was asked to check. A DELIBERATE skip (out
|
|
74
|
+
* of the changeset, stopped by `--fail-fast`, an optional gate with nothing
|
|
75
|
+
* to examine) is excluded from `expected`; an accidental one (an error, a
|
|
76
|
+
* required gate that examined nothing, a rule that passed over part of its
|
|
77
|
+
* scope) is an unexamined unit.
|
|
78
|
+
*/
|
|
79
|
+
readonly coverage: IVerdictCoverage;
|
|
80
|
+
/** The scope gaps that kept the verdict off `pass` (empty on a clean run). */
|
|
81
|
+
readonly shortfalls: readonly string[];
|
|
82
|
+
/** Gaps an explicit acceptance waived (reserved; quality accepts none today). */
|
|
83
|
+
readonly accepted: readonly string[];
|
|
84
|
+
/** Set when the run was narrowed to a changeset. */
|
|
85
|
+
readonly scopedFiles?: number;
|
|
86
|
+
readonly failFast: boolean;
|
|
87
|
+
readonly diagnostics: readonly string[];
|
|
88
|
+
}
|
|
89
|
+
export interface IRunQualityInput {
|
|
90
|
+
readonly inspection: ISharkcraftInspection;
|
|
91
|
+
readonly config: IQualityConfig;
|
|
92
|
+
readonly strict: boolean;
|
|
93
|
+
readonly failFast: boolean;
|
|
94
|
+
/** Data-defined rules already narrowed to scope by the caller. */
|
|
95
|
+
readonly gateRules: readonly IGateRuleView[];
|
|
96
|
+
readonly cwd: string;
|
|
97
|
+
readonly excludeDirs: readonly string[];
|
|
98
|
+
readonly changedFiles?: readonly string[];
|
|
99
|
+
/** Rules dropped because their footprint is outside the changeset. */
|
|
100
|
+
readonly skippedByScope?: readonly IGateRuleView[];
|
|
101
|
+
readonly planeDiagnostics?: readonly string[];
|
|
102
|
+
/**
|
|
103
|
+
* Pack rules the merge seam rejected (`seamRejectedRules`, the rows `gates
|
|
104
|
+
* check` fails on) — configured rules that never ran. Each is a FAILED item
|
|
105
|
+
* and an errored coverage row, never out of the count (round 12 review, R12-X1).
|
|
106
|
+
*/
|
|
107
|
+
readonly rejectedRules?: readonly (IGateRuleResult & {
|
|
108
|
+
readonly type: GatePlane;
|
|
109
|
+
})[];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Run EVERY configured gate to completion and report every failure.
|
|
113
|
+
*
|
|
114
|
+
* A CI job that chains gates as separate steps stops at the first failing step,
|
|
115
|
+
* so N independent failures cost N round-trips to discover — the classic case
|
|
116
|
+
* being a first-ever run on a long-lived branch, where fixing gate A only
|
|
117
|
+
* reveals gate B. The default here is therefore exhaustive: the point is to
|
|
118
|
+
* surface the whole backlog in one local pass. `failFast` is available for the
|
|
119
|
+
* opposite, CI-like behaviour, and says so in the report rather than making the
|
|
120
|
+
* remaining gates look clean.
|
|
121
|
+
*/
|
|
122
|
+
export declare function runQuality(input: IRunQualityInput): Promise<IQualityRun>;
|
|
123
|
+
//# sourceMappingURL=run-quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-quality.d.ts","sourceRoot":"","sources":["../../src/quality/run-quality.ts"],"names":[],"mappings":"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"}
|