@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.
Files changed (693) hide show
  1. package/dist/acceptance-replay.js +1 -1
  2. package/dist/agent-contract-templates.js +6 -6
  3. package/dist/agent-contract.d.ts.map +1 -1
  4. package/dist/agent-contract.js +13 -8
  5. package/dist/agent-orchestration.js +2 -2
  6. package/dist/agent-task-prep.d.ts +16 -0
  7. package/dist/agent-task-prep.d.ts.map +1 -1
  8. package/dist/agent-task-prep.js +51 -4
  9. package/dist/ai-readiness.d.ts.map +1 -1
  10. package/dist/ai-readiness.js +21 -3
  11. package/dist/architecture-map.d.ts +16 -0
  12. package/dist/architecture-map.d.ts.map +1 -1
  13. package/dist/architecture-map.js +42 -26
  14. package/dist/area-explore.d.ts +2 -2
  15. package/dist/area-explore.d.ts.map +1 -1
  16. package/dist/area-explore.js +36 -16
  17. package/dist/area-map.d.ts +56 -11
  18. package/dist/area-map.d.ts.map +1 -1
  19. package/dist/area-map.js +106 -25
  20. package/dist/asset-doctor-proposed-exit.d.ts +21 -0
  21. package/dist/asset-doctor-proposed-exit.d.ts.map +1 -0
  22. package/dist/asset-doctor-proposed-exit.js +22 -0
  23. package/dist/asset-provenance.js +1 -1
  24. package/dist/boundaries-changed-only.d.ts +24 -1
  25. package/dist/boundaries-changed-only.d.ts.map +1 -1
  26. package/dist/boundaries-changed-only.js +12 -2
  27. package/dist/boundary-check-options.model.d.ts +40 -0
  28. package/dist/boundary-check-options.model.d.ts.map +1 -0
  29. package/dist/boundary-check-options.model.js +1 -0
  30. package/dist/boundary-check-result.model.d.ts +89 -0
  31. package/dist/boundary-check-result.model.d.ts.map +1 -0
  32. package/dist/boundary-check-result.model.js +1 -0
  33. package/dist/boundary-configuration-status.d.ts +38 -0
  34. package/dist/boundary-configuration-status.d.ts.map +1 -0
  35. package/dist/boundary-configuration-status.js +118 -0
  36. package/dist/boundary-configuration-status.model.d.ts +37 -0
  37. package/dist/boundary-configuration-status.model.d.ts.map +1 -0
  38. package/dist/boundary-configuration-status.model.js +1 -0
  39. package/dist/boundary-load-issue.model.d.ts +30 -0
  40. package/dist/boundary-load-issue.model.d.ts.map +1 -0
  41. package/dist/boundary-load-issue.model.js +1 -0
  42. package/dist/boundary-rule-check.model.d.ts +44 -0
  43. package/dist/boundary-rule-check.model.d.ts.map +1 -0
  44. package/dist/boundary-rule-check.model.js +1 -0
  45. package/dist/boundary-rule-invalidation.model.d.ts +31 -0
  46. package/dist/boundary-rule-invalidation.model.d.ts.map +1 -0
  47. package/dist/boundary-rule-invalidation.model.js +1 -0
  48. package/dist/boundary-rule-set-diff.model.d.ts +75 -0
  49. package/dist/boundary-rule-set-diff.model.d.ts.map +1 -0
  50. package/dist/boundary-rule-set-diff.model.js +1 -0
  51. package/dist/boundary-rule-sources.d.ts +28 -0
  52. package/dist/boundary-rule-sources.d.ts.map +1 -0
  53. package/dist/boundary-rule-sources.js +110 -0
  54. package/dist/boundary-stale-exception-finding.model.d.ts +12 -0
  55. package/dist/boundary-stale-exception-finding.model.d.ts.map +1 -0
  56. package/dist/boundary-stale-exception-finding.model.js +1 -0
  57. package/dist/boundary-unit-liveness.d.ts +35 -0
  58. package/dist/boundary-unit-liveness.d.ts.map +1 -0
  59. package/dist/boundary-unit-liveness.js +71 -0
  60. package/dist/change-intent.d.ts +3 -0
  61. package/dist/change-intent.d.ts.map +1 -1
  62. package/dist/change-intent.js +61 -27
  63. package/dist/changes-summary.d.ts.map +1 -1
  64. package/dist/changes-summary.js +19 -9
  65. package/dist/ci-integrity-report.js +1 -1
  66. package/dist/ci-predict.d.ts.map +1 -1
  67. package/dist/ci-predict.js +38 -5
  68. package/dist/code-intelligence-doctor.d.ts +6 -0
  69. package/dist/code-intelligence-doctor.d.ts.map +1 -1
  70. package/dist/code-intelligence-doctor.js +22 -7
  71. package/dist/command-recommender.d.ts +45 -2
  72. package/dist/command-recommender.d.ts.map +1 -1
  73. package/dist/command-recommender.js +41 -263
  74. package/dist/command-resolution-status.d.ts +44 -0
  75. package/dist/command-resolution-status.d.ts.map +1 -0
  76. package/dist/command-resolution-status.js +44 -0
  77. package/dist/command-safety-level.d.ts +15 -0
  78. package/dist/command-safety-level.d.ts.map +1 -0
  79. package/dist/command-safety-level.js +43 -0
  80. package/dist/command-taxonomy.js +1 -1
  81. package/dist/compliance-evidence.js +1 -1
  82. package/dist/compliance-profiles.js +1 -1
  83. package/dist/construct-registry.d.ts +40 -0
  84. package/dist/construct-registry.d.ts.map +1 -1
  85. package/dist/construct-registry.js +186 -82
  86. package/dist/context-tuning.d.ts +4 -0
  87. package/dist/context-tuning.d.ts.map +1 -1
  88. package/dist/context-tuning.js +10 -7
  89. package/dist/contract-template-registry.d.ts +10 -0
  90. package/dist/contract-template-registry.d.ts.map +1 -1
  91. package/dist/contract-template-registry.js +59 -33
  92. package/dist/contribution-kind.d.ts +52 -0
  93. package/dist/contribution-kind.d.ts.map +1 -0
  94. package/dist/contribution-kind.js +52 -0
  95. package/dist/contribution-load-failures.d.ts +106 -0
  96. package/dist/contribution-load-failures.d.ts.map +1 -0
  97. package/dist/contribution-load-failures.js +575 -0
  98. package/dist/contributions-report.d.ts +28 -0
  99. package/dist/contributions-report.d.ts.map +1 -0
  100. package/dist/contributions-report.js +242 -0
  101. package/dist/convention-registry.d.ts +22 -0
  102. package/dist/convention-registry.d.ts.map +1 -1
  103. package/dist/convention-registry.js +79 -39
  104. package/dist/coverage-report.d.ts.map +1 -1
  105. package/dist/coverage-report.js +6 -6
  106. package/dist/custom-checks.d.ts +60 -1
  107. package/dist/custom-checks.d.ts.map +1 -1
  108. package/dist/custom-checks.js +159 -6
  109. package/dist/dashboard/dashboard-data.d.ts +6 -0
  110. package/dist/dashboard/dashboard-data.d.ts.map +1 -1
  111. package/dist/dashboard/dashboard-data.js +99 -8
  112. package/dist/dashboard/dashboard-knowledge.d.ts.map +1 -1
  113. package/dist/dashboard/dashboard-knowledge.js +14 -2
  114. package/dist/decision-records.d.ts +20 -0
  115. package/dist/decision-records.d.ts.map +1 -1
  116. package/dist/decision-records.js +68 -20
  117. package/dist/declared-cross-references.d.ts +61 -0
  118. package/dist/declared-cross-references.d.ts.map +1 -0
  119. package/dist/declared-cross-references.js +550 -0
  120. package/dist/declared-gate-plane-rules.d.ts +24 -0
  121. package/dist/declared-gate-plane-rules.d.ts.map +1 -0
  122. package/dist/declared-gate-plane-rules.js +39 -0
  123. package/dist/declared-reference-coverage.d.ts +27 -0
  124. package/dist/declared-reference-coverage.d.ts.map +1 -0
  125. package/dist/declared-reference-coverage.js +50 -0
  126. package/dist/declared-xref-status.d.ts +19 -0
  127. package/dist/declared-xref-status.d.ts.map +1 -0
  128. package/dist/declared-xref-status.js +19 -0
  129. package/dist/delegate-pack-recipes.d.ts +13 -2
  130. package/dist/delegate-pack-recipes.d.ts.map +1 -1
  131. package/dist/delegate-pack-recipes.js +45 -14
  132. package/dist/demo-package.js +2 -2
  133. package/dist/demo-script.js +2 -2
  134. package/dist/demo-workflow.js +3 -3
  135. package/dist/dev-cycle.js +1 -1
  136. package/dist/dev-session.js +1 -1
  137. package/dist/doc-references.d.ts +23 -2
  138. package/dist/doc-references.d.ts.map +1 -1
  139. package/dist/doc-references.js +96 -17
  140. package/dist/doctor-result.d.ts +8 -0
  141. package/dist/doctor-result.d.ts.map +1 -1
  142. package/dist/doctor-verdict-kind.d.ts +19 -0
  143. package/dist/doctor-verdict-kind.d.ts.map +1 -0
  144. package/dist/doctor-verdict-kind.js +19 -0
  145. package/dist/doctor-verdict.d.ts +18 -0
  146. package/dist/doctor-verdict.d.ts.map +1 -0
  147. package/dist/doctor-verdict.js +28 -0
  148. package/dist/drift.d.ts +17 -0
  149. package/dist/drift.d.ts.map +1 -1
  150. package/dist/drift.js +40 -10
  151. package/dist/entrypoint-matrix.d.ts.map +1 -1
  152. package/dist/entrypoint-matrix.js +4 -1
  153. package/dist/feedback-ingestion.d.ts +28 -2
  154. package/dist/feedback-ingestion.d.ts.map +1 -1
  155. package/dist/feedback-ingestion.js +68 -19
  156. package/dist/fix-preview.d.ts.map +1 -1
  157. package/dist/fix-preview.js +9 -5
  158. package/dist/framework-extractor-outcomes.d.ts +27 -0
  159. package/dist/framework-extractor-outcomes.d.ts.map +1 -0
  160. package/dist/framework-extractor-outcomes.js +83 -0
  161. package/dist/fuzzy-impact.js +1 -1
  162. package/dist/healing-plan.d.ts.map +1 -1
  163. package/dist/healing-plan.js +3 -4
  164. package/dist/helper-catalog.d.ts +25 -0
  165. package/dist/helper-catalog.d.ts.map +1 -0
  166. package/dist/helper-catalog.js +91 -0
  167. package/dist/helper-registry.d.ts.map +1 -1
  168. package/dist/helper-registry.js +17 -1
  169. package/dist/helper-view.d.ts +33 -0
  170. package/dist/helper-view.d.ts.map +1 -0
  171. package/dist/helper-view.js +1 -0
  172. package/dist/i-asset-doctor-flags.d.ts +16 -0
  173. package/dist/i-asset-doctor-flags.d.ts.map +1 -0
  174. package/dist/i-asset-doctor-flags.js +1 -0
  175. package/dist/i-command-resolution.d.ts +22 -0
  176. package/dist/i-command-resolution.d.ts.map +1 -0
  177. package/dist/i-command-resolution.js +1 -0
  178. package/dist/i-command-resolve-options.d.ts +24 -0
  179. package/dist/i-command-resolve-options.d.ts.map +1 -0
  180. package/dist/i-command-resolve-options.js +1 -0
  181. package/dist/i-command-safety.d.ts +13 -0
  182. package/dist/i-command-safety.d.ts.map +1 -0
  183. package/dist/i-command-safety.js +1 -0
  184. package/dist/i-contribution-accepted-entry.d.ts +18 -0
  185. package/dist/i-contribution-accepted-entry.d.ts.map +1 -0
  186. package/dist/i-contribution-accepted-entry.js +1 -0
  187. package/dist/i-contribution-entry-rejection.d.ts +21 -0
  188. package/dist/i-contribution-entry-rejection.d.ts.map +1 -0
  189. package/dist/i-contribution-entry-rejection.js +1 -0
  190. package/dist/i-contribution-file-issue.d.ts +18 -0
  191. package/dist/i-contribution-file-issue.d.ts.map +1 -0
  192. package/dist/i-contribution-file-issue.js +1 -0
  193. package/dist/i-contribution-file-report.d.ts +40 -0
  194. package/dist/i-contribution-file-report.d.ts.map +1 -0
  195. package/dist/i-contribution-file-report.js +1 -0
  196. package/dist/i-contribution-file-validation.d.ts +24 -0
  197. package/dist/i-contribution-file-validation.d.ts.map +1 -0
  198. package/dist/i-contribution-file-validation.js +1 -0
  199. package/dist/i-contributions-report.d.ts +31 -0
  200. package/dist/i-contributions-report.d.ts.map +1 -0
  201. package/dist/i-contributions-report.js +1 -0
  202. package/dist/i-declared-xref-field.d.ts +25 -0
  203. package/dist/i-declared-xref-field.d.ts.map +1 -0
  204. package/dist/i-declared-xref-field.js +1 -0
  205. package/dist/i-declared-xref-issue.d.ts +25 -0
  206. package/dist/i-declared-xref-issue.d.ts.map +1 -0
  207. package/dist/i-declared-xref-issue.js +1 -0
  208. package/dist/i-declared-xref-report.d.ts +48 -0
  209. package/dist/i-declared-xref-report.d.ts.map +1 -0
  210. package/dist/i-declared-xref-report.js +1 -0
  211. package/dist/i-declared-xref-row.d.ts +29 -0
  212. package/dist/i-declared-xref-row.d.ts.map +1 -0
  213. package/dist/i-declared-xref-row.js +1 -0
  214. package/dist/i-doctor-verdict.d.ts +10 -0
  215. package/dist/i-doctor-verdict.d.ts.map +1 -0
  216. package/dist/i-doctor-verdict.js +1 -0
  217. package/dist/i-kind-outcomes.d.ts +13 -0
  218. package/dist/i-kind-outcomes.d.ts.map +1 -0
  219. package/dist/i-kind-outcomes.js +1 -0
  220. package/dist/i-pack-doctor-verdict.d.ts +15 -0
  221. package/dist/i-pack-doctor-verdict.d.ts.map +1 -0
  222. package/dist/i-pack-doctor-verdict.js +1 -0
  223. package/dist/i-probed-id-field.d.ts +17 -0
  224. package/dist/i-probed-id-field.d.ts.map +1 -0
  225. package/dist/i-probed-id-field.js +1 -0
  226. package/dist/i-reference-kind-declaration.d.ts +38 -0
  227. package/dist/i-reference-kind-declaration.d.ts.map +1 -0
  228. package/dist/i-reference-kind-declaration.js +1 -0
  229. package/dist/i-reference-warm-options.d.ts +21 -0
  230. package/dist/i-reference-warm-options.d.ts.map +1 -0
  231. package/dist/i-reference-warm-options.js +1 -0
  232. package/dist/i-registry-outcomes.d.ts +16 -0
  233. package/dist/i-registry-outcomes.d.ts.map +1 -0
  234. package/dist/i-registry-outcomes.js +1 -0
  235. package/dist/i-scaffold-pattern-doctor-report.d.ts +35 -0
  236. package/dist/i-scaffold-pattern-doctor-report.d.ts.map +1 -0
  237. package/dist/i-scaffold-pattern-doctor-report.js +1 -0
  238. package/dist/i-search-tuning-key-probe.d.ts +30 -0
  239. package/dist/i-search-tuning-key-probe.d.ts.map +1 -0
  240. package/dist/i-search-tuning-key-probe.js +1 -0
  241. package/dist/i-search-tuning-lint-issue.d.ts +61 -0
  242. package/dist/i-search-tuning-lint-issue.d.ts.map +1 -0
  243. package/dist/i-search-tuning-lint-issue.js +1 -0
  244. package/dist/i-search-tuning-lint-report.d.ts +38 -0
  245. package/dist/i-search-tuning-lint-report.d.ts.map +1 -0
  246. package/dist/i-search-tuning-lint-report.js +1 -0
  247. package/dist/i-unresolvable-reference-scan.d.ts +14 -0
  248. package/dist/i-unresolvable-reference-scan.d.ts.map +1 -0
  249. package/dist/i-unresolvable-reference-scan.js +1 -0
  250. package/dist/i-unresolvable-reference.d.ts +29 -0
  251. package/dist/i-unresolvable-reference.d.ts.map +1 -0
  252. package/dist/i-unresolvable-reference.js +1 -0
  253. package/dist/i-workspace-profile-payload.d.ts +12 -0
  254. package/dist/i-workspace-profile-payload.d.ts.map +1 -0
  255. package/dist/i-workspace-profile-payload.js +1 -0
  256. package/dist/impact-analysis.d.ts +15 -0
  257. package/dist/impact-analysis.d.ts.map +1 -1
  258. package/dist/impact-analysis.js +58 -13
  259. package/dist/impact-render.d.ts.map +1 -1
  260. package/dist/impact-render.js +22 -0
  261. package/dist/import-hygiene.d.ts +35 -1
  262. package/dist/import-hygiene.d.ts.map +1 -1
  263. package/dist/import-hygiene.js +107 -13
  264. package/dist/index.d.ts +141 -0
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +172 -0
  267. package/dist/inspection-discovery.d.ts +45 -0
  268. package/dist/inspection-discovery.d.ts.map +1 -0
  269. package/dist/inspection-discovery.js +70 -0
  270. package/dist/knowledge-advisory-code.d.ts +17 -0
  271. package/dist/knowledge-advisory-code.d.ts.map +1 -0
  272. package/dist/knowledge-advisory-code.js +17 -0
  273. package/dist/knowledge-aged-entry.d.ts +10 -0
  274. package/dist/knowledge-aged-entry.d.ts.map +1 -0
  275. package/dist/knowledge-aged-entry.js +1 -0
  276. package/dist/knowledge-authoring.d.ts +24 -1
  277. package/dist/knowledge-authoring.d.ts.map +1 -1
  278. package/dist/knowledge-authoring.js +46 -7
  279. package/dist/knowledge-entry-verdict-record.d.ts +22 -0
  280. package/dist/knowledge-entry-verdict-record.d.ts.map +1 -0
  281. package/dist/knowledge-entry-verdict-record.js +1 -0
  282. package/dist/knowledge-entry-verdict.d.ts +17 -0
  283. package/dist/knowledge-entry-verdict.d.ts.map +1 -0
  284. package/dist/knowledge-entry-verdict.js +17 -0
  285. package/dist/knowledge-graph.d.ts +6 -0
  286. package/dist/knowledge-graph.d.ts.map +1 -1
  287. package/dist/knowledge-graph.js +18 -7
  288. package/dist/knowledge-kind-bucket.d.ts +19 -0
  289. package/dist/knowledge-kind-bucket.d.ts.map +1 -0
  290. package/dist/knowledge-kind-bucket.js +1 -0
  291. package/dist/knowledge-load-failure.d.ts +23 -0
  292. package/dist/knowledge-load-failure.d.ts.map +1 -0
  293. package/dist/knowledge-load-failure.js +1 -0
  294. package/dist/knowledge-reference-kind-bucket.d.ts +11 -0
  295. package/dist/knowledge-reference-kind-bucket.d.ts.map +1 -0
  296. package/dist/knowledge-reference-kind-bucket.js +1 -0
  297. package/dist/knowledge-stale-advisory.d.ts +14 -0
  298. package/dist/knowledge-stale-advisory.d.ts.map +1 -0
  299. package/dist/knowledge-stale-advisory.js +1 -0
  300. package/dist/knowledge-stale-coverage.d.ts +19 -0
  301. package/dist/knowledge-stale-coverage.d.ts.map +1 -0
  302. package/dist/knowledge-stale-coverage.js +1 -0
  303. package/dist/knowledge-stale-gate-flags.d.ts +33 -0
  304. package/dist/knowledge-stale-gate-flags.d.ts.map +1 -0
  305. package/dist/knowledge-stale-gate-flags.js +1 -0
  306. package/dist/knowledge-stale-gate-input.d.ts +46 -0
  307. package/dist/knowledge-stale-gate-input.d.ts.map +1 -0
  308. package/dist/knowledge-stale-gate-input.js +1 -0
  309. package/dist/knowledge-stale-gate-result.d.ts +33 -0
  310. package/dist/knowledge-stale-gate-result.d.ts.map +1 -0
  311. package/dist/knowledge-stale-gate-result.js +1 -0
  312. package/dist/knowledge-stale-gate-rule.d.ts +33 -0
  313. package/dist/knowledge-stale-gate-rule.d.ts.map +1 -0
  314. package/dist/knowledge-stale-gate-rule.js +1 -0
  315. package/dist/knowledge-stale-gate-violation.d.ts +13 -0
  316. package/dist/knowledge-stale-gate-violation.d.ts.map +1 -0
  317. package/dist/knowledge-stale-gate-violation.js +1 -0
  318. package/dist/knowledge-stale-gate.d.ts +83 -0
  319. package/dist/knowledge-stale-gate.d.ts.map +1 -0
  320. package/dist/knowledge-stale-gate.js +429 -0
  321. package/dist/knowledge-stale-quality-gate.d.ts +26 -0
  322. package/dist/knowledge-stale-quality-gate.d.ts.map +1 -0
  323. package/dist/knowledge-stale-quality-gate.js +110 -0
  324. package/dist/knowledge-stale.d.ts +122 -9
  325. package/dist/knowledge-stale.d.ts.map +1 -1
  326. package/dist/knowledge-stale.js +996 -291
  327. package/dist/knowledge-unverifiable-reason.d.ts +12 -0
  328. package/dist/knowledge-unverifiable-reason.d.ts.map +1 -0
  329. package/dist/knowledge-unverifiable-reason.js +12 -0
  330. package/dist/loader-diagnostics.d.ts +14 -2
  331. package/dist/loader-diagnostics.d.ts.map +1 -1
  332. package/dist/match-terms.d.ts +48 -0
  333. package/dist/match-terms.d.ts.map +1 -0
  334. package/dist/match-terms.js +155 -0
  335. package/dist/migration-profile-registry.d.ts +10 -0
  336. package/dist/migration-profile-registry.d.ts.map +1 -1
  337. package/dist/migration-profile-registry.js +57 -34
  338. package/dist/migration-readiness.d.ts.map +1 -1
  339. package/dist/migration-readiness.js +1 -3
  340. package/dist/nearest-id.d.ts +10 -26
  341. package/dist/nearest-id.d.ts.map +1 -1
  342. package/dist/nearest-id.js +9 -59
  343. package/dist/pack-asset-freshness.d.ts +65 -0
  344. package/dist/pack-asset-freshness.d.ts.map +1 -0
  345. package/dist/pack-asset-freshness.js +340 -0
  346. package/dist/pack-author-ux.d.ts +24 -3
  347. package/dist/pack-author-ux.d.ts.map +1 -1
  348. package/dist/pack-author-ux.js +87 -93
  349. package/dist/pack-contributions-inventory.d.ts +79 -39
  350. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  351. package/dist/pack-contributions-inventory.js +443 -286
  352. package/dist/pack-doctor-verdict.d.ts +29 -0
  353. package/dist/pack-doctor-verdict.d.ts.map +1 -0
  354. package/dist/pack-doctor-verdict.js +45 -0
  355. package/dist/pack-doctor.d.ts +74 -1
  356. package/dist/pack-doctor.d.ts.map +1 -1
  357. package/dist/pack-doctor.js +281 -1
  358. package/dist/pack-helper-plan.d.ts +24 -0
  359. package/dist/pack-helper-plan.d.ts.map +1 -0
  360. package/dist/pack-helper-plan.js +77 -0
  361. package/dist/pack-helper-registry.d.ts +14 -0
  362. package/dist/pack-helper-registry.d.ts.map +1 -1
  363. package/dist/pack-helper-registry.js +76 -37
  364. package/dist/pack-manifest-reader.d.ts +8 -0
  365. package/dist/pack-manifest-reader.d.ts.map +1 -0
  366. package/dist/pack-manifest-reader.js +79 -0
  367. package/dist/pack-release-check.d.ts +14 -1
  368. package/dist/pack-release-check.d.ts.map +1 -1
  369. package/dist/pack-release-check.js +23 -1
  370. package/dist/pack-signature-status.d.ts +18 -6
  371. package/dist/pack-signature-status.d.ts.map +1 -1
  372. package/dist/pack-signature-status.js +59 -105
  373. package/dist/pack-test-runner.d.ts +27 -5
  374. package/dist/pack-test-runner.d.ts.map +1 -1
  375. package/dist/pack-test-runner.js +91 -35
  376. package/dist/pack-typecheck.d.ts +8 -0
  377. package/dist/pack-typecheck.d.ts.map +1 -0
  378. package/dist/pack-typecheck.js +76 -0
  379. package/dist/plan-review.d.ts +2 -0
  380. package/dist/plan-review.d.ts.map +1 -1
  381. package/dist/plan-review.js +17 -5
  382. package/dist/plan-simulation.d.ts.map +1 -1
  383. package/dist/plan-simulation.js +16 -5
  384. package/dist/playbook-load-issue.d.ts +16 -0
  385. package/dist/playbook-load-issue.d.ts.map +1 -0
  386. package/dist/playbook-load-issue.js +1 -0
  387. package/dist/playbook-registry.d.ts +32 -1
  388. package/dist/playbook-registry.d.ts.map +1 -1
  389. package/dist/playbook-registry.js +144 -55
  390. package/dist/policy-declaration.d.ts +18 -0
  391. package/dist/policy-declaration.d.ts.map +1 -0
  392. package/dist/policy-declaration.js +1 -0
  393. package/dist/policy-engine.d.ts +8 -0
  394. package/dist/policy-engine.d.ts.map +1 -1
  395. package/dist/policy-engine.js +26 -9
  396. package/dist/policy-overrides.d.ts.map +1 -1
  397. package/dist/policy-overrides.js +4 -4
  398. package/dist/policy-registry.d.ts +27 -0
  399. package/dist/policy-registry.d.ts.map +1 -1
  400. package/dist/policy-registry.js +87 -20
  401. package/dist/probed-id-fields.d.ts +21 -0
  402. package/dist/probed-id-fields.d.ts.map +1 -0
  403. package/dist/probed-id-fields.js +25 -0
  404. package/dist/probed-id-source.d.ts +11 -0
  405. package/dist/probed-id-source.d.ts.map +1 -0
  406. package/dist/probed-id-source.js +11 -0
  407. package/dist/profile-registry.d.ts +25 -2
  408. package/dist/profile-registry.d.ts.map +1 -1
  409. package/dist/profile-registry.js +59 -6
  410. package/dist/quality-gate-examination.d.ts +15 -0
  411. package/dist/quality-gate-examination.d.ts.map +1 -0
  412. package/dist/quality-gate-examination.js +15 -0
  413. package/dist/quality-gate-row-status.d.ts +19 -0
  414. package/dist/quality-gate-row-status.d.ts.map +1 -0
  415. package/dist/quality-gate-row-status.js +28 -0
  416. package/dist/quality-gate-status.d.ts +16 -0
  417. package/dist/quality-gate-status.d.ts.map +1 -0
  418. package/dist/quality-gate-status.js +16 -0
  419. package/dist/quality-html.d.ts.map +1 -1
  420. package/dist/quality-html.js +14 -3
  421. package/dist/quality-report-coverage.d.ts +26 -0
  422. package/dist/quality-report-coverage.d.ts.map +1 -0
  423. package/dist/quality-report-coverage.js +48 -0
  424. package/dist/quality-report.d.ts +28 -1
  425. package/dist/quality-report.d.ts.map +1 -1
  426. package/dist/quality-report.js +263 -35
  427. package/dist/query-intent-kind.d.ts +18 -0
  428. package/dist/query-intent-kind.d.ts.map +1 -0
  429. package/dist/query-intent-kind.js +18 -0
  430. package/dist/query-intent-result.d.ts +23 -0
  431. package/dist/query-intent-result.d.ts.map +1 -0
  432. package/dist/query-intent-result.js +1 -0
  433. package/dist/query-intent.d.ts +18 -0
  434. package/dist/query-intent.d.ts.map +1 -0
  435. package/dist/query-intent.js +336 -0
  436. package/dist/query-resolver.d.ts +18 -0
  437. package/dist/query-resolver.d.ts.map +1 -1
  438. package/dist/query-resolver.js +7 -4
  439. package/dist/ranked-recommendations.d.ts +36 -0
  440. package/dist/ranked-recommendations.d.ts.map +1 -0
  441. package/dist/ranked-recommendations.js +1 -0
  442. package/dist/ranker-explainability.d.ts.map +1 -1
  443. package/dist/ranker-explainability.js +38 -10
  444. package/dist/recommend-recipe.d.ts +17 -0
  445. package/dist/recommend-recipe.d.ts.map +1 -0
  446. package/dist/recommend-recipe.js +1 -0
  447. package/dist/recommend-recipes.d.ts +9 -0
  448. package/dist/recommend-recipes.d.ts.map +1 -0
  449. package/dist/recommend-recipes.js +106 -0
  450. package/dist/recommendation-candidate.d.ts +30 -0
  451. package/dist/recommendation-candidate.d.ts.map +1 -0
  452. package/dist/recommendation-candidate.js +1 -0
  453. package/dist/recommendation-confidence.d.ts +27 -0
  454. package/dist/recommendation-confidence.d.ts.map +1 -0
  455. package/dist/recommendation-confidence.js +1 -0
  456. package/dist/recommendation-ranking-options.d.ts +24 -0
  457. package/dist/recommendation-ranking-options.d.ts.map +1 -0
  458. package/dist/recommendation-ranking-options.js +1 -0
  459. package/dist/recommendation-ranking.d.ts +50 -0
  460. package/dist/recommendation-ranking.d.ts.map +1 -0
  461. package/dist/recommendation-ranking.js +527 -0
  462. package/dist/recommendation-source.d.ts +23 -0
  463. package/dist/recommendation-source.d.ts.map +1 -0
  464. package/dist/recommendation-source.js +23 -0
  465. package/dist/recommendation-suppression.d.ts +14 -0
  466. package/dist/recommendation-suppression.d.ts.map +1 -0
  467. package/dist/recommendation-suppression.js +14 -0
  468. package/dist/reference-asset-kind.d.ts +14 -0
  469. package/dist/reference-asset-kind.d.ts.map +1 -0
  470. package/dist/reference-asset-kind.js +14 -0
  471. package/dist/reference-content-check.d.ts +32 -0
  472. package/dist/reference-content-check.d.ts.map +1 -0
  473. package/dist/reference-content-check.js +143 -0
  474. package/dist/reference-failure.d.ts +31 -0
  475. package/dist/reference-failure.d.ts.map +1 -0
  476. package/dist/reference-failure.js +31 -0
  477. package/dist/reference-id-status.d.ts +15 -0
  478. package/dist/reference-id-status.d.ts.map +1 -0
  479. package/dist/reference-id-status.js +15 -0
  480. package/dist/reference-kind-declarations.d.ts +42 -0
  481. package/dist/reference-kind-declarations.d.ts.map +1 -0
  482. package/dist/reference-kind-declarations.js +142 -0
  483. package/dist/reference-lookup.d.ts +6 -0
  484. package/dist/reference-lookup.d.ts.map +1 -1
  485. package/dist/reference-lookup.js +13 -5
  486. package/dist/reference-registry.d.ts +109 -11
  487. package/dist/reference-registry.d.ts.map +1 -1
  488. package/dist/reference-registry.js +186 -30
  489. package/dist/reference-subject.d.ts +20 -0
  490. package/dist/reference-subject.d.ts.map +1 -0
  491. package/dist/reference-subject.js +1 -0
  492. package/dist/registration-hint-discovery-status.d.ts +25 -0
  493. package/dist/registration-hint-discovery-status.d.ts.map +1 -0
  494. package/dist/registration-hint-discovery-status.js +25 -0
  495. package/dist/registration-hint-registry.d.ts +80 -0
  496. package/dist/registration-hint-registry.d.ts.map +1 -1
  497. package/dist/registration-hint-registry.js +356 -138
  498. package/dist/registry-lifecycle.d.ts +200 -19
  499. package/dist/registry-lifecycle.d.ts.map +1 -1
  500. package/dist/registry-lifecycle.js +526 -136
  501. package/dist/release-readiness.d.ts.map +1 -1
  502. package/dist/release-readiness.js +10 -7
  503. package/dist/release-smoke.d.ts.map +1 -1
  504. package/dist/release-smoke.js +11 -7
  505. package/dist/report-site.d.ts.map +1 -1
  506. package/dist/report-site.js +25 -7
  507. package/dist/repository-intelligence.d.ts.map +1 -1
  508. package/dist/repository-intelligence.js +3 -2
  509. package/dist/repository-knowledge-model.d.ts.map +1 -1
  510. package/dist/repository-knowledge-model.js +18 -5
  511. package/dist/resolve-project-config.d.ts +64 -0
  512. package/dist/resolve-project-config.d.ts.map +1 -1
  513. package/dist/resolve-project-config.js +240 -32
  514. package/dist/reuse/compute-reuse-coverage.d.ts +29 -0
  515. package/dist/reuse/compute-reuse-coverage.d.ts.map +1 -0
  516. package/dist/reuse/compute-reuse-coverage.js +198 -0
  517. package/dist/reuse/rank-reuse-candidates.d.ts +38 -0
  518. package/dist/reuse/rank-reuse-candidates.d.ts.map +1 -0
  519. package/dist/reuse/rank-reuse-candidates.js +212 -0
  520. package/dist/reuse/rank-reuse-options.d.ts +20 -0
  521. package/dist/reuse/rank-reuse-options.d.ts.map +1 -0
  522. package/dist/reuse/rank-reuse-options.js +1 -0
  523. package/dist/reuse/rank-reuse-suggestions.d.ts +15 -0
  524. package/dist/reuse/rank-reuse-suggestions.d.ts.map +1 -0
  525. package/dist/reuse/rank-reuse-suggestions.js +31 -0
  526. package/dist/reuse/resolve-curated-reuse.d.ts +43 -0
  527. package/dist/reuse/resolve-curated-reuse.d.ts.map +1 -0
  528. package/dist/reuse/resolve-curated-reuse.js +115 -0
  529. package/dist/reuse/reuse-candidate.d.ts +29 -0
  530. package/dist/reuse/reuse-candidate.d.ts.map +1 -0
  531. package/dist/reuse/reuse-candidate.js +1 -0
  532. package/dist/reuse/reuse-coverage-report.d.ts +74 -0
  533. package/dist/reuse/reuse-coverage-report.d.ts.map +1 -0
  534. package/dist/reuse/reuse-coverage-report.js +1 -0
  535. package/dist/reuse/reuse-curated-coverage.d.ts +36 -0
  536. package/dist/reuse/reuse-curated-coverage.d.ts.map +1 -0
  537. package/dist/reuse/reuse-curated-coverage.js +1 -0
  538. package/dist/reuse/reuse-curated-resolution.d.ts +36 -0
  539. package/dist/reuse/reuse-curated-resolution.d.ts.map +1 -0
  540. package/dist/reuse/reuse-curated-resolution.js +1 -0
  541. package/dist/reuse/reuse-curated-status.d.ts +21 -0
  542. package/dist/reuse/reuse-curated-status.d.ts.map +1 -0
  543. package/dist/reuse/reuse-curated-status.js +21 -0
  544. package/dist/reuse/reuse-match-detail.d.ts +15 -0
  545. package/dist/reuse/reuse-match-detail.d.ts.map +1 -0
  546. package/dist/reuse/reuse-match-detail.js +1 -0
  547. package/dist/reuse/reuse-ranking.d.ts +37 -0
  548. package/dist/reuse/reuse-ranking.d.ts.map +1 -0
  549. package/dist/reuse/reuse-ranking.js +1 -0
  550. package/dist/reuse/reuse-suggestion.d.ts +19 -0
  551. package/dist/reuse/reuse-suggestion.d.ts.map +1 -0
  552. package/dist/reuse/reuse-suggestion.js +1 -0
  553. package/dist/reuse/reuse-symbol-lookup.d.ts +28 -0
  554. package/dist/reuse/reuse-symbol-lookup.d.ts.map +1 -0
  555. package/dist/reuse/reuse-symbol-lookup.js +1 -0
  556. package/dist/reuse/reuse-tokenize.d.ts +11 -0
  557. package/dist/reuse/reuse-tokenize.d.ts.map +1 -0
  558. package/dist/reuse/reuse-tokenize.js +26 -0
  559. package/dist/reuse/score-reuse-name.d.ts +16 -0
  560. package/dist/reuse/score-reuse-name.d.ts.map +1 -0
  561. package/dist/reuse/score-reuse-name.js +35 -0
  562. package/dist/reuse/score-reuse-primitive.d.ts +33 -0
  563. package/dist/reuse/score-reuse-primitive.d.ts.map +1 -0
  564. package/dist/reuse/score-reuse-primitive.js +92 -0
  565. package/dist/review-packet.d.ts +2 -0
  566. package/dist/review-packet.d.ts.map +1 -1
  567. package/dist/review-packet.js +13 -6
  568. package/dist/role-views.d.ts.map +1 -1
  569. package/dist/role-views.js +16 -16
  570. package/dist/routing-recommends-channels.d.ts +24 -0
  571. package/dist/routing-recommends-channels.d.ts.map +1 -0
  572. package/dist/routing-recommends-channels.js +19 -0
  573. package/dist/run-boundary-check.d.ts +118 -0
  574. package/dist/run-boundary-check.d.ts.map +1 -0
  575. package/dist/run-boundary-check.js +592 -0
  576. package/dist/safety-audit.js +1 -1
  577. package/dist/scaffold-coverage.js +1 -1
  578. package/dist/scaffold-pattern-doctor-report.d.ts +19 -0
  579. package/dist/scaffold-pattern-doctor-report.d.ts.map +1 -0
  580. package/dist/scaffold-pattern-doctor-report.js +54 -0
  581. package/dist/scaffold-patterns.d.ts +75 -1
  582. package/dist/scaffold-patterns.d.ts.map +1 -1
  583. package/dist/scaffold-patterns.js +375 -84
  584. package/dist/schema-inventory.d.ts.map +1 -1
  585. package/dist/schema-inventory.js +4 -3
  586. package/dist/search-document-id.d.ts +52 -0
  587. package/dist/search-document-id.d.ts.map +1 -0
  588. package/dist/search-document-id.js +72 -0
  589. package/dist/search-document-prefix.d.ts +7 -0
  590. package/dist/search-document-prefix.d.ts.map +1 -0
  591. package/dist/search-document-prefix.js +1 -0
  592. package/dist/search-index.d.ts.map +1 -1
  593. package/dist/search-index.js +20 -23
  594. package/dist/search-tuning-explain.d.ts +6 -0
  595. package/dist/search-tuning-explain.d.ts.map +1 -1
  596. package/dist/search-tuning-explain.js +19 -17
  597. package/dist/search-tuning-key-probes.d.ts +16 -0
  598. package/dist/search-tuning-key-probes.d.ts.map +1 -0
  599. package/dist/search-tuning-key-probes.js +65 -0
  600. package/dist/search-tuning-key-resolution.d.ts +25 -0
  601. package/dist/search-tuning-key-resolution.d.ts.map +1 -0
  602. package/dist/search-tuning-key-resolution.js +1 -0
  603. package/dist/search-tuning-key-resolver.d.ts +4 -0
  604. package/dist/search-tuning-key-resolver.d.ts.map +1 -0
  605. package/dist/search-tuning-key-resolver.js +107 -0
  606. package/dist/search-tuning-key-status.d.ts +24 -0
  607. package/dist/search-tuning-key-status.d.ts.map +1 -0
  608. package/dist/search-tuning-key-status.js +24 -0
  609. package/dist/search-tuning-lint.d.ts +9 -0
  610. package/dist/search-tuning-lint.d.ts.map +1 -0
  611. package/dist/search-tuning-lint.js +468 -0
  612. package/dist/search-tuning-registry.d.ts +43 -0
  613. package/dist/search-tuning-registry.d.ts.map +1 -1
  614. package/dist/search-tuning-registry.js +214 -49
  615. package/dist/self-audit.d.ts +12 -0
  616. package/dist/self-audit.d.ts.map +1 -1
  617. package/dist/self-audit.js +36 -10
  618. package/dist/self-config-doctor-v2.d.ts +145 -3
  619. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  620. package/dist/self-config-doctor-v2.js +1304 -181
  621. package/dist/self-config-doctor.d.ts +20 -1
  622. package/dist/self-config-doctor.d.ts.map +1 -1
  623. package/dist/self-config-doctor.js +53 -280
  624. package/dist/settled-unit-states.d.ts +9 -0
  625. package/dist/settled-unit-states.d.ts.map +1 -0
  626. package/dist/settled-unit-states.js +14 -0
  627. package/dist/sharkcraft-inspector.d.ts +34 -0
  628. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  629. package/dist/sharkcraft-inspector.js +273 -26
  630. package/dist/spec/spec-evidence.d.ts.map +1 -1
  631. package/dist/spec/spec-evidence.js +14 -20
  632. package/dist/split-identifier.d.ts +21 -0
  633. package/dist/split-identifier.d.ts.map +1 -0
  634. package/dist/split-identifier.js +27 -0
  635. package/dist/start-here.d.ts.map +1 -1
  636. package/dist/start-here.js +1 -2
  637. package/dist/substitute-placeholders.d.ts +8 -0
  638. package/dist/substitute-placeholders.d.ts.map +1 -0
  639. package/dist/substitute-placeholders.js +9 -0
  640. package/dist/symbol-index.d.ts +33 -0
  641. package/dist/symbol-index.d.ts.map +1 -1
  642. package/dist/symbol-index.js +241 -3
  643. package/dist/symbol-member-entry.d.ts +26 -0
  644. package/dist/symbol-member-entry.d.ts.map +1 -0
  645. package/dist/symbol-member-entry.js +1 -0
  646. package/dist/symbol-member-kind.d.ts +14 -0
  647. package/dist/symbol-member-kind.d.ts.map +1 -0
  648. package/dist/symbol-member-kind.js +14 -0
  649. package/dist/task-packet.d.ts.map +1 -1
  650. package/dist/task-packet.js +52 -9
  651. package/dist/task-ranker.d.ts +8 -0
  652. package/dist/task-ranker.d.ts.map +1 -1
  653. package/dist/task-ranker.js +25 -13
  654. package/dist/task-risk.js +1 -1
  655. package/dist/task-routing-hint-registry.d.ts +20 -1
  656. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  657. package/dist/task-routing-hint-registry.js +186 -42
  658. package/dist/template-drift.d.ts.map +1 -1
  659. package/dist/template-drift.js +30 -9
  660. package/dist/template-lint.d.ts.map +1 -1
  661. package/dist/template-lint.js +160 -2
  662. package/dist/term-query.d.ts +10 -0
  663. package/dist/term-query.d.ts.map +1 -0
  664. package/dist/term-query.js +1 -0
  665. package/dist/test-definitions.d.ts +6 -3
  666. package/dist/test-definitions.d.ts.map +1 -1
  667. package/dist/test-runner.d.ts +95 -10
  668. package/dist/test-runner.d.ts.map +1 -1
  669. package/dist/test-runner.js +309 -308
  670. package/dist/tuning-query-tokens.d.ts +29 -0
  671. package/dist/tuning-query-tokens.d.ts.map +1 -0
  672. package/dist/tuning-query-tokens.js +51 -0
  673. package/dist/typecheck-files.d.ts +36 -0
  674. package/dist/typecheck-files.d.ts.map +1 -0
  675. package/dist/typecheck-files.js +158 -0
  676. package/dist/uncertainty.js +1 -1
  677. package/dist/universal-search.d.ts.map +1 -1
  678. package/dist/universal-search.js +5 -3
  679. package/dist/unregistered-exports.d.ts +19 -0
  680. package/dist/unregistered-exports.d.ts.map +1 -0
  681. package/dist/unregistered-exports.js +141 -0
  682. package/dist/unresolvable-reason.d.ts +11 -0
  683. package/dist/unresolvable-reason.d.ts.map +1 -0
  684. package/dist/unresolvable-reason.js +11 -0
  685. package/dist/upgrade-advisor.d.ts.map +1 -1
  686. package/dist/upgrade-advisor.js +16 -9
  687. package/dist/validate-contribution-file.d.ts +4 -0
  688. package/dist/validate-contribution-file.d.ts.map +1 -0
  689. package/dist/validate-contribution-file.js +228 -0
  690. package/dist/why-file.d.ts +3 -0
  691. package/dist/why-file.d.ts.map +1 -1
  692. package/dist/why-file.js +7 -3
  693. package/package.json +17 -17
@@ -0,0 +1,72 @@
1
+ /**
2
+ * One row per prefix. `Record<SearchDocumentPrefix, …>` makes a prefix added
3
+ * to the type without a row here a compile error.
4
+ */
5
+ const PREFIXES = Object.freeze({
6
+ knowledge: { referenceKind: 'knowledge', searchKind: 'knowledge' },
7
+ rule: { referenceKind: 'rule', searchKind: 'rule' },
8
+ path: { referenceKind: 'path-convention', searchKind: 'path' },
9
+ template: { referenceKind: 'template', searchKind: 'template' },
10
+ pipeline: { referenceKind: 'pipeline', searchKind: 'pipeline' },
11
+ boundary: { referenceKind: 'boundary-rule', searchKind: 'boundary' },
12
+ construct: { referenceKind: 'construct', searchKind: 'construct' },
13
+ playbook: { referenceKind: 'playbook', searchKind: 'playbook' },
14
+ // No id registry: presets, packs, bundles, sessions, construct facets and
15
+ // docs are indexed, but nothing answers "does this id exist?" for them, so a
16
+ // key naming one is UNVERIFIED — never "missing".
17
+ preset: { referenceKind: null, searchKind: 'preset' },
18
+ pack: { referenceKind: null, searchKind: 'pack' },
19
+ bundle: { referenceKind: null, searchKind: 'bundle' },
20
+ session: { referenceKind: null, searchKind: 'session' },
21
+ facet: { referenceKind: null, searchKind: 'construct-facet' },
22
+ doc: { referenceKind: null, searchKind: 'doc' },
23
+ });
24
+ /** Every search-document prefix, in declaration order. */
25
+ export const SEARCH_DOCUMENT_PREFIXES = Object.freeze(Object.keys(PREFIXES));
26
+ /** Prefix → the id registry its ids resolve against (`null` = none). */
27
+ export const SEARCH_DOCUMENT_ID_KINDS = Object.freeze(Object.fromEntries(SEARCH_DOCUMENT_PREFIXES.map((p) => [p, PREFIXES[p].referenceKind])));
28
+ /** `searchDocumentId('knowledge', 'auth.login')` → `knowledge:auth.login`. */
29
+ export function searchDocumentId(prefix, id) {
30
+ return `${prefix}:${id}`;
31
+ }
32
+ /**
33
+ * `<prefix>:<id>` → `{ prefix, id }`, split on the FIRST `:`. `null` when the
34
+ * key has no `:` or either side is empty. The prefix is NOT validated — pair
35
+ * with {@link isSearchDocumentPrefix}.
36
+ */
37
+ export function parseSearchDocumentId(key) {
38
+ const at = key.indexOf(':');
39
+ if (at <= 0 || at === key.length - 1)
40
+ return null;
41
+ return { prefix: key.slice(0, at), id: key.slice(at + 1) };
42
+ }
43
+ /** True when `prefix` is one `buildSearchIndex` emits. */
44
+ export function isSearchDocumentPrefix(prefix) {
45
+ return Object.prototype.hasOwnProperty.call(PREFIXES, prefix);
46
+ }
47
+ /** The `SearchKind` value the prefix's documents carry, or `undefined`. */
48
+ export function searchKindForPrefix(prefix) {
49
+ return isSearchDocumentPrefix(prefix) ? PREFIXES[prefix].searchKind : undefined;
50
+ }
51
+ /** The prefix whose documents carry `searchKind` (`construct-facet` → `facet`). */
52
+ export function searchDocumentPrefixForKind(searchKind) {
53
+ return SEARCH_DOCUMENT_PREFIXES.find((p) => PREFIXES[p].searchKind === searchKind);
54
+ }
55
+ /** The prefix whose ids live in `kind`'s registry (`path-convention` → `path`). */
56
+ export function searchDocumentPrefixForReferenceKind(kind) {
57
+ return SEARCH_DOCUMENT_PREFIXES.find((p) => PREFIXES[p].referenceKind === kind);
58
+ }
59
+ /**
60
+ * The registry entry a search-document id names: `knowledge:gamma.entry` →
61
+ * `{ referenceKind: 'knowledge', id: 'gamma.entry' }`. `undefined` when the id
62
+ * does not parse, its prefix is not one the index emits, or its prefix has no
63
+ * id registry (`doc:`, `preset:`, `facet:`, …) — such a document exists, but
64
+ * no registry can be asked about it.
65
+ */
66
+ export function searchDocumentReference(docId) {
67
+ const parsed = parseSearchDocumentId(docId);
68
+ if (!parsed || !isSearchDocumentPrefix(parsed.prefix))
69
+ return undefined;
70
+ const referenceKind = PREFIXES[parsed.prefix].referenceKind;
71
+ return referenceKind === null ? undefined : { referenceKind, id: parsed.id };
72
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Every `<prefix>` a search-document id (`<prefix>:<id>`) can carry — exactly
3
+ * the prefixes `buildSearchIndex` emits. See `search-document-id.ts`, the one
4
+ * codec for the format.
5
+ */
6
+ export type SearchDocumentPrefix = 'knowledge' | 'rule' | 'path' | 'template' | 'pipeline' | 'preset' | 'pack' | 'boundary' | 'bundle' | 'session' | 'construct' | 'facet' | 'playbook' | 'doc';
7
+ //# sourceMappingURL=search-document-prefix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-document-prefix.d.ts","sourceRoot":"","sources":["../src/search-document-prefix.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,WAAW,GACX,OAAO,GACP,UAAU,GACV,KAAK,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"search-index.d.ts","sourceRoot":"","sources":["../src/search-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKvE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,cAAc,oBAAoB;IAClC,QAAQ,aAAa;IACrB,eAAe,qBAAqB;IACpC,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;CACzD;AA0FD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,CAgOrF;AAmHD,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,qBAAqB,GACjC,aAAa,CA2Df;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAe9D"}
1
+ {"version":3,"file":"search-index.d.ts","sourceRoot":"","sources":["../src/search-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKvE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAIrC,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,cAAc,oBAAoB;IAClC,QAAQ,aAAa;IACrB,eAAe,qBAAqB;IACpC,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;CACzD;AA0FD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,EAAE,CAyNrF;AAmHD,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,qBAAqB,GACjC,aAAa,CA8Df;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAe9D"}
@@ -5,6 +5,8 @@ import { listDevSessionsDetailed } from "./dev-session.js";
5
5
  import { listConstructs } from "./construct-registry.js";
6
6
  import { listPlaybooks } from "./playbook-registry.js";
7
7
  import { listSearchTuning, tuningBoostFor, } from "./search-tuning-registry.js";
8
+ import { searchDocumentId } from "./search-document-id.js";
9
+ import { tuningQueryTokens } from "./tuning-query-tokens.js";
8
10
  export const SEARCH_INDEX_SCHEMA = 'sharkcraft.search-index/v1';
9
11
  export var SearchKind;
10
12
  (function (SearchKind) {
@@ -111,7 +113,7 @@ function loadDocFiles(projectRoot) {
111
113
  const titleMatch = /^#\s+(.+)/m.exec(content);
112
114
  const title = titleMatch?.[1]?.trim() ?? f.replace(/\.md$/, '');
113
115
  out.push({
114
- id: `doc:${f}`,
116
+ id: searchDocumentId('doc', f),
115
117
  kind: SearchKind.Doc,
116
118
  title,
117
119
  content: safeContent(content, 1200),
@@ -130,7 +132,7 @@ export function buildSearchIndex(inspection) {
130
132
  for (const k of inspection.knowledgeEntries) {
131
133
  const src = inspection.entrySources.get(k.id);
132
134
  docs.push({
133
- id: `knowledge:${k.id}`,
135
+ id: searchDocumentId('knowledge', k.id),
134
136
  kind: SearchKind.Knowledge,
135
137
  title: k.title ?? k.id,
136
138
  content: safeContent([k.summary ?? '', k.content ?? ''].filter(Boolean).join('\n\n'), 1200),
@@ -144,7 +146,7 @@ export function buildSearchIndex(inspection) {
144
146
  }
145
147
  for (const r of inspection.ruleService.list()) {
146
148
  docs.push({
147
- id: `rule:${r.id}`,
149
+ id: searchDocumentId('rule', r.id),
148
150
  kind: SearchKind.Rule,
149
151
  title: r.title ?? r.id,
150
152
  content: safeContent(r.summary ?? r.content ?? '', 800),
@@ -163,7 +165,7 @@ export function buildSearchIndex(inspection) {
163
165
  for (const p of inspection.pathService.list()) {
164
166
  const meta = (p.metadata ?? {});
165
167
  docs.push({
166
- id: `path:${p.id}`,
168
+ id: searchDocumentId('path', p.id),
167
169
  kind: SearchKind.Path,
168
170
  title: p.title ?? p.id,
169
171
  content: safeContent(meta.description ?? p.summary ?? p.content ?? '', 400),
@@ -179,7 +181,7 @@ export function buildSearchIndex(inspection) {
179
181
  for (const t of inspection.templateRegistry.list()) {
180
182
  const src = inspection.templateSources.get(t.id);
181
183
  docs.push({
182
- id: `template:${t.id}`,
184
+ id: searchDocumentId('template', t.id),
183
185
  kind: SearchKind.Template,
184
186
  title: t.name ?? t.id,
185
187
  content: safeContent(t.description ?? '', 800),
@@ -194,7 +196,7 @@ export function buildSearchIndex(inspection) {
194
196
  for (const p of inspection.pipelineRegistry.list()) {
195
197
  const src = inspection.pipelineSources.get(p.id);
196
198
  docs.push({
197
- id: `pipeline:${p.id}`,
199
+ id: searchDocumentId('pipeline', p.id),
198
200
  kind: SearchKind.Pipeline,
199
201
  title: p.title ?? p.id,
200
202
  content: safeContent(p.description ?? '', 800),
@@ -210,7 +212,7 @@ export function buildSearchIndex(inspection) {
210
212
  for (const p of presets) {
211
213
  const src = inspection.presetSources?.get(p.id);
212
214
  docs.push({
213
- id: `preset:${p.id}`,
215
+ id: searchDocumentId('preset', p.id),
214
216
  kind: SearchKind.Preset,
215
217
  title: p.name ?? p.id,
216
218
  content: safeContent(p.description ?? '', 400),
@@ -224,7 +226,7 @@ export function buildSearchIndex(inspection) {
224
226
  }
225
227
  for (const pack of inspection.packs.validPacks ?? []) {
226
228
  docs.push({
227
- id: `pack:${pack.packageName}`,
229
+ id: searchDocumentId('pack', pack.packageName),
228
230
  kind: SearchKind.Pack,
229
231
  title: pack.packageName,
230
232
  content: safeContent(pack.manifest?.info?.description ?? '', 400),
@@ -238,7 +240,7 @@ export function buildSearchIndex(inspection) {
238
240
  for (const r of inspection.boundaryRegistry.list()) {
239
241
  const rb = r;
240
242
  docs.push({
241
- id: `boundary:${r.id}`,
243
+ id: searchDocumentId('boundary', r.id),
242
244
  kind: SearchKind.Boundary,
243
245
  title: rb.title ?? r.id,
244
246
  content: safeContent(rb.description ?? rb.message ?? '', 400),
@@ -251,20 +253,12 @@ export function buildSearchIndex(inspection) {
251
253
  },
252
254
  });
253
255
  }
254
- // Policies (registered checks).
255
- try {
256
- const cfg = inspection.config;
257
- void cfg;
258
- }
259
- catch {
260
- /* ignore */
261
- }
262
256
  // Bundles, sessions.
263
257
  try {
264
258
  const bundles = listFeatureBundles(inspection.projectRoot);
265
259
  for (const b of bundles) {
266
260
  docs.push({
267
- id: `bundle:${b.id}`,
261
+ id: searchDocumentId('bundle', b.id),
268
262
  kind: SearchKind.Bundle,
269
263
  title: b.task ?? b.id,
270
264
  content: safeContent(b.task ?? '', 400),
@@ -280,7 +274,7 @@ export function buildSearchIndex(inspection) {
280
274
  const sessions = listDevSessionsDetailed(inspection.projectRoot);
281
275
  for (const s of sessions) {
282
276
  docs.push({
283
- id: `session:${s.id}`,
277
+ id: searchDocumentId('session', s.id),
284
278
  kind: SearchKind.Session,
285
279
  title: s.task || s.id,
286
280
  source: SearchSource.Session,
@@ -296,7 +290,7 @@ export function buildSearchIndex(inspection) {
296
290
  const constructs = listConstructs(inspection);
297
291
  for (const c of constructs) {
298
292
  docs.push({
299
- id: `construct:${c.id}`,
293
+ id: searchDocumentId('construct', c.id),
300
294
  kind: SearchKind.Construct,
301
295
  title: c.title ?? c.id,
302
296
  content: safeContent(c.description ?? '', 600),
@@ -307,7 +301,7 @@ export function buildSearchIndex(inspection) {
307
301
  });
308
302
  for (const f of facetsFor(c)) {
309
303
  docs.push({
310
- id: `facet:${c.id}:${f.id}`,
304
+ id: searchDocumentId('facet', `${c.id}:${f.id}`),
311
305
  kind: SearchKind.ConstructFacet,
312
306
  title: `${c.id} / ${f.kind}: ${f.value}`,
313
307
  content: safeContent(f.description ?? '', 200),
@@ -324,7 +318,7 @@ export function buildSearchIndex(inspection) {
324
318
  const playbooks = listPlaybooks(inspection);
325
319
  for (const p of playbooks) {
326
320
  docs.push({
327
- id: `playbook:${p.id}`,
321
+ id: searchDocumentId('playbook', p.id),
328
322
  kind: SearchKind.Playbook,
329
323
  title: p.title ?? p.id,
330
324
  content: safeContent(p.description ?? '', 600),
@@ -462,6 +456,9 @@ export function searchIndex(index, options, inspection) {
462
456
  }
463
457
  const tokens = tokenize(query.toLowerCase());
464
458
  const tuning = options.tuning ?? (inspection ? listSearchTuning(inspection) : []);
459
+ // Scoring keeps its own tokens; trigger matching reads THE tuning tokenizer,
460
+ // the same one the task ranker, the context re-ranker and `why` read.
461
+ const tuningTokens = tuningQueryTokens(query);
465
462
  const hits = [];
466
463
  for (const doc of index) {
467
464
  const { score, matchedFields, reasons } = scoreDocument(doc, query, tokens, options);
@@ -470,7 +467,7 @@ export function searchIndex(index, options, inspection) {
470
467
  let finalScore = score;
471
468
  let finalReasons = options.explain ? [...reasons] : [];
472
469
  if (tuning.length > 0) {
473
- const boost = tuningBoostFor({ id: doc.id, kind: doc.kind, ...(doc.tags ? { tags: doc.tags } : {}), source: doc.source }, tokens, tuning);
470
+ const boost = tuningBoostFor({ id: doc.id, kind: doc.kind, ...(doc.tags ? { tags: doc.tags } : {}), source: doc.source }, tuningTokens, tuning);
474
471
  if (boost.delta !== 0) {
475
472
  finalScore += boost.delta;
476
473
  if (options.explain)
@@ -49,11 +49,17 @@ export interface ISearchTuningExplainReport {
49
49
  mergeStrategy?: 'sum' | 'max';
50
50
  }[];
51
51
  matched: readonly ITuningMatch[];
52
+ /**
53
+ * Every boost the ±cap changed. A per-boost clamp names its tuning and key;
54
+ * the global total cap is a row with `key: 'total'` and the `docId` it
55
+ * discarded tuning on (it used to be applied silently).
56
+ */
52
57
  cappedBoosts: readonly {
53
58
  tuningId: string;
54
59
  key: string;
55
60
  original: number;
56
61
  clamped: number;
62
+ docId?: string;
57
63
  }[];
58
64
  topResults: readonly IPerHitTuningExplain[];
59
65
  warnings: readonly {
@@ -1 +1 @@
1
- {"version":3,"file":"search-tuning-explain.d.ts","sourceRoot":"","sources":["../src/search-tuning-explain.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,wCAAwC,CAAC;AAElF,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iFAAiF;IACjF,WAAW,CAAC,EAAE,SAAS;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;QACxB,YAAY,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC7D,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,EAAE,SAAS;QAAE,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC3E;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,SAAS;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KAC/B,EAAE,CAAC;IACJ,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,YAAY,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9F,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3E;AAyCD,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CA0ErC;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM,CA0DtF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM,CAiClF"}
1
+ {"version":3,"file":"search-tuning-explain.d.ts","sourceRoot":"","sources":["../src/search-tuning-explain.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,4BAA4B,wCAAwC,CAAC;AAElF,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iFAAiF;IACjF,WAAW,CAAC,EAAE,SAAS;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;QACxB,YAAY,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC7D,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,EAAE,SAAS;QAAE,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC3E;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,SAAS;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KAC/B,EAAE,CAAC;IACJ,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC;;;;OAIG;IACH,YAAY,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9G,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3E;AAiCD,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAmFrC;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM,CA0DtF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM,CAiClF"}
@@ -1,13 +1,7 @@
1
1
  import { buildSearchIndex, searchIndex } from "./search-index.js";
2
2
  import { listSearchTuning, listSearchTuningIssues, loadSearchTuning, tuningBoostFor, } from "./search-tuning-registry.js";
3
+ import { tuningQueryTokens } from "./tuning-query-tokens.js";
3
4
  export const SEARCH_TUNING_EXPLAIN_SCHEMA = 'sharkcraft.search-tuning-explain/v1';
4
- function tokenize(query) {
5
- return query
6
- .toLowerCase()
7
- .split(/[\s,\.;:\/]+/)
8
- .map((t) => t.trim())
9
- .filter((t) => t.length > 1);
10
- }
11
5
  function describeBoost(entry, tokens) {
12
6
  const matchedTags = entry.boostTags ? Object.keys(entry.boostTags) : [];
13
7
  const matchedKinds = [];
@@ -49,19 +43,18 @@ export async function explainSearchTuning(inspection, query, options = {}) {
49
43
  await loadSearchTuning(inspection);
50
44
  const tuning = listSearchTuning(inspection);
51
45
  const issues = listSearchTuningIssues(inspection);
52
- const tokens = tokenize(query);
46
+ // THE trigger tokenizer — the one `searchIndex` hands `tuningBoostFor`.
47
+ const tokens = tuningQueryTokens(query);
53
48
  const matched = tuning.map((t) => describeBoost(t, tokens));
49
+ // Structured fields from the loader, not a regex over the message text.
54
50
  const cappedBoosts = issues
55
51
  .filter((i) => i.code === 'boost-clamped')
56
- .map((i) => {
57
- const parsed = /Boost for "([^"]+)" clamped to (\S+) \(was (\S+)\)/.exec(i.message);
58
- return {
59
- ...(i.tuningId ? { tuningId: i.tuningId } : { tuningId: '(unknown)' }),
60
- key: parsed?.[1] ?? '?',
61
- clamped: parsed ? Number(parsed[2]) : 0,
62
- original: parsed ? Number(parsed[3]) : 0,
63
- };
64
- });
52
+ .map((i) => ({
53
+ tuningId: i.tuningId ?? '(unknown)',
54
+ key: i.key ?? '?',
55
+ clamped: i.clamped ?? 0,
56
+ original: i.original ?? 0,
57
+ }));
65
58
  const index = buildSearchIndex(inspection);
66
59
  const opts = { query, limit: Math.max(5, options.topN ?? 5), explain: true };
67
60
  const baseline = searchIndex(index, { ...opts, tuning: [] });
@@ -79,6 +72,15 @@ export async function explainSearchTuning(inspection, query, options = {}) {
79
72
  ...(h.document.tags ? { tags: h.document.tags } : {}),
80
73
  source: h.document.source,
81
74
  }, tokens, tuning);
75
+ if (boost.capped) {
76
+ cappedBoosts.push({
77
+ tuningId: '(combined)',
78
+ key: 'total',
79
+ docId: h.document.id,
80
+ original: boost.capped.raw,
81
+ clamped: boost.capped.applied,
82
+ });
83
+ }
82
84
  topResults.push({
83
85
  docId: h.document.id,
84
86
  title: h.document.title,
@@ -0,0 +1,16 @@
1
+ import type { ISearchTuningKeyProbe } from './i-search-tuning-key-probe.js';
2
+ import { type ISearchTuningEntry } from './search-tuning-registry.js';
3
+ import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
4
+ /**
5
+ * THE boost-key probes (round 13): every (entry, key) declared in an id boost
6
+ * map, with the maps it sits in, the entry's expectEmpty markers on it, and
7
+ * THE key resolver's answer (resolved once per distinct key). `lintSearchTuning`
8
+ * settles and words them (`search tuning doctor`, the self-config doctor), and
9
+ * `collectUnresolvableReferences` reads them for `packs contributions` — one
10
+ * answer to "could this boost key be checked?".
11
+ *
12
+ * Callers load the entries (`loadSearchTuning`) and warm the reference
13
+ * registries (`warmReferenceRegistries`) first.
14
+ */
15
+ export declare function searchTuningKeyProbes(inspection: ISharkcraftInspection, entries: readonly ISearchTuningEntry[]): readonly ISearchTuningKeyProbe[];
16
+ //# sourceMappingURL=search-tuning-key-probes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tuning-key-probes.d.ts","sourceRoot":"","sources":["../src/search-tuning-key-probes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAI5E,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,SAAS,qBAAqB,EAAE,CAkDlC"}
@@ -0,0 +1,65 @@
1
+ import { isSearchDocumentPrefix, searchKindForPrefix } from "./search-document-id.js";
2
+ import { resolveSearchTuningKey } from "./search-tuning-key-resolver.js";
3
+ import { SEARCH_TUNING_BOOST_IDS, searchTuningTaskHintBoostIdsPath, } from "./search-tuning-registry.js";
4
+ /**
5
+ * THE boost-key probes (round 13): every (entry, key) declared in an id boost
6
+ * map, with the maps it sits in, the entry's expectEmpty markers on it, and
7
+ * THE key resolver's answer (resolved once per distinct key). `lintSearchTuning`
8
+ * settles and words them (`search tuning doctor`, the self-config doctor), and
9
+ * `collectUnresolvableReferences` reads them for `packs contributions` — one
10
+ * answer to "could this boost key be checked?".
11
+ *
12
+ * Callers load the entries (`loadSearchTuning`) and warm the reference
13
+ * registries (`warmReferenceRegistries`) first.
14
+ */
15
+ export function searchTuningKeyProbes(inspection, entries) {
16
+ const resolutions = new Map();
17
+ const resolve = (key) => {
18
+ let r = resolutions.get(key);
19
+ if (!r) {
20
+ r = resolveSearchTuningKey(inspection, key);
21
+ resolutions.set(key, r);
22
+ }
23
+ return r;
24
+ };
25
+ const probes = [];
26
+ for (const e of entries) {
27
+ const ledger = new Map((e.expectEmptyUnits ?? []).map((m) => [`${m.list} ${m.unit}`, m]));
28
+ const maps = [
29
+ [SEARCH_TUNING_BOOST_IDS, e.boostIds],
30
+ ...(e.taskHints ?? []).map((h, i) => [searchTuningTaskHintBoostIdsPath(i), h.boostIds]),
31
+ ];
32
+ // One probe per (entry, key): the same key in three maps is one declaration
33
+ // (one finding, `declared 3 times`), carrying every map and every marker.
34
+ const byKey = new Map();
35
+ for (const [list, map] of maps) {
36
+ for (const key of Object.keys(map ?? {})) {
37
+ const d = byKey.get(key) ?? { lists: [], marks: [] };
38
+ d.lists.push(list);
39
+ const mark = ledger.get(`${list} ${key}`);
40
+ if (mark)
41
+ d.marks.push(mark);
42
+ byKey.set(key, d);
43
+ }
44
+ }
45
+ for (const [key, d] of byKey) {
46
+ const resolution = resolve(key);
47
+ const kind = resolution.prefix !== undefined && isSearchDocumentPrefix(resolution.prefix)
48
+ ? (searchKindForPrefix(resolution.prefix) ?? resolution.prefix)
49
+ : undefined;
50
+ const excludedKind = kind !== undefined && e.appliesToKinds && !e.appliesToKinds.includes(kind) ? kind : undefined;
51
+ probes.push({
52
+ tuningId: e.id,
53
+ key,
54
+ lists: d.lists,
55
+ marks: d.marks,
56
+ resolution,
57
+ ...(e.appliesToKinds ? { appliesToKinds: e.appliesToKinds } : {}),
58
+ ...(excludedKind !== undefined ? { excludedKind } : {}),
59
+ ...(e.sourceFile ? { sourceFile: e.sourceFile } : {}),
60
+ ...(e.packageName ? { packageName: e.packageName } : {}),
61
+ });
62
+ }
63
+ }
64
+ return probes;
65
+ }
@@ -0,0 +1,25 @@
1
+ import type { ReferenceKind } from './reference-registry.js';
2
+ import type { SearchTuningKeyStatus } from './search-tuning-key-status.js';
3
+ /** The answer {@link resolveSearchTuningKey} gives for one boost key. */
4
+ export interface ISearchTuningKeyResolution {
5
+ /** The boost key exactly as declared. */
6
+ readonly key: string;
7
+ readonly status: SearchTuningKeyStatus;
8
+ /** The `<prefix>` when the key parsed as `<prefix>:<id>`. */
9
+ readonly prefix?: string;
10
+ /** The right-hand id — the WHOLE key when it has no prefix. */
11
+ readonly id: string;
12
+ /** The registry the id was (or would be) resolved in. */
13
+ readonly referenceKind?: ReferenceKind;
14
+ /**
15
+ * The key to write instead: the prefixed form of an unprefixed key, the
16
+ * nearest registered id of a missing one, or the nearest real prefix of an
17
+ * unknown kind.
18
+ */
19
+ readonly suggestion?: string;
20
+ /** Every prefixed form an unprefixed key resolves as (when more than one kind lists it). */
21
+ readonly suggestions?: readonly string[];
22
+ /** Why — always set for `unverified`, so the skip is never silent. */
23
+ readonly reason?: string;
24
+ }
25
+ //# sourceMappingURL=search-tuning-key-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tuning-key-resolution.d.ts","sourceRoot":"","sources":["../src/search-tuning-key-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,yEAAyE;AACzE,MAAM,WAAW,0BAA0B;IACzC,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4FAA4F;IAC5F,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ISearchTuningKeyResolution } from './search-tuning-key-resolution.js';
2
+ import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
3
+ export declare function resolveSearchTuningKey(inspection: ISharkcraftInspection, key: string): ISearchTuningKeyResolution;
4
+ //# sourceMappingURL=search-tuning-key-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tuning-key-resolver.d.ts","sourceRoot":"","sources":["../src/search-tuning-key-resolver.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAiBvE,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,qBAAqB,EACjC,GAAG,EAAE,MAAM,GACV,0BAA0B,CA4E5B"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * THE resolver for search-tuning boost keys.
3
+ *
4
+ * A boost key is a search-document id, `<kind>:<id>` — the matcher
5
+ * (`tuningBoostFor`) compares `boostIds[doc.id]` against the WHOLE document id.
6
+ * The self-config doctor used to look that whole prefixed key up in BARE-id
7
+ * registries, so every correctly prefixed key (which fires) was reported
8
+ * "unknown", and a bare key (which can never fire) passed. On a healthy pack
9
+ * that was 200 false warnings inviting the deletion of correct config, and on
10
+ * shrk itself it certified 33 dead entries.
11
+ *
12
+ * The key is split on its FIRST `:` by THE codec (`search-document-id.ts`), and
13
+ * the right-hand id is resolved WITHIN the named kind through THE id resolver
14
+ * (`reference-registry.ts`). Callers must `warmReferenceRegistries` first.
15
+ */
16
+ import { nearestIds } from "./nearest-id.js";
17
+ import { emptyReferenceKinds, referenceIdExists, referenceIdsFor, referenceKindOf, } from "./reference-registry.js";
18
+ import { isSearchDocumentPrefix, parseSearchDocumentId, SEARCH_DOCUMENT_ID_KINDS, SEARCH_DOCUMENT_PREFIXES, searchDocumentId, } from "./search-document-id.js";
19
+ import { SearchTuningKeyStatus } from "./search-tuning-key-status.js";
20
+ /** Every prefixed key a BARE id resolves as, with the kind it resolved in, in prefix order. */
21
+ function prefixedFormsOf(inspection, bareId) {
22
+ const out = [];
23
+ for (const prefix of SEARCH_DOCUMENT_PREFIXES) {
24
+ const kind = SEARCH_DOCUMENT_ID_KINDS[prefix];
25
+ if (kind !== null && referenceIdExists(inspection, kind, bareId)) {
26
+ out.push({ key: searchDocumentId(prefix, bareId), kind });
27
+ }
28
+ }
29
+ return out;
30
+ }
31
+ export function resolveSearchTuningKey(inspection, key) {
32
+ const parsed = parseSearchDocumentId(key);
33
+ if (parsed && isSearchDocumentPrefix(parsed.prefix)) {
34
+ const { prefix, id } = parsed;
35
+ const kind = SEARCH_DOCUMENT_ID_KINDS[prefix];
36
+ if (kind === null) {
37
+ return {
38
+ key,
39
+ status: SearchTuningKeyStatus.Unverified,
40
+ prefix,
41
+ id,
42
+ reason: `\`${prefix}:\` documents have no id registry, so "${id}" cannot be checked`,
43
+ };
44
+ }
45
+ if (emptyReferenceKinds(inspection, [kind]).length > 0) {
46
+ return {
47
+ key,
48
+ status: SearchTuningKeyStatus.Unverified,
49
+ prefix,
50
+ id,
51
+ referenceKind: kind,
52
+ reason: `no ${kind} is registered in this workspace (or its registry did not load), so "${id}" cannot be checked`,
53
+ };
54
+ }
55
+ if (referenceIdExists(inspection, kind, id)) {
56
+ return { key, status: SearchTuningKeyStatus.Resolved, prefix, id, referenceKind: kind };
57
+ }
58
+ const near = nearestIds(id, referenceIdsFor(inspection, kind), 1)[0];
59
+ return {
60
+ key,
61
+ status: SearchTuningKeyStatus.Missing,
62
+ prefix,
63
+ id,
64
+ referenceKind: kind,
65
+ ...(near ? { suggestion: searchDocumentId(prefix, near.id) } : {}),
66
+ };
67
+ }
68
+ // Not `<known prefix>:<id>`. A WHOLE key that resolves as a bare id is the
69
+ // common mistake: it reads right and never fires.
70
+ const forms = prefixedFormsOf(inspection, key);
71
+ if (forms.length > 0) {
72
+ return {
73
+ key,
74
+ status: SearchTuningKeyStatus.Unprefixed,
75
+ id: key,
76
+ // The kind the bare id DID resolve in (the field's contract: "the
77
+ // registry the id was resolved in"). Without it a consumer labelling the
78
+ // target had nothing but `unknown` for an id that exists (round 12, 12.4).
79
+ referenceKind: forms[0].kind,
80
+ suggestion: forms[0].key,
81
+ ...(forms.length > 1 ? { suggestions: forms.map((f) => f.key) } : {}),
82
+ };
83
+ }
84
+ if (parsed) {
85
+ const near = nearestIds(parsed.prefix, SEARCH_DOCUMENT_PREFIXES, 1)[0];
86
+ return {
87
+ key,
88
+ status: SearchTuningKeyStatus.UnknownKind,
89
+ prefix: parsed.prefix,
90
+ id: parsed.id,
91
+ ...(near ? { suggestion: `${near.id}:${parsed.id}` } : {}),
92
+ reason: `"${parsed.prefix}" is not a search-document kind (${SEARCH_DOCUMENT_PREFIXES.join(', ')})`,
93
+ };
94
+ }
95
+ // Registered — but as a kind the search index never emits (a decision, a
96
+ // policy, a scaffold pattern): no boost key can target it at all.
97
+ const registeredAs = referenceKindOf(inspection, key);
98
+ return {
99
+ key,
100
+ status: SearchTuningKeyStatus.Unprefixed,
101
+ id: key,
102
+ ...(registeredAs ? { referenceKind: registeredAs } : {}),
103
+ reason: registeredAs
104
+ ? `"${key}" is a registered ${registeredAs}, but ${registeredAs} entries are not search documents, so no boost key can target it`
105
+ : 'it has no `<kind>:` prefix, and no registry lists it as a bare id either',
106
+ };
107
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * What resolving one search-tuning boost key (`boostIds` /
3
+ * `taskHints[].boostIds`) against the live registries found.
4
+ *
5
+ * A boost key is a SEARCH-DOCUMENT id (`<kind>:<id>`, see
6
+ * `search-document-id.ts`): the matcher compares it to `doc.id` whole.
7
+ */
8
+ export declare enum SearchTuningKeyStatus {
9
+ /** `<kind>:<id>` whose id is registered under that kind — the boost can fire. */
10
+ Resolved = "resolved",
11
+ /** `<kind>:<id>` whose id is NOT registered under that kind — dead. */
12
+ Missing = "missing",
13
+ /** A bare id (no `<kind>:` prefix) — no search document is keyed like that, so it never fires. */
14
+ Unprefixed = "unprefixed",
15
+ /** `<prefix>:<id>` whose prefix is not a search-document kind — dead. */
16
+ UnknownKind = "unknown-kind",
17
+ /**
18
+ * NOT checked: the kind has no id registry (preset, pack, bundle, session,
19
+ * facet, doc) or its registry is empty in this workspace. Never reported as
20
+ * missing — a check that cannot look must say so instead of guessing.
21
+ */
22
+ Unverified = "unverified"
23
+ }
24
+ //# sourceMappingURL=search-tuning-key-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-tuning-key-status.d.ts","sourceRoot":"","sources":["../src/search-tuning-key-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,qBAAqB;IAC/B,iFAAiF;IACjF,QAAQ,aAAa;IACrB,uEAAuE;IACvE,OAAO,YAAY;IACnB,kGAAkG;IAClG,UAAU,eAAe;IACzB,yEAAyE;IACzE,WAAW,iBAAiB;IAC5B;;;;OAIG;IACH,UAAU,eAAe;CAC1B"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * What resolving one search-tuning boost key (`boostIds` /
3
+ * `taskHints[].boostIds`) against the live registries found.
4
+ *
5
+ * A boost key is a SEARCH-DOCUMENT id (`<kind>:<id>`, see
6
+ * `search-document-id.ts`): the matcher compares it to `doc.id` whole.
7
+ */
8
+ export var SearchTuningKeyStatus;
9
+ (function (SearchTuningKeyStatus) {
10
+ /** `<kind>:<id>` whose id is registered under that kind — the boost can fire. */
11
+ SearchTuningKeyStatus["Resolved"] = "resolved";
12
+ /** `<kind>:<id>` whose id is NOT registered under that kind — dead. */
13
+ SearchTuningKeyStatus["Missing"] = "missing";
14
+ /** A bare id (no `<kind>:` prefix) — no search document is keyed like that, so it never fires. */
15
+ SearchTuningKeyStatus["Unprefixed"] = "unprefixed";
16
+ /** `<prefix>:<id>` whose prefix is not a search-document kind — dead. */
17
+ SearchTuningKeyStatus["UnknownKind"] = "unknown-kind";
18
+ /**
19
+ * NOT checked: the kind has no id registry (preset, pack, bundle, session,
20
+ * facet, doc) or its registry is empty in this workspace. Never reported as
21
+ * missing — a check that cannot look must say so instead of guessing.
22
+ */
23
+ SearchTuningKeyStatus["Unverified"] = "unverified";
24
+ })(SearchTuningKeyStatus || (SearchTuningKeyStatus = {}));