@shrkcrft/inspector 0.1.0-alpha.29 → 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 +40 -0
- package/dist/code-intelligence-doctor.d.ts.map +1 -1
- package/dist/code-intelligence-doctor.js +86 -12
- 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 +80 -0
- package/dist/doc-references.d.ts.map +1 -0
- package/dist/doc-references.js +269 -0
- 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.d.ts.map +1 -1
- package/dist/fuzzy-impact.js +12 -21
- 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 +145 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +176 -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 +1002 -316
- 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 +14 -0
- package/dist/nearest-id.d.ts.map +1 -0
- package/dist/nearest-id.js +12 -0
- 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 +42 -0
- package/dist/policy-registry.d.ts.map +1 -0
- package/dist/policy-registry.js +131 -0
- 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 +15 -12
- 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 +210 -0
- package/dist/reference-registry.d.ts.map +1 -0
- package/dist/reference-registry.js +395 -0
- 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 +258 -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 +1329 -255
- 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 +65 -309
- 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 +47 -1
- package/dist/sharkcraft-inspector.d.ts.map +1 -1
- package/dist/sharkcraft-inspector.js +278 -29
- 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 -318
- 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,45 @@
|
|
|
1
|
+
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
|
+
import type { IKnowledgeLoadFailure } from './knowledge-load-failure.js';
|
|
3
|
+
/**
|
|
4
|
+
* Where discovery landed, and why — read by any verdict that must refuse to
|
|
5
|
+
* pass over a corpus it never loaded.
|
|
6
|
+
*
|
|
7
|
+
* A corpus check run from a nested package (its own package.json, no
|
|
8
|
+
* `sharkcraft/` folder) resolves that package as the root, loads 0 entries, and
|
|
9
|
+
* used to print `ok=0 stale=0` with exit 0. The disconfirming facts were all on
|
|
10
|
+
* the inspection; nothing put them in front of the reader.
|
|
11
|
+
*/
|
|
12
|
+
export interface IInspectionDiscovery {
|
|
13
|
+
/** The directory discovery started from (the caller's cwd). */
|
|
14
|
+
readonly startDir: string;
|
|
15
|
+
/** The project root the inspection resolved — the nearest ancestor carrying a root marker. */
|
|
16
|
+
readonly resolvedRoot: string;
|
|
17
|
+
/** Which markers made {@link resolvedRoot} a root (`package.json`, `.git`, …). */
|
|
18
|
+
readonly rootMarkers: readonly string[];
|
|
19
|
+
readonly sharkcraftDir: string | null;
|
|
20
|
+
readonly configFile: string | null;
|
|
21
|
+
/** The loader's message when a config file EXISTS but failed to load. */
|
|
22
|
+
readonly configError?: string;
|
|
23
|
+
/** Knowledge entries loaded. */
|
|
24
|
+
readonly entriesLoaded: number;
|
|
25
|
+
/** Knowledge-bearing files the loaders were told about (local + pack; missing ones included). */
|
|
26
|
+
readonly knowledgeFilesAttempted: number;
|
|
27
|
+
/**
|
|
28
|
+
* Knowledge-bearing files whose entries never reached the corpus (failed,
|
|
29
|
+
* timed out, a cached failure, or declared and missing). Non-empty = the
|
|
30
|
+
* corpus is PARTIAL: a stale-check over it is never a pass, and
|
|
31
|
+
* `--allow-empty` never clears it.
|
|
32
|
+
*/
|
|
33
|
+
readonly knowledgeLoadFailures: readonly IKnowledgeLoadFailure[];
|
|
34
|
+
/**
|
|
35
|
+
* When {@link resolvedRoot} has no `sharkcraft/` folder: the nearest ancestor
|
|
36
|
+
* (up to the repository top) that has one — the `--cwd` to rerun with.
|
|
37
|
+
*/
|
|
38
|
+
readonly configuredAncestor?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Describe the inspection's discovery. The ONE reader of "where did discovery
|
|
42
|
+
* land": the stale-check refusal, its JSON, and the MCP stale tool all call it.
|
|
43
|
+
*/
|
|
44
|
+
export declare function describeInspectionDiscovery(inspection: ISharkcraftInspection, startDir?: string): IInspectionDiscovery;
|
|
45
|
+
//# sourceMappingURL=inspection-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspection-discovery.d.ts","sourceRoot":"","sources":["../src/inspection-discovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAqDzE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iGAAiG;IACjG,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,qBAAqB,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,qBAAqB,EACjC,QAAQ,GAAE,MAA+B,GACxC,oBAAoB,CAiBtB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as nodePath from 'node:path';
|
|
2
|
+
import { detectProjectRoot, findConfiguredAncestor } from '@shrkcrft/config';
|
|
3
|
+
/** The loader slots whose entries feed `inspection.knowledgeEntries`. */
|
|
4
|
+
const KNOWLEDGE_LOADER_KINDS = new Set(['knowledge', 'rules', 'paths', 'docs']);
|
|
5
|
+
/** `failed` / `timeout` / `cached-failed` / `missing`, or `ok` for a file whose entries loaded. */
|
|
6
|
+
function loadOutcome(d) {
|
|
7
|
+
if (d.status === 'cached-skip') {
|
|
8
|
+
return d.cachedStatus !== undefined && d.cachedStatus !== 'ok' ? 'cached-failed' : 'ok';
|
|
9
|
+
}
|
|
10
|
+
return d.status;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Every knowledge-bearing file the loaders were told about, and the ones whose
|
|
14
|
+
* entries never reached the corpus — read off `inspection.loaderDiagnostics`,
|
|
15
|
+
* the one record of what each loader did.
|
|
16
|
+
*/
|
|
17
|
+
function knowledgeLoadOutcomes(inspection) {
|
|
18
|
+
const byFile = new Map();
|
|
19
|
+
for (const d of inspection.loaderDiagnostics ?? []) {
|
|
20
|
+
if (!KNOWLEDGE_LOADER_KINDS.has(d.kind))
|
|
21
|
+
continue;
|
|
22
|
+
const key = nodePath.resolve(d.filePath);
|
|
23
|
+
const prior = byFile.get(key);
|
|
24
|
+
// A failure recorded for a file wins over an ok one (never folded into it).
|
|
25
|
+
if (!prior || (loadOutcome(prior) === 'ok' && loadOutcome(d) !== 'ok'))
|
|
26
|
+
byFile.set(key, d);
|
|
27
|
+
}
|
|
28
|
+
const rel = (abs) => {
|
|
29
|
+
const r = nodePath.relative(inspection.projectRoot, abs);
|
|
30
|
+
return r && !r.startsWith('..') && !nodePath.isAbsolute(r) ? r.split(nodePath.sep).join('/') : abs;
|
|
31
|
+
};
|
|
32
|
+
const failures = [];
|
|
33
|
+
for (const d of byFile.values()) {
|
|
34
|
+
const status = loadOutcome(d);
|
|
35
|
+
if (status === 'ok')
|
|
36
|
+
continue;
|
|
37
|
+
failures.push({
|
|
38
|
+
file: rel(d.filePath),
|
|
39
|
+
kind: d.kind,
|
|
40
|
+
status,
|
|
41
|
+
message: d.errorMessage ??
|
|
42
|
+
(status === 'missing' ? 'declared by the config, but the file does not exist' : `the ${d.kind} loader reported ${status}`),
|
|
43
|
+
...(d.packName ? { packName: d.packName } : {}),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
failures.sort((a, b) => a.file.localeCompare(b.file));
|
|
47
|
+
return { attempted: byFile.size, failures };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Describe the inspection's discovery. The ONE reader of "where did discovery
|
|
51
|
+
* land": the stale-check refusal, its JSON, and the MCP stale tool all call it.
|
|
52
|
+
*/
|
|
53
|
+
export function describeInspectionDiscovery(inspection, startDir = inspection.projectRoot) {
|
|
54
|
+
const ancestor = inspection.hasSharkcraftFolder
|
|
55
|
+
? null
|
|
56
|
+
: findConfiguredAncestor(inspection.projectRoot);
|
|
57
|
+
const loads = knowledgeLoadOutcomes(inspection);
|
|
58
|
+
return {
|
|
59
|
+
startDir,
|
|
60
|
+
resolvedRoot: inspection.projectRoot,
|
|
61
|
+
rootMarkers: detectProjectRoot(inspection.projectRoot).markers,
|
|
62
|
+
sharkcraftDir: inspection.sharkcraftDir,
|
|
63
|
+
configFile: inspection.configFile,
|
|
64
|
+
...(inspection.configLoadError ? { configError: inspection.configLoadError.message } : {}),
|
|
65
|
+
entriesLoaded: inspection.knowledgeEntries.length,
|
|
66
|
+
knowledgeFilesAttempted: loads.attempted,
|
|
67
|
+
knowledgeLoadFailures: loads.failures,
|
|
68
|
+
...(ancestor ? { configuredAncestor: ancestor } : {}),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Advisory findings of a staleness sweep. None of them changes the exit code on its own. */
|
|
2
|
+
export declare enum KnowledgeAdvisoryCode {
|
|
3
|
+
/**
|
|
4
|
+
* An entry whose references are all file / directory paths names, in its
|
|
5
|
+
* prose, a symbol one of those files declares — a rename inside the file
|
|
6
|
+
* would leave the entry wrong while every reference still resolves.
|
|
7
|
+
*/
|
|
8
|
+
PathOnlyReference = "path-only-reference",
|
|
9
|
+
/**
|
|
10
|
+
* A boundary rule's `from` glob has a static prefix that does not exist —
|
|
11
|
+
* the rule governs nothing there (implicit reference, `--fail-on implicit`).
|
|
12
|
+
*/
|
|
13
|
+
ImplicitPathMissing = "implicit-path-missing",
|
|
14
|
+
/** Policy checks keep their scope inside `evaluate()`, which cannot be read without running it. */
|
|
15
|
+
PolicyScopeUnverifiable = "policy-scope-unverifiable"
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=knowledge-advisory-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-advisory-code.d.ts","sourceRoot":"","sources":["../src/knowledge-advisory-code.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,oBAAY,qBAAqB;IAC/B;;;;OAIG;IACH,iBAAiB,wBAAwB;IACzC;;;OAGG;IACH,mBAAmB,0BAA0B;IAC7C,mGAAmG;IACnG,uBAAuB,8BAA8B;CACtD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Advisory findings of a staleness sweep. None of them changes the exit code on its own. */
|
|
2
|
+
export var KnowledgeAdvisoryCode;
|
|
3
|
+
(function (KnowledgeAdvisoryCode) {
|
|
4
|
+
/**
|
|
5
|
+
* An entry whose references are all file / directory paths names, in its
|
|
6
|
+
* prose, a symbol one of those files declares — a rename inside the file
|
|
7
|
+
* would leave the entry wrong while every reference still resolves.
|
|
8
|
+
*/
|
|
9
|
+
KnowledgeAdvisoryCode["PathOnlyReference"] = "path-only-reference";
|
|
10
|
+
/**
|
|
11
|
+
* A boundary rule's `from` glob has a static prefix that does not exist —
|
|
12
|
+
* the rule governs nothing there (implicit reference, `--fail-on implicit`).
|
|
13
|
+
*/
|
|
14
|
+
KnowledgeAdvisoryCode["ImplicitPathMissing"] = "implicit-path-missing";
|
|
15
|
+
/** Policy checks keep their scope inside `evaluate()`, which cannot be read without running it. */
|
|
16
|
+
KnowledgeAdvisoryCode["PolicyScopeUnverifiable"] = "policy-scope-unverifiable";
|
|
17
|
+
})(KnowledgeAdvisoryCode || (KnowledgeAdvisoryCode = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** An entry whose `verifiedOn` is older than `--stale-after`. */
|
|
2
|
+
export interface IKnowledgeAgedEntry {
|
|
3
|
+
readonly entryId: string;
|
|
4
|
+
readonly verifiedOn: string;
|
|
5
|
+
/** Whole days from `verifiedOn` to the sweep's `asOf`. */
|
|
6
|
+
readonly ageDays: number;
|
|
7
|
+
/** Where the entry is declared, relative to the project root. */
|
|
8
|
+
readonly source: string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=knowledge-aged-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-aged-entry.d.ts","sourceRoot":"","sources":["../src/knowledge-aged-entry.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* remain.
|
|
16
16
|
*/
|
|
17
17
|
import type { IKnowledgeAnchor, IKnowledgeEntry, IKnowledgeReference } from '@shrkcrft/knowledge';
|
|
18
|
+
import type { IDeclaredXrefReport } from './i-declared-xref-report.js';
|
|
18
19
|
export declare const KNOWLEDGE_AUTHORING_SCHEMA = "sharkcraft.knowledge-authoring/v1";
|
|
19
20
|
export declare enum KnowledgeAuthoringOperation {
|
|
20
21
|
Add = "add",
|
|
@@ -127,8 +128,20 @@ export interface IKnowledgeAuthoringResult {
|
|
|
127
128
|
suggestedDeprecationInstead?: boolean;
|
|
128
129
|
}
|
|
129
130
|
export interface IReverseReference {
|
|
131
|
+
/** The referencing asset's id — a knowledge entry unless {@link sourceKind} says otherwise. */
|
|
130
132
|
fromEntryId: string;
|
|
131
|
-
|
|
133
|
+
/**
|
|
134
|
+
* The referencing asset's kind (`construct`, `boundary-rule`, `template`).
|
|
135
|
+
* Absent for a knowledge entry, so knowledge-only results keep their shape.
|
|
136
|
+
*/
|
|
137
|
+
sourceKind?: string;
|
|
138
|
+
/**
|
|
139
|
+
* The field holding the reference: `related`, `reference.id`,
|
|
140
|
+
* `anchor.targetId`, or any declared cross-reference field
|
|
141
|
+
* (`seeAlso`, `actionHints.relatedKnowledge`, `relatedKnowledge`,
|
|
142
|
+
* `facets.<name>`, …).
|
|
143
|
+
*/
|
|
144
|
+
field: string;
|
|
132
145
|
note?: string;
|
|
133
146
|
}
|
|
134
147
|
export interface IKnowledgeAuthoringPatch {
|
|
@@ -146,6 +159,16 @@ export interface IKnowledgeAuthoringPatchChange {
|
|
|
146
159
|
export interface IKnowledgeAuthoringContext {
|
|
147
160
|
/** Currently loaded entries — used for reverse-ref + duplicate detection. */
|
|
148
161
|
entries: readonly IKnowledgeEntry[];
|
|
162
|
+
/**
|
|
163
|
+
* Every declared cross-reference in the workspace (`buildDeclaredXrefReport`).
|
|
164
|
+
* A removal is refused when ANY asset points at the entry — a construct's
|
|
165
|
+
* `relatedKnowledge`, a boundary rule's `relatedRules`, a template's
|
|
166
|
+
* `related` — not only another knowledge entry. Without it the check covers
|
|
167
|
+
* knowledge only, and the preview says so.
|
|
168
|
+
*/
|
|
169
|
+
declaredXrefs?: IDeclaredXrefReport;
|
|
149
170
|
}
|
|
171
|
+
/** `construct:fx-construct` — or the bare id for a knowledge entry (the shape it always had). */
|
|
172
|
+
export declare function reverseReferenceLabel(rr: IReverseReference): string;
|
|
150
173
|
export declare function buildKnowledgeAuthoringPreview(input: IKnowledgeAuthoringInput, context: IKnowledgeAuthoringContext): IKnowledgeAuthoringResult;
|
|
151
174
|
//# sourceMappingURL=knowledge-authoring.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-authoring.d.ts","sourceRoot":"","sources":["../src/knowledge-authoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E,oBAAY,2BAA2B;IACrC,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,2BAA2B,CAAC;IACvC,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,YAAY;IACZ,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,qCAAqC;IACrC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,yBAAyB;IACzB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iCAAiC;IACjC,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC5C,8BAA8B;IAC9B,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;sCACkC;IAClC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC;qEACiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,gBAAgB,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5F,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrD,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,0BAA0B,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,2BAA2B,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB;6CACyC;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,4BAA4B,CAAC;IACtC,uDAAuD;IACvD,YAAY,EAAE,4BAA4B,CAAC;IAC3C,0CAA0C;IAC1C,SAAS,EAAE,4BAA4B,CAAC;IACxC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,yCAAyC;IACzC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,kEAAkE;IAClE,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,sEAAsE;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iEAAiE;IACjE,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,8DAA8D;IAC9D,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"knowledge-authoring.d.ts","sourceRoot":"","sources":["../src/knowledge-authoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* - Remove always reports reverse references and refuses by default if any
|
|
15
15
|
* remain.
|
|
16
16
|
*/
|
|
17
|
+
import { KNOWLEDGE_BACKED_KINDS, reverseXrefs } from "./declared-cross-references.js";
|
|
17
18
|
export const KNOWLEDGE_AUTHORING_SCHEMA = 'sharkcraft.knowledge-authoring/v1';
|
|
18
19
|
export var KnowledgeAuthoringOperation;
|
|
19
20
|
(function (KnowledgeAuthoringOperation) {
|
|
@@ -55,14 +56,25 @@ function tsObject(value, indent) {
|
|
|
55
56
|
.map((line, idx) => (idx === 0 ? line : indent + line))
|
|
56
57
|
.join('\n'));
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Everything that points at `targetId`. The structured `references[].id` and
|
|
61
|
+
* `anchors[].targetId` are scanned here; every DECLARED cross-reference field
|
|
62
|
+
* (knowledge `related` / `seeAlso` / `supersededBy` / action hints, construct
|
|
63
|
+
* `related*` + declared facets, boundary `related*`, template `related`) comes
|
|
64
|
+
* from THE collector when the caller supplied it — this used to be a private
|
|
65
|
+
* knowledge-only `related` loop, so an entry a construct relied on could be
|
|
66
|
+
* removed without a word.
|
|
67
|
+
*/
|
|
68
|
+
function findReverseReferences(entries, targetId, declaredXrefs) {
|
|
59
69
|
const out = [];
|
|
60
70
|
for (const e of entries) {
|
|
61
71
|
if (e.id === targetId)
|
|
62
72
|
continue;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
73
|
+
if (!declaredXrefs) {
|
|
74
|
+
for (const r of e.related ?? []) {
|
|
75
|
+
if (r === targetId) {
|
|
76
|
+
out.push({ fromEntryId: e.id, field: 'related' });
|
|
77
|
+
}
|
|
66
78
|
}
|
|
67
79
|
}
|
|
68
80
|
for (const ref of e.references ?? []) {
|
|
@@ -76,8 +88,26 @@ function findReverseReferences(entries, targetId) {
|
|
|
76
88
|
}
|
|
77
89
|
}
|
|
78
90
|
}
|
|
91
|
+
if (declaredXrefs) {
|
|
92
|
+
// Only fields that could mean THIS entry: a construct's
|
|
93
|
+
// `relatedTemplates: ['x']` is not a reference to a knowledge entry `x`.
|
|
94
|
+
for (const row of reverseXrefs(declaredXrefs, targetId, KNOWLEDGE_BACKED_KINDS)) {
|
|
95
|
+
if (row.sourceKind === 'knowledge' && row.sourceId === targetId)
|
|
96
|
+
continue;
|
|
97
|
+
out.push({
|
|
98
|
+
fromEntryId: row.sourceId,
|
|
99
|
+
...(row.sourceKind !== 'knowledge' ? { sourceKind: row.sourceKind } : {}),
|
|
100
|
+
field: row.field,
|
|
101
|
+
...(row.facetId ? { note: `facet value ${row.facetId}` } : {}),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
79
105
|
return out;
|
|
80
106
|
}
|
|
107
|
+
/** `construct:fx-construct` — or the bare id for a knowledge entry (the shape it always had). */
|
|
108
|
+
export function reverseReferenceLabel(rr) {
|
|
109
|
+
return rr.sourceKind && rr.sourceKind !== 'knowledge' ? `${rr.sourceKind}:${rr.fromEntryId}` : rr.fromEntryId;
|
|
110
|
+
}
|
|
81
111
|
function buildEntryFromAdd(input) {
|
|
82
112
|
return {
|
|
83
113
|
id: input.id,
|
|
@@ -266,7 +296,7 @@ function buildExplainer(input, result) {
|
|
|
266
296
|
lines.push(`## Reverse references`);
|
|
267
297
|
lines.push('');
|
|
268
298
|
for (const rr of result.reverseReferences) {
|
|
269
|
-
lines.push(`- \`${rr
|
|
299
|
+
lines.push(`- \`${reverseReferenceLabel(rr)}\` → \`${rr.field}\`${rr.note ? ` — ${rr.note}` : ''}`);
|
|
270
300
|
}
|
|
271
301
|
lines.push('');
|
|
272
302
|
}
|
|
@@ -453,15 +483,24 @@ export function buildKnowledgeAuthoringPreview(input, context) {
|
|
|
453
483
|
refused.explainer = files.explainer;
|
|
454
484
|
return refused;
|
|
455
485
|
}
|
|
456
|
-
const reverseReferences = findReverseReferences(context.entries, input.id);
|
|
486
|
+
const reverseReferences = findReverseReferences(context.entries, input.id, context.declaredXrefs);
|
|
487
|
+
if (!context.declaredXrefs) {
|
|
488
|
+
// An unmeasured "no references" must not read as a clean one.
|
|
489
|
+
warnings.push('reverse references checked in knowledge only — constructs / boundaries / templates were not consulted (pass declaredXrefs from buildDeclaredXrefReport).');
|
|
490
|
+
}
|
|
491
|
+
const fromOtherKinds = reverseReferences.filter((r) => r.sourceKind !== undefined && r.sourceKind !== 'knowledge').length;
|
|
457
492
|
if (reverseReferences.length > 0 && !input.forcePreview) {
|
|
493
|
+
const n = reverseReferences.length;
|
|
494
|
+
const refusal = fromOtherKinds === 0
|
|
495
|
+
? `Refused: ${n} other entr${n === 1 ? 'y references' : 'ies reference'} "${input.id}".`
|
|
496
|
+
: `Refused: ${n} declared reference${n === 1 ? '' : 's'} point${n === 1 ? 's' : ''} at "${input.id}" — ${n - fromOtherKinds} from knowledge, ${fromOtherKinds} from constructs / boundary rules / templates.`;
|
|
458
497
|
const refused = {
|
|
459
498
|
schema: KNOWLEDGE_AUTHORING_SCHEMA,
|
|
460
499
|
generatedAt: nowIso(),
|
|
461
500
|
operation: input.operation,
|
|
462
501
|
entryId: input.id,
|
|
463
502
|
ok: false,
|
|
464
|
-
refusal:
|
|
503
|
+
refusal: `${refusal} Pass --force-preview to preview removal anyway, or prefer deprecation via \`shrk knowledge update ${input.id} --mark-deprecated\`.`,
|
|
465
504
|
tsDraft: emptyDraftFile(input.id, input.operation, 'typescript'),
|
|
466
505
|
jsonManifest: emptyDraftFile(input.id, input.operation, 'json'),
|
|
467
506
|
explainer: emptyDraftFile(input.id, input.operation, 'markdown'),
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { KnowledgeEntryVerdict } from './knowledge-entry-verdict.js';
|
|
2
|
+
import type { KnowledgeUnverifiableReason } from './knowledge-unverifiable-reason.js';
|
|
3
|
+
/** One entry in scope, classified — the unit the stale-check's coverage counts. */
|
|
4
|
+
export interface IKnowledgeEntryVerdictRecord {
|
|
5
|
+
readonly entryId: string;
|
|
6
|
+
readonly verdict: KnowledgeEntryVerdict;
|
|
7
|
+
/** Set when {@link verdict} is `unverifiable`. */
|
|
8
|
+
readonly reason?: KnowledgeUnverifiableReason;
|
|
9
|
+
/**
|
|
10
|
+
* Where the entry is declared, relative to the project root
|
|
11
|
+
* (`sharkcraft/rules.ts`) — so the fix for an unverifiable entry names the
|
|
12
|
+
* file to edit. `(unknown source)` when the loader recorded none.
|
|
13
|
+
*/
|
|
14
|
+
readonly source: string;
|
|
15
|
+
/** The entry's knowledge `type` (`rule`, `path`, `technical`, …). */
|
|
16
|
+
readonly type: string;
|
|
17
|
+
/** References + anchors whose outcome was a real check (ok / stale / missing). */
|
|
18
|
+
readonly checkable: number;
|
|
19
|
+
/** Of {@link checkable}, how many did not resolve (stale / missing). */
|
|
20
|
+
readonly failing: number;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=knowledge-entry-verdict-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-entry-verdict-record.d.ts","sourceRoot":"","sources":["../src/knowledge-entry-verdict-record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF,mFAAmF;AACnF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entry's verdict in the staleness sweep — three buckets, never one.
|
|
3
|
+
*
|
|
4
|
+
* The sweep used to report only reference-level counts, so an entry that
|
|
5
|
+
* declared NO references contributed nothing and was folded into the healthy
|
|
6
|
+
* total: the less verifiable a corpus was, the healthier it looked. An entry
|
|
7
|
+
* the check could not examine is its own bucket, reported with its id.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum KnowledgeEntryVerdict {
|
|
10
|
+
/** At least one reference / anchor was checked, and every checked one resolved. */
|
|
11
|
+
Verified = "verified",
|
|
12
|
+
/** At least one checked reference / anchor did not resolve. */
|
|
13
|
+
Stale = "stale",
|
|
14
|
+
/** Nothing about this entry could be checked — see its reason. */
|
|
15
|
+
Unverifiable = "unverifiable"
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=knowledge-entry-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-entry-verdict.d.ts","sourceRoot":"","sources":["../src/knowledge-entry-verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,qBAAqB;IAC/B,mFAAmF;IACnF,QAAQ,aAAa;IACrB,+DAA+D;IAC/D,KAAK,UAAU;IACf,kEAAkE;IAClE,YAAY,iBAAiB;CAC9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One entry's verdict in the staleness sweep — three buckets, never one.
|
|
3
|
+
*
|
|
4
|
+
* The sweep used to report only reference-level counts, so an entry that
|
|
5
|
+
* declared NO references contributed nothing and was folded into the healthy
|
|
6
|
+
* total: the less verifiable a corpus was, the healthier it looked. An entry
|
|
7
|
+
* the check could not examine is its own bucket, reported with its id.
|
|
8
|
+
*/
|
|
9
|
+
export var KnowledgeEntryVerdict;
|
|
10
|
+
(function (KnowledgeEntryVerdict) {
|
|
11
|
+
/** At least one reference / anchor was checked, and every checked one resolved. */
|
|
12
|
+
KnowledgeEntryVerdict["Verified"] = "verified";
|
|
13
|
+
/** At least one checked reference / anchor did not resolve. */
|
|
14
|
+
KnowledgeEntryVerdict["Stale"] = "stale";
|
|
15
|
+
/** Nothing about this entry could be checked — see its reason. */
|
|
16
|
+
KnowledgeEntryVerdict["Unverifiable"] = "unverifiable";
|
|
17
|
+
})(KnowledgeEntryVerdict || (KnowledgeEntryVerdict = {}));
|
|
@@ -22,6 +22,12 @@ export interface IKnowledgeGraph {
|
|
|
22
22
|
edges: IGraphEdge[];
|
|
23
23
|
/** Convenience: lookup by composite id (kind:id). */
|
|
24
24
|
byId: ReadonlyMap<string, IGraphNode>;
|
|
25
|
+
/**
|
|
26
|
+
* Declared edges NOT drawn because an endpoint is not a node of this graph
|
|
27
|
+
* (a dangling id, or a kind the graph does not model). A shrunken graph says
|
|
28
|
+
* it shrank — `shrk self-config xrefs --dangling-only` lists the ids.
|
|
29
|
+
*/
|
|
30
|
+
droppedEdges?: number;
|
|
25
31
|
}
|
|
26
32
|
/**
|
|
27
33
|
* Build the full SharkCraft knowledge graph for the current inspection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,KAAK,CAAC;AAEV,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,qDAAqD;IACrD,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../src/knowledge-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,KAAK,CAAC;AAEV,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,qDAAqD;IACrD,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,CA0RtF;AAED,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE;QAAE,QAAQ,EAAE,iBAAiB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAC7C,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1C,UAAU,CA+DZ;AAgDD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxC;IACD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,GAAG,IAAI,CA+BP"}
|
package/dist/knowledge-graph.js
CHANGED
|
@@ -9,6 +9,7 @@ export function buildKnowledgeGraph(inspection) {
|
|
|
9
9
|
const nodes = [];
|
|
10
10
|
const edges = [];
|
|
11
11
|
const byId = new Map();
|
|
12
|
+
let droppedEdges = 0;
|
|
12
13
|
function addNode(n) {
|
|
13
14
|
const key = nodeKey(n.kind, n.id);
|
|
14
15
|
if (byId.has(key))
|
|
@@ -19,10 +20,12 @@ export function buildKnowledgeGraph(inspection) {
|
|
|
19
20
|
function addEdge(from, to, relation, why) {
|
|
20
21
|
const fromKey = nodeKey(from.kind, from.id);
|
|
21
22
|
const toKey = nodeKey(to.kind, to.id);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (!byId.has(fromKey))
|
|
23
|
+
// An edge to a node we didn't see is not drawn — but it is COUNTED, so the
|
|
24
|
+
// graph never reads as complete while it silently lost edges.
|
|
25
|
+
if (!byId.has(toKey) || !byId.has(fromKey)) {
|
|
26
|
+
droppedEdges += 1;
|
|
25
27
|
return;
|
|
28
|
+
}
|
|
26
29
|
edges.push({ from: fromKey, to: toKey, relation, why });
|
|
27
30
|
}
|
|
28
31
|
function sourceOf(map, id) {
|
|
@@ -142,8 +145,10 @@ export function buildKnowledgeGraph(inspection) {
|
|
|
142
145
|
: byId.has(kKey)
|
|
143
146
|
? 'knowledge'
|
|
144
147
|
: null;
|
|
145
|
-
if (!targetKind)
|
|
148
|
+
if (!targetKind) {
|
|
149
|
+
droppedEdges += 1;
|
|
146
150
|
continue;
|
|
151
|
+
}
|
|
147
152
|
addEdge({ kind: 'pipeline', id: pipeline.id }, { kind: targetKind, id: ref }, 'pipeline-step-references', `step ${step.id} references`);
|
|
148
153
|
}
|
|
149
154
|
}
|
|
@@ -157,11 +162,17 @@ export function buildKnowledgeGraph(inspection) {
|
|
|
157
162
|
addEdge({ kind: 'boundary', id: r.id }, { kind: 'path', id }, 'boundary-related-path', 'relatedPathConventions');
|
|
158
163
|
}
|
|
159
164
|
}
|
|
160
|
-
// Pack contributions: pack → its contributed items.
|
|
165
|
+
// Pack contributions: pack → its contributed items. A contributed rule or
|
|
166
|
+
// path convention is a `rule:` / `path:` node, not a `knowledge:` one — the
|
|
167
|
+
// edge used to target `knowledge:<id>` and was silently dropped for both.
|
|
168
|
+
const entryKinds = new Map();
|
|
169
|
+
for (const e of inspection.knowledgeEntries) {
|
|
170
|
+
entryKinds.set(e.id, String(e.type) === 'rule' ? 'rule' : String(e.type) === 'path' ? 'path' : 'knowledge');
|
|
171
|
+
}
|
|
161
172
|
for (const [id, src] of inspection.entrySources) {
|
|
162
173
|
if (src.type !== 'pack' || !src.packageName)
|
|
163
174
|
continue;
|
|
164
|
-
addEdge({ kind: 'pack', id: src.packageName }, { kind: 'knowledge', id }, 'pack-contributes', 'knowledge entry');
|
|
175
|
+
addEdge({ kind: 'pack', id: src.packageName }, { kind: entryKinds.get(id) ?? 'knowledge', id }, 'pack-contributes', 'knowledge entry');
|
|
165
176
|
}
|
|
166
177
|
for (const [id, src] of inspection.templateSources) {
|
|
167
178
|
if (src.type !== 'pack' || !src.packageName)
|
|
@@ -183,7 +194,7 @@ export function buildKnowledgeGraph(inspection) {
|
|
|
183
194
|
continue;
|
|
184
195
|
addEdge({ kind: 'pack', id: src.packageName }, { kind: 'boundary', id }, 'pack-contributes', 'boundary rule');
|
|
185
196
|
}
|
|
186
|
-
return { nodes, edges, byId };
|
|
197
|
+
return { nodes, edges, byId, droppedEdges };
|
|
187
198
|
}
|
|
188
199
|
/**
|
|
189
200
|
* Find the shortest directed path (BFS) between two graph nodes. Edges are
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-kind counts of a staleness sweep — by asset kind (knowledge / boundary
|
|
3
|
+
* rule / policy) and by knowledge entry `type`.
|
|
4
|
+
*
|
|
5
|
+
* `scanned: 0` means the kind was NOT IN THE SWEEP, which a renderer must say
|
|
6
|
+
* in words — a row of zeros cannot tell "clean" from "never looked".
|
|
7
|
+
*/
|
|
8
|
+
export interface IKnowledgeKindBucket {
|
|
9
|
+
/** Subjects of this kind the sweep visited. */
|
|
10
|
+
scanned: number;
|
|
11
|
+
/** Of those, how many declare no references / anchors at all. */
|
|
12
|
+
zeroReferences: number;
|
|
13
|
+
/** References + anchors checked for this kind. */
|
|
14
|
+
referencesChecked: number;
|
|
15
|
+
verified: number;
|
|
16
|
+
stale: number;
|
|
17
|
+
unverifiable: number;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=knowledge-kind-bucket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-kind-bucket.d.ts","sourceRoot":"","sources":["../src/knowledge-kind-bucket.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One knowledge-bearing file (`knowledgeFiles` / `ruleFiles` / `pathFiles` /
|
|
3
|
+
* `docsFiles`, local or pack-contributed) whose entries never reached the
|
|
4
|
+
* corpus — it failed to import, timed out, was skipped as a cached failure, or
|
|
5
|
+
* is declared by the config and does not exist.
|
|
6
|
+
*
|
|
7
|
+
* Read off `inspection.loaderDiagnostics` (the ONE record of what each loader
|
|
8
|
+
* did) by `describeInspectionDiscovery`. A corpus verdict over a load failure
|
|
9
|
+
* examined part of what it was told to, so it is never a pass.
|
|
10
|
+
*/
|
|
11
|
+
export interface IKnowledgeLoadFailure {
|
|
12
|
+
/** Project-relative when inside the project, else absolute. */
|
|
13
|
+
readonly file: string;
|
|
14
|
+
/** The loader slot (`knowledge` / `rules` / `paths` / `docs`). */
|
|
15
|
+
readonly kind: string;
|
|
16
|
+
/** `failed` / `timeout` / `cached-failed` / `missing`. */
|
|
17
|
+
readonly status: string;
|
|
18
|
+
/** The loader's message (the import error), or why nothing was read. */
|
|
19
|
+
readonly message: string;
|
|
20
|
+
/** Set for a pack-contributed file. */
|
|
21
|
+
readonly packName?: string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=knowledge-load-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-load-failure.d.ts","sourceRoot":"","sources":["../src/knowledge-load-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Per-reference-kind outcome counts of a staleness sweep (`file`, `symbol`, `template`, …). */
|
|
2
|
+
export interface IKnowledgeReferenceKindBucket {
|
|
3
|
+
checked: number;
|
|
4
|
+
ok: number;
|
|
5
|
+
stale: number;
|
|
6
|
+
missing: number;
|
|
7
|
+
unknown: number;
|
|
8
|
+
/** Malformed references of this kind (a missing required field) — never checked. */
|
|
9
|
+
invalid: number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=knowledge-reference-kind-bucket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-reference-kind-bucket.d.ts","sourceRoot":"","sources":["../src/knowledge-reference-kind-bucket.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IAssetReference } from '@shrkcrft/core';
|
|
2
|
+
import type { KnowledgeAdvisoryCode } from './knowledge-advisory-code.js';
|
|
3
|
+
import type { ReferenceAssetKind } from './reference-asset-kind.js';
|
|
4
|
+
/** One advisory from a staleness sweep — reported, never gating by itself. */
|
|
5
|
+
export interface IKnowledgeStaleAdvisory {
|
|
6
|
+
readonly code: KnowledgeAdvisoryCode;
|
|
7
|
+
/** The entry / boundary rule / policy the advisory is about. */
|
|
8
|
+
readonly subjectId: string;
|
|
9
|
+
readonly assetKind: ReferenceAssetKind;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
/** A reference that would verify the claim, ready to paste into `references[]`. */
|
|
12
|
+
readonly suggestion?: IAssetReference;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=knowledge-stale-advisory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-stale-advisory.d.ts","sourceRoot":"","sources":["../src/knowledge-stale-advisory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The three entry buckets of a staleness sweep, over the entries in scope.
|
|
3
|
+
*
|
|
4
|
+
* `verified + stale + unverifiable === entriesInScope`, always. The CLI renders
|
|
5
|
+
* the unverifiable count AND its percentage on the summary line where a bare
|
|
6
|
+
* `0 stale` used to sit, and turns {@link referencedRatio} into the verdict's
|
|
7
|
+
* coverage (`examined` = verified + stale).
|
|
8
|
+
*/
|
|
9
|
+
export interface IKnowledgeStaleCoverage {
|
|
10
|
+
readonly entriesInScope: number;
|
|
11
|
+
readonly verified: number;
|
|
12
|
+
readonly stale: number;
|
|
13
|
+
readonly unverifiable: number;
|
|
14
|
+
/** `unverifiable / entriesInScope × 100`, one decimal place; 0 for an empty scope. */
|
|
15
|
+
readonly unverifiablePct: number;
|
|
16
|
+
/** `(verified + stale) / entriesInScope` — the share the check could examine; 0 for an empty scope. */
|
|
17
|
+
readonly referencedRatio: number;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=knowledge-stale-coverage.d.ts.map
|