@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
@@ -10,6 +10,15 @@
10
10
  * `metadata.checks: ICustomCheckDescriptor[]`. The engine never invents
11
11
  * a check; we only inventory what authors declare.
12
12
  *
13
+ * WHAT IS SCANNED: `type: 'rule'` entries ({@link isRuleEntry} — the same set
14
+ * `shrk rules list` shows) loaded from TypeScript knowledge / rule files, local
15
+ * or pack. A declaration anywhere else is REPORTED, never silently skipped:
16
+ * - `metadata.checks` on a non-rule entry → `ignored`;
17
+ * - a Markdown rule whose frontmatter held `metadata` (the Markdown loader
18
+ * does not read it) → `ignored`;
19
+ * - a non-array `metadata.checks` on a rule → `invalid`.
20
+ * Each is a declared check that can never run — a doctor error.
21
+ *
13
22
  * Hard rules:
14
23
  * - No spawning a process by default.
15
24
  * - Read-only inventory unless `--execute` is set explicitly.
@@ -19,7 +28,8 @@
19
28
  import { spawnSync } from 'node:child_process';
20
29
  import { existsSync, readFileSync } from 'node:fs';
21
30
  import * as nodePath from 'node:path';
22
- import { KnowledgeType } from '@shrkcrft/knowledge';
31
+ import { KnowledgeSourceFormat, knowledgeSourceFormat, unsupportedFrontmatterKeys, } from '@shrkcrft/knowledge';
32
+ import { isRuleEntry } from '@shrkcrft/rules';
23
33
  export const CUSTOM_CHECK_REPORT_SCHEMA = 'sharkcraft.custom-check/v1';
24
34
  export const CUSTOM_CHECKS_REGISTRY_SCHEMA = 'sharkcraft.custom-checks-registry/v1';
25
35
  export var CustomCheckScope;
@@ -56,6 +66,7 @@ export var CustomCheckStatus;
56
66
  CustomCheckStatus["Skipped"] = "skipped";
57
67
  })(CustomCheckStatus || (CustomCheckStatus = {}));
58
68
  const ID_RE = /^[a-z][a-z0-9.-]+$/;
69
+ const TS_SOURCE_RE = /\.(?:ts|tsx|js|mjs|cjs)$/;
59
70
  /** Read the descriptors a rule declares under `metadata.checks`. */
60
71
  export function readDescriptorsFromRule(rule) {
61
72
  const md = rule.metadata;
@@ -64,25 +75,101 @@ export function readDescriptorsFromRule(rule) {
64
75
  return [];
65
76
  return raw.map((r) => ({ ...r, ownerRuleId: rule.id }));
66
77
  }
67
- export function buildCustomChecksRegistry(entries) {
78
+ function describeType(value) {
79
+ if (value === null)
80
+ return 'null';
81
+ if (Array.isArray(value))
82
+ return 'array';
83
+ return typeof value;
84
+ }
85
+ /** The string ids of a declared `metadata.checks` value (whatever its shape). */
86
+ function declaredCheckIds(raw) {
87
+ if (!Array.isArray(raw)) {
88
+ const id = raw && typeof raw === 'object' ? raw.id : undefined;
89
+ return typeof id === 'string' ? [id] : [];
90
+ }
91
+ return raw
92
+ .map((d) => (d && typeof d === 'object' ? d.id : undefined))
93
+ .filter((id) => typeof id === 'string');
94
+ }
95
+ function relativeSource(origin, projectRoot) {
96
+ if (!origin)
97
+ return undefined;
98
+ if (!projectRoot || !nodePath.isAbsolute(origin))
99
+ return origin;
100
+ return nodePath.relative(projectRoot, origin).split(nodePath.sep).join('/');
101
+ }
102
+ /**
103
+ * Did this Markdown file's frontmatter declare `metadata` holding `checks`?
104
+ * Read through the Markdown loader's own "what did I drop" authority.
105
+ */
106
+ function markdownDroppedChecks(origin) {
107
+ if (!origin || !existsSync(origin))
108
+ return false;
109
+ let text;
110
+ try {
111
+ text = readFileSync(origin, 'utf8');
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ return unsupportedFrontmatterKeys(text).some((k) => k.key === 'metadata' && /\bchecks\b/.test(k.block));
117
+ }
118
+ export function buildCustomChecksRegistry(entries, options = {}) {
68
119
  const out = [];
69
120
  const idIndex = new Map();
70
121
  const invalid = [];
122
+ const ignored = [];
123
+ let scannedRules = 0;
71
124
  for (const e of entries) {
72
- if (String(e.type) !== KnowledgeType.Rule)
125
+ const source = relativeSource(e.source?.origin, options.projectRoot);
126
+ const at = source ? { source } : {};
127
+ const raw = e.metadata?.['checks'];
128
+ if (!isRuleEntry(e)) {
129
+ if (raw !== undefined) {
130
+ ignored.push({
131
+ entryId: e.id,
132
+ entryType: String(e.type),
133
+ ...at,
134
+ reason: `metadata.checks on a type:'${String(e.type)}' entry is not scanned — only type:'rule' entries carry checks (set type: 'rule', or move the checks onto a rule)`,
135
+ checkIds: declaredCheckIds(raw),
136
+ });
137
+ }
138
+ continue;
139
+ }
140
+ scannedRules += 1;
141
+ // THE source-format authority (round 15) — the one the stale-check remedy
142
+ // and the validator read, so "is this a Markdown entry?" has one answer.
143
+ if (knowledgeSourceFormat(e) === KnowledgeSourceFormat.Markdown) {
144
+ if (markdownDroppedChecks(e.source?.origin)) {
145
+ ignored.push({
146
+ entryId: e.id,
147
+ entryType: String(e.type),
148
+ ...at,
149
+ reason: 'Markdown rule — the Markdown loader does not support metadata, so its metadata.checks were dropped; declare the rule (with its checks) in a TypeScript rule file',
150
+ checkIds: [],
151
+ });
152
+ }
73
153
  continue;
154
+ }
155
+ if (raw === undefined)
156
+ continue;
157
+ if (!Array.isArray(raw)) {
158
+ invalid.push({ ruleId: e.id, reason: `metadata.checks must be an array (got ${describeType(raw)})`, ...at });
159
+ continue;
160
+ }
74
161
  const descriptors = readDescriptorsFromRule(e);
75
162
  for (const d of descriptors) {
76
163
  const warnings = [];
77
164
  if (!d.id || typeof d.id !== 'string') {
78
- invalid.push({ ruleId: e.id, reason: 'check entry missing string id' });
165
+ invalid.push({ ruleId: e.id, reason: 'check entry missing string id', ...at });
79
166
  continue;
80
167
  }
81
168
  if (!ID_RE.test(d.id)) {
82
169
  warnings.push(`id "${d.id}" should match ${ID_RE.source}`);
83
170
  }
84
171
  if (!d.command || typeof d.command !== 'string') {
85
- invalid.push({ ruleId: e.id, reason: `check "${d.id}" missing command` });
172
+ invalid.push({ ruleId: e.id, reason: `check "${d.id}" missing command`, checkId: d.id, ...at });
86
173
  continue;
87
174
  }
88
175
  if (d.output === CustomCheckOutput.Json && !d.reportPath) {
@@ -108,12 +195,77 @@ export function buildCustomChecksRegistry(entries) {
108
195
  entries: out,
109
196
  duplicates,
110
197
  invalid,
198
+ ignored,
199
+ scannedRules,
111
200
  };
112
201
  }
202
+ /**
203
+ * Every declaration the registry saw: registered + invalid + ignored (an
204
+ * ignored entry whose ids are unreadable still counts as one). The `expected`
205
+ * of the doctor's coverage — 0 means nothing was declared at all.
206
+ */
207
+ export function declaredCustomCheckCount(registry) {
208
+ return (registry.entries.length +
209
+ registry.invalid.length +
210
+ registry.ignored.reduce((n, i) => n + Math.max(1, i.checkIds.length), 0));
211
+ }
212
+ /**
213
+ * The concrete surface the custom-checks registry scans: local `ruleFiles` /
214
+ * `knowledgeFiles` / `docsFiles` and every valid pack's `ruleFiles` /
215
+ * `knowledgeFiles` — split into TypeScript (scanned) and Markdown (cannot
216
+ * carry metadata).
217
+ */
218
+ export function customCheckScanSurface(inspection) {
219
+ const files = [];
220
+ const markdownFiles = [];
221
+ const add = (abs, via) => {
222
+ // The loaders skip a configured file that does not exist (the config's
223
+ // default docsFiles, a stale entry) — so does the surface they read.
224
+ if (!existsSync(abs))
225
+ return;
226
+ const file = nodePath.relative(inspection.projectRoot, abs).split(nodePath.sep).join('/') || abs;
227
+ if (TS_SOURCE_RE.test(abs))
228
+ files.push({ file, via });
229
+ else if (abs.toLowerCase().endsWith('.md'))
230
+ markdownFiles.push(file);
231
+ };
232
+ const cfg = inspection.config;
233
+ if (cfg && inspection.sharkcraftDir) {
234
+ for (const key of ['ruleFiles', 'knowledgeFiles', 'docsFiles']) {
235
+ for (const rel of cfg[key] ?? [])
236
+ add(nodePath.resolve(inspection.sharkcraftDir, rel), key);
237
+ }
238
+ }
239
+ for (const pack of inspection.packs.validPacks ?? []) {
240
+ const c = pack.manifest?.contributions;
241
+ for (const key of ['ruleFiles', 'knowledgeFiles']) {
242
+ for (const rel of c?.[key] ?? [])
243
+ add(nodePath.resolve(pack.packageRoot, rel), `pack ${pack.packageName} ${key}`);
244
+ }
245
+ }
246
+ const markdownRules = inspection.knowledgeEntries.filter((e) => isRuleEntry(e) && knowledgeSourceFormat(e) === KnowledgeSourceFormat.Markdown).length;
247
+ return { files, markdownFiles, markdownRules };
248
+ }
113
249
  export function doctorCustomChecks(registry) {
114
250
  const details = [];
115
251
  for (const inv of registry.invalid) {
116
- details.push({ ruleId: inv.ruleId, checkId: '(invalid)', severity: 'error', message: inv.reason });
252
+ details.push({
253
+ ruleId: inv.ruleId,
254
+ checkId: inv.checkId ?? '(invalid)',
255
+ severity: 'error',
256
+ message: inv.reason,
257
+ ...(inv.source ? { source: inv.source } : {}),
258
+ });
259
+ }
260
+ // A declared check that can never run is a defect, not a footnote.
261
+ for (const ig of registry.ignored) {
262
+ details.push({
263
+ ruleId: ig.entryId,
264
+ checkId: ig.checkIds.join(',') || '(ignored)',
265
+ severity: 'error',
266
+ message: ig.reason,
267
+ ...(ig.source ? { source: ig.source } : {}),
268
+ });
117
269
  }
118
270
  for (const dup of registry.duplicates) {
119
271
  details.push({
@@ -139,6 +291,9 @@ export function doctorCustomChecks(registry) {
139
291
  totalChecks: registry.entries.length,
140
292
  warnings: details.filter((d) => d.severity === 'warning').length,
141
293
  errors: details.filter((d) => d.severity === 'error').length,
294
+ declaredChecks: declaredCustomCheckCount(registry),
295
+ ignored: registry.ignored.length,
296
+ scannedRules: registry.scannedRules,
142
297
  details,
143
298
  };
144
299
  }
@@ -32,6 +32,12 @@ export declare function buildDashboardPipelines(inspection: ISharkcraftInspectio
32
32
  export declare function buildDashboardSessions(projectRoot: string): IDashboardSessionsResponse;
33
33
  export declare function buildDashboardSessionDetail(projectRoot: string, sessionId: string): IDashboardSessionDetailResponse;
34
34
  export declare function buildDashboardArchitecture(inspection: ISharkcraftInspection): IDashboardArchitectureResponse;
35
+ /**
36
+ * The boundary panel (round 13, V1-U2): THE boundary orchestrator's verdict —
37
+ * the one `shrk check boundaries` prints. The panel used to return no
38
+ * violations unconditionally and render "No active violations." over any
39
+ * state, a failing gate included; `summary` now says what the check found.
40
+ */
35
41
  export declare function buildDashboardBoundaries(inspection: ISharkcraftInspection): IDashboardBoundaryResponse;
36
42
  export declare function buildDashboardDrift(inspection: ISharkcraftInspection): IDashboardDriftResponse;
37
43
  export declare function buildDashboardCoverage(inspection: ISharkcraftInspection): IDashboardCoverageResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-data.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-data.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-data.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,13 @@ import { existsSync, statSync } from 'node:fs';
13
13
  import * as nodePath from 'node:path';
14
14
  import { buildAiReadinessReport } from "../ai-readiness.js";
15
15
  import { runDoctor } from "../sharkcraft-inspector.js";
16
+ import { doctorVerdict } from "../doctor-verdict.js";
17
+ import { DoctorVerdictKind } from "../doctor-verdict-kind.js";
18
+ import { qualityGateStatus } from "../quality-gate-row-status.js";
16
19
  import { DoctorSeverity } from "../doctor-result.js";
17
20
  import { buildCoverageReport } from "../coverage-report.js";
18
21
  import { buildDriftReport } from "../drift.js";
22
+ import { runBoundaryCheck } from "../run-boundary-check.js";
19
23
  import { buildKnowledgeGraph, findGraphPath, getGraphNode } from "../knowledge-graph.js";
20
24
  import { buildOnboardingPlan } from "../onboarding.js";
21
25
  import { ADOPTION_STATE_SCHEMA, adoptionDir, computeAdoptionFreshness, readAdoptionState, } from "../adoption-state.js";
@@ -126,8 +130,17 @@ export function buildDashboardDoctor(inspection) {
126
130
  ...(c.fix ? { fix: c.fix } : {}),
127
131
  };
128
132
  });
133
+ // THE doctor settlement (`doctorVerdict`), the one `shrk doctor`, `shrk
134
+ // check` and MCP read: a setup the doctor could not fully verify (a compiled
135
+ // pack build with no build record) is `not-verified`, never `ready`.
136
+ const settled = doctorVerdict(doctor);
129
137
  return {
130
- verdict: doctor.passed ? 'ready' : 'not-ready',
138
+ verdict: settled.verdict === DoctorVerdictKind.Ready
139
+ ? 'ready'
140
+ : settled.verdict === DoctorVerdictKind.NotVerified
141
+ ? 'not-verified'
142
+ : 'not-ready',
143
+ ...(settled.shortfalls.length > 0 ? { shortfalls: settled.shortfalls } : {}),
131
144
  readinessScore: buildAiReadinessReport(inspection).score,
132
145
  checks,
133
146
  summary: doctor.summary,
@@ -147,7 +160,9 @@ export async function buildDashboardQuality(inspection, options) {
147
160
  readiness: report.overall,
148
161
  gates: report.gates.map((g) => ({
149
162
  id: g.id,
150
- status: (g.passed ? 'pass' : g.blocking ? 'fail' : 'warn'),
163
+ // THE row status (`qualityGateStatus`): never `pass` over a gate that
164
+ // passed over part of its scope, or could not run.
165
+ status: qualityGateStatus(g),
151
166
  ...(g.notes && g.notes.length > 0 ? { message: g.notes.join('; ') } : {}),
152
167
  })),
153
168
  blockers: report.gates.filter((g) => !g.passed && g.blocking).map((g) => g.label),
@@ -313,13 +328,89 @@ export function buildDashboardArchitecture(inspection) {
313
328
  coverage: buildDashboardCoverage(inspection),
314
329
  };
315
330
  }
331
+ /**
332
+ * The boundary panel (round 13, V1-U2): THE boundary orchestrator's verdict —
333
+ * the one `shrk check boundaries` prints. The panel used to return no
334
+ * violations unconditionally and render "No active violations." over any
335
+ * state, a failing gate included; `summary` now says what the check found.
336
+ */
316
337
  export function buildDashboardBoundaries(inspection) {
317
338
  const rules = inspection.boundaryRegistry.list();
318
- return {
319
- available: rules.length > 0,
320
- violations: [],
321
- ruleCount: rules.length,
322
- };
339
+ const loadIssues = inspection.boundaryLoadIssues ?? [];
340
+ if (rules.length === 0 && loadIssues.length === 0) {
341
+ return {
342
+ available: false,
343
+ violations: [],
344
+ ruleCount: 0,
345
+ verdict: 'not-verified',
346
+ exitCode: 2,
347
+ summary: 'No boundary rules loaded — nothing was checked.',
348
+ };
349
+ }
350
+ try {
351
+ const r = runBoundaryCheck(inspection);
352
+ return {
353
+ available: true,
354
+ violations: r.violations.map((v, i) => ({
355
+ id: `${v.ruleId}:${v.file}:${v.line}:${i}`,
356
+ from: `${v.file}:${v.line}`,
357
+ to: v.importSpecifier,
358
+ rule: v.ruleId,
359
+ severity: v.severity,
360
+ message: v.message,
361
+ })),
362
+ ruleCount: rules.length,
363
+ verdict: r.verdict,
364
+ exitCode: r.exitCode,
365
+ summary: dashboardBoundarySummary(r),
366
+ deadUnitCount: r.deadUnits.length,
367
+ intendedEmptyCount: r.intendedEmpty.length,
368
+ wentLiveCount: r.wentLive.length,
369
+ };
370
+ }
371
+ catch (e) {
372
+ return {
373
+ available: true,
374
+ violations: [],
375
+ ruleCount: rules.length,
376
+ verdict: 'not-verified',
377
+ exitCode: 2,
378
+ summary: `Boundary scan failed — nothing was checked: ${e.message}`,
379
+ };
380
+ }
381
+ }
382
+ /** One sentence for the boundary panel, from the settled verdict — never "no violations" over a failing or unverified run. */
383
+ function dashboardBoundarySummary(r) {
384
+ const notes = [];
385
+ if (r.deadUnits.length > 0)
386
+ notes.push(`${r.deadUnits.length} dead selector unit(s)`);
387
+ if (r.wentLive.length > 0)
388
+ notes.push(`${r.wentLive.length} expectEmpty marker(s) went live`);
389
+ // "accepted" only when the settle accepted them — an acceptance exists at exit
390
+ // 0 alone (`r.accepted`); a failing or unverified run holds the same units as
391
+ // intended empty, the word finish's boundaries sub-gate uses.
392
+ if (r.intendedEmpty.length > 0) {
393
+ notes.push(r.exitCode === 0 && r.accepted.length > 0
394
+ ? `${r.intendedEmpty.length} expectEmpty unit(s) accepted`
395
+ : `${r.intendedEmpty.length} expectEmpty unit(s) intended empty`);
396
+ }
397
+ const tail = notes.length > 0 ? ` (${notes.join('; ')})` : '';
398
+ if (r.exitCode === 0)
399
+ return `No active violations — ${r.rules.length} rule(s) checked.${tail}`;
400
+ if (r.exitCode === 1) {
401
+ const parts = [];
402
+ if (r.violations.length > 0)
403
+ parts.push(`${r.violations.length} violation(s)`);
404
+ if (r.loadIssues.length > 0)
405
+ parts.push(`${r.loadIssues.length} errored rule(s)`);
406
+ if (r.staleExceptions.length > 0)
407
+ parts.push(`${r.staleExceptions.length} stale exception(s)`);
408
+ const onEmpty = r.rules.filter((x) => x.failedOnEmpty === true).length;
409
+ if (onEmpty > 0)
410
+ parts.push(`${onEmpty} rule(s) matched nothing (failOnEmpty)`);
411
+ return `Boundary check needs attention — ${parts.join(', ') || 'see `shrk check boundaries`'}.${tail}`;
412
+ }
413
+ return `NOT VERIFIED — ${r.shortfalls[0] ?? 'part of the boundary scope was never examined'}.${tail}`;
323
414
  }
324
415
  export function buildDashboardDrift(inspection) {
325
416
  const drift = buildDriftReport(inspection);
@@ -508,7 +599,7 @@ export function buildDashboardReview(_inspection, options) {
508
599
  suggestedChecks: [],
509
600
  artifacts: [],
510
601
  commandHints: [
511
- commandHint('shrk review build --since main', 'Generate a review packet from a diff', 'read-only'),
602
+ commandHint('shrk review packet --since main', 'Generate a review packet from a diff', 'read-only'),
512
603
  ],
513
604
  };
514
605
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-knowledge.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-knowledge.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,gCAAgC,EAGhC,gCAAgC,EAEhC,+BAA+B,EAG/B,kCAAkC,EAGnC,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAuHxE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,qBAAqB,GAChC,+BAA+B,CAoBjC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,gCAAgC,CAkDlC;AAKD,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,GAChC,gCAAgC,CA8ClC;AAED,gFAAgF;AAChF,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,kCAAkC,CAqBpC"}
1
+ {"version":3,"file":"dashboard-knowledge.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-knowledge.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGV,gCAAgC,EAGhC,gCAAgC,EAEhC,+BAA+B,EAG/B,kCAAkC,EAGnC,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAuHxE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,qBAAqB,GAChC,+BAA+B,CAoBjC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,gCAAgC,CAkDlC;AAKD,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,GAChC,gCAAgC,CAyDlC;AAED,gFAAgF;AAChF,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,kCAAkC,CAqBpC"}
@@ -209,9 +209,15 @@ export function buildDashboardKnowledgeGraph(inspection) {
209
209
  seen.add(key);
210
210
  edges.push({ from, to, kind });
211
211
  };
212
- // Semantic edges: explicit cross-references.
212
+ // Semantic edges: explicit cross-references. One whose target is not an entry
213
+ // in the drawn set (a dangling id, a non-knowledge id, or an entry outside the
214
+ // node cap) is not drawn — but it is COUNTED, so the graph never reads as
215
+ // complete while it silently lost edges.
216
+ let droppedEdges = 0;
213
217
  for (const e of entries) {
214
218
  for (const t of [...(e.related ?? []), ...(e.actionHints?.relatedKnowledge ?? [])]) {
219
+ if (t !== e.id && !ids.has(t))
220
+ droppedEdges += 1;
215
221
  addEdge(e.id, t, 'related');
216
222
  }
217
223
  }
@@ -230,7 +236,13 @@ export function buildDashboardKnowledgeGraph(inspection) {
230
236
  addEdge(group[i - 1], group[i], 'scope');
231
237
  }
232
238
  }
233
- return { available: entries.length > 0, nodes, edges, truncated };
239
+ return {
240
+ available: entries.length > 0,
241
+ nodes,
242
+ edges,
243
+ truncated,
244
+ ...(droppedEdges > 0 ? { droppedEdges } : {}),
245
+ };
234
246
  }
235
247
  /** Relevance-ranked "more like this" for one entry (lexical, deterministic). */
236
248
  export function buildDashboardKnowledgeSimilar(inspection, id) {
@@ -1,4 +1,6 @@
1
1
  import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
2
+ import { type IRejectedEntry } from '@shrkcrft/core';
3
+ import type { IContributionFileIssue } from './i-contribution-file-issue.js';
2
4
  export declare const DECISION_RECORD_SCHEMA = "sharkcraft.decision/v1";
3
5
  export declare enum DecisionStatus {
4
6
  Proposed = "proposed",
@@ -18,6 +20,8 @@ export interface IDecisionRecord {
18
20
  relatedPolicies: readonly string[];
19
21
  relatedConstructs: readonly string[];
20
22
  relatedFiles: readonly string[];
23
+ /** Commands the decision relates to (TS decisions only) — probed by the self-config doctor. */
24
+ relatedCommands?: readonly string[];
21
25
  date: string;
22
26
  sourceFile?: string;
23
27
  }
@@ -35,12 +39,32 @@ export interface IDecisionDraftInput {
35
39
  date?: string;
36
40
  }
37
41
  export declare function listDecisions(inspection: ISharkcraftInspection): readonly IDecisionRecord[];
42
+ /**
43
+ * THE TS-decision acceptance predicate (round 12, 12.1): a non-empty string
44
+ * `id` — `[]` means accepted. An id-less decision used to be dropped with no
45
+ * signal (`if (!rec?.id) return`).
46
+ */
47
+ export declare function decisionRejectionReasons(raw: unknown): readonly string[];
38
48
  /**
39
49
  * Async warm-up for `sharkcraft/decisions.ts` and pack-contributed
40
50
  * decisions. Call this before `listDecisions` if you want TS decisions
41
51
  * folded in.
42
52
  */
43
53
  export declare function loadTsDecisions(inspection: ISharkcraftInspection): Promise<readonly IDecisionRecord[]>;
54
+ /**
55
+ * {@link loadTsDecisions} with what did not take effect (round 12, 12.1): a
56
+ * decision file that failed to import (it used to be swallowed to `[]`), and
57
+ * every declared decision the loader refused — invalid, or a duplicate id.
58
+ * `rejected` also carries every Markdown record (`sharkcraft/decisions/*.md`,
59
+ * `docs/adr/*.md`) whose frontmatter THE parser cannot read as declared (round
60
+ * 15 follow-up, F6) — the same scan {@link listDecisions} reads, so a record is
61
+ * either listed or reported here, never neither.
62
+ */
63
+ export declare function loadTsDecisionsWithIssues(inspection: ISharkcraftInspection): Promise<{
64
+ readonly decisions: readonly IDecisionRecord[];
65
+ readonly issues: readonly IContributionFileIssue[];
66
+ readonly rejected: readonly IRejectedEntry[];
67
+ }>;
44
68
  export declare function getDecision(inspection: ISharkcraftInspection, id: string): IDecisionRecord | undefined;
45
69
  export declare function previewDecisionDraft(input: IDecisionDraftInput): string;
46
70
  export declare function decisionDraftTargetPath(projectRoot: string, id: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"decision-records.d.ts","sourceRoot":"","sources":["../src/decision-records.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAgB,aAAa,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,eAAe,EAAE,CA2D3F;AA0BD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAuCrC;AAaD,wBAAgB,WAAW,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEtG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA0CvE;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/E"}
1
+ {"version":3,"file":"decision-records.d.ts","sourceRoot":"","sources":["../src/decision-records.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,sBAAsB,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,+FAA+F;IAC/F,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAyKD,wBAAgB,aAAa,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,eAAe,EAAE,CAmB3F;AA0BD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAIxE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAErC;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C,CAAC,CAuED;AAaD,wBAAgB,WAAW,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEtG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA8CvE;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/E"}