@shrkcrft/inspector 0.1.0-alpha.30 → 0.1.0-alpha.32
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 +60 -5
- 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/codemod-assist.d.ts.map +1 -1
- package/dist/codemod-assist.js +3 -1
- 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/comment-syntax.d.ts +15 -0
- package/dist/comment-syntax.d.ts.map +1 -0
- package/dist/comment-syntax.js +15 -0
- 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 +122 -0
- package/dist/contribution-load-failures.d.ts.map +1 -0
- package/dist/contribution-load-failures.js +592 -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-applicability.d.ts +46 -0
- package/dist/convention-applicability.d.ts.map +1 -0
- package/dist/convention-applicability.js +247 -0
- package/dist/convention-filter-level.d.ts +13 -0
- package/dist/convention-filter-level.d.ts.map +1 -0
- package/dist/convention-filter-level.js +13 -0
- package/dist/convention-registry.d.ts +51 -4
- package/dist/convention-registry.d.ts.map +1 -1
- package/dist/convention-registry.js +135 -60
- 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 +161 -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 +24 -0
- package/dist/decision-records.d.ts.map +1 -1
- package/dist/decision-records.js +231 -84
- 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 +55 -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 +75 -20
- package/dist/file-languages.d.ts +9 -0
- package/dist/file-languages.d.ts.map +1 -0
- package/dist/file-languages.js +91 -0
- package/dist/fix-preview.d.ts.map +1 -1
- package/dist/fix-preview.js +87 -22
- 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.d.ts.map +1 -1
- package/dist/fuzzy-impact.js +3 -2
- package/dist/git-helpers.d.ts +29 -4
- package/dist/git-helpers.d.ts.map +1 -1
- package/dist/git-helpers.js +69 -10
- 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 +32 -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-convention-applicability-reason.d.ts +29 -0
- package/dist/i-convention-applicability-reason.d.ts.map +1 -0
- package/dist/i-convention-applicability-reason.js +1 -0
- package/dist/i-convention-applicability.d.ts +9 -0
- package/dist/i-convention-applicability.d.ts.map +1 -0
- package/dist/i-convention-applicability.js +1 -0
- package/dist/i-convention-scope.d.ts +19 -0
- package/dist/i-convention-scope.d.ts.map +1 -0
- package/dist/i-convention-scope.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-file-language.d.ts +11 -0
- package/dist/i-file-language.d.ts.map +1 -0
- package/dist/i-file-language.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-not-applicable-convention.d.ts +17 -0
- package/dist/i-not-applicable-convention.d.ts.map +1 -0
- package/dist/i-not-applicable-convention.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-pack-origin.d.ts +13 -0
- package/dist/i-reference-pack-origin.d.ts.map +1 -0
- package/dist/i-reference-pack-origin.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-stale-path-hint-input.d.ts +18 -0
- package/dist/i-stale-path-hint-input.d.ts.map +1 -0
- package/dist/i-stale-path-hint-input.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-unverifiable-remedy-group.d.ts +10 -0
- package/dist/i-unverifiable-remedy-group.d.ts.map +1 -0
- package/dist/i-unverifiable-remedy-group.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 +158 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +197 -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 +25 -2
- package/dist/knowledge-authoring.d.ts.map +1 -1
- package/dist/knowledge-authoring.js +53 -13
- package/dist/knowledge-contribution-slots.d.ts +18 -0
- package/dist/knowledge-contribution-slots.d.ts.map +1 -0
- package/dist/knowledge-contribution-slots.js +25 -0
- package/dist/knowledge-entry-rejections.d.ts +17 -0
- package/dist/knowledge-entry-rejections.d.ts.map +1 -0
- package/dist/knowledge-entry-rejections.js +79 -0
- package/dist/knowledge-entry-verdict-record.d.ts +34 -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-min-referenced-valve.d.ts +12 -0
- package/dist/knowledge-min-referenced-valve.d.ts.map +1 -0
- package/dist/knowledge-min-referenced-valve.js +12 -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-rejected-entry.d.ts +28 -0
- package/dist/knowledge-rejected-entry.d.ts.map +1 -0
- package/dist/knowledge-rejected-entry.js +1 -0
- package/dist/knowledge-rename-command.d.ts +20 -0
- package/dist/knowledge-rename-command.d.ts.map +1 -0
- package/dist/knowledge-rename-command.js +34 -0
- package/dist/knowledge-rename-verb.d.ts +11 -0
- package/dist/knowledge-rename-verb.d.ts.map +1 -0
- package/dist/knowledge-rename-verb.js +11 -0
- package/dist/knowledge-rename.d.ts +1 -1
- package/dist/knowledge-rename.d.ts.map +1 -1
- package/dist/knowledge-rename.js +6 -5
- 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 +85 -0
- package/dist/knowledge-stale-gate.d.ts.map +1 -0
- package/dist/knowledge-stale-gate.js +501 -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 +140 -0
- package/dist/knowledge-stale.d.ts +132 -9
- package/dist/knowledge-stale.d.ts.map +1 -1
- package/dist/knowledge-stale.js +1193 -294
- 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/knowledge-unverifiable-remedy.d.ts +56 -0
- package/dist/knowledge-unverifiable-remedy.d.ts.map +1 -0
- package/dist/knowledge-unverifiable-remedy.js +0 -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 +445 -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/propose-knowledge.js +3 -2
- 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-pack-origin.d.ts +18 -0
- package/dist/reference-pack-origin.d.ts.map +1 -0
- package/dist/reference-pack-origin.js +38 -0
- 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/repository-stats.d.ts.map +1 -1
- package/dist/repository-stats.js +3 -77
- 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 +250 -33
- 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 +1369 -182
- 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 +55 -281
- 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 +314 -27
- 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/stale-path-hint.d.ts +3 -0
- package/dist/stale-path-hint.d.ts.map +1 -0
- package/dist/stale-path-hint.js +47 -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-authoring.d.ts +1 -1
- package/dist/template-authoring.d.ts.map +1 -1
- package/dist/template-authoring.js +2 -1
- 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 +233 -0
- package/dist/why-file.d.ts +3 -0
- package/dist/why-file.d.ts.map +1 -1
- package/dist/why-file.js +12 -7
- package/package.json +17 -17
|
@@ -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
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-impact.d.ts","sourceRoot":"","sources":["../src/fuzzy-impact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fuzzy-impact.d.ts","sourceRoot":"","sources":["../src/fuzzy-impact.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,cAAc,EAEd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKvE,eAAO,MAAM,8BAA8B,0CAA0C,CAAC;AAEtF,oBAAY,qBAAqB;IAC/B,SAAS,eAAe;IACxB,SAAS,cAAc;IACvB,SAAS,eAAe;IACxB,UAAU,gBAAgB;IAC1B,OAAO,aAAa;IACpB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,OAAO,8BAA8B,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,EAAE,qBAAqB,CAAC;IAC9B,sEAAsE;IACtE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IACrC,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,kCAAkC;IAClC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAqaD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,0BAA+B,GACvC,sBAAsB,CA+BxB"}
|
package/dist/fuzzy-impact.js
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { existsSync } from 'node:fs';
|
|
27
27
|
import * as nodePath from 'node:path';
|
|
28
|
+
import { knowledgeReferences } from '@shrkcrft/knowledge';
|
|
28
29
|
import { QueryMatchKind, resolveQuery, } from "./query-resolver.js";
|
|
29
30
|
import { HELPERS } from "./helper-registry.js";
|
|
30
31
|
import { listConstructs } from "./construct-registry.js";
|
|
@@ -129,7 +130,7 @@ function knowledgeFileReferences(inspection, knowledgeId) {
|
|
|
129
130
|
if (!k)
|
|
130
131
|
return [];
|
|
131
132
|
const out = [];
|
|
132
|
-
for (const ref of k
|
|
133
|
+
for (const ref of knowledgeReferences(k)) {
|
|
133
134
|
if (ref.kind === 'file' && ref.path)
|
|
134
135
|
out.push(ref.path);
|
|
135
136
|
}
|
|
@@ -379,7 +380,7 @@ function buildResolution(inspection, query, resolution, opts) {
|
|
|
379
380
|
resolvedLabel: best.label,
|
|
380
381
|
alternatives,
|
|
381
382
|
shouldRunImpact: false,
|
|
382
|
-
followUpCommands: [`shrk
|
|
383
|
+
followUpCommands: [`shrk help ${best.id}`, `shrk ${best.id} --help`],
|
|
383
384
|
diagnostics: [
|
|
384
385
|
`"${best.id}" resolves to a CLI command, not a code construct. Use \`shrk impact <file>\` to analyse files this command would touch.`,
|
|
385
386
|
],
|
package/dist/git-helpers.d.ts
CHANGED
|
@@ -20,6 +20,26 @@ export interface IGitStatusSummary {
|
|
|
20
20
|
export declare function isGitRepo(cwd: string): boolean;
|
|
21
21
|
export declare function getGitRoot(cwd: string): string | null;
|
|
22
22
|
export declare function getGitBranch(cwd: string): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* The files a change touched, RELATIVE TO THE PROJECT ROOT `cwd` belongs to
|
|
25
|
+
* (`changedScopeRoot` — the root every caller resolves them against), sorted.
|
|
26
|
+
* git names a path relative to the work-tree TOP LEVEL. That is always true of
|
|
27
|
+
* `status --porcelain`, and of `diff` too once `diff.relative` is forced off,
|
|
28
|
+
* so a user's config cannot change the spelling. For a project nested in a
|
|
29
|
+
* larger repository (prefix `app/`), the top-level spelling `app/src/a.ts`
|
|
30
|
+
* resolved to `<root>/app/src/a.ts`, a file that does not exist. A
|
|
31
|
+
* changed-scope check (`conventions check --staged`, `--since`, and every
|
|
32
|
+
* other changed-scope reader) then checked nothing (round 15 lane B, B4). Every
|
|
33
|
+
* path is now mapped to root-relative. A change outside the project's subtree
|
|
34
|
+
* (a sibling package of the larger repository) is not in scope.
|
|
35
|
+
*
|
|
36
|
+
* Root-relative, never `cwd`-relative (lane B review): a command run from a
|
|
37
|
+
* subdirectory (`--cwd src`, a shell in `src/`) inspects the project root
|
|
38
|
+
* `detectProjectRoot` walks up to, so a `cwd`-relative `a.ts` resolved to
|
|
39
|
+
* `<root>/a.ts` — `validate-change`, `ownership affected`, `brief`, `tests
|
|
40
|
+
* impact` and `finish` read the wrong files where the top-level spelling had
|
|
41
|
+
* read the right ones.
|
|
42
|
+
*/
|
|
23
43
|
export declare function getChangedFiles(cwd: string, opts?: IGitChangedOptions): string[];
|
|
24
44
|
/**
|
|
25
45
|
* True when `ref` resolves to a commit in `cwd`'s repo. Lets a caller tell a
|
|
@@ -30,10 +50,15 @@ export declare function getChangedFiles(cwd: string, opts?: IGitChangedOptions):
|
|
|
30
50
|
*/
|
|
31
51
|
export declare function refExists(cwd: string, ref: string): boolean;
|
|
32
52
|
/**
|
|
33
|
-
* The content of `relPath` at `ref` (e.g. `git show HEAD
|
|
34
|
-
* when the path did not exist at that ref (a newly-added file) or git
|
|
35
|
-
* `relPath` is
|
|
36
|
-
*
|
|
53
|
+
* The content of `relPath` at `ref` (e.g. `git show HEAD:./src/x.ts`), or
|
|
54
|
+
* `null` when the path did not exist at that ref (a newly-added file) or git
|
|
55
|
+
* failed. `relPath` is relative to the project root `cwd` belongs to — the
|
|
56
|
+
* spelling `getChangedFiles` returns: git runs from that root and the `./` form
|
|
57
|
+
* resolves the path against it, so a project nested in a larger repository
|
|
58
|
+
* reads its own file (round 15 lane B, B4; the bare `<ref>:<path>` form is
|
|
59
|
+
* top-level-relative), and so does a caller whose `cwd` is a subdirectory
|
|
60
|
+
* (lane B review). Used to diff a file's PAST state against the working tree
|
|
61
|
+
* without a checkout — e.g. to see what a now-edited file used to
|
|
37
62
|
* provide/register.
|
|
38
63
|
*/
|
|
39
64
|
export declare function gitShowFile(cwd: string, ref: string, relPath: string): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-helpers.d.ts","sourceRoot":"","sources":["../src/git-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-helpers.d.ts","sourceRoot":"","sources":["../src/git-helpers.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAqBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAI9C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvD;AA4BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,MAAM,EAAE,CA+BpF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAyC/D;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,EAAE,CA6BrF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKjD"}
|
package/dist/git-helpers.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import * as nodePath from 'node:path';
|
|
4
|
+
import { detectProjectRoot } from '@shrkcrft/workspace';
|
|
4
5
|
// 512 MB — the same generous ceiling @shrkcrft/shared's runGitLines uses. A
|
|
5
6
|
// `diff`/`log --name-only` listing on a large changeset overflows Node's 1 MB
|
|
6
7
|
// default `maxBuffer` and dies with ENOBUFS; a name listing never approaches
|
|
@@ -38,22 +39,75 @@ export function getGitBranch(cwd) {
|
|
|
38
39
|
const out = r.stdout.trim();
|
|
39
40
|
return out.length > 0 ? out : null;
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Where `dir` sits inside its git work tree (`git rev-parse --show-prefix`):
|
|
44
|
+
* `''` at the top level, `app/` for a project nested in a larger repository.
|
|
45
|
+
* `''` too when git cannot tell (the paths are then used as git printed them).
|
|
46
|
+
*/
|
|
47
|
+
function gitPrefix(dir) {
|
|
48
|
+
const r = runGit(dir, ['rev-parse', '--show-prefix']);
|
|
49
|
+
return r.ok ? r.stdout.trim() : '';
|
|
50
|
+
}
|
|
51
|
+
/** A top-level-relative git path as a root-relative one, or `undefined` outside the root's subtree. */
|
|
52
|
+
function underPrefix(prefix, gitPath) {
|
|
53
|
+
if (prefix === '')
|
|
54
|
+
return gitPath;
|
|
55
|
+
return gitPath.startsWith(prefix) && gitPath.length > prefix.length ? gitPath.slice(prefix.length) : undefined;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The project root `cwd` belongs to — THE root `inspectSharkcraft` reads
|
|
59
|
+
* (`detectProjectRoot`: the nearest ancestor holding a root marker, `.git`
|
|
60
|
+
* included, so it never climbs out of the work tree). Every changed-scope path
|
|
61
|
+
* is spelled relative to it, from whichever subdirectory a command runs.
|
|
62
|
+
*/
|
|
63
|
+
function changedScopeRoot(cwd) {
|
|
64
|
+
return detectProjectRoot(cwd).root;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The files a change touched, RELATIVE TO THE PROJECT ROOT `cwd` belongs to
|
|
68
|
+
* (`changedScopeRoot` — the root every caller resolves them against), sorted.
|
|
69
|
+
* git names a path relative to the work-tree TOP LEVEL. That is always true of
|
|
70
|
+
* `status --porcelain`, and of `diff` too once `diff.relative` is forced off,
|
|
71
|
+
* so a user's config cannot change the spelling. For a project nested in a
|
|
72
|
+
* larger repository (prefix `app/`), the top-level spelling `app/src/a.ts`
|
|
73
|
+
* resolved to `<root>/app/src/a.ts`, a file that does not exist. A
|
|
74
|
+
* changed-scope check (`conventions check --staged`, `--since`, and every
|
|
75
|
+
* other changed-scope reader) then checked nothing (round 15 lane B, B4). Every
|
|
76
|
+
* path is now mapped to root-relative. A change outside the project's subtree
|
|
77
|
+
* (a sibling package of the larger repository) is not in scope.
|
|
78
|
+
*
|
|
79
|
+
* Root-relative, never `cwd`-relative (lane B review): a command run from a
|
|
80
|
+
* subdirectory (`--cwd src`, a shell in `src/`) inspects the project root
|
|
81
|
+
* `detectProjectRoot` walks up to, so a `cwd`-relative `a.ts` resolved to
|
|
82
|
+
* `<root>/a.ts` — `validate-change`, `ownership affected`, `brief`, `tests
|
|
83
|
+
* impact` and `finish` read the wrong files where the top-level spelling had
|
|
84
|
+
* read the right ones.
|
|
85
|
+
*/
|
|
41
86
|
export function getChangedFiles(cwd, opts = {}) {
|
|
42
87
|
if (!isGitRepo(cwd))
|
|
43
88
|
return [];
|
|
44
|
-
const
|
|
89
|
+
const root = changedScopeRoot(cwd);
|
|
90
|
+
const prefix = gitPrefix(root);
|
|
91
|
+
const args = ['-c', 'diff.relative=false', 'diff', '--name-only'];
|
|
45
92
|
if (opts.staged)
|
|
46
93
|
args.push('--cached');
|
|
47
94
|
if (opts.since)
|
|
48
95
|
args.push(opts.since);
|
|
49
|
-
const a = runGit(
|
|
50
|
-
const set = new Set(
|
|
96
|
+
const a = runGit(root, args);
|
|
97
|
+
const set = new Set();
|
|
98
|
+
const add = (gitPath) => {
|
|
99
|
+
const rel = underPrefix(prefix, gitPath);
|
|
100
|
+
if (rel !== undefined)
|
|
101
|
+
set.add(rel);
|
|
102
|
+
};
|
|
103
|
+
for (const p of parseLines(a.stdout))
|
|
104
|
+
add(p);
|
|
51
105
|
if (opts.includeWorktree && !opts.staged && !opts.since) {
|
|
52
106
|
// Include untracked + working-tree changes via `git status --porcelain`.
|
|
53
107
|
// `-uall` expands untracked directories to individual files (default
|
|
54
108
|
// `--porcelain` collapses them to a single `dir/` entry, which undercounts);
|
|
55
109
|
// `.gitignore` is still honored.
|
|
56
|
-
const s = runGit(
|
|
110
|
+
const s = runGit(root, ['status', '--porcelain', '-uall']);
|
|
57
111
|
if (s.ok) {
|
|
58
112
|
for (const line of s.stdout.split('\n')) {
|
|
59
113
|
// Strip the two-char XY status + leading space, then take the new path
|
|
@@ -61,7 +115,7 @@ export function getChangedFiles(cwd, opts = {}) {
|
|
|
61
115
|
const raw = line.slice(3).trim();
|
|
62
116
|
const path = raw.includes(' -> ') ? raw.slice(raw.indexOf(' -> ') + 4).trim() : raw;
|
|
63
117
|
if (path)
|
|
64
|
-
|
|
118
|
+
add(path);
|
|
65
119
|
}
|
|
66
120
|
}
|
|
67
121
|
}
|
|
@@ -81,14 +135,19 @@ export function refExists(cwd, ref) {
|
|
|
81
135
|
return r.ok && r.stdout.trim().length > 0;
|
|
82
136
|
}
|
|
83
137
|
/**
|
|
84
|
-
* The content of `relPath` at `ref` (e.g. `git show HEAD
|
|
85
|
-
* when the path did not exist at that ref (a newly-added file) or git
|
|
86
|
-
* `relPath` is
|
|
87
|
-
*
|
|
138
|
+
* The content of `relPath` at `ref` (e.g. `git show HEAD:./src/x.ts`), or
|
|
139
|
+
* `null` when the path did not exist at that ref (a newly-added file) or git
|
|
140
|
+
* failed. `relPath` is relative to the project root `cwd` belongs to — the
|
|
141
|
+
* spelling `getChangedFiles` returns: git runs from that root and the `./` form
|
|
142
|
+
* resolves the path against it, so a project nested in a larger repository
|
|
143
|
+
* reads its own file (round 15 lane B, B4; the bare `<ref>:<path>` form is
|
|
144
|
+
* top-level-relative), and so does a caller whose `cwd` is a subdirectory
|
|
145
|
+
* (lane B review). Used to diff a file's PAST state against the working tree
|
|
146
|
+
* without a checkout — e.g. to see what a now-edited file used to
|
|
88
147
|
* provide/register.
|
|
89
148
|
*/
|
|
90
149
|
export function gitShowFile(cwd, ref, relPath) {
|
|
91
|
-
const r = runGit(cwd, ['show', `${ref}
|
|
150
|
+
const r = runGit(changedScopeRoot(cwd), ['show', `${ref}:./${relPath.replace(/^\.\//, '')}`]);
|
|
92
151
|
return r.ok ? r.stdout : null;
|
|
93
152
|
}
|
|
94
153
|
export function getStatusSummary(cwd) {
|
|
@@ -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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE helper catalog — built-in helpers ∪ pack/local-contributed helpers.
|
|
3
|
+
*
|
|
4
|
+
* `helper list|get|plan` used to read only the built-in `HELPERS` (which ships
|
|
5
|
+
* empty), while the id resolver, universal search and the MCP pack-helper tools
|
|
6
|
+
* read the pack loader — two authorities answering "which helpers exist", so
|
|
7
|
+
* the self-config doctor saw a helper that `helper get` called unknown. Every
|
|
8
|
+
* helper surface now reads this one catalog; `warmReferenceRegistries` derives
|
|
9
|
+
* the resolver's `helper` ids from it, so list ≡ resolve by construction.
|
|
10
|
+
*/
|
|
11
|
+
import * as nodePath from 'node:path';
|
|
12
|
+
import { RejectionCause } from '@shrkcrft/core';
|
|
13
|
+
import { HELPERS } from "./helper-registry.js";
|
|
14
|
+
import { loadPackHelpers } from "./pack-helper-registry.js";
|
|
15
|
+
/** Build the catalog. One pack-helper load per call (it returns entries AND issues). */
|
|
16
|
+
export async function listAllHelpers(inspection) {
|
|
17
|
+
const entries = [];
|
|
18
|
+
const issues = [];
|
|
19
|
+
const seen = new Set();
|
|
20
|
+
for (const h of HELPERS) {
|
|
21
|
+
seen.add(h.id);
|
|
22
|
+
entries.push({
|
|
23
|
+
id: h.id,
|
|
24
|
+
title: h.id,
|
|
25
|
+
description: h.description,
|
|
26
|
+
source: 'builtin',
|
|
27
|
+
destructive: h.destructive,
|
|
28
|
+
requiresHumanReview: h.requiresHumanReview,
|
|
29
|
+
requiresProfile: h.requiresProfile === true,
|
|
30
|
+
outputKind: 'plan',
|
|
31
|
+
variables: h.variables.map((v) => ({ name: v.name, required: v.required, description: v.description })),
|
|
32
|
+
operations: [],
|
|
33
|
+
manualChecklist: [],
|
|
34
|
+
tags: [],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const loaded = await loadPackHelpers(inspection);
|
|
38
|
+
issues.push(...loaded.issues);
|
|
39
|
+
const rejected = [...loaded.rejected];
|
|
40
|
+
for (const e of loaded.entries) {
|
|
41
|
+
const h = e.helper;
|
|
42
|
+
if (seen.has(h.id)) {
|
|
43
|
+
issues.push({
|
|
44
|
+
severity: 'error',
|
|
45
|
+
code: 'duplicate-id',
|
|
46
|
+
message: `Helper "${h.id}" from ${e.sourceFile} duplicates a built-in helper — the built-in wins.`,
|
|
47
|
+
helperId: h.id,
|
|
48
|
+
source: e.sourceFile,
|
|
49
|
+
});
|
|
50
|
+
const packRoot = e.packageName
|
|
51
|
+
? inspection.packs.validPacks.find((p) => p.packageName === e.packageName)?.packageRoot
|
|
52
|
+
: undefined;
|
|
53
|
+
rejected.push({
|
|
54
|
+
file: nodePath.resolve(packRoot ?? inspection.projectRoot, e.sourceFile),
|
|
55
|
+
index: -1,
|
|
56
|
+
entryId: h.id,
|
|
57
|
+
reasons: [`id: "${h.id}" is a built-in helper — the built-in wins`],
|
|
58
|
+
cause: RejectionCause.DuplicateId,
|
|
59
|
+
});
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
seen.add(h.id);
|
|
63
|
+
entries.push({
|
|
64
|
+
id: h.id,
|
|
65
|
+
title: h.title,
|
|
66
|
+
description: h.description,
|
|
67
|
+
source: e.source,
|
|
68
|
+
...(e.packageName ? { packageName: e.packageName } : {}),
|
|
69
|
+
sourceFile: e.sourceFile,
|
|
70
|
+
destructive: h.safety.destructivePotential === true,
|
|
71
|
+
requiresHumanReview: h.safety.requiresHumanReview === true,
|
|
72
|
+
requiresProfile: h.safety.requiresProfile === true,
|
|
73
|
+
outputKind: h.safety.outputKind,
|
|
74
|
+
variables: (h.variables ?? []).map((v) => ({
|
|
75
|
+
name: v.name,
|
|
76
|
+
required: v.required,
|
|
77
|
+
description: v.description,
|
|
78
|
+
...(v.defaultValue !== undefined ? { defaultValue: v.defaultValue } : {}),
|
|
79
|
+
})),
|
|
80
|
+
operations: h.operations ?? [],
|
|
81
|
+
manualChecklist: h.manualChecklist ?? [],
|
|
82
|
+
tags: h.tags ?? [],
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return { entries, issues, files: loaded.files, rejected };
|
|
86
|
+
}
|
|
87
|
+
/** One helper by id, from the same catalog `helper list` prints. */
|
|
88
|
+
export async function findHelper(inspection, id) {
|
|
89
|
+
const catalog = await listAllHelpers(inspection);
|
|
90
|
+
return catalog.entries.find((h) => h.id === id) ?? null;
|
|
91
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper-registry.d.ts","sourceRoot":"","sources":["../src/helper-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAED,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAqB,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,2BAA2B,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAItE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAET;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"helper-registry.d.ts","sourceRoot":"","sources":["../src/helper-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpF;AAED,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAqB,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,2BAA2B,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAItE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAET;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAoB9D"}
|
package/dist/helper-registry.js
CHANGED
|
@@ -23,6 +23,22 @@ export function renderHelperPlanText(plan) {
|
|
|
23
23
|
const lines = [];
|
|
24
24
|
lines.push(`Helper plan: ${String(plan.helperId)}`);
|
|
25
25
|
lines.push(`Ops: ${plan.ops.length}`);
|
|
26
|
+
for (const op of plan.ops) {
|
|
27
|
+
const where = op.anchor ? ` (anchor ${JSON.stringify(op.anchor)})` : op.fromPattern ? ` (find ${JSON.stringify(op.fromPattern)})` : '';
|
|
28
|
+
lines.push(` • ${op.kind} ${op.targetPath}${where}`);
|
|
29
|
+
if (op.snippet !== undefined) {
|
|
30
|
+
for (const l of (op.snippet.length > 0 ? op.snippet : '(empty — removes the match)').split('\n')) {
|
|
31
|
+
lines.push(` ${l}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (plan.manualSteps.length > 0) {
|
|
36
|
+
lines.push(`Manual steps: ${plan.manualSteps.length}`);
|
|
37
|
+
for (const s of plan.manualSteps)
|
|
38
|
+
lines.push(` • ${s.description}`);
|
|
39
|
+
}
|
|
26
40
|
lines.push(`Conflicts: ${plan.conflicts.length}`);
|
|
27
|
-
|
|
41
|
+
for (const c of plan.conflicts)
|
|
42
|
+
lines.push(` ! ${c}`);
|
|
43
|
+
return lines.join('\n') + '\n';
|
|
28
44
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IPackHelperOperationInput } from '@shrkcrft/plugin-api';
|
|
2
|
+
/**
|
|
3
|
+
* One helper as every helper surface shows it — built-in (`HELPERS`) and
|
|
4
|
+
* pack/local-contributed (`helperFiles[]`) alike. `helper list|get|plan|doctor`
|
|
5
|
+
* and the MCP helper tools all read this one shape from `listAllHelpers`, so
|
|
6
|
+
* "which helpers exist" has one answer.
|
|
7
|
+
*/
|
|
8
|
+
export interface IHelperView {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly title: string;
|
|
11
|
+
readonly description: string;
|
|
12
|
+
/** Where the helper came from. */
|
|
13
|
+
readonly source: 'builtin' | 'local' | 'pack' | 'fixture';
|
|
14
|
+
readonly packageName?: string;
|
|
15
|
+
/** Pack-relative (pack) or project-relative (local) file the helper was loaded from. */
|
|
16
|
+
readonly sourceFile?: string;
|
|
17
|
+
/** From `safety.destructivePotential` (pack) / `destructive` (builtin). */
|
|
18
|
+
readonly destructive: boolean;
|
|
19
|
+
readonly requiresHumanReview: boolean;
|
|
20
|
+
readonly requiresProfile: boolean;
|
|
21
|
+
readonly outputKind: 'preview' | 'plan' | 'checklist';
|
|
22
|
+
readonly variables: readonly {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly required: boolean;
|
|
25
|
+
readonly description: string;
|
|
26
|
+
readonly defaultValue?: string;
|
|
27
|
+
}[];
|
|
28
|
+
/** Declarative operations (pack helpers); empty for builtins. */
|
|
29
|
+
readonly operations: readonly IPackHelperOperationInput[];
|
|
30
|
+
readonly manualChecklist: readonly string[];
|
|
31
|
+
readonly tags: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=helper-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper-view.d.ts","sourceRoot":"","sources":["../src/helper-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;KAChC,EAAE,CAAC;IACJ,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The flags an asset doctor's proposal reads (round 13) — `registrations
|
|
3
|
+
* doctor`, `scaffolds doctor`, `search tuning doctor`, `self-config
|
|
4
|
+
* doctor|report` and their MCP twins (which pass both `false`).
|
|
5
|
+
*/
|
|
6
|
+
export interface IAssetDoctorFlags {
|
|
7
|
+
/**
|
|
8
|
+
* `--strict`: a warning issue fails (1). It never promotes a went-live
|
|
9
|
+
* `expectEmpty` marker — only `check boundaries`, where `--strict` is already
|
|
10
|
+
* the warning promoter for selector units, does that.
|
|
11
|
+
*/
|
|
12
|
+
readonly strict: boolean;
|
|
13
|
+
/** `--fail-on-dead-units`: a dead selector unit, or a stale LOCAL `expectEmpty` marker, fails (1). */
|
|
14
|
+
readonly failOnDeadUnits: boolean;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=i-asset-doctor-flags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-asset-doctor-flags.d.ts","sourceRoot":"","sources":["../src/i-asset-doctor-flags.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,sGAAsG;IACtG,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CommandResolutionStatus } from './command-resolution-status.js';
|
|
2
|
+
/**
|
|
3
|
+
* The answer to "does this command string resolve?" — produced by the CLI's
|
|
4
|
+
* command-string resolver and read by every inspector consumer through
|
|
5
|
+
* `resolveCommandReference`.
|
|
6
|
+
*/
|
|
7
|
+
export interface ICommandResolution {
|
|
8
|
+
readonly status: CommandResolutionStatus;
|
|
9
|
+
/**
|
|
10
|
+
* Nearest real alternatives (full command strings, e.g. `shrk check wiring`
|
|
11
|
+
* or `bun run test`), best first. Present on the unknown-* statuses when
|
|
12
|
+
* something is close enough to suggest.
|
|
13
|
+
*/
|
|
14
|
+
readonly closest?: readonly string[];
|
|
15
|
+
/** The proven shrk command path (`check wiring`), when a verb chain matched. */
|
|
16
|
+
readonly matched?: string;
|
|
17
|
+
/** The `&&` / `;` / `|` segment that decided the status, for multi-command strings. */
|
|
18
|
+
readonly segment?: string;
|
|
19
|
+
/** One-line human explanation of the status. */
|
|
20
|
+
readonly reason?: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=i-command-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i-command-resolution.d.ts","sourceRoot":"","sources":["../src/i-command-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|