@shrkcrft/inspector 0.1.0-alpha.30 → 0.1.0-alpha.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acceptance-replay.js +1 -1
- package/dist/agent-contract-templates.js +6 -6
- package/dist/agent-contract.d.ts.map +1 -1
- package/dist/agent-contract.js +13 -8
- package/dist/agent-orchestration.js +2 -2
- package/dist/agent-task-prep.d.ts +16 -0
- package/dist/agent-task-prep.d.ts.map +1 -1
- package/dist/agent-task-prep.js +51 -4
- package/dist/ai-readiness.d.ts.map +1 -1
- package/dist/ai-readiness.js +21 -3
- package/dist/architecture-map.d.ts +16 -0
- package/dist/architecture-map.d.ts.map +1 -1
- package/dist/architecture-map.js +42 -26
- package/dist/area-explore.d.ts +2 -2
- package/dist/area-explore.d.ts.map +1 -1
- package/dist/area-explore.js +36 -16
- package/dist/area-map.d.ts +56 -11
- package/dist/area-map.d.ts.map +1 -1
- package/dist/area-map.js +106 -25
- package/dist/asset-doctor-proposed-exit.d.ts +21 -0
- package/dist/asset-doctor-proposed-exit.d.ts.map +1 -0
- package/dist/asset-doctor-proposed-exit.js +22 -0
- package/dist/asset-provenance.js +1 -1
- package/dist/boundaries-changed-only.d.ts +24 -1
- package/dist/boundaries-changed-only.d.ts.map +1 -1
- package/dist/boundaries-changed-only.js +12 -2
- package/dist/boundary-check-options.model.d.ts +40 -0
- package/dist/boundary-check-options.model.d.ts.map +1 -0
- package/dist/boundary-check-options.model.js +1 -0
- package/dist/boundary-check-result.model.d.ts +89 -0
- package/dist/boundary-check-result.model.d.ts.map +1 -0
- package/dist/boundary-check-result.model.js +1 -0
- package/dist/boundary-configuration-status.d.ts +38 -0
- package/dist/boundary-configuration-status.d.ts.map +1 -0
- package/dist/boundary-configuration-status.js +118 -0
- package/dist/boundary-configuration-status.model.d.ts +37 -0
- package/dist/boundary-configuration-status.model.d.ts.map +1 -0
- package/dist/boundary-configuration-status.model.js +1 -0
- package/dist/boundary-load-issue.model.d.ts +30 -0
- package/dist/boundary-load-issue.model.d.ts.map +1 -0
- package/dist/boundary-load-issue.model.js +1 -0
- package/dist/boundary-rule-check.model.d.ts +44 -0
- package/dist/boundary-rule-check.model.d.ts.map +1 -0
- package/dist/boundary-rule-check.model.js +1 -0
- package/dist/boundary-rule-invalidation.model.d.ts +31 -0
- package/dist/boundary-rule-invalidation.model.d.ts.map +1 -0
- package/dist/boundary-rule-invalidation.model.js +1 -0
- package/dist/boundary-rule-set-diff.model.d.ts +75 -0
- package/dist/boundary-rule-set-diff.model.d.ts.map +1 -0
- package/dist/boundary-rule-set-diff.model.js +1 -0
- package/dist/boundary-rule-sources.d.ts +28 -0
- package/dist/boundary-rule-sources.d.ts.map +1 -0
- package/dist/boundary-rule-sources.js +110 -0
- package/dist/boundary-stale-exception-finding.model.d.ts +12 -0
- package/dist/boundary-stale-exception-finding.model.d.ts.map +1 -0
- package/dist/boundary-stale-exception-finding.model.js +1 -0
- package/dist/boundary-unit-liveness.d.ts +35 -0
- package/dist/boundary-unit-liveness.d.ts.map +1 -0
- package/dist/boundary-unit-liveness.js +71 -0
- package/dist/change-intent.d.ts +3 -0
- package/dist/change-intent.d.ts.map +1 -1
- package/dist/change-intent.js +61 -27
- package/dist/changes-summary.d.ts.map +1 -1
- package/dist/changes-summary.js +19 -9
- package/dist/ci-integrity-report.js +1 -1
- package/dist/ci-predict.d.ts.map +1 -1
- package/dist/ci-predict.js +38 -5
- package/dist/code-intelligence-doctor.d.ts +6 -0
- package/dist/code-intelligence-doctor.d.ts.map +1 -1
- package/dist/code-intelligence-doctor.js +22 -7
- package/dist/command-recommender.d.ts +45 -2
- package/dist/command-recommender.d.ts.map +1 -1
- package/dist/command-recommender.js +41 -263
- package/dist/command-resolution-status.d.ts +44 -0
- package/dist/command-resolution-status.d.ts.map +1 -0
- package/dist/command-resolution-status.js +44 -0
- package/dist/command-safety-level.d.ts +15 -0
- package/dist/command-safety-level.d.ts.map +1 -0
- package/dist/command-safety-level.js +43 -0
- package/dist/command-taxonomy.js +1 -1
- package/dist/compliance-evidence.js +1 -1
- package/dist/compliance-profiles.js +1 -1
- package/dist/construct-registry.d.ts +40 -0
- package/dist/construct-registry.d.ts.map +1 -1
- package/dist/construct-registry.js +186 -82
- package/dist/context-tuning.d.ts +4 -0
- package/dist/context-tuning.d.ts.map +1 -1
- package/dist/context-tuning.js +10 -7
- package/dist/contract-template-registry.d.ts +10 -0
- package/dist/contract-template-registry.d.ts.map +1 -1
- package/dist/contract-template-registry.js +59 -33
- package/dist/contribution-kind.d.ts +52 -0
- package/dist/contribution-kind.d.ts.map +1 -0
- package/dist/contribution-kind.js +52 -0
- package/dist/contribution-load-failures.d.ts +106 -0
- package/dist/contribution-load-failures.d.ts.map +1 -0
- package/dist/contribution-load-failures.js +575 -0
- package/dist/contributions-report.d.ts +28 -0
- package/dist/contributions-report.d.ts.map +1 -0
- package/dist/contributions-report.js +242 -0
- package/dist/convention-registry.d.ts +22 -0
- package/dist/convention-registry.d.ts.map +1 -1
- package/dist/convention-registry.js +79 -39
- package/dist/coverage-report.d.ts.map +1 -1
- package/dist/coverage-report.js +6 -6
- package/dist/custom-checks.d.ts +60 -1
- package/dist/custom-checks.d.ts.map +1 -1
- package/dist/custom-checks.js +159 -6
- package/dist/dashboard/dashboard-data.d.ts +6 -0
- package/dist/dashboard/dashboard-data.d.ts.map +1 -1
- package/dist/dashboard/dashboard-data.js +99 -8
- package/dist/dashboard/dashboard-knowledge.d.ts.map +1 -1
- package/dist/dashboard/dashboard-knowledge.js +14 -2
- package/dist/decision-records.d.ts +20 -0
- package/dist/decision-records.d.ts.map +1 -1
- package/dist/decision-records.js +68 -20
- package/dist/declared-cross-references.d.ts +61 -0
- package/dist/declared-cross-references.d.ts.map +1 -0
- package/dist/declared-cross-references.js +550 -0
- package/dist/declared-gate-plane-rules.d.ts +24 -0
- package/dist/declared-gate-plane-rules.d.ts.map +1 -0
- package/dist/declared-gate-plane-rules.js +39 -0
- package/dist/declared-reference-coverage.d.ts +27 -0
- package/dist/declared-reference-coverage.d.ts.map +1 -0
- package/dist/declared-reference-coverage.js +50 -0
- package/dist/declared-xref-status.d.ts +19 -0
- package/dist/declared-xref-status.d.ts.map +1 -0
- package/dist/declared-xref-status.js +19 -0
- package/dist/delegate-pack-recipes.d.ts +13 -2
- package/dist/delegate-pack-recipes.d.ts.map +1 -1
- package/dist/delegate-pack-recipes.js +45 -14
- package/dist/demo-package.js +2 -2
- package/dist/demo-script.js +2 -2
- package/dist/demo-workflow.js +3 -3
- package/dist/dev-cycle.js +1 -1
- package/dist/dev-session.js +1 -1
- package/dist/doc-references.d.ts +23 -2
- package/dist/doc-references.d.ts.map +1 -1
- package/dist/doc-references.js +96 -17
- package/dist/doctor-result.d.ts +8 -0
- package/dist/doctor-result.d.ts.map +1 -1
- package/dist/doctor-verdict-kind.d.ts +19 -0
- package/dist/doctor-verdict-kind.d.ts.map +1 -0
- package/dist/doctor-verdict-kind.js +19 -0
- package/dist/doctor-verdict.d.ts +18 -0
- package/dist/doctor-verdict.d.ts.map +1 -0
- package/dist/doctor-verdict.js +28 -0
- package/dist/drift.d.ts +17 -0
- package/dist/drift.d.ts.map +1 -1
- package/dist/drift.js +40 -10
- package/dist/entrypoint-matrix.d.ts.map +1 -1
- package/dist/entrypoint-matrix.js +4 -1
- package/dist/feedback-ingestion.d.ts +28 -2
- package/dist/feedback-ingestion.d.ts.map +1 -1
- package/dist/feedback-ingestion.js +68 -19
- package/dist/fix-preview.d.ts.map +1 -1
- package/dist/fix-preview.js +9 -5
- package/dist/framework-extractor-outcomes.d.ts +27 -0
- package/dist/framework-extractor-outcomes.d.ts.map +1 -0
- package/dist/framework-extractor-outcomes.js +83 -0
- package/dist/fuzzy-impact.js +1 -1
- package/dist/healing-plan.d.ts.map +1 -1
- package/dist/healing-plan.js +3 -4
- package/dist/helper-catalog.d.ts +25 -0
- package/dist/helper-catalog.d.ts.map +1 -0
- package/dist/helper-catalog.js +91 -0
- package/dist/helper-registry.d.ts.map +1 -1
- package/dist/helper-registry.js +17 -1
- package/dist/helper-view.d.ts +33 -0
- package/dist/helper-view.d.ts.map +1 -0
- package/dist/helper-view.js +1 -0
- package/dist/i-asset-doctor-flags.d.ts +16 -0
- package/dist/i-asset-doctor-flags.d.ts.map +1 -0
- package/dist/i-asset-doctor-flags.js +1 -0
- package/dist/i-command-resolution.d.ts +22 -0
- package/dist/i-command-resolution.d.ts.map +1 -0
- package/dist/i-command-resolution.js +1 -0
- package/dist/i-command-resolve-options.d.ts +24 -0
- package/dist/i-command-resolve-options.d.ts.map +1 -0
- package/dist/i-command-resolve-options.js +1 -0
- package/dist/i-command-safety.d.ts +13 -0
- package/dist/i-command-safety.d.ts.map +1 -0
- package/dist/i-command-safety.js +1 -0
- package/dist/i-contribution-accepted-entry.d.ts +18 -0
- package/dist/i-contribution-accepted-entry.d.ts.map +1 -0
- package/dist/i-contribution-accepted-entry.js +1 -0
- package/dist/i-contribution-entry-rejection.d.ts +21 -0
- package/dist/i-contribution-entry-rejection.d.ts.map +1 -0
- package/dist/i-contribution-entry-rejection.js +1 -0
- package/dist/i-contribution-file-issue.d.ts +18 -0
- package/dist/i-contribution-file-issue.d.ts.map +1 -0
- package/dist/i-contribution-file-issue.js +1 -0
- package/dist/i-contribution-file-report.d.ts +40 -0
- package/dist/i-contribution-file-report.d.ts.map +1 -0
- package/dist/i-contribution-file-report.js +1 -0
- package/dist/i-contribution-file-validation.d.ts +24 -0
- package/dist/i-contribution-file-validation.d.ts.map +1 -0
- package/dist/i-contribution-file-validation.js +1 -0
- package/dist/i-contributions-report.d.ts +31 -0
- package/dist/i-contributions-report.d.ts.map +1 -0
- package/dist/i-contributions-report.js +1 -0
- package/dist/i-declared-xref-field.d.ts +25 -0
- package/dist/i-declared-xref-field.d.ts.map +1 -0
- package/dist/i-declared-xref-field.js +1 -0
- package/dist/i-declared-xref-issue.d.ts +25 -0
- package/dist/i-declared-xref-issue.d.ts.map +1 -0
- package/dist/i-declared-xref-issue.js +1 -0
- package/dist/i-declared-xref-report.d.ts +48 -0
- package/dist/i-declared-xref-report.d.ts.map +1 -0
- package/dist/i-declared-xref-report.js +1 -0
- package/dist/i-declared-xref-row.d.ts +29 -0
- package/dist/i-declared-xref-row.d.ts.map +1 -0
- package/dist/i-declared-xref-row.js +1 -0
- package/dist/i-doctor-verdict.d.ts +10 -0
- package/dist/i-doctor-verdict.d.ts.map +1 -0
- package/dist/i-doctor-verdict.js +1 -0
- package/dist/i-kind-outcomes.d.ts +13 -0
- package/dist/i-kind-outcomes.d.ts.map +1 -0
- package/dist/i-kind-outcomes.js +1 -0
- package/dist/i-pack-doctor-verdict.d.ts +15 -0
- package/dist/i-pack-doctor-verdict.d.ts.map +1 -0
- package/dist/i-pack-doctor-verdict.js +1 -0
- package/dist/i-probed-id-field.d.ts +17 -0
- package/dist/i-probed-id-field.d.ts.map +1 -0
- package/dist/i-probed-id-field.js +1 -0
- package/dist/i-reference-kind-declaration.d.ts +38 -0
- package/dist/i-reference-kind-declaration.d.ts.map +1 -0
- package/dist/i-reference-kind-declaration.js +1 -0
- package/dist/i-reference-warm-options.d.ts +21 -0
- package/dist/i-reference-warm-options.d.ts.map +1 -0
- package/dist/i-reference-warm-options.js +1 -0
- package/dist/i-registry-outcomes.d.ts +16 -0
- package/dist/i-registry-outcomes.d.ts.map +1 -0
- package/dist/i-registry-outcomes.js +1 -0
- package/dist/i-scaffold-pattern-doctor-report.d.ts +35 -0
- package/dist/i-scaffold-pattern-doctor-report.d.ts.map +1 -0
- package/dist/i-scaffold-pattern-doctor-report.js +1 -0
- package/dist/i-search-tuning-key-probe.d.ts +30 -0
- package/dist/i-search-tuning-key-probe.d.ts.map +1 -0
- package/dist/i-search-tuning-key-probe.js +1 -0
- package/dist/i-search-tuning-lint-issue.d.ts +61 -0
- package/dist/i-search-tuning-lint-issue.d.ts.map +1 -0
- package/dist/i-search-tuning-lint-issue.js +1 -0
- package/dist/i-search-tuning-lint-report.d.ts +38 -0
- package/dist/i-search-tuning-lint-report.d.ts.map +1 -0
- package/dist/i-search-tuning-lint-report.js +1 -0
- package/dist/i-unresolvable-reference-scan.d.ts +14 -0
- package/dist/i-unresolvable-reference-scan.d.ts.map +1 -0
- package/dist/i-unresolvable-reference-scan.js +1 -0
- package/dist/i-unresolvable-reference.d.ts +29 -0
- package/dist/i-unresolvable-reference.d.ts.map +1 -0
- package/dist/i-unresolvable-reference.js +1 -0
- package/dist/i-workspace-profile-payload.d.ts +12 -0
- package/dist/i-workspace-profile-payload.d.ts.map +1 -0
- package/dist/i-workspace-profile-payload.js +1 -0
- package/dist/impact-analysis.d.ts +15 -0
- package/dist/impact-analysis.d.ts.map +1 -1
- package/dist/impact-analysis.js +58 -13
- package/dist/impact-render.d.ts.map +1 -1
- package/dist/impact-render.js +22 -0
- package/dist/import-hygiene.d.ts +35 -1
- package/dist/import-hygiene.d.ts.map +1 -1
- package/dist/import-hygiene.js +107 -13
- package/dist/index.d.ts +141 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +172 -0
- package/dist/inspection-discovery.d.ts +45 -0
- package/dist/inspection-discovery.d.ts.map +1 -0
- package/dist/inspection-discovery.js +70 -0
- package/dist/knowledge-advisory-code.d.ts +17 -0
- package/dist/knowledge-advisory-code.d.ts.map +1 -0
- package/dist/knowledge-advisory-code.js +17 -0
- package/dist/knowledge-aged-entry.d.ts +10 -0
- package/dist/knowledge-aged-entry.d.ts.map +1 -0
- package/dist/knowledge-aged-entry.js +1 -0
- package/dist/knowledge-authoring.d.ts +24 -1
- package/dist/knowledge-authoring.d.ts.map +1 -1
- package/dist/knowledge-authoring.js +46 -7
- package/dist/knowledge-entry-verdict-record.d.ts +22 -0
- package/dist/knowledge-entry-verdict-record.d.ts.map +1 -0
- package/dist/knowledge-entry-verdict-record.js +1 -0
- package/dist/knowledge-entry-verdict.d.ts +17 -0
- package/dist/knowledge-entry-verdict.d.ts.map +1 -0
- package/dist/knowledge-entry-verdict.js +17 -0
- package/dist/knowledge-graph.d.ts +6 -0
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +18 -7
- package/dist/knowledge-kind-bucket.d.ts +19 -0
- package/dist/knowledge-kind-bucket.d.ts.map +1 -0
- package/dist/knowledge-kind-bucket.js +1 -0
- package/dist/knowledge-load-failure.d.ts +23 -0
- package/dist/knowledge-load-failure.d.ts.map +1 -0
- package/dist/knowledge-load-failure.js +1 -0
- package/dist/knowledge-reference-kind-bucket.d.ts +11 -0
- package/dist/knowledge-reference-kind-bucket.d.ts.map +1 -0
- package/dist/knowledge-reference-kind-bucket.js +1 -0
- package/dist/knowledge-stale-advisory.d.ts +14 -0
- package/dist/knowledge-stale-advisory.d.ts.map +1 -0
- package/dist/knowledge-stale-advisory.js +1 -0
- package/dist/knowledge-stale-coverage.d.ts +19 -0
- package/dist/knowledge-stale-coverage.d.ts.map +1 -0
- package/dist/knowledge-stale-coverage.js +1 -0
- package/dist/knowledge-stale-gate-flags.d.ts +33 -0
- package/dist/knowledge-stale-gate-flags.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-flags.js +1 -0
- package/dist/knowledge-stale-gate-input.d.ts +46 -0
- package/dist/knowledge-stale-gate-input.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-input.js +1 -0
- package/dist/knowledge-stale-gate-result.d.ts +33 -0
- package/dist/knowledge-stale-gate-result.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-result.js +1 -0
- package/dist/knowledge-stale-gate-rule.d.ts +33 -0
- package/dist/knowledge-stale-gate-rule.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-rule.js +1 -0
- package/dist/knowledge-stale-gate-violation.d.ts +13 -0
- package/dist/knowledge-stale-gate-violation.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-violation.js +1 -0
- package/dist/knowledge-stale-gate.d.ts +83 -0
- package/dist/knowledge-stale-gate.d.ts.map +1 -0
- package/dist/knowledge-stale-gate.js +429 -0
- package/dist/knowledge-stale-quality-gate.d.ts +26 -0
- package/dist/knowledge-stale-quality-gate.d.ts.map +1 -0
- package/dist/knowledge-stale-quality-gate.js +110 -0
- package/dist/knowledge-stale.d.ts +122 -9
- package/dist/knowledge-stale.d.ts.map +1 -1
- package/dist/knowledge-stale.js +996 -291
- package/dist/knowledge-unverifiable-reason.d.ts +12 -0
- package/dist/knowledge-unverifiable-reason.d.ts.map +1 -0
- package/dist/knowledge-unverifiable-reason.js +12 -0
- package/dist/loader-diagnostics.d.ts +14 -2
- package/dist/loader-diagnostics.d.ts.map +1 -1
- package/dist/match-terms.d.ts +48 -0
- package/dist/match-terms.d.ts.map +1 -0
- package/dist/match-terms.js +155 -0
- package/dist/migration-profile-registry.d.ts +10 -0
- package/dist/migration-profile-registry.d.ts.map +1 -1
- package/dist/migration-profile-registry.js +57 -34
- package/dist/migration-readiness.d.ts.map +1 -1
- package/dist/migration-readiness.js +1 -3
- package/dist/nearest-id.d.ts +10 -26
- package/dist/nearest-id.d.ts.map +1 -1
- package/dist/nearest-id.js +9 -59
- package/dist/pack-asset-freshness.d.ts +65 -0
- package/dist/pack-asset-freshness.d.ts.map +1 -0
- package/dist/pack-asset-freshness.js +340 -0
- package/dist/pack-author-ux.d.ts +24 -3
- package/dist/pack-author-ux.d.ts.map +1 -1
- package/dist/pack-author-ux.js +87 -93
- package/dist/pack-contributions-inventory.d.ts +79 -39
- package/dist/pack-contributions-inventory.d.ts.map +1 -1
- package/dist/pack-contributions-inventory.js +443 -286
- package/dist/pack-doctor-verdict.d.ts +29 -0
- package/dist/pack-doctor-verdict.d.ts.map +1 -0
- package/dist/pack-doctor-verdict.js +45 -0
- package/dist/pack-doctor.d.ts +74 -1
- package/dist/pack-doctor.d.ts.map +1 -1
- package/dist/pack-doctor.js +281 -1
- package/dist/pack-helper-plan.d.ts +24 -0
- package/dist/pack-helper-plan.d.ts.map +1 -0
- package/dist/pack-helper-plan.js +77 -0
- package/dist/pack-helper-registry.d.ts +14 -0
- package/dist/pack-helper-registry.d.ts.map +1 -1
- package/dist/pack-helper-registry.js +76 -37
- package/dist/pack-manifest-reader.d.ts +8 -0
- package/dist/pack-manifest-reader.d.ts.map +1 -0
- package/dist/pack-manifest-reader.js +79 -0
- package/dist/pack-release-check.d.ts +14 -1
- package/dist/pack-release-check.d.ts.map +1 -1
- package/dist/pack-release-check.js +23 -1
- package/dist/pack-signature-status.d.ts +18 -6
- package/dist/pack-signature-status.d.ts.map +1 -1
- package/dist/pack-signature-status.js +59 -105
- package/dist/pack-test-runner.d.ts +27 -5
- package/dist/pack-test-runner.d.ts.map +1 -1
- package/dist/pack-test-runner.js +91 -35
- package/dist/pack-typecheck.d.ts +8 -0
- package/dist/pack-typecheck.d.ts.map +1 -0
- package/dist/pack-typecheck.js +76 -0
- package/dist/plan-review.d.ts +2 -0
- package/dist/plan-review.d.ts.map +1 -1
- package/dist/plan-review.js +17 -5
- package/dist/plan-simulation.d.ts.map +1 -1
- package/dist/plan-simulation.js +16 -5
- package/dist/playbook-load-issue.d.ts +16 -0
- package/dist/playbook-load-issue.d.ts.map +1 -0
- package/dist/playbook-load-issue.js +1 -0
- package/dist/playbook-registry.d.ts +32 -1
- package/dist/playbook-registry.d.ts.map +1 -1
- package/dist/playbook-registry.js +144 -55
- package/dist/policy-declaration.d.ts +18 -0
- package/dist/policy-declaration.d.ts.map +1 -0
- package/dist/policy-declaration.js +1 -0
- package/dist/policy-engine.d.ts +8 -0
- package/dist/policy-engine.d.ts.map +1 -1
- package/dist/policy-engine.js +26 -9
- package/dist/policy-overrides.d.ts.map +1 -1
- package/dist/policy-overrides.js +4 -4
- package/dist/policy-registry.d.ts +27 -0
- package/dist/policy-registry.d.ts.map +1 -1
- package/dist/policy-registry.js +87 -20
- package/dist/probed-id-fields.d.ts +21 -0
- package/dist/probed-id-fields.d.ts.map +1 -0
- package/dist/probed-id-fields.js +25 -0
- package/dist/probed-id-source.d.ts +11 -0
- package/dist/probed-id-source.d.ts.map +1 -0
- package/dist/probed-id-source.js +11 -0
- package/dist/profile-registry.d.ts +25 -2
- package/dist/profile-registry.d.ts.map +1 -1
- package/dist/profile-registry.js +59 -6
- package/dist/quality-gate-examination.d.ts +15 -0
- package/dist/quality-gate-examination.d.ts.map +1 -0
- package/dist/quality-gate-examination.js +15 -0
- package/dist/quality-gate-row-status.d.ts +19 -0
- package/dist/quality-gate-row-status.d.ts.map +1 -0
- package/dist/quality-gate-row-status.js +28 -0
- package/dist/quality-gate-status.d.ts +16 -0
- package/dist/quality-gate-status.d.ts.map +1 -0
- package/dist/quality-gate-status.js +16 -0
- package/dist/quality-html.d.ts.map +1 -1
- package/dist/quality-html.js +14 -3
- package/dist/quality-report-coverage.d.ts +26 -0
- package/dist/quality-report-coverage.d.ts.map +1 -0
- package/dist/quality-report-coverage.js +48 -0
- package/dist/quality-report.d.ts +28 -1
- package/dist/quality-report.d.ts.map +1 -1
- package/dist/quality-report.js +263 -35
- package/dist/query-intent-kind.d.ts +18 -0
- package/dist/query-intent-kind.d.ts.map +1 -0
- package/dist/query-intent-kind.js +18 -0
- package/dist/query-intent-result.d.ts +23 -0
- package/dist/query-intent-result.d.ts.map +1 -0
- package/dist/query-intent-result.js +1 -0
- package/dist/query-intent.d.ts +18 -0
- package/dist/query-intent.d.ts.map +1 -0
- package/dist/query-intent.js +336 -0
- package/dist/query-resolver.d.ts +18 -0
- package/dist/query-resolver.d.ts.map +1 -1
- package/dist/query-resolver.js +7 -4
- package/dist/ranked-recommendations.d.ts +36 -0
- package/dist/ranked-recommendations.d.ts.map +1 -0
- package/dist/ranked-recommendations.js +1 -0
- package/dist/ranker-explainability.d.ts.map +1 -1
- package/dist/ranker-explainability.js +38 -10
- package/dist/recommend-recipe.d.ts +17 -0
- package/dist/recommend-recipe.d.ts.map +1 -0
- package/dist/recommend-recipe.js +1 -0
- package/dist/recommend-recipes.d.ts +9 -0
- package/dist/recommend-recipes.d.ts.map +1 -0
- package/dist/recommend-recipes.js +106 -0
- package/dist/recommendation-candidate.d.ts +30 -0
- package/dist/recommendation-candidate.d.ts.map +1 -0
- package/dist/recommendation-candidate.js +1 -0
- package/dist/recommendation-confidence.d.ts +27 -0
- package/dist/recommendation-confidence.d.ts.map +1 -0
- package/dist/recommendation-confidence.js +1 -0
- package/dist/recommendation-ranking-options.d.ts +24 -0
- package/dist/recommendation-ranking-options.d.ts.map +1 -0
- package/dist/recommendation-ranking-options.js +1 -0
- package/dist/recommendation-ranking.d.ts +50 -0
- package/dist/recommendation-ranking.d.ts.map +1 -0
- package/dist/recommendation-ranking.js +527 -0
- package/dist/recommendation-source.d.ts +23 -0
- package/dist/recommendation-source.d.ts.map +1 -0
- package/dist/recommendation-source.js +23 -0
- package/dist/recommendation-suppression.d.ts +14 -0
- package/dist/recommendation-suppression.d.ts.map +1 -0
- package/dist/recommendation-suppression.js +14 -0
- package/dist/reference-asset-kind.d.ts +14 -0
- package/dist/reference-asset-kind.d.ts.map +1 -0
- package/dist/reference-asset-kind.js +14 -0
- package/dist/reference-content-check.d.ts +32 -0
- package/dist/reference-content-check.d.ts.map +1 -0
- package/dist/reference-content-check.js +143 -0
- package/dist/reference-failure.d.ts +31 -0
- package/dist/reference-failure.d.ts.map +1 -0
- package/dist/reference-failure.js +31 -0
- package/dist/reference-id-status.d.ts +15 -0
- package/dist/reference-id-status.d.ts.map +1 -0
- package/dist/reference-id-status.js +15 -0
- package/dist/reference-kind-declarations.d.ts +42 -0
- package/dist/reference-kind-declarations.d.ts.map +1 -0
- package/dist/reference-kind-declarations.js +142 -0
- package/dist/reference-lookup.d.ts +6 -0
- package/dist/reference-lookup.d.ts.map +1 -1
- package/dist/reference-lookup.js +13 -5
- package/dist/reference-registry.d.ts +109 -11
- package/dist/reference-registry.d.ts.map +1 -1
- package/dist/reference-registry.js +186 -30
- package/dist/reference-subject.d.ts +20 -0
- package/dist/reference-subject.d.ts.map +1 -0
- package/dist/reference-subject.js +1 -0
- package/dist/registration-hint-discovery-status.d.ts +25 -0
- package/dist/registration-hint-discovery-status.d.ts.map +1 -0
- package/dist/registration-hint-discovery-status.js +25 -0
- package/dist/registration-hint-registry.d.ts +80 -0
- package/dist/registration-hint-registry.d.ts.map +1 -1
- package/dist/registration-hint-registry.js +356 -138
- package/dist/registry-lifecycle.d.ts +200 -19
- package/dist/registry-lifecycle.d.ts.map +1 -1
- package/dist/registry-lifecycle.js +526 -136
- package/dist/release-readiness.d.ts.map +1 -1
- package/dist/release-readiness.js +10 -7
- package/dist/release-smoke.d.ts.map +1 -1
- package/dist/release-smoke.js +11 -7
- package/dist/report-site.d.ts.map +1 -1
- package/dist/report-site.js +25 -7
- package/dist/repository-intelligence.d.ts.map +1 -1
- package/dist/repository-intelligence.js +3 -2
- package/dist/repository-knowledge-model.d.ts.map +1 -1
- package/dist/repository-knowledge-model.js +18 -5
- package/dist/resolve-project-config.d.ts +64 -0
- package/dist/resolve-project-config.d.ts.map +1 -1
- package/dist/resolve-project-config.js +240 -32
- package/dist/reuse/compute-reuse-coverage.d.ts +29 -0
- package/dist/reuse/compute-reuse-coverage.d.ts.map +1 -0
- package/dist/reuse/compute-reuse-coverage.js +198 -0
- package/dist/reuse/rank-reuse-candidates.d.ts +38 -0
- package/dist/reuse/rank-reuse-candidates.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-candidates.js +212 -0
- package/dist/reuse/rank-reuse-options.d.ts +20 -0
- package/dist/reuse/rank-reuse-options.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-options.js +1 -0
- package/dist/reuse/rank-reuse-suggestions.d.ts +15 -0
- package/dist/reuse/rank-reuse-suggestions.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-suggestions.js +31 -0
- package/dist/reuse/resolve-curated-reuse.d.ts +43 -0
- package/dist/reuse/resolve-curated-reuse.d.ts.map +1 -0
- package/dist/reuse/resolve-curated-reuse.js +115 -0
- package/dist/reuse/reuse-candidate.d.ts +29 -0
- package/dist/reuse/reuse-candidate.d.ts.map +1 -0
- package/dist/reuse/reuse-candidate.js +1 -0
- package/dist/reuse/reuse-coverage-report.d.ts +74 -0
- package/dist/reuse/reuse-coverage-report.d.ts.map +1 -0
- package/dist/reuse/reuse-coverage-report.js +1 -0
- package/dist/reuse/reuse-curated-coverage.d.ts +36 -0
- package/dist/reuse/reuse-curated-coverage.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-coverage.js +1 -0
- package/dist/reuse/reuse-curated-resolution.d.ts +36 -0
- package/dist/reuse/reuse-curated-resolution.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-resolution.js +1 -0
- package/dist/reuse/reuse-curated-status.d.ts +21 -0
- package/dist/reuse/reuse-curated-status.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-status.js +21 -0
- package/dist/reuse/reuse-match-detail.d.ts +15 -0
- package/dist/reuse/reuse-match-detail.d.ts.map +1 -0
- package/dist/reuse/reuse-match-detail.js +1 -0
- package/dist/reuse/reuse-ranking.d.ts +37 -0
- package/dist/reuse/reuse-ranking.d.ts.map +1 -0
- package/dist/reuse/reuse-ranking.js +1 -0
- package/dist/reuse/reuse-suggestion.d.ts +19 -0
- package/dist/reuse/reuse-suggestion.d.ts.map +1 -0
- package/dist/reuse/reuse-suggestion.js +1 -0
- package/dist/reuse/reuse-symbol-lookup.d.ts +28 -0
- package/dist/reuse/reuse-symbol-lookup.d.ts.map +1 -0
- package/dist/reuse/reuse-symbol-lookup.js +1 -0
- package/dist/reuse/reuse-tokenize.d.ts +11 -0
- package/dist/reuse/reuse-tokenize.d.ts.map +1 -0
- package/dist/reuse/reuse-tokenize.js +26 -0
- package/dist/reuse/score-reuse-name.d.ts +16 -0
- package/dist/reuse/score-reuse-name.d.ts.map +1 -0
- package/dist/reuse/score-reuse-name.js +35 -0
- package/dist/reuse/score-reuse-primitive.d.ts +33 -0
- package/dist/reuse/score-reuse-primitive.d.ts.map +1 -0
- package/dist/reuse/score-reuse-primitive.js +92 -0
- package/dist/review-packet.d.ts +2 -0
- package/dist/review-packet.d.ts.map +1 -1
- package/dist/review-packet.js +13 -6
- package/dist/role-views.d.ts.map +1 -1
- package/dist/role-views.js +16 -16
- package/dist/routing-recommends-channels.d.ts +24 -0
- package/dist/routing-recommends-channels.d.ts.map +1 -0
- package/dist/routing-recommends-channels.js +19 -0
- package/dist/run-boundary-check.d.ts +118 -0
- package/dist/run-boundary-check.d.ts.map +1 -0
- package/dist/run-boundary-check.js +592 -0
- package/dist/safety-audit.js +1 -1
- package/dist/scaffold-coverage.js +1 -1
- package/dist/scaffold-pattern-doctor-report.d.ts +19 -0
- package/dist/scaffold-pattern-doctor-report.d.ts.map +1 -0
- package/dist/scaffold-pattern-doctor-report.js +54 -0
- package/dist/scaffold-patterns.d.ts +75 -1
- package/dist/scaffold-patterns.d.ts.map +1 -1
- package/dist/scaffold-patterns.js +375 -84
- package/dist/schema-inventory.d.ts.map +1 -1
- package/dist/schema-inventory.js +4 -3
- package/dist/search-document-id.d.ts +52 -0
- package/dist/search-document-id.d.ts.map +1 -0
- package/dist/search-document-id.js +72 -0
- package/dist/search-document-prefix.d.ts +7 -0
- package/dist/search-document-prefix.d.ts.map +1 -0
- package/dist/search-document-prefix.js +1 -0
- package/dist/search-index.d.ts.map +1 -1
- package/dist/search-index.js +20 -23
- package/dist/search-tuning-explain.d.ts +6 -0
- package/dist/search-tuning-explain.d.ts.map +1 -1
- package/dist/search-tuning-explain.js +19 -17
- package/dist/search-tuning-key-probes.d.ts +16 -0
- package/dist/search-tuning-key-probes.d.ts.map +1 -0
- package/dist/search-tuning-key-probes.js +65 -0
- package/dist/search-tuning-key-resolution.d.ts +25 -0
- package/dist/search-tuning-key-resolution.d.ts.map +1 -0
- package/dist/search-tuning-key-resolution.js +1 -0
- package/dist/search-tuning-key-resolver.d.ts +4 -0
- package/dist/search-tuning-key-resolver.d.ts.map +1 -0
- package/dist/search-tuning-key-resolver.js +107 -0
- package/dist/search-tuning-key-status.d.ts +24 -0
- package/dist/search-tuning-key-status.d.ts.map +1 -0
- package/dist/search-tuning-key-status.js +24 -0
- package/dist/search-tuning-lint.d.ts +9 -0
- package/dist/search-tuning-lint.d.ts.map +1 -0
- package/dist/search-tuning-lint.js +468 -0
- package/dist/search-tuning-registry.d.ts +43 -0
- package/dist/search-tuning-registry.d.ts.map +1 -1
- package/dist/search-tuning-registry.js +214 -49
- package/dist/self-audit.d.ts +12 -0
- package/dist/self-audit.d.ts.map +1 -1
- package/dist/self-audit.js +36 -10
- package/dist/self-config-doctor-v2.d.ts +145 -3
- package/dist/self-config-doctor-v2.d.ts.map +1 -1
- package/dist/self-config-doctor-v2.js +1304 -181
- package/dist/self-config-doctor.d.ts +20 -1
- package/dist/self-config-doctor.d.ts.map +1 -1
- package/dist/self-config-doctor.js +53 -280
- package/dist/settled-unit-states.d.ts +9 -0
- package/dist/settled-unit-states.d.ts.map +1 -0
- package/dist/settled-unit-states.js +14 -0
- package/dist/sharkcraft-inspector.d.ts +34 -0
- package/dist/sharkcraft-inspector.d.ts.map +1 -1
- package/dist/sharkcraft-inspector.js +273 -26
- package/dist/spec/spec-evidence.d.ts.map +1 -1
- package/dist/spec/spec-evidence.js +14 -20
- package/dist/split-identifier.d.ts +21 -0
- package/dist/split-identifier.d.ts.map +1 -0
- package/dist/split-identifier.js +27 -0
- package/dist/start-here.d.ts.map +1 -1
- package/dist/start-here.js +1 -2
- package/dist/substitute-placeholders.d.ts +8 -0
- package/dist/substitute-placeholders.d.ts.map +1 -0
- package/dist/substitute-placeholders.js +9 -0
- package/dist/symbol-index.d.ts +33 -0
- package/dist/symbol-index.d.ts.map +1 -1
- package/dist/symbol-index.js +241 -3
- package/dist/symbol-member-entry.d.ts +26 -0
- package/dist/symbol-member-entry.d.ts.map +1 -0
- package/dist/symbol-member-entry.js +1 -0
- package/dist/symbol-member-kind.d.ts +14 -0
- package/dist/symbol-member-kind.d.ts.map +1 -0
- package/dist/symbol-member-kind.js +14 -0
- package/dist/task-packet.d.ts.map +1 -1
- package/dist/task-packet.js +52 -9
- package/dist/task-ranker.d.ts +8 -0
- package/dist/task-ranker.d.ts.map +1 -1
- package/dist/task-ranker.js +25 -13
- package/dist/task-risk.js +1 -1
- package/dist/task-routing-hint-registry.d.ts +20 -1
- package/dist/task-routing-hint-registry.d.ts.map +1 -1
- package/dist/task-routing-hint-registry.js +186 -42
- package/dist/template-drift.d.ts.map +1 -1
- package/dist/template-drift.js +30 -9
- package/dist/template-lint.d.ts.map +1 -1
- package/dist/template-lint.js +160 -2
- package/dist/term-query.d.ts +10 -0
- package/dist/term-query.d.ts.map +1 -0
- package/dist/term-query.js +1 -0
- package/dist/test-definitions.d.ts +6 -3
- package/dist/test-definitions.d.ts.map +1 -1
- package/dist/test-runner.d.ts +95 -10
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +309 -308
- package/dist/tuning-query-tokens.d.ts +29 -0
- package/dist/tuning-query-tokens.d.ts.map +1 -0
- package/dist/tuning-query-tokens.js +51 -0
- package/dist/typecheck-files.d.ts +36 -0
- package/dist/typecheck-files.d.ts.map +1 -0
- package/dist/typecheck-files.js +158 -0
- package/dist/uncertainty.js +1 -1
- package/dist/universal-search.d.ts.map +1 -1
- package/dist/universal-search.js +5 -3
- package/dist/unregistered-exports.d.ts +19 -0
- package/dist/unregistered-exports.d.ts.map +1 -0
- package/dist/unregistered-exports.js +141 -0
- package/dist/unresolvable-reason.d.ts +11 -0
- package/dist/unresolvable-reason.d.ts.map +1 -0
- package/dist/unresolvable-reason.js +11 -0
- package/dist/upgrade-advisor.d.ts.map +1 -1
- package/dist/upgrade-advisor.js +16 -9
- package/dist/validate-contribution-file.d.ts +4 -0
- package/dist/validate-contribution-file.d.ts.map +1 -0
- package/dist/validate-contribution-file.js +228 -0
- package/dist/why-file.d.ts +3 -0
- package/dist/why-file.d.ts.map +1 -1
- package/dist/why-file.js +7 -3
- package/package.json +17 -17
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How one doctor run settles — THE reading of an `IDoctorResult` that every
|
|
3
|
+
* surface shares (`shrk doctor`, `shrk check`, the dashboard, MCP
|
|
4
|
+
* `inspect_sharkcraft_setup`), so none of them can call a setup ready that
|
|
5
|
+
* another calls not verified.
|
|
6
|
+
*/
|
|
7
|
+
export var DoctorVerdictKind;
|
|
8
|
+
(function (DoctorVerdictKind) {
|
|
9
|
+
/** No error check, and every scope the doctor was asked to verify was verified. */
|
|
10
|
+
DoctorVerdictKind["Ready"] = "ready";
|
|
11
|
+
/**
|
|
12
|
+
* No error check, but part of the setup could not be verified (today: a
|
|
13
|
+
* compiled pack build with no build record, never compared with its
|
|
14
|
+
* source). Never "ready".
|
|
15
|
+
*/
|
|
16
|
+
DoctorVerdictKind["NotVerified"] = "not-verified";
|
|
17
|
+
/** At least one error-severity check. */
|
|
18
|
+
DoctorVerdictKind["Errors"] = "errors";
|
|
19
|
+
})(DoctorVerdictKind || (DoctorVerdictKind = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IDoctorResult } from './doctor-result.js';
|
|
2
|
+
import type { IDoctorVerdict } from './i-doctor-verdict.js';
|
|
3
|
+
/**
|
|
4
|
+
* THE settlement of one doctor run.
|
|
5
|
+
*
|
|
6
|
+
* an error-severity check → `errors`
|
|
7
|
+
* else any coverage shortfall → `not-verified` (never ready)
|
|
8
|
+
* else → `ready`
|
|
9
|
+
*
|
|
10
|
+
* `IDoctorResult.passed` stays errors-only (its long-standing meaning); the
|
|
11
|
+
* coverage the doctor could not verify is read here, through core's
|
|
12
|
+
* `coverageShortfall`, the same records `shrk doctor` settles its exit on.
|
|
13
|
+
* `shrk check`, the dashboard and MCP `inspect_sharkcraft_setup` read this
|
|
14
|
+
* instead of `passed`, so none of them calls a setup ready over a compiled
|
|
15
|
+
* pack build the doctor could not compare with its source.
|
|
16
|
+
*/
|
|
17
|
+
export declare function doctorVerdict(result: IDoctorResult): IDoctorVerdict;
|
|
18
|
+
//# sourceMappingURL=doctor-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-verdict.d.ts","sourceRoot":"","sources":["../src/doctor-verdict.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAWnE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { coverageShortfall } from '@shrkcrft/core';
|
|
2
|
+
import { DoctorVerdictKind } from "./doctor-verdict-kind.js";
|
|
3
|
+
/**
|
|
4
|
+
* THE settlement of one doctor run.
|
|
5
|
+
*
|
|
6
|
+
* an error-severity check → `errors`
|
|
7
|
+
* else any coverage shortfall → `not-verified` (never ready)
|
|
8
|
+
* else → `ready`
|
|
9
|
+
*
|
|
10
|
+
* `IDoctorResult.passed` stays errors-only (its long-standing meaning); the
|
|
11
|
+
* coverage the doctor could not verify is read here, through core's
|
|
12
|
+
* `coverageShortfall`, the same records `shrk doctor` settles its exit on.
|
|
13
|
+
* `shrk check`, the dashboard and MCP `inspect_sharkcraft_setup` read this
|
|
14
|
+
* instead of `passed`, so none of them calls a setup ready over a compiled
|
|
15
|
+
* pack build the doctor could not compare with its source.
|
|
16
|
+
*/
|
|
17
|
+
export function doctorVerdict(result) {
|
|
18
|
+
const shortfalls = (result.coverage ?? []).flatMap((c) => {
|
|
19
|
+
const s = coverageShortfall(c);
|
|
20
|
+
return s === undefined ? [] : [s];
|
|
21
|
+
});
|
|
22
|
+
const verdict = !result.passed
|
|
23
|
+
? DoctorVerdictKind.Errors
|
|
24
|
+
: shortfalls.length > 0
|
|
25
|
+
? DoctorVerdictKind.NotVerified
|
|
26
|
+
: DoctorVerdictKind.Ready;
|
|
27
|
+
return { verdict, ready: verdict === DoctorVerdictKind.Ready, shortfalls };
|
|
28
|
+
}
|
package/dist/drift.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type IVerdictCoverage } from '@shrkcrft/core';
|
|
1
2
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
3
|
export type DriftSeverity = 'error' | 'warning' | 'info';
|
|
3
4
|
export type DriftCategory = 'boundary' | 'preset-reference' | 'preset-composition' | 'missing-pack-asset' | 'config-mismatch' | 'template-relationship' | 'pipeline-template-link';
|
|
@@ -19,6 +20,22 @@ export interface IDriftReport {
|
|
|
19
20
|
warning: number;
|
|
20
21
|
info: number;
|
|
21
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* What the boundary half examined — THE records `check boundaries` settles
|
|
25
|
+
* on (`boundaryCheckCoverage`). Empty when boundaries were skipped or none
|
|
26
|
+
* is configured.
|
|
27
|
+
*/
|
|
28
|
+
coverage: readonly IVerdictCoverage[];
|
|
29
|
+
/** 0 clean · 1 an error finding · 2 part of a boundary rule's scope was never examined. */
|
|
30
|
+
exitCode: number;
|
|
31
|
+
verdict: 'pass' | 'fail' | 'not-verified' | 'usage-error';
|
|
32
|
+
shortfalls: readonly string[];
|
|
33
|
+
/**
|
|
34
|
+
* The settled acceptances (`<rule>: accepted by expectEmpty: …`) — present
|
|
35
|
+
* only at exit 0, like every acceptance (round 13 review: a boundary rule's
|
|
36
|
+
* expectEmpty acceptance reached this settle and was never printed).
|
|
37
|
+
*/
|
|
38
|
+
accepted?: readonly string[];
|
|
22
39
|
}
|
|
23
40
|
export interface IBuildDriftOptions {
|
|
24
41
|
/** When true, run the full boundary scan (slow on large repos). Default: true. */
|
package/dist/drift.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../src/drift.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../src/drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,uBAAuB,GACvB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjG;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD;;;;OAIG;IACH,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,2FAA2F;IAC3F,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IAC1D,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,YAAY,CAoId"}
|
package/dist/drift.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { settleVerdict } from '@shrkcrft/core';
|
|
2
2
|
import { resolvePreset, resolvePresetReferences } from '@shrkcrft/presets';
|
|
3
|
+
import { boundaryCheckCoverage, boundaryLoadIssueLabel, runBoundaryCheck } from "./run-boundary-check.js";
|
|
3
4
|
import { inspectionReferenceLookup } from "./reference-lookup.js";
|
|
4
5
|
/**
|
|
5
6
|
* First-cut drift report. Combines:
|
|
@@ -13,14 +14,32 @@ import { inspectionReferenceLookup } from "./reference-lookup.js";
|
|
|
13
14
|
*/
|
|
14
15
|
export function buildDriftReport(inspection, options = {}) {
|
|
15
16
|
const findings = [];
|
|
16
|
-
// 1. Boundary violations
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
// 1. Boundary violations — through THE boundary orchestrator, the call
|
|
18
|
+
// `check boundaries` makes (round 11 review R11-GAP-3). Drift ran its own
|
|
19
|
+
// scan + evaluate: an unreadable governed file read `0` here where the gate
|
|
20
|
+
// read 2, and an errored rule or a stale exception was invisible.
|
|
21
|
+
let coverage = [];
|
|
22
|
+
const loadIssues = inspection.boundaryLoadIssues ?? [];
|
|
23
|
+
if ((options.runBoundaries ?? true) && (inspection.boundaryRegistry.size() > 0 || loadIssues.length > 0)) {
|
|
24
|
+
const r = runBoundaryCheck(inspection);
|
|
25
|
+
coverage = boundaryCheckCoverage(r);
|
|
26
|
+
for (const issue of r.loadIssues) {
|
|
27
|
+
findings.push({
|
|
28
|
+
category: 'boundary',
|
|
29
|
+
severity: 'error',
|
|
30
|
+
message: `Boundary rule ${boundaryLoadIssueLabel(issue)} did not load — NOT evaluated: ${issue.issues.join('; ')}`,
|
|
31
|
+
evidence: { file: issue.file, kind: issue.kind, ...(issue.ruleId ? { ruleId: issue.ruleId } : {}) },
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
for (const s of r.staleExceptions) {
|
|
35
|
+
findings.push({
|
|
36
|
+
category: 'boundary',
|
|
37
|
+
severity: 'error',
|
|
38
|
+
message: s.message,
|
|
39
|
+
evidence: { ruleId: s.ruleId, file: s.file },
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
for (const v of r.violations) {
|
|
24
43
|
findings.push({
|
|
25
44
|
category: 'boundary',
|
|
26
45
|
severity: v.severity,
|
|
@@ -103,5 +122,16 @@ export function buildDriftReport(inspection, options = {}) {
|
|
|
103
122
|
const counts = { error: 0, warning: 0, info: 0 };
|
|
104
123
|
for (const f of findings)
|
|
105
124
|
counts[f.severity] += 1;
|
|
106
|
-
|
|
125
|
+
// Settled with core's one fold: a boundary scope that was not fully examined
|
|
126
|
+
// turns a clean drift report into NOT VERIFIED (2), never "No drift".
|
|
127
|
+
const settled = settleVerdict(counts.error > 0 ? 1 : 0, coverage);
|
|
128
|
+
return {
|
|
129
|
+
findings,
|
|
130
|
+
counts,
|
|
131
|
+
coverage,
|
|
132
|
+
exitCode: settled.exit,
|
|
133
|
+
verdict: settled.verdict,
|
|
134
|
+
shortfalls: settled.shortfalls,
|
|
135
|
+
accepted: settled.accepted,
|
|
136
|
+
};
|
|
107
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint-matrix.d.ts","sourceRoot":"","sources":["../src/entrypoint-matrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,oBAAY,eAAe;IACzB,gBAAgB,sBAAsB;IACtC,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,mBAAmB,yBAAyB;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"entrypoint-matrix.d.ts","sourceRoot":"","sources":["../src/entrypoint-matrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,oBAAY,eAAe;IACzB,gBAAgB,sBAAsB;IACtC,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,mBAAmB,yBAAyB;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAuJD,wBAAgB,qBAAqB,IAAI,uBAAuB,CAM/D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CA2BlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,WAAW,GACpE,MAAM,CAeR"}
|
|
@@ -91,7 +91,10 @@ const MATRIX_ENTRIES = [
|
|
|
91
91
|
{
|
|
92
92
|
id: 'why',
|
|
93
93
|
class: EntrypointClass.DebugExplainability,
|
|
94
|
-
|
|
94
|
+
// The `shrk why <id>` / `shrk why-not <id>` ranker CLI was removed; the
|
|
95
|
+
// ranker explainers live behind these MCP tools (`shrk why` is now the
|
|
96
|
+
// per-FILE constraint explainer).
|
|
97
|
+
callShape: 'MCP get_ranker_explanation | get_ranker_why_not',
|
|
95
98
|
whenToUse: 'Debug the ranker — why a registry entry was / was not surfaced for a task.',
|
|
96
99
|
safety: 'read-only',
|
|
97
100
|
docs: 'docs/why.md',
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type IRejectedEntry } from '@shrkcrft/core';
|
|
2
|
+
import type { IContributionFileIssue } from './i-contribution-file-issue.js';
|
|
1
3
|
export declare const FEEDBACK_INGESTION_SCHEMA = "sharkcraft.feedback-ingestion/v1";
|
|
2
4
|
export declare enum FeedbackBucket {
|
|
3
5
|
Good = "good",
|
|
@@ -80,17 +82,41 @@ export declare function ingestFeedbackFile(projectRoot: string, file: string, op
|
|
|
80
82
|
* `sharkcraft/feedback-rules.ts` exporting an `IFeedbackRule[]` default.
|
|
81
83
|
* Packs contribute via `feedbackRuleFiles[]` in their manifest.
|
|
82
84
|
*/
|
|
83
|
-
export declare function loadFeedbackRules(inspection:
|
|
85
|
+
export declare function loadFeedbackRules(inspection: IFeedbackRuleLoadScope): Promise<readonly IFeedbackRule[]>;
|
|
86
|
+
/** What {@link loadFeedbackRules} reads off an inspection (a structural subset, so a caller need not build one). */
|
|
87
|
+
type IFeedbackRuleLoadScope = {
|
|
84
88
|
projectRoot: string;
|
|
85
89
|
sharkcraftDir: string | null;
|
|
86
90
|
packs?: {
|
|
87
91
|
validPacks?: readonly {
|
|
88
92
|
packageRoot: string;
|
|
93
|
+
packageName?: string;
|
|
89
94
|
manifest?: {
|
|
90
95
|
contributions?: unknown;
|
|
91
96
|
} | null;
|
|
92
97
|
}[];
|
|
93
98
|
};
|
|
94
|
-
}
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* THE feedback-rule acceptance predicate (round 12, 12.1): a non-empty string
|
|
102
|
+
* `id` — `[]` means accepted. An id-less rule used to be dropped with no signal.
|
|
103
|
+
*/
|
|
104
|
+
export declare function feedbackRuleRejectionReasons(raw: unknown): readonly string[];
|
|
105
|
+
/**
|
|
106
|
+
* {@link loadFeedbackRules} WITH what did not take effect (round 12, 12.1): a
|
|
107
|
+
* rules file that failed to import (it was swallowed to `[]`), and every
|
|
108
|
+
* declared rule the loader refused — invalid, or a duplicate id.
|
|
109
|
+
*/
|
|
110
|
+
export declare function loadFeedbackRulesWithIssues(inspection: IFeedbackRuleLoadScope): Promise<{
|
|
111
|
+
readonly rules: readonly IFeedbackRule[];
|
|
112
|
+
readonly entries: readonly {
|
|
113
|
+
readonly id: string;
|
|
114
|
+
readonly file: string;
|
|
115
|
+
readonly packageName?: string;
|
|
116
|
+
}[];
|
|
117
|
+
readonly issues: readonly IContributionFileIssue[];
|
|
118
|
+
readonly rejected: readonly IRejectedEntry[];
|
|
119
|
+
}>;
|
|
95
120
|
export declare function renderFeedbackBacklog(report: IFeedbackReport): string;
|
|
121
|
+
export {};
|
|
96
122
|
//# sourceMappingURL=feedback-ingestion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-ingestion.d.ts","sourceRoot":"","sources":["../src/feedback-ingestion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feedback-ingestion.d.ts","sourceRoot":"","sources":["../src/feedback-ingestion.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,eAAO,MAAM,yBAAyB,qCAAqC,CAAC;AAE5E,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,SAAS,eAAe;IACxB,KAAK,UAAU;CAChB;AAED,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,oCAAoC;IACpC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,yBAAyB,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1C,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;IAC/D,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,4CAA4C;IAC5C,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAEnE;AAqMD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAiDjB;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAIjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAE7G;AAED,oHAAoH;AACpH,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,SAAS;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE;gBAAE,aAAa,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI,CAAC;SAC/C,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAI5E;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAC7F,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3G,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C,CAAC,CAwDD;AAaD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAmCrE"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { existsSync, readFileSync } from 'node:fs';
|
|
16
16
|
import * as nodePath from 'node:path';
|
|
17
|
-
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
17
|
+
import { importModuleViaLoader, RejectionCause } from '@shrkcrft/core';
|
|
18
18
|
export const FEEDBACK_INGESTION_SCHEMA = 'sharkcraft.feedback-ingestion/v1';
|
|
19
19
|
export var FeedbackBucket;
|
|
20
20
|
(function (FeedbackBucket) {
|
|
@@ -141,7 +141,7 @@ const KEYWORD_RULES = [
|
|
|
141
141
|
pattern: /\b(mcp|tool[s]?)\b/i,
|
|
142
142
|
tags: ['mcp'],
|
|
143
143
|
targetArea: 'mcp',
|
|
144
|
-
suggestedCommands: ['shrk commands
|
|
144
|
+
suggestedCommands: ['shrk commands search mcp'],
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
pattern: /\b(helper[s]?)\b/i,
|
|
@@ -305,41 +305,90 @@ export function ingestFeedbackFile(projectRoot, file, options = {}) {
|
|
|
305
305
|
* Packs contribute via `feedbackRuleFiles[]` in their manifest.
|
|
306
306
|
*/
|
|
307
307
|
export async function loadFeedbackRules(inspection) {
|
|
308
|
+
return (await loadFeedbackRulesWithIssues(inspection)).rules;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* THE feedback-rule acceptance predicate (round 12, 12.1): a non-empty string
|
|
312
|
+
* `id` — `[]` means accepted. An id-less rule used to be dropped with no signal.
|
|
313
|
+
*/
|
|
314
|
+
export function feedbackRuleRejectionReasons(raw) {
|
|
315
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
316
|
+
return ['(entry): must be an object'];
|
|
317
|
+
const id = raw.id;
|
|
318
|
+
return typeof id === 'string' && id.length > 0 ? [] : ['id: must be a non-empty string'];
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* {@link loadFeedbackRules} WITH what did not take effect (round 12, 12.1): a
|
|
322
|
+
* rules file that failed to import (it was swallowed to `[]`), and every
|
|
323
|
+
* declared rule the loader refused — invalid, or a duplicate id.
|
|
324
|
+
*/
|
|
325
|
+
export async function loadFeedbackRulesWithIssues(inspection) {
|
|
308
326
|
const out = [];
|
|
309
|
-
const
|
|
310
|
-
const
|
|
311
|
-
|
|
327
|
+
const entries = [];
|
|
328
|
+
const issues = [];
|
|
329
|
+
const rejected = [];
|
|
330
|
+
const seen = new Map();
|
|
331
|
+
const readInto = async (file, packageName) => {
|
|
332
|
+
const r = await importDefaultArray(file);
|
|
333
|
+
if (r.error !== undefined) {
|
|
334
|
+
const rel = nodePath.relative(inspection.projectRoot, file) || file;
|
|
335
|
+
issues.push({
|
|
336
|
+
severity: 'warning',
|
|
337
|
+
code: 'load-failed',
|
|
338
|
+
message: `${packageName ? `Pack ${packageName} (${rel})` : `Failed to load ${rel}`}: ${r.error}`,
|
|
339
|
+
source: file,
|
|
340
|
+
...(packageName ? { packageName } : {}),
|
|
341
|
+
});
|
|
312
342
|
return;
|
|
313
|
-
|
|
314
|
-
|
|
343
|
+
}
|
|
344
|
+
r.items.forEach((item, index) => {
|
|
345
|
+
const reasons = feedbackRuleRejectionReasons(item);
|
|
346
|
+
if (reasons.length > 0) {
|
|
347
|
+
rejected.push({ file, index, exportName: 'default', reasons, cause: RejectionCause.Invalid });
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const rule = item;
|
|
351
|
+
const prev = seen.get(rule.id);
|
|
352
|
+
if (prev !== undefined) {
|
|
353
|
+
rejected.push({
|
|
354
|
+
file,
|
|
355
|
+
index,
|
|
356
|
+
exportName: 'default',
|
|
357
|
+
entryId: rule.id,
|
|
358
|
+
reasons: [`id: "${rule.id}" is already declared in ${prev}`],
|
|
359
|
+
cause: RejectionCause.DuplicateId,
|
|
360
|
+
});
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
seen.set(rule.id, nodePath.relative(inspection.projectRoot, file) || file);
|
|
364
|
+
out.push(rule);
|
|
365
|
+
entries.push({ id: rule.id, file, ...(packageName ? { packageName } : {}) });
|
|
366
|
+
});
|
|
315
367
|
};
|
|
316
368
|
// Local file.
|
|
317
369
|
if (inspection.sharkcraftDir) {
|
|
318
|
-
|
|
319
|
-
for (const r of await importDefaultArray(local))
|
|
320
|
-
add(r);
|
|
370
|
+
await readInto(nodePath.join(inspection.sharkcraftDir, 'feedback-rules.ts'));
|
|
321
371
|
}
|
|
322
372
|
// Pack contributions.
|
|
323
373
|
const packs = inspection.packs?.validPacks ?? [];
|
|
324
374
|
for (const pack of packs) {
|
|
325
375
|
const c = (pack.manifest?.contributions ?? {});
|
|
326
376
|
for (const rel of c.feedbackRuleFiles ?? []) {
|
|
327
|
-
|
|
328
|
-
for (const r of await importDefaultArray(full))
|
|
329
|
-
add(r);
|
|
377
|
+
await readInto(nodePath.resolve(pack.packageRoot, rel), pack.packageName);
|
|
330
378
|
}
|
|
331
379
|
}
|
|
332
|
-
return out;
|
|
380
|
+
return { rules: out, entries, issues, rejected };
|
|
333
381
|
}
|
|
382
|
+
/** A rules file's default array; `error` (first line) when the import threw. A missing file is `[]`. */
|
|
334
383
|
async function importDefaultArray(absPath) {
|
|
384
|
+
if (!existsSync(absPath))
|
|
385
|
+
return { items: [] };
|
|
335
386
|
try {
|
|
336
|
-
if (!existsSync(absPath))
|
|
337
|
-
return [];
|
|
338
387
|
const mod = (await importModuleViaLoader(absPath));
|
|
339
|
-
return Array.isArray(mod.default) ? mod.default : [];
|
|
388
|
+
return { items: Array.isArray(mod.default) ? mod.default : [] };
|
|
340
389
|
}
|
|
341
|
-
catch {
|
|
342
|
-
return [];
|
|
390
|
+
catch (e) {
|
|
391
|
+
return { items: [], error: (e.message ?? String(e)).split('\n')[0].trim() };
|
|
343
392
|
}
|
|
344
393
|
}
|
|
345
394
|
export function renderFeedbackBacklog(report) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-preview.d.ts","sourceRoot":"","sources":["../src/fix-preview.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,oBAAY,OAAO;IACjB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;IAC9B,kBAAkB,yBAAyB;IAC3C,kBAAkB,yBAAyB;IAC3C,0BAA0B,iCAAiC;IAC3D,wBAAwB,+BAA+B;IACvD,uBAAuB,8BAA8B;IACrD,wBAAwB,gCAAgC;IACxD,0BAA0B,kCAAkC;IAC5D,qBAAqB,4BAA4B;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,8DAA8D;IAC9D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,OAAO,EAAE,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAuCjC;AAoCD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAoFnB;AA4CD;;4CAE4C;AAC5C,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"fix-preview.d.ts","sourceRoot":"","sources":["../src/fix-preview.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,oBAAY,OAAO;IACjB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,aAAa,mBAAmB;IAChC,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,UAAU,gBAAgB;IAC1B,YAAY,kBAAkB;IAC9B,kBAAkB,yBAAyB;IAC3C,kBAAkB,yBAAyB;IAC3C,0BAA0B,iCAAiC;IAC3D,wBAAwB,+BAA+B;IACvD,uBAAuB,8BAA8B;IACrD,wBAAwB,gCAAgC;IACxD,0BAA0B,kCAAkC;IAC5D,qBAAqB,4BAA4B;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,8DAA8D;IAC9D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,OAAO,EAAE,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAuCjC;AAoCD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAoFnB;AA4CD;;4CAE4C;AAC5C,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsF5B;AAED,wBAAgB,YAAY,IAAI,SAAS;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,CAkBhF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA+B1E"}
|
package/dist/fix-preview.js
CHANGED
|
@@ -237,13 +237,14 @@ export async function buildFixPreviewExtended(inspection, options = {}) {
|
|
|
237
237
|
const kinds = new Set(options.kinds ?? sync.kinds);
|
|
238
238
|
const suggestions = [...sync.suggestions];
|
|
239
239
|
if (kinds.has(FixKind.SelfConfig)) {
|
|
240
|
-
|
|
241
|
-
const
|
|
240
|
+
// THE doctor (v2) — the same checks `shrk self-config doctor` runs.
|
|
241
|
+
const { buildSelfConfigDoctorReportV2 } = await import("./self-config-doctor-v2.js");
|
|
242
|
+
const report = await buildSelfConfigDoctorReportV2(inspection);
|
|
242
243
|
for (const f of report.findings) {
|
|
243
244
|
const severity = f.severity === 'error' ? 'error' : f.severity === 'warning' ? 'warning' : 'info';
|
|
244
245
|
suggestions.push({
|
|
245
246
|
kind: FixKind.SelfConfig,
|
|
246
|
-
targetId: f.
|
|
247
|
+
targetId: f.sourceId || f.targetId || f.code,
|
|
247
248
|
severity,
|
|
248
249
|
title: `Self-config: ${f.code}`,
|
|
249
250
|
description: f.message,
|
|
@@ -253,8 +254,11 @@ export async function buildFixPreviewExtended(inspection, options = {}) {
|
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
256
|
if (kinds.has(FixKind.PackConflict) || kinds.has(FixKind.StalePackSignature)) {
|
|
256
|
-
|
|
257
|
-
|
|
257
|
+
// The async inventory: loader-backed extraction, so a conflict preview is
|
|
258
|
+
// built from the ids the registries really load (the sync regex scrape
|
|
259
|
+
// marks them unverified).
|
|
260
|
+
const { buildPackContributionsInventoryAsync } = await import("./pack-contributions-inventory.js");
|
|
261
|
+
const inv = await buildPackContributionsInventoryAsync(inspection);
|
|
258
262
|
for (const c of inv.conflicts) {
|
|
259
263
|
if (c.kind === 'stale-signature' && kinds.has(FixKind.StalePackSignature)) {
|
|
260
264
|
suggestions.push({
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type IRejectedEntry } from '@shrkcrft/core';
|
|
2
|
+
import type { IContributionFileIssue } from './i-contribution-file-issue.js';
|
|
3
|
+
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
4
|
+
/**
|
|
5
|
+
* Every pack `frameworkExtractorFiles` candidate, read through THE shared
|
|
6
|
+
* reading (`frameworkExtractorExports`) and shape predicate
|
|
7
|
+
* (`frameworkExtractorRejectionReasons`, both @shrkcrft/plugin-api) — the
|
|
8
|
+
* same two the runtime loader (`loadPackExtractors`, @shrkcrft/framework-
|
|
9
|
+
* scanners) applies. The inspector cannot import that loader (it sits above
|
|
10
|
+
* this layer via @shrkcrft/graph), so this is how framework extractors join
|
|
11
|
+
* THE rejection channel (round 12, 12.1).
|
|
12
|
+
*
|
|
13
|
+
* A candidate whose `framework` collides with a BUILT-IN extractor (nestjs,
|
|
14
|
+
* react, …) is refused only by the runtime loader, which alone knows the
|
|
15
|
+
* built-in registry; a collision between two contributed extractors is
|
|
16
|
+
* refused here too (the runtime keeps the first).
|
|
17
|
+
*/
|
|
18
|
+
export declare function loadFrameworkExtractorOutcomes(inspection: ISharkcraftInspection): Promise<{
|
|
19
|
+
readonly accepted: readonly {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly file: string;
|
|
22
|
+
readonly packageName: string;
|
|
23
|
+
}[];
|
|
24
|
+
readonly rejected: readonly IRejectedEntry[];
|
|
25
|
+
readonly issues: readonly IContributionFileIssue[];
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=framework-extractor-outcomes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-extractor-outcomes.d.ts","sourceRoot":"","sources":["../src/framework-extractor-outcomes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3G,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACpD,CAAC,CA+DD"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import * as nodePath from 'node:path';
|
|
3
|
+
import { importModuleViaLoader, RejectionCause } from '@shrkcrft/core';
|
|
4
|
+
import { frameworkExtractorExports, frameworkExtractorRejectionReasons } from '@shrkcrft/plugin-api';
|
|
5
|
+
/**
|
|
6
|
+
* Every pack `frameworkExtractorFiles` candidate, read through THE shared
|
|
7
|
+
* reading (`frameworkExtractorExports`) and shape predicate
|
|
8
|
+
* (`frameworkExtractorRejectionReasons`, both @shrkcrft/plugin-api) — the
|
|
9
|
+
* same two the runtime loader (`loadPackExtractors`, @shrkcrft/framework-
|
|
10
|
+
* scanners) applies. The inspector cannot import that loader (it sits above
|
|
11
|
+
* this layer via @shrkcrft/graph), so this is how framework extractors join
|
|
12
|
+
* THE rejection channel (round 12, 12.1).
|
|
13
|
+
*
|
|
14
|
+
* A candidate whose `framework` collides with a BUILT-IN extractor (nestjs,
|
|
15
|
+
* react, …) is refused only by the runtime loader, which alone knows the
|
|
16
|
+
* built-in registry; a collision between two contributed extractors is
|
|
17
|
+
* refused here too (the runtime keeps the first).
|
|
18
|
+
*/
|
|
19
|
+
export async function loadFrameworkExtractorOutcomes(inspection) {
|
|
20
|
+
const accepted = [];
|
|
21
|
+
const rejected = [];
|
|
22
|
+
const issues = [];
|
|
23
|
+
const seen = new Map();
|
|
24
|
+
for (const pack of inspection.packs.validPacks ?? []) {
|
|
25
|
+
const files = pack.manifest?.contributions
|
|
26
|
+
?.frameworkExtractorFiles;
|
|
27
|
+
for (const rel of files ?? []) {
|
|
28
|
+
const file = nodePath.resolve(pack.packageRoot, rel);
|
|
29
|
+
if (!existsSync(file)) {
|
|
30
|
+
issues.push({
|
|
31
|
+
severity: 'warning',
|
|
32
|
+
code: 'missing-file',
|
|
33
|
+
message: `Pack ${pack.packageName} declares ${rel} but the file is missing.`,
|
|
34
|
+
source: file,
|
|
35
|
+
packageName: pack.packageName,
|
|
36
|
+
});
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
let mod;
|
|
40
|
+
try {
|
|
41
|
+
mod = await importModuleViaLoader(file);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
issues.push({
|
|
45
|
+
severity: 'warning',
|
|
46
|
+
code: 'load-failed',
|
|
47
|
+
message: `Pack ${pack.packageName} (${rel}): ${(e.message ?? String(e)).split('\n')[0].trim()}`,
|
|
48
|
+
source: file,
|
|
49
|
+
packageName: pack.packageName,
|
|
50
|
+
});
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
for (const c of frameworkExtractorExports(mod)) {
|
|
54
|
+
const reasons = frameworkExtractorRejectionReasons(c.value);
|
|
55
|
+
const framework = c.value?.framework;
|
|
56
|
+
const at = { file, index: c.index, exportName: c.exportName };
|
|
57
|
+
if (reasons.length > 0) {
|
|
58
|
+
rejected.push({
|
|
59
|
+
...at,
|
|
60
|
+
...(typeof framework === 'string' ? { entryId: framework } : {}),
|
|
61
|
+
reasons,
|
|
62
|
+
cause: RejectionCause.Invalid,
|
|
63
|
+
});
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const name = framework;
|
|
67
|
+
const prev = seen.get(name);
|
|
68
|
+
if (prev !== undefined) {
|
|
69
|
+
rejected.push({
|
|
70
|
+
...at,
|
|
71
|
+
entryId: name,
|
|
72
|
+
reasons: [`framework: "${name}" is already registered by ${prev}`],
|
|
73
|
+
cause: RejectionCause.DuplicateId,
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
seen.set(name, `${pack.packageName} (${rel})`);
|
|
78
|
+
accepted.push({ id: name, file, packageName: pack.packageName });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return { accepted, rejected, issues };
|
|
83
|
+
}
|
package/dist/fuzzy-impact.js
CHANGED
|
@@ -379,7 +379,7 @@ function buildResolution(inspection, query, resolution, opts) {
|
|
|
379
379
|
resolvedLabel: best.label,
|
|
380
380
|
alternatives,
|
|
381
381
|
shouldRunImpact: false,
|
|
382
|
-
followUpCommands: [`shrk
|
|
382
|
+
followUpCommands: [`shrk help ${best.id}`, `shrk ${best.id} --help`],
|
|
383
383
|
diagnostics: [
|
|
384
384
|
`"${best.id}" resolves to a CLI command, not a code construct. Use \`shrk impact <file>\` to analyse files this command would touch.`,
|
|
385
385
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healing-plan.d.ts","sourceRoot":"","sources":["../src/healing-plan.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,mBAAmB,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"healing-plan.d.ts","sourceRoot":"","sources":["../src/healing-plan.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,mBAAmB,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAmQD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAMzE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAcvE;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAqB3E;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,YAAY,CAQd;AAID,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAsB7D;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAiBjE"}
|
package/dist/healing-plan.js
CHANGED
|
@@ -15,7 +15,7 @@ export var HealingInputKind;
|
|
|
15
15
|
HealingInputKind["Report"] = "report";
|
|
16
16
|
HealingInputKind["Command"] = "command";
|
|
17
17
|
})(HealingInputKind || (HealingInputKind = {}));
|
|
18
|
-
const GENERIC_NEXT = 'shrk
|
|
18
|
+
const GENERIC_NEXT = 'shrk recommend --from-error <stderr-file>';
|
|
19
19
|
function inferFromKeywords(text) {
|
|
20
20
|
const causes = [];
|
|
21
21
|
const recover = [];
|
|
@@ -58,8 +58,7 @@ function inferFromKeywords(text) {
|
|
|
58
58
|
if (lower.includes('migration') && (lower.includes('readiness') || lower.includes('blocker'))) {
|
|
59
59
|
causes.push('Migration readiness gate reported a blocker.');
|
|
60
60
|
recover.push('Resolve each blocker before re-running the gate.');
|
|
61
|
-
cmds.push('shrk
|
|
62
|
-
cmds.push('shrk migration profiles');
|
|
61
|
+
cmds.push('shrk migrate plan <id>');
|
|
63
62
|
docs.push('docs/migration-readiness.md');
|
|
64
63
|
}
|
|
65
64
|
// Unknown command.
|
|
@@ -202,7 +201,7 @@ function buildPlan(ctx) {
|
|
|
202
201
|
const safeRecoverySteps = [
|
|
203
202
|
'Re-read the failing command output carefully (do not skip).',
|
|
204
203
|
'Reproduce the failure locally before changing code.',
|
|
205
|
-
'If unsure, run `shrk doctor` and `shrk
|
|
204
|
+
'If unsure, run `shrk doctor` and `shrk recommend --from-error <stderr-file>`.',
|
|
206
205
|
];
|
|
207
206
|
for (const r of inferred.recover)
|
|
208
207
|
safeRecoverySteps.push(r);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type IRejectedEntry } from '@shrkcrft/core';
|
|
2
|
+
import type { IHelperView } from './helper-view.js';
|
|
3
|
+
import { type IPackHelperDoctorIssue } from './pack-helper-registry.js';
|
|
4
|
+
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
5
|
+
export interface IHelperCatalog {
|
|
6
|
+
/** Every helper, deduped by id: built-ins first, then local, then pack (loader order). */
|
|
7
|
+
readonly entries: readonly IHelperView[];
|
|
8
|
+
/** load-failed / missing-file / invalid-helper / duplicate-id / helper-warning issues. */
|
|
9
|
+
readonly issues: readonly IPackHelperDoctorIssue[];
|
|
10
|
+
/** Every helper FILE considered (local `helpers.ts` + pack `helperFiles[]`) and whether it loaded. */
|
|
11
|
+
readonly files: readonly {
|
|
12
|
+
readonly file: string;
|
|
13
|
+
readonly status: 'loaded' | 'failed' | 'missing';
|
|
14
|
+
}[];
|
|
15
|
+
/**
|
|
16
|
+
* Every declared helper that did not make the catalog (round 12, 12.1): the
|
|
17
|
+
* loader's refusals plus a contributed helper shadowed by a built-in id.
|
|
18
|
+
*/
|
|
19
|
+
readonly rejected: readonly IRejectedEntry[];
|
|
20
|
+
}
|
|
21
|
+
/** Build the catalog. One pack-helper load per call (it returns entries AND issues). */
|
|
22
|
+
export declare function listAllHelpers(inspection: ISharkcraftInspection): Promise<IHelperCatalog>;
|
|
23
|
+
/** One helper by id, from the same catalog `helper list` prints. */
|
|
24
|
+
export declare function findHelper(inspection: ISharkcraftInspection, id: string): Promise<IHelperView | null>;
|
|
25
|
+
//# sourceMappingURL=helper-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper-catalog.d.ts","sourceRoot":"","sources":["../src/helper-catalog.ts"],"names":[],"mappings":"AAWA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACnD,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IACvG;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C;AAED,wFAAwF;AACxF,wBAAsB,cAAc,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsE/F;AAED,oEAAoE;AACpE,wBAAsB,UAAU,CAC9B,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAG7B"}
|