@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
@@ -2,8 +2,8 @@
2
2
  * Workspace-aware "explore this directory".
3
3
  *
4
4
  * Answers "explain this *specific* directory" with one deterministic
5
- * call. Built on top of `buildAreaMap` (whole-repo) and the registries
6
- * already in `ISharkcraftInspection`.
5
+ * call. Classifies through THE file → area classifier (`createAreaClassifier`)
6
+ * and reads the registries already in `ISharkcraftInspection`.
7
7
  *
8
8
  * Output:
9
9
  * - inferred area kind + role,
@@ -19,7 +19,7 @@
19
19
  */
20
20
  import { existsSync, readdirSync, statSync } from 'node:fs';
21
21
  import * as nodePath from 'node:path';
22
- import { AreaKind, buildAreaMap } from "./area-map.js";
22
+ import { AreaKind, createAreaClassifier } from "./area-map.js";
23
23
  export const AREA_EXPLORE_SCHEMA = 'sharkcraft.area-explore/v1';
24
24
  const IGNORE_DIRS = new Set([
25
25
  'node_modules',
@@ -83,17 +83,38 @@ function walkLimited(root, base, maxFiles = 4000) {
83
83
  }
84
84
  return out;
85
85
  }
86
- function inferKindForPath(relPath, areaMap) {
87
- for (const a of areaMap.areas) {
88
- if (a.paths.some((p) => relPath === p || relPath.startsWith(p + '/')))
89
- return a.kind;
90
- }
91
- // fallback heuristics: match against AreaPatterns through area-map
92
- if (/^packages\//.test(relPath) || /^apps\//.test(relPath)) {
93
- if (/\/__tests__\//.test(relPath))
94
- return AreaKind.Tests;
86
+ /**
87
+ * The area kind of an explored path, through THE file → area classifier
88
+ * (`createAreaClassifier`, the one the area map, impact and the changes
89
+ * summary use). This used to prefix-match the area map's `paths`, which hold
90
+ * only a top segment, so a config pattern for part of `libs/` gave EVERY
91
+ * `libs/…` path that area's kind.
92
+ *
93
+ * - A FILE is classified directly.
94
+ * - A DIRECTORY has no area of its own. Its kind is the most common kind
95
+ * among the files under it (the explore walk's files), ties broken by kind
96
+ * name so the answer is total. It is `unknown` only when none of them
97
+ * classifies.
98
+ */
99
+ function inferKindForPath(relPath, isDir, filesUnder, classify) {
100
+ if (!isDir)
101
+ return classify(relPath).kind;
102
+ const counts = new Map();
103
+ for (const f of filesUnder) {
104
+ const kind = classify(f).kind;
105
+ if (kind === AreaKind.Unknown)
106
+ continue;
107
+ counts.set(kind, (counts.get(kind) ?? 0) + 1);
108
+ }
109
+ let best = AreaKind.Unknown;
110
+ let bestCount = 0;
111
+ for (const [kind, n] of [...counts].sort(([a], [b]) => a.localeCompare(b))) {
112
+ if (n > bestCount) {
113
+ best = kind;
114
+ bestCount = n;
115
+ }
95
116
  }
96
- return AreaKind.Unknown;
117
+ return best;
97
118
  }
98
119
  function describeRole(relPath, kind) {
99
120
  const segs = relPath.split('/');
@@ -220,7 +241,7 @@ export function exploreArea(input) {
220
241
  boundaryRuleIds: [],
221
242
  pathConventionIds: [],
222
243
  risks: [],
223
- nextCommands: [`shrk map # repo-wide map`],
244
+ nextCommands: [`shrk explore . # repo-wide map`],
224
245
  };
225
246
  }
226
247
  const stat = statSync(absPath);
@@ -249,8 +270,7 @@ export function exploreArea(input) {
249
270
  // Secondary key makes the order TOTAL: same-size files near the cutoff would
250
271
  // otherwise be ranked by filesystem order (non-deterministic).
251
272
  files.sort((a, b) => b.sizeBytes - a.sizeBytes || a.relPath.localeCompare(b.relPath));
252
- const areaMap = buildAreaMap(input.inspection);
253
- const inferredKind = inferKindForPath(relPath, areaMap);
273
+ const inferredKind = inferKindForPath(relPath, isDir, files.map((f) => f.relPath), createAreaClassifier(input.inspection.config?.areaMap));
254
274
  const role = describeRole(relPath, inferredKind);
255
275
  const topFiles = input.topFiles ?? 10;
256
276
  const keyFiles = files
@@ -1,16 +1,10 @@
1
+ import { AreaKind } from '@shrkcrft/core';
2
+ import type { ISharkCraftConfig } from '@shrkcrft/config';
1
3
  import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
4
+ export { AreaKind };
2
5
  export declare const AREA_MAP_SCHEMA = "sharkcraft.area-map/v1";
3
- export declare enum AreaKind {
4
- Core = "core",
5
- Ui = "ui",
6
- App = "app",
7
- Api = "api",
8
- Tests = "tests",
9
- Docs = "docs",
10
- Infra = "infra",
11
- Generated = "generated",
12
- Unknown = "unknown"
13
- }
6
+ /** Below this share of classified files the map reports itself `degraded` (config: `areaMap.minClassificationRate`). */
7
+ export declare const DEFAULT_MIN_CLASSIFICATION_RATE = 0.5;
14
8
  export interface IAreaMapEntry {
15
9
  id: string;
16
10
  kind: AreaKind;
@@ -31,8 +25,59 @@ export interface IAreaMap {
31
25
  projectRoot: string;
32
26
  areas: readonly IAreaMapEntry[];
33
27
  unclassifiedFiles: number;
28
+ /** Files the map walked. `classifiedFiles + unclassifiedFiles === totalFiles`. */
29
+ totalFiles: number;
30
+ classifiedFiles: number;
31
+ /** `classifiedFiles / totalFiles` (0..1; 0 when nothing was walked). */
32
+ classificationRate: number;
33
+ /** The rate `degraded` is judged against. */
34
+ minClassificationRate: number;
35
+ /**
36
+ * True when fewer files classified than `minClassificationRate`. Every view
37
+ * derived from the map (impact, review packets, the report site) inherits
38
+ * the blind spot, so it reports this instead of silently understating.
39
+ */
40
+ degraded: boolean;
41
+ /** The first unclassified paths, sorted — what `areaMap.patterns` should cover. */
42
+ unclassifiedSample: readonly string[];
43
+ /** Which pattern tables classified: the built-in layout table, project config, or both. */
44
+ patternSource: 'built-in' | 'config' | 'config+built-in';
45
+ }
46
+ /** How one file classified, and which table decided. */
47
+ export interface IAreaClassification {
48
+ readonly kind: AreaKind;
49
+ /** The project pattern's `id`, when a config pattern with one matched. */
50
+ readonly id?: string;
51
+ readonly source: 'config' | 'built-in' | 'none';
34
52
  }
53
+ type AreaMapConfig = NonNullable<ISharkCraftConfig['areaMap']>;
54
+ /**
55
+ * THE file → area classifier. The area map, impact's target attribution and
56
+ * the changes summary's project-declared areas all go through it, so a
57
+ * project pattern means the same thing everywhere.
58
+ *
59
+ * Project patterns (`areaMap.patterns`) run FIRST, in declared order; then the
60
+ * built-in layout table, unless `replaceDefaults` (or `builtIns: false`, for a
61
+ * caller that only wants the project's own taxonomy).
62
+ */
63
+ export declare function createAreaClassifier(config?: AreaMapConfig | null, options?: {
64
+ readonly builtIns?: boolean;
65
+ }): (file: string) => IAreaClassification;
66
+ /**
67
+ * THE area id of a classified file: `<kind>:<pattern id | package or top segment>`.
68
+ *
69
+ * `buildAreaMap` keys its entries with it, and every view asking "which area
70
+ * is this file in" (impact's affected areas, `core-area`, boundary risks)
71
+ * classifies the file and looks this id up. A prefix match on an entry's
72
+ * `paths` cannot answer it: `paths` holds only the top segment, so a config
73
+ * pattern for `libs/<group>/core/**` made EVERY `libs/…` file look core.
74
+ */
75
+ export declare function areaIdOf(classification: IAreaClassification, file: string): string;
35
76
  export declare function buildAreaMap(inspection: ISharkcraftInspection): IAreaMap;
77
+ /** `12.5%` — one formatting of a classification rate for every renderer. */
78
+ export declare function formatClassificationRate(rate: number): string;
79
+ /** The loud line a degraded map earns — one wording across text, markdown and HTML. */
80
+ export declare function areaMapDegradedLine(map: IAreaMap): string | undefined;
36
81
  export declare function renderAreaMapText(map: IAreaMap): string;
37
82
  export declare function renderAreaMapMarkdown(map: IAreaMap): string;
38
83
  //# sourceMappingURL=area-map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"area-map.d.ts","sourceRoot":"","sources":["../src/area-map.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAoED,wBAAgB,YAAY,CAAC,UAAU,EAAE,qBAAqB,GAAG,QAAQ,CA4ExE;AA0BD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CASvD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAc3D"}
1
+ {"version":3,"file":"area-map.d.ts","sourceRoot":"","sources":["../src/area-map.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIvE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,wHAAwH;AACxH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAKnD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,2FAA2F;IAC3F,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,iBAAiB,CAAC;CAC1D;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;CACjD;AAED,KAAK,aAAa,GAAG,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAsD/D;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,EAC7B,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5C,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAoBvC;AASD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElF;AAOD,wBAAgB,YAAY,CAAC,UAAU,EAAE,qBAAqB,GAAG,QAAQ,CA0FxE;AA0BD,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAMrE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAmBvD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CA0B3D"}
package/dist/area-map.js CHANGED
@@ -1,18 +1,15 @@
1
1
  import { existsSync, readdirSync, statSync } from 'node:fs';
2
2
  import * as nodePath from 'node:path';
3
+ import { AreaKind } from '@shrkcrft/core';
4
+ import { globToRegex } from '@shrkcrft/boundaries';
5
+ // The enum moved to core (so the config schema can validate a pattern's kind
6
+ // against it); re-exported here so every existing import keeps working.
7
+ export { AreaKind };
3
8
  export const AREA_MAP_SCHEMA = 'sharkcraft.area-map/v1';
4
- export var AreaKind;
5
- (function (AreaKind) {
6
- AreaKind["Core"] = "core";
7
- AreaKind["Ui"] = "ui";
8
- AreaKind["App"] = "app";
9
- AreaKind["Api"] = "api";
10
- AreaKind["Tests"] = "tests";
11
- AreaKind["Docs"] = "docs";
12
- AreaKind["Infra"] = "infra";
13
- AreaKind["Generated"] = "generated";
14
- AreaKind["Unknown"] = "unknown";
15
- })(AreaKind || (AreaKind = {}));
9
+ /** Below this share of classified files the map reports itself `degraded` (config: `areaMap.minClassificationRate`). */
10
+ export const DEFAULT_MIN_CLASSIFICATION_RATE = 0.5;
11
+ /** Unclassified paths named in the map — actionable, not a count alone. */
12
+ const UNCLASSIFIED_SAMPLE = 20;
16
13
  const AREA_PATTERNS = [
17
14
  { kind: AreaKind.Core, match: [/^packages\/core(\/|$)/, /^src\/core(\/|$)/], idHint: 'core' },
18
15
  { kind: AreaKind.Ui, match: [/^packages\/(ui|dashboard|web)(\/|$)/, /^(src|app)\/(ui|components|pages|views)(\/|$)/], idHint: 'ui' },
@@ -67,12 +64,36 @@ function walk(root, base = '') {
67
64
  }
68
65
  return out;
69
66
  }
70
- function classify(file) {
71
- for (const p of AREA_PATTERNS) {
72
- if (p.match.some((re) => re.test(file)))
73
- return p.kind;
74
- }
75
- return AreaKind.Unknown;
67
+ /**
68
+ * THE file → area classifier. The area map, impact's target attribution and
69
+ * the changes summary's project-declared areas all go through it, so a
70
+ * project pattern means the same thing everywhere.
71
+ *
72
+ * Project patterns (`areaMap.patterns`) run FIRST, in declared order; then the
73
+ * built-in layout table, unless `replaceDefaults` (or `builtIns: false`, for a
74
+ * caller that only wants the project's own taxonomy).
75
+ */
76
+ export function createAreaClassifier(config, options = {}) {
77
+ const project = (config?.patterns ?? []).map((p) => ({
78
+ kind: p.kind,
79
+ ...(p.id ? { id: p.id } : {}),
80
+ matchers: p.match.map((g) => globToRegex(g)),
81
+ }));
82
+ const useBuiltIns = options.builtIns !== false && config?.replaceDefaults !== true;
83
+ return (file) => {
84
+ for (const p of project) {
85
+ if (p.matchers.some((re) => re.test(file))) {
86
+ return { kind: p.kind, ...(p.id ? { id: p.id } : {}), source: 'config' };
87
+ }
88
+ }
89
+ if (useBuiltIns) {
90
+ for (const p of AREA_PATTERNS) {
91
+ if (p.match.some((re) => re.test(file)))
92
+ return { kind: p.kind, source: 'built-in' };
93
+ }
94
+ }
95
+ return { kind: AreaKind.Unknown, source: 'none' };
96
+ };
76
97
  }
77
98
  function packageOrTopSegment(file) {
78
99
  const segs = file.split('/');
@@ -82,20 +103,39 @@ function packageOrTopSegment(file) {
82
103
  return `apps/${segs[1]}`;
83
104
  return segs[0] ?? '';
84
105
  }
106
+ /**
107
+ * THE area id of a classified file: `<kind>:<pattern id | package or top segment>`.
108
+ *
109
+ * `buildAreaMap` keys its entries with it, and every view asking "which area
110
+ * is this file in" (impact's affected areas, `core-area`, boundary risks)
111
+ * classifies the file and looks this id up. A prefix match on an entry's
112
+ * `paths` cannot answer it: `paths` holds only the top segment, so a config
113
+ * pattern for `libs/<group>/core/**` made EVERY `libs/…` file look core.
114
+ */
115
+ export function areaIdOf(classification, file) {
116
+ return `${classification.kind}:${classification.id ?? packageOrTopSegment(file)}`;
117
+ }
118
+ function patternSourceOf(config) {
119
+ if ((config?.patterns?.length ?? 0) === 0)
120
+ return config?.replaceDefaults === true ? 'config' : 'built-in';
121
+ return config?.replaceDefaults === true ? 'config' : 'config+built-in';
122
+ }
85
123
  export function buildAreaMap(inspection) {
86
124
  const root = inspection.projectRoot;
125
+ const config = inspection.config?.areaMap;
126
+ const classify = createAreaClassifier(config);
87
127
  const allFiles = existsSync(root) ? walk(root) : [];
88
128
  const byKey = new Map();
89
- let unclassified = 0;
129
+ const unclassifiedPaths = [];
90
130
  for (const f of allFiles) {
91
- const kind = classify(f);
92
- if (kind === AreaKind.Unknown)
93
- unclassified += 1;
131
+ const c = classify(f);
132
+ if (c.kind === AreaKind.Unknown)
133
+ unclassifiedPaths.push(f);
94
134
  const seg = packageOrTopSegment(f);
95
- const key = `${kind}:${seg}`;
135
+ const key = areaIdOf(c, f);
96
136
  let entry = byKey.get(key);
97
137
  if (!entry) {
98
- entry = { kind, paths: new Set(), fileCount: 0 };
138
+ entry = { kind: c.kind, paths: new Set(), fileCount: 0 };
99
139
  byKey.set(key, entry);
100
140
  }
101
141
  entry.paths.add(seg);
@@ -134,11 +174,23 @@ export function buildAreaMap(inspection) {
134
174
  });
135
175
  }
136
176
  areas.sort((a, b) => b.fileCount - a.fileCount);
177
+ const totalFiles = allFiles.length;
178
+ const unclassifiedFiles = unclassifiedPaths.length;
179
+ const classifiedFiles = totalFiles - unclassifiedFiles;
180
+ const classificationRate = totalFiles === 0 ? 0 : Math.round((classifiedFiles / totalFiles) * 10_000) / 10_000;
181
+ const minClassificationRate = config?.minClassificationRate ?? DEFAULT_MIN_CLASSIFICATION_RATE;
137
182
  return {
138
183
  schema: AREA_MAP_SCHEMA,
139
184
  projectRoot: root,
140
185
  areas,
141
- unclassifiedFiles: unclassified,
186
+ unclassifiedFiles,
187
+ totalFiles,
188
+ classifiedFiles,
189
+ classificationRate,
190
+ minClassificationRate,
191
+ degraded: totalFiles > 0 && classificationRate < minClassificationRate,
192
+ unclassifiedSample: [...unclassifiedPaths].sort().slice(0, UNCLASSIFIED_SAMPLE),
193
+ patternSource: patternSourceOf(config),
142
194
  };
143
195
  }
144
196
  function stripGlob(s) {
@@ -164,9 +216,28 @@ function computeRiskScore(input) {
164
216
  score -= 10;
165
217
  return Math.max(0, Math.min(100, 30 + score));
166
218
  }
219
+ /** `12.5%` — one formatting of a classification rate for every renderer. */
220
+ export function formatClassificationRate(rate) {
221
+ return `${(rate * 100).toFixed(1)}%`;
222
+ }
223
+ /** The loud line a degraded map earns — one wording across text, markdown and HTML. */
224
+ export function areaMapDegradedLine(map) {
225
+ if (!map.degraded)
226
+ return undefined;
227
+ return (`area attribution degraded — ${formatClassificationRate(map.classificationRate)} of files classified ` +
228
+ `(below ${formatClassificationRate(map.minClassificationRate)}); add areaMap.patterns to sharkcraft.config.ts`);
229
+ }
167
230
  export function renderAreaMapText(map) {
168
231
  const lines = [];
169
232
  lines.push(`Area map (${map.areas.length} areas, ${map.unclassifiedFiles} unclassified files)`);
233
+ lines.push(` classified ${map.classifiedFiles}/${map.totalFiles} (${formatClassificationRate(map.classificationRate)}) · patterns: ${map.patternSource}`);
234
+ const degraded = areaMapDegradedLine(map);
235
+ if (degraded) {
236
+ lines.push(` ! ${degraded}`);
237
+ if (map.unclassifiedSample.length > 0) {
238
+ lines.push(` unclassified (first ${map.unclassifiedSample.length}): ${map.unclassifiedSample.join(', ')}`);
239
+ }
240
+ }
170
241
  for (const a of map.areas.slice(0, 50)) {
171
242
  lines.push(` ${a.kind.padEnd(10)} ${String(a.fileCount).padStart(5)} files paths=${a.paths.join(', ')} risk=${a.riskScore}`);
172
243
  }
@@ -178,6 +249,16 @@ export function renderAreaMapMarkdown(map) {
178
249
  lines.push('');
179
250
  lines.push(`Total areas: **${map.areas.length}** — unclassified files: ${map.unclassifiedFiles}.`);
180
251
  lines.push('');
252
+ lines.push(`Classified: **${map.classifiedFiles}/${map.totalFiles}** (${formatClassificationRate(map.classificationRate)}) · patterns: ${map.patternSource}.`);
253
+ const degraded = areaMapDegradedLine(map);
254
+ if (degraded) {
255
+ lines.push('');
256
+ lines.push(`> **Warning:** ${degraded}.`);
257
+ if (map.unclassifiedSample.length > 0) {
258
+ lines.push(`> Unclassified (first ${map.unclassifiedSample.length}): ${map.unclassifiedSample.map((p) => `\`${p}\``).join(', ')}`);
259
+ }
260
+ }
261
+ lines.push('');
181
262
  lines.push('| Kind | Files | Paths | Boundary rules | Risk |');
182
263
  lines.push('| --- | ---: | --- | ---: | ---: |');
183
264
  for (const a of map.areas) {
@@ -0,0 +1,21 @@
1
+ import { type IUnitLiveness } from '@shrkcrft/core';
2
+ import type { IAssetDoctorFlags } from './i-asset-doctor-flags.js';
3
+ /**
4
+ * THE proposal of every asset doctor (round 13): `registrations doctor`,
5
+ * `scaffolds doctor`, `search tuning doctor`, `self-config doctor|report`, and
6
+ * MCP `get_scaffold_pattern_doctor` / `get_self_config_doctor` — so a CLI verb
7
+ * and its MCP twin cannot propose different exits over the same report.
8
+ *
9
+ * 1 on an error, on a warning under `--strict`, or on a selector unit THE
10
+ * `--fail-on-dead-units` predicate (`selectorUnitFails`) fails — an unmarked
11
+ * dead unit, or a stale LOCAL `expectEmpty` marker; a pack's stale marker is
12
+ * INFO and never fails the consumer, and an intended-empty unit never fails.
13
+ * Else 0. Settle the proposal against the doctor's coverage (`settleVerdict`):
14
+ * a Coverage-weight dead or unproven unit turns 0 into 2 whatever the flags.
15
+ */
16
+ export declare function assetDoctorProposedExit(found: {
17
+ readonly errors: number;
18
+ readonly warnings: number;
19
+ readonly units: readonly Pick<IUnitLiveness, 'state' | 'mark'>[];
20
+ }, flags: IAssetDoctorFlags): 0 | 1;
21
+ //# sourceMappingURL=asset-doctor-proposed-exit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-doctor-proposed-exit.d.ts","sourceRoot":"","sources":["../src/asset-doctor-proposed-exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;CAClE,EACD,KAAK,EAAE,iBAAiB,GACvB,CAAC,GAAG,CAAC,CAKP"}
@@ -0,0 +1,22 @@
1
+ import { selectorUnitFails } from '@shrkcrft/core';
2
+ /**
3
+ * THE proposal of every asset doctor (round 13): `registrations doctor`,
4
+ * `scaffolds doctor`, `search tuning doctor`, `self-config doctor|report`, and
5
+ * MCP `get_scaffold_pattern_doctor` / `get_self_config_doctor` — so a CLI verb
6
+ * and its MCP twin cannot propose different exits over the same report.
7
+ *
8
+ * 1 on an error, on a warning under `--strict`, or on a selector unit THE
9
+ * `--fail-on-dead-units` predicate (`selectorUnitFails`) fails — an unmarked
10
+ * dead unit, or a stale LOCAL `expectEmpty` marker; a pack's stale marker is
11
+ * INFO and never fails the consumer, and an intended-empty unit never fails.
12
+ * Else 0. Settle the proposal against the doctor's coverage (`settleVerdict`):
13
+ * a Coverage-weight dead or unproven unit turns 0 into 2 whatever the flags.
14
+ */
15
+ export function assetDoctorProposedExit(found, flags) {
16
+ if (found.errors > 0)
17
+ return 1;
18
+ if (flags.strict && found.warnings > 0)
19
+ return 1;
20
+ const unitFlags = { failOnDeadUnits: flags.failOnDeadUnits, strict: flags.strict, strictPromotesWarnings: false };
21
+ return found.units.some((u) => selectorUnitFails(u, unitFlags)) ? 1 : 0;
22
+ }
@@ -187,7 +187,7 @@ export function renderProvenanceMarkdown(report) {
187
187
  lines.push(`Total entries: ${report.total}`);
188
188
  lines.push('');
189
189
  if (!report.ledgerExists) {
190
- lines.push('> No provenance ledger yet. Run any `shrk knowledge author` / `shrk pack author` preview to start one.');
190
+ lines.push('> No provenance ledger yet. Run any `shrk knowledge add --write-preview` (or update / remove) or `shrk pack author preview --write-preview` to start one.');
191
191
  lines.push('');
192
192
  return lines.join('\n');
193
193
  }
@@ -43,12 +43,35 @@ export interface IChangedScopeFilterResult<TViolation extends IBoundaryLikeViola
43
43
  includedViolations: ReadonlyArray<TViolation>;
44
44
  ignoredLegacyCount: number;
45
45
  ignoredLegacyByRule: Readonly<Record<string, number>>;
46
+ /**
47
+ * Violations included because their RULE was escalated — its definition (or
48
+ * the config / alias map it is evaluated under) changed, so every violation
49
+ * it produces is new to this changeset, whatever file it sits in.
50
+ */
51
+ escalatedCount?: number;
52
+ }
53
+ /** Extra inputs to {@link filterViolationsToChangedScope}. */
54
+ export interface IChangedScopeFilterOptions {
55
+ /**
56
+ * Rules whose violations are included regardless of their file (round 11,
57
+ * 6.3 / closing#d). A rule edit can create violations only in UNCHANGED
58
+ * files — the filter used to file every one of them as "legacy", so
59
+ * `--changed-only` and `finish` read green over the violation the edit just
60
+ * introduced. The caller computes the set with
61
+ * `resolveBoundaryRuleInvalidation`.
62
+ */
63
+ readonly escalatedRuleIds?: ReadonlySet<string> | readonly string[];
64
+ /** A changed-file set the caller already resolved — skips a second git call. */
65
+ readonly resolved?: {
66
+ readonly mode: ChangedScopeMode;
67
+ readonly files: readonly string[];
68
+ };
46
69
  }
47
70
  export declare function resolveChangedFiles(opts: IChangedScopeOptions): {
48
71
  mode: ChangedScopeMode;
49
72
  files: string[];
50
73
  };
51
- export declare function filterViolationsToChangedScope<TViolation extends IBoundaryLikeViolation>(violations: ReadonlyArray<TViolation>, opts: IChangedScopeOptions): IChangedScopeFilterResult<TViolation>;
74
+ export declare function filterViolationsToChangedScope<TViolation extends IBoundaryLikeViolation>(violations: ReadonlyArray<TViolation>, opts: IChangedScopeOptions, filterOptions?: IChangedScopeFilterOptions): IChangedScopeFilterResult<TViolation>;
52
75
  export interface IChangedBoundaryReport {
53
76
  schema: 'sharkcraft.changed-boundary-report/v1';
54
77
  mode: ChangedScopeMode;
@@ -1 +1 @@
1
- {"version":3,"file":"boundaries-changed-only.d.ts","sourceRoot":"","sources":["../src/boundaries-changed-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,oBAAY,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB,CAAC,UAAU,SAAS,sBAAsB;IAClF,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAWD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAC/D,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAkBA;AAED,wBAAgB,8BAA8B,CAAC,UAAU,SAAS,sBAAsB,EACtF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,GACzB,yBAAyB,CAAC,UAAU,CAAC,CAiCvC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,uCAAuC,CAAC;IAChD,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,sBAAsB,EAClF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,GACzB,sBAAsB,CAWxB"}
1
+ {"version":3,"file":"boundaries-changed-only.d.ts","sourceRoot":"","sources":["../src/boundaries-changed-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,oBAAY,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB,CAAC,UAAU,SAAS,sBAAsB;IAClF,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,WAAW,0BAA0B;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;IACpE,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5F;AAWD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAC/D,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAkBA;AAED,wBAAgB,8BAA8B,CAAC,UAAU,SAAS,sBAAsB,EACtF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,EAC1B,aAAa,GAAE,0BAA+B,GAC7C,yBAAyB,CAAC,UAAU,CAAC,CA2CvC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,uCAAuC,CAAC;IAChD,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,sBAAsB,EAClF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,GACzB,sBAAsB,CAWxB"}
@@ -50,12 +50,21 @@ export function resolveChangedFiles(opts) {
50
50
  const out = getChangedFiles(opts.projectRoot, { includeWorktree: true });
51
51
  return { mode: ChangedScopeMode.ChangedOnly, files: out };
52
52
  }
53
- export function filterViolationsToChangedScope(violations, opts) {
54
- const { mode, files } = resolveChangedFiles(opts);
53
+ export function filterViolationsToChangedScope(violations, opts, filterOptions = {}) {
54
+ const { mode, files } = filterOptions.resolved ?? resolveChangedFiles(opts);
55
55
  const changedSet = new Set(files.map((f) => f.split(/[\\/]/).join('/')));
56
+ const escalated = new Set(filterOptions.escalatedRuleIds ?? []);
56
57
  const included = [];
57
58
  const ignoredByRule = {};
59
+ let escalatedCount = 0;
58
60
  for (const v of violations) {
61
+ // A rule whose definition changed produced this violation in THIS
62
+ // changeset, whatever file it sits in — never "legacy".
63
+ if (escalated.has(v.ruleId)) {
64
+ included.push(v);
65
+ escalatedCount += 1;
66
+ continue;
67
+ }
59
68
  const candidate = v.file ?? v.fromFile ?? '';
60
69
  const norm = normalisePath(candidate, opts.projectRoot);
61
70
  if (changedSet.has(norm)) {
@@ -81,6 +90,7 @@ export function filterViolationsToChangedScope(violations, opts) {
81
90
  includedViolations: included,
82
91
  ignoredLegacyCount,
83
92
  ignoredLegacyByRule: ignoredByRule,
93
+ ...(escalated.size > 0 ? { escalatedCount } : {}),
84
94
  };
85
95
  }
86
96
  export function buildChangedBoundaryReport(violations, opts) {
@@ -0,0 +1,40 @@
1
+ import type { IBoundaryRule, IImportScanResult } from '@shrkcrft/boundaries';
2
+ import type { ChangedScopeMode, IChangedScopeOptions } from './boundaries-changed-only.js';
3
+ import type { IBoundaryLoadIssue } from './boundary-load-issue.model.js';
4
+ /** Inputs to `runBoundaryCheck` — every boundary surface passes the same ones. */
5
+ export interface IRunBoundaryCheckOptions {
6
+ /** `--rule <id>`: evaluate only this rule. An unknown id is a usage error (exit 3). */
7
+ readonly onlyRuleId?: string;
8
+ /**
9
+ * `--rule-file <path>`: evaluate ONLY these rules (loaded by the CLI through
10
+ * the same loader `boundaryFiles` use). Never reachable from MCP — loading a
11
+ * rule file executes it.
12
+ */
13
+ readonly ruleFile?: {
14
+ readonly path: string;
15
+ readonly rules: readonly IBoundaryRule[];
16
+ readonly loadIssues?: readonly IBoundaryLoadIssue[];
17
+ };
18
+ /** Changed-scope mode: report violations the changeset introduced (plus escalated rules). */
19
+ readonly changedScope?: IChangedScopeOptions;
20
+ /** A changed-file set the caller already resolved (finish). Takes precedence over `changedScope` resolution. */
21
+ readonly changed?: {
22
+ readonly mode: ChangedScopeMode;
23
+ readonly files: readonly string[];
24
+ };
25
+ /** Read imports from raw text, comments included (`--include-comments`). */
26
+ readonly includeComments?: boolean;
27
+ /**
28
+ * Escalate rules whose definition the changeset touched (default `true`).
29
+ * `false` (`--no-rule-escalation`) keeps them out — and the run then reports
30
+ * those rules UNEXAMINED, so it can never read as a pass.
31
+ */
32
+ readonly escalate?: boolean;
33
+ /** `--fail-on-dead-units`: a dead selector unit fails the run (1). */
34
+ readonly failOnDeadUnits?: boolean;
35
+ /** `--strict`: warning-severity violations fail too. */
36
+ readonly strict?: boolean;
37
+ /** Reuse an existing scan (the rule-set diff scans once for both sides). */
38
+ readonly scan?: IImportScanResult;
39
+ }
40
+ //# sourceMappingURL=boundary-check-options.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundary-check-options.model.d.ts","sourceRoot":"","sources":["../src/boundary-check-options.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;QACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;KACrD,CAAC;IACF,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,gHAAgH;IAChH,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC1F,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ import type { IVerdictCoverage } from '@shrkcrft/core';
2
+ import type { IBoundaryDeadUnit, IBoundaryUnitFinding, IBoundarySuppressedViolation, IBoundaryViolation, IEvaluateResult, IImportScanResult } from '@shrkcrft/boundaries';
3
+ import type { ChangedScopeMode } from './boundaries-changed-only.js';
4
+ import type { IBoundaryConfigurationStatus } from './boundary-configuration-status.model.js';
5
+ import type { IBoundaryLoadIssue } from './boundary-load-issue.model.js';
6
+ import type { IBoundaryRuleCheck } from './boundary-rule-check.model.js';
7
+ import type { IBoundaryRuleInvalidation } from './boundary-rule-invalidation.model.js';
8
+ import type { IBoundaryStaleExceptionFinding } from './boundary-stale-exception-finding.model.js';
9
+ /**
10
+ * The ONE boundary-check answer (round 11, C#one-boundary-check-authority):
11
+ * `check boundaries`, finish's boundaries gate, `diff-check` and both MCP
12
+ * boundary tools read this, so the alias map, the escalation, the exemptions
13
+ * and the verdict cannot differ between them.
14
+ */
15
+ export interface IBoundaryCheckResult {
16
+ readonly schema: 'sharkcraft.boundary-check/v1';
17
+ readonly projectRoot: string;
18
+ readonly ruleSource: {
19
+ readonly kind: 'registry';
20
+ } | {
21
+ readonly kind: 'rule-file';
22
+ readonly path: string;
23
+ };
24
+ /** Rules in the source (registry or rule file), before `--rule`. */
25
+ readonly rulesConfigured: number;
26
+ /** Rules this run is accountable for: after `--rule`, and in changed mode the governing + escalated ones. */
27
+ readonly selectedRuleIds: readonly string[];
28
+ readonly scan: IImportScanResult;
29
+ /** The full evaluation over the whole scan (always — escalation and stale exceptions need it). */
30
+ readonly evaluation: IEvaluateResult;
31
+ readonly rules: readonly IBoundaryRuleCheck[];
32
+ /** Reported violations (in changed mode: introduced by the changeset or by an escalated rule). */
33
+ readonly violations: readonly IBoundaryViolation[];
34
+ readonly counts: {
35
+ readonly error: number;
36
+ readonly warning: number;
37
+ readonly info: number;
38
+ };
39
+ readonly suppressed: readonly IBoundarySuppressedViolation[];
40
+ readonly staleExceptions: readonly IBoundaryStaleExceptionFinding[];
41
+ /** The selected rules' UNMARKED dead selector units — each rule's settled `.dead`. */
42
+ readonly deadUnits: readonly IBoundaryDeadUnit[];
43
+ /**
44
+ * Units marked `{ pattern, expectEmpty: true }` whose target does not exist
45
+ * (round 13): accepted — printed `accepted by expectEmpty: …` at exit 0 —
46
+ * and never a failure, under any flag.
47
+ */
48
+ readonly intendedEmpty: readonly IBoundaryUnitFinding[];
49
+ /**
50
+ * Units marked `expectEmpty` whose target now exists (round 13): the fence
51
+ * went live and the marker is stale. ✓ withheld; fails only under
52
+ * `--fail-on-dead-units` / `--strict`, and never for a pack marker (INFO).
53
+ */
54
+ readonly wentLive: readonly IBoundaryUnitFinding[];
55
+ /** The units that fail THIS run — core's `selectorUnitFails` under the run's flags. */
56
+ readonly failingUnits: readonly IBoundaryUnitFinding[];
57
+ readonly loadIssues: readonly IBoundaryLoadIssue[];
58
+ readonly configuration?: IBoundaryConfigurationStatus;
59
+ readonly changed?: {
60
+ readonly mode: ChangedScopeMode;
61
+ readonly changedFiles: readonly string[];
62
+ /** Changed SOURCE files (present in the scan) that at least one rule governs. */
63
+ readonly governedFiles: readonly string[];
64
+ readonly ignoredLegacyCount: number;
65
+ readonly ignoredLegacyByRule: Readonly<Record<string, number>>;
66
+ readonly escalation: IBoundaryRuleInvalidation;
67
+ /** Rules escalated in this run (empty under `--no-rule-escalation`). */
68
+ readonly escalatedRuleIds: readonly string[];
69
+ /** Rules that needed escalation but `--no-rule-escalation` kept out — reported unexamined. */
70
+ readonly escalationSuppressed: readonly string[];
71
+ };
72
+ /** Run coverage: rules examined of rules selected. */
73
+ readonly runCoverage: IVerdictCoverage;
74
+ /** The exit this run proposes before settling on coverage (the CLI envelope takes this). */
75
+ readonly proposedExit: number;
76
+ /** Settled with core's shortfall rule — never 0 over an unexamined scope. */
77
+ readonly exitCode: number;
78
+ readonly verdict: 'pass' | 'fail' | 'not-verified' | 'usage-error';
79
+ readonly shortfalls: readonly string[];
80
+ /**
81
+ * The settled acceptances (`<rule>: accepted by expectEmpty: …`) — present
82
+ * only at exit 0, like every acceptance (core `settleVerdict`). Round 13.
83
+ */
84
+ readonly accepted: readonly string[];
85
+ /** Set when `--rule` named no rule (exit 3). */
86
+ readonly unknownRuleId?: string;
87
+ readonly availableRuleIds?: readonly string[];
88
+ }
89
+ //# sourceMappingURL=boundary-check-result.model.d.ts.map