@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,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE tokenizer for search-tuning TRIGGERS — the `tokens` a query/task yields
|
|
3
|
+
* for `tuningBoostFor`, which a `taskHints[].whenTokens` entry must appear in.
|
|
4
|
+
*
|
|
5
|
+
* Five call sites used to tokenize for the same matcher five ways:
|
|
6
|
+
*
|
|
7
|
+
* - `shrk search` and `search tuning explain`: split on whitespace and
|
|
8
|
+
* `, . ; : /` — keeps `changed-only`, `c#`, `foo_bar` whole;
|
|
9
|
+
* - the task ranker and the context re-ranker: split on `[^a-z0-9]` —
|
|
10
|
+
* `changed-only` became `changed`, `only`;
|
|
11
|
+
* - ranker explain: `[^a-z0-9]` AND dropped tokens shorter than 3 — `go`,
|
|
12
|
+
* `pr`, `ci` vanished.
|
|
13
|
+
*
|
|
14
|
+
* So a hyphenated trigger fired in `shrk search` and never in `shrk task` /
|
|
15
|
+
* `shrk context`, and `shrk why` reported a tuning trace the rankers did not
|
|
16
|
+
* apply. This returns the UNION: each whitespace/punctuation token whole, plus
|
|
17
|
+
* its alphanumeric pieces (from THE identifier splitter), dropping tokens
|
|
18
|
+
* shorter than 2. It is a superset of every former variant, so no trigger that
|
|
19
|
+
* fired anywhere stops firing; one that fired in only one ranker now fires in
|
|
20
|
+
* all of them. Order is first-seen; duplicates are dropped.
|
|
21
|
+
*/
|
|
22
|
+
export declare function tuningQueryTokens(text: string): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Can a query ever produce `whenToken`? A trigger with whitespace, a separator
|
|
25
|
+
* (`, . ; : /`) or fewer than 2 characters never appears in
|
|
26
|
+
* {@link tuningQueryTokens}' output, so its task hint can never apply.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isReachableTuningTrigger(whenToken: string): boolean;
|
|
29
|
+
//# sourceMappingURL=tuning-query-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuning-query-tokens.d.ts","sourceRoot":"","sources":["../src/tuning-query-tokens.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBxD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGnE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { splitIdentifierTokens } from "./split-identifier.js";
|
|
2
|
+
/**
|
|
3
|
+
* THE tokenizer for search-tuning TRIGGERS — the `tokens` a query/task yields
|
|
4
|
+
* for `tuningBoostFor`, which a `taskHints[].whenTokens` entry must appear in.
|
|
5
|
+
*
|
|
6
|
+
* Five call sites used to tokenize for the same matcher five ways:
|
|
7
|
+
*
|
|
8
|
+
* - `shrk search` and `search tuning explain`: split on whitespace and
|
|
9
|
+
* `, . ; : /` — keeps `changed-only`, `c#`, `foo_bar` whole;
|
|
10
|
+
* - the task ranker and the context re-ranker: split on `[^a-z0-9]` —
|
|
11
|
+
* `changed-only` became `changed`, `only`;
|
|
12
|
+
* - ranker explain: `[^a-z0-9]` AND dropped tokens shorter than 3 — `go`,
|
|
13
|
+
* `pr`, `ci` vanished.
|
|
14
|
+
*
|
|
15
|
+
* So a hyphenated trigger fired in `shrk search` and never in `shrk task` /
|
|
16
|
+
* `shrk context`, and `shrk why` reported a tuning trace the rankers did not
|
|
17
|
+
* apply. This returns the UNION: each whitespace/punctuation token whole, plus
|
|
18
|
+
* its alphanumeric pieces (from THE identifier splitter), dropping tokens
|
|
19
|
+
* shorter than 2. It is a superset of every former variant, so no trigger that
|
|
20
|
+
* fired anywhere stops firing; one that fired in only one ranker now fires in
|
|
21
|
+
* all of them. Order is first-seen; duplicates are dropped.
|
|
22
|
+
*/
|
|
23
|
+
export function tuningQueryTokens(text) {
|
|
24
|
+
const out = [];
|
|
25
|
+
const seen = new Set();
|
|
26
|
+
const add = (token) => {
|
|
27
|
+
if (token.length < 2 || seen.has(token))
|
|
28
|
+
return;
|
|
29
|
+
seen.add(token);
|
|
30
|
+
out.push(token);
|
|
31
|
+
};
|
|
32
|
+
for (const raw of text.toLowerCase().split(/[\s,.;:/]+/)) {
|
|
33
|
+
const token = raw.trim();
|
|
34
|
+
add(token);
|
|
35
|
+
// The input is already lowercase, so the splitter's camelCase rules are
|
|
36
|
+
// inert here: this is exactly the old `[^a-z0-9]+` split, from the one
|
|
37
|
+
// identifier tokenizer.
|
|
38
|
+
for (const piece of splitIdentifierTokens(token))
|
|
39
|
+
add(piece);
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Can a query ever produce `whenToken`? A trigger with whitespace, a separator
|
|
45
|
+
* (`, . ; : /`) or fewer than 2 characters never appears in
|
|
46
|
+
* {@link tuningQueryTokens}' output, so its task hint can never apply.
|
|
47
|
+
*/
|
|
48
|
+
export function isReachableTuningTrigger(whenToken) {
|
|
49
|
+
const lower = whenToken.toLowerCase();
|
|
50
|
+
return tuningQueryTokens(lower).includes(lower);
|
|
51
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface ITypecheckFilesResult {
|
|
2
|
+
/** False when there was nothing to check, or TypeScript could not run. */
|
|
3
|
+
readonly ran: boolean;
|
|
4
|
+
readonly errors: readonly {
|
|
5
|
+
readonly file: string;
|
|
6
|
+
readonly line: number;
|
|
7
|
+
readonly column: number;
|
|
8
|
+
readonly code: number;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
}[];
|
|
11
|
+
/** Absolute paths of the root files the program was built from. */
|
|
12
|
+
readonly checkedFiles: readonly string[];
|
|
13
|
+
/** The tsconfig whose options were applied, or null for the built-in defaults. */
|
|
14
|
+
readonly tsconfigPath: string | null;
|
|
15
|
+
/** Human note (why it did not run, or which tsconfig it used). */
|
|
16
|
+
readonly note?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Type-check `rootNames` (absolute or `root`-relative) against `root`'s
|
|
20
|
+
* tsconfig (auto-detected unless `tsconfigPath` is given; `null` forces the
|
|
21
|
+
* strict defaults). `overlay` supplies in-memory contents for paths that are
|
|
22
|
+
* not on disk yet. By default only diagnostics IN the root files are reported;
|
|
23
|
+
* `reportOnlyUnder` widens that to every program file under a directory (so a
|
|
24
|
+
* group module an aggregator imports is checked too), excluding node_modules.
|
|
25
|
+
*/
|
|
26
|
+
export declare function typecheckFiles(root: string, options: {
|
|
27
|
+
readonly rootNames: readonly string[];
|
|
28
|
+
readonly overlay?: ReadonlyMap<string, string>;
|
|
29
|
+
readonly tsconfigPath?: string | null;
|
|
30
|
+
readonly reportOnlyUnder?: string;
|
|
31
|
+
/** With no tsconfig, allow `.ts` import specifiers (Bun-loaded pack assets use them). */
|
|
32
|
+
readonly allowTsExtensionsByDefault?: boolean;
|
|
33
|
+
/** Report options/global diagnostics (e.g. a broken tsconfig) as errors too. */
|
|
34
|
+
readonly includeGlobalDiagnostics?: boolean;
|
|
35
|
+
}): ITypecheckFilesResult;
|
|
36
|
+
//# sourceMappingURL=typecheck-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typecheck-files.d.ts","sourceRoot":"","sources":["../src/typecheck-files.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,mEAAmE;IACnE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,kFAAkF;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAmCD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,yFAAyF;IACzF,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,gFAAgF;IAChF,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CAC7C,GACA,qBAAqB,CAyGvB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE in-process TypeScript check — one `ts.Program` builder shared by
|
|
3
|
+
* `gen --typecheck` (emitted, not-yet-written files over an overlay) and
|
|
4
|
+
* `packs test|doctor|release-check --typecheck` (a pack's own assets).
|
|
5
|
+
*
|
|
6
|
+
* It used to live in the CLI layer only, so nothing below the CLI could
|
|
7
|
+
* type-check a pack; pack loading is transpile-only (Bun), and an asset with an
|
|
8
|
+
* implicit-any parameter or a misspelled field loaded with every signal green.
|
|
9
|
+
*
|
|
10
|
+
* Deterministic, read-only, never emits. Only errors (not warnings) are
|
|
11
|
+
* reported, and only for the files the caller scoped the check to.
|
|
12
|
+
*/
|
|
13
|
+
import * as ts from 'typescript';
|
|
14
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
15
|
+
import { dirname, resolve, sep } from 'node:path';
|
|
16
|
+
const TSCONFIG_NAMES = ['tsconfig.json', 'tsconfig.base.json'];
|
|
17
|
+
const TS_SOURCE = /\.(?:[cm]?ts|tsx)$/;
|
|
18
|
+
function findTsconfig(root) {
|
|
19
|
+
for (const name of TSCONFIG_NAMES) {
|
|
20
|
+
const p = resolve(root, name);
|
|
21
|
+
if (existsSync(p))
|
|
22
|
+
return p;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
function pushDiagnostic(out, d, fallbackFile) {
|
|
27
|
+
if (d.category !== ts.DiagnosticCategory.Error)
|
|
28
|
+
return;
|
|
29
|
+
let line = 0;
|
|
30
|
+
let column = 0;
|
|
31
|
+
if (d.file && typeof d.start === 'number') {
|
|
32
|
+
const lc = d.file.getLineAndCharacterOfPosition(d.start);
|
|
33
|
+
line = lc.line + 1;
|
|
34
|
+
column = lc.character + 1;
|
|
35
|
+
}
|
|
36
|
+
out.push({
|
|
37
|
+
file: resolve(d.file?.fileName ?? fallbackFile),
|
|
38
|
+
line,
|
|
39
|
+
column,
|
|
40
|
+
code: d.code,
|
|
41
|
+
message: ts.flattenDiagnosticMessageText(d.messageText, '\n'),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Type-check `rootNames` (absolute or `root`-relative) against `root`'s
|
|
46
|
+
* tsconfig (auto-detected unless `tsconfigPath` is given; `null` forces the
|
|
47
|
+
* strict defaults). `overlay` supplies in-memory contents for paths that are
|
|
48
|
+
* not on disk yet. By default only diagnostics IN the root files are reported;
|
|
49
|
+
* `reportOnlyUnder` widens that to every program file under a directory (so a
|
|
50
|
+
* group module an aggregator imports is checked too), excluding node_modules.
|
|
51
|
+
*/
|
|
52
|
+
export function typecheckFiles(root, options) {
|
|
53
|
+
const rootNames = options.rootNames.map((p) => resolve(root, p)).filter((p) => TS_SOURCE.test(p));
|
|
54
|
+
if (rootNames.length === 0) {
|
|
55
|
+
return { ran: false, errors: [], checkedFiles: [], tsconfigPath: null, note: 'no TS/TSX files to check' };
|
|
56
|
+
}
|
|
57
|
+
let compilerOptions = {
|
|
58
|
+
target: ts.ScriptTarget.ES2022,
|
|
59
|
+
module: ts.ModuleKind.ESNext,
|
|
60
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
61
|
+
strict: true,
|
|
62
|
+
esModuleInterop: true,
|
|
63
|
+
...(options.allowTsExtensionsByDefault ? { allowImportingTsExtensions: true } : {}),
|
|
64
|
+
};
|
|
65
|
+
const tsconfigPath = options.tsconfigPath === null
|
|
66
|
+
? null
|
|
67
|
+
: options.tsconfigPath !== undefined
|
|
68
|
+
? resolve(root, options.tsconfigPath)
|
|
69
|
+
: findTsconfig(root);
|
|
70
|
+
if (tsconfigPath) {
|
|
71
|
+
const read = ts.readConfigFile(tsconfigPath, (p) => {
|
|
72
|
+
try {
|
|
73
|
+
return readFileSync(p, 'utf8');
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (!read.error) {
|
|
80
|
+
const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, dirname(tsconfigPath));
|
|
81
|
+
compilerOptions = parsed.options;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Force a non-emitting, lib-skipping check regardless of the project's config.
|
|
85
|
+
compilerOptions.noEmit = true;
|
|
86
|
+
compilerOptions.skipLibCheck = true;
|
|
87
|
+
compilerOptions.incremental = false;
|
|
88
|
+
delete compilerOptions.composite;
|
|
89
|
+
delete compilerOptions.outDir;
|
|
90
|
+
delete compilerOptions.declaration;
|
|
91
|
+
const overlay = new Map();
|
|
92
|
+
for (const [k, v] of options.overlay ?? [])
|
|
93
|
+
overlay.set(resolve(k), v);
|
|
94
|
+
const errors = [];
|
|
95
|
+
try {
|
|
96
|
+
const host = ts.createCompilerHost(compilerOptions, true);
|
|
97
|
+
const origGetSourceFile = host.getSourceFile.bind(host);
|
|
98
|
+
const origReadFile = host.readFile.bind(host);
|
|
99
|
+
const origFileExists = host.fileExists.bind(host);
|
|
100
|
+
host.readFile = (fileName) => {
|
|
101
|
+
const k = resolve(fileName);
|
|
102
|
+
return overlay.has(k) ? overlay.get(k) : origReadFile(fileName);
|
|
103
|
+
};
|
|
104
|
+
host.fileExists = (fileName) => overlay.has(resolve(fileName)) || origFileExists(fileName);
|
|
105
|
+
host.getSourceFile = (fileName, languageVersionOrOptions, onError, shouldCreate) => {
|
|
106
|
+
const body = overlay.get(resolve(fileName));
|
|
107
|
+
if (body !== undefined)
|
|
108
|
+
return ts.createSourceFile(fileName, body, languageVersionOrOptions, true);
|
|
109
|
+
return origGetSourceFile(fileName, languageVersionOrOptions, onError, shouldCreate);
|
|
110
|
+
};
|
|
111
|
+
const program = ts.createProgram({ rootNames, options: compilerOptions, host });
|
|
112
|
+
if (options.includeGlobalDiagnostics) {
|
|
113
|
+
for (const d of [...program.getOptionsDiagnostics(), ...program.getGlobalDiagnostics()]) {
|
|
114
|
+
pushDiagnostic(errors, d, tsconfigPath ?? root);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const scoped = [];
|
|
118
|
+
if (options.reportOnlyUnder) {
|
|
119
|
+
const under = resolve(options.reportOnlyUnder) + sep;
|
|
120
|
+
const roots = new Set(rootNames);
|
|
121
|
+
for (const sf of program.getSourceFiles()) {
|
|
122
|
+
const f = resolve(sf.fileName);
|
|
123
|
+
if (!roots.has(f) && (!f.startsWith(under) || f.includes(`${sep}node_modules${sep}`) || sf.isDeclarationFile)) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
scoped.push(sf);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
for (const rn of rootNames) {
|
|
131
|
+
const sf = program.getSourceFile(rn);
|
|
132
|
+
if (sf)
|
|
133
|
+
scoped.push(sf);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
for (const sf of scoped) {
|
|
137
|
+
for (const d of [...program.getSyntacticDiagnostics(sf), ...program.getSemanticDiagnostics(sf)]) {
|
|
138
|
+
pushDiagnostic(errors, d, sf.fileName);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
return {
|
|
144
|
+
ran: false,
|
|
145
|
+
errors: [],
|
|
146
|
+
checkedFiles: rootNames,
|
|
147
|
+
tsconfigPath,
|
|
148
|
+
note: `TypeScript could not run: ${e.message}`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
ran: true,
|
|
153
|
+
errors,
|
|
154
|
+
checkedFiles: rootNames,
|
|
155
|
+
tsconfigPath,
|
|
156
|
+
note: tsconfigPath ? `checked against ${tsconfigPath}` : 'no tsconfig found — used defaults',
|
|
157
|
+
};
|
|
158
|
+
}
|
package/dist/uncertainty.js
CHANGED
|
@@ -85,7 +85,7 @@ function buildSuggestedCommands(task, signals) {
|
|
|
85
85
|
out.push(`shrk coverage scaffolds --task "${task}"`);
|
|
86
86
|
}
|
|
87
87
|
if (signals.some((s) => s.code === 'weak-knowledge-matches' || s.code === 'low-ranker-confidence')) {
|
|
88
|
-
out.push(`shrk
|
|
88
|
+
out.push(`shrk task "${task}" --explain-ranking`);
|
|
89
89
|
out.push(`shrk search tuning explain "${task}"`);
|
|
90
90
|
out.push(`shrk search "${task}" --explain`);
|
|
91
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-search.d.ts","sourceRoot":"","sources":["../src/universal-search.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,OAAO,aAAa;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,eAAe,qBAAqB;IACpC,gBAAgB,sBAAsB;IACtC,gBAAgB,sBAAsB;IACtC,YAAY,kBAAkB;IAC9B,eAAe,sBAAsB;IACrC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,uBAAuB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AA+CD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"universal-search.d.ts","sourceRoot":"","sources":["../src/universal-search.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,OAAO,aAAa;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,eAAe,qBAAqB;IACpC,gBAAgB,sBAAsB;IACtC,gBAAgB,sBAAsB;IACtC,YAAY,kBAAkB;IAC9B,eAAe,sBAAsB;IACrC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,uBAAuB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AA+CD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA8NjC;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAmDhF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CA8BpF"}
|
package/dist/universal-search.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* 6. Uncertainty / no-match explanation
|
|
14
14
|
* 7. Why these ranked
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
16
|
+
import { buildPackContributionsInventoryAsync } from "./pack-contributions-inventory.js";
|
|
17
17
|
import { listConventions } from "./convention-registry.js";
|
|
18
18
|
import { listPackHelpers } from "./pack-helper-registry.js";
|
|
19
19
|
import { explainTaskRouting } from "./task-routing-hint-registry.js";
|
|
@@ -83,7 +83,9 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
|
|
|
83
83
|
const q = query.trim();
|
|
84
84
|
const limit = options.limit ?? 8;
|
|
85
85
|
// Pull pieces we'll rank against.
|
|
86
|
-
|
|
86
|
+
// The async inventory: loader-backed ids (never the sync regex scrape's
|
|
87
|
+
// "unverified" guesses), so a search hit is an id the registry really holds.
|
|
88
|
+
const inv = await buildPackContributionsInventoryAsync(inspection);
|
|
87
89
|
const conventions = await listConventions(inspection);
|
|
88
90
|
const helpers = await listPackHelpers(inspection);
|
|
89
91
|
const routing = await explainTaskRouting(inspection, q);
|
|
@@ -230,7 +232,7 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
|
|
|
230
232
|
sections.validation.length;
|
|
231
233
|
const nextSuggestions = [];
|
|
232
234
|
if (totalHits === 0) {
|
|
233
|
-
nextSuggestions.push(`shrk coverage scaffolds --task "${q}"`, `shrk feedback ingest <file>`, `shrk why <id> --for-task "${q}"`, `shrk commands
|
|
235
|
+
nextSuggestions.push(`shrk coverage scaffolds --task "${q}"`, `shrk feedback ingest <file>`, `shrk why <id> --for-task "${q}"`, `shrk commands search "${q}"`);
|
|
234
236
|
}
|
|
235
237
|
const whyTheseRanked = [
|
|
236
238
|
'Scoring: exact match +20, substring +10, token ≥3 chars +3 per match.',
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
|
+
export interface IUnregisteredExport {
|
|
3
|
+
/** `knowledge` covers knowledge / rule / path entries; `template` covers templates. */
|
|
4
|
+
readonly kind: 'knowledge' | 'template';
|
|
5
|
+
/** Project-relative path of the aggregator (the loaded contribution file). */
|
|
6
|
+
readonly aggregator: string;
|
|
7
|
+
/** Project-relative path of the group module that exports the entry. */
|
|
8
|
+
readonly group: string;
|
|
9
|
+
readonly exportName: string;
|
|
10
|
+
readonly id: string;
|
|
11
|
+
/** 1-based line of the export in the group module (0 when not located). */
|
|
12
|
+
readonly line: number;
|
|
13
|
+
/** Owning pack when the aggregator is a pack contribution. */
|
|
14
|
+
readonly packageName?: string;
|
|
15
|
+
readonly message: string;
|
|
16
|
+
}
|
|
17
|
+
/** Every unregistered entry export, sorted by group then line. */
|
|
18
|
+
export declare function detectUnregisteredExports(inspection: ISharkcraftInspection): Promise<readonly IUnregisteredExport[]>;
|
|
19
|
+
//# sourceMappingURL=unregistered-exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unregistered-exports.d.ts","sourceRoot":"","sources":["../src/unregistered-exports.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAgCD,kEAAkE;AAClE,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CA2EzC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entries exported by a GROUP module that the AGGREGATOR registering it never
|
|
3
|
+
* registers — "added an entry to a group file, and it is silently invisible".
|
|
4
|
+
*
|
|
5
|
+
* A contribution file (the aggregator) imports named entries from group
|
|
6
|
+
* modules and lists them in its default array. An entry added to a group and
|
|
7
|
+
* not to that list compiles, ships, and is unknown to every lookup, with no
|
|
8
|
+
* warning. This check diffs, one level deep and deterministically:
|
|
9
|
+
*
|
|
10
|
+
* - aggregators = the contribution files the inspection's loaders actually
|
|
11
|
+
* imported cleanly (knowledge / rules / paths / templates — the kinds whose
|
|
12
|
+
* loader collects entry-shaped exports);
|
|
13
|
+
* - groups = each aggregator's RELATIVE imports (parsed by the one import
|
|
14
|
+
* parser, `parseImportStatements`) that resolve to a file under the same
|
|
15
|
+
* sharkcraft dir / pack root and are not themselves loaded;
|
|
16
|
+
* - an entry-shaped export of a group (the loader's OWN predicate:
|
|
17
|
+
* `isLikelyEntry` / `isTemplate`) whose id no registry holds is a finding.
|
|
18
|
+
*
|
|
19
|
+
* No directory globbing, and nothing is flagged for a file the aggregator
|
|
20
|
+
* never references. `export * from './group'` registers the whole group
|
|
21
|
+
* implicitly, so it yields zero findings by construction.
|
|
22
|
+
*/
|
|
23
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
24
|
+
import * as nodePath from 'node:path';
|
|
25
|
+
import { safeImport } from '@shrkcrft/core';
|
|
26
|
+
import { parseImportStatements } from '@shrkcrft/boundaries';
|
|
27
|
+
import { isLikelyEntry } from '@shrkcrft/knowledge';
|
|
28
|
+
import { isTemplate } from '@shrkcrft/templates';
|
|
29
|
+
const PROBES = ['', '.ts', '.tsx', '.mts', '.js', '.mjs', '/index.ts', '/index.tsx', '/index.js'];
|
|
30
|
+
const AGGREGATOR_KINDS = new Set(['knowledge', 'rules', 'paths', 'templates']);
|
|
31
|
+
function isFile(p) {
|
|
32
|
+
try {
|
|
33
|
+
return statSync(p).isFile();
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function resolveRelativeImport(fromFile, specifier) {
|
|
40
|
+
const base = nodePath.resolve(nodePath.dirname(fromFile), specifier);
|
|
41
|
+
const candidates = PROBES.map((ext) => base + ext);
|
|
42
|
+
// TS ESM style: `./group.js` written for `./group.ts`.
|
|
43
|
+
if (/\.m?js$/.test(specifier))
|
|
44
|
+
candidates.push(base.replace(/\.js$/, '.ts'), base.replace(/\.mjs$/, '.mts'));
|
|
45
|
+
for (const c of candidates)
|
|
46
|
+
if (isFile(c))
|
|
47
|
+
return c;
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
function exportLine(content, name) {
|
|
51
|
+
const re = name === 'default'
|
|
52
|
+
? /^[ \t]*export[ \t]+default\b/m
|
|
53
|
+
: new RegExp(`^[ \\t]*export[ \\t]+(?:const|let|var|function|class)[ \\t]+${name.replace(/[$]/g, '\\$')}\\b`, 'm');
|
|
54
|
+
const m = re.exec(content);
|
|
55
|
+
if (!m)
|
|
56
|
+
return 0;
|
|
57
|
+
return content.slice(0, m.index).split('\n').length;
|
|
58
|
+
}
|
|
59
|
+
/** Every unregistered entry export, sorted by group then line. */
|
|
60
|
+
export async function detectUnregisteredExports(inspection) {
|
|
61
|
+
const out = [];
|
|
62
|
+
const projectRoot = inspection.projectRoot;
|
|
63
|
+
const rel = (abs) => nodePath.relative(projectRoot, abs) || abs;
|
|
64
|
+
const loaded = new Set((inspection.loaderDiagnostics ?? []).map((d) => nodePath.resolve(d.filePath)));
|
|
65
|
+
const packRoots = new Map();
|
|
66
|
+
for (const p of inspection.packs.validPacks ?? [])
|
|
67
|
+
packRoots.set(p.packageName, nodePath.resolve(p.packageRoot));
|
|
68
|
+
// What the registries hold — the same sets `knowledge list` / `templates list` print.
|
|
69
|
+
const registered = {
|
|
70
|
+
knowledge: new Set(inspection.knowledgeEntries.map((e) => e.id)),
|
|
71
|
+
template: new Set(inspection.templateRegistry.list().map((t) => t.id)),
|
|
72
|
+
};
|
|
73
|
+
const seen = new Set();
|
|
74
|
+
const aggregators = (inspection.loaderDiagnostics ?? []).filter((d) => d.status === 'ok' && AGGREGATOR_KINDS.has(d.kind) && /\.(?:[cm]?[jt]s|tsx)$/.test(d.filePath));
|
|
75
|
+
for (const d of aggregators) {
|
|
76
|
+
const aggregator = nodePath.resolve(d.filePath);
|
|
77
|
+
const kind = d.kind === 'templates' ? 'template' : 'knowledge';
|
|
78
|
+
const root = d.packName ? packRoots.get(d.packName) : inspection.sharkcraftDir ? nodePath.resolve(inspection.sharkcraftDir) : undefined;
|
|
79
|
+
if (!root || !existsSync(aggregator))
|
|
80
|
+
continue;
|
|
81
|
+
let content;
|
|
82
|
+
try {
|
|
83
|
+
content = readFileSync(aggregator, 'utf8');
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
for (const imp of parseImportStatements(content)) {
|
|
89
|
+
if (imp.typeOnly || !imp.specifier.startsWith('.'))
|
|
90
|
+
continue;
|
|
91
|
+
const group = resolveRelativeImport(aggregator, imp.specifier);
|
|
92
|
+
if (!group || !group.startsWith(root + nodePath.sep) || loaded.has(group))
|
|
93
|
+
continue;
|
|
94
|
+
const imported = await safeImport(group);
|
|
95
|
+
// A group that cannot be imported breaks its aggregator too — that is the
|
|
96
|
+
// loader's failure to report, not an unregistered export.
|
|
97
|
+
if (!imported.ok)
|
|
98
|
+
continue;
|
|
99
|
+
let groupContent = '';
|
|
100
|
+
try {
|
|
101
|
+
groupContent = readFileSync(group, 'utf8');
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
/* line stays 0 */
|
|
105
|
+
}
|
|
106
|
+
const predicate = kind === 'template' ? isTemplate : isLikelyEntry;
|
|
107
|
+
for (const exportName of Object.keys(imported.module)) {
|
|
108
|
+
let value;
|
|
109
|
+
try {
|
|
110
|
+
value = imported.module[exportName];
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const items = predicate(value) ? [value] : Array.isArray(value) ? value.filter((v) => predicate(v)) : [];
|
|
116
|
+
for (const item of items) {
|
|
117
|
+
if (registered[kind].has(item.id))
|
|
118
|
+
continue;
|
|
119
|
+
const key = `${kind}\0${group}\0${exportName}\0${item.id}`;
|
|
120
|
+
if (seen.has(key))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(key);
|
|
123
|
+
const groupRel = rel(group);
|
|
124
|
+
const aggregatorRel = rel(aggregator);
|
|
125
|
+
out.push({
|
|
126
|
+
kind,
|
|
127
|
+
aggregator: aggregatorRel,
|
|
128
|
+
group: groupRel,
|
|
129
|
+
exportName,
|
|
130
|
+
id: item.id,
|
|
131
|
+
line: exportLine(groupContent, exportName),
|
|
132
|
+
...(d.packName ? { packageName: d.packName } : {}),
|
|
133
|
+
message: `export '${exportName}' (id '${item.id}') in ${groupRel} is not registered by ${aggregatorRel} — ` +
|
|
134
|
+
`add it to the aggregator's array, or re-export the group with \`export * from './${nodePath.basename(group)}'\``,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return out.sort((a, b) => a.group.localeCompare(b.group) || a.line - b.line || a.id.localeCompare(b.id));
|
|
141
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a declared reference could not be resolved — as opposed to resolving
|
|
3
|
+
* NOWHERE (a `*-missing` finding) (round 12, ONE-CHANGE).
|
|
4
|
+
*/
|
|
5
|
+
export declare enum UnresolvableReason {
|
|
6
|
+
/** Its kind's registry is empty in this workspace — declare one (the declaration table names how). */
|
|
7
|
+
RegistryEmpty = "registry-empty",
|
|
8
|
+
/** No builtin, config key, local file or pack key can EVER fill its kind (THE declarability authority). */
|
|
9
|
+
UndeclarableKind = "undeclarable-kind"
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=unresolvable-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unresolvable-reason.d.ts","sourceRoot":"","sources":["../src/unresolvable-reason.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,sGAAsG;IACtG,aAAa,mBAAmB;IAChC,2GAA2G;IAC3G,gBAAgB,sBAAsB;CACvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a declared reference could not be resolved — as opposed to resolving
|
|
3
|
+
* NOWHERE (a `*-missing` finding) (round 12, ONE-CHANGE).
|
|
4
|
+
*/
|
|
5
|
+
export var UnresolvableReason;
|
|
6
|
+
(function (UnresolvableReason) {
|
|
7
|
+
/** Its kind's registry is empty in this workspace — declare one (the declaration table names how). */
|
|
8
|
+
UnresolvableReason["RegistryEmpty"] = "registry-empty";
|
|
9
|
+
/** No builtin, config key, local file or pack key can EVER fill its kind (THE declarability authority). */
|
|
10
|
+
UnresolvableReason["UndeclarableKind"] = "undeclarable-kind";
|
|
11
|
+
})(UnresolvableReason || (UnresolvableReason = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-advisor.d.ts","sourceRoot":"","sources":["../src/upgrade-advisor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade-advisor.d.ts","sourceRoot":"","sources":["../src/upgrade-advisor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAiDD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,oBAAoB,CA8DtB"}
|
package/dist/upgrade-advisor.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
8
8
|
import * as nodePath from 'node:path';
|
|
9
|
+
import { detectSharkcraftRepo } from "./self-audit.js";
|
|
9
10
|
export const UPGRADE_ADVISOR_SCHEMA = 'sharkcraft.upgrade-advisor/v1';
|
|
10
11
|
function detectSchemaVersion(text) {
|
|
11
12
|
const m = /"schema"\s*:\s*"([^"]+)"/.exec(text);
|
|
@@ -68,7 +69,7 @@ export function buildUpgradeAdvice(inspection, options = {}) {
|
|
|
68
69
|
id: 'repository-map-v1-present',
|
|
69
70
|
severity: 'info',
|
|
70
71
|
message: 'sharkcraft.repository-map/v1 artefacts found. sharkcraft.repository-intelligence/v1 ships alongside it.',
|
|
71
|
-
suggestedAction: 'No action required; run `shrk
|
|
72
|
+
suggestedAction: 'No action required; run `shrk graph hubs` for the new surface.',
|
|
72
73
|
});
|
|
73
74
|
}
|
|
74
75
|
if (detected['sharkcraft.feature-bundle/v1']) {
|
|
@@ -89,14 +90,20 @@ export function buildUpgradeAdvice(inspection, options = {}) {
|
|
|
89
90
|
suggestedAction: 'After upgrade, re-run adoption with `--record-checkpoint` if hashes diverge.',
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
// `commands doctor` / `release readiness` (and the tool's own tsc / test
|
|
94
|
+
// scripts) maintain SharkCraft itself: outside its repository they exit 78
|
|
95
|
+
// through the surface gate (THE host authority, `detectSharkcraftRepo`), so a
|
|
96
|
+
// consumer is pointed at the aggregate gate instead.
|
|
97
|
+
const recommendedSteps = detectSharkcraftRepo(inspection.projectRoot)
|
|
98
|
+
? [
|
|
99
|
+
'shrk doctor',
|
|
100
|
+
'shrk commands doctor',
|
|
101
|
+
'shrk safety audit',
|
|
102
|
+
'shrk release readiness',
|
|
103
|
+
'bun x tsc -p tsconfig.base.json --noEmit',
|
|
104
|
+
'bun test',
|
|
105
|
+
]
|
|
106
|
+
: ['shrk doctor', 'shrk safety audit', 'shrk quality'];
|
|
100
107
|
return {
|
|
101
108
|
schema: UPGRADE_ADVISOR_SCHEMA,
|
|
102
109
|
generatedAt: new Date().toISOString(),
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IContributionFileValidation } from './i-contribution-file-validation.js';
|
|
2
|
+
/** Validate `file`, declared under manifest `slot`. */
|
|
3
|
+
export declare function validateContributionFile(slot: string, file: string): Promise<IContributionFileValidation>;
|
|
4
|
+
//# sourceMappingURL=validate-contribution-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-contribution-file.d.ts","sourceRoot":"","sources":["../src/validate-contribution-file.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAsEvF,uDAAuD;AACvD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAyI/G"}
|