@shrkcrft/inspector 0.1.0-alpha.30 → 0.1.0-alpha.32

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 (771) 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 +60 -5
  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/codemod-assist.d.ts.map +1 -1
  72. package/dist/codemod-assist.js +3 -1
  73. package/dist/command-recommender.d.ts +45 -2
  74. package/dist/command-recommender.d.ts.map +1 -1
  75. package/dist/command-recommender.js +41 -263
  76. package/dist/command-resolution-status.d.ts +44 -0
  77. package/dist/command-resolution-status.d.ts.map +1 -0
  78. package/dist/command-resolution-status.js +44 -0
  79. package/dist/command-safety-level.d.ts +15 -0
  80. package/dist/command-safety-level.d.ts.map +1 -0
  81. package/dist/command-safety-level.js +43 -0
  82. package/dist/command-taxonomy.js +1 -1
  83. package/dist/comment-syntax.d.ts +15 -0
  84. package/dist/comment-syntax.d.ts.map +1 -0
  85. package/dist/comment-syntax.js +15 -0
  86. package/dist/compliance-evidence.js +1 -1
  87. package/dist/compliance-profiles.js +1 -1
  88. package/dist/construct-registry.d.ts +40 -0
  89. package/dist/construct-registry.d.ts.map +1 -1
  90. package/dist/construct-registry.js +186 -82
  91. package/dist/context-tuning.d.ts +4 -0
  92. package/dist/context-tuning.d.ts.map +1 -1
  93. package/dist/context-tuning.js +10 -7
  94. package/dist/contract-template-registry.d.ts +10 -0
  95. package/dist/contract-template-registry.d.ts.map +1 -1
  96. package/dist/contract-template-registry.js +59 -33
  97. package/dist/contribution-kind.d.ts +52 -0
  98. package/dist/contribution-kind.d.ts.map +1 -0
  99. package/dist/contribution-kind.js +52 -0
  100. package/dist/contribution-load-failures.d.ts +122 -0
  101. package/dist/contribution-load-failures.d.ts.map +1 -0
  102. package/dist/contribution-load-failures.js +592 -0
  103. package/dist/contributions-report.d.ts +28 -0
  104. package/dist/contributions-report.d.ts.map +1 -0
  105. package/dist/contributions-report.js +242 -0
  106. package/dist/convention-applicability.d.ts +46 -0
  107. package/dist/convention-applicability.d.ts.map +1 -0
  108. package/dist/convention-applicability.js +247 -0
  109. package/dist/convention-filter-level.d.ts +13 -0
  110. package/dist/convention-filter-level.d.ts.map +1 -0
  111. package/dist/convention-filter-level.js +13 -0
  112. package/dist/convention-registry.d.ts +51 -4
  113. package/dist/convention-registry.d.ts.map +1 -1
  114. package/dist/convention-registry.js +135 -60
  115. package/dist/coverage-report.d.ts.map +1 -1
  116. package/dist/coverage-report.js +6 -6
  117. package/dist/custom-checks.d.ts +60 -1
  118. package/dist/custom-checks.d.ts.map +1 -1
  119. package/dist/custom-checks.js +161 -6
  120. package/dist/dashboard/dashboard-data.d.ts +6 -0
  121. package/dist/dashboard/dashboard-data.d.ts.map +1 -1
  122. package/dist/dashboard/dashboard-data.js +99 -8
  123. package/dist/dashboard/dashboard-knowledge.d.ts.map +1 -1
  124. package/dist/dashboard/dashboard-knowledge.js +14 -2
  125. package/dist/decision-records.d.ts +24 -0
  126. package/dist/decision-records.d.ts.map +1 -1
  127. package/dist/decision-records.js +231 -84
  128. package/dist/declared-cross-references.d.ts +61 -0
  129. package/dist/declared-cross-references.d.ts.map +1 -0
  130. package/dist/declared-cross-references.js +550 -0
  131. package/dist/declared-gate-plane-rules.d.ts +24 -0
  132. package/dist/declared-gate-plane-rules.d.ts.map +1 -0
  133. package/dist/declared-gate-plane-rules.js +39 -0
  134. package/dist/declared-reference-coverage.d.ts +27 -0
  135. package/dist/declared-reference-coverage.d.ts.map +1 -0
  136. package/dist/declared-reference-coverage.js +55 -0
  137. package/dist/declared-xref-status.d.ts +19 -0
  138. package/dist/declared-xref-status.d.ts.map +1 -0
  139. package/dist/declared-xref-status.js +19 -0
  140. package/dist/delegate-pack-recipes.d.ts +13 -2
  141. package/dist/delegate-pack-recipes.d.ts.map +1 -1
  142. package/dist/delegate-pack-recipes.js +45 -14
  143. package/dist/demo-package.js +2 -2
  144. package/dist/demo-script.js +2 -2
  145. package/dist/demo-workflow.js +3 -3
  146. package/dist/dev-cycle.js +1 -1
  147. package/dist/dev-session.js +1 -1
  148. package/dist/doc-references.d.ts +23 -2
  149. package/dist/doc-references.d.ts.map +1 -1
  150. package/dist/doc-references.js +96 -17
  151. package/dist/doctor-result.d.ts +8 -0
  152. package/dist/doctor-result.d.ts.map +1 -1
  153. package/dist/doctor-verdict-kind.d.ts +19 -0
  154. package/dist/doctor-verdict-kind.d.ts.map +1 -0
  155. package/dist/doctor-verdict-kind.js +19 -0
  156. package/dist/doctor-verdict.d.ts +18 -0
  157. package/dist/doctor-verdict.d.ts.map +1 -0
  158. package/dist/doctor-verdict.js +28 -0
  159. package/dist/drift.d.ts +17 -0
  160. package/dist/drift.d.ts.map +1 -1
  161. package/dist/drift.js +40 -10
  162. package/dist/entrypoint-matrix.d.ts.map +1 -1
  163. package/dist/entrypoint-matrix.js +4 -1
  164. package/dist/feedback-ingestion.d.ts +28 -2
  165. package/dist/feedback-ingestion.d.ts.map +1 -1
  166. package/dist/feedback-ingestion.js +75 -20
  167. package/dist/file-languages.d.ts +9 -0
  168. package/dist/file-languages.d.ts.map +1 -0
  169. package/dist/file-languages.js +91 -0
  170. package/dist/fix-preview.d.ts.map +1 -1
  171. package/dist/fix-preview.js +87 -22
  172. package/dist/framework-extractor-outcomes.d.ts +27 -0
  173. package/dist/framework-extractor-outcomes.d.ts.map +1 -0
  174. package/dist/framework-extractor-outcomes.js +83 -0
  175. package/dist/fuzzy-impact.d.ts.map +1 -1
  176. package/dist/fuzzy-impact.js +3 -2
  177. package/dist/git-helpers.d.ts +29 -4
  178. package/dist/git-helpers.d.ts.map +1 -1
  179. package/dist/git-helpers.js +69 -10
  180. package/dist/healing-plan.d.ts.map +1 -1
  181. package/dist/healing-plan.js +3 -4
  182. package/dist/helper-catalog.d.ts +25 -0
  183. package/dist/helper-catalog.d.ts.map +1 -0
  184. package/dist/helper-catalog.js +91 -0
  185. package/dist/helper-registry.d.ts.map +1 -1
  186. package/dist/helper-registry.js +17 -1
  187. package/dist/helper-view.d.ts +33 -0
  188. package/dist/helper-view.d.ts.map +1 -0
  189. package/dist/helper-view.js +1 -0
  190. package/dist/i-asset-doctor-flags.d.ts +16 -0
  191. package/dist/i-asset-doctor-flags.d.ts.map +1 -0
  192. package/dist/i-asset-doctor-flags.js +1 -0
  193. package/dist/i-command-resolution.d.ts +22 -0
  194. package/dist/i-command-resolution.d.ts.map +1 -0
  195. package/dist/i-command-resolution.js +1 -0
  196. package/dist/i-command-resolve-options.d.ts +24 -0
  197. package/dist/i-command-resolve-options.d.ts.map +1 -0
  198. package/dist/i-command-resolve-options.js +1 -0
  199. package/dist/i-command-safety.d.ts +13 -0
  200. package/dist/i-command-safety.d.ts.map +1 -0
  201. package/dist/i-command-safety.js +1 -0
  202. package/dist/i-contribution-accepted-entry.d.ts +18 -0
  203. package/dist/i-contribution-accepted-entry.d.ts.map +1 -0
  204. package/dist/i-contribution-accepted-entry.js +1 -0
  205. package/dist/i-contribution-entry-rejection.d.ts +21 -0
  206. package/dist/i-contribution-entry-rejection.d.ts.map +1 -0
  207. package/dist/i-contribution-entry-rejection.js +1 -0
  208. package/dist/i-contribution-file-issue.d.ts +18 -0
  209. package/dist/i-contribution-file-issue.d.ts.map +1 -0
  210. package/dist/i-contribution-file-issue.js +1 -0
  211. package/dist/i-contribution-file-report.d.ts +40 -0
  212. package/dist/i-contribution-file-report.d.ts.map +1 -0
  213. package/dist/i-contribution-file-report.js +1 -0
  214. package/dist/i-contribution-file-validation.d.ts +32 -0
  215. package/dist/i-contribution-file-validation.d.ts.map +1 -0
  216. package/dist/i-contribution-file-validation.js +1 -0
  217. package/dist/i-contributions-report.d.ts +31 -0
  218. package/dist/i-contributions-report.d.ts.map +1 -0
  219. package/dist/i-contributions-report.js +1 -0
  220. package/dist/i-convention-applicability-reason.d.ts +29 -0
  221. package/dist/i-convention-applicability-reason.d.ts.map +1 -0
  222. package/dist/i-convention-applicability-reason.js +1 -0
  223. package/dist/i-convention-applicability.d.ts +9 -0
  224. package/dist/i-convention-applicability.d.ts.map +1 -0
  225. package/dist/i-convention-applicability.js +1 -0
  226. package/dist/i-convention-scope.d.ts +19 -0
  227. package/dist/i-convention-scope.d.ts.map +1 -0
  228. package/dist/i-convention-scope.js +1 -0
  229. package/dist/i-declared-xref-field.d.ts +25 -0
  230. package/dist/i-declared-xref-field.d.ts.map +1 -0
  231. package/dist/i-declared-xref-field.js +1 -0
  232. package/dist/i-declared-xref-issue.d.ts +25 -0
  233. package/dist/i-declared-xref-issue.d.ts.map +1 -0
  234. package/dist/i-declared-xref-issue.js +1 -0
  235. package/dist/i-declared-xref-report.d.ts +48 -0
  236. package/dist/i-declared-xref-report.d.ts.map +1 -0
  237. package/dist/i-declared-xref-report.js +1 -0
  238. package/dist/i-declared-xref-row.d.ts +29 -0
  239. package/dist/i-declared-xref-row.d.ts.map +1 -0
  240. package/dist/i-declared-xref-row.js +1 -0
  241. package/dist/i-doctor-verdict.d.ts +10 -0
  242. package/dist/i-doctor-verdict.d.ts.map +1 -0
  243. package/dist/i-doctor-verdict.js +1 -0
  244. package/dist/i-file-language.d.ts +11 -0
  245. package/dist/i-file-language.d.ts.map +1 -0
  246. package/dist/i-file-language.js +1 -0
  247. package/dist/i-kind-outcomes.d.ts +13 -0
  248. package/dist/i-kind-outcomes.d.ts.map +1 -0
  249. package/dist/i-kind-outcomes.js +1 -0
  250. package/dist/i-not-applicable-convention.d.ts +17 -0
  251. package/dist/i-not-applicable-convention.d.ts.map +1 -0
  252. package/dist/i-not-applicable-convention.js +1 -0
  253. package/dist/i-pack-doctor-verdict.d.ts +15 -0
  254. package/dist/i-pack-doctor-verdict.d.ts.map +1 -0
  255. package/dist/i-pack-doctor-verdict.js +1 -0
  256. package/dist/i-probed-id-field.d.ts +17 -0
  257. package/dist/i-probed-id-field.d.ts.map +1 -0
  258. package/dist/i-probed-id-field.js +1 -0
  259. package/dist/i-reference-kind-declaration.d.ts +38 -0
  260. package/dist/i-reference-kind-declaration.d.ts.map +1 -0
  261. package/dist/i-reference-kind-declaration.js +1 -0
  262. package/dist/i-reference-pack-origin.d.ts +13 -0
  263. package/dist/i-reference-pack-origin.d.ts.map +1 -0
  264. package/dist/i-reference-pack-origin.js +1 -0
  265. package/dist/i-reference-warm-options.d.ts +21 -0
  266. package/dist/i-reference-warm-options.d.ts.map +1 -0
  267. package/dist/i-reference-warm-options.js +1 -0
  268. package/dist/i-registry-outcomes.d.ts +16 -0
  269. package/dist/i-registry-outcomes.d.ts.map +1 -0
  270. package/dist/i-registry-outcomes.js +1 -0
  271. package/dist/i-scaffold-pattern-doctor-report.d.ts +35 -0
  272. package/dist/i-scaffold-pattern-doctor-report.d.ts.map +1 -0
  273. package/dist/i-scaffold-pattern-doctor-report.js +1 -0
  274. package/dist/i-search-tuning-key-probe.d.ts +30 -0
  275. package/dist/i-search-tuning-key-probe.d.ts.map +1 -0
  276. package/dist/i-search-tuning-key-probe.js +1 -0
  277. package/dist/i-search-tuning-lint-issue.d.ts +61 -0
  278. package/dist/i-search-tuning-lint-issue.d.ts.map +1 -0
  279. package/dist/i-search-tuning-lint-issue.js +1 -0
  280. package/dist/i-search-tuning-lint-report.d.ts +38 -0
  281. package/dist/i-search-tuning-lint-report.d.ts.map +1 -0
  282. package/dist/i-search-tuning-lint-report.js +1 -0
  283. package/dist/i-stale-path-hint-input.d.ts +18 -0
  284. package/dist/i-stale-path-hint-input.d.ts.map +1 -0
  285. package/dist/i-stale-path-hint-input.js +1 -0
  286. package/dist/i-unresolvable-reference-scan.d.ts +14 -0
  287. package/dist/i-unresolvable-reference-scan.d.ts.map +1 -0
  288. package/dist/i-unresolvable-reference-scan.js +1 -0
  289. package/dist/i-unresolvable-reference.d.ts +29 -0
  290. package/dist/i-unresolvable-reference.d.ts.map +1 -0
  291. package/dist/i-unresolvable-reference.js +1 -0
  292. package/dist/i-unverifiable-remedy-group.d.ts +10 -0
  293. package/dist/i-unverifiable-remedy-group.d.ts.map +1 -0
  294. package/dist/i-unverifiable-remedy-group.js +1 -0
  295. package/dist/i-workspace-profile-payload.d.ts +12 -0
  296. package/dist/i-workspace-profile-payload.d.ts.map +1 -0
  297. package/dist/i-workspace-profile-payload.js +1 -0
  298. package/dist/impact-analysis.d.ts +15 -0
  299. package/dist/impact-analysis.d.ts.map +1 -1
  300. package/dist/impact-analysis.js +58 -13
  301. package/dist/impact-render.d.ts.map +1 -1
  302. package/dist/impact-render.js +22 -0
  303. package/dist/import-hygiene.d.ts +35 -1
  304. package/dist/import-hygiene.d.ts.map +1 -1
  305. package/dist/import-hygiene.js +107 -13
  306. package/dist/index.d.ts +158 -0
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js +197 -0
  309. package/dist/inspection-discovery.d.ts +45 -0
  310. package/dist/inspection-discovery.d.ts.map +1 -0
  311. package/dist/inspection-discovery.js +70 -0
  312. package/dist/knowledge-advisory-code.d.ts +17 -0
  313. package/dist/knowledge-advisory-code.d.ts.map +1 -0
  314. package/dist/knowledge-advisory-code.js +17 -0
  315. package/dist/knowledge-aged-entry.d.ts +10 -0
  316. package/dist/knowledge-aged-entry.d.ts.map +1 -0
  317. package/dist/knowledge-aged-entry.js +1 -0
  318. package/dist/knowledge-authoring.d.ts +25 -2
  319. package/dist/knowledge-authoring.d.ts.map +1 -1
  320. package/dist/knowledge-authoring.js +53 -13
  321. package/dist/knowledge-contribution-slots.d.ts +18 -0
  322. package/dist/knowledge-contribution-slots.d.ts.map +1 -0
  323. package/dist/knowledge-contribution-slots.js +25 -0
  324. package/dist/knowledge-entry-rejections.d.ts +17 -0
  325. package/dist/knowledge-entry-rejections.d.ts.map +1 -0
  326. package/dist/knowledge-entry-rejections.js +79 -0
  327. package/dist/knowledge-entry-verdict-record.d.ts +34 -0
  328. package/dist/knowledge-entry-verdict-record.d.ts.map +1 -0
  329. package/dist/knowledge-entry-verdict-record.js +1 -0
  330. package/dist/knowledge-entry-verdict.d.ts +17 -0
  331. package/dist/knowledge-entry-verdict.d.ts.map +1 -0
  332. package/dist/knowledge-entry-verdict.js +17 -0
  333. package/dist/knowledge-graph.d.ts +6 -0
  334. package/dist/knowledge-graph.d.ts.map +1 -1
  335. package/dist/knowledge-graph.js +18 -7
  336. package/dist/knowledge-kind-bucket.d.ts +19 -0
  337. package/dist/knowledge-kind-bucket.d.ts.map +1 -0
  338. package/dist/knowledge-kind-bucket.js +1 -0
  339. package/dist/knowledge-load-failure.d.ts +23 -0
  340. package/dist/knowledge-load-failure.d.ts.map +1 -0
  341. package/dist/knowledge-load-failure.js +1 -0
  342. package/dist/knowledge-min-referenced-valve.d.ts +12 -0
  343. package/dist/knowledge-min-referenced-valve.d.ts.map +1 -0
  344. package/dist/knowledge-min-referenced-valve.js +12 -0
  345. package/dist/knowledge-reference-kind-bucket.d.ts +11 -0
  346. package/dist/knowledge-reference-kind-bucket.d.ts.map +1 -0
  347. package/dist/knowledge-reference-kind-bucket.js +1 -0
  348. package/dist/knowledge-rejected-entry.d.ts +28 -0
  349. package/dist/knowledge-rejected-entry.d.ts.map +1 -0
  350. package/dist/knowledge-rejected-entry.js +1 -0
  351. package/dist/knowledge-rename-command.d.ts +20 -0
  352. package/dist/knowledge-rename-command.d.ts.map +1 -0
  353. package/dist/knowledge-rename-command.js +34 -0
  354. package/dist/knowledge-rename-verb.d.ts +11 -0
  355. package/dist/knowledge-rename-verb.d.ts.map +1 -0
  356. package/dist/knowledge-rename-verb.js +11 -0
  357. package/dist/knowledge-rename.d.ts +1 -1
  358. package/dist/knowledge-rename.d.ts.map +1 -1
  359. package/dist/knowledge-rename.js +6 -5
  360. package/dist/knowledge-stale-advisory.d.ts +14 -0
  361. package/dist/knowledge-stale-advisory.d.ts.map +1 -0
  362. package/dist/knowledge-stale-advisory.js +1 -0
  363. package/dist/knowledge-stale-coverage.d.ts +19 -0
  364. package/dist/knowledge-stale-coverage.d.ts.map +1 -0
  365. package/dist/knowledge-stale-coverage.js +1 -0
  366. package/dist/knowledge-stale-gate-flags.d.ts +33 -0
  367. package/dist/knowledge-stale-gate-flags.d.ts.map +1 -0
  368. package/dist/knowledge-stale-gate-flags.js +1 -0
  369. package/dist/knowledge-stale-gate-input.d.ts +46 -0
  370. package/dist/knowledge-stale-gate-input.d.ts.map +1 -0
  371. package/dist/knowledge-stale-gate-input.js +1 -0
  372. package/dist/knowledge-stale-gate-result.d.ts +33 -0
  373. package/dist/knowledge-stale-gate-result.d.ts.map +1 -0
  374. package/dist/knowledge-stale-gate-result.js +1 -0
  375. package/dist/knowledge-stale-gate-rule.d.ts +33 -0
  376. package/dist/knowledge-stale-gate-rule.d.ts.map +1 -0
  377. package/dist/knowledge-stale-gate-rule.js +1 -0
  378. package/dist/knowledge-stale-gate-violation.d.ts +13 -0
  379. package/dist/knowledge-stale-gate-violation.d.ts.map +1 -0
  380. package/dist/knowledge-stale-gate-violation.js +1 -0
  381. package/dist/knowledge-stale-gate.d.ts +85 -0
  382. package/dist/knowledge-stale-gate.d.ts.map +1 -0
  383. package/dist/knowledge-stale-gate.js +501 -0
  384. package/dist/knowledge-stale-quality-gate.d.ts +26 -0
  385. package/dist/knowledge-stale-quality-gate.d.ts.map +1 -0
  386. package/dist/knowledge-stale-quality-gate.js +140 -0
  387. package/dist/knowledge-stale.d.ts +132 -9
  388. package/dist/knowledge-stale.d.ts.map +1 -1
  389. package/dist/knowledge-stale.js +1193 -294
  390. package/dist/knowledge-unverifiable-reason.d.ts +12 -0
  391. package/dist/knowledge-unverifiable-reason.d.ts.map +1 -0
  392. package/dist/knowledge-unverifiable-reason.js +12 -0
  393. package/dist/knowledge-unverifiable-remedy.d.ts +56 -0
  394. package/dist/knowledge-unverifiable-remedy.d.ts.map +1 -0
  395. package/dist/knowledge-unverifiable-remedy.js +0 -0
  396. package/dist/loader-diagnostics.d.ts +14 -2
  397. package/dist/loader-diagnostics.d.ts.map +1 -1
  398. package/dist/match-terms.d.ts +48 -0
  399. package/dist/match-terms.d.ts.map +1 -0
  400. package/dist/match-terms.js +155 -0
  401. package/dist/migration-profile-registry.d.ts +10 -0
  402. package/dist/migration-profile-registry.d.ts.map +1 -1
  403. package/dist/migration-profile-registry.js +57 -34
  404. package/dist/migration-readiness.d.ts.map +1 -1
  405. package/dist/migration-readiness.js +1 -3
  406. package/dist/nearest-id.d.ts +10 -26
  407. package/dist/nearest-id.d.ts.map +1 -1
  408. package/dist/nearest-id.js +9 -59
  409. package/dist/pack-asset-freshness.d.ts +65 -0
  410. package/dist/pack-asset-freshness.d.ts.map +1 -0
  411. package/dist/pack-asset-freshness.js +340 -0
  412. package/dist/pack-author-ux.d.ts +24 -3
  413. package/dist/pack-author-ux.d.ts.map +1 -1
  414. package/dist/pack-author-ux.js +87 -93
  415. package/dist/pack-contributions-inventory.d.ts +79 -39
  416. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  417. package/dist/pack-contributions-inventory.js +445 -286
  418. package/dist/pack-doctor-verdict.d.ts +29 -0
  419. package/dist/pack-doctor-verdict.d.ts.map +1 -0
  420. package/dist/pack-doctor-verdict.js +45 -0
  421. package/dist/pack-doctor.d.ts +74 -1
  422. package/dist/pack-doctor.d.ts.map +1 -1
  423. package/dist/pack-doctor.js +281 -1
  424. package/dist/pack-helper-plan.d.ts +24 -0
  425. package/dist/pack-helper-plan.d.ts.map +1 -0
  426. package/dist/pack-helper-plan.js +77 -0
  427. package/dist/pack-helper-registry.d.ts +14 -0
  428. package/dist/pack-helper-registry.d.ts.map +1 -1
  429. package/dist/pack-helper-registry.js +76 -37
  430. package/dist/pack-manifest-reader.d.ts +8 -0
  431. package/dist/pack-manifest-reader.d.ts.map +1 -0
  432. package/dist/pack-manifest-reader.js +79 -0
  433. package/dist/pack-release-check.d.ts +14 -1
  434. package/dist/pack-release-check.d.ts.map +1 -1
  435. package/dist/pack-release-check.js +23 -1
  436. package/dist/pack-signature-status.d.ts +18 -6
  437. package/dist/pack-signature-status.d.ts.map +1 -1
  438. package/dist/pack-signature-status.js +59 -105
  439. package/dist/pack-test-runner.d.ts +27 -5
  440. package/dist/pack-test-runner.d.ts.map +1 -1
  441. package/dist/pack-test-runner.js +91 -35
  442. package/dist/pack-typecheck.d.ts +8 -0
  443. package/dist/pack-typecheck.d.ts.map +1 -0
  444. package/dist/pack-typecheck.js +76 -0
  445. package/dist/plan-review.d.ts +2 -0
  446. package/dist/plan-review.d.ts.map +1 -1
  447. package/dist/plan-review.js +17 -5
  448. package/dist/plan-simulation.d.ts.map +1 -1
  449. package/dist/plan-simulation.js +16 -5
  450. package/dist/playbook-load-issue.d.ts +16 -0
  451. package/dist/playbook-load-issue.d.ts.map +1 -0
  452. package/dist/playbook-load-issue.js +1 -0
  453. package/dist/playbook-registry.d.ts +32 -1
  454. package/dist/playbook-registry.d.ts.map +1 -1
  455. package/dist/playbook-registry.js +144 -55
  456. package/dist/policy-declaration.d.ts +18 -0
  457. package/dist/policy-declaration.d.ts.map +1 -0
  458. package/dist/policy-declaration.js +1 -0
  459. package/dist/policy-engine.d.ts +8 -0
  460. package/dist/policy-engine.d.ts.map +1 -1
  461. package/dist/policy-engine.js +26 -9
  462. package/dist/policy-overrides.d.ts.map +1 -1
  463. package/dist/policy-overrides.js +4 -4
  464. package/dist/policy-registry.d.ts +27 -0
  465. package/dist/policy-registry.d.ts.map +1 -1
  466. package/dist/policy-registry.js +87 -20
  467. package/dist/probed-id-fields.d.ts +21 -0
  468. package/dist/probed-id-fields.d.ts.map +1 -0
  469. package/dist/probed-id-fields.js +25 -0
  470. package/dist/probed-id-source.d.ts +11 -0
  471. package/dist/probed-id-source.d.ts.map +1 -0
  472. package/dist/probed-id-source.js +11 -0
  473. package/dist/profile-registry.d.ts +25 -2
  474. package/dist/profile-registry.d.ts.map +1 -1
  475. package/dist/profile-registry.js +59 -6
  476. package/dist/propose-knowledge.js +3 -2
  477. package/dist/quality-gate-examination.d.ts +15 -0
  478. package/dist/quality-gate-examination.d.ts.map +1 -0
  479. package/dist/quality-gate-examination.js +15 -0
  480. package/dist/quality-gate-row-status.d.ts +19 -0
  481. package/dist/quality-gate-row-status.d.ts.map +1 -0
  482. package/dist/quality-gate-row-status.js +28 -0
  483. package/dist/quality-gate-status.d.ts +16 -0
  484. package/dist/quality-gate-status.d.ts.map +1 -0
  485. package/dist/quality-gate-status.js +16 -0
  486. package/dist/quality-html.d.ts.map +1 -1
  487. package/dist/quality-html.js +14 -3
  488. package/dist/quality-report-coverage.d.ts +26 -0
  489. package/dist/quality-report-coverage.d.ts.map +1 -0
  490. package/dist/quality-report-coverage.js +48 -0
  491. package/dist/quality-report.d.ts +28 -1
  492. package/dist/quality-report.d.ts.map +1 -1
  493. package/dist/quality-report.js +263 -35
  494. package/dist/query-intent-kind.d.ts +18 -0
  495. package/dist/query-intent-kind.d.ts.map +1 -0
  496. package/dist/query-intent-kind.js +18 -0
  497. package/dist/query-intent-result.d.ts +23 -0
  498. package/dist/query-intent-result.d.ts.map +1 -0
  499. package/dist/query-intent-result.js +1 -0
  500. package/dist/query-intent.d.ts +18 -0
  501. package/dist/query-intent.d.ts.map +1 -0
  502. package/dist/query-intent.js +336 -0
  503. package/dist/query-resolver.d.ts +18 -0
  504. package/dist/query-resolver.d.ts.map +1 -1
  505. package/dist/query-resolver.js +7 -4
  506. package/dist/ranked-recommendations.d.ts +36 -0
  507. package/dist/ranked-recommendations.d.ts.map +1 -0
  508. package/dist/ranked-recommendations.js +1 -0
  509. package/dist/ranker-explainability.d.ts.map +1 -1
  510. package/dist/ranker-explainability.js +38 -10
  511. package/dist/recommend-recipe.d.ts +17 -0
  512. package/dist/recommend-recipe.d.ts.map +1 -0
  513. package/dist/recommend-recipe.js +1 -0
  514. package/dist/recommend-recipes.d.ts +9 -0
  515. package/dist/recommend-recipes.d.ts.map +1 -0
  516. package/dist/recommend-recipes.js +106 -0
  517. package/dist/recommendation-candidate.d.ts +30 -0
  518. package/dist/recommendation-candidate.d.ts.map +1 -0
  519. package/dist/recommendation-candidate.js +1 -0
  520. package/dist/recommendation-confidence.d.ts +27 -0
  521. package/dist/recommendation-confidence.d.ts.map +1 -0
  522. package/dist/recommendation-confidence.js +1 -0
  523. package/dist/recommendation-ranking-options.d.ts +24 -0
  524. package/dist/recommendation-ranking-options.d.ts.map +1 -0
  525. package/dist/recommendation-ranking-options.js +1 -0
  526. package/dist/recommendation-ranking.d.ts +50 -0
  527. package/dist/recommendation-ranking.d.ts.map +1 -0
  528. package/dist/recommendation-ranking.js +527 -0
  529. package/dist/recommendation-source.d.ts +23 -0
  530. package/dist/recommendation-source.d.ts.map +1 -0
  531. package/dist/recommendation-source.js +23 -0
  532. package/dist/recommendation-suppression.d.ts +14 -0
  533. package/dist/recommendation-suppression.d.ts.map +1 -0
  534. package/dist/recommendation-suppression.js +14 -0
  535. package/dist/reference-asset-kind.d.ts +14 -0
  536. package/dist/reference-asset-kind.d.ts.map +1 -0
  537. package/dist/reference-asset-kind.js +14 -0
  538. package/dist/reference-content-check.d.ts +32 -0
  539. package/dist/reference-content-check.d.ts.map +1 -0
  540. package/dist/reference-content-check.js +143 -0
  541. package/dist/reference-failure.d.ts +31 -0
  542. package/dist/reference-failure.d.ts.map +1 -0
  543. package/dist/reference-failure.js +31 -0
  544. package/dist/reference-id-status.d.ts +15 -0
  545. package/dist/reference-id-status.d.ts.map +1 -0
  546. package/dist/reference-id-status.js +15 -0
  547. package/dist/reference-kind-declarations.d.ts +42 -0
  548. package/dist/reference-kind-declarations.d.ts.map +1 -0
  549. package/dist/reference-kind-declarations.js +142 -0
  550. package/dist/reference-lookup.d.ts +6 -0
  551. package/dist/reference-lookup.d.ts.map +1 -1
  552. package/dist/reference-lookup.js +13 -5
  553. package/dist/reference-pack-origin.d.ts +18 -0
  554. package/dist/reference-pack-origin.d.ts.map +1 -0
  555. package/dist/reference-pack-origin.js +38 -0
  556. package/dist/reference-registry.d.ts +109 -11
  557. package/dist/reference-registry.d.ts.map +1 -1
  558. package/dist/reference-registry.js +186 -30
  559. package/dist/reference-subject.d.ts +20 -0
  560. package/dist/reference-subject.d.ts.map +1 -0
  561. package/dist/reference-subject.js +1 -0
  562. package/dist/registration-hint-discovery-status.d.ts +25 -0
  563. package/dist/registration-hint-discovery-status.d.ts.map +1 -0
  564. package/dist/registration-hint-discovery-status.js +25 -0
  565. package/dist/registration-hint-registry.d.ts +80 -0
  566. package/dist/registration-hint-registry.d.ts.map +1 -1
  567. package/dist/registration-hint-registry.js +356 -138
  568. package/dist/registry-lifecycle.d.ts +200 -19
  569. package/dist/registry-lifecycle.d.ts.map +1 -1
  570. package/dist/registry-lifecycle.js +526 -136
  571. package/dist/release-readiness.d.ts.map +1 -1
  572. package/dist/release-readiness.js +10 -7
  573. package/dist/release-smoke.d.ts.map +1 -1
  574. package/dist/release-smoke.js +11 -7
  575. package/dist/report-site.d.ts.map +1 -1
  576. package/dist/report-site.js +25 -7
  577. package/dist/repository-intelligence.d.ts.map +1 -1
  578. package/dist/repository-intelligence.js +3 -2
  579. package/dist/repository-knowledge-model.d.ts.map +1 -1
  580. package/dist/repository-knowledge-model.js +18 -5
  581. package/dist/repository-stats.d.ts.map +1 -1
  582. package/dist/repository-stats.js +3 -77
  583. package/dist/resolve-project-config.d.ts +64 -0
  584. package/dist/resolve-project-config.d.ts.map +1 -1
  585. package/dist/resolve-project-config.js +250 -33
  586. package/dist/reuse/compute-reuse-coverage.d.ts +29 -0
  587. package/dist/reuse/compute-reuse-coverage.d.ts.map +1 -0
  588. package/dist/reuse/compute-reuse-coverage.js +198 -0
  589. package/dist/reuse/rank-reuse-candidates.d.ts +38 -0
  590. package/dist/reuse/rank-reuse-candidates.d.ts.map +1 -0
  591. package/dist/reuse/rank-reuse-candidates.js +212 -0
  592. package/dist/reuse/rank-reuse-options.d.ts +20 -0
  593. package/dist/reuse/rank-reuse-options.d.ts.map +1 -0
  594. package/dist/reuse/rank-reuse-options.js +1 -0
  595. package/dist/reuse/rank-reuse-suggestions.d.ts +15 -0
  596. package/dist/reuse/rank-reuse-suggestions.d.ts.map +1 -0
  597. package/dist/reuse/rank-reuse-suggestions.js +31 -0
  598. package/dist/reuse/resolve-curated-reuse.d.ts +43 -0
  599. package/dist/reuse/resolve-curated-reuse.d.ts.map +1 -0
  600. package/dist/reuse/resolve-curated-reuse.js +115 -0
  601. package/dist/reuse/reuse-candidate.d.ts +29 -0
  602. package/dist/reuse/reuse-candidate.d.ts.map +1 -0
  603. package/dist/reuse/reuse-candidate.js +1 -0
  604. package/dist/reuse/reuse-coverage-report.d.ts +74 -0
  605. package/dist/reuse/reuse-coverage-report.d.ts.map +1 -0
  606. package/dist/reuse/reuse-coverage-report.js +1 -0
  607. package/dist/reuse/reuse-curated-coverage.d.ts +36 -0
  608. package/dist/reuse/reuse-curated-coverage.d.ts.map +1 -0
  609. package/dist/reuse/reuse-curated-coverage.js +1 -0
  610. package/dist/reuse/reuse-curated-resolution.d.ts +36 -0
  611. package/dist/reuse/reuse-curated-resolution.d.ts.map +1 -0
  612. package/dist/reuse/reuse-curated-resolution.js +1 -0
  613. package/dist/reuse/reuse-curated-status.d.ts +21 -0
  614. package/dist/reuse/reuse-curated-status.d.ts.map +1 -0
  615. package/dist/reuse/reuse-curated-status.js +21 -0
  616. package/dist/reuse/reuse-match-detail.d.ts +15 -0
  617. package/dist/reuse/reuse-match-detail.d.ts.map +1 -0
  618. package/dist/reuse/reuse-match-detail.js +1 -0
  619. package/dist/reuse/reuse-ranking.d.ts +37 -0
  620. package/dist/reuse/reuse-ranking.d.ts.map +1 -0
  621. package/dist/reuse/reuse-ranking.js +1 -0
  622. package/dist/reuse/reuse-suggestion.d.ts +19 -0
  623. package/dist/reuse/reuse-suggestion.d.ts.map +1 -0
  624. package/dist/reuse/reuse-suggestion.js +1 -0
  625. package/dist/reuse/reuse-symbol-lookup.d.ts +28 -0
  626. package/dist/reuse/reuse-symbol-lookup.d.ts.map +1 -0
  627. package/dist/reuse/reuse-symbol-lookup.js +1 -0
  628. package/dist/reuse/reuse-tokenize.d.ts +11 -0
  629. package/dist/reuse/reuse-tokenize.d.ts.map +1 -0
  630. package/dist/reuse/reuse-tokenize.js +26 -0
  631. package/dist/reuse/score-reuse-name.d.ts +16 -0
  632. package/dist/reuse/score-reuse-name.d.ts.map +1 -0
  633. package/dist/reuse/score-reuse-name.js +35 -0
  634. package/dist/reuse/score-reuse-primitive.d.ts +33 -0
  635. package/dist/reuse/score-reuse-primitive.d.ts.map +1 -0
  636. package/dist/reuse/score-reuse-primitive.js +92 -0
  637. package/dist/review-packet.d.ts +2 -0
  638. package/dist/review-packet.d.ts.map +1 -1
  639. package/dist/review-packet.js +13 -6
  640. package/dist/role-views.d.ts.map +1 -1
  641. package/dist/role-views.js +16 -16
  642. package/dist/routing-recommends-channels.d.ts +24 -0
  643. package/dist/routing-recommends-channels.d.ts.map +1 -0
  644. package/dist/routing-recommends-channels.js +19 -0
  645. package/dist/run-boundary-check.d.ts +118 -0
  646. package/dist/run-boundary-check.d.ts.map +1 -0
  647. package/dist/run-boundary-check.js +592 -0
  648. package/dist/safety-audit.js +1 -1
  649. package/dist/scaffold-coverage.js +1 -1
  650. package/dist/scaffold-pattern-doctor-report.d.ts +19 -0
  651. package/dist/scaffold-pattern-doctor-report.d.ts.map +1 -0
  652. package/dist/scaffold-pattern-doctor-report.js +54 -0
  653. package/dist/scaffold-patterns.d.ts +75 -1
  654. package/dist/scaffold-patterns.d.ts.map +1 -1
  655. package/dist/scaffold-patterns.js +375 -84
  656. package/dist/schema-inventory.d.ts.map +1 -1
  657. package/dist/schema-inventory.js +4 -3
  658. package/dist/search-document-id.d.ts +52 -0
  659. package/dist/search-document-id.d.ts.map +1 -0
  660. package/dist/search-document-id.js +72 -0
  661. package/dist/search-document-prefix.d.ts +7 -0
  662. package/dist/search-document-prefix.d.ts.map +1 -0
  663. package/dist/search-document-prefix.js +1 -0
  664. package/dist/search-index.d.ts.map +1 -1
  665. package/dist/search-index.js +20 -23
  666. package/dist/search-tuning-explain.d.ts +6 -0
  667. package/dist/search-tuning-explain.d.ts.map +1 -1
  668. package/dist/search-tuning-explain.js +19 -17
  669. package/dist/search-tuning-key-probes.d.ts +16 -0
  670. package/dist/search-tuning-key-probes.d.ts.map +1 -0
  671. package/dist/search-tuning-key-probes.js +65 -0
  672. package/dist/search-tuning-key-resolution.d.ts +25 -0
  673. package/dist/search-tuning-key-resolution.d.ts.map +1 -0
  674. package/dist/search-tuning-key-resolution.js +1 -0
  675. package/dist/search-tuning-key-resolver.d.ts +4 -0
  676. package/dist/search-tuning-key-resolver.d.ts.map +1 -0
  677. package/dist/search-tuning-key-resolver.js +107 -0
  678. package/dist/search-tuning-key-status.d.ts +24 -0
  679. package/dist/search-tuning-key-status.d.ts.map +1 -0
  680. package/dist/search-tuning-key-status.js +24 -0
  681. package/dist/search-tuning-lint.d.ts +9 -0
  682. package/dist/search-tuning-lint.d.ts.map +1 -0
  683. package/dist/search-tuning-lint.js +468 -0
  684. package/dist/search-tuning-registry.d.ts +43 -0
  685. package/dist/search-tuning-registry.d.ts.map +1 -1
  686. package/dist/search-tuning-registry.js +214 -49
  687. package/dist/self-audit.d.ts +12 -0
  688. package/dist/self-audit.d.ts.map +1 -1
  689. package/dist/self-audit.js +36 -10
  690. package/dist/self-config-doctor-v2.d.ts +145 -3
  691. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  692. package/dist/self-config-doctor-v2.js +1369 -182
  693. package/dist/self-config-doctor.d.ts +20 -1
  694. package/dist/self-config-doctor.d.ts.map +1 -1
  695. package/dist/self-config-doctor.js +55 -281
  696. package/dist/settled-unit-states.d.ts +9 -0
  697. package/dist/settled-unit-states.d.ts.map +1 -0
  698. package/dist/settled-unit-states.js +14 -0
  699. package/dist/sharkcraft-inspector.d.ts +34 -0
  700. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  701. package/dist/sharkcraft-inspector.js +314 -27
  702. package/dist/spec/spec-evidence.d.ts.map +1 -1
  703. package/dist/spec/spec-evidence.js +14 -20
  704. package/dist/split-identifier.d.ts +21 -0
  705. package/dist/split-identifier.d.ts.map +1 -0
  706. package/dist/split-identifier.js +27 -0
  707. package/dist/stale-path-hint.d.ts +3 -0
  708. package/dist/stale-path-hint.d.ts.map +1 -0
  709. package/dist/stale-path-hint.js +47 -0
  710. package/dist/start-here.d.ts.map +1 -1
  711. package/dist/start-here.js +1 -2
  712. package/dist/substitute-placeholders.d.ts +8 -0
  713. package/dist/substitute-placeholders.d.ts.map +1 -0
  714. package/dist/substitute-placeholders.js +9 -0
  715. package/dist/symbol-index.d.ts +33 -0
  716. package/dist/symbol-index.d.ts.map +1 -1
  717. package/dist/symbol-index.js +241 -3
  718. package/dist/symbol-member-entry.d.ts +26 -0
  719. package/dist/symbol-member-entry.d.ts.map +1 -0
  720. package/dist/symbol-member-entry.js +1 -0
  721. package/dist/symbol-member-kind.d.ts +14 -0
  722. package/dist/symbol-member-kind.d.ts.map +1 -0
  723. package/dist/symbol-member-kind.js +14 -0
  724. package/dist/task-packet.d.ts.map +1 -1
  725. package/dist/task-packet.js +52 -9
  726. package/dist/task-ranker.d.ts +8 -0
  727. package/dist/task-ranker.d.ts.map +1 -1
  728. package/dist/task-ranker.js +25 -13
  729. package/dist/task-risk.js +1 -1
  730. package/dist/task-routing-hint-registry.d.ts +20 -1
  731. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  732. package/dist/task-routing-hint-registry.js +186 -42
  733. package/dist/template-authoring.d.ts +1 -1
  734. package/dist/template-authoring.d.ts.map +1 -1
  735. package/dist/template-authoring.js +2 -1
  736. package/dist/template-drift.d.ts.map +1 -1
  737. package/dist/template-drift.js +30 -9
  738. package/dist/template-lint.d.ts.map +1 -1
  739. package/dist/template-lint.js +160 -2
  740. package/dist/term-query.d.ts +10 -0
  741. package/dist/term-query.d.ts.map +1 -0
  742. package/dist/term-query.js +1 -0
  743. package/dist/test-definitions.d.ts +6 -3
  744. package/dist/test-definitions.d.ts.map +1 -1
  745. package/dist/test-runner.d.ts +95 -10
  746. package/dist/test-runner.d.ts.map +1 -1
  747. package/dist/test-runner.js +309 -308
  748. package/dist/tuning-query-tokens.d.ts +29 -0
  749. package/dist/tuning-query-tokens.d.ts.map +1 -0
  750. package/dist/tuning-query-tokens.js +51 -0
  751. package/dist/typecheck-files.d.ts +36 -0
  752. package/dist/typecheck-files.d.ts.map +1 -0
  753. package/dist/typecheck-files.js +158 -0
  754. package/dist/uncertainty.js +1 -1
  755. package/dist/universal-search.d.ts.map +1 -1
  756. package/dist/universal-search.js +5 -3
  757. package/dist/unregistered-exports.d.ts +19 -0
  758. package/dist/unregistered-exports.d.ts.map +1 -0
  759. package/dist/unregistered-exports.js +141 -0
  760. package/dist/unresolvable-reason.d.ts +11 -0
  761. package/dist/unresolvable-reason.d.ts.map +1 -0
  762. package/dist/unresolvable-reason.js +11 -0
  763. package/dist/upgrade-advisor.d.ts.map +1 -1
  764. package/dist/upgrade-advisor.js +16 -9
  765. package/dist/validate-contribution-file.d.ts +4 -0
  766. package/dist/validate-contribution-file.d.ts.map +1 -0
  767. package/dist/validate-contribution-file.js +233 -0
  768. package/dist/why-file.d.ts +3 -0
  769. package/dist/why-file.d.ts.map +1 -1
  770. package/dist/why-file.js +12 -7
  771. package/package.json +17 -17
@@ -0,0 +1,12 @@
1
+ /** Why an entry landed in the `unverifiable` bucket. */
2
+ export declare enum KnowledgeUnverifiableReason {
3
+ /** It declares no `references[]` and no `anchors[]`. */
4
+ NoReferences = "no-references",
5
+ /**
6
+ * It declares some, but none can be checked: every one is a `url`, an
7
+ * unpinned symbol, a reference missing its required field, or an id whose
8
+ * registry is empty / was not loaded.
9
+ */
10
+ OnlyUnverifiableReferences = "only-unverifiable-references"
11
+ }
12
+ //# sourceMappingURL=knowledge-unverifiable-reason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-unverifiable-reason.d.ts","sourceRoot":"","sources":["../src/knowledge-unverifiable-reason.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,oBAAY,2BAA2B;IACrC,wDAAwD;IACxD,YAAY,kBAAkB;IAC9B;;;;OAIG;IACH,0BAA0B,iCAAiC;CAC5D"}
@@ -0,0 +1,12 @@
1
+ /** Why an entry landed in the `unverifiable` bucket. */
2
+ export var KnowledgeUnverifiableReason;
3
+ (function (KnowledgeUnverifiableReason) {
4
+ /** It declares no `references[]` and no `anchors[]`. */
5
+ KnowledgeUnverifiableReason["NoReferences"] = "no-references";
6
+ /**
7
+ * It declares some, but none can be checked: every one is a `url`, an
8
+ * unpinned symbol, a reference missing its required field, or an id whose
9
+ * registry is empty / was not loaded.
10
+ */
11
+ KnowledgeUnverifiableReason["OnlyUnverifiableReferences"] = "only-unverifiable-references";
12
+ })(KnowledgeUnverifiableReason || (KnowledgeUnverifiableReason = {}));
@@ -0,0 +1,56 @@
1
+ import type { IKnowledgeEntryVerdictRecord } from './knowledge-entry-verdict-record.js';
2
+ import { KnowledgeMinReferencedValve } from './knowledge-min-referenced-valve.js';
3
+ import type { IUnverifiableRemedyGroup } from './i-unverifiable-remedy-group.js';
4
+ /** The channel sentence: both formats can declare references. */
5
+ export declare const DECLARE_REFERENCES_REMEDY = "Declare references[] (TypeScript) or a references: frontmatter list (Markdown)";
6
+ /** The valve a surface names (the verb takes the flag; `quality` refuses it). */
7
+ export declare function minReferencedValveText(valve: KnowledgeMinReferencedValve): string;
8
+ /**
9
+ * The fix for ONE unverifiable entry — `undefined` only for a local TypeScript
10
+ * (or other non-Markdown) entry that declares NOTHING (the heading names
11
+ * `references[]`). It branches on the verdict REASON (round 15 closing, A4): an
12
+ * entry that declares references, none checkable (a malformed item — a
13
+ * non-boolean `required`, an unknown kind or `root` — or only `url:`s), is told
14
+ * to fix what it declared, never to "add a references: frontmatter list" /
15
+ * "declare references[]" it already has. A pack's entries are fixed upstream;
16
+ * their `file:` / `directory:` paths resolve against the CONSUMER's root unless
17
+ * the reference declares `root: pack` (round 15 follow-up, F7 — then against
18
+ * the pack's own directory), and `package:` reads the consumer's root
19
+ * package.json plus the pack's own name.
20
+ */
21
+ export declare function unverifiableFileRemedy(v: Pick<IKnowledgeEntryVerdictRecord, 'sourceFormat' | 'pack' | 'reason'>): string | undefined;
22
+ /**
23
+ * {@link unverifiableFileRemedy} for EVERY entry — what a per-entry row (the
24
+ * `--require-references` violation) prints: a local TypeScript entry that
25
+ * declares nothing is told to declare `references[]`, one whose references are
26
+ * all uncheckable to fix them (it read "declare references[]").
27
+ */
28
+ export declare function unverifiableEntryRemedy(v: Pick<IKnowledgeEntryVerdictRecord, 'sourceFormat' | 'pack' | 'reason'>): string;
29
+ /**
30
+ * The heading of the unverifiable list, after `UNVERIFIABLE (N) — never
31
+ * checked; ` — by reason (round 15 closing, A4): it told every entry to
32
+ * "declare references[] …, a references: frontmatter list (Markdown) or
33
+ * anchors[]", over entries whose references exist and are malformed.
34
+ */
35
+ export declare function unverifiableListHeading(verdicts: readonly Pick<IKnowledgeEntryVerdictRecord, 'verdict' | 'reason'>[]): string;
36
+ /**
37
+ * The remedy sentence for a run with unverifiable entries: the channel (or,
38
+ * for entries that declare references none of which is checkable, the fix to
39
+ * them — round 15 closing, A4), the valve this surface can name, and — when a
40
+ * pack contributed any of them — the pack that fixes them upstream.
41
+ */
42
+ export declare function unverifiableRemedy(verdicts: readonly Pick<IKnowledgeEntryVerdictRecord, 'verdict' | 'pack' | 'reason'>[], valve: KnowledgeMinReferencedValve): string;
43
+ /**
44
+ * Unverifiable entries grouped by declaring file AND remedy, in report order —
45
+ * THE grouping the stale-check's per-file lines and `quality`'s notes read. A
46
+ * file whose entries need different fixes gets one group per fix: the first
47
+ * entry's remedy used to speak for its whole file (round 15 closing, A4).
48
+ */
49
+ export declare function unverifiableRemedyGroups(verdicts: readonly Pick<IKnowledgeEntryVerdictRecord, 'entryId' | 'verdict' | 'source' | 'sourceFormat' | 'pack' | 'reason'>[]): IUnverifiableRemedyGroup[];
50
+ /**
51
+ * `<file>: <remedy>` for each file whose unverifiable entries need more than
52
+ * `references[]`, capped — `<file> (<ids>): <remedy>` when that file's entries
53
+ * need different fixes ({@link unverifiableRemedyGroups}).
54
+ */
55
+ export declare function unverifiableFileRemedies(verdicts: readonly Pick<IKnowledgeEntryVerdictRecord, 'entryId' | 'verdict' | 'source' | 'sourceFormat' | 'pack' | 'reason'>[]): string[];
56
+ //# sourceMappingURL=knowledge-unverifiable-remedy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-unverifiable-remedy.d.ts","sourceRoot":"","sources":["../src/knowledge-unverifiable-remedy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAKnF,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,MAAM,CAIjF;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC,GACxE,MAAM,GAAG,SAAS,CAyBpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC,GACxE,MAAM,CAER;AAiBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,MAAM,CAK7H;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,EACtF,KAAK,EAAE,2BAA2B,GACjC,MAAM,CAmBR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,GAC7H,wBAAwB,EAAE,CAc5B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,GAC7H,MAAM,EAAE,CAUV"}
@@ -1,3 +1,4 @@
1
+ import type { IRejectedEntry } from '@shrkcrft/core';
1
2
  import type { LoaderAssetKind, LoaderAssetStatus } from './inspector-cache.js';
2
3
  export type LoaderOrigin = 'local-config' | 'pack-manifest';
3
4
  export interface ILoaderDiagnostic {
@@ -6,9 +7,20 @@ export interface ILoaderDiagnostic {
6
7
  origin: LoaderOrigin;
7
8
  packName?: string;
8
9
  elapsedMs: number;
9
- status: LoaderAssetStatus | 'cached-skip';
10
- /** Number of items extracted (entries/templates/etc). */
10
+ /**
11
+ * `missing` — a file the local config DECLARES (e.g. `knowledgeFiles`) does
12
+ * not exist, so nothing was loaded from it. Recorded so a corpus check can
13
+ * refuse to pass over a source it was told about and never read.
14
+ */
15
+ status: LoaderAssetStatus | 'cached-skip' | 'missing';
16
+ /** Number of items extracted (entries/templates/etc) — the loader's ACCEPTED count. */
11
17
  count: number;
18
+ /**
19
+ * Entries the file declared that the loader refused (round 12, 12.1), so
20
+ * `count + rejected.length === declared`. Absent when none were refused.
21
+ * Lifted into THE rejection channel by `collectContributionRejections`.
22
+ */
23
+ rejected?: readonly IRejectedEntry[];
12
24
  warningCount: number;
13
25
  errorMessage?: string;
14
26
  /** When status === 'cached-skip', this is the cached pre-existing status. */
@@ -1 +1 @@
1
- {"version":3,"file":"loader-diagnostics.d.ts","sourceRoot":"","sources":["../src/loader-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAC1C,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAQvE;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CA2BA"}
1
+ {"version":3,"file":"loader-diagnostics.d.ts","sourceRoot":"","sources":["../src/loader-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;IACtD,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAQvE;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CA2BA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * THE term matcher — the one answer to "does this trigger word appear in this
3
+ * task?" for routing hints, playbooks, the recommender's built-in recipes, the
4
+ * change-intent domain keywords and the ranker's distinct-term evidence.
5
+ *
6
+ * Every one of those used raw `task.toLowerCase().includes(needle)`, so a
7
+ * two-letter keyword fired inside unrelated words (`ci` in `pricing`, `pr` in
8
+ * `pricing`, `gate` in `investigate`, `pack` in `package`) and a hyphenated
9
+ * tag could never match the same words typed with spaces (`capability-pack`
10
+ * vs "capability pack").
11
+ *
12
+ * Terms come from THE identifier tokenizer (`split-identifier.ts`) over the
13
+ * LOWERCASED text — so camelCase splitting is inert and both sides split the
14
+ * same way on hyphens, underscores, whitespace and punctuation. Never write a
15
+ * second tokenizer.
16
+ */
17
+ import { TermMatchMode } from '@shrkcrft/plugin-api';
18
+ import type { ITermQuery } from './term-query.js';
19
+ /** Function words dropped by {@link contentTerms}. Small and fixed on purpose. */
20
+ export declare const TERM_STOPWORDS: ReadonlySet<string>;
21
+ /** Lowercase, then split with THE identifier tokenizer. Order and duplicates are kept. */
22
+ export declare function normaliseTerms(text: string): string[];
23
+ /** {@link normaliseTerms} minus {@link TERM_STOPWORDS}, distinct, first-seen order. */
24
+ export declare function contentTerms(text: string): string[];
25
+ /** Prepare a task once for any number of {@link matchTerm} calls. */
26
+ export declare function prepareTermQuery(text: string): ITermQuery;
27
+ /** Two terms agree when equal, or one plain inflection apart (either direction). */
28
+ export declare function termsAgree(a: string, b: string): boolean;
29
+ /**
30
+ * Does `needle` occur in the query?
31
+ *
32
+ * - {@link TermMatchMode.Tokens} (default): the needle's terms must appear
33
+ * contiguously in the query's terms, each agreeing ({@link termsAgree}). A
34
+ * needle with no terms (empty, or punctuation only) never matches.
35
+ * - {@link TermMatchMode.Substring}: the legacy `lower.includes(needle)`,
36
+ * reproduced exactly (an empty needle matches everything — the routing-hint
37
+ * load lint errors on it).
38
+ */
39
+ export declare function matchTerm(query: ITermQuery, needle: string, mode?: TermMatchMode | `${TermMatchMode}`): boolean;
40
+ /**
41
+ * The DISTINCT `queryTerms` that agree with some term of `corpus` — the
42
+ * evidence count "how many different words of the task does this item
43
+ * mention?". Repeats inside the corpus never count twice.
44
+ */
45
+ export declare function matchedQueryTerms(queryTerms: readonly string[], corpus: readonly (string | undefined)[]): string[];
46
+ /** Jaccard similarity of two term lists, as sets (0 when both are empty). */
47
+ export declare function termJaccard(a: readonly string[], b: readonly string[]): number;
48
+ //# sourceMappingURL=match-terms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-terms.d.ts","sourceRoot":"","sources":["../src/match-terms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAmB7C,CAAC;AAgBH,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASnD;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEzD;AAaD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,aAAa,GAAG,GAAG,aAAa,EAAyB,GAC9D,OAAO,CAeT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACtC,MAAM,EAAE,CAcV;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAO9E"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * THE term matcher — the one answer to "does this trigger word appear in this
3
+ * task?" for routing hints, playbooks, the recommender's built-in recipes, the
4
+ * change-intent domain keywords and the ranker's distinct-term evidence.
5
+ *
6
+ * Every one of those used raw `task.toLowerCase().includes(needle)`, so a
7
+ * two-letter keyword fired inside unrelated words (`ci` in `pricing`, `pr` in
8
+ * `pricing`, `gate` in `investigate`, `pack` in `package`) and a hyphenated
9
+ * tag could never match the same words typed with spaces (`capability-pack`
10
+ * vs "capability pack").
11
+ *
12
+ * Terms come from THE identifier tokenizer (`split-identifier.ts`) over the
13
+ * LOWERCASED text — so camelCase splitting is inert and both sides split the
14
+ * same way on hyphens, underscores, whitespace and punctuation. Never write a
15
+ * second tokenizer.
16
+ */
17
+ import { TermMatchMode } from '@shrkcrft/plugin-api';
18
+ import { splitIdentifierTokens } from "./split-identifier.js";
19
+ /** Function words dropped by {@link contentTerms}. Small and fixed on purpose. */
20
+ export const TERM_STOPWORDS = new Set([
21
+ 'a',
22
+ 'an',
23
+ 'the',
24
+ 'to',
25
+ 'for',
26
+ 'of',
27
+ 'in',
28
+ 'on',
29
+ 'and',
30
+ 'or',
31
+ 'with',
32
+ 'my',
33
+ 'our',
34
+ 'please',
35
+ 'i',
36
+ 'we',
37
+ 'it',
38
+ 'is',
39
+ ]);
40
+ /**
41
+ * Plain inflections one term may differ by. Agent-noun suffixes (`er`, `ers`)
42
+ * are deliberately absent: `block` → `blocker`, `build` → `builder` change the
43
+ * meaning, and `block` firing on "the blocker in billing" was one of the
44
+ * reproduced false positives.
45
+ */
46
+ const INFLECTION_SUFFIXES = ['s', 'es', 'ed', 'ing'];
47
+ /** A term shorter than this matches only itself — `ci`, `pr`, `go` never inflect. */
48
+ const MIN_INFLECTABLE_LENGTH = 3;
49
+ /** Final consonants that double before `-ing` / `-ed` (`plan` → `planning`). */
50
+ const DOUBLING_CONSONANT = /[bdgklmnprtz]$/;
51
+ /** Lowercase, then split with THE identifier tokenizer. Order and duplicates are kept. */
52
+ export function normaliseTerms(text) {
53
+ return splitIdentifierTokens(text.toLowerCase());
54
+ }
55
+ /** {@link normaliseTerms} minus {@link TERM_STOPWORDS}, distinct, first-seen order. */
56
+ export function contentTerms(text) {
57
+ const out = [];
58
+ const seen = new Set();
59
+ for (const t of normaliseTerms(text)) {
60
+ if (TERM_STOPWORDS.has(t) || seen.has(t))
61
+ continue;
62
+ seen.add(t);
63
+ out.push(t);
64
+ }
65
+ return out;
66
+ }
67
+ /** Prepare a task once for any number of {@link matchTerm} calls. */
68
+ export function prepareTermQuery(text) {
69
+ return { lower: text.toLowerCase(), terms: normaliseTerms(text) };
70
+ }
71
+ function inflects(base, word) {
72
+ if (base.length < MIN_INFLECTABLE_LENGTH || word.length <= base.length)
73
+ return false;
74
+ for (const suffix of INFLECTION_SUFFIXES)
75
+ if (word === base + suffix)
76
+ return true;
77
+ const last = base[base.length - 1];
78
+ const stem = base.slice(0, -1);
79
+ if (last === 'e' && (word === `${base}d` || word === `${stem}ing`))
80
+ return true;
81
+ if (last === 'y' && (word === `${stem}ies` || word === `${stem}ied`))
82
+ return true;
83
+ if (DOUBLING_CONSONANT.test(base) && (word === `${base}${last}ing` || word === `${base}${last}ed`))
84
+ return true;
85
+ return false;
86
+ }
87
+ /** Two terms agree when equal, or one plain inflection apart (either direction). */
88
+ export function termsAgree(a, b) {
89
+ return a === b || inflects(a, b) || inflects(b, a);
90
+ }
91
+ /**
92
+ * Does `needle` occur in the query?
93
+ *
94
+ * - {@link TermMatchMode.Tokens} (default): the needle's terms must appear
95
+ * contiguously in the query's terms, each agreeing ({@link termsAgree}). A
96
+ * needle with no terms (empty, or punctuation only) never matches.
97
+ * - {@link TermMatchMode.Substring}: the legacy `lower.includes(needle)`,
98
+ * reproduced exactly (an empty needle matches everything — the routing-hint
99
+ * load lint errors on it).
100
+ */
101
+ export function matchTerm(query, needle, mode = TermMatchMode.Tokens) {
102
+ if (mode === TermMatchMode.Substring)
103
+ return query.lower.includes(needle.toLowerCase());
104
+ const seq = normaliseTerms(needle);
105
+ if (seq.length === 0 || seq.length > query.terms.length)
106
+ return false;
107
+ for (let i = 0; i + seq.length <= query.terms.length; i++) {
108
+ let all = true;
109
+ for (let j = 0; j < seq.length; j++) {
110
+ if (!termsAgree(seq[j], query.terms[i + j])) {
111
+ all = false;
112
+ break;
113
+ }
114
+ }
115
+ if (all)
116
+ return true;
117
+ }
118
+ return false;
119
+ }
120
+ /**
121
+ * The DISTINCT `queryTerms` that agree with some term of `corpus` — the
122
+ * evidence count "how many different words of the task does this item
123
+ * mention?". Repeats inside the corpus never count twice.
124
+ */
125
+ export function matchedQueryTerms(queryTerms, corpus) {
126
+ const corpusTerms = new Set();
127
+ for (const c of corpus)
128
+ if (c)
129
+ for (const t of normaliseTerms(c))
130
+ corpusTerms.add(t);
131
+ const out = [];
132
+ for (const q of queryTerms) {
133
+ if (out.includes(q))
134
+ continue;
135
+ for (const t of corpusTerms) {
136
+ if (termsAgree(q, t)) {
137
+ out.push(q);
138
+ break;
139
+ }
140
+ }
141
+ }
142
+ return out;
143
+ }
144
+ /** Jaccard similarity of two term lists, as sets (0 when both are empty). */
145
+ export function termJaccard(a, b) {
146
+ const sa = new Set(a);
147
+ const sb = new Set(b);
148
+ if (sa.size === 0 && sb.size === 0)
149
+ return 0;
150
+ let inter = 0;
151
+ for (const t of sa)
152
+ if (sb.has(t))
153
+ inter += 1;
154
+ return inter / (sa.size + sb.size - inter);
155
+ }
@@ -1,5 +1,6 @@
1
1
  import { type IMigrationProfile } from './migration-readiness.js';
2
2
  import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
3
+ import { type IRejectedEntry } from '@shrkcrft/core';
3
4
  export declare const MIGRATION_PROFILE_REGISTRY_SCHEMA = "sharkcraft.migration-profile-registry/v1";
4
5
  export declare enum MigrationProfileSource {
5
6
  Local = "local",
@@ -18,9 +19,18 @@ export interface IMigrationProfileRegistryIssue {
18
19
  readonly profileId?: string;
19
20
  readonly source?: string;
20
21
  }
22
+ /**
23
+ * THE migration-profile acceptance predicate (round 12, 12.1): one
24
+ * `<field>: <message>` per failing field — `[]` means accepted. A refused
25
+ * profile used to read `Invalid migration profile at <file>; skipped.`
26
+ * with no id and no field.
27
+ */
28
+ export declare function migrationProfileRejectionReasons(raw: unknown): readonly string[];
21
29
  export declare function loadMigrationProfiles(inspection: ISharkcraftInspection): Promise<{
22
30
  entries: readonly IMigrationProfileEntry[];
23
31
  issues: readonly IMigrationProfileRegistryIssue[];
32
+ /** Every declared profile the loader refused — invalid or a duplicate id (round 12, 12.1). */
33
+ rejected: readonly IRejectedEntry[];
24
34
  }>;
25
35
  export declare function listMigrationProfilesFromPacks(inspection: ISharkcraftInspection): Promise<readonly IMigrationProfile[]>;
26
36
  //# sourceMappingURL=migration-profile-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-profile-registry.d.ts","sourceRoot":"","sources":["../src/migration-profile-registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAE5F,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAkCD,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAC;CACnD,CAAC,CAkFD;AAED,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAGvC"}
1
+ {"version":3,"file":"migration-profile-registry.d.ts","sourceRoot":"","sources":["../src/migration-profile-registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAE5F,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAQhF;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAClD,8FAA8F;IAC9F,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC,CAAC,CA+GD;AAED,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAGvC"}
@@ -4,22 +4,15 @@
4
4
  */
5
5
  import { existsSync } from 'node:fs';
6
6
  import * as nodePath from 'node:path';
7
- import { importModuleViaLoader } from '@shrkcrft/core';
7
+ import { importModuleViaLoader, readContributionExport, RejectionCause, } from '@shrkcrft/core';
8
8
  export const MIGRATION_PROFILE_REGISTRY_SCHEMA = 'sharkcraft.migration-profile-registry/v1';
9
9
  export var MigrationProfileSource;
10
10
  (function (MigrationProfileSource) {
11
11
  MigrationProfileSource["Local"] = "local";
12
12
  MigrationProfileSource["Pack"] = "pack";
13
13
  })(MigrationProfileSource || (MigrationProfileSource = {}));
14
- async function importDefault(file) {
15
- const mod = (await importModuleViaLoader(file));
16
- if (Array.isArray(mod.default))
17
- return mod.default;
18
- if (mod.default && typeof mod.default === 'object')
19
- return [mod.default];
20
- if (Array.isArray(mod.migrationProfiles))
21
- return mod.migrationProfiles;
22
- return [];
14
+ async function importProfiles(file) {
15
+ return readContributionExport(await importModuleViaLoader(file), { namedKeys: ['migrationProfiles'] });
23
16
  }
24
17
  function localFiles(inspection) {
25
18
  const out = [];
@@ -31,56 +24,88 @@ function localFiles(inspection) {
31
24
  if (existsSync(full))
32
25
  out.push(full);
33
26
  }
34
- const cfg = inspection.config;
35
- for (const rel of cfg?.migrationProfileFiles ?? []) {
36
- out.push(nodePath.isAbsolute(rel) ? rel : nodePath.join(dir, rel));
37
- }
27
+ // More profile files come from pack manifests (`migrationProfileFiles`,
28
+ // loaded below) — there is no local-config key for them; the strict config
29
+ // schema rejects one, so a local read here could never be reached.
38
30
  return out;
39
31
  }
40
- function looksValid(raw) {
41
- if (!raw || typeof raw !== 'object')
42
- return false;
32
+ /**
33
+ * THE migration-profile acceptance predicate (round 12, 12.1): one
34
+ * `<field>: <message>` per failing field — `[]` means accepted. A refused
35
+ * profile used to read `Invalid migration profile at <file>; skipped.`
36
+ * with no id and no field.
37
+ */
38
+ export function migrationProfileRejectionReasons(raw) {
39
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
40
+ return ['(entry): must be an object'];
43
41
  const o = raw;
44
- return typeof o.id === 'string' && typeof o.title === 'string' && Array.isArray(o.checks);
42
+ const out = [];
43
+ if (typeof o.id !== 'string')
44
+ out.push('id: must be a string');
45
+ if (typeof o.title !== 'string')
46
+ out.push('title: must be a string');
47
+ if (!Array.isArray(o.checks))
48
+ out.push('checks: must be an array');
49
+ return out;
45
50
  }
46
51
  export async function loadMigrationProfiles(inspection) {
47
52
  const entries = [];
48
53
  const issues = [];
49
- const seen = new Set();
50
- const ingest = (raw, source, packageName, sourceFile) => {
51
- if (!looksValid(raw)) {
54
+ const rejected = [];
55
+ const seen = new Map();
56
+ const ingest = (raw, source, packageName, sourceFile, at) => {
57
+ const rawId = raw && typeof raw === 'object' ? raw.id : undefined;
58
+ const id = typeof rawId === 'string' ? rawId : undefined;
59
+ const reasons = migrationProfileRejectionReasons(raw);
60
+ if (reasons.length > 0) {
52
61
  issues.push({
53
62
  severity: 'warning',
54
63
  code: 'invalid-profile',
55
- message: `Invalid migration profile at ${sourceFile}; skipped.`,
64
+ message: `Invalid migration profile${id ? ` "${id}"` : ''} at ${sourceFile} (${at.exportName ?? 'default'}[${at.index}]); skipped — ${reasons.join('; ')}.`,
65
+ ...(id ? { profileId: id } : {}),
56
66
  source: sourceFile,
57
67
  });
68
+ rejected.push({ ...at, ...(id ? { entryId: id } : {}), reasons, cause: RejectionCause.Invalid });
58
69
  return;
59
70
  }
60
- if (seen.has(raw.id)) {
71
+ const profile = raw;
72
+ const prev = seen.get(profile.id);
73
+ if (prev !== undefined) {
61
74
  issues.push({
62
75
  severity: 'error',
63
76
  code: 'duplicate-id',
64
- message: `Migration profile id "${raw.id}" already loaded; skipping ${sourceFile}.`,
65
- profileId: raw.id,
77
+ message: `Migration profile id "${profile.id}" already loaded; skipping ${sourceFile}.`,
78
+ profileId: profile.id,
66
79
  source: sourceFile,
67
80
  });
81
+ rejected.push({
82
+ ...at,
83
+ entryId: profile.id,
84
+ reasons: [`id: "${profile.id}" is already declared in ${prev}`],
85
+ cause: RejectionCause.DuplicateId,
86
+ });
68
87
  return;
69
88
  }
70
- seen.add(raw.id);
89
+ seen.set(profile.id, sourceFile);
71
90
  entries.push({
72
- profile: raw,
91
+ profile,
73
92
  source,
74
93
  ...(packageName ? { packageName } : {}),
75
94
  sourceFile,
76
95
  });
77
96
  };
97
+ const ingestAll = (exp, file, source, packageName, sourceFile) => {
98
+ exp.items.forEach((raw, i) => ingest(raw, source, packageName, sourceFile, {
99
+ file,
100
+ index: exp.single ? -1 : i,
101
+ ...(exp.exportName ? { exportName: exp.exportName } : {}),
102
+ }));
103
+ };
78
104
  for (const file of localFiles(inspection)) {
79
105
  try {
80
- const list = await importDefault(file);
106
+ const exp = await importProfiles(file);
81
107
  const rel = nodePath.relative(inspection.projectRoot, file) || file;
82
- for (const raw of list)
83
- ingest(raw, MigrationProfileSource.Local, undefined, rel);
108
+ ingestAll(exp, file, MigrationProfileSource.Local, undefined, rel);
84
109
  }
85
110
  catch (e) {
86
111
  issues.push({
@@ -105,9 +130,7 @@ export async function loadMigrationProfiles(inspection) {
105
130
  continue;
106
131
  }
107
132
  try {
108
- const list = await importDefault(file);
109
- for (const raw of list)
110
- ingest(raw, MigrationProfileSource.Pack, pack.packageName, rel);
133
+ ingestAll(await importProfiles(file), file, MigrationProfileSource.Pack, pack.packageName, rel);
111
134
  }
112
135
  catch (e) {
113
136
  issues.push({
@@ -119,7 +142,7 @@ export async function loadMigrationProfiles(inspection) {
119
142
  }
120
143
  }
121
144
  }
122
- return { entries, issues };
145
+ return { entries, issues, rejected };
123
146
  }
124
147
  export async function listMigrationProfilesFromPacks(inspection) {
125
148
  const { entries } = await loadMigrationProfiles(inspection);
@@ -1 +1 @@
1
- {"version":3,"file":"migration-readiness.d.ts","sourceRoot":"","sources":["../src/migration-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-readiness.d.ts","sourceRoot":"","sources":["../src/migration-readiness.ts"],"names":[],"mappings":"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"}
@@ -159,9 +159,7 @@ export function buildMigrationReadiness(options) {
159
159
  `Profile: ${profile.title} (${profile.id})`,
160
160
  `Verdict: ${verdict}`,
161
161
  `Passed: ${passed.length}, Warnings: ${warnings.length}, Blockers: ${blockers.length}`,
162
- 'Next: review blockers (if any), then re-run `shrk migration readiness --profile ' +
163
- profile.id +
164
- '`.',
162
+ `Next: review blockers (if any), then re-run the readiness check for ${profile.id}.`,
165
163
  ];
166
164
  return {
167
165
  schema: 'sharkcraft.migration-readiness/v1',
@@ -1,30 +1,14 @@
1
1
  /**
2
- * Nearest-id "did you mean" over an arbitrary id set.
2
+ * Nearest-id "did you mean" over an arbitrary id set — `levenshtein` (THE edit
3
+ * distance) and `nearestIds` (the length-scaled, affinity-aware cutoff).
3
4
  *
4
- * The command suggester already had a Levenshtein and a fuzzy ranker, but both
5
- * were shaped around a command CATALOG (command paths, aliases, descriptions).
6
- * A stale `nge.angular-renderer` in a doc needs the same help against a flat
7
- * list of template ids, so the distance function moves here and both consume
8
- * it — a second implementation would drift, and then two surfaces would
9
- * disagree about what "close" means.
10
- *
11
- * A suggestion is only offered when it is actually close. Printing the
12
- * alphabetically-first id next to every typo trains people to ignore the line.
13
- */
14
- /** Levenshtein edit distance. Iterative, one row of state. */
15
- export declare function levenshtein(a: string, b: string): number;
16
- /** One candidate the query might have meant. */
17
- export interface INearestId {
18
- readonly id: string;
19
- readonly distance: number;
20
- }
21
- /**
22
- * The closest ids to `query`, nearest first.
23
- *
24
- * The cutoff scales with the query's length — one edit is a lot in `foo` and
25
- * very little in `nge.angular-renderer` — and is capped so a long id cannot
26
- * drag in something unrelated. Ties break lexically so the output is stable
27
- * across runs, which matters when it lands in a committed diff.
5
+ * Round 13: both moved to `@shrkcrft/core` so the lowest layer — the
6
+ * `expectEmpty` marker parser (`normalizeUnitList`) — can offer a did-you-mean
7
+ * for a misspelled marker key without importing upward. This module re-exports
8
+ * them unchanged, so every existing `@shrkcrft/inspector` import keeps working
9
+ * and there is still ONE scorer: the CLI's `editDistance` IS this `levenshtein`
10
+ * (r75-did-you-mean-one-scorer), and a second implementation would drift.
28
11
  */
29
- export declare function nearestIds(query: string, candidates: readonly string[], limit?: number): readonly INearestId[];
12
+ export { levenshtein, nearestIds } from '@shrkcrft/core';
13
+ export type { INearestId } from '@shrkcrft/core';
30
14
  //# sourceMappingURL=nearest-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nearest-id.d.ts","sourceRoot":"","sources":["../src/nearest-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBxD;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,KAAK,SAAI,GACR,SAAS,UAAU,EAAE,CAiBvB"}
1
+ {"version":3,"file":"nearest-id.d.ts","sourceRoot":"","sources":["../src/nearest-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}