@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
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { KnowledgeReferenceKind } from '@shrkcrft/knowledge';
|
|
2
|
+
import type { ICommandResolution } from './i-command-resolution.js';
|
|
3
|
+
import type { ICommandResolveOptions } from './i-command-resolve-options.js';
|
|
4
|
+
import type { IReferenceWarmOptions } from './i-reference-warm-options.js';
|
|
5
|
+
import { ReferenceIdStatus } from './reference-id-status.js';
|
|
2
6
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
3
7
|
/**
|
|
4
8
|
* The id sets a knowledge/doc reference can resolve against.
|
|
@@ -38,15 +42,35 @@ export type DocReferenceKind = KnowledgeReferenceKind | 'pipeline';
|
|
|
38
42
|
* `docReferences[].resolvesAs` is unchanged — it still accepts exactly the
|
|
39
43
|
* `DocReferenceKind`s. Widening the RESOLVER is not widening the config.
|
|
40
44
|
*/
|
|
41
|
-
export type ReferenceKind = DocReferenceKind | 'knowledge' | 'rule' | 'decision' | 'convention' | 'contract-template' | 'migration-profile' | 'routing-hint' | 'registration-hint' | 'scaffold-pattern';
|
|
45
|
+
export type ReferenceKind = DocReferenceKind | 'knowledge' | 'rule' | 'decision' | 'convention' | 'contract-template' | 'migration-profile' | 'workspace-profile' | 'routing-hint' | 'registration-hint' | 'scaffold-pattern';
|
|
42
46
|
/**
|
|
43
47
|
* Every kind that resolves against a registry of ids.
|
|
44
48
|
*
|
|
45
|
-
* `command` is deliberately absent: the
|
|
46
|
-
* ABOVE this layer, so it resolves
|
|
47
|
-
*
|
|
49
|
+
* `command` is deliberately absent: the command index lives in the CLI
|
|
50
|
+
* package, ABOVE this layer, so it resolves through the resolver the CLI
|
|
51
|
+
* injects ({@link resolveCommandReference}) — never by shape, and never by a
|
|
52
|
+
* list this layer cannot see. `file` / `directory` / `symbol` / `package` /
|
|
53
|
+
* `url` are not id registries at all.
|
|
54
|
+
*
|
|
55
|
+
* **List order is SPECIFICITY.** A rule and a path convention are knowledge
|
|
56
|
+
* entries filtered by type, so `knowledge` is a SUPERSET of both and must come
|
|
57
|
+
* after them: {@link referenceKindsOf} returns kinds in this order, so its first
|
|
58
|
+
* element names the most specific registry. With `knowledge` listed first,
|
|
59
|
+
* every rule id used to report `knowledge` as "the" kind it resolved as.
|
|
60
|
+
*
|
|
61
|
+
* **Every kind here is DECLARABLE** (round 12): `REFERENCE_KIND_DECLARATIONS`
|
|
62
|
+
* is a `Record<IdReferenceKind, …>`, so a kind added here without a row saying
|
|
63
|
+
* how its ids come to exist is a compile error, and the r76 declarability lock
|
|
64
|
+
* proves every path in that row fills this resolver. `workspace-profile` is
|
|
65
|
+
* the builtin WorkspaceProfile vocabulary — the applicability filters'
|
|
66
|
+
* `profileIds` resolve against it (they were bound to `migration-profile`, a
|
|
67
|
+
* readiness registry, and sat at NOT VERIFIED forever).
|
|
48
68
|
*/
|
|
49
|
-
export declare const ALL_ID_REFERENCE_KINDS: readonly
|
|
69
|
+
export declare const ALL_ID_REFERENCE_KINDS: readonly ["template", "pipeline", "playbook", "policy", "construct", "helper", "boundary-rule", "path-convention", "rule", "knowledge", "decision", "convention", "contract-template", "migration-profile", "workspace-profile", "routing-hint", "registration-hint", "scaffold-pattern"];
|
|
70
|
+
/** A kind that resolves against a registry of ids — a member of {@link ALL_ID_REFERENCE_KINDS}. */
|
|
71
|
+
export type IdReferenceKind = (typeof ALL_ID_REFERENCE_KINDS)[number];
|
|
72
|
+
/** The loud-skip message every consumer prints for an un-injected command index. */
|
|
73
|
+
export declare const COMMAND_INDEX_NOT_INJECTED = "command index not injected \u2014 NOT VERIFIED";
|
|
50
74
|
/**
|
|
51
75
|
* Populate the snapshot the synchronous accessors read.
|
|
52
76
|
*
|
|
@@ -54,8 +78,12 @@ export declare const ALL_ID_REFERENCE_KINDS: readonly ReferenceKind[];
|
|
|
54
78
|
* resolving anything. Without it a correct playbook — or convention, or
|
|
55
79
|
* scaffold pattern — resolves to nothing, which is exactly how a correct id got
|
|
56
80
|
* reported as an error twice.
|
|
81
|
+
*
|
|
82
|
+
* `options.commandResolver` is the CLI's command-string resolver (the command
|
|
83
|
+
* index lives above this layer). Without one, every `command` reference is
|
|
84
|
+
* `Unverifiable` — see {@link resolveCommandReference}.
|
|
57
85
|
*/
|
|
58
|
-
export declare function warmReferenceRegistries(inspection: ISharkcraftInspection): Promise<void>;
|
|
86
|
+
export declare function warmReferenceRegistries(inspection: ISharkcraftInspection, options?: IReferenceWarmOptions): Promise<void>;
|
|
59
87
|
/**
|
|
60
88
|
* Every registered id of `kind`, for existence checks and for suggesting what
|
|
61
89
|
* an unresolved token might have meant.
|
|
@@ -75,16 +103,68 @@ export declare function referenceIdsFor(inspection: ISharkcraftInspection, kind:
|
|
|
75
103
|
* to get a gate switched off. Emptiness is repo-dependent (a project may simply
|
|
76
104
|
* have no playbooks), so it cannot be a config-time error; the caller surfaces
|
|
77
105
|
* it as a loud refusal at run time instead.
|
|
106
|
+
*
|
|
107
|
+
* `command` has no list; it can resolve exactly when a resolver was injected.
|
|
108
|
+
* Without one it is reported here — nothing could resolve, so every command
|
|
109
|
+
* would be reported wrong (or, before round 11, every `shrk …` string right).
|
|
78
110
|
*/
|
|
79
111
|
export declare function emptyReferenceKinds(inspection: ISharkcraftInspection, kinds: readonly ReferenceKind[]): readonly ReferenceKind[];
|
|
112
|
+
/** True when the CLI injected its command resolver for this inspection. */
|
|
113
|
+
export declare function hasCommandResolver(inspection: ISharkcraftInspection): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* True once {@link warmReferenceRegistries} ran for this inspection's root.
|
|
116
|
+
*
|
|
117
|
+
* The cache-backed kinds read EMPTY until then, so a consumer that resolves
|
|
118
|
+
* them (a test runner checking `expectedPlaybooks`) can report "could not look"
|
|
119
|
+
* instead of "your correct id does not exist".
|
|
120
|
+
*/
|
|
121
|
+
export declare function isReferenceCacheWarm(inspection: ISharkcraftInspection): boolean;
|
|
122
|
+
/** Ok / PrefixOnly / NotShrk: the string resolves (or is not ours to judge). */
|
|
123
|
+
export declare function isCommandResolved(resolution: ICommandResolution): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* THE function every consumer calls to resolve a command string: knowledge
|
|
126
|
+
* `command` references and anchors, the self-config doctor's command probes,
|
|
127
|
+
* agent-test `expectedCommands`, the query resolver.
|
|
128
|
+
*
|
|
129
|
+
* The command index lives in the CLI, above this layer, so the answer comes
|
|
130
|
+
* from the resolver the CLI injected via `warmReferenceRegistries(inspection,
|
|
131
|
+
* { commandResolver })`. Without one the answer is `Unverified` — the string
|
|
132
|
+
* was NOT checked. It used to be `id.startsWith('shrk ')`, which certified
|
|
133
|
+
* every `shrk …` string (including three dead ones in shrk's own knowledge) as
|
|
134
|
+
* a real command, forever.
|
|
135
|
+
*/
|
|
136
|
+
export declare function resolveCommandReference(inspection: ISharkcraftInspection, raw: string, options?: ICommandResolveOptions): ICommandResolution;
|
|
137
|
+
/**
|
|
138
|
+
* THE reading of a `command` REFERENCE — a knowledge `command` reference or
|
|
139
|
+
* anchor, an agent test's `expectedCommands`, the `command` reference kind.
|
|
140
|
+
*
|
|
141
|
+
* Such a string names a shrk command, so a bare form is read as one: `doctor`
|
|
142
|
+
* resolves, `frobnicate` is an unknown verb (see {@link ICommandResolveOptions}).
|
|
143
|
+
* knowledge-stale, the self-config doctor's reference probes and the agent-test
|
|
144
|
+
* runner all call THIS — they used to normalise the same string three ways
|
|
145
|
+
* (`frobnicate` was `ok` in one, `not-shrk` in another and `unknown-verb` in
|
|
146
|
+
* the third). Free shell text (a playbook step) goes through
|
|
147
|
+
* {@link resolveCommandReference} without the assumption.
|
|
148
|
+
*/
|
|
149
|
+
export declare function resolveShrkCommandReference(inspection: ISharkcraftInspection, command: string): ICommandResolution;
|
|
150
|
+
/**
|
|
151
|
+
* Tri-state existence: `Exists` / `Missing` / `Unverifiable`.
|
|
152
|
+
*
|
|
153
|
+
* For `command`: Ok, PrefixOnly and NotShrk are `Exists`; every Unknown* is
|
|
154
|
+
* `Missing`; no injected resolver is `Unverifiable` (report it as NOT VERIFIED,
|
|
155
|
+
* never as Ok). Read as a command REFERENCE ({@link resolveShrkCommandReference}).
|
|
156
|
+
* Every other kind is `Exists` / `Missing` against its registry.
|
|
157
|
+
*/
|
|
158
|
+
export declare function referenceIdStatus(inspection: ISharkcraftInspection, kind: ReferenceKind, id: string): ReferenceIdStatus;
|
|
80
159
|
/** True when `kind`'s ids come from an async-populated cache. */
|
|
81
160
|
export declare function isCacheBackedKind(kind: ReferenceKind): boolean;
|
|
82
161
|
/**
|
|
83
|
-
* Whether `id` is registered under `kind
|
|
162
|
+
* Whether `id` is registered under `kind` — `true` only for
|
|
163
|
+
* {@link ReferenceIdStatus.Exists}.
|
|
84
164
|
*
|
|
85
|
-
* `command`
|
|
86
|
-
*
|
|
87
|
-
*
|
|
165
|
+
* For `command` this is `false` when no resolver was injected: an unverifiable
|
|
166
|
+
* command is not an existing one. A caller that must tell "missing" from
|
|
167
|
+
* "could not look" reads {@link referenceIdStatus} instead.
|
|
88
168
|
*/
|
|
89
169
|
export declare function referenceIdExists(inspection: ISharkcraftInspection, kind: ReferenceKind, id: string): boolean;
|
|
90
170
|
/**
|
|
@@ -107,6 +187,24 @@ export declare function referenceIdPool(inspection: ISharkcraftInspection, kinds
|
|
|
107
187
|
* automatically.
|
|
108
188
|
*/
|
|
109
189
|
export declare function referenceIdExistsInAnyKind(inspection: ISharkcraftInspection, id: string): boolean;
|
|
110
|
-
/**
|
|
190
|
+
/**
|
|
191
|
+
* EVERY kind whose registry lists `id`, most specific first (the order of
|
|
192
|
+
* {@link ALL_ID_REFERENCE_KINDS}) — empty when nothing does.
|
|
193
|
+
*
|
|
194
|
+
* Ids carry no namespace prefix, so one id can legitimately live in several
|
|
195
|
+
* registries: a rule is also a knowledge entry, and a template may share an id
|
|
196
|
+
* with a construct. "Which namespace did this resolve into?" therefore has a
|
|
197
|
+
* LIST as its honest answer; {@link referenceKindOf} is its first element.
|
|
198
|
+
*/
|
|
199
|
+
export declare function referenceKindsOf(inspection: ISharkcraftInspection, id: string): readonly ReferenceKind[];
|
|
200
|
+
/** The most specific kind that accepted `id`, or `undefined` — for "resolved as what?" output. */
|
|
111
201
|
export declare function referenceKindOf(inspection: ISharkcraftInspection, id: string): ReferenceKind | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* One-shot projection of {@link referenceIdsFor} over every kind, for O(1)
|
|
204
|
+
* membership when a caller resolves many ids at once (the declared
|
|
205
|
+
* cross-reference collector walks every asset). Not a second source: each set
|
|
206
|
+
* is built from `referenceIdsFor`, so list ≡ resolve still holds per kind.
|
|
207
|
+
* Snapshot semantics — rebuild it after a warm.
|
|
208
|
+
*/
|
|
209
|
+
export declare function referenceIdSets(inspection: ISharkcraftInspection): ReadonlyMap<ReferenceKind, ReadonlySet<string>>;
|
|
112
210
|
//# sourceMappingURL=reference-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-registry.d.ts","sourceRoot":"","sources":["../src/reference-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"reference-registry.d.ts","sourceRoot":"","sources":["../src/reference-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAa7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,GAAG,UAAU,CAAC;AAEnE;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GACrB,gBAAgB,GAChB,WAAW,GACX,MAAM,GACN,UAAU,GACV,YAAY,GACZ,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,GACd,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,sBAAsB,2RAmBU,CAAC;AAE9C,mGAAmG;AACnG,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AA2DtE,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,mDAA8C,CAAC;AActF;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAMD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,aAAa,GAClB,SAAS,MAAM,EAAE,CAmDnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,SAAS,aAAa,EAAE,CAM1B;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAE/E;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAMzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,qBAAqB,EACjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,CAMpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE,MAAM,GACd,kBAAkB,CAEpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,MAAM,GACT,iBAAiB,CAWnB;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,SAAS,MAAM,EAAE,CAMnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,SAAS,aAAa,EAAE,CAE1B;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,aAAa,GAAG,SAAS,CAE3B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,GAChC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAIjD"}
|
|
@@ -1,21 +1,39 @@
|
|
|
1
|
+
import { CommandResolutionStatus } from "./command-resolution-status.js";
|
|
2
|
+
import { ReferenceIdStatus } from "./reference-id-status.js";
|
|
1
3
|
import { listConstructs, warmConstructCache } from "./construct-registry.js";
|
|
2
4
|
import { listConventions } from "./convention-registry.js";
|
|
3
5
|
import { loadAllContractTemplates } from "./contract-template-registry.js";
|
|
4
|
-
import { listDecisions } from "./decision-records.js";
|
|
5
|
-
import {
|
|
6
|
+
import { listDecisions, loadTsDecisions } from "./decision-records.js";
|
|
7
|
+
import { listAllHelpers } from "./helper-catalog.js";
|
|
6
8
|
import { listMigrationProfilesFromPacks } from "./migration-profile-registry.js";
|
|
7
|
-
import { listPackHelpers } from "./pack-helper-registry.js";
|
|
8
9
|
import { listPlaybooks, warmPlaybookCache } from "./playbook-registry.js";
|
|
9
10
|
import { listPolicyIds, warmPolicyCache } from "./policy-registry.js";
|
|
11
|
+
import { listWorkspaceProfileEntries } from "./profile-registry.js";
|
|
10
12
|
import { listRegistrationHints } from "./registration-hint-registry.js";
|
|
11
13
|
import { loadScaffoldPatternsFromInspection } from "./scaffold-patterns.js";
|
|
12
14
|
import { listTaskRoutingHints } from "./task-routing-hint-registry.js";
|
|
13
15
|
/**
|
|
14
16
|
* Every kind that resolves against a registry of ids.
|
|
15
17
|
*
|
|
16
|
-
* `command` is deliberately absent: the
|
|
17
|
-
* ABOVE this layer, so it resolves
|
|
18
|
-
*
|
|
18
|
+
* `command` is deliberately absent: the command index lives in the CLI
|
|
19
|
+
* package, ABOVE this layer, so it resolves through the resolver the CLI
|
|
20
|
+
* injects ({@link resolveCommandReference}) — never by shape, and never by a
|
|
21
|
+
* list this layer cannot see. `file` / `directory` / `symbol` / `package` /
|
|
22
|
+
* `url` are not id registries at all.
|
|
23
|
+
*
|
|
24
|
+
* **List order is SPECIFICITY.** A rule and a path convention are knowledge
|
|
25
|
+
* entries filtered by type, so `knowledge` is a SUPERSET of both and must come
|
|
26
|
+
* after them: {@link referenceKindsOf} returns kinds in this order, so its first
|
|
27
|
+
* element names the most specific registry. With `knowledge` listed first,
|
|
28
|
+
* every rule id used to report `knowledge` as "the" kind it resolved as.
|
|
29
|
+
*
|
|
30
|
+
* **Every kind here is DECLARABLE** (round 12): `REFERENCE_KIND_DECLARATIONS`
|
|
31
|
+
* is a `Record<IdReferenceKind, …>`, so a kind added here without a row saying
|
|
32
|
+
* how its ids come to exist is a compile error, and the r76 declarability lock
|
|
33
|
+
* proves every path in that row fills this resolver. `workspace-profile` is
|
|
34
|
+
* the builtin WorkspaceProfile vocabulary — the applicability filters'
|
|
35
|
+
* `profileIds` resolve against it (they were bound to `migration-profile`, a
|
|
36
|
+
* readiness registry, and sat at NOT VERIFIED forever).
|
|
19
37
|
*/
|
|
20
38
|
export const ALL_ID_REFERENCE_KINDS = [
|
|
21
39
|
'template',
|
|
@@ -26,12 +44,13 @@ export const ALL_ID_REFERENCE_KINDS = [
|
|
|
26
44
|
'helper',
|
|
27
45
|
'boundary-rule',
|
|
28
46
|
'path-convention',
|
|
29
|
-
'knowledge',
|
|
30
47
|
'rule',
|
|
48
|
+
'knowledge',
|
|
31
49
|
'decision',
|
|
32
50
|
'convention',
|
|
33
51
|
'contract-template',
|
|
34
52
|
'migration-profile',
|
|
53
|
+
'workspace-profile',
|
|
35
54
|
'routing-hint',
|
|
36
55
|
'registration-hint',
|
|
37
56
|
'scaffold-pattern',
|
|
@@ -61,9 +80,28 @@ const CACHE_BACKED_KINDS = [
|
|
|
61
80
|
'routing-hint',
|
|
62
81
|
'registration-hint',
|
|
63
82
|
'scaffold-pattern',
|
|
83
|
+
// TS decisions (`sharkcraft/decisions.ts`, pack `decisionFiles`) reach the
|
|
84
|
+
// sync `listDecisions` only after the warm loads them, so an unwarmed lookup
|
|
85
|
+
// of a declared decision reads "missing" — a cache-backed kind, covered by
|
|
86
|
+
// the same "could not look" safety net (round 12 review, R12-DOC-5).
|
|
87
|
+
'decision',
|
|
64
88
|
];
|
|
65
89
|
/** Snapshot of the async-loaded kinds, per project root. */
|
|
66
90
|
const ASYNC_IDS = new Map();
|
|
91
|
+
/**
|
|
92
|
+
* The injected command resolver, per inspection OBJECT.
|
|
93
|
+
*
|
|
94
|
+
* Keyed by the inspection rather than the project root so a resolver injected
|
|
95
|
+
* for one run can never leak into an unrelated inspection of the same root —
|
|
96
|
+
* an engine call that was never given one must stay `Unverifiable`. A later
|
|
97
|
+
* warm WITHOUT a resolver (an inner engine call re-warming the same
|
|
98
|
+
* inspection) keeps the one already injected.
|
|
99
|
+
*/
|
|
100
|
+
const COMMAND_RESOLVERS = new WeakMap();
|
|
101
|
+
/** The command-REFERENCE reading: a bare command-word head names a shrk verb. */
|
|
102
|
+
const SHRK_COMMAND_REFERENCE = Object.freeze({ assumeShrk: true });
|
|
103
|
+
/** The loud-skip message every consumer prints for an un-injected command index. */
|
|
104
|
+
export const COMMAND_INDEX_NOT_INJECTED = 'command index not injected — NOT VERIFIED';
|
|
67
105
|
async function safeIds(load) {
|
|
68
106
|
try {
|
|
69
107
|
return await load();
|
|
@@ -83,15 +121,26 @@ async function safeIds(load) {
|
|
|
83
121
|
* resolving anything. Without it a correct playbook — or convention, or
|
|
84
122
|
* scaffold pattern — resolves to nothing, which is exactly how a correct id got
|
|
85
123
|
* reported as an error twice.
|
|
124
|
+
*
|
|
125
|
+
* `options.commandResolver` is the CLI's command-string resolver (the command
|
|
126
|
+
* index lives above this layer). Without one, every `command` reference is
|
|
127
|
+
* `Unverifiable` — see {@link resolveCommandReference}.
|
|
86
128
|
*/
|
|
87
|
-
export async function warmReferenceRegistries(inspection) {
|
|
129
|
+
export async function warmReferenceRegistries(inspection, options = {}) {
|
|
130
|
+
if (options.commandResolver)
|
|
131
|
+
COMMAND_RESOLVERS.set(inspection, options.commandResolver);
|
|
88
132
|
await Promise.all([
|
|
89
133
|
warmPlaybookCache(inspection),
|
|
90
134
|
warmConstructCache(inspection),
|
|
91
135
|
warmPolicyCache(inspection),
|
|
136
|
+
// TS decisions (`sharkcraft/decisions.ts`, pack `decisionFiles`) reach the
|
|
137
|
+
// sync `listDecisions` only through this cache. Unwarmed, a declared
|
|
138
|
+
// decision resolved as nothing — the r76 declarability lock found it.
|
|
139
|
+
loadTsDecisions(inspection).catch(() => []),
|
|
92
140
|
]);
|
|
93
141
|
const [packHelpers, conventions, contractTemplates, migrationProfiles, routingHints, registrationHints, scaffoldPatterns,] = await Promise.all([
|
|
94
|
-
|
|
142
|
+
// THE helper catalog — the same list `shrk helper list` prints.
|
|
143
|
+
safeIds(async () => (await listAllHelpers(inspection)).entries.map((h) => h.id)),
|
|
95
144
|
safeIds(async () => (await listConventions(inspection)).map((e) => e.convention.id)),
|
|
96
145
|
safeIds(async () => (await loadAllContractTemplates(inspection)).entries.map((e) => e.template.id)),
|
|
97
146
|
safeIds(async () => (await listMigrationProfilesFromPacks(inspection)).map((p) => p.id)),
|
|
@@ -100,10 +149,11 @@ export async function warmReferenceRegistries(inspection) {
|
|
|
100
149
|
safeIds(async () => (await loadScaffoldPatternsFromInspection(inspection)).patterns.map((e) => e.pattern.id)),
|
|
101
150
|
]);
|
|
102
151
|
ASYNC_IDS.set(inspection.projectRoot, new Map([
|
|
103
|
-
// Built-
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
|
|
152
|
+
// Built-ins ∪ pack/local helpers, from the one catalog `helper
|
|
153
|
+
// list|get|plan` read — so list ≡ resolve by construction. (The doc
|
|
154
|
+
// resolver used to see only the built-ins while the doctor saw both,
|
|
155
|
+
// and `helper get` saw neither.)
|
|
156
|
+
['helper', packHelpers],
|
|
107
157
|
['convention', conventions],
|
|
108
158
|
['contract-template', contractTemplates],
|
|
109
159
|
['migration-profile', migrationProfiles],
|
|
@@ -152,6 +202,11 @@ export function referenceIdsFor(inspection, kind) {
|
|
|
152
202
|
case 'policy':
|
|
153
203
|
// Declarations only — `evaluatePolicy` is the one that RUNS them.
|
|
154
204
|
return listPolicyIds(inspection);
|
|
205
|
+
case 'workspace-profile':
|
|
206
|
+
// THE builtin WorkspaceProfile vocabulary — the same function `shrk
|
|
207
|
+
// profiles list --kind workspace` prints, so list ≡ resolve by
|
|
208
|
+
// construction. Sync and never empty: it can never loud-skip.
|
|
209
|
+
return listWorkspaceProfileEntries(inspection).map((e) => e.id);
|
|
155
210
|
case 'helper':
|
|
156
211
|
case 'convention':
|
|
157
212
|
case 'contract-template':
|
|
@@ -161,9 +216,10 @@ export function referenceIdsFor(inspection, kind) {
|
|
|
161
216
|
case 'scaffold-pattern':
|
|
162
217
|
return asyncIds(inspection, kind);
|
|
163
218
|
case 'command':
|
|
164
|
-
// The command
|
|
165
|
-
// cannot be
|
|
166
|
-
//
|
|
219
|
+
// The command index lives in the CLI package, ABOVE this layer, so it
|
|
220
|
+
// cannot be listed here. Existence goes through the injected resolver
|
|
221
|
+
// (`resolveCommandReference`) — never through a list this layer cannot
|
|
222
|
+
// see, and never through the shape of the string.
|
|
167
223
|
return [];
|
|
168
224
|
default:
|
|
169
225
|
// `file` / `directory` / `symbol` / `package` / `url` are not id
|
|
@@ -180,29 +236,104 @@ export function referenceIdsFor(inspection, kind) {
|
|
|
180
236
|
* to get a gate switched off. Emptiness is repo-dependent (a project may simply
|
|
181
237
|
* have no playbooks), so it cannot be a config-time error; the caller surfaces
|
|
182
238
|
* it as a loud refusal at run time instead.
|
|
239
|
+
*
|
|
240
|
+
* `command` has no list; it can resolve exactly when a resolver was injected.
|
|
241
|
+
* Without one it is reported here — nothing could resolve, so every command
|
|
242
|
+
* would be reported wrong (or, before round 11, every `shrk …` string right).
|
|
183
243
|
*/
|
|
184
244
|
export function emptyReferenceKinds(inspection, kinds) {
|
|
185
|
-
return kinds.filter((kind) => kind
|
|
245
|
+
return kinds.filter((kind) => kind === 'command'
|
|
246
|
+
? !hasCommandResolver(inspection)
|
|
247
|
+
: referenceIdsFor(inspection, kind).length === 0);
|
|
248
|
+
}
|
|
249
|
+
/** True when the CLI injected its command resolver for this inspection. */
|
|
250
|
+
export function hasCommandResolver(inspection) {
|
|
251
|
+
return COMMAND_RESOLVERS.has(inspection);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* True once {@link warmReferenceRegistries} ran for this inspection's root.
|
|
255
|
+
*
|
|
256
|
+
* The cache-backed kinds read EMPTY until then, so a consumer that resolves
|
|
257
|
+
* them (a test runner checking `expectedPlaybooks`) can report "could not look"
|
|
258
|
+
* instead of "your correct id does not exist".
|
|
259
|
+
*/
|
|
260
|
+
export function isReferenceCacheWarm(inspection) {
|
|
261
|
+
return ASYNC_IDS.has(inspection.projectRoot);
|
|
262
|
+
}
|
|
263
|
+
/** Ok / PrefixOnly / NotShrk: the string resolves (or is not ours to judge). */
|
|
264
|
+
export function isCommandResolved(resolution) {
|
|
265
|
+
return (resolution.status === CommandResolutionStatus.Ok ||
|
|
266
|
+
resolution.status === CommandResolutionStatus.PrefixOnly ||
|
|
267
|
+
resolution.status === CommandResolutionStatus.NotShrk);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* THE function every consumer calls to resolve a command string: knowledge
|
|
271
|
+
* `command` references and anchors, the self-config doctor's command probes,
|
|
272
|
+
* agent-test `expectedCommands`, the query resolver.
|
|
273
|
+
*
|
|
274
|
+
* The command index lives in the CLI, above this layer, so the answer comes
|
|
275
|
+
* from the resolver the CLI injected via `warmReferenceRegistries(inspection,
|
|
276
|
+
* { commandResolver })`. Without one the answer is `Unverified` — the string
|
|
277
|
+
* was NOT checked. It used to be `id.startsWith('shrk ')`, which certified
|
|
278
|
+
* every `shrk …` string (including three dead ones in shrk's own knowledge) as
|
|
279
|
+
* a real command, forever.
|
|
280
|
+
*/
|
|
281
|
+
export function resolveCommandReference(inspection, raw, options = {}) {
|
|
282
|
+
const resolver = COMMAND_RESOLVERS.get(inspection);
|
|
283
|
+
if (!resolver) {
|
|
284
|
+
return { status: CommandResolutionStatus.Unverified, reason: COMMAND_INDEX_NOT_INJECTED };
|
|
285
|
+
}
|
|
286
|
+
return resolver(raw, options);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* THE reading of a `command` REFERENCE — a knowledge `command` reference or
|
|
290
|
+
* anchor, an agent test's `expectedCommands`, the `command` reference kind.
|
|
291
|
+
*
|
|
292
|
+
* Such a string names a shrk command, so a bare form is read as one: `doctor`
|
|
293
|
+
* resolves, `frobnicate` is an unknown verb (see {@link ICommandResolveOptions}).
|
|
294
|
+
* knowledge-stale, the self-config doctor's reference probes and the agent-test
|
|
295
|
+
* runner all call THIS — they used to normalise the same string three ways
|
|
296
|
+
* (`frobnicate` was `ok` in one, `not-shrk` in another and `unknown-verb` in
|
|
297
|
+
* the third). Free shell text (a playbook step) goes through
|
|
298
|
+
* {@link resolveCommandReference} without the assumption.
|
|
299
|
+
*/
|
|
300
|
+
export function resolveShrkCommandReference(inspection, command) {
|
|
301
|
+
return resolveCommandReference(inspection, command, SHRK_COMMAND_REFERENCE);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Tri-state existence: `Exists` / `Missing` / `Unverifiable`.
|
|
305
|
+
*
|
|
306
|
+
* For `command`: Ok, PrefixOnly and NotShrk are `Exists`; every Unknown* is
|
|
307
|
+
* `Missing`; no injected resolver is `Unverifiable` (report it as NOT VERIFIED,
|
|
308
|
+
* never as Ok). Read as a command REFERENCE ({@link resolveShrkCommandReference}).
|
|
309
|
+
* Every other kind is `Exists` / `Missing` against its registry.
|
|
310
|
+
*/
|
|
311
|
+
export function referenceIdStatus(inspection, kind, id) {
|
|
312
|
+
if (kind === 'command') {
|
|
313
|
+
const resolution = resolveShrkCommandReference(inspection, id);
|
|
314
|
+
if (resolution.status === CommandResolutionStatus.Unverified) {
|
|
315
|
+
return ReferenceIdStatus.Unverifiable;
|
|
316
|
+
}
|
|
317
|
+
return isCommandResolved(resolution) ? ReferenceIdStatus.Exists : ReferenceIdStatus.Missing;
|
|
318
|
+
}
|
|
319
|
+
return referenceIdsFor(inspection, kind).includes(id)
|
|
320
|
+
? ReferenceIdStatus.Exists
|
|
321
|
+
: ReferenceIdStatus.Missing;
|
|
186
322
|
}
|
|
187
323
|
/** True when `kind`'s ids come from an async-populated cache. */
|
|
188
324
|
export function isCacheBackedKind(kind) {
|
|
189
325
|
return CACHE_BACKED_KINDS.includes(kind);
|
|
190
326
|
}
|
|
191
327
|
/**
|
|
192
|
-
* Whether `id` is registered under `kind
|
|
328
|
+
* Whether `id` is registered under `kind` — `true` only for
|
|
329
|
+
* {@link ReferenceIdStatus.Exists}.
|
|
193
330
|
*
|
|
194
|
-
* `command`
|
|
195
|
-
*
|
|
196
|
-
*
|
|
331
|
+
* For `command` this is `false` when no resolver was injected: an unverifiable
|
|
332
|
+
* command is not an existing one. A caller that must tell "missing" from
|
|
333
|
+
* "could not look" reads {@link referenceIdStatus} instead.
|
|
197
334
|
*/
|
|
198
335
|
export function referenceIdExists(inspection, kind, id) {
|
|
199
|
-
|
|
200
|
-
const catalog = inspection.commandCatalog;
|
|
201
|
-
if (Array.isArray(catalog) && catalog.some((c) => c.id === id))
|
|
202
|
-
return true;
|
|
203
|
-
return id.startsWith('shrk ') || id.startsWith('bun ');
|
|
204
|
-
}
|
|
205
|
-
return referenceIdsFor(inspection, kind).includes(id);
|
|
336
|
+
return referenceIdStatus(inspection, kind, id) === ReferenceIdStatus.Exists;
|
|
206
337
|
}
|
|
207
338
|
/**
|
|
208
339
|
* The union of candidate ids across `kinds`, deduped and sorted.
|
|
@@ -233,7 +364,32 @@ export function referenceIdPool(inspection, kinds) {
|
|
|
233
364
|
export function referenceIdExistsInAnyKind(inspection, id) {
|
|
234
365
|
return ALL_ID_REFERENCE_KINDS.some((kind) => referenceIdsFor(inspection, kind).includes(id));
|
|
235
366
|
}
|
|
236
|
-
/**
|
|
367
|
+
/**
|
|
368
|
+
* EVERY kind whose registry lists `id`, most specific first (the order of
|
|
369
|
+
* {@link ALL_ID_REFERENCE_KINDS}) — empty when nothing does.
|
|
370
|
+
*
|
|
371
|
+
* Ids carry no namespace prefix, so one id can legitimately live in several
|
|
372
|
+
* registries: a rule is also a knowledge entry, and a template may share an id
|
|
373
|
+
* with a construct. "Which namespace did this resolve into?" therefore has a
|
|
374
|
+
* LIST as its honest answer; {@link referenceKindOf} is its first element.
|
|
375
|
+
*/
|
|
376
|
+
export function referenceKindsOf(inspection, id) {
|
|
377
|
+
return ALL_ID_REFERENCE_KINDS.filter((kind) => referenceIdsFor(inspection, kind).includes(id));
|
|
378
|
+
}
|
|
379
|
+
/** The most specific kind that accepted `id`, or `undefined` — for "resolved as what?" output. */
|
|
237
380
|
export function referenceKindOf(inspection, id) {
|
|
238
|
-
return
|
|
381
|
+
return referenceKindsOf(inspection, id)[0];
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* One-shot projection of {@link referenceIdsFor} over every kind, for O(1)
|
|
385
|
+
* membership when a caller resolves many ids at once (the declared
|
|
386
|
+
* cross-reference collector walks every asset). Not a second source: each set
|
|
387
|
+
* is built from `referenceIdsFor`, so list ≡ resolve still holds per kind.
|
|
388
|
+
* Snapshot semantics — rebuild it after a warm.
|
|
389
|
+
*/
|
|
390
|
+
export function referenceIdSets(inspection) {
|
|
391
|
+
const out = new Map();
|
|
392
|
+
for (const kind of ALL_ID_REFERENCE_KINDS)
|
|
393
|
+
out.set(kind, new Set(referenceIdsFor(inspection, kind)));
|
|
394
|
+
return out;
|
|
239
395
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IAssetReference } from '@shrkcrft/core';
|
|
2
|
+
import type { IKnowledgeAnchor } from '@shrkcrft/knowledge';
|
|
3
|
+
import type { ReferenceAssetKind } from './reference-asset-kind.js';
|
|
4
|
+
/**
|
|
5
|
+
* Anything the staleness sweep verifies references for: a knowledge entry, a
|
|
6
|
+
* boundary rule, or a declared policy check. The sweep's per-subject loop is
|
|
7
|
+
* written once against this shape, so every asset kind is checked by the same
|
|
8
|
+
* reference checker — never a second one that drifts.
|
|
9
|
+
*/
|
|
10
|
+
export interface IReferenceSubject {
|
|
11
|
+
readonly assetKind: ReferenceAssetKind;
|
|
12
|
+
readonly id: string;
|
|
13
|
+
/** Where it is declared, relative to the project root, when known. */
|
|
14
|
+
readonly source?: string;
|
|
15
|
+
/** Knowledge `type`, for knowledge subjects. */
|
|
16
|
+
readonly type?: string;
|
|
17
|
+
readonly references: readonly IAssetReference[];
|
|
18
|
+
readonly anchors?: readonly IKnowledgeAnchor[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=reference-subject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-subject.d.ts","sourceRoot":"","sources":["../src/reference-subject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a registration hint's discovery found on the live file system — the
|
|
3
|
+
* same answer `registrations preview` acts on.
|
|
4
|
+
*
|
|
5
|
+
* A doctor's "0 issues" used to be read as "every hint verified", while glob
|
|
6
|
+
* discovery was never checked at all: the hints whose author was LEAST sure of
|
|
7
|
+
* the target got the LEAST verification.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum RegistrationHintDiscoveryStatus {
|
|
10
|
+
/** Exactly one target file (a fixed `targetFile` that exists, or a glob matching one file). */
|
|
11
|
+
Verified = "verified",
|
|
12
|
+
/** A glob matched more than one file — preview refuses to guess. */
|
|
13
|
+
Ambiguous = "ambiguous",
|
|
14
|
+
/** No file: a missing fixed target, a glob matching nothing, or no discovery at all. */
|
|
15
|
+
Dead = "dead",
|
|
16
|
+
/** The discovery walk hit its directory cap, so the candidate set is incomplete. */
|
|
17
|
+
Unverified = "unverified",
|
|
18
|
+
/**
|
|
19
|
+
* No file yet, and every selector that matched nothing is marked
|
|
20
|
+
* `{ pattern, expectEmpty: true }` (round 13): the hint targets what the
|
|
21
|
+
* adopting app does not have yet — accepted (printed), never `dead`.
|
|
22
|
+
*/
|
|
23
|
+
IntendedEmpty = "intended-empty"
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=registration-hint-discovery-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-hint-discovery-status.d.ts","sourceRoot":"","sources":["../src/registration-hint-discovery-status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,+BAA+B;IACzC,+FAA+F;IAC/F,QAAQ,aAAa;IACrB,oEAAoE;IACpE,SAAS,cAAc;IACvB,wFAAwF;IACxF,IAAI,SAAS;IACb,oFAAoF;IACpF,UAAU,eAAe;IACzB;;;;OAIG;IACH,aAAa,mBAAmB;CACjC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a registration hint's discovery found on the live file system — the
|
|
3
|
+
* same answer `registrations preview` acts on.
|
|
4
|
+
*
|
|
5
|
+
* A doctor's "0 issues" used to be read as "every hint verified", while glob
|
|
6
|
+
* discovery was never checked at all: the hints whose author was LEAST sure of
|
|
7
|
+
* the target got the LEAST verification.
|
|
8
|
+
*/
|
|
9
|
+
export var RegistrationHintDiscoveryStatus;
|
|
10
|
+
(function (RegistrationHintDiscoveryStatus) {
|
|
11
|
+
/** Exactly one target file (a fixed `targetFile` that exists, or a glob matching one file). */
|
|
12
|
+
RegistrationHintDiscoveryStatus["Verified"] = "verified";
|
|
13
|
+
/** A glob matched more than one file — preview refuses to guess. */
|
|
14
|
+
RegistrationHintDiscoveryStatus["Ambiguous"] = "ambiguous";
|
|
15
|
+
/** No file: a missing fixed target, a glob matching nothing, or no discovery at all. */
|
|
16
|
+
RegistrationHintDiscoveryStatus["Dead"] = "dead";
|
|
17
|
+
/** The discovery walk hit its directory cap, so the candidate set is incomplete. */
|
|
18
|
+
RegistrationHintDiscoveryStatus["Unverified"] = "unverified";
|
|
19
|
+
/**
|
|
20
|
+
* No file yet, and every selector that matched nothing is marked
|
|
21
|
+
* `{ pattern, expectEmpty: true }` (round 13): the hint targets what the
|
|
22
|
+
* adopting app does not have yet — accepted (printed), never `dead`.
|
|
23
|
+
*/
|
|
24
|
+
RegistrationHintDiscoveryStatus["IntendedEmpty"] = "intended-empty";
|
|
25
|
+
})(RegistrationHintDiscoveryStatus || (RegistrationHintDiscoveryStatus = {}));
|