@shrkcrft/inspector 0.1.0-alpha.29 → 0.1.0-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (694) 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 +40 -0
  69. package/dist/code-intelligence-doctor.d.ts.map +1 -1
  70. package/dist/code-intelligence-doctor.js +86 -12
  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 +80 -0
  138. package/dist/doc-references.d.ts.map +1 -0
  139. package/dist/doc-references.js +269 -0
  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.d.ts.map +1 -1
  162. package/dist/fuzzy-impact.js +12 -21
  163. package/dist/healing-plan.d.ts.map +1 -1
  164. package/dist/healing-plan.js +3 -4
  165. package/dist/helper-catalog.d.ts +25 -0
  166. package/dist/helper-catalog.d.ts.map +1 -0
  167. package/dist/helper-catalog.js +91 -0
  168. package/dist/helper-registry.d.ts.map +1 -1
  169. package/dist/helper-registry.js +17 -1
  170. package/dist/helper-view.d.ts +33 -0
  171. package/dist/helper-view.d.ts.map +1 -0
  172. package/dist/helper-view.js +1 -0
  173. package/dist/i-asset-doctor-flags.d.ts +16 -0
  174. package/dist/i-asset-doctor-flags.d.ts.map +1 -0
  175. package/dist/i-asset-doctor-flags.js +1 -0
  176. package/dist/i-command-resolution.d.ts +22 -0
  177. package/dist/i-command-resolution.d.ts.map +1 -0
  178. package/dist/i-command-resolution.js +1 -0
  179. package/dist/i-command-resolve-options.d.ts +24 -0
  180. package/dist/i-command-resolve-options.d.ts.map +1 -0
  181. package/dist/i-command-resolve-options.js +1 -0
  182. package/dist/i-command-safety.d.ts +13 -0
  183. package/dist/i-command-safety.d.ts.map +1 -0
  184. package/dist/i-command-safety.js +1 -0
  185. package/dist/i-contribution-accepted-entry.d.ts +18 -0
  186. package/dist/i-contribution-accepted-entry.d.ts.map +1 -0
  187. package/dist/i-contribution-accepted-entry.js +1 -0
  188. package/dist/i-contribution-entry-rejection.d.ts +21 -0
  189. package/dist/i-contribution-entry-rejection.d.ts.map +1 -0
  190. package/dist/i-contribution-entry-rejection.js +1 -0
  191. package/dist/i-contribution-file-issue.d.ts +18 -0
  192. package/dist/i-contribution-file-issue.d.ts.map +1 -0
  193. package/dist/i-contribution-file-issue.js +1 -0
  194. package/dist/i-contribution-file-report.d.ts +40 -0
  195. package/dist/i-contribution-file-report.d.ts.map +1 -0
  196. package/dist/i-contribution-file-report.js +1 -0
  197. package/dist/i-contribution-file-validation.d.ts +24 -0
  198. package/dist/i-contribution-file-validation.d.ts.map +1 -0
  199. package/dist/i-contribution-file-validation.js +1 -0
  200. package/dist/i-contributions-report.d.ts +31 -0
  201. package/dist/i-contributions-report.d.ts.map +1 -0
  202. package/dist/i-contributions-report.js +1 -0
  203. package/dist/i-declared-xref-field.d.ts +25 -0
  204. package/dist/i-declared-xref-field.d.ts.map +1 -0
  205. package/dist/i-declared-xref-field.js +1 -0
  206. package/dist/i-declared-xref-issue.d.ts +25 -0
  207. package/dist/i-declared-xref-issue.d.ts.map +1 -0
  208. package/dist/i-declared-xref-issue.js +1 -0
  209. package/dist/i-declared-xref-report.d.ts +48 -0
  210. package/dist/i-declared-xref-report.d.ts.map +1 -0
  211. package/dist/i-declared-xref-report.js +1 -0
  212. package/dist/i-declared-xref-row.d.ts +29 -0
  213. package/dist/i-declared-xref-row.d.ts.map +1 -0
  214. package/dist/i-declared-xref-row.js +1 -0
  215. package/dist/i-doctor-verdict.d.ts +10 -0
  216. package/dist/i-doctor-verdict.d.ts.map +1 -0
  217. package/dist/i-doctor-verdict.js +1 -0
  218. package/dist/i-kind-outcomes.d.ts +13 -0
  219. package/dist/i-kind-outcomes.d.ts.map +1 -0
  220. package/dist/i-kind-outcomes.js +1 -0
  221. package/dist/i-pack-doctor-verdict.d.ts +15 -0
  222. package/dist/i-pack-doctor-verdict.d.ts.map +1 -0
  223. package/dist/i-pack-doctor-verdict.js +1 -0
  224. package/dist/i-probed-id-field.d.ts +17 -0
  225. package/dist/i-probed-id-field.d.ts.map +1 -0
  226. package/dist/i-probed-id-field.js +1 -0
  227. package/dist/i-reference-kind-declaration.d.ts +38 -0
  228. package/dist/i-reference-kind-declaration.d.ts.map +1 -0
  229. package/dist/i-reference-kind-declaration.js +1 -0
  230. package/dist/i-reference-warm-options.d.ts +21 -0
  231. package/dist/i-reference-warm-options.d.ts.map +1 -0
  232. package/dist/i-reference-warm-options.js +1 -0
  233. package/dist/i-registry-outcomes.d.ts +16 -0
  234. package/dist/i-registry-outcomes.d.ts.map +1 -0
  235. package/dist/i-registry-outcomes.js +1 -0
  236. package/dist/i-scaffold-pattern-doctor-report.d.ts +35 -0
  237. package/dist/i-scaffold-pattern-doctor-report.d.ts.map +1 -0
  238. package/dist/i-scaffold-pattern-doctor-report.js +1 -0
  239. package/dist/i-search-tuning-key-probe.d.ts +30 -0
  240. package/dist/i-search-tuning-key-probe.d.ts.map +1 -0
  241. package/dist/i-search-tuning-key-probe.js +1 -0
  242. package/dist/i-search-tuning-lint-issue.d.ts +61 -0
  243. package/dist/i-search-tuning-lint-issue.d.ts.map +1 -0
  244. package/dist/i-search-tuning-lint-issue.js +1 -0
  245. package/dist/i-search-tuning-lint-report.d.ts +38 -0
  246. package/dist/i-search-tuning-lint-report.d.ts.map +1 -0
  247. package/dist/i-search-tuning-lint-report.js +1 -0
  248. package/dist/i-unresolvable-reference-scan.d.ts +14 -0
  249. package/dist/i-unresolvable-reference-scan.d.ts.map +1 -0
  250. package/dist/i-unresolvable-reference-scan.js +1 -0
  251. package/dist/i-unresolvable-reference.d.ts +29 -0
  252. package/dist/i-unresolvable-reference.d.ts.map +1 -0
  253. package/dist/i-unresolvable-reference.js +1 -0
  254. package/dist/i-workspace-profile-payload.d.ts +12 -0
  255. package/dist/i-workspace-profile-payload.d.ts.map +1 -0
  256. package/dist/i-workspace-profile-payload.js +1 -0
  257. package/dist/impact-analysis.d.ts +15 -0
  258. package/dist/impact-analysis.d.ts.map +1 -1
  259. package/dist/impact-analysis.js +58 -13
  260. package/dist/impact-render.d.ts.map +1 -1
  261. package/dist/impact-render.js +22 -0
  262. package/dist/import-hygiene.d.ts +35 -1
  263. package/dist/import-hygiene.d.ts.map +1 -1
  264. package/dist/import-hygiene.js +107 -13
  265. package/dist/index.d.ts +145 -0
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +176 -0
  268. package/dist/inspection-discovery.d.ts +45 -0
  269. package/dist/inspection-discovery.d.ts.map +1 -0
  270. package/dist/inspection-discovery.js +70 -0
  271. package/dist/knowledge-advisory-code.d.ts +17 -0
  272. package/dist/knowledge-advisory-code.d.ts.map +1 -0
  273. package/dist/knowledge-advisory-code.js +17 -0
  274. package/dist/knowledge-aged-entry.d.ts +10 -0
  275. package/dist/knowledge-aged-entry.d.ts.map +1 -0
  276. package/dist/knowledge-aged-entry.js +1 -0
  277. package/dist/knowledge-authoring.d.ts +24 -1
  278. package/dist/knowledge-authoring.d.ts.map +1 -1
  279. package/dist/knowledge-authoring.js +46 -7
  280. package/dist/knowledge-entry-verdict-record.d.ts +22 -0
  281. package/dist/knowledge-entry-verdict-record.d.ts.map +1 -0
  282. package/dist/knowledge-entry-verdict-record.js +1 -0
  283. package/dist/knowledge-entry-verdict.d.ts +17 -0
  284. package/dist/knowledge-entry-verdict.d.ts.map +1 -0
  285. package/dist/knowledge-entry-verdict.js +17 -0
  286. package/dist/knowledge-graph.d.ts +6 -0
  287. package/dist/knowledge-graph.d.ts.map +1 -1
  288. package/dist/knowledge-graph.js +18 -7
  289. package/dist/knowledge-kind-bucket.d.ts +19 -0
  290. package/dist/knowledge-kind-bucket.d.ts.map +1 -0
  291. package/dist/knowledge-kind-bucket.js +1 -0
  292. package/dist/knowledge-load-failure.d.ts +23 -0
  293. package/dist/knowledge-load-failure.d.ts.map +1 -0
  294. package/dist/knowledge-load-failure.js +1 -0
  295. package/dist/knowledge-reference-kind-bucket.d.ts +11 -0
  296. package/dist/knowledge-reference-kind-bucket.d.ts.map +1 -0
  297. package/dist/knowledge-reference-kind-bucket.js +1 -0
  298. package/dist/knowledge-stale-advisory.d.ts +14 -0
  299. package/dist/knowledge-stale-advisory.d.ts.map +1 -0
  300. package/dist/knowledge-stale-advisory.js +1 -0
  301. package/dist/knowledge-stale-coverage.d.ts +19 -0
  302. package/dist/knowledge-stale-coverage.d.ts.map +1 -0
  303. package/dist/knowledge-stale-coverage.js +1 -0
  304. package/dist/knowledge-stale-gate-flags.d.ts +33 -0
  305. package/dist/knowledge-stale-gate-flags.d.ts.map +1 -0
  306. package/dist/knowledge-stale-gate-flags.js +1 -0
  307. package/dist/knowledge-stale-gate-input.d.ts +46 -0
  308. package/dist/knowledge-stale-gate-input.d.ts.map +1 -0
  309. package/dist/knowledge-stale-gate-input.js +1 -0
  310. package/dist/knowledge-stale-gate-result.d.ts +33 -0
  311. package/dist/knowledge-stale-gate-result.d.ts.map +1 -0
  312. package/dist/knowledge-stale-gate-result.js +1 -0
  313. package/dist/knowledge-stale-gate-rule.d.ts +33 -0
  314. package/dist/knowledge-stale-gate-rule.d.ts.map +1 -0
  315. package/dist/knowledge-stale-gate-rule.js +1 -0
  316. package/dist/knowledge-stale-gate-violation.d.ts +13 -0
  317. package/dist/knowledge-stale-gate-violation.d.ts.map +1 -0
  318. package/dist/knowledge-stale-gate-violation.js +1 -0
  319. package/dist/knowledge-stale-gate.d.ts +83 -0
  320. package/dist/knowledge-stale-gate.d.ts.map +1 -0
  321. package/dist/knowledge-stale-gate.js +429 -0
  322. package/dist/knowledge-stale-quality-gate.d.ts +26 -0
  323. package/dist/knowledge-stale-quality-gate.d.ts.map +1 -0
  324. package/dist/knowledge-stale-quality-gate.js +110 -0
  325. package/dist/knowledge-stale.d.ts +122 -9
  326. package/dist/knowledge-stale.d.ts.map +1 -1
  327. package/dist/knowledge-stale.js +1002 -316
  328. package/dist/knowledge-unverifiable-reason.d.ts +12 -0
  329. package/dist/knowledge-unverifiable-reason.d.ts.map +1 -0
  330. package/dist/knowledge-unverifiable-reason.js +12 -0
  331. package/dist/loader-diagnostics.d.ts +14 -2
  332. package/dist/loader-diagnostics.d.ts.map +1 -1
  333. package/dist/match-terms.d.ts +48 -0
  334. package/dist/match-terms.d.ts.map +1 -0
  335. package/dist/match-terms.js +155 -0
  336. package/dist/migration-profile-registry.d.ts +10 -0
  337. package/dist/migration-profile-registry.d.ts.map +1 -1
  338. package/dist/migration-profile-registry.js +57 -34
  339. package/dist/migration-readiness.d.ts.map +1 -1
  340. package/dist/migration-readiness.js +1 -3
  341. package/dist/nearest-id.d.ts +14 -0
  342. package/dist/nearest-id.d.ts.map +1 -0
  343. package/dist/nearest-id.js +12 -0
  344. package/dist/pack-asset-freshness.d.ts +65 -0
  345. package/dist/pack-asset-freshness.d.ts.map +1 -0
  346. package/dist/pack-asset-freshness.js +340 -0
  347. package/dist/pack-author-ux.d.ts +24 -3
  348. package/dist/pack-author-ux.d.ts.map +1 -1
  349. package/dist/pack-author-ux.js +87 -93
  350. package/dist/pack-contributions-inventory.d.ts +79 -39
  351. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  352. package/dist/pack-contributions-inventory.js +443 -286
  353. package/dist/pack-doctor-verdict.d.ts +29 -0
  354. package/dist/pack-doctor-verdict.d.ts.map +1 -0
  355. package/dist/pack-doctor-verdict.js +45 -0
  356. package/dist/pack-doctor.d.ts +74 -1
  357. package/dist/pack-doctor.d.ts.map +1 -1
  358. package/dist/pack-doctor.js +281 -1
  359. package/dist/pack-helper-plan.d.ts +24 -0
  360. package/dist/pack-helper-plan.d.ts.map +1 -0
  361. package/dist/pack-helper-plan.js +77 -0
  362. package/dist/pack-helper-registry.d.ts +14 -0
  363. package/dist/pack-helper-registry.d.ts.map +1 -1
  364. package/dist/pack-helper-registry.js +76 -37
  365. package/dist/pack-manifest-reader.d.ts +8 -0
  366. package/dist/pack-manifest-reader.d.ts.map +1 -0
  367. package/dist/pack-manifest-reader.js +79 -0
  368. package/dist/pack-release-check.d.ts +14 -1
  369. package/dist/pack-release-check.d.ts.map +1 -1
  370. package/dist/pack-release-check.js +23 -1
  371. package/dist/pack-signature-status.d.ts +18 -6
  372. package/dist/pack-signature-status.d.ts.map +1 -1
  373. package/dist/pack-signature-status.js +59 -105
  374. package/dist/pack-test-runner.d.ts +27 -5
  375. package/dist/pack-test-runner.d.ts.map +1 -1
  376. package/dist/pack-test-runner.js +91 -35
  377. package/dist/pack-typecheck.d.ts +8 -0
  378. package/dist/pack-typecheck.d.ts.map +1 -0
  379. package/dist/pack-typecheck.js +76 -0
  380. package/dist/plan-review.d.ts +2 -0
  381. package/dist/plan-review.d.ts.map +1 -1
  382. package/dist/plan-review.js +17 -5
  383. package/dist/plan-simulation.d.ts.map +1 -1
  384. package/dist/plan-simulation.js +16 -5
  385. package/dist/playbook-load-issue.d.ts +16 -0
  386. package/dist/playbook-load-issue.d.ts.map +1 -0
  387. package/dist/playbook-load-issue.js +1 -0
  388. package/dist/playbook-registry.d.ts +32 -1
  389. package/dist/playbook-registry.d.ts.map +1 -1
  390. package/dist/playbook-registry.js +144 -55
  391. package/dist/policy-declaration.d.ts +18 -0
  392. package/dist/policy-declaration.d.ts.map +1 -0
  393. package/dist/policy-declaration.js +1 -0
  394. package/dist/policy-engine.d.ts +8 -0
  395. package/dist/policy-engine.d.ts.map +1 -1
  396. package/dist/policy-engine.js +26 -9
  397. package/dist/policy-overrides.d.ts.map +1 -1
  398. package/dist/policy-overrides.js +4 -4
  399. package/dist/policy-registry.d.ts +42 -0
  400. package/dist/policy-registry.d.ts.map +1 -0
  401. package/dist/policy-registry.js +131 -0
  402. package/dist/probed-id-fields.d.ts +21 -0
  403. package/dist/probed-id-fields.d.ts.map +1 -0
  404. package/dist/probed-id-fields.js +25 -0
  405. package/dist/probed-id-source.d.ts +11 -0
  406. package/dist/probed-id-source.d.ts.map +1 -0
  407. package/dist/probed-id-source.js +11 -0
  408. package/dist/profile-registry.d.ts +25 -2
  409. package/dist/profile-registry.d.ts.map +1 -1
  410. package/dist/profile-registry.js +59 -6
  411. package/dist/quality-gate-examination.d.ts +15 -0
  412. package/dist/quality-gate-examination.d.ts.map +1 -0
  413. package/dist/quality-gate-examination.js +15 -0
  414. package/dist/quality-gate-row-status.d.ts +19 -0
  415. package/dist/quality-gate-row-status.d.ts.map +1 -0
  416. package/dist/quality-gate-row-status.js +28 -0
  417. package/dist/quality-gate-status.d.ts +16 -0
  418. package/dist/quality-gate-status.d.ts.map +1 -0
  419. package/dist/quality-gate-status.js +16 -0
  420. package/dist/quality-html.d.ts.map +1 -1
  421. package/dist/quality-html.js +14 -3
  422. package/dist/quality-report-coverage.d.ts +26 -0
  423. package/dist/quality-report-coverage.d.ts.map +1 -0
  424. package/dist/quality-report-coverage.js +48 -0
  425. package/dist/quality-report.d.ts +28 -1
  426. package/dist/quality-report.d.ts.map +1 -1
  427. package/dist/quality-report.js +263 -35
  428. package/dist/query-intent-kind.d.ts +18 -0
  429. package/dist/query-intent-kind.d.ts.map +1 -0
  430. package/dist/query-intent-kind.js +18 -0
  431. package/dist/query-intent-result.d.ts +23 -0
  432. package/dist/query-intent-result.d.ts.map +1 -0
  433. package/dist/query-intent-result.js +1 -0
  434. package/dist/query-intent.d.ts +18 -0
  435. package/dist/query-intent.d.ts.map +1 -0
  436. package/dist/query-intent.js +336 -0
  437. package/dist/query-resolver.d.ts +18 -0
  438. package/dist/query-resolver.d.ts.map +1 -1
  439. package/dist/query-resolver.js +15 -12
  440. package/dist/ranked-recommendations.d.ts +36 -0
  441. package/dist/ranked-recommendations.d.ts.map +1 -0
  442. package/dist/ranked-recommendations.js +1 -0
  443. package/dist/ranker-explainability.d.ts.map +1 -1
  444. package/dist/ranker-explainability.js +38 -10
  445. package/dist/recommend-recipe.d.ts +17 -0
  446. package/dist/recommend-recipe.d.ts.map +1 -0
  447. package/dist/recommend-recipe.js +1 -0
  448. package/dist/recommend-recipes.d.ts +9 -0
  449. package/dist/recommend-recipes.d.ts.map +1 -0
  450. package/dist/recommend-recipes.js +106 -0
  451. package/dist/recommendation-candidate.d.ts +30 -0
  452. package/dist/recommendation-candidate.d.ts.map +1 -0
  453. package/dist/recommendation-candidate.js +1 -0
  454. package/dist/recommendation-confidence.d.ts +27 -0
  455. package/dist/recommendation-confidence.d.ts.map +1 -0
  456. package/dist/recommendation-confidence.js +1 -0
  457. package/dist/recommendation-ranking-options.d.ts +24 -0
  458. package/dist/recommendation-ranking-options.d.ts.map +1 -0
  459. package/dist/recommendation-ranking-options.js +1 -0
  460. package/dist/recommendation-ranking.d.ts +50 -0
  461. package/dist/recommendation-ranking.d.ts.map +1 -0
  462. package/dist/recommendation-ranking.js +527 -0
  463. package/dist/recommendation-source.d.ts +23 -0
  464. package/dist/recommendation-source.d.ts.map +1 -0
  465. package/dist/recommendation-source.js +23 -0
  466. package/dist/recommendation-suppression.d.ts +14 -0
  467. package/dist/recommendation-suppression.d.ts.map +1 -0
  468. package/dist/recommendation-suppression.js +14 -0
  469. package/dist/reference-asset-kind.d.ts +14 -0
  470. package/dist/reference-asset-kind.d.ts.map +1 -0
  471. package/dist/reference-asset-kind.js +14 -0
  472. package/dist/reference-content-check.d.ts +32 -0
  473. package/dist/reference-content-check.d.ts.map +1 -0
  474. package/dist/reference-content-check.js +143 -0
  475. package/dist/reference-failure.d.ts +31 -0
  476. package/dist/reference-failure.d.ts.map +1 -0
  477. package/dist/reference-failure.js +31 -0
  478. package/dist/reference-id-status.d.ts +15 -0
  479. package/dist/reference-id-status.d.ts.map +1 -0
  480. package/dist/reference-id-status.js +15 -0
  481. package/dist/reference-kind-declarations.d.ts +42 -0
  482. package/dist/reference-kind-declarations.d.ts.map +1 -0
  483. package/dist/reference-kind-declarations.js +142 -0
  484. package/dist/reference-lookup.d.ts +6 -0
  485. package/dist/reference-lookup.d.ts.map +1 -1
  486. package/dist/reference-lookup.js +13 -5
  487. package/dist/reference-registry.d.ts +210 -0
  488. package/dist/reference-registry.d.ts.map +1 -0
  489. package/dist/reference-registry.js +395 -0
  490. package/dist/reference-subject.d.ts +20 -0
  491. package/dist/reference-subject.d.ts.map +1 -0
  492. package/dist/reference-subject.js +1 -0
  493. package/dist/registration-hint-discovery-status.d.ts +25 -0
  494. package/dist/registration-hint-discovery-status.d.ts.map +1 -0
  495. package/dist/registration-hint-discovery-status.js +25 -0
  496. package/dist/registration-hint-registry.d.ts +80 -0
  497. package/dist/registration-hint-registry.d.ts.map +1 -1
  498. package/dist/registration-hint-registry.js +356 -138
  499. package/dist/registry-lifecycle.d.ts +200 -19
  500. package/dist/registry-lifecycle.d.ts.map +1 -1
  501. package/dist/registry-lifecycle.js +526 -136
  502. package/dist/release-readiness.d.ts.map +1 -1
  503. package/dist/release-readiness.js +10 -7
  504. package/dist/release-smoke.d.ts.map +1 -1
  505. package/dist/release-smoke.js +11 -7
  506. package/dist/report-site.d.ts.map +1 -1
  507. package/dist/report-site.js +25 -7
  508. package/dist/repository-intelligence.d.ts.map +1 -1
  509. package/dist/repository-intelligence.js +3 -2
  510. package/dist/repository-knowledge-model.d.ts.map +1 -1
  511. package/dist/repository-knowledge-model.js +18 -5
  512. package/dist/resolve-project-config.d.ts +64 -0
  513. package/dist/resolve-project-config.d.ts.map +1 -1
  514. package/dist/resolve-project-config.js +258 -32
  515. package/dist/reuse/compute-reuse-coverage.d.ts +29 -0
  516. package/dist/reuse/compute-reuse-coverage.d.ts.map +1 -0
  517. package/dist/reuse/compute-reuse-coverage.js +198 -0
  518. package/dist/reuse/rank-reuse-candidates.d.ts +38 -0
  519. package/dist/reuse/rank-reuse-candidates.d.ts.map +1 -0
  520. package/dist/reuse/rank-reuse-candidates.js +212 -0
  521. package/dist/reuse/rank-reuse-options.d.ts +20 -0
  522. package/dist/reuse/rank-reuse-options.d.ts.map +1 -0
  523. package/dist/reuse/rank-reuse-options.js +1 -0
  524. package/dist/reuse/rank-reuse-suggestions.d.ts +15 -0
  525. package/dist/reuse/rank-reuse-suggestions.d.ts.map +1 -0
  526. package/dist/reuse/rank-reuse-suggestions.js +31 -0
  527. package/dist/reuse/resolve-curated-reuse.d.ts +43 -0
  528. package/dist/reuse/resolve-curated-reuse.d.ts.map +1 -0
  529. package/dist/reuse/resolve-curated-reuse.js +115 -0
  530. package/dist/reuse/reuse-candidate.d.ts +29 -0
  531. package/dist/reuse/reuse-candidate.d.ts.map +1 -0
  532. package/dist/reuse/reuse-candidate.js +1 -0
  533. package/dist/reuse/reuse-coverage-report.d.ts +74 -0
  534. package/dist/reuse/reuse-coverage-report.d.ts.map +1 -0
  535. package/dist/reuse/reuse-coverage-report.js +1 -0
  536. package/dist/reuse/reuse-curated-coverage.d.ts +36 -0
  537. package/dist/reuse/reuse-curated-coverage.d.ts.map +1 -0
  538. package/dist/reuse/reuse-curated-coverage.js +1 -0
  539. package/dist/reuse/reuse-curated-resolution.d.ts +36 -0
  540. package/dist/reuse/reuse-curated-resolution.d.ts.map +1 -0
  541. package/dist/reuse/reuse-curated-resolution.js +1 -0
  542. package/dist/reuse/reuse-curated-status.d.ts +21 -0
  543. package/dist/reuse/reuse-curated-status.d.ts.map +1 -0
  544. package/dist/reuse/reuse-curated-status.js +21 -0
  545. package/dist/reuse/reuse-match-detail.d.ts +15 -0
  546. package/dist/reuse/reuse-match-detail.d.ts.map +1 -0
  547. package/dist/reuse/reuse-match-detail.js +1 -0
  548. package/dist/reuse/reuse-ranking.d.ts +37 -0
  549. package/dist/reuse/reuse-ranking.d.ts.map +1 -0
  550. package/dist/reuse/reuse-ranking.js +1 -0
  551. package/dist/reuse/reuse-suggestion.d.ts +19 -0
  552. package/dist/reuse/reuse-suggestion.d.ts.map +1 -0
  553. package/dist/reuse/reuse-suggestion.js +1 -0
  554. package/dist/reuse/reuse-symbol-lookup.d.ts +28 -0
  555. package/dist/reuse/reuse-symbol-lookup.d.ts.map +1 -0
  556. package/dist/reuse/reuse-symbol-lookup.js +1 -0
  557. package/dist/reuse/reuse-tokenize.d.ts +11 -0
  558. package/dist/reuse/reuse-tokenize.d.ts.map +1 -0
  559. package/dist/reuse/reuse-tokenize.js +26 -0
  560. package/dist/reuse/score-reuse-name.d.ts +16 -0
  561. package/dist/reuse/score-reuse-name.d.ts.map +1 -0
  562. package/dist/reuse/score-reuse-name.js +35 -0
  563. package/dist/reuse/score-reuse-primitive.d.ts +33 -0
  564. package/dist/reuse/score-reuse-primitive.d.ts.map +1 -0
  565. package/dist/reuse/score-reuse-primitive.js +92 -0
  566. package/dist/review-packet.d.ts +2 -0
  567. package/dist/review-packet.d.ts.map +1 -1
  568. package/dist/review-packet.js +13 -6
  569. package/dist/role-views.d.ts.map +1 -1
  570. package/dist/role-views.js +16 -16
  571. package/dist/routing-recommends-channels.d.ts +24 -0
  572. package/dist/routing-recommends-channels.d.ts.map +1 -0
  573. package/dist/routing-recommends-channels.js +19 -0
  574. package/dist/run-boundary-check.d.ts +118 -0
  575. package/dist/run-boundary-check.d.ts.map +1 -0
  576. package/dist/run-boundary-check.js +592 -0
  577. package/dist/safety-audit.js +1 -1
  578. package/dist/scaffold-coverage.js +1 -1
  579. package/dist/scaffold-pattern-doctor-report.d.ts +19 -0
  580. package/dist/scaffold-pattern-doctor-report.d.ts.map +1 -0
  581. package/dist/scaffold-pattern-doctor-report.js +54 -0
  582. package/dist/scaffold-patterns.d.ts +75 -1
  583. package/dist/scaffold-patterns.d.ts.map +1 -1
  584. package/dist/scaffold-patterns.js +375 -84
  585. package/dist/schema-inventory.d.ts.map +1 -1
  586. package/dist/schema-inventory.js +4 -3
  587. package/dist/search-document-id.d.ts +52 -0
  588. package/dist/search-document-id.d.ts.map +1 -0
  589. package/dist/search-document-id.js +72 -0
  590. package/dist/search-document-prefix.d.ts +7 -0
  591. package/dist/search-document-prefix.d.ts.map +1 -0
  592. package/dist/search-document-prefix.js +1 -0
  593. package/dist/search-index.d.ts.map +1 -1
  594. package/dist/search-index.js +20 -23
  595. package/dist/search-tuning-explain.d.ts +6 -0
  596. package/dist/search-tuning-explain.d.ts.map +1 -1
  597. package/dist/search-tuning-explain.js +19 -17
  598. package/dist/search-tuning-key-probes.d.ts +16 -0
  599. package/dist/search-tuning-key-probes.d.ts.map +1 -0
  600. package/dist/search-tuning-key-probes.js +65 -0
  601. package/dist/search-tuning-key-resolution.d.ts +25 -0
  602. package/dist/search-tuning-key-resolution.d.ts.map +1 -0
  603. package/dist/search-tuning-key-resolution.js +1 -0
  604. package/dist/search-tuning-key-resolver.d.ts +4 -0
  605. package/dist/search-tuning-key-resolver.d.ts.map +1 -0
  606. package/dist/search-tuning-key-resolver.js +107 -0
  607. package/dist/search-tuning-key-status.d.ts +24 -0
  608. package/dist/search-tuning-key-status.d.ts.map +1 -0
  609. package/dist/search-tuning-key-status.js +24 -0
  610. package/dist/search-tuning-lint.d.ts +9 -0
  611. package/dist/search-tuning-lint.d.ts.map +1 -0
  612. package/dist/search-tuning-lint.js +468 -0
  613. package/dist/search-tuning-registry.d.ts +43 -0
  614. package/dist/search-tuning-registry.d.ts.map +1 -1
  615. package/dist/search-tuning-registry.js +214 -49
  616. package/dist/self-audit.d.ts +12 -0
  617. package/dist/self-audit.d.ts.map +1 -1
  618. package/dist/self-audit.js +36 -10
  619. package/dist/self-config-doctor-v2.d.ts +145 -3
  620. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  621. package/dist/self-config-doctor-v2.js +1329 -255
  622. package/dist/self-config-doctor.d.ts +20 -1
  623. package/dist/self-config-doctor.d.ts.map +1 -1
  624. package/dist/self-config-doctor.js +65 -309
  625. package/dist/settled-unit-states.d.ts +9 -0
  626. package/dist/settled-unit-states.d.ts.map +1 -0
  627. package/dist/settled-unit-states.js +14 -0
  628. package/dist/sharkcraft-inspector.d.ts +47 -1
  629. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  630. package/dist/sharkcraft-inspector.js +278 -29
  631. package/dist/spec/spec-evidence.d.ts.map +1 -1
  632. package/dist/spec/spec-evidence.js +14 -20
  633. package/dist/split-identifier.d.ts +21 -0
  634. package/dist/split-identifier.d.ts.map +1 -0
  635. package/dist/split-identifier.js +27 -0
  636. package/dist/start-here.d.ts.map +1 -1
  637. package/dist/start-here.js +1 -2
  638. package/dist/substitute-placeholders.d.ts +8 -0
  639. package/dist/substitute-placeholders.d.ts.map +1 -0
  640. package/dist/substitute-placeholders.js +9 -0
  641. package/dist/symbol-index.d.ts +33 -0
  642. package/dist/symbol-index.d.ts.map +1 -1
  643. package/dist/symbol-index.js +241 -3
  644. package/dist/symbol-member-entry.d.ts +26 -0
  645. package/dist/symbol-member-entry.d.ts.map +1 -0
  646. package/dist/symbol-member-entry.js +1 -0
  647. package/dist/symbol-member-kind.d.ts +14 -0
  648. package/dist/symbol-member-kind.d.ts.map +1 -0
  649. package/dist/symbol-member-kind.js +14 -0
  650. package/dist/task-packet.d.ts.map +1 -1
  651. package/dist/task-packet.js +52 -9
  652. package/dist/task-ranker.d.ts +8 -0
  653. package/dist/task-ranker.d.ts.map +1 -1
  654. package/dist/task-ranker.js +25 -13
  655. package/dist/task-risk.js +1 -1
  656. package/dist/task-routing-hint-registry.d.ts +20 -1
  657. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  658. package/dist/task-routing-hint-registry.js +186 -42
  659. package/dist/template-drift.d.ts.map +1 -1
  660. package/dist/template-drift.js +30 -9
  661. package/dist/template-lint.d.ts.map +1 -1
  662. package/dist/template-lint.js +160 -2
  663. package/dist/term-query.d.ts +10 -0
  664. package/dist/term-query.d.ts.map +1 -0
  665. package/dist/term-query.js +1 -0
  666. package/dist/test-definitions.d.ts +6 -3
  667. package/dist/test-definitions.d.ts.map +1 -1
  668. package/dist/test-runner.d.ts +95 -10
  669. package/dist/test-runner.d.ts.map +1 -1
  670. package/dist/test-runner.js +309 -318
  671. package/dist/tuning-query-tokens.d.ts +29 -0
  672. package/dist/tuning-query-tokens.d.ts.map +1 -0
  673. package/dist/tuning-query-tokens.js +51 -0
  674. package/dist/typecheck-files.d.ts +36 -0
  675. package/dist/typecheck-files.d.ts.map +1 -0
  676. package/dist/typecheck-files.js +158 -0
  677. package/dist/uncertainty.js +1 -1
  678. package/dist/universal-search.d.ts.map +1 -1
  679. package/dist/universal-search.js +5 -3
  680. package/dist/unregistered-exports.d.ts +19 -0
  681. package/dist/unregistered-exports.d.ts.map +1 -0
  682. package/dist/unregistered-exports.js +141 -0
  683. package/dist/unresolvable-reason.d.ts +11 -0
  684. package/dist/unresolvable-reason.d.ts.map +1 -0
  685. package/dist/unresolvable-reason.js +11 -0
  686. package/dist/upgrade-advisor.d.ts.map +1 -1
  687. package/dist/upgrade-advisor.js +16 -9
  688. package/dist/validate-contribution-file.d.ts +4 -0
  689. package/dist/validate-contribution-file.d.ts.map +1 -0
  690. package/dist/validate-contribution-file.js +228 -0
  691. package/dist/why-file.d.ts +3 -0
  692. package/dist/why-file.d.ts.map +1 -1
  693. package/dist/why-file.js +7 -3
  694. 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 = {}));
@@ -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',
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Nearest-id "did you mean" over an arbitrary id set — `levenshtein` (THE edit
3
+ * distance) and `nearestIds` (the length-scaled, affinity-aware cutoff).
4
+ *
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.
11
+ */
12
+ export { levenshtein, nearestIds } from '@shrkcrft/core';
13
+ export type { INearestId } from '@shrkcrft/core';
14
+ //# sourceMappingURL=nearest-id.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Nearest-id "did you mean" over an arbitrary id set — `levenshtein` (THE edit
3
+ * distance) and `nearestIds` (the length-scaled, affinity-aware cutoff).
4
+ *
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.
11
+ */
12
+ export { levenshtein, nearestIds } from '@shrkcrft/core';
@@ -0,0 +1,65 @@
1
+ import { type ISharkCraftPackManifest } from '@shrkcrft/plugin-api';
2
+ export interface IPackAssetFreshness {
3
+ readonly packageName: string;
4
+ readonly packageRoot: string;
5
+ /** Always content digests — this authority never reads an mtime. */
6
+ readonly basis: 'content-digest';
7
+ readonly signature: {
8
+ /**
9
+ * `fresh` — every file the signature recorded still has that content ·
10
+ * `diverged` — a recorded file's content changed (or it was deleted) since
11
+ * signing · `unrecorded` — signed, but no content record for some file, so
12
+ * freshness is NOT verified · `unsigned` — no signature block.
13
+ */
14
+ readonly state: 'fresh' | 'diverged' | 'unrecorded' | 'unsigned';
15
+ readonly signedAt?: string;
16
+ readonly dev: boolean;
17
+ /** Pack-relative files whose content differs from the signed record. */
18
+ readonly diverged: readonly string[];
19
+ /** Pack-relative files the signature holds no content record for. */
20
+ readonly unrecorded: readonly string[];
21
+ };
22
+ readonly build: {
23
+ /**
24
+ * `not-compiled` — no compiled (`.js`/`.mjs`/`.cjs`) contribution ·
25
+ * `no-source` — compiled, but no mapped source on disk (an installed
26
+ * package) · `stale` — a source differs from its build record ·
27
+ * `unrecorded` — a source exists but no build record does · `fresh`.
28
+ */
29
+ readonly state: 'fresh' | 'stale' | 'unrecorded' | 'no-source' | 'not-compiled';
30
+ readonly artifacts: readonly {
31
+ readonly artifact: string;
32
+ readonly source: string | null;
33
+ readonly state: 'fresh' | 'stale' | 'unrecorded' | 'no-source';
34
+ readonly recordedBy?: 'source-map' | 'signature';
35
+ }[];
36
+ /** `npm run build` when the pack declares a build script, else null. */
37
+ readonly rebuildCommand: string | null;
38
+ };
39
+ }
40
+ /** `sha256:<hex>` of a file's bytes (or of a string's UTF-8 bytes). */
41
+ export declare function packContentDigest(content: Buffer | string): string;
42
+ /**
43
+ * The content record `shrk packs sign` stores on the signature: every
44
+ * contribution file plus each compiled artifact's mapped source. The SAME
45
+ * enumeration {@link detectPackAssetFreshness} compares against — one function
46
+ * records, the other reads, so they cannot disagree about which files count.
47
+ */
48
+ export declare function computePackContentDigests(packageRoot: string, manifest: ISharkCraftPackManifest | undefined): Record<string, string>;
49
+ /** True when any contribution is a compiled `.js`/`.mjs`/`.cjs` file (cheap; no hashing). */
50
+ export declare function packHasCompiledContributions(manifest: ISharkCraftPackManifest | undefined): boolean;
51
+ /** Detect one pack's signature + build freshness from recorded content. */
52
+ export declare function detectPackAssetFreshness(pack: {
53
+ readonly packageName: string;
54
+ readonly packageRoot: string;
55
+ readonly manifest?: ISharkCraftPackManifest;
56
+ }): IPackAssetFreshness;
57
+ /**
58
+ * THE wording of a pack's freshness — every surface prints these sentences
59
+ * rather than composing its own. `undefined` when there is nothing to say.
60
+ */
61
+ export declare function describePackAssetFreshness(f: IPackAssetFreshness): {
62
+ readonly build?: string;
63
+ readonly signature?: string;
64
+ };
65
+ //# sourceMappingURL=pack-asset-freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-asset-freshness.d.ts","sourceRoot":"","sources":["../src/pack-asset-freshness.ts"],"names":[],"mappings":"AAiCA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE;QAClB;;;;;WAKG;QACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;QACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;QACtB,wEAAwE;QACxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,qEAAqE;QACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACd;;;;;WAKG;QACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;QAChF,QAAQ,CAAC,SAAS,EAAE,SAAS;YAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;YAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;SAClD,EAAE,CAAC;QACJ,wEAAwE;QACxE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,CAAC;CACH;AAKD,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAElE;AAwID;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAED,6FAA6F;AAC7F,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAAG,OAAO,CAMnG;AAQD,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC7C,GAAG,mBAAmB,CAoFtB;AASD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,mBAAmB,GAAG;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAiCA"}