@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,12 @@
|
|
|
1
|
+
/** Why an entry landed in the `unverifiable` bucket. */
|
|
2
|
+
export declare enum KnowledgeUnverifiableReason {
|
|
3
|
+
/** It declares no `references[]` and no `anchors[]`. */
|
|
4
|
+
NoReferences = "no-references",
|
|
5
|
+
/**
|
|
6
|
+
* It declares some, but none can be checked: every one is a `url`, an
|
|
7
|
+
* unpinned symbol, a reference missing its required field, or an id whose
|
|
8
|
+
* registry is empty / was not loaded.
|
|
9
|
+
*/
|
|
10
|
+
OnlyUnverifiableReferences = "only-unverifiable-references"
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=knowledge-unverifiable-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-unverifiable-reason.d.ts","sourceRoot":"","sources":["../src/knowledge-unverifiable-reason.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,oBAAY,2BAA2B;IACrC,wDAAwD;IACxD,YAAY,kBAAkB;IAC9B;;;;OAIG;IACH,0BAA0B,iCAAiC;CAC5D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Why an entry landed in the `unverifiable` bucket. */
|
|
2
|
+
export var KnowledgeUnverifiableReason;
|
|
3
|
+
(function (KnowledgeUnverifiableReason) {
|
|
4
|
+
/** It declares no `references[]` and no `anchors[]`. */
|
|
5
|
+
KnowledgeUnverifiableReason["NoReferences"] = "no-references";
|
|
6
|
+
/**
|
|
7
|
+
* It declares some, but none can be checked: every one is a `url`, an
|
|
8
|
+
* unpinned symbol, a reference missing its required field, or an id whose
|
|
9
|
+
* registry is empty / was not loaded.
|
|
10
|
+
*/
|
|
11
|
+
KnowledgeUnverifiableReason["OnlyUnverifiableReferences"] = "only-unverifiable-references";
|
|
12
|
+
})(KnowledgeUnverifiableReason || (KnowledgeUnverifiableReason = {}));
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IRejectedEntry } from '@shrkcrft/core';
|
|
1
2
|
import type { LoaderAssetKind, LoaderAssetStatus } from './inspector-cache.js';
|
|
2
3
|
export type LoaderOrigin = 'local-config' | 'pack-manifest';
|
|
3
4
|
export interface ILoaderDiagnostic {
|
|
@@ -6,9 +7,20 @@ export interface ILoaderDiagnostic {
|
|
|
6
7
|
origin: LoaderOrigin;
|
|
7
8
|
packName?: string;
|
|
8
9
|
elapsedMs: number;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* `missing` — a file the local config DECLARES (e.g. `knowledgeFiles`) does
|
|
12
|
+
* not exist, so nothing was loaded from it. Recorded so a corpus check can
|
|
13
|
+
* refuse to pass over a source it was told about and never read.
|
|
14
|
+
*/
|
|
15
|
+
status: LoaderAssetStatus | 'cached-skip' | 'missing';
|
|
16
|
+
/** Number of items extracted (entries/templates/etc) — the loader's ACCEPTED count. */
|
|
11
17
|
count: number;
|
|
18
|
+
/**
|
|
19
|
+
* Entries the file declared that the loader refused (round 12, 12.1), so
|
|
20
|
+
* `count + rejected.length === declared`. Absent when none were refused.
|
|
21
|
+
* Lifted into THE rejection channel by `collectContributionRejections`.
|
|
22
|
+
*/
|
|
23
|
+
rejected?: readonly IRejectedEntry[];
|
|
12
24
|
warningCount: number;
|
|
13
25
|
errorMessage?: string;
|
|
14
26
|
/** When status === 'cached-skip', this is the cached pre-existing status. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-diagnostics.d.ts","sourceRoot":"","sources":["../src/loader-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"loader-diagnostics.d.ts","sourceRoot":"","sources":["../src/loader-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;IACtD,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAQvE;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CA2BA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE term matcher — the one answer to "does this trigger word appear in this
|
|
3
|
+
* task?" for routing hints, playbooks, the recommender's built-in recipes, the
|
|
4
|
+
* change-intent domain keywords and the ranker's distinct-term evidence.
|
|
5
|
+
*
|
|
6
|
+
* Every one of those used raw `task.toLowerCase().includes(needle)`, so a
|
|
7
|
+
* two-letter keyword fired inside unrelated words (`ci` in `pricing`, `pr` in
|
|
8
|
+
* `pricing`, `gate` in `investigate`, `pack` in `package`) and a hyphenated
|
|
9
|
+
* tag could never match the same words typed with spaces (`capability-pack`
|
|
10
|
+
* vs "capability pack").
|
|
11
|
+
*
|
|
12
|
+
* Terms come from THE identifier tokenizer (`split-identifier.ts`) over the
|
|
13
|
+
* LOWERCASED text — so camelCase splitting is inert and both sides split the
|
|
14
|
+
* same way on hyphens, underscores, whitespace and punctuation. Never write a
|
|
15
|
+
* second tokenizer.
|
|
16
|
+
*/
|
|
17
|
+
import { TermMatchMode } from '@shrkcrft/plugin-api';
|
|
18
|
+
import type { ITermQuery } from './term-query.js';
|
|
19
|
+
/** Function words dropped by {@link contentTerms}. Small and fixed on purpose. */
|
|
20
|
+
export declare const TERM_STOPWORDS: ReadonlySet<string>;
|
|
21
|
+
/** Lowercase, then split with THE identifier tokenizer. Order and duplicates are kept. */
|
|
22
|
+
export declare function normaliseTerms(text: string): string[];
|
|
23
|
+
/** {@link normaliseTerms} minus {@link TERM_STOPWORDS}, distinct, first-seen order. */
|
|
24
|
+
export declare function contentTerms(text: string): string[];
|
|
25
|
+
/** Prepare a task once for any number of {@link matchTerm} calls. */
|
|
26
|
+
export declare function prepareTermQuery(text: string): ITermQuery;
|
|
27
|
+
/** Two terms agree when equal, or one plain inflection apart (either direction). */
|
|
28
|
+
export declare function termsAgree(a: string, b: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Does `needle` occur in the query?
|
|
31
|
+
*
|
|
32
|
+
* - {@link TermMatchMode.Tokens} (default): the needle's terms must appear
|
|
33
|
+
* contiguously in the query's terms, each agreeing ({@link termsAgree}). A
|
|
34
|
+
* needle with no terms (empty, or punctuation only) never matches.
|
|
35
|
+
* - {@link TermMatchMode.Substring}: the legacy `lower.includes(needle)`,
|
|
36
|
+
* reproduced exactly (an empty needle matches everything — the routing-hint
|
|
37
|
+
* load lint errors on it).
|
|
38
|
+
*/
|
|
39
|
+
export declare function matchTerm(query: ITermQuery, needle: string, mode?: TermMatchMode | `${TermMatchMode}`): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The DISTINCT `queryTerms` that agree with some term of `corpus` — the
|
|
42
|
+
* evidence count "how many different words of the task does this item
|
|
43
|
+
* mention?". Repeats inside the corpus never count twice.
|
|
44
|
+
*/
|
|
45
|
+
export declare function matchedQueryTerms(queryTerms: readonly string[], corpus: readonly (string | undefined)[]): string[];
|
|
46
|
+
/** Jaccard similarity of two term lists, as sets (0 when both are empty). */
|
|
47
|
+
export declare function termJaccard(a: readonly string[], b: readonly string[]): number;
|
|
48
|
+
//# sourceMappingURL=match-terms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-terms.d.ts","sourceRoot":"","sources":["../src/match-terms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAmB7C,CAAC;AAgBH,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASnD;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEzD;AAaD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,aAAa,GAAG,GAAG,aAAa,EAAyB,GAC9D,OAAO,CAeT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACtC,MAAM,EAAE,CAcV;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAO9E"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE term matcher — the one answer to "does this trigger word appear in this
|
|
3
|
+
* task?" for routing hints, playbooks, the recommender's built-in recipes, the
|
|
4
|
+
* change-intent domain keywords and the ranker's distinct-term evidence.
|
|
5
|
+
*
|
|
6
|
+
* Every one of those used raw `task.toLowerCase().includes(needle)`, so a
|
|
7
|
+
* two-letter keyword fired inside unrelated words (`ci` in `pricing`, `pr` in
|
|
8
|
+
* `pricing`, `gate` in `investigate`, `pack` in `package`) and a hyphenated
|
|
9
|
+
* tag could never match the same words typed with spaces (`capability-pack`
|
|
10
|
+
* vs "capability pack").
|
|
11
|
+
*
|
|
12
|
+
* Terms come from THE identifier tokenizer (`split-identifier.ts`) over the
|
|
13
|
+
* LOWERCASED text — so camelCase splitting is inert and both sides split the
|
|
14
|
+
* same way on hyphens, underscores, whitespace and punctuation. Never write a
|
|
15
|
+
* second tokenizer.
|
|
16
|
+
*/
|
|
17
|
+
import { TermMatchMode } from '@shrkcrft/plugin-api';
|
|
18
|
+
import { splitIdentifierTokens } from "./split-identifier.js";
|
|
19
|
+
/** Function words dropped by {@link contentTerms}. Small and fixed on purpose. */
|
|
20
|
+
export const TERM_STOPWORDS = new Set([
|
|
21
|
+
'a',
|
|
22
|
+
'an',
|
|
23
|
+
'the',
|
|
24
|
+
'to',
|
|
25
|
+
'for',
|
|
26
|
+
'of',
|
|
27
|
+
'in',
|
|
28
|
+
'on',
|
|
29
|
+
'and',
|
|
30
|
+
'or',
|
|
31
|
+
'with',
|
|
32
|
+
'my',
|
|
33
|
+
'our',
|
|
34
|
+
'please',
|
|
35
|
+
'i',
|
|
36
|
+
'we',
|
|
37
|
+
'it',
|
|
38
|
+
'is',
|
|
39
|
+
]);
|
|
40
|
+
/**
|
|
41
|
+
* Plain inflections one term may differ by. Agent-noun suffixes (`er`, `ers`)
|
|
42
|
+
* are deliberately absent: `block` → `blocker`, `build` → `builder` change the
|
|
43
|
+
* meaning, and `block` firing on "the blocker in billing" was one of the
|
|
44
|
+
* reproduced false positives.
|
|
45
|
+
*/
|
|
46
|
+
const INFLECTION_SUFFIXES = ['s', 'es', 'ed', 'ing'];
|
|
47
|
+
/** A term shorter than this matches only itself — `ci`, `pr`, `go` never inflect. */
|
|
48
|
+
const MIN_INFLECTABLE_LENGTH = 3;
|
|
49
|
+
/** Final consonants that double before `-ing` / `-ed` (`plan` → `planning`). */
|
|
50
|
+
const DOUBLING_CONSONANT = /[bdgklmnprtz]$/;
|
|
51
|
+
/** Lowercase, then split with THE identifier tokenizer. Order and duplicates are kept. */
|
|
52
|
+
export function normaliseTerms(text) {
|
|
53
|
+
return splitIdentifierTokens(text.toLowerCase());
|
|
54
|
+
}
|
|
55
|
+
/** {@link normaliseTerms} minus {@link TERM_STOPWORDS}, distinct, first-seen order. */
|
|
56
|
+
export function contentTerms(text) {
|
|
57
|
+
const out = [];
|
|
58
|
+
const seen = new Set();
|
|
59
|
+
for (const t of normaliseTerms(text)) {
|
|
60
|
+
if (TERM_STOPWORDS.has(t) || seen.has(t))
|
|
61
|
+
continue;
|
|
62
|
+
seen.add(t);
|
|
63
|
+
out.push(t);
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
/** Prepare a task once for any number of {@link matchTerm} calls. */
|
|
68
|
+
export function prepareTermQuery(text) {
|
|
69
|
+
return { lower: text.toLowerCase(), terms: normaliseTerms(text) };
|
|
70
|
+
}
|
|
71
|
+
function inflects(base, word) {
|
|
72
|
+
if (base.length < MIN_INFLECTABLE_LENGTH || word.length <= base.length)
|
|
73
|
+
return false;
|
|
74
|
+
for (const suffix of INFLECTION_SUFFIXES)
|
|
75
|
+
if (word === base + suffix)
|
|
76
|
+
return true;
|
|
77
|
+
const last = base[base.length - 1];
|
|
78
|
+
const stem = base.slice(0, -1);
|
|
79
|
+
if (last === 'e' && (word === `${base}d` || word === `${stem}ing`))
|
|
80
|
+
return true;
|
|
81
|
+
if (last === 'y' && (word === `${stem}ies` || word === `${stem}ied`))
|
|
82
|
+
return true;
|
|
83
|
+
if (DOUBLING_CONSONANT.test(base) && (word === `${base}${last}ing` || word === `${base}${last}ed`))
|
|
84
|
+
return true;
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
/** Two terms agree when equal, or one plain inflection apart (either direction). */
|
|
88
|
+
export function termsAgree(a, b) {
|
|
89
|
+
return a === b || inflects(a, b) || inflects(b, a);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Does `needle` occur in the query?
|
|
93
|
+
*
|
|
94
|
+
* - {@link TermMatchMode.Tokens} (default): the needle's terms must appear
|
|
95
|
+
* contiguously in the query's terms, each agreeing ({@link termsAgree}). A
|
|
96
|
+
* needle with no terms (empty, or punctuation only) never matches.
|
|
97
|
+
* - {@link TermMatchMode.Substring}: the legacy `lower.includes(needle)`,
|
|
98
|
+
* reproduced exactly (an empty needle matches everything — the routing-hint
|
|
99
|
+
* load lint errors on it).
|
|
100
|
+
*/
|
|
101
|
+
export function matchTerm(query, needle, mode = TermMatchMode.Tokens) {
|
|
102
|
+
if (mode === TermMatchMode.Substring)
|
|
103
|
+
return query.lower.includes(needle.toLowerCase());
|
|
104
|
+
const seq = normaliseTerms(needle);
|
|
105
|
+
if (seq.length === 0 || seq.length > query.terms.length)
|
|
106
|
+
return false;
|
|
107
|
+
for (let i = 0; i + seq.length <= query.terms.length; i++) {
|
|
108
|
+
let all = true;
|
|
109
|
+
for (let j = 0; j < seq.length; j++) {
|
|
110
|
+
if (!termsAgree(seq[j], query.terms[i + j])) {
|
|
111
|
+
all = false;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (all)
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The DISTINCT `queryTerms` that agree with some term of `corpus` — the
|
|
122
|
+
* evidence count "how many different words of the task does this item
|
|
123
|
+
* mention?". Repeats inside the corpus never count twice.
|
|
124
|
+
*/
|
|
125
|
+
export function matchedQueryTerms(queryTerms, corpus) {
|
|
126
|
+
const corpusTerms = new Set();
|
|
127
|
+
for (const c of corpus)
|
|
128
|
+
if (c)
|
|
129
|
+
for (const t of normaliseTerms(c))
|
|
130
|
+
corpusTerms.add(t);
|
|
131
|
+
const out = [];
|
|
132
|
+
for (const q of queryTerms) {
|
|
133
|
+
if (out.includes(q))
|
|
134
|
+
continue;
|
|
135
|
+
for (const t of corpusTerms) {
|
|
136
|
+
if (termsAgree(q, t)) {
|
|
137
|
+
out.push(q);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
/** Jaccard similarity of two term lists, as sets (0 when both are empty). */
|
|
145
|
+
export function termJaccard(a, b) {
|
|
146
|
+
const sa = new Set(a);
|
|
147
|
+
const sb = new Set(b);
|
|
148
|
+
if (sa.size === 0 && sb.size === 0)
|
|
149
|
+
return 0;
|
|
150
|
+
let inter = 0;
|
|
151
|
+
for (const t of sa)
|
|
152
|
+
if (sb.has(t))
|
|
153
|
+
inter += 1;
|
|
154
|
+
return inter / (sa.size + sb.size - inter);
|
|
155
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type IMigrationProfile } from './migration-readiness.js';
|
|
2
2
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
3
|
+
import { type IRejectedEntry } from '@shrkcrft/core';
|
|
3
4
|
export declare const MIGRATION_PROFILE_REGISTRY_SCHEMA = "sharkcraft.migration-profile-registry/v1";
|
|
4
5
|
export declare enum MigrationProfileSource {
|
|
5
6
|
Local = "local",
|
|
@@ -18,9 +19,18 @@ export interface IMigrationProfileRegistryIssue {
|
|
|
18
19
|
readonly profileId?: string;
|
|
19
20
|
readonly source?: string;
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* THE migration-profile acceptance predicate (round 12, 12.1): one
|
|
24
|
+
* `<field>: <message>` per failing field — `[]` means accepted. A refused
|
|
25
|
+
* profile used to read `Invalid migration profile at <file>; skipped.`
|
|
26
|
+
* with no id and no field.
|
|
27
|
+
*/
|
|
28
|
+
export declare function migrationProfileRejectionReasons(raw: unknown): readonly string[];
|
|
21
29
|
export declare function loadMigrationProfiles(inspection: ISharkcraftInspection): Promise<{
|
|
22
30
|
entries: readonly IMigrationProfileEntry[];
|
|
23
31
|
issues: readonly IMigrationProfileRegistryIssue[];
|
|
32
|
+
/** Every declared profile the loader refused — invalid or a duplicate id (round 12, 12.1). */
|
|
33
|
+
rejected: readonly IRejectedEntry[];
|
|
24
34
|
}>;
|
|
25
35
|
export declare function listMigrationProfilesFromPacks(inspection: ISharkcraftInspection): Promise<readonly IMigrationProfile[]>;
|
|
26
36
|
//# sourceMappingURL=migration-profile-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-profile-registry.d.ts","sourceRoot":"","sources":["../src/migration-profile-registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"migration-profile-registry.d.ts","sourceRoot":"","sources":["../src/migration-profile-registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAE5F,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAQhF;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAClD,8FAA8F;IAC9F,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC,CAAC,CA+GD;AAED,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAGvC"}
|
|
@@ -4,22 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
import * as nodePath from 'node:path';
|
|
7
|
-
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
7
|
+
import { importModuleViaLoader, readContributionExport, RejectionCause, } from '@shrkcrft/core';
|
|
8
8
|
export const MIGRATION_PROFILE_REGISTRY_SCHEMA = 'sharkcraft.migration-profile-registry/v1';
|
|
9
9
|
export var MigrationProfileSource;
|
|
10
10
|
(function (MigrationProfileSource) {
|
|
11
11
|
MigrationProfileSource["Local"] = "local";
|
|
12
12
|
MigrationProfileSource["Pack"] = "pack";
|
|
13
13
|
})(MigrationProfileSource || (MigrationProfileSource = {}));
|
|
14
|
-
async function
|
|
15
|
-
|
|
16
|
-
if (Array.isArray(mod.default))
|
|
17
|
-
return mod.default;
|
|
18
|
-
if (mod.default && typeof mod.default === 'object')
|
|
19
|
-
return [mod.default];
|
|
20
|
-
if (Array.isArray(mod.migrationProfiles))
|
|
21
|
-
return mod.migrationProfiles;
|
|
22
|
-
return [];
|
|
14
|
+
async function importProfiles(file) {
|
|
15
|
+
return readContributionExport(await importModuleViaLoader(file), { namedKeys: ['migrationProfiles'] });
|
|
23
16
|
}
|
|
24
17
|
function localFiles(inspection) {
|
|
25
18
|
const out = [];
|
|
@@ -31,56 +24,88 @@ function localFiles(inspection) {
|
|
|
31
24
|
if (existsSync(full))
|
|
32
25
|
out.push(full);
|
|
33
26
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
27
|
+
// More profile files come from pack manifests (`migrationProfileFiles`,
|
|
28
|
+
// loaded below) — there is no local-config key for them; the strict config
|
|
29
|
+
// schema rejects one, so a local read here could never be reached.
|
|
38
30
|
return out;
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
/**
|
|
33
|
+
* THE migration-profile acceptance predicate (round 12, 12.1): one
|
|
34
|
+
* `<field>: <message>` per failing field — `[]` means accepted. A refused
|
|
35
|
+
* profile used to read `Invalid migration profile at <file>; skipped.`
|
|
36
|
+
* with no id and no field.
|
|
37
|
+
*/
|
|
38
|
+
export function migrationProfileRejectionReasons(raw) {
|
|
39
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
40
|
+
return ['(entry): must be an object'];
|
|
43
41
|
const o = raw;
|
|
44
|
-
|
|
42
|
+
const out = [];
|
|
43
|
+
if (typeof o.id !== 'string')
|
|
44
|
+
out.push('id: must be a string');
|
|
45
|
+
if (typeof o.title !== 'string')
|
|
46
|
+
out.push('title: must be a string');
|
|
47
|
+
if (!Array.isArray(o.checks))
|
|
48
|
+
out.push('checks: must be an array');
|
|
49
|
+
return out;
|
|
45
50
|
}
|
|
46
51
|
export async function loadMigrationProfiles(inspection) {
|
|
47
52
|
const entries = [];
|
|
48
53
|
const issues = [];
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
54
|
+
const rejected = [];
|
|
55
|
+
const seen = new Map();
|
|
56
|
+
const ingest = (raw, source, packageName, sourceFile, at) => {
|
|
57
|
+
const rawId = raw && typeof raw === 'object' ? raw.id : undefined;
|
|
58
|
+
const id = typeof rawId === 'string' ? rawId : undefined;
|
|
59
|
+
const reasons = migrationProfileRejectionReasons(raw);
|
|
60
|
+
if (reasons.length > 0) {
|
|
52
61
|
issues.push({
|
|
53
62
|
severity: 'warning',
|
|
54
63
|
code: 'invalid-profile',
|
|
55
|
-
message: `Invalid migration profile at ${sourceFile}; skipped.`,
|
|
64
|
+
message: `Invalid migration profile${id ? ` "${id}"` : ''} at ${sourceFile} (${at.exportName ?? 'default'}[${at.index}]); skipped — ${reasons.join('; ')}.`,
|
|
65
|
+
...(id ? { profileId: id } : {}),
|
|
56
66
|
source: sourceFile,
|
|
57
67
|
});
|
|
68
|
+
rejected.push({ ...at, ...(id ? { entryId: id } : {}), reasons, cause: RejectionCause.Invalid });
|
|
58
69
|
return;
|
|
59
70
|
}
|
|
60
|
-
|
|
71
|
+
const profile = raw;
|
|
72
|
+
const prev = seen.get(profile.id);
|
|
73
|
+
if (prev !== undefined) {
|
|
61
74
|
issues.push({
|
|
62
75
|
severity: 'error',
|
|
63
76
|
code: 'duplicate-id',
|
|
64
|
-
message: `Migration profile id "${
|
|
65
|
-
profileId:
|
|
77
|
+
message: `Migration profile id "${profile.id}" already loaded; skipping ${sourceFile}.`,
|
|
78
|
+
profileId: profile.id,
|
|
66
79
|
source: sourceFile,
|
|
67
80
|
});
|
|
81
|
+
rejected.push({
|
|
82
|
+
...at,
|
|
83
|
+
entryId: profile.id,
|
|
84
|
+
reasons: [`id: "${profile.id}" is already declared in ${prev}`],
|
|
85
|
+
cause: RejectionCause.DuplicateId,
|
|
86
|
+
});
|
|
68
87
|
return;
|
|
69
88
|
}
|
|
70
|
-
seen.
|
|
89
|
+
seen.set(profile.id, sourceFile);
|
|
71
90
|
entries.push({
|
|
72
|
-
profile
|
|
91
|
+
profile,
|
|
73
92
|
source,
|
|
74
93
|
...(packageName ? { packageName } : {}),
|
|
75
94
|
sourceFile,
|
|
76
95
|
});
|
|
77
96
|
};
|
|
97
|
+
const ingestAll = (exp, file, source, packageName, sourceFile) => {
|
|
98
|
+
exp.items.forEach((raw, i) => ingest(raw, source, packageName, sourceFile, {
|
|
99
|
+
file,
|
|
100
|
+
index: exp.single ? -1 : i,
|
|
101
|
+
...(exp.exportName ? { exportName: exp.exportName } : {}),
|
|
102
|
+
}));
|
|
103
|
+
};
|
|
78
104
|
for (const file of localFiles(inspection)) {
|
|
79
105
|
try {
|
|
80
|
-
const
|
|
106
|
+
const exp = await importProfiles(file);
|
|
81
107
|
const rel = nodePath.relative(inspection.projectRoot, file) || file;
|
|
82
|
-
|
|
83
|
-
ingest(raw, MigrationProfileSource.Local, undefined, rel);
|
|
108
|
+
ingestAll(exp, file, MigrationProfileSource.Local, undefined, rel);
|
|
84
109
|
}
|
|
85
110
|
catch (e) {
|
|
86
111
|
issues.push({
|
|
@@ -105,9 +130,7 @@ export async function loadMigrationProfiles(inspection) {
|
|
|
105
130
|
continue;
|
|
106
131
|
}
|
|
107
132
|
try {
|
|
108
|
-
|
|
109
|
-
for (const raw of list)
|
|
110
|
-
ingest(raw, MigrationProfileSource.Pack, pack.packageName, rel);
|
|
133
|
+
ingestAll(await importProfiles(file), file, MigrationProfileSource.Pack, pack.packageName, rel);
|
|
111
134
|
}
|
|
112
135
|
catch (e) {
|
|
113
136
|
issues.push({
|
|
@@ -119,7 +142,7 @@ export async function loadMigrationProfiles(inspection) {
|
|
|
119
142
|
}
|
|
120
143
|
}
|
|
121
144
|
}
|
|
122
|
-
return { entries, issues };
|
|
145
|
+
return { entries, issues, rejected };
|
|
123
146
|
}
|
|
124
147
|
export async function listMigrationProfilesFromPacks(inspection) {
|
|
125
148
|
const { entries } = await loadMigrationProfiles(inspection);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-readiness.d.ts","sourceRoot":"","sources":["../src/migration-readiness.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migration-readiness.d.ts","sourceRoot":"","sources":["../src/migration-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -159,9 +159,7 @@ export function buildMigrationReadiness(options) {
|
|
|
159
159
|
`Profile: ${profile.title} (${profile.id})`,
|
|
160
160
|
`Verdict: ${verdict}`,
|
|
161
161
|
`Passed: ${passed.length}, Warnings: ${warnings.length}, Blockers: ${blockers.length}`,
|
|
162
|
-
|
|
163
|
-
profile.id +
|
|
164
|
-
'`.',
|
|
162
|
+
`Next: review blockers (if any), then re-run the readiness check for ${profile.id}.`,
|
|
165
163
|
];
|
|
166
164
|
return {
|
|
167
165
|
schema: 'sharkcraft.migration-readiness/v1',
|
package/dist/nearest-id.d.ts
CHANGED
|
@@ -1,30 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Nearest-id "did you mean" over an arbitrary id set
|
|
2
|
+
* Nearest-id "did you mean" over an arbitrary id set — `levenshtein` (THE edit
|
|
3
|
+
* distance) and `nearestIds` (the length-scaled, affinity-aware cutoff).
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* A suggestion is only offered when it is actually close. Printing the
|
|
12
|
-
* alphabetically-first id next to every typo trains people to ignore the line.
|
|
13
|
-
*/
|
|
14
|
-
/** Levenshtein edit distance. Iterative, one row of state. */
|
|
15
|
-
export declare function levenshtein(a: string, b: string): number;
|
|
16
|
-
/** One candidate the query might have meant. */
|
|
17
|
-
export interface INearestId {
|
|
18
|
-
readonly id: string;
|
|
19
|
-
readonly distance: number;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* The closest ids to `query`, nearest first.
|
|
23
|
-
*
|
|
24
|
-
* The cutoff scales with the query's length — one edit is a lot in `foo` and
|
|
25
|
-
* very little in `nge.angular-renderer` — and is capped so a long id cannot
|
|
26
|
-
* drag in something unrelated. Ties break lexically so the output is stable
|
|
27
|
-
* across runs, which matters when it lands in a committed diff.
|
|
5
|
+
* Round 13: both moved to `@shrkcrft/core` so the lowest layer — the
|
|
6
|
+
* `expectEmpty` marker parser (`normalizeUnitList`) — can offer a did-you-mean
|
|
7
|
+
* for a misspelled marker key without importing upward. This module re-exports
|
|
8
|
+
* them unchanged, so every existing `@shrkcrft/inspector` import keeps working
|
|
9
|
+
* and there is still ONE scorer: the CLI's `editDistance` IS this `levenshtein`
|
|
10
|
+
* (r75-did-you-mean-one-scorer), and a second implementation would drift.
|
|
28
11
|
*/
|
|
29
|
-
export
|
|
12
|
+
export { levenshtein, nearestIds } from '@shrkcrft/core';
|
|
13
|
+
export type { INearestId } from '@shrkcrft/core';
|
|
30
14
|
//# sourceMappingURL=nearest-id.d.ts.map
|
package/dist/nearest-id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearest-id.d.ts","sourceRoot":"","sources":["../src/nearest-id.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nearest-id.d.ts","sourceRoot":"","sources":["../src/nearest-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/nearest-id.js
CHANGED
|
@@ -1,62 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Nearest-id "did you mean" over an arbitrary id set
|
|
2
|
+
* Nearest-id "did you mean" over an arbitrary id set — `levenshtein` (THE edit
|
|
3
|
+
* distance) and `nearestIds` (the length-scaled, affinity-aware cutoff).
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* A suggestion is only offered when it is actually close. Printing the
|
|
12
|
-
* alphabetically-first id next to every typo trains people to ignore the line.
|
|
13
|
-
*/
|
|
14
|
-
/** Levenshtein edit distance. Iterative, one row of state. */
|
|
15
|
-
export function levenshtein(a, b) {
|
|
16
|
-
const m = a.length;
|
|
17
|
-
const n = b.length;
|
|
18
|
-
if (m === 0)
|
|
19
|
-
return n;
|
|
20
|
-
if (n === 0)
|
|
21
|
-
return m;
|
|
22
|
-
const dp = Array.from({ length: n + 1 }, (_, j) => j);
|
|
23
|
-
for (let i = 1; i <= m; i += 1) {
|
|
24
|
-
let prev = dp[0];
|
|
25
|
-
dp[0] = i;
|
|
26
|
-
for (let j = 1; j <= n; j += 1) {
|
|
27
|
-
const tmp = dp[j];
|
|
28
|
-
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
29
|
-
dp[j] = Math.min(dp[j] + 1, dp[j - 1] + 1, prev + cost);
|
|
30
|
-
prev = tmp;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return dp[n];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* The closest ids to `query`, nearest first.
|
|
37
|
-
*
|
|
38
|
-
* The cutoff scales with the query's length — one edit is a lot in `foo` and
|
|
39
|
-
* very little in `nge.angular-renderer` — and is capped so a long id cannot
|
|
40
|
-
* drag in something unrelated. Ties break lexically so the output is stable
|
|
41
|
-
* across runs, which matters when it lands in a committed diff.
|
|
5
|
+
* Round 13: both moved to `@shrkcrft/core` so the lowest layer — the
|
|
6
|
+
* `expectEmpty` marker parser (`normalizeUnitList`) — can offer a did-you-mean
|
|
7
|
+
* for a misspelled marker key without importing upward. This module re-exports
|
|
8
|
+
* them unchanged, so every existing `@shrkcrft/inspector` import keeps working
|
|
9
|
+
* and there is still ONE scorer: the CLI's `editDistance` IS this `levenshtein`
|
|
10
|
+
* (r75-did-you-mean-one-scorer), and a second implementation would drift.
|
|
42
11
|
*/
|
|
43
|
-
export
|
|
44
|
-
const q = query.toLowerCase();
|
|
45
|
-
const cutoff = Math.min(6, Math.max(2, Math.floor(q.length * 0.4)));
|
|
46
|
-
const scored = [];
|
|
47
|
-
for (const candidate of candidates) {
|
|
48
|
-
const c = candidate.toLowerCase();
|
|
49
|
-
if (c === q)
|
|
50
|
-
continue;
|
|
51
|
-
// A shared prefix or suffix is the common real-world shape (`nge.foo-view`
|
|
52
|
-
// vs `nge.foo-viewer`), and raw edit distance under-rates it.
|
|
53
|
-
const affinity = c.startsWith(q) || q.startsWith(c) || c.includes(q) || q.includes(c) ? 0 : 1;
|
|
54
|
-
const distance = affinity === 0 ? 0 : levenshtein(q, c);
|
|
55
|
-
if (distance > cutoff)
|
|
56
|
-
continue;
|
|
57
|
-
scored.push({ id: candidate, distance });
|
|
58
|
-
}
|
|
59
|
-
return scored
|
|
60
|
-
.sort((x, y) => x.distance - y.distance || x.id.localeCompare(y.id))
|
|
61
|
-
.slice(0, limit);
|
|
62
|
-
}
|
|
12
|
+
export { levenshtein, nearestIds } from '@shrkcrft/core';
|