@shrkcrft/inspector 0.1.0-alpha.30 → 0.1.0-alpha.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acceptance-replay.js +1 -1
- package/dist/agent-contract-templates.js +6 -6
- package/dist/agent-contract.d.ts.map +1 -1
- package/dist/agent-contract.js +13 -8
- package/dist/agent-orchestration.js +2 -2
- package/dist/agent-task-prep.d.ts +16 -0
- package/dist/agent-task-prep.d.ts.map +1 -1
- package/dist/agent-task-prep.js +51 -4
- package/dist/ai-readiness.d.ts.map +1 -1
- package/dist/ai-readiness.js +21 -3
- package/dist/architecture-map.d.ts +16 -0
- package/dist/architecture-map.d.ts.map +1 -1
- package/dist/architecture-map.js +42 -26
- package/dist/area-explore.d.ts +2 -2
- package/dist/area-explore.d.ts.map +1 -1
- package/dist/area-explore.js +36 -16
- package/dist/area-map.d.ts +56 -11
- package/dist/area-map.d.ts.map +1 -1
- package/dist/area-map.js +106 -25
- package/dist/asset-doctor-proposed-exit.d.ts +21 -0
- package/dist/asset-doctor-proposed-exit.d.ts.map +1 -0
- package/dist/asset-doctor-proposed-exit.js +22 -0
- package/dist/asset-provenance.js +1 -1
- package/dist/boundaries-changed-only.d.ts +24 -1
- package/dist/boundaries-changed-only.d.ts.map +1 -1
- package/dist/boundaries-changed-only.js +12 -2
- package/dist/boundary-check-options.model.d.ts +40 -0
- package/dist/boundary-check-options.model.d.ts.map +1 -0
- package/dist/boundary-check-options.model.js +1 -0
- package/dist/boundary-check-result.model.d.ts +89 -0
- package/dist/boundary-check-result.model.d.ts.map +1 -0
- package/dist/boundary-check-result.model.js +1 -0
- package/dist/boundary-configuration-status.d.ts +38 -0
- package/dist/boundary-configuration-status.d.ts.map +1 -0
- package/dist/boundary-configuration-status.js +118 -0
- package/dist/boundary-configuration-status.model.d.ts +37 -0
- package/dist/boundary-configuration-status.model.d.ts.map +1 -0
- package/dist/boundary-configuration-status.model.js +1 -0
- package/dist/boundary-load-issue.model.d.ts +30 -0
- package/dist/boundary-load-issue.model.d.ts.map +1 -0
- package/dist/boundary-load-issue.model.js +1 -0
- package/dist/boundary-rule-check.model.d.ts +44 -0
- package/dist/boundary-rule-check.model.d.ts.map +1 -0
- package/dist/boundary-rule-check.model.js +1 -0
- package/dist/boundary-rule-invalidation.model.d.ts +31 -0
- package/dist/boundary-rule-invalidation.model.d.ts.map +1 -0
- package/dist/boundary-rule-invalidation.model.js +1 -0
- package/dist/boundary-rule-set-diff.model.d.ts +75 -0
- package/dist/boundary-rule-set-diff.model.d.ts.map +1 -0
- package/dist/boundary-rule-set-diff.model.js +1 -0
- package/dist/boundary-rule-sources.d.ts +28 -0
- package/dist/boundary-rule-sources.d.ts.map +1 -0
- package/dist/boundary-rule-sources.js +110 -0
- package/dist/boundary-stale-exception-finding.model.d.ts +12 -0
- package/dist/boundary-stale-exception-finding.model.d.ts.map +1 -0
- package/dist/boundary-stale-exception-finding.model.js +1 -0
- package/dist/boundary-unit-liveness.d.ts +35 -0
- package/dist/boundary-unit-liveness.d.ts.map +1 -0
- package/dist/boundary-unit-liveness.js +71 -0
- package/dist/change-intent.d.ts +3 -0
- package/dist/change-intent.d.ts.map +1 -1
- package/dist/change-intent.js +61 -27
- package/dist/changes-summary.d.ts.map +1 -1
- package/dist/changes-summary.js +19 -9
- package/dist/ci-integrity-report.js +1 -1
- package/dist/ci-predict.d.ts.map +1 -1
- package/dist/ci-predict.js +38 -5
- package/dist/code-intelligence-doctor.d.ts +6 -0
- package/dist/code-intelligence-doctor.d.ts.map +1 -1
- package/dist/code-intelligence-doctor.js +22 -7
- package/dist/command-recommender.d.ts +45 -2
- package/dist/command-recommender.d.ts.map +1 -1
- package/dist/command-recommender.js +41 -263
- package/dist/command-resolution-status.d.ts +44 -0
- package/dist/command-resolution-status.d.ts.map +1 -0
- package/dist/command-resolution-status.js +44 -0
- package/dist/command-safety-level.d.ts +15 -0
- package/dist/command-safety-level.d.ts.map +1 -0
- package/dist/command-safety-level.js +43 -0
- package/dist/command-taxonomy.js +1 -1
- package/dist/compliance-evidence.js +1 -1
- package/dist/compliance-profiles.js +1 -1
- package/dist/construct-registry.d.ts +40 -0
- package/dist/construct-registry.d.ts.map +1 -1
- package/dist/construct-registry.js +186 -82
- package/dist/context-tuning.d.ts +4 -0
- package/dist/context-tuning.d.ts.map +1 -1
- package/dist/context-tuning.js +10 -7
- package/dist/contract-template-registry.d.ts +10 -0
- package/dist/contract-template-registry.d.ts.map +1 -1
- package/dist/contract-template-registry.js +59 -33
- package/dist/contribution-kind.d.ts +52 -0
- package/dist/contribution-kind.d.ts.map +1 -0
- package/dist/contribution-kind.js +52 -0
- package/dist/contribution-load-failures.d.ts +106 -0
- package/dist/contribution-load-failures.d.ts.map +1 -0
- package/dist/contribution-load-failures.js +575 -0
- package/dist/contributions-report.d.ts +28 -0
- package/dist/contributions-report.d.ts.map +1 -0
- package/dist/contributions-report.js +242 -0
- package/dist/convention-registry.d.ts +22 -0
- package/dist/convention-registry.d.ts.map +1 -1
- package/dist/convention-registry.js +79 -39
- package/dist/coverage-report.d.ts.map +1 -1
- package/dist/coverage-report.js +6 -6
- package/dist/custom-checks.d.ts +60 -1
- package/dist/custom-checks.d.ts.map +1 -1
- package/dist/custom-checks.js +159 -6
- package/dist/dashboard/dashboard-data.d.ts +6 -0
- package/dist/dashboard/dashboard-data.d.ts.map +1 -1
- package/dist/dashboard/dashboard-data.js +99 -8
- package/dist/dashboard/dashboard-knowledge.d.ts.map +1 -1
- package/dist/dashboard/dashboard-knowledge.js +14 -2
- package/dist/decision-records.d.ts +20 -0
- package/dist/decision-records.d.ts.map +1 -1
- package/dist/decision-records.js +68 -20
- package/dist/declared-cross-references.d.ts +61 -0
- package/dist/declared-cross-references.d.ts.map +1 -0
- package/dist/declared-cross-references.js +550 -0
- package/dist/declared-gate-plane-rules.d.ts +24 -0
- package/dist/declared-gate-plane-rules.d.ts.map +1 -0
- package/dist/declared-gate-plane-rules.js +39 -0
- package/dist/declared-reference-coverage.d.ts +27 -0
- package/dist/declared-reference-coverage.d.ts.map +1 -0
- package/dist/declared-reference-coverage.js +50 -0
- package/dist/declared-xref-status.d.ts +19 -0
- package/dist/declared-xref-status.d.ts.map +1 -0
- package/dist/declared-xref-status.js +19 -0
- package/dist/delegate-pack-recipes.d.ts +13 -2
- package/dist/delegate-pack-recipes.d.ts.map +1 -1
- package/dist/delegate-pack-recipes.js +45 -14
- package/dist/demo-package.js +2 -2
- package/dist/demo-script.js +2 -2
- package/dist/demo-workflow.js +3 -3
- package/dist/dev-cycle.js +1 -1
- package/dist/dev-session.js +1 -1
- package/dist/doc-references.d.ts +23 -2
- package/dist/doc-references.d.ts.map +1 -1
- package/dist/doc-references.js +96 -17
- package/dist/doctor-result.d.ts +8 -0
- package/dist/doctor-result.d.ts.map +1 -1
- package/dist/doctor-verdict-kind.d.ts +19 -0
- package/dist/doctor-verdict-kind.d.ts.map +1 -0
- package/dist/doctor-verdict-kind.js +19 -0
- package/dist/doctor-verdict.d.ts +18 -0
- package/dist/doctor-verdict.d.ts.map +1 -0
- package/dist/doctor-verdict.js +28 -0
- package/dist/drift.d.ts +17 -0
- package/dist/drift.d.ts.map +1 -1
- package/dist/drift.js +40 -10
- package/dist/entrypoint-matrix.d.ts.map +1 -1
- package/dist/entrypoint-matrix.js +4 -1
- package/dist/feedback-ingestion.d.ts +28 -2
- package/dist/feedback-ingestion.d.ts.map +1 -1
- package/dist/feedback-ingestion.js +68 -19
- package/dist/fix-preview.d.ts.map +1 -1
- package/dist/fix-preview.js +9 -5
- package/dist/framework-extractor-outcomes.d.ts +27 -0
- package/dist/framework-extractor-outcomes.d.ts.map +1 -0
- package/dist/framework-extractor-outcomes.js +83 -0
- package/dist/fuzzy-impact.js +1 -1
- package/dist/healing-plan.d.ts.map +1 -1
- package/dist/healing-plan.js +3 -4
- package/dist/helper-catalog.d.ts +25 -0
- package/dist/helper-catalog.d.ts.map +1 -0
- package/dist/helper-catalog.js +91 -0
- package/dist/helper-registry.d.ts.map +1 -1
- package/dist/helper-registry.js +17 -1
- package/dist/helper-view.d.ts +33 -0
- package/dist/helper-view.d.ts.map +1 -0
- package/dist/helper-view.js +1 -0
- package/dist/i-asset-doctor-flags.d.ts +16 -0
- package/dist/i-asset-doctor-flags.d.ts.map +1 -0
- package/dist/i-asset-doctor-flags.js +1 -0
- package/dist/i-command-resolution.d.ts +22 -0
- package/dist/i-command-resolution.d.ts.map +1 -0
- package/dist/i-command-resolution.js +1 -0
- package/dist/i-command-resolve-options.d.ts +24 -0
- package/dist/i-command-resolve-options.d.ts.map +1 -0
- package/dist/i-command-resolve-options.js +1 -0
- package/dist/i-command-safety.d.ts +13 -0
- package/dist/i-command-safety.d.ts.map +1 -0
- package/dist/i-command-safety.js +1 -0
- package/dist/i-contribution-accepted-entry.d.ts +18 -0
- package/dist/i-contribution-accepted-entry.d.ts.map +1 -0
- package/dist/i-contribution-accepted-entry.js +1 -0
- package/dist/i-contribution-entry-rejection.d.ts +21 -0
- package/dist/i-contribution-entry-rejection.d.ts.map +1 -0
- package/dist/i-contribution-entry-rejection.js +1 -0
- package/dist/i-contribution-file-issue.d.ts +18 -0
- package/dist/i-contribution-file-issue.d.ts.map +1 -0
- package/dist/i-contribution-file-issue.js +1 -0
- package/dist/i-contribution-file-report.d.ts +40 -0
- package/dist/i-contribution-file-report.d.ts.map +1 -0
- package/dist/i-contribution-file-report.js +1 -0
- package/dist/i-contribution-file-validation.d.ts +24 -0
- package/dist/i-contribution-file-validation.d.ts.map +1 -0
- package/dist/i-contribution-file-validation.js +1 -0
- package/dist/i-contributions-report.d.ts +31 -0
- package/dist/i-contributions-report.d.ts.map +1 -0
- package/dist/i-contributions-report.js +1 -0
- package/dist/i-declared-xref-field.d.ts +25 -0
- package/dist/i-declared-xref-field.d.ts.map +1 -0
- package/dist/i-declared-xref-field.js +1 -0
- package/dist/i-declared-xref-issue.d.ts +25 -0
- package/dist/i-declared-xref-issue.d.ts.map +1 -0
- package/dist/i-declared-xref-issue.js +1 -0
- package/dist/i-declared-xref-report.d.ts +48 -0
- package/dist/i-declared-xref-report.d.ts.map +1 -0
- package/dist/i-declared-xref-report.js +1 -0
- package/dist/i-declared-xref-row.d.ts +29 -0
- package/dist/i-declared-xref-row.d.ts.map +1 -0
- package/dist/i-declared-xref-row.js +1 -0
- package/dist/i-doctor-verdict.d.ts +10 -0
- package/dist/i-doctor-verdict.d.ts.map +1 -0
- package/dist/i-doctor-verdict.js +1 -0
- package/dist/i-kind-outcomes.d.ts +13 -0
- package/dist/i-kind-outcomes.d.ts.map +1 -0
- package/dist/i-kind-outcomes.js +1 -0
- package/dist/i-pack-doctor-verdict.d.ts +15 -0
- package/dist/i-pack-doctor-verdict.d.ts.map +1 -0
- package/dist/i-pack-doctor-verdict.js +1 -0
- package/dist/i-probed-id-field.d.ts +17 -0
- package/dist/i-probed-id-field.d.ts.map +1 -0
- package/dist/i-probed-id-field.js +1 -0
- package/dist/i-reference-kind-declaration.d.ts +38 -0
- package/dist/i-reference-kind-declaration.d.ts.map +1 -0
- package/dist/i-reference-kind-declaration.js +1 -0
- package/dist/i-reference-warm-options.d.ts +21 -0
- package/dist/i-reference-warm-options.d.ts.map +1 -0
- package/dist/i-reference-warm-options.js +1 -0
- package/dist/i-registry-outcomes.d.ts +16 -0
- package/dist/i-registry-outcomes.d.ts.map +1 -0
- package/dist/i-registry-outcomes.js +1 -0
- package/dist/i-scaffold-pattern-doctor-report.d.ts +35 -0
- package/dist/i-scaffold-pattern-doctor-report.d.ts.map +1 -0
- package/dist/i-scaffold-pattern-doctor-report.js +1 -0
- package/dist/i-search-tuning-key-probe.d.ts +30 -0
- package/dist/i-search-tuning-key-probe.d.ts.map +1 -0
- package/dist/i-search-tuning-key-probe.js +1 -0
- package/dist/i-search-tuning-lint-issue.d.ts +61 -0
- package/dist/i-search-tuning-lint-issue.d.ts.map +1 -0
- package/dist/i-search-tuning-lint-issue.js +1 -0
- package/dist/i-search-tuning-lint-report.d.ts +38 -0
- package/dist/i-search-tuning-lint-report.d.ts.map +1 -0
- package/dist/i-search-tuning-lint-report.js +1 -0
- package/dist/i-unresolvable-reference-scan.d.ts +14 -0
- package/dist/i-unresolvable-reference-scan.d.ts.map +1 -0
- package/dist/i-unresolvable-reference-scan.js +1 -0
- package/dist/i-unresolvable-reference.d.ts +29 -0
- package/dist/i-unresolvable-reference.d.ts.map +1 -0
- package/dist/i-unresolvable-reference.js +1 -0
- package/dist/i-workspace-profile-payload.d.ts +12 -0
- package/dist/i-workspace-profile-payload.d.ts.map +1 -0
- package/dist/i-workspace-profile-payload.js +1 -0
- package/dist/impact-analysis.d.ts +15 -0
- package/dist/impact-analysis.d.ts.map +1 -1
- package/dist/impact-analysis.js +58 -13
- package/dist/impact-render.d.ts.map +1 -1
- package/dist/impact-render.js +22 -0
- package/dist/import-hygiene.d.ts +35 -1
- package/dist/import-hygiene.d.ts.map +1 -1
- package/dist/import-hygiene.js +107 -13
- package/dist/index.d.ts +141 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +172 -0
- package/dist/inspection-discovery.d.ts +45 -0
- package/dist/inspection-discovery.d.ts.map +1 -0
- package/dist/inspection-discovery.js +70 -0
- package/dist/knowledge-advisory-code.d.ts +17 -0
- package/dist/knowledge-advisory-code.d.ts.map +1 -0
- package/dist/knowledge-advisory-code.js +17 -0
- package/dist/knowledge-aged-entry.d.ts +10 -0
- package/dist/knowledge-aged-entry.d.ts.map +1 -0
- package/dist/knowledge-aged-entry.js +1 -0
- package/dist/knowledge-authoring.d.ts +24 -1
- package/dist/knowledge-authoring.d.ts.map +1 -1
- package/dist/knowledge-authoring.js +46 -7
- package/dist/knowledge-entry-verdict-record.d.ts +22 -0
- package/dist/knowledge-entry-verdict-record.d.ts.map +1 -0
- package/dist/knowledge-entry-verdict-record.js +1 -0
- package/dist/knowledge-entry-verdict.d.ts +17 -0
- package/dist/knowledge-entry-verdict.d.ts.map +1 -0
- package/dist/knowledge-entry-verdict.js +17 -0
- package/dist/knowledge-graph.d.ts +6 -0
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +18 -7
- package/dist/knowledge-kind-bucket.d.ts +19 -0
- package/dist/knowledge-kind-bucket.d.ts.map +1 -0
- package/dist/knowledge-kind-bucket.js +1 -0
- package/dist/knowledge-load-failure.d.ts +23 -0
- package/dist/knowledge-load-failure.d.ts.map +1 -0
- package/dist/knowledge-load-failure.js +1 -0
- package/dist/knowledge-reference-kind-bucket.d.ts +11 -0
- package/dist/knowledge-reference-kind-bucket.d.ts.map +1 -0
- package/dist/knowledge-reference-kind-bucket.js +1 -0
- package/dist/knowledge-stale-advisory.d.ts +14 -0
- package/dist/knowledge-stale-advisory.d.ts.map +1 -0
- package/dist/knowledge-stale-advisory.js +1 -0
- package/dist/knowledge-stale-coverage.d.ts +19 -0
- package/dist/knowledge-stale-coverage.d.ts.map +1 -0
- package/dist/knowledge-stale-coverage.js +1 -0
- package/dist/knowledge-stale-gate-flags.d.ts +33 -0
- package/dist/knowledge-stale-gate-flags.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-flags.js +1 -0
- package/dist/knowledge-stale-gate-input.d.ts +46 -0
- package/dist/knowledge-stale-gate-input.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-input.js +1 -0
- package/dist/knowledge-stale-gate-result.d.ts +33 -0
- package/dist/knowledge-stale-gate-result.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-result.js +1 -0
- package/dist/knowledge-stale-gate-rule.d.ts +33 -0
- package/dist/knowledge-stale-gate-rule.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-rule.js +1 -0
- package/dist/knowledge-stale-gate-violation.d.ts +13 -0
- package/dist/knowledge-stale-gate-violation.d.ts.map +1 -0
- package/dist/knowledge-stale-gate-violation.js +1 -0
- package/dist/knowledge-stale-gate.d.ts +83 -0
- package/dist/knowledge-stale-gate.d.ts.map +1 -0
- package/dist/knowledge-stale-gate.js +429 -0
- package/dist/knowledge-stale-quality-gate.d.ts +26 -0
- package/dist/knowledge-stale-quality-gate.d.ts.map +1 -0
- package/dist/knowledge-stale-quality-gate.js +110 -0
- package/dist/knowledge-stale.d.ts +122 -9
- package/dist/knowledge-stale.d.ts.map +1 -1
- package/dist/knowledge-stale.js +996 -291
- package/dist/knowledge-unverifiable-reason.d.ts +12 -0
- package/dist/knowledge-unverifiable-reason.d.ts.map +1 -0
- package/dist/knowledge-unverifiable-reason.js +12 -0
- package/dist/loader-diagnostics.d.ts +14 -2
- package/dist/loader-diagnostics.d.ts.map +1 -1
- package/dist/match-terms.d.ts +48 -0
- package/dist/match-terms.d.ts.map +1 -0
- package/dist/match-terms.js +155 -0
- package/dist/migration-profile-registry.d.ts +10 -0
- package/dist/migration-profile-registry.d.ts.map +1 -1
- package/dist/migration-profile-registry.js +57 -34
- package/dist/migration-readiness.d.ts.map +1 -1
- package/dist/migration-readiness.js +1 -3
- package/dist/nearest-id.d.ts +10 -26
- package/dist/nearest-id.d.ts.map +1 -1
- package/dist/nearest-id.js +9 -59
- package/dist/pack-asset-freshness.d.ts +65 -0
- package/dist/pack-asset-freshness.d.ts.map +1 -0
- package/dist/pack-asset-freshness.js +340 -0
- package/dist/pack-author-ux.d.ts +24 -3
- package/dist/pack-author-ux.d.ts.map +1 -1
- package/dist/pack-author-ux.js +87 -93
- package/dist/pack-contributions-inventory.d.ts +79 -39
- package/dist/pack-contributions-inventory.d.ts.map +1 -1
- package/dist/pack-contributions-inventory.js +443 -286
- package/dist/pack-doctor-verdict.d.ts +29 -0
- package/dist/pack-doctor-verdict.d.ts.map +1 -0
- package/dist/pack-doctor-verdict.js +45 -0
- package/dist/pack-doctor.d.ts +74 -1
- package/dist/pack-doctor.d.ts.map +1 -1
- package/dist/pack-doctor.js +281 -1
- package/dist/pack-helper-plan.d.ts +24 -0
- package/dist/pack-helper-plan.d.ts.map +1 -0
- package/dist/pack-helper-plan.js +77 -0
- package/dist/pack-helper-registry.d.ts +14 -0
- package/dist/pack-helper-registry.d.ts.map +1 -1
- package/dist/pack-helper-registry.js +76 -37
- package/dist/pack-manifest-reader.d.ts +8 -0
- package/dist/pack-manifest-reader.d.ts.map +1 -0
- package/dist/pack-manifest-reader.js +79 -0
- package/dist/pack-release-check.d.ts +14 -1
- package/dist/pack-release-check.d.ts.map +1 -1
- package/dist/pack-release-check.js +23 -1
- package/dist/pack-signature-status.d.ts +18 -6
- package/dist/pack-signature-status.d.ts.map +1 -1
- package/dist/pack-signature-status.js +59 -105
- package/dist/pack-test-runner.d.ts +27 -5
- package/dist/pack-test-runner.d.ts.map +1 -1
- package/dist/pack-test-runner.js +91 -35
- package/dist/pack-typecheck.d.ts +8 -0
- package/dist/pack-typecheck.d.ts.map +1 -0
- package/dist/pack-typecheck.js +76 -0
- package/dist/plan-review.d.ts +2 -0
- package/dist/plan-review.d.ts.map +1 -1
- package/dist/plan-review.js +17 -5
- package/dist/plan-simulation.d.ts.map +1 -1
- package/dist/plan-simulation.js +16 -5
- package/dist/playbook-load-issue.d.ts +16 -0
- package/dist/playbook-load-issue.d.ts.map +1 -0
- package/dist/playbook-load-issue.js +1 -0
- package/dist/playbook-registry.d.ts +32 -1
- package/dist/playbook-registry.d.ts.map +1 -1
- package/dist/playbook-registry.js +144 -55
- package/dist/policy-declaration.d.ts +18 -0
- package/dist/policy-declaration.d.ts.map +1 -0
- package/dist/policy-declaration.js +1 -0
- package/dist/policy-engine.d.ts +8 -0
- package/dist/policy-engine.d.ts.map +1 -1
- package/dist/policy-engine.js +26 -9
- package/dist/policy-overrides.d.ts.map +1 -1
- package/dist/policy-overrides.js +4 -4
- package/dist/policy-registry.d.ts +27 -0
- package/dist/policy-registry.d.ts.map +1 -1
- package/dist/policy-registry.js +87 -20
- package/dist/probed-id-fields.d.ts +21 -0
- package/dist/probed-id-fields.d.ts.map +1 -0
- package/dist/probed-id-fields.js +25 -0
- package/dist/probed-id-source.d.ts +11 -0
- package/dist/probed-id-source.d.ts.map +1 -0
- package/dist/probed-id-source.js +11 -0
- package/dist/profile-registry.d.ts +25 -2
- package/dist/profile-registry.d.ts.map +1 -1
- package/dist/profile-registry.js +59 -6
- package/dist/quality-gate-examination.d.ts +15 -0
- package/dist/quality-gate-examination.d.ts.map +1 -0
- package/dist/quality-gate-examination.js +15 -0
- package/dist/quality-gate-row-status.d.ts +19 -0
- package/dist/quality-gate-row-status.d.ts.map +1 -0
- package/dist/quality-gate-row-status.js +28 -0
- package/dist/quality-gate-status.d.ts +16 -0
- package/dist/quality-gate-status.d.ts.map +1 -0
- package/dist/quality-gate-status.js +16 -0
- package/dist/quality-html.d.ts.map +1 -1
- package/dist/quality-html.js +14 -3
- package/dist/quality-report-coverage.d.ts +26 -0
- package/dist/quality-report-coverage.d.ts.map +1 -0
- package/dist/quality-report-coverage.js +48 -0
- package/dist/quality-report.d.ts +28 -1
- package/dist/quality-report.d.ts.map +1 -1
- package/dist/quality-report.js +263 -35
- package/dist/query-intent-kind.d.ts +18 -0
- package/dist/query-intent-kind.d.ts.map +1 -0
- package/dist/query-intent-kind.js +18 -0
- package/dist/query-intent-result.d.ts +23 -0
- package/dist/query-intent-result.d.ts.map +1 -0
- package/dist/query-intent-result.js +1 -0
- package/dist/query-intent.d.ts +18 -0
- package/dist/query-intent.d.ts.map +1 -0
- package/dist/query-intent.js +336 -0
- package/dist/query-resolver.d.ts +18 -0
- package/dist/query-resolver.d.ts.map +1 -1
- package/dist/query-resolver.js +7 -4
- package/dist/ranked-recommendations.d.ts +36 -0
- package/dist/ranked-recommendations.d.ts.map +1 -0
- package/dist/ranked-recommendations.js +1 -0
- package/dist/ranker-explainability.d.ts.map +1 -1
- package/dist/ranker-explainability.js +38 -10
- package/dist/recommend-recipe.d.ts +17 -0
- package/dist/recommend-recipe.d.ts.map +1 -0
- package/dist/recommend-recipe.js +1 -0
- package/dist/recommend-recipes.d.ts +9 -0
- package/dist/recommend-recipes.d.ts.map +1 -0
- package/dist/recommend-recipes.js +106 -0
- package/dist/recommendation-candidate.d.ts +30 -0
- package/dist/recommendation-candidate.d.ts.map +1 -0
- package/dist/recommendation-candidate.js +1 -0
- package/dist/recommendation-confidence.d.ts +27 -0
- package/dist/recommendation-confidence.d.ts.map +1 -0
- package/dist/recommendation-confidence.js +1 -0
- package/dist/recommendation-ranking-options.d.ts +24 -0
- package/dist/recommendation-ranking-options.d.ts.map +1 -0
- package/dist/recommendation-ranking-options.js +1 -0
- package/dist/recommendation-ranking.d.ts +50 -0
- package/dist/recommendation-ranking.d.ts.map +1 -0
- package/dist/recommendation-ranking.js +527 -0
- package/dist/recommendation-source.d.ts +23 -0
- package/dist/recommendation-source.d.ts.map +1 -0
- package/dist/recommendation-source.js +23 -0
- package/dist/recommendation-suppression.d.ts +14 -0
- package/dist/recommendation-suppression.d.ts.map +1 -0
- package/dist/recommendation-suppression.js +14 -0
- package/dist/reference-asset-kind.d.ts +14 -0
- package/dist/reference-asset-kind.d.ts.map +1 -0
- package/dist/reference-asset-kind.js +14 -0
- package/dist/reference-content-check.d.ts +32 -0
- package/dist/reference-content-check.d.ts.map +1 -0
- package/dist/reference-content-check.js +143 -0
- package/dist/reference-failure.d.ts +31 -0
- package/dist/reference-failure.d.ts.map +1 -0
- package/dist/reference-failure.js +31 -0
- package/dist/reference-id-status.d.ts +15 -0
- package/dist/reference-id-status.d.ts.map +1 -0
- package/dist/reference-id-status.js +15 -0
- package/dist/reference-kind-declarations.d.ts +42 -0
- package/dist/reference-kind-declarations.d.ts.map +1 -0
- package/dist/reference-kind-declarations.js +142 -0
- package/dist/reference-lookup.d.ts +6 -0
- package/dist/reference-lookup.d.ts.map +1 -1
- package/dist/reference-lookup.js +13 -5
- package/dist/reference-registry.d.ts +109 -11
- package/dist/reference-registry.d.ts.map +1 -1
- package/dist/reference-registry.js +186 -30
- package/dist/reference-subject.d.ts +20 -0
- package/dist/reference-subject.d.ts.map +1 -0
- package/dist/reference-subject.js +1 -0
- package/dist/registration-hint-discovery-status.d.ts +25 -0
- package/dist/registration-hint-discovery-status.d.ts.map +1 -0
- package/dist/registration-hint-discovery-status.js +25 -0
- package/dist/registration-hint-registry.d.ts +80 -0
- package/dist/registration-hint-registry.d.ts.map +1 -1
- package/dist/registration-hint-registry.js +356 -138
- package/dist/registry-lifecycle.d.ts +200 -19
- package/dist/registry-lifecycle.d.ts.map +1 -1
- package/dist/registry-lifecycle.js +526 -136
- package/dist/release-readiness.d.ts.map +1 -1
- package/dist/release-readiness.js +10 -7
- package/dist/release-smoke.d.ts.map +1 -1
- package/dist/release-smoke.js +11 -7
- package/dist/report-site.d.ts.map +1 -1
- package/dist/report-site.js +25 -7
- package/dist/repository-intelligence.d.ts.map +1 -1
- package/dist/repository-intelligence.js +3 -2
- package/dist/repository-knowledge-model.d.ts.map +1 -1
- package/dist/repository-knowledge-model.js +18 -5
- package/dist/resolve-project-config.d.ts +64 -0
- package/dist/resolve-project-config.d.ts.map +1 -1
- package/dist/resolve-project-config.js +240 -32
- package/dist/reuse/compute-reuse-coverage.d.ts +29 -0
- package/dist/reuse/compute-reuse-coverage.d.ts.map +1 -0
- package/dist/reuse/compute-reuse-coverage.js +198 -0
- package/dist/reuse/rank-reuse-candidates.d.ts +38 -0
- package/dist/reuse/rank-reuse-candidates.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-candidates.js +212 -0
- package/dist/reuse/rank-reuse-options.d.ts +20 -0
- package/dist/reuse/rank-reuse-options.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-options.js +1 -0
- package/dist/reuse/rank-reuse-suggestions.d.ts +15 -0
- package/dist/reuse/rank-reuse-suggestions.d.ts.map +1 -0
- package/dist/reuse/rank-reuse-suggestions.js +31 -0
- package/dist/reuse/resolve-curated-reuse.d.ts +43 -0
- package/dist/reuse/resolve-curated-reuse.d.ts.map +1 -0
- package/dist/reuse/resolve-curated-reuse.js +115 -0
- package/dist/reuse/reuse-candidate.d.ts +29 -0
- package/dist/reuse/reuse-candidate.d.ts.map +1 -0
- package/dist/reuse/reuse-candidate.js +1 -0
- package/dist/reuse/reuse-coverage-report.d.ts +74 -0
- package/dist/reuse/reuse-coverage-report.d.ts.map +1 -0
- package/dist/reuse/reuse-coverage-report.js +1 -0
- package/dist/reuse/reuse-curated-coverage.d.ts +36 -0
- package/dist/reuse/reuse-curated-coverage.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-coverage.js +1 -0
- package/dist/reuse/reuse-curated-resolution.d.ts +36 -0
- package/dist/reuse/reuse-curated-resolution.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-resolution.js +1 -0
- package/dist/reuse/reuse-curated-status.d.ts +21 -0
- package/dist/reuse/reuse-curated-status.d.ts.map +1 -0
- package/dist/reuse/reuse-curated-status.js +21 -0
- package/dist/reuse/reuse-match-detail.d.ts +15 -0
- package/dist/reuse/reuse-match-detail.d.ts.map +1 -0
- package/dist/reuse/reuse-match-detail.js +1 -0
- package/dist/reuse/reuse-ranking.d.ts +37 -0
- package/dist/reuse/reuse-ranking.d.ts.map +1 -0
- package/dist/reuse/reuse-ranking.js +1 -0
- package/dist/reuse/reuse-suggestion.d.ts +19 -0
- package/dist/reuse/reuse-suggestion.d.ts.map +1 -0
- package/dist/reuse/reuse-suggestion.js +1 -0
- package/dist/reuse/reuse-symbol-lookup.d.ts +28 -0
- package/dist/reuse/reuse-symbol-lookup.d.ts.map +1 -0
- package/dist/reuse/reuse-symbol-lookup.js +1 -0
- package/dist/reuse/reuse-tokenize.d.ts +11 -0
- package/dist/reuse/reuse-tokenize.d.ts.map +1 -0
- package/dist/reuse/reuse-tokenize.js +26 -0
- package/dist/reuse/score-reuse-name.d.ts +16 -0
- package/dist/reuse/score-reuse-name.d.ts.map +1 -0
- package/dist/reuse/score-reuse-name.js +35 -0
- package/dist/reuse/score-reuse-primitive.d.ts +33 -0
- package/dist/reuse/score-reuse-primitive.d.ts.map +1 -0
- package/dist/reuse/score-reuse-primitive.js +92 -0
- package/dist/review-packet.d.ts +2 -0
- package/dist/review-packet.d.ts.map +1 -1
- package/dist/review-packet.js +13 -6
- package/dist/role-views.d.ts.map +1 -1
- package/dist/role-views.js +16 -16
- package/dist/routing-recommends-channels.d.ts +24 -0
- package/dist/routing-recommends-channels.d.ts.map +1 -0
- package/dist/routing-recommends-channels.js +19 -0
- package/dist/run-boundary-check.d.ts +118 -0
- package/dist/run-boundary-check.d.ts.map +1 -0
- package/dist/run-boundary-check.js +592 -0
- package/dist/safety-audit.js +1 -1
- package/dist/scaffold-coverage.js +1 -1
- package/dist/scaffold-pattern-doctor-report.d.ts +19 -0
- package/dist/scaffold-pattern-doctor-report.d.ts.map +1 -0
- package/dist/scaffold-pattern-doctor-report.js +54 -0
- package/dist/scaffold-patterns.d.ts +75 -1
- package/dist/scaffold-patterns.d.ts.map +1 -1
- package/dist/scaffold-patterns.js +375 -84
- package/dist/schema-inventory.d.ts.map +1 -1
- package/dist/schema-inventory.js +4 -3
- package/dist/search-document-id.d.ts +52 -0
- package/dist/search-document-id.d.ts.map +1 -0
- package/dist/search-document-id.js +72 -0
- package/dist/search-document-prefix.d.ts +7 -0
- package/dist/search-document-prefix.d.ts.map +1 -0
- package/dist/search-document-prefix.js +1 -0
- package/dist/search-index.d.ts.map +1 -1
- package/dist/search-index.js +20 -23
- package/dist/search-tuning-explain.d.ts +6 -0
- package/dist/search-tuning-explain.d.ts.map +1 -1
- package/dist/search-tuning-explain.js +19 -17
- package/dist/search-tuning-key-probes.d.ts +16 -0
- package/dist/search-tuning-key-probes.d.ts.map +1 -0
- package/dist/search-tuning-key-probes.js +65 -0
- package/dist/search-tuning-key-resolution.d.ts +25 -0
- package/dist/search-tuning-key-resolution.d.ts.map +1 -0
- package/dist/search-tuning-key-resolution.js +1 -0
- package/dist/search-tuning-key-resolver.d.ts +4 -0
- package/dist/search-tuning-key-resolver.d.ts.map +1 -0
- package/dist/search-tuning-key-resolver.js +107 -0
- package/dist/search-tuning-key-status.d.ts +24 -0
- package/dist/search-tuning-key-status.d.ts.map +1 -0
- package/dist/search-tuning-key-status.js +24 -0
- package/dist/search-tuning-lint.d.ts +9 -0
- package/dist/search-tuning-lint.d.ts.map +1 -0
- package/dist/search-tuning-lint.js +468 -0
- package/dist/search-tuning-registry.d.ts +43 -0
- package/dist/search-tuning-registry.d.ts.map +1 -1
- package/dist/search-tuning-registry.js +214 -49
- package/dist/self-audit.d.ts +12 -0
- package/dist/self-audit.d.ts.map +1 -1
- package/dist/self-audit.js +36 -10
- package/dist/self-config-doctor-v2.d.ts +145 -3
- package/dist/self-config-doctor-v2.d.ts.map +1 -1
- package/dist/self-config-doctor-v2.js +1304 -181
- package/dist/self-config-doctor.d.ts +20 -1
- package/dist/self-config-doctor.d.ts.map +1 -1
- package/dist/self-config-doctor.js +53 -280
- package/dist/settled-unit-states.d.ts +9 -0
- package/dist/settled-unit-states.d.ts.map +1 -0
- package/dist/settled-unit-states.js +14 -0
- package/dist/sharkcraft-inspector.d.ts +34 -0
- package/dist/sharkcraft-inspector.d.ts.map +1 -1
- package/dist/sharkcraft-inspector.js +273 -26
- package/dist/spec/spec-evidence.d.ts.map +1 -1
- package/dist/spec/spec-evidence.js +14 -20
- package/dist/split-identifier.d.ts +21 -0
- package/dist/split-identifier.d.ts.map +1 -0
- package/dist/split-identifier.js +27 -0
- package/dist/start-here.d.ts.map +1 -1
- package/dist/start-here.js +1 -2
- package/dist/substitute-placeholders.d.ts +8 -0
- package/dist/substitute-placeholders.d.ts.map +1 -0
- package/dist/substitute-placeholders.js +9 -0
- package/dist/symbol-index.d.ts +33 -0
- package/dist/symbol-index.d.ts.map +1 -1
- package/dist/symbol-index.js +241 -3
- package/dist/symbol-member-entry.d.ts +26 -0
- package/dist/symbol-member-entry.d.ts.map +1 -0
- package/dist/symbol-member-entry.js +1 -0
- package/dist/symbol-member-kind.d.ts +14 -0
- package/dist/symbol-member-kind.d.ts.map +1 -0
- package/dist/symbol-member-kind.js +14 -0
- package/dist/task-packet.d.ts.map +1 -1
- package/dist/task-packet.js +52 -9
- package/dist/task-ranker.d.ts +8 -0
- package/dist/task-ranker.d.ts.map +1 -1
- package/dist/task-ranker.js +25 -13
- package/dist/task-risk.js +1 -1
- package/dist/task-routing-hint-registry.d.ts +20 -1
- package/dist/task-routing-hint-registry.d.ts.map +1 -1
- package/dist/task-routing-hint-registry.js +186 -42
- package/dist/template-drift.d.ts.map +1 -1
- package/dist/template-drift.js +30 -9
- package/dist/template-lint.d.ts.map +1 -1
- package/dist/template-lint.js +160 -2
- package/dist/term-query.d.ts +10 -0
- package/dist/term-query.d.ts.map +1 -0
- package/dist/term-query.js +1 -0
- package/dist/test-definitions.d.ts +6 -3
- package/dist/test-definitions.d.ts.map +1 -1
- package/dist/test-runner.d.ts +95 -10
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +309 -308
- package/dist/tuning-query-tokens.d.ts +29 -0
- package/dist/tuning-query-tokens.d.ts.map +1 -0
- package/dist/tuning-query-tokens.js +51 -0
- package/dist/typecheck-files.d.ts +36 -0
- package/dist/typecheck-files.d.ts.map +1 -0
- package/dist/typecheck-files.js +158 -0
- package/dist/uncertainty.js +1 -1
- package/dist/universal-search.d.ts.map +1 -1
- package/dist/universal-search.js +5 -3
- package/dist/unregistered-exports.d.ts +19 -0
- package/dist/unregistered-exports.d.ts.map +1 -0
- package/dist/unregistered-exports.js +141 -0
- package/dist/unresolvable-reason.d.ts +11 -0
- package/dist/unresolvable-reason.d.ts.map +1 -0
- package/dist/unresolvable-reason.js +11 -0
- package/dist/upgrade-advisor.d.ts.map +1 -1
- package/dist/upgrade-advisor.js +16 -9
- package/dist/validate-contribution-file.d.ts +4 -0
- package/dist/validate-contribution-file.d.ts.map +1 -0
- package/dist/validate-contribution-file.js +228 -0
- package/dist/why-file.d.ts +3 -0
- package/dist/why-file.d.ts.map +1 -1
- package/dist/why-file.js +7 -3
- package/package.json +17 -17
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { boundaryRuleScope, BoundaryMarkableList, settleBoundaryRule, unreadEntryMatches, withBoundaryRuleSettlement, } from '@shrkcrft/boundaries';
|
|
2
|
+
/**
|
|
3
|
+
* THE unread re-settle of one boundary rule (round 13; V1-U1, prerequisite P2)
|
|
4
|
+
* — `check boundaries` AND `check boundaries --diff-against` both call it, so an
|
|
5
|
+
* unreadable governed file weighs the same on the gate and on the authoring
|
|
6
|
+
* path. It replaces `withProvableDeadUnits`, which silently DROPPED a claim;
|
|
7
|
+
* the diff path had no such step at all.
|
|
8
|
+
*
|
|
9
|
+
* A "matches nothing" / "does not exist yet" fact is a whole-tree claim made
|
|
10
|
+
* from what was READ. Every negative fact an unread entry could refute is
|
|
11
|
+
* withdrawn (made unknown), and the rule is re-settled through the one boundary
|
|
12
|
+
* settle (`settleBoundaryRule`, `@shrkcrft/boundaries`): such a unit reads
|
|
13
|
+
* Unproven — no dead line, no `accepted by expectEmpty`, a gap in its rule's
|
|
14
|
+
* coverage. What is refutable:
|
|
15
|
+
*
|
|
16
|
+
* - a `forbiddenImports` / `allowedImports` claim ("matches no import
|
|
17
|
+
* anywhere") — by any unread entry the rule's `from` globs match;
|
|
18
|
+
* - a `from` / exemption glob claim ("matched 0 files") — by an unread entry
|
|
19
|
+
* that glob matches;
|
|
20
|
+
* - a unit dead by its SHAPE (`cause`) — never: it is proved from the rule alone.
|
|
21
|
+
*
|
|
22
|
+
* A positive fact (a match seen) is kept. The rule's emptiness is re-settled
|
|
23
|
+
* with `readGap`: a rule whose governed files went unread is partial, never
|
|
24
|
+
* "matched nothing" and never failOnEmpty's 1. Unchanged (same object) when
|
|
25
|
+
* nothing is withdrawn and no governed file is unread.
|
|
26
|
+
*/
|
|
27
|
+
export function boundaryUnitLiveness(detail, rule, context) {
|
|
28
|
+
const units = detail.unitLiveness;
|
|
29
|
+
if (units === undefined)
|
|
30
|
+
return detail;
|
|
31
|
+
const scope = boundaryRuleScope(rule);
|
|
32
|
+
const matched = context.unread.filter((u) => unreadEntryMatches(u, scope.include));
|
|
33
|
+
if (matched.length === 0 && !context.readGap)
|
|
34
|
+
return detail;
|
|
35
|
+
const refutable = (u) => {
|
|
36
|
+
if (u.cause !== undefined)
|
|
37
|
+
return false;
|
|
38
|
+
if (u.list === BoundaryMarkableList.ForbiddenImports || u.list === BoundaryMarkableList.AllowedImports) {
|
|
39
|
+
return matched.length > 0;
|
|
40
|
+
}
|
|
41
|
+
const glob = u.unit.startsWith('!') ? u.unit.slice(1) : u.unit;
|
|
42
|
+
return matched.some((entry) => unreadEntryMatches(entry, [glob]));
|
|
43
|
+
};
|
|
44
|
+
const observations = units.map((u) => {
|
|
45
|
+
const withdraw = refutable(u);
|
|
46
|
+
return {
|
|
47
|
+
list: u.list,
|
|
48
|
+
unit: u.unit,
|
|
49
|
+
exists: withdraw && u.exists === false ? undefined : u.exists,
|
|
50
|
+
live: withdraw && u.live === false ? undefined : u.live,
|
|
51
|
+
label: u.label,
|
|
52
|
+
weight: u.weight,
|
|
53
|
+
...(u.matched !== undefined ? { matched: u.matched } : {}),
|
|
54
|
+
...(u.liveBecause !== undefined ? { liveBecause: u.liveBecause } : {}),
|
|
55
|
+
...(u.deadReason !== undefined ? { deadReason: u.deadReason } : {}),
|
|
56
|
+
...(u.cause !== undefined ? { cause: u.cause } : {}),
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
const settlement = settleBoundaryRule({
|
|
60
|
+
rule,
|
|
61
|
+
observations,
|
|
62
|
+
includeGlobs: scope.include,
|
|
63
|
+
filesScanned: context.filesScanned,
|
|
64
|
+
fileUniverse: context.fileUniverse,
|
|
65
|
+
filesInScope: detail.filesInScope,
|
|
66
|
+
exemptFilesInScope: detail.exemptFilesInScope,
|
|
67
|
+
violations: detail.violations,
|
|
68
|
+
unread: context.readGap,
|
|
69
|
+
});
|
|
70
|
+
return withBoundaryRuleSettlement(detail, settlement);
|
|
71
|
+
}
|
package/dist/change-intent.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { QueryIntent } from './query-intent-kind.js';
|
|
1
2
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
3
|
export declare const CHANGE_INTENT_SCHEMA = "sharkcraft.change-intent/v1";
|
|
3
4
|
export declare enum ChangeIntentKind {
|
|
@@ -30,6 +31,8 @@ export interface IChangeIntent {
|
|
|
30
31
|
suggestedFirstCommand: string;
|
|
31
32
|
confidence: ChangeIntentConfidence;
|
|
32
33
|
reasons: readonly string[];
|
|
34
|
+
/** THE query-intent classification this kind was checked against (round 11). */
|
|
35
|
+
queryIntent?: QueryIntent;
|
|
33
36
|
}
|
|
34
37
|
export declare function classifyChangeIntent(task: string, inspection: ISharkcraftInspection): Promise<IChangeIntent>;
|
|
35
38
|
export declare function renderChangeIntentText(intent: IChangeIntent): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-intent.d.ts","sourceRoot":"","sources":["../src/change-intent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change-intent.d.ts","sourceRoot":"","sources":["../src/change-intent.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,sBAAsB;IAChC,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,oBAAoB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,gFAAgF;IAChF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAiKD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,aAAa,CAAC,CA0FxB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsBpE"}
|
package/dist/change-intent.js
CHANGED
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
* available.
|
|
12
12
|
*/
|
|
13
13
|
import { listConstructs, loadConstructs } from "./construct-registry.js";
|
|
14
|
+
import { matchTerm, prepareTermQuery } from "./match-terms.js";
|
|
15
|
+
import { classifyQueryIntent } from "./query-intent.js";
|
|
16
|
+
import { QueryIntent } from "./query-intent-kind.js";
|
|
17
|
+
import { detectSharkcraftRepo } from "./self-audit.js";
|
|
14
18
|
export const CHANGE_INTENT_SCHEMA = 'sharkcraft.change-intent/v1';
|
|
15
19
|
export var ChangeIntentKind;
|
|
16
20
|
(function (ChangeIntentKind) {
|
|
@@ -109,22 +113,35 @@ const SUGGESTED_COMMAND = new Map([
|
|
|
109
113
|
[ChangeIntentKind.Bugfix, 'shrk impact --since main'],
|
|
110
114
|
[ChangeIntentKind.Refactor, 'shrk check boundaries --json'],
|
|
111
115
|
[ChangeIntentKind.Test, 'shrk tests missing --since main'],
|
|
112
|
-
|
|
116
|
+
// Consumer-applicable: `docs check` / `release readiness` maintain SharkCraft
|
|
117
|
+
// itself and exit 78 outside its repository (round 11 review CLI-7).
|
|
118
|
+
[ChangeIntentKind.Docs, 'shrk docs references check'],
|
|
113
119
|
[ChangeIntentKind.Migration, 'shrk brief "<task>" && shrk orchestrate "<task>" --mode conservative'],
|
|
114
120
|
[ChangeIntentKind.Architecture, 'shrk architecture map'],
|
|
115
121
|
[ChangeIntentKind.Policy, 'shrk policy run --explain-overrides'],
|
|
116
|
-
[ChangeIntentKind.Release, 'shrk
|
|
122
|
+
[ChangeIntentKind.Release, 'shrk quality'],
|
|
117
123
|
[ChangeIntentKind.Unknown, 'shrk start-here'],
|
|
118
124
|
]);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
/**
|
|
126
|
+
* Inside SharkCraft's own repository (THE host authority,
|
|
127
|
+
* `detectSharkcraftRepo`) the docs / release intents keep the tool's own
|
|
128
|
+
* gates — there they apply.
|
|
129
|
+
*/
|
|
130
|
+
const TOOL_REPO_SUGGESTED_COMMAND = new Map([
|
|
131
|
+
[ChangeIntentKind.Docs, 'shrk docs check'],
|
|
132
|
+
[ChangeIntentKind.Release, 'shrk release readiness --strict'],
|
|
133
|
+
]);
|
|
134
|
+
/**
|
|
135
|
+
* Domains through THE term matcher: `lower.includes(kw)` fired `ci` on
|
|
136
|
+
* "decide" / "specific" / "pricing" and `sign` (pack) on "design" / "assign",
|
|
137
|
+
* inflating the signal-count confidence below.
|
|
138
|
+
*/
|
|
122
139
|
function detectDomains(task) {
|
|
123
|
-
const
|
|
140
|
+
const query = prepareTermQuery(task);
|
|
124
141
|
const out = [];
|
|
125
142
|
for (const [domain, keywords] of DOMAIN_KEYWORDS) {
|
|
126
143
|
for (const kw of keywords) {
|
|
127
|
-
if (
|
|
144
|
+
if (matchTerm(query, kw)) {
|
|
128
145
|
out.push(domain);
|
|
129
146
|
break;
|
|
130
147
|
}
|
|
@@ -132,6 +149,14 @@ function detectDomains(task) {
|
|
|
132
149
|
}
|
|
133
150
|
return [...new Set(out)];
|
|
134
151
|
}
|
|
152
|
+
/** Ids whose (≥ 3 char) segments appear as task terms — THE term matcher, not substring. */
|
|
153
|
+
function idsMentioned(ids, task) {
|
|
154
|
+
const query = prepareTermQuery(task);
|
|
155
|
+
return ids.filter((id) => {
|
|
156
|
+
const tokens = id.split(/[.\-_/]/).filter((t) => t.length >= 3);
|
|
157
|
+
return tokens.some((t) => matchTerm(query, t));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
135
160
|
function matchKind(task) {
|
|
136
161
|
let best = {
|
|
137
162
|
kind: ChangeIntentKind.Unknown,
|
|
@@ -175,27 +200,31 @@ export async function classifyChangeIntent(task, inspection) {
|
|
|
175
200
|
reasons: ['Empty task string.'],
|
|
176
201
|
};
|
|
177
202
|
}
|
|
178
|
-
const
|
|
203
|
+
const matched = matchKind(trimmed);
|
|
204
|
+
let { kind, riskHints, requiresReview } = matched;
|
|
205
|
+
const { matchedPatterns } = matched;
|
|
206
|
+
// Consult THE query-intent classifier: a create word used as a noun or
|
|
207
|
+
// adjective ("fix the broken BUILD", "why does the NEW route fail") must not
|
|
208
|
+
// make a repair / diagnosis query a feature.
|
|
209
|
+
const queryIntent = classifyQueryIntent(trimmed);
|
|
210
|
+
const repairShaped = queryIntent.intent === QueryIntent.Repair || queryIntent.intent === QueryIntent.Diagnose;
|
|
211
|
+
const overridden = repairShaped && (kind === ChangeIntentKind.Feature || kind === ChangeIntentKind.Unknown);
|
|
212
|
+
if (overridden) {
|
|
213
|
+
const bugfix = MATCHERS.find((m) => m.kind === ChangeIntentKind.Bugfix);
|
|
214
|
+
kind = ChangeIntentKind.Bugfix;
|
|
215
|
+
riskHints = bugfix?.riskHints ? [...bugfix.riskHints] : [];
|
|
216
|
+
requiresReview = bugfix?.requiresReview === true;
|
|
217
|
+
}
|
|
179
218
|
const domains = detectDomains(trimmed);
|
|
180
|
-
// Likely constructs: any
|
|
181
|
-
const
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
return tokens.some((t) => lc(trimmed).includes(lc(t)));
|
|
185
|
-
});
|
|
186
|
-
// Likely templates / pipelines: by id token match.
|
|
187
|
-
const templates = inspection.templates.map((t) => t.id);
|
|
188
|
-
const likelyTemplates = templates.filter((id) => {
|
|
189
|
-
const tokens = id.split(/[.\-_/]/).filter((t) => t.length >= 3);
|
|
190
|
-
return tokens.some((t) => lc(trimmed).includes(lc(t)));
|
|
191
|
-
});
|
|
192
|
-
const pipelines = inspection.pipelines.map((p) => p.id);
|
|
193
|
-
const likelyPipelines = pipelines.filter((id) => {
|
|
194
|
-
const tokens = id.split(/[.\-_/]/).filter((t) => t.length >= 3);
|
|
195
|
-
return tokens.some((t) => lc(trimmed).includes(lc(t)));
|
|
196
|
-
});
|
|
219
|
+
// Likely constructs / templates / pipelines: any id whose segments appear as task terms.
|
|
220
|
+
const likelyConstructs = idsMentioned(listConstructs(inspection).map((c) => c.id), trimmed);
|
|
221
|
+
const likelyTemplates = idsMentioned(inspection.templates.map((t) => t.id), trimmed);
|
|
222
|
+
const likelyPipelines = idsMentioned(inspection.pipelines.map((p) => p.id), trimmed);
|
|
197
223
|
const reasons = [];
|
|
198
|
-
if (
|
|
224
|
+
if (overridden) {
|
|
225
|
+
reasons.push(`Query intent is "${queryIntent.intent}"${queryIntent.vetoedBy ? ` ("${queryIntent.vetoedBy}" vetoes the create reading)` : ''} — classified as "${kind}".`);
|
|
226
|
+
}
|
|
227
|
+
else if (matchedPatterns > 0) {
|
|
199
228
|
reasons.push(`Matched ${matchedPatterns} pattern(s) for kind "${kind}".`);
|
|
200
229
|
}
|
|
201
230
|
else {
|
|
@@ -216,7 +245,11 @@ export async function classifyChangeIntent(task, inspection) {
|
|
|
216
245
|
kind === ChangeIntentKind.Policy ||
|
|
217
246
|
kind === ChangeIntentKind.Release ||
|
|
218
247
|
kind === ChangeIntentKind.Migration;
|
|
219
|
-
const suggestedFirstCommand =
|
|
248
|
+
const suggestedFirstCommand = (TOOL_REPO_SUGGESTED_COMMAND.has(kind) && detectSharkcraftRepo(inspection.projectRoot)
|
|
249
|
+
? TOOL_REPO_SUGGESTED_COMMAND.get(kind)
|
|
250
|
+
: undefined) ??
|
|
251
|
+
SUGGESTED_COMMAND.get(kind) ??
|
|
252
|
+
'shrk start-here';
|
|
220
253
|
return {
|
|
221
254
|
schema: CHANGE_INTENT_SCHEMA,
|
|
222
255
|
task: trimmed,
|
|
@@ -230,6 +263,7 @@ export async function classifyChangeIntent(task, inspection) {
|
|
|
230
263
|
suggestedFirstCommand,
|
|
231
264
|
confidence,
|
|
232
265
|
reasons,
|
|
266
|
+
queryIntent: queryIntent.intent,
|
|
233
267
|
};
|
|
234
268
|
}
|
|
235
269
|
export function renderChangeIntentText(intent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changes-summary.d.ts","sourceRoot":"","sources":["../src/changes-summary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"changes-summary.d.ts","sourceRoot":"","sources":["../src/changes-summary.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,sBAAsB,kCAAkC,CAAC;AAEtE,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,SAAS,eAAe;IACxB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,SAAS,eAAe;IACxB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,uBAAuB;IAClC,YAAY,kBAAkB;IAC9B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB;;;;;;OAMG;IACH,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,UAAU,2BAA2B;IACrC,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/C;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtC,4CAA4C;IAC5C,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,8BAA8B;IAC9B,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,gDAAgD;IAChD,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0BAA0B;IAC1B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,0BAA0B;IAC1B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,2CAA2C;IAC3C,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,qCAAqC;IACrC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0CAA0C;IAC1C,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,wCAAwC;IACxC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,qCAAqC;IACrC,2BAA2B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAyRD,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA2DhC;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAsDlF"}
|
package/dist/changes-summary.js
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Read-only; no AI; deterministic. Schema: sharkcraft.changes-summary/v1.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import { boundaryRuleScope, boundaryScopeDecision } from '@shrkcrft/boundaries';
|
|
15
|
+
import { createAreaClassifier } from "./area-map.js";
|
|
15
16
|
import { getChangedFiles } from "./git-helpers.js";
|
|
16
17
|
import { resolveVerificationCommands } from "./resolve-verification-commands.js";
|
|
17
18
|
export const CHANGES_SUMMARY_SCHEMA = 'sharkcraft.changes-summary/v1';
|
|
@@ -175,27 +176,36 @@ const PACKAGE_ROOT_RE = /^(?:packages|apps|libs|modules|services)\/([^/]+)\//;
|
|
|
175
176
|
* is surfaced as a self-diagnostic (`unknownRate`), not a low-risk diff.
|
|
176
177
|
*/
|
|
177
178
|
function buildAreaResolver(inspection) {
|
|
179
|
+
// Each rule's governed scope, read through THE boundary scope authority
|
|
180
|
+
// (`boundaryRuleScope` / `boundaryScopeDecision`) — the one the evaluator
|
|
181
|
+
// uses. A `!`-prefixed `from` entry is an exemption there, never a literal
|
|
182
|
+
// glob, and a file the rule exempts (`exemptFiles`, `excludeTests`) is not
|
|
183
|
+
// attributed to the rule's area.
|
|
178
184
|
const boundaryMatchers = [];
|
|
179
185
|
try {
|
|
180
186
|
for (const rule of inspection.boundaryRegistry?.list() ?? []) {
|
|
181
|
-
const
|
|
182
|
-
if (
|
|
187
|
+
const scope = boundaryRuleScope(rule);
|
|
188
|
+
if (scope.include.length === 0)
|
|
183
189
|
continue;
|
|
184
|
-
boundaryMatchers.push({
|
|
185
|
-
area: rule.tags?.[0] ?? rule.id,
|
|
186
|
-
matchers: from.map((g) => globToRegex(g)),
|
|
187
|
-
});
|
|
190
|
+
boundaryMatchers.push({ area: rule.tags?.[0] ?? rule.id, scope });
|
|
188
191
|
}
|
|
189
192
|
}
|
|
190
193
|
catch {
|
|
191
194
|
// Boundary registry unavailable — fall through to built-ins + package roots.
|
|
192
195
|
}
|
|
196
|
+
// Project-declared areas (`areaMap.patterns`) win FIRST, through the same
|
|
197
|
+
// classifier the area map uses — one answer to "which area is this file in"
|
|
198
|
+
// for a file the project named, not two tables agreeing by coincidence.
|
|
199
|
+
const configured = createAreaClassifier(inspection.config?.areaMap, { builtIns: false });
|
|
193
200
|
return (file) => {
|
|
201
|
+
const declared = configured(file);
|
|
202
|
+
if (declared.source === 'config')
|
|
203
|
+
return declared.id ?? declared.kind;
|
|
194
204
|
const builtin = classifyArea(file);
|
|
195
205
|
if (builtin !== ChangeArea.Unknown)
|
|
196
206
|
return builtin;
|
|
197
207
|
for (const b of boundaryMatchers) {
|
|
198
|
-
if (b.
|
|
208
|
+
if (boundaryScopeDecision(b.scope, file) === 'in')
|
|
199
209
|
return b.area;
|
|
200
210
|
}
|
|
201
211
|
const pkg = PACKAGE_ROOT_RE.exec(file);
|
|
@@ -318,7 +328,7 @@ function suggestValidationCommands(files, inspection) {
|
|
|
318
328
|
out.add('shrk packs verify');
|
|
319
329
|
}
|
|
320
330
|
if (files.some((f) => f.area === ChangeArea.Inspector)) {
|
|
321
|
-
out.add('shrk
|
|
331
|
+
out.add('shrk quality');
|
|
322
332
|
}
|
|
323
333
|
return Array.from(out);
|
|
324
334
|
}
|
package/dist/ci-predict.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-predict.d.ts","sourceRoot":"","sources":["../src/ci-predict.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,oBAAY,kBAAkB;IAC5B,QAAQ,cAAc;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;
|
|
1
|
+
{"version":3,"file":"ci-predict.d.ts","sourceRoot":"","sources":["../src/ci-predict.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,oBAAY,kBAAkB;IAC5B,QAAQ,cAAc;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AA2KD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CA8GjF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAmBpE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAgBxE"}
|
package/dist/ci-predict.js
CHANGED
|
@@ -43,12 +43,26 @@ const PROBES = {
|
|
|
43
43
|
id: 'self-config',
|
|
44
44
|
title: 'Self-config doctor',
|
|
45
45
|
reportFile: 'self-config-doctor.json',
|
|
46
|
+
// Round 13: only `ok` is a pass. `unverified` (a dead unit, an id that
|
|
47
|
+
// could not be looked up — the doctor exits 2 NOT VERIFIED, so the CI
|
|
48
|
+
// step `shrk self-config doctor --json` fails) read as PASS here, and so
|
|
49
|
+
// did any verdict this reader does not know. An unmeasured verdict is
|
|
50
|
+
// never a pass.
|
|
46
51
|
reader: (j) => {
|
|
47
52
|
const v = j['verdict'];
|
|
48
|
-
|
|
49
|
-
verdict:
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
if (v === 'ok')
|
|
54
|
+
return { verdict: CiPredictVerdict.Pass, summary: 'verdict=ok' };
|
|
55
|
+
if (v === 'warnings')
|
|
56
|
+
return { verdict: CiPredictVerdict.Warn, summary: 'verdict=warnings' };
|
|
57
|
+
if (v === 'errors')
|
|
58
|
+
return { verdict: CiPredictVerdict.Fail, summary: 'verdict=errors' };
|
|
59
|
+
if (v === 'unverified') {
|
|
60
|
+
return {
|
|
61
|
+
verdict: CiPredictVerdict.Fail,
|
|
62
|
+
summary: 'verdict=unverified — NOT VERIFIED: the self-config doctor exits 2, so the CI step fails',
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return { verdict: CiPredictVerdict.Unknown, summary: `verdict=${v ?? 'unknown'} — not a verdict this probe reads` };
|
|
52
66
|
},
|
|
53
67
|
nextCommand: 'shrk self-config doctor',
|
|
54
68
|
},
|
|
@@ -151,6 +165,25 @@ const PROBES = {
|
|
|
151
165
|
},
|
|
152
166
|
],
|
|
153
167
|
};
|
|
168
|
+
/**
|
|
169
|
+
* THE guard over every probe's reading (round 13): a cached report that
|
|
170
|
+
* carries its own non-zero `exitCode` (a verdict verb's `--json`, e.g. the CI
|
|
171
|
+
* scaffold's `self-config doctor --json`) never predicts PASS — nor WARN
|
|
172
|
+
* (review: `verdict: 'warnings'` written by `self-config doctor --strict`,
|
|
173
|
+
* which exits 1 on a warning, read as a non-blocking warn) — whatever field the
|
|
174
|
+
* probe's reader keys on: the CI step that wrote it exited non-zero. `2` is
|
|
175
|
+
* NOT VERIFIED: an unmeasured verdict is never a pass.
|
|
176
|
+
*/
|
|
177
|
+
function reportExitVeto(read, json) {
|
|
178
|
+
const exit = json['exitCode'];
|
|
179
|
+
const lenient = read.verdict === CiPredictVerdict.Pass || read.verdict === CiPredictVerdict.Warn;
|
|
180
|
+
if (!lenient || typeof exit !== 'number' || exit === 0)
|
|
181
|
+
return { ...read };
|
|
182
|
+
return {
|
|
183
|
+
verdict: CiPredictVerdict.Fail,
|
|
184
|
+
summary: `${read.summary} — but the report's exitCode is ${exit}${exit === 2 ? ' (NOT VERIFIED)' : ''}, so the CI step fails`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
154
187
|
export function buildCiPredictReport(options) {
|
|
155
188
|
const reportsDir = options.reportsDir
|
|
156
189
|
? (nodePath.isAbsolute(options.reportsDir) ? options.reportsDir : nodePath.resolve(options.projectRoot, options.reportsDir))
|
|
@@ -173,7 +206,7 @@ export function buildCiPredictReport(options) {
|
|
|
173
206
|
}
|
|
174
207
|
try {
|
|
175
208
|
const json = JSON.parse(readFileSync(file, 'utf8'));
|
|
176
|
-
const r = p.reader(json);
|
|
209
|
+
const r = reportExitVeto(p.reader(json), json);
|
|
177
210
|
gates.push({
|
|
178
211
|
id: p.id,
|
|
179
212
|
title: p.title,
|
|
@@ -44,6 +44,12 @@ export interface IGraphDivergence {
|
|
|
44
44
|
readonly added: readonly string[];
|
|
45
45
|
/** Indexed files that no longer exist. */
|
|
46
46
|
readonly deleted: readonly string[];
|
|
47
|
+
/**
|
|
48
|
+
* Workspace packages whose indexed record diverged (a package.json entry
|
|
49
|
+
* edited, a package added / removed / moved) — an index input no file
|
|
50
|
+
* fingerprint covers. Optional: absent reads as none.
|
|
51
|
+
*/
|
|
52
|
+
readonly packagesChanged?: readonly string[];
|
|
47
53
|
}
|
|
48
54
|
/**
|
|
49
55
|
* Read every code-intelligence package's persisted state and produce a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-intelligence-doctor.d.ts","sourceRoot":"","sources":["../src/code-intelligence-doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoKvE,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"code-intelligence-doctor.d.ts","sourceRoot":"","sources":["../src/code-intelligence-doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoKvE,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AA8BD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,8BAAmC,GAC3C,YAAY,EAAE,CAkBhB"}
|
|
@@ -43,11 +43,21 @@ function sumValues(rec) {
|
|
|
43
43
|
}
|
|
44
44
|
return total;
|
|
45
45
|
}
|
|
46
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Files + workspace packages the index is behind by (`graphFreshnessBehind`'s
|
|
48
|
+
* count, so this and `graph status` agree), or `undefined` when divergence was
|
|
49
|
+
* not measured.
|
|
50
|
+
*/
|
|
47
51
|
function behindCount(d) {
|
|
48
52
|
if (!d || !d.hasIndex)
|
|
49
53
|
return undefined;
|
|
50
|
-
return d.modified.length + d.added.length + d.deleted.length;
|
|
54
|
+
return d.modified.length + d.added.length + d.deleted.length + (d.packagesChanged?.length ?? 0);
|
|
55
|
+
}
|
|
56
|
+
/** "N file(s)", plus " and P workspace package(s)" when any package diverged. */
|
|
57
|
+
function behindPhrase(d) {
|
|
58
|
+
const files = d.modified.length + d.added.length + d.deleted.length;
|
|
59
|
+
const pkgs = d.packagesChanged?.length ?? 0;
|
|
60
|
+
return pkgs > 0 ? `${files} file(s) and ${pkgs} workspace package(s)` : `${files} file(s)`;
|
|
51
61
|
}
|
|
52
62
|
/** A human summary of what diverged, for the stale message. */
|
|
53
63
|
function divergenceSummary(d) {
|
|
@@ -58,6 +68,9 @@ function divergenceSummary(d) {
|
|
|
58
68
|
parts.push(`${d.added.length} new`);
|
|
59
69
|
if (d.deleted.length > 0)
|
|
60
70
|
parts.push(`${d.deleted.length} deleted`);
|
|
71
|
+
const pkgs = d.packagesChanged ?? [];
|
|
72
|
+
if (pkgs.length > 0)
|
|
73
|
+
parts.push(`package entry changed: ${pkgs.slice(0, 3).join(', ')}${pkgs.length > 3 ? ` +${pkgs.length - 3} more` : ''}`);
|
|
61
74
|
return parts.join(', ');
|
|
62
75
|
}
|
|
63
76
|
/**
|
|
@@ -168,9 +181,11 @@ function graphChecks(projectRoot, nowMs, divergence) {
|
|
|
168
181
|
severity: DoctorSeverity.Warning,
|
|
169
182
|
advisory: true,
|
|
170
183
|
category: CATEGORY,
|
|
171
|
-
message: `Graph index STALE — ${
|
|
184
|
+
message: `Graph index STALE — ${behindPhrase(divergence)} changed since index ` +
|
|
172
185
|
`(${divergenceSummary(divergence)})${ageStr}; ${counts}${cycleTag}.`,
|
|
173
|
-
fix:
|
|
186
|
+
fix: (divergence.packagesChanged?.length ?? 0) > 0
|
|
187
|
+
? 'Re-index with `shrk graph index` — a workspace package entry changed, and only a full index re-resolves the imports of it.'
|
|
188
|
+
: 'Re-index with `shrk graph index --changed` (or `--full`).',
|
|
174
189
|
whyThisMatters: 'Stale code graph makes `shrk impact`, `shrk graph callers`, and context packs return outdated answers.',
|
|
175
190
|
});
|
|
176
191
|
}
|
|
@@ -265,7 +280,7 @@ function ruleGraphChecks(projectRoot, nowMs, staleDays) {
|
|
|
265
280
|
category: CATEGORY,
|
|
266
281
|
message: `Rule-graph bridge is stale${ageStr} — ${counts}.`,
|
|
267
282
|
fix: 'Re-build with `shrk graph index` (bridges build alongside graph).',
|
|
268
|
-
whyThisMatters: 'A stale bridge means `shrk
|
|
283
|
+
whyThisMatters: 'A stale bridge means `shrk why <file>` and rule-aware impact answers may miss recent edits.',
|
|
269
284
|
});
|
|
270
285
|
}
|
|
271
286
|
else {
|
|
@@ -299,7 +314,7 @@ function ruleGraphChecks(projectRoot, nowMs, staleDays) {
|
|
|
299
314
|
advisory: true,
|
|
300
315
|
category: CATEGORY,
|
|
301
316
|
message: `${baseMsg} ${uncovered} file(s) have no applicable rule.`,
|
|
302
|
-
fix: 'Inspect with `shrk
|
|
317
|
+
fix: 'Inspect with `shrk why <file>` and either broaden a rule\'s `appliesTo` / boundary `from`, or accept the gap.',
|
|
303
318
|
whyThisMatters: 'Files with no applicable rule are invisible to rule-aware impact, validation hints, and agent context packs. A growing coverage gap usually means the rule registry is drifting behind the codebase.',
|
|
304
319
|
});
|
|
305
320
|
}
|
|
@@ -529,7 +544,7 @@ function architectureChecks(projectRoot, nowMs, staleDays, divergence) {
|
|
|
529
544
|
severity: DoctorSeverity.Info,
|
|
530
545
|
advisory: true,
|
|
531
546
|
category: CATEGORY,
|
|
532
|
-
message: `Architecture delta NOT VERIFIED — the graph index is ${
|
|
547
|
+
message: `Architecture delta NOT VERIFIED — the graph index is ${behindPhrase(divergence)} behind ` +
|
|
533
548
|
`(${divergenceSummary(divergence)}), so any count derived from it is out of date.`,
|
|
534
549
|
fix: 'Re-index with `shrk graph index --changed`, then `shrk arch check`.',
|
|
535
550
|
whyThisMatters: 'A count from a stale index misses violations in files it never saw AND reports ones already fixed. Presenting it as a number invites acting on both.',
|
|
@@ -1,11 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic command recommender.
|
|
3
|
+
*
|
|
4
|
+
* Given an input ("what I want to do" or a stderr blob), recommend commands.
|
|
5
|
+
* No AI, no embeddings. The report is a thin view over THE ranked list
|
|
6
|
+
* (`rankRecommendationCandidates`): every row, `nextCommand`, the confidence
|
|
7
|
+
* and its reasons come from that one list, so the CLI, MCP
|
|
8
|
+
* `recommend_commands` and `shrk context` cannot disagree.
|
|
9
|
+
*/
|
|
10
|
+
import type { MatchConfidenceVerdict } from '@shrkcrft/core';
|
|
11
|
+
import type { IQueryIntentResult } from './query-intent-result.js';
|
|
12
|
+
import type { IRankedRecommendations } from './ranked-recommendations.js';
|
|
13
|
+
import type { IRecommendationCandidate } from './recommendation-candidate.js';
|
|
14
|
+
import type { RecommendationSource } from './recommendation-source.js';
|
|
2
15
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
16
|
+
import { type IUncertaintyReport } from './uncertainty-report.js';
|
|
3
17
|
export declare const COMMAND_RECOMMENDER_SCHEMA = "sharkcraft.command-recommender/v1";
|
|
4
18
|
export interface ICommandRecommendation {
|
|
5
19
|
command: string;
|
|
6
20
|
why: string;
|
|
7
21
|
safetyLevel: 'read-only' | 'writes-drafts' | 'writes-session' | 'writes-source' | 'runs-shell';
|
|
8
22
|
docsLink?: string;
|
|
23
|
+
/** Which signal proposed the row (round 11). */
|
|
24
|
+
source?: RecommendationSource;
|
|
25
|
+
/** Hint id, recipe id, template/pipeline id, diagnostic code, plan verb or change-intent kind. */
|
|
26
|
+
sourceId?: string;
|
|
27
|
+
/** Normalised score: 1.0 = the source's own floor. */
|
|
28
|
+
score?: number;
|
|
29
|
+
/** Below the confidence floor — a guess, not a route. */
|
|
30
|
+
weak?: boolean;
|
|
31
|
+
/** One-line attribution, e.g. `routing hint "billing-refactor" (score 7, floor 3)`. */
|
|
32
|
+
attribution?: string;
|
|
9
33
|
}
|
|
10
34
|
export interface ICommandRecommendationReport {
|
|
11
35
|
schema: typeof COMMAND_RECOMMENDER_SCHEMA;
|
|
@@ -15,11 +39,30 @@ export interface ICommandRecommendationReport {
|
|
|
15
39
|
recommendations: readonly ICommandRecommendation[];
|
|
16
40
|
nextCommand: string;
|
|
17
41
|
warnings: readonly string[];
|
|
18
|
-
/** Uncertainty report (confidence + reasons + safe fallback). */
|
|
42
|
+
/** Uncertainty report (confidence + reasons + safe fallback) — from THE confidence authority. */
|
|
19
43
|
uncertainty: IUncertaintyReport;
|
|
44
|
+
/** Shared confidence vocabulary: some candidate cleared the floor. An agent branches on this. */
|
|
45
|
+
confident: boolean;
|
|
46
|
+
verdict: MatchConfidenceVerdict;
|
|
47
|
+
/** Floor multiplier in normalised units (1.0 = each source's own floor). */
|
|
48
|
+
floor: number;
|
|
49
|
+
/** Best eligible candidate's normalised score, confident or not. */
|
|
50
|
+
bestScore: number;
|
|
51
|
+
bestSource?: RecommendationSource;
|
|
52
|
+
/** THE query-intent classification the eligibility gate used. */
|
|
53
|
+
intent: IQueryIntentResult;
|
|
54
|
+
/** The full ranked list, including suppressed rows (each with `suppressedReason`). */
|
|
55
|
+
ranked: readonly IRecommendationCandidate[];
|
|
20
56
|
}
|
|
57
|
+
/** One report row from a ranked candidate. */
|
|
58
|
+
export declare function toCommandRecommendation(c: IRecommendationCandidate): ICommandRecommendation;
|
|
59
|
+
/** The report for a ranked list — no re-ranking, no re-derivation. */
|
|
60
|
+
export declare function recommendationReportFromRanking(ranked: IRankedRecommendations, options?: {
|
|
61
|
+
role?: string;
|
|
62
|
+
}): ICommandRecommendationReport;
|
|
21
63
|
export declare function recommendCommands(inspection: ISharkcraftInspection, query: string, options?: {
|
|
22
64
|
fromError?: string;
|
|
23
65
|
role?: string;
|
|
66
|
+
minScore?: number;
|
|
24
67
|
}): Promise<ICommandRecommendationReport>;
|
|
25
68
|
//# sourceMappingURL=command-recommender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-recommender.d.ts","sourceRoot":"","sources":["../src/command-recommender.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-recommender.d.ts","sourceRoot":"","sources":["../src/command-recommender.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;IAC/F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,0BAA0B,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,iGAAiG;IACjG,WAAW,EAAE,kBAAkB,CAAC;IAChC,iGAAiG;IACjG,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,iEAAiE;IACjE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,sFAAsF;IACtF,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC7C;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,wBAAwB,GAAG,sBAAsB,CAY3F;AAED,sEAAsE;AACtE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,4BAA4B,CA6B9B;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,OAAO,CAAC,4BAA4B,CAAC,CAMvC"}
|