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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/dist/asset-preview/apply-asset-preview.js +1 -1
  2. package/dist/authoring/authoring-kit.d.ts +9 -1
  3. package/dist/authoring/authoring-kit.d.ts.map +1 -1
  4. package/dist/authoring/authoring-kit.js +26 -13
  5. package/dist/bootstrap/unlinked-workspace-dependency.d.ts +11 -0
  6. package/dist/bootstrap/unlinked-workspace-dependency.d.ts.map +1 -0
  7. package/dist/bootstrap/unlinked-workspace-dependency.js +99 -0
  8. package/dist/command-registry.d.ts +100 -1
  9. package/dist/command-registry.d.ts.map +1 -1
  10. package/dist/command-registry.js +130 -3
  11. package/dist/commands/api-diff.command.d.ts.map +1 -1
  12. package/dist/commands/api-diff.command.js +12 -0
  13. package/dist/commands/apply.command.d.ts.map +1 -1
  14. package/dist/commands/apply.command.js +3 -0
  15. package/dist/commands/arch.command.d.ts.map +1 -1
  16. package/dist/commands/arch.command.js +26 -7
  17. package/dist/commands/architecture.command.d.ts.map +1 -1
  18. package/dist/commands/architecture.command.js +8 -2
  19. package/dist/commands/baseline.command.d.ts +76 -0
  20. package/dist/commands/baseline.command.d.ts.map +1 -1
  21. package/dist/commands/baseline.command.js +599 -75
  22. package/dist/commands/biome.command.d.ts.map +1 -1
  23. package/dist/commands/biome.command.js +20 -0
  24. package/dist/commands/boundaries.command.d.ts +9 -1
  25. package/dist/commands/boundaries.command.d.ts.map +1 -1
  26. package/dist/commands/boundaries.command.js +88 -20
  27. package/dist/commands/bundle.command.d.ts.map +1 -1
  28. package/dist/commands/bundle.command.js +57 -11
  29. package/dist/commands/cache-align.command.d.ts.map +1 -1
  30. package/dist/commands/cache-align.command.js +3 -1
  31. package/dist/commands/changelog-data.d.ts.map +1 -1
  32. package/dist/commands/changelog-data.js +164 -0
  33. package/dist/commands/changes.command.d.ts.map +1 -1
  34. package/dist/commands/changes.command.js +15 -0
  35. package/dist/commands/check.command.d.ts.map +1 -1
  36. package/dist/commands/check.command.js +1260 -324
  37. package/dist/commands/checks.command.d.ts.map +1 -1
  38. package/dist/commands/checks.command.js +188 -40
  39. package/dist/commands/ci.command.d.ts.map +1 -1
  40. package/dist/commands/ci.command.js +35 -2
  41. package/dist/commands/code-intel.command.d.ts.map +1 -1
  42. package/dist/commands/code-intel.command.js +8 -1
  43. package/dist/commands/command-catalog.d.ts +23 -1
  44. package/dist/commands/command-catalog.d.ts.map +1 -1
  45. package/dist/commands/command-catalog.js +152 -35
  46. package/dist/commands/commands.command.d.ts +21 -3
  47. package/dist/commands/commands.command.d.ts.map +1 -1
  48. package/dist/commands/commands.command.js +172 -27
  49. package/dist/commands/compress.command.d.ts.map +1 -1
  50. package/dist/commands/compress.command.js +4 -0
  51. package/dist/commands/constructs.command.d.ts.map +1 -1
  52. package/dist/commands/constructs.command.js +50 -12
  53. package/dist/commands/context.command.d.ts.map +1 -1
  54. package/dist/commands/context.command.js +40 -5
  55. package/dist/commands/contract-templates.command.d.ts.map +1 -1
  56. package/dist/commands/contract-templates.command.js +9 -1
  57. package/dist/commands/contract.command.d.ts.map +1 -1
  58. package/dist/commands/contract.command.js +35 -0
  59. package/dist/commands/conventions.command.d.ts.map +1 -1
  60. package/dist/commands/conventions.command.js +189 -29
  61. package/dist/commands/coverage.command.d.ts.map +1 -1
  62. package/dist/commands/coverage.command.js +9 -0
  63. package/dist/commands/daily.commands.d.ts +0 -1
  64. package/dist/commands/daily.commands.d.ts.map +1 -1
  65. package/dist/commands/daily.commands.js +12 -76
  66. package/dist/commands/dashboard.command.d.ts.map +1 -1
  67. package/dist/commands/dashboard.command.js +10 -0
  68. package/dist/commands/dev.command.d.ts.map +1 -1
  69. package/dist/commands/dev.command.js +45 -2
  70. package/dist/commands/diagnostics.command.d.ts +0 -2
  71. package/dist/commands/diagnostics.command.d.ts.map +1 -1
  72. package/dist/commands/diagnostics.command.js +5 -78
  73. package/dist/commands/diff-check.command.d.ts +6 -4
  74. package/dist/commands/diff-check.command.d.ts.map +1 -1
  75. package/dist/commands/diff-check.command.js +190 -103
  76. package/dist/commands/docs-references.command.d.ts +20 -0
  77. package/dist/commands/docs-references.command.d.ts.map +1 -0
  78. package/dist/commands/docs-references.command.js +520 -0
  79. package/dist/commands/doctor.command.d.ts.map +1 -1
  80. package/dist/commands/doctor.command.js +60 -5
  81. package/dist/commands/drift.command.d.ts.map +1 -1
  82. package/dist/commands/drift.command.js +17 -4
  83. package/dist/commands/eslint.command.d.ts.map +1 -1
  84. package/dist/commands/eslint.command.js +20 -0
  85. package/dist/commands/export.command.d.ts.map +1 -1
  86. package/dist/commands/export.command.js +23 -1
  87. package/dist/commands/feedback-dispatch.command.d.ts.map +1 -1
  88. package/dist/commands/feedback-dispatch.command.js +29 -0
  89. package/dist/commands/feedback.command.d.ts.map +1 -1
  90. package/dist/commands/feedback.command.js +6 -1
  91. package/dist/commands/finish.command.d.ts.map +1 -1
  92. package/dist/commands/finish.command.js +32 -8
  93. package/dist/commands/fix.command.d.ts.map +1 -1
  94. package/dist/commands/fix.command.js +19 -0
  95. package/dist/commands/gate.command.d.ts +6 -1
  96. package/dist/commands/gate.command.d.ts.map +1 -1
  97. package/dist/commands/gate.command.js +50 -124
  98. package/dist/commands/gates.command.d.ts +54 -0
  99. package/dist/commands/gates.command.d.ts.map +1 -1
  100. package/dist/commands/gates.command.js +1314 -64
  101. package/dist/commands/gen.command.d.ts.map +1 -1
  102. package/dist/commands/gen.command.js +4 -0
  103. package/dist/commands/generated.command.d.ts +62 -0
  104. package/dist/commands/generated.command.d.ts.map +1 -1
  105. package/dist/commands/generated.command.js +639 -156
  106. package/dist/commands/graph-code-subverbs.d.ts +15 -0
  107. package/dist/commands/graph-code-subverbs.d.ts.map +1 -1
  108. package/dist/commands/graph-code-subverbs.js +203 -25
  109. package/dist/commands/graph.command.d.ts.map +1 -1
  110. package/dist/commands/graph.command.js +79 -37
  111. package/dist/commands/help.command.d.ts +30 -6
  112. package/dist/commands/help.command.d.ts.map +1 -1
  113. package/dist/commands/help.command.js +323 -199
  114. package/dist/commands/helper.command.d.ts +1 -0
  115. package/dist/commands/helper.command.d.ts.map +1 -1
  116. package/dist/commands/helper.command.js +195 -56
  117. package/dist/commands/impact.command.d.ts.map +1 -1
  118. package/dist/commands/impact.command.js +115 -12
  119. package/dist/commands/infer.command.d.ts.map +1 -1
  120. package/dist/commands/infer.command.js +20 -45
  121. package/dist/commands/ingest.command.d.ts +0 -1
  122. package/dist/commands/ingest.command.d.ts.map +1 -1
  123. package/dist/commands/ingest.command.js +25 -41
  124. package/dist/commands/knowledge-author.command.d.ts +0 -3
  125. package/dist/commands/knowledge-author.command.d.ts.map +1 -1
  126. package/dist/commands/knowledge-author.command.js +10 -23
  127. package/dist/commands/knowledge.command.d.ts.map +1 -1
  128. package/dist/commands/knowledge.command.js +469 -129
  129. package/dist/commands/languages.command.d.ts.map +1 -1
  130. package/dist/commands/languages.command.js +27 -0
  131. package/dist/commands/lint.command.d.ts.map +1 -1
  132. package/dist/commands/lint.command.js +3 -0
  133. package/dist/commands/mcp.command.d.ts +18 -0
  134. package/dist/commands/mcp.command.d.ts.map +1 -1
  135. package/dist/commands/mcp.command.js +33 -8
  136. package/dist/commands/onboard.command.d.ts.map +1 -1
  137. package/dist/commands/onboard.command.js +20 -0
  138. package/dist/commands/owners.command.d.ts.map +1 -1
  139. package/dist/commands/owners.command.js +14 -2
  140. package/dist/commands/packs-new.d.ts +13 -1
  141. package/dist/commands/packs-new.d.ts.map +1 -1
  142. package/dist/commands/packs-new.js +500 -335
  143. package/dist/commands/packs.command.d.ts.map +1 -1
  144. package/dist/commands/packs.command.js +378 -36
  145. package/dist/commands/paths.command.d.ts.map +1 -1
  146. package/dist/commands/paths.command.js +9 -1
  147. package/dist/commands/pipelines.command.d.ts.map +1 -1
  148. package/dist/commands/pipelines.command.js +7 -1
  149. package/dist/commands/plan-check.command.d.ts.map +1 -1
  150. package/dist/commands/plan-check.command.js +3 -0
  151. package/dist/commands/plan.command.d.ts.map +1 -1
  152. package/dist/commands/plan.command.js +3 -0
  153. package/dist/commands/playbooks.command.d.ts.map +1 -1
  154. package/dist/commands/playbooks.command.js +7 -2
  155. package/dist/commands/policy-lint.command.d.ts +19 -2
  156. package/dist/commands/policy-lint.command.d.ts.map +1 -1
  157. package/dist/commands/policy-lint.command.js +224 -65
  158. package/dist/commands/policy.command.d.ts.map +1 -1
  159. package/dist/commands/policy.command.js +6 -1
  160. package/dist/commands/pr.command.d.ts.map +1 -1
  161. package/dist/commands/pr.command.js +14 -0
  162. package/dist/commands/presets.command.d.ts.map +1 -1
  163. package/dist/commands/presets.command.js +12 -27
  164. package/dist/commands/profiles.command.d.ts.map +1 -1
  165. package/dist/commands/profiles.command.js +94 -26
  166. package/dist/commands/provenance.command.js +1 -1
  167. package/dist/commands/quality.command.d.ts.map +1 -1
  168. package/dist/commands/quality.command.js +129 -33
  169. package/dist/commands/recommend.command.d.ts +20 -4
  170. package/dist/commands/recommend.command.d.ts.map +1 -1
  171. package/dist/commands/recommend.command.js +172 -278
  172. package/dist/commands/registrations.command.d.ts.map +1 -1
  173. package/dist/commands/registrations.command.js +138 -13
  174. package/dist/commands/registry-lifecycle-run.d.ts +14 -0
  175. package/dist/commands/registry-lifecycle-run.d.ts.map +1 -0
  176. package/dist/commands/registry-lifecycle-run.js +336 -0
  177. package/dist/commands/registry.command.d.ts.map +1 -1
  178. package/dist/commands/registry.command.js +235 -62
  179. package/dist/commands/release.command.d.ts.map +1 -1
  180. package/dist/commands/release.command.js +99 -20
  181. package/dist/commands/report.command.d.ts.map +1 -1
  182. package/dist/commands/report.command.js +38 -2
  183. package/dist/commands/reuse-coverage.command.d.ts +23 -0
  184. package/dist/commands/reuse-coverage.command.d.ts.map +1 -0
  185. package/dist/commands/reuse-coverage.command.js +536 -0
  186. package/dist/commands/reuse.command.d.ts +3 -18
  187. package/dist/commands/reuse.command.d.ts.map +1 -1
  188. package/dist/commands/reuse.command.js +395 -244
  189. package/dist/commands/review.command.d.ts.map +1 -1
  190. package/dist/commands/review.command.js +33 -1
  191. package/dist/commands/rounds.command.d.ts.map +1 -1
  192. package/dist/commands/rounds.command.js +5 -0
  193. package/dist/commands/safety.command.d.ts.map +1 -1
  194. package/dist/commands/safety.command.js +9 -0
  195. package/dist/commands/scaffolds.command.d.ts.map +1 -1
  196. package/dist/commands/scaffolds.command.js +97 -25
  197. package/dist/commands/search.command.d.ts +0 -8
  198. package/dist/commands/search.command.d.ts.map +1 -1
  199. package/dist/commands/search.command.js +136 -28
  200. package/dist/commands/self-config-xrefs.command.d.ts +24 -0
  201. package/dist/commands/self-config-xrefs.command.d.ts.map +1 -0
  202. package/dist/commands/self-config-xrefs.command.js +170 -0
  203. package/dist/commands/self-config.command.d.ts.map +1 -1
  204. package/dist/commands/self-config.command.js +261 -65
  205. package/dist/commands/smart-context.command.d.ts.map +1 -1
  206. package/dist/commands/smart-context.command.js +39 -3
  207. package/dist/commands/spec.command.d.ts.map +1 -1
  208. package/dist/commands/spec.command.js +3 -0
  209. package/dist/commands/stats.command.d.ts.map +1 -1
  210. package/dist/commands/stats.command.js +3 -0
  211. package/dist/commands/surface.command.d.ts +6 -1
  212. package/dist/commands/surface.command.d.ts.map +1 -1
  213. package/dist/commands/surface.command.js +256 -54
  214. package/dist/commands/task-context.command.js +1 -1
  215. package/dist/commands/task.command.d.ts.map +1 -1
  216. package/dist/commands/task.command.js +22 -1
  217. package/dist/commands/templates.command.d.ts +4 -0
  218. package/dist/commands/templates.command.d.ts.map +1 -1
  219. package/dist/commands/templates.command.js +109 -22
  220. package/dist/commands/test.command.d.ts.map +1 -1
  221. package/dist/commands/test.command.js +161 -33
  222. package/dist/commands/tests.command.d.ts.map +1 -1
  223. package/dist/commands/tests.command.js +29 -3
  224. package/dist/commands/trace.command.d.ts.map +1 -1
  225. package/dist/commands/trace.command.js +29 -4
  226. package/dist/commands/watch.command.d.ts.map +1 -1
  227. package/dist/commands/watch.command.js +3 -0
  228. package/dist/commands/why.command.d.ts.map +1 -1
  229. package/dist/commands/why.command.js +3 -0
  230. package/dist/commands/wiring.command.d.ts +18 -4
  231. package/dist/commands/wiring.command.d.ts.map +1 -1
  232. package/dist/commands/wiring.command.js +362 -74
  233. package/dist/dashboard/code-intelligence-data.js +4 -4
  234. package/dist/diff/deleted-orphan-coverage.d.ts +32 -0
  235. package/dist/diff/deleted-orphan-coverage.d.ts.map +1 -0
  236. package/dist/diff/deleted-orphan-coverage.js +107 -0
  237. package/dist/diff/deleted-orphan-scope-notes.d.ts +23 -0
  238. package/dist/diff/deleted-orphan-scope-notes.d.ts.map +1 -0
  239. package/dist/diff/deleted-orphan-scope-notes.js +49 -0
  240. package/dist/diff/deleted-orphans.d.ts +32 -0
  241. package/dist/diff/deleted-orphans.d.ts.map +1 -1
  242. package/dist/diff/deleted-orphans.js +42 -2
  243. package/dist/dispatch/closest-match.d.ts +15 -0
  244. package/dist/dispatch/closest-match.d.ts.map +1 -0
  245. package/dist/dispatch/closest-match.js +47 -0
  246. package/dist/dispatch/global-flags.d.ts +94 -0
  247. package/dist/dispatch/global-flags.d.ts.map +1 -0
  248. package/dist/dispatch/global-flags.js +123 -0
  249. package/dist/dispatch/guard-invocation-input.d.ts +24 -0
  250. package/dist/dispatch/guard-invocation-input.d.ts.map +1 -0
  251. package/dist/dispatch/guard-invocation-input.js +1 -0
  252. package/dist/dispatch/guard-invocation.d.ts +33 -0
  253. package/dist/dispatch/guard-invocation.d.ts.map +1 -0
  254. package/dist/dispatch/guard-invocation.js +183 -0
  255. package/dist/dispatch/help-intercept.d.ts +22 -0
  256. package/dist/dispatch/help-intercept.d.ts.map +1 -0
  257. package/dist/dispatch/help-intercept.js +42 -0
  258. package/dist/dispatch/i-declared-invocation.d.ts +17 -0
  259. package/dist/dispatch/i-declared-invocation.d.ts.map +1 -0
  260. package/dist/dispatch/i-declared-invocation.js +1 -0
  261. package/dist/dispatch/i-unknown-flag-refusal-input.d.ts +28 -0
  262. package/dist/dispatch/i-unknown-flag-refusal-input.d.ts.map +1 -0
  263. package/dist/dispatch/i-unknown-flag-refusal-input.js +1 -0
  264. package/dist/dispatch/invocation-rejection-kind.d.ts +15 -0
  265. package/dist/dispatch/invocation-rejection-kind.d.ts.map +1 -0
  266. package/dist/dispatch/invocation-rejection-kind.js +15 -0
  267. package/dist/dispatch/invocation-rejection.d.ts +18 -0
  268. package/dist/dispatch/invocation-rejection.d.ts.map +1 -0
  269. package/dist/dispatch/invocation-rejection.js +1 -0
  270. package/dist/dispatch/judge-invocation.d.ts +24 -0
  271. package/dist/dispatch/judge-invocation.d.ts.map +1 -0
  272. package/dist/dispatch/judge-invocation.js +50 -0
  273. package/dist/dispatch/positional-mode.d.ts +18 -0
  274. package/dist/dispatch/positional-mode.d.ts.map +1 -0
  275. package/dist/dispatch/positional-mode.js +18 -0
  276. package/dist/dispatch/read-tracking-map.d.ts +28 -0
  277. package/dist/dispatch/read-tracking-map.d.ts.map +1 -0
  278. package/dist/dispatch/read-tracking-map.js +58 -0
  279. package/dist/dispatch/refuse-sibling-valve-flags.d.ts +30 -0
  280. package/dist/dispatch/refuse-sibling-valve-flags.d.ts.map +1 -0
  281. package/dist/dispatch/refuse-sibling-valve-flags.js +65 -0
  282. package/dist/dispatch/subverb-spec.d.ts +26 -0
  283. package/dist/dispatch/subverb-spec.d.ts.map +1 -0
  284. package/dist/dispatch/subverb-spec.js +1 -0
  285. package/dist/dispatch/undocumented-flag-reads.d.ts +22 -0
  286. package/dist/dispatch/undocumented-flag-reads.d.ts.map +1 -0
  287. package/dist/dispatch/undocumented-flag-reads.js +283 -0
  288. package/dist/dispatch/unknown-flag-refusal-mode.d.ts +13 -0
  289. package/dist/dispatch/unknown-flag-refusal-mode.d.ts.map +1 -0
  290. package/dist/dispatch/unknown-flag-refusal-mode.js +13 -0
  291. package/dist/dispatch/unknown-flag-refusal.d.ts +22 -0
  292. package/dist/dispatch/unknown-flag-refusal.d.ts.map +1 -0
  293. package/dist/dispatch/unknown-flag-refusal.js +57 -0
  294. package/dist/dispatch/unread-flags.d.ts +152 -0
  295. package/dist/dispatch/unread-flags.d.ts.map +1 -0
  296. package/dist/dispatch/unread-flags.js +295 -0
  297. package/dist/dispatch/verdict-valve-flag.d.ts +21 -0
  298. package/dist/dispatch/verdict-valve-flag.d.ts.map +1 -0
  299. package/dist/dispatch/verdict-valve-flag.js +21 -0
  300. package/dist/dispatch/walk-declared-subverbs.d.ts +14 -0
  301. package/dist/dispatch/walk-declared-subverbs.d.ts.map +1 -0
  302. package/dist/dispatch/walk-declared-subverbs.js +28 -0
  303. package/dist/exit-codes.d.ts +41 -3
  304. package/dist/exit-codes.d.ts.map +1 -1
  305. package/dist/exit-codes.js +153 -14
  306. package/dist/finish/run-finish.d.ts +72 -5
  307. package/dist/finish/run-finish.d.ts.map +1 -1
  308. package/dist/finish/run-finish.js +453 -104
  309. package/dist/gates/accepted-empty-note.d.ts +10 -0
  310. package/dist/gates/accepted-empty-note.d.ts.map +1 -0
  311. package/dist/gates/accepted-empty-note.js +11 -0
  312. package/dist/gates/allow-empty.d.ts +25 -0
  313. package/dist/gates/allow-empty.d.ts.map +1 -0
  314. package/dist/gates/allow-empty.js +27 -0
  315. package/dist/gates/asset-doctor-failing-units.d.ts +16 -0
  316. package/dist/gates/asset-doctor-failing-units.d.ts.map +1 -0
  317. package/dist/gates/asset-doctor-failing-units.js +14 -0
  318. package/dist/gates/asset-doctor-failure-line.d.ts +16 -0
  319. package/dist/gates/asset-doctor-failure-line.d.ts.map +1 -0
  320. package/dist/gates/asset-doctor-failure-line.js +28 -0
  321. package/dist/gates/empty-rule-advice-lines.d.ts +15 -0
  322. package/dist/gates/empty-rule-advice-lines.d.ts.map +1 -0
  323. package/dist/gates/empty-rule-advice-lines.js +20 -0
  324. package/dist/gates/gate-envelope.d.ts +85 -8
  325. package/dist/gates/gate-envelope.d.ts.map +1 -1
  326. package/dist/gates/gate-envelope.js +56 -7
  327. package/dist/gates/gate-rule-globs.d.ts +67 -0
  328. package/dist/gates/gate-rule-globs.d.ts.map +1 -0
  329. package/dist/gates/gate-rule-globs.js +139 -0
  330. package/dist/gates/gate-rule-view.d.ts +25 -6
  331. package/dist/gates/gate-rule-view.d.ts.map +1 -1
  332. package/dist/gates/gate-rule-view.js +105 -77
  333. package/dist/gates/i-coverage-dead-glob.d.ts +19 -0
  334. package/dist/gates/i-coverage-dead-glob.d.ts.map +1 -0
  335. package/dist/gates/i-coverage-dead-glob.js +1 -0
  336. package/dist/gates/i-coverage-negation.d.ts +13 -0
  337. package/dist/gates/i-coverage-negation.d.ts.map +1 -0
  338. package/dist/gates/i-coverage-negation.js +1 -0
  339. package/dist/gates/i-registration-query-settle-input.d.ts +18 -0
  340. package/dist/gates/i-registration-query-settle-input.d.ts.map +1 -0
  341. package/dist/gates/i-registration-query-settle-input.js +1 -0
  342. package/dist/gates/i-unit-state-note-row.d.ts +16 -0
  343. package/dist/gates/i-unit-state-note-row.d.ts.map +1 -0
  344. package/dist/gates/i-unit-state-note-row.js +1 -0
  345. package/dist/gates/i-unit-state-notes.d.ts +32 -0
  346. package/dist/gates/i-unit-state-notes.d.ts.map +1 -0
  347. package/dist/gates/i-unit-state-notes.js +1 -0
  348. package/dist/gates/incomplete-registry-inventory.d.ts +19 -0
  349. package/dist/gates/incomplete-registry-inventory.d.ts.map +1 -0
  350. package/dist/gates/incomplete-registry-inventory.js +63 -0
  351. package/dist/gates/measure-registration-roles.d.ts +10 -0
  352. package/dist/gates/measure-registration-roles.d.ts.map +1 -0
  353. package/dist/gates/measure-registration-roles.js +9 -0
  354. package/dist/gates/plane-verdict.d.ts +14 -0
  355. package/dist/gates/plane-verdict.d.ts.map +1 -0
  356. package/dist/gates/plane-verdict.js +22 -0
  357. package/dist/gates/qualify-clean-for-units.d.ts +12 -0
  358. package/dist/gates/qualify-clean-for-units.d.ts.map +1 -0
  359. package/dist/gates/qualify-clean-for-units.js +18 -0
  360. package/dist/gates/registration-graph-verdict.d.ts +34 -0
  361. package/dist/gates/registration-graph-verdict.d.ts.map +1 -0
  362. package/dist/gates/registration-graph-verdict.js +70 -0
  363. package/dist/gates/registration-roles.d.ts +9 -0
  364. package/dist/gates/registration-roles.d.ts.map +1 -0
  365. package/dist/gates/registration-roles.js +1 -0
  366. package/dist/gates/registry-liveness.d.ts +11 -0
  367. package/dist/gates/registry-liveness.d.ts.map +1 -0
  368. package/dist/gates/registry-liveness.js +13 -0
  369. package/dist/gates/rule-coverage.d.ts +225 -4
  370. package/dist/gates/rule-coverage.d.ts.map +1 -1
  371. package/dist/gates/rule-coverage.js +610 -43
  372. package/dist/gates/run-gate-planes.d.ts +58 -0
  373. package/dist/gates/run-gate-planes.d.ts.map +1 -0
  374. package/dist/gates/run-gate-planes.js +403 -0
  375. package/dist/gates/scaffold-selftest.d.ts +56 -0
  376. package/dist/gates/scaffold-selftest.d.ts.map +1 -0
  377. package/dist/gates/scaffold-selftest.js +119 -0
  378. package/dist/gates/seam-rejected-rules.d.ts +28 -0
  379. package/dist/gates/seam-rejected-rules.d.ts.map +1 -0
  380. package/dist/gates/seam-rejected-rules.js +95 -0
  381. package/dist/gates/self-test-check.d.ts +29 -0
  382. package/dist/gates/self-test-check.d.ts.map +1 -0
  383. package/dist/gates/self-test-check.js +1 -0
  384. package/dist/gates/self-test-subject.d.ts +28 -0
  385. package/dist/gates/self-test-subject.d.ts.map +1 -0
  386. package/dist/gates/self-test-subject.js +1 -0
  387. package/dist/gates/self-test.d.ts +20 -0
  388. package/dist/gates/self-test.d.ts.map +1 -0
  389. package/dist/gates/self-test.js +82 -0
  390. package/dist/gates/settle-verdict.d.ts +14 -0
  391. package/dist/gates/settle-verdict.d.ts.map +1 -0
  392. package/dist/gates/settle-verdict.js +13 -0
  393. package/dist/gates/settled-verdict.d.ts +8 -0
  394. package/dist/gates/settled-verdict.d.ts.map +1 -0
  395. package/dist/gates/settled-verdict.js +1 -0
  396. package/dist/gates/template-registry-coverage.d.ts +18 -0
  397. package/dist/gates/template-registry-coverage.d.ts.map +1 -0
  398. package/dist/gates/template-registry-coverage.js +24 -0
  399. package/dist/gates/unit-state-notes.d.ts +40 -0
  400. package/dist/gates/unit-state-notes.d.ts.map +1 -0
  401. package/dist/gates/unit-state-notes.js +71 -0
  402. package/dist/gates/verdict-line.d.ts +18 -0
  403. package/dist/gates/verdict-line.d.ts.map +1 -0
  404. package/dist/gates/verdict-line.js +40 -0
  405. package/dist/graph/graph-reuse-lookup.d.ts +10 -0
  406. package/dist/graph/graph-reuse-lookup.d.ts.map +1 -0
  407. package/dist/graph/graph-reuse-lookup.js +41 -0
  408. package/dist/graph/index-behind-hint.d.ts +11 -0
  409. package/dist/graph/index-behind-hint.d.ts.map +1 -0
  410. package/dist/graph/index-behind-hint.js +27 -0
  411. package/dist/knowledge/knowledge-stale-gate-flags.d.ts +3 -0
  412. package/dist/knowledge/knowledge-stale-gate-flags.d.ts.map +1 -0
  413. package/dist/knowledge/knowledge-stale-gate-flags.js +1 -0
  414. package/dist/knowledge/knowledge-stale-gate-input.d.ts +3 -0
  415. package/dist/knowledge/knowledge-stale-gate-input.d.ts.map +1 -0
  416. package/dist/knowledge/knowledge-stale-gate-input.js +1 -0
  417. package/dist/knowledge/knowledge-stale-gate-result.d.ts +3 -0
  418. package/dist/knowledge/knowledge-stale-gate-result.d.ts.map +1 -0
  419. package/dist/knowledge/knowledge-stale-gate-result.js +1 -0
  420. package/dist/knowledge/knowledge-stale-gate.d.ts +10 -0
  421. package/dist/knowledge/knowledge-stale-gate.d.ts.map +1 -0
  422. package/dist/knowledge/knowledge-stale-gate.js +9 -0
  423. package/dist/main.d.ts.map +1 -1
  424. package/dist/main.js +204 -83
  425. package/dist/output/failure-hints.d.ts.map +1 -1
  426. package/dist/output/failure-hints.js +11 -9
  427. package/dist/output/rejected-entries-note.d.ts +57 -0
  428. package/dist/output/rejected-entries-note.d.ts.map +1 -0
  429. package/dist/output/rejected-entries-note.js +103 -0
  430. package/dist/output/stdout-is-pipe.d.ts +13 -0
  431. package/dist/output/stdout-is-pipe.d.ts.map +1 -0
  432. package/dist/output/stdout-is-pipe.js +21 -0
  433. package/dist/packs/stale-build-warning.d.ts +11 -0
  434. package/dist/packs/stale-build-warning.d.ts.map +1 -0
  435. package/dist/packs/stale-build-warning.js +23 -0
  436. package/dist/quality/run-quality.d.ts +123 -0
  437. package/dist/quality/run-quality.d.ts.map +1 -0
  438. package/dist/quality/run-quality.js +442 -0
  439. package/dist/schemas/json-schemas.d.ts +184 -3
  440. package/dist/schemas/json-schemas.d.ts.map +1 -1
  441. package/dist/schemas/json-schemas.js +113 -2
  442. package/dist/shrk.d.ts +3 -0
  443. package/dist/shrk.d.ts.map +1 -0
  444. package/dist/shrk.js +30 -0
  445. package/dist/surface/audience-applicability.d.ts +26 -0
  446. package/dist/surface/audience-applicability.d.ts.map +1 -0
  447. package/dist/surface/audience-applicability.js +60 -0
  448. package/dist/surface/catalog-command-safety.d.ts +18 -0
  449. package/dist/surface/catalog-command-safety.d.ts.map +1 -0
  450. package/dist/surface/catalog-command-safety.js +62 -0
  451. package/dist/surface/cli-command-resolver.d.ts +21 -0
  452. package/dist/surface/cli-command-resolver.d.ts.map +1 -0
  453. package/dist/surface/cli-command-resolver.js +87 -0
  454. package/dist/surface/command-dispatch-kind.d.ts +20 -0
  455. package/dist/surface/command-dispatch-kind.d.ts.map +1 -0
  456. package/dist/surface/command-dispatch-kind.js +20 -0
  457. package/dist/surface/command-index-entry.d.ts +40 -0
  458. package/dist/surface/command-index-entry.d.ts.map +1 -0
  459. package/dist/surface/command-index-entry.js +1 -0
  460. package/dist/surface/command-index.d.ts +77 -0
  461. package/dist/surface/command-index.d.ts.map +1 -0
  462. package/dist/surface/command-index.js +323 -0
  463. package/dist/surface/i-command-index.d.ts +22 -0
  464. package/dist/surface/i-command-index.d.ts.map +1 -0
  465. package/dist/surface/i-command-index.js +1 -0
  466. package/dist/surface/i-command-string-context.d.ts +20 -0
  467. package/dist/surface/i-command-string-context.d.ts.map +1 -0
  468. package/dist/surface/i-command-string-context.js +1 -0
  469. package/dist/surface/i-surface-denial.d.ts +13 -0
  470. package/dist/surface/i-surface-denial.d.ts.map +1 -0
  471. package/dist/surface/i-surface-denial.js +1 -0
  472. package/dist/surface/load-surface-context.d.ts +17 -1
  473. package/dist/surface/load-surface-context.d.ts.map +1 -1
  474. package/dist/surface/load-surface-context.js +48 -10
  475. package/dist/surface/not-enabled-error.d.ts +38 -4
  476. package/dist/surface/not-enabled-error.d.ts.map +1 -1
  477. package/dist/surface/not-enabled-error.js +96 -6
  478. package/dist/surface/profiles.d.ts +7 -0
  479. package/dist/surface/profiles.d.ts.map +1 -1
  480. package/dist/surface/resolve-command-string.d.ts +10 -0
  481. package/dist/surface/resolve-command-string.d.ts.map +1 -0
  482. package/dist/surface/resolve-command-string.js +572 -0
  483. package/dist/surface/surface-config-writer.d.ts +7 -2
  484. package/dist/surface/surface-config-writer.d.ts.map +1 -1
  485. package/dist/surface/surface-config-writer.js +25 -6
  486. package/dist/surface/surface-layer.d.ts +11 -0
  487. package/dist/surface/surface-layer.d.ts.map +1 -0
  488. package/dist/surface/surface-layer.js +11 -0
  489. package/dist/surface/surface-refusal-reason.d.ts +16 -0
  490. package/dist/surface/surface-refusal-reason.d.ts.map +1 -0
  491. package/dist/surface/surface-refusal-reason.js +16 -0
  492. package/dist/surface/surface-selector.d.ts +26 -0
  493. package/dist/surface/surface-selector.d.ts.map +1 -0
  494. package/dist/surface/surface-selector.js +42 -0
  495. package/dist/surface/surface-summary.d.ts +61 -18
  496. package/dist/surface/surface-summary.d.ts.map +1 -1
  497. package/dist/surface/surface-summary.js +147 -60
  498. package/dist/surface/tier.d.ts +85 -22
  499. package/dist/surface/tier.d.ts.map +1 -1
  500. package/dist/surface/tier.js +132 -30
  501. package/dist/usage/usage-log.d.ts +6 -1
  502. package/dist/usage/usage-log.d.ts.map +1 -1
  503. package/dist/usage/usage-log.js +7 -2
  504. package/dist/validation/run-validation-loop.d.ts +9 -0
  505. package/dist/validation/run-validation-loop.d.ts.map +1 -1
  506. package/dist/validation/run-validation-loop.js +14 -11
  507. package/dist/validation/typecheck-emitted.d.ts +8 -9
  508. package/dist/validation/typecheck-emitted.d.ts.map +1 -1
  509. package/dist/validation/typecheck-emitted.js +17 -97
  510. package/package.json +34 -34
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The reuse engine's graph questions, answered from one snapshot — shared by
3
+ * `shrk reuse` and `shrk reuse coverage`, so both resolve every curated entry
4
+ * (its declaration, import line and whether that import compiles) through the
5
+ * same lookups, via the inspector's `resolveCuratedReuse`.
6
+ */
7
+ export function graphReuseLookup(api) {
8
+ return {
9
+ declarationsOf: (name) => api
10
+ .findSymbol(name, { exact: true, limit: 1000 })
11
+ .filter((n) => typeof n.path === 'string')
12
+ .map((n) => {
13
+ const declKind = n.data?.['declKind'];
14
+ return {
15
+ path: n.path,
16
+ symbolId: n.id,
17
+ isExported: n.data?.['isExported'] === true,
18
+ ...(typeof n.line === 'number' ? { line: n.line } : {}),
19
+ ...(typeof declKind === 'string' ? { declKind } : {}),
20
+ };
21
+ }),
22
+ consumerCount: (symbolId) => api.referenceSitesOf(symbolId).length,
23
+ specifierExport: (specifier, symbol) => {
24
+ // The file consumers' imports of this specifier resolved to (aliases and
25
+ // subpaths included) — then the SAME ESM export walk the surface runs.
26
+ const file = api.fileForSpecifier(specifier);
27
+ if (!file?.path)
28
+ return undefined;
29
+ const hit = api.moduleExports(file.path).exports.find((e) => e.name === symbol);
30
+ if (hit === undefined)
31
+ return null;
32
+ return {
33
+ symbolId: hit.symbolId,
34
+ declaredIn: hit.declaredIn,
35
+ declKind: hit.declKind,
36
+ ...(hit.line !== undefined ? { line: hit.line } : {}),
37
+ ...(hit.isDefault === true ? { isDefault: true } : {}),
38
+ };
39
+ },
40
+ };
41
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A "the index is N files behind" qualifier for a not-found / empty result, so
3
+ * an agent doesn't read a bare "not-found" as "this symbol doesn't exist / is
4
+ * safe to create" when the truth is "it's in a file the index hasn't seen yet."
5
+ *
6
+ * Runs the full freshness walk (`detectGraphFreshness`, the one freshness
7
+ * authority) — only call it on the rare miss path. Shared by the code-graph
8
+ * query verbs and `shrk reuse`.
9
+ */
10
+ export declare function indexBehindHint(cwd: string): string | null;
11
+ //# sourceMappingURL=index-behind-hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-behind-hint.d.ts","sourceRoot":"","sources":["../../src/graph/index-behind-hint.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc1D"}
@@ -0,0 +1,27 @@
1
+ import { detectGraphFreshness } from '@shrkcrft/graph';
2
+ /**
3
+ * A "the index is N files behind" qualifier for a not-found / empty result, so
4
+ * an agent doesn't read a bare "not-found" as "this symbol doesn't exist / is
5
+ * safe to create" when the truth is "it's in a file the index hasn't seen yet."
6
+ *
7
+ * Runs the full freshness walk (`detectGraphFreshness`, the one freshness
8
+ * authority) — only call it on the rare miss path. Shared by the code-graph
9
+ * query verbs and `shrk reuse`.
10
+ */
11
+ export function indexBehindHint(cwd) {
12
+ const f = detectGraphFreshness(cwd);
13
+ if (!f.hasIndex)
14
+ return null;
15
+ const behind = f.modified.length + f.added.length + f.deleted.length;
16
+ const pkgs = f.packagesChanged;
17
+ if (behind === 0 && pkgs.length === 0)
18
+ return null;
19
+ const files = `${behind} file(s) (${f.modified.length} modified, ${f.added.length} new, ${f.deleted.length} deleted)`;
20
+ if (pkgs.length === 0) {
21
+ return `Index is ${behind} file(s) behind (${f.modified.length} modified, ${f.added.length} new, ${f.deleted.length} deleted) — run \`shrk graph index --changed\` and retry.`;
22
+ }
23
+ // A package.json entry edit changes what a bare import resolves to; only a
24
+ // full index re-resolves the imports of unchanged files.
25
+ const shown = pkgs.slice(0, 3).join(', ') + (pkgs.length > 3 ? `, +${pkgs.length - 3} more` : '');
26
+ return `Index is behind: ${behind > 0 ? `${files} and ` : ''}${pkgs.length} workspace package(s) changed (${shown}) — run \`shrk graph index\` and retry.`;
27
+ }
@@ -0,0 +1,3 @@
1
+ /** Moved to `@shrkcrft/inspector` with the gate itself; re-exported so CLI imports stay unchanged. */
2
+ export type { IKnowledgeStaleGateFlags } from '@shrkcrft/inspector';
3
+ //# sourceMappingURL=knowledge-stale-gate-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stale-gate-flags.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge-stale-gate-flags.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ /** Moved to `@shrkcrft/inspector` with the gate itself; re-exported so CLI imports stay unchanged. */
2
+ export type { IKnowledgeStaleGateInput } from '@shrkcrft/inspector';
3
+ //# sourceMappingURL=knowledge-stale-gate-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stale-gate-input.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge-stale-gate-input.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ /** Moved to `@shrkcrft/inspector` with the gate itself; re-exported so CLI imports stay unchanged. */
2
+ export type { IKnowledgeStaleGate } from '@shrkcrft/inspector';
3
+ //# sourceMappingURL=knowledge-stale-gate-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stale-gate-result.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge-stale-gate-result.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * THE knowledge stale-check verdict now lives in `@shrkcrft/inspector`
3
+ * (`knowledge-stale-gate.ts`), so `buildQualityReport` — MCP
4
+ * `get_quality_report`, the dashboard, the report site — settles the SAME gate
5
+ * as `shrk knowledge stale-check` and `shrk quality` (round 11 review: the MCP
6
+ * report had no knowledge gate at all). Re-exported here so every CLI import
7
+ * stays unchanged; there is no second implementation.
8
+ */
9
+ export { evaluateKnowledgeStaleGate, formatPct, KNOWLEDGE_FAIL_ON_CATEGORIES, knowledgeStaleGateInput, knowledgeStaleWindowProblem, parseMinReferenced, settleKnowledgeStaleGate, } from '@shrkcrft/inspector';
10
+ //# sourceMappingURL=knowledge-stale-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-stale-gate.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge-stale-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,0BAA0B,EAC1B,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * THE knowledge stale-check verdict now lives in `@shrkcrft/inspector`
3
+ * (`knowledge-stale-gate.ts`), so `buildQualityReport` — MCP
4
+ * `get_quality_report`, the dashboard, the report site — settles the SAME gate
5
+ * as `shrk knowledge stale-check` and `shrk quality` (round 11 review: the MCP
6
+ * report had no knowledge gate at all). Re-exported here so every CLI import
7
+ * stays unchanged; there is no second implementation.
8
+ */
9
+ export { evaluateKnowledgeStaleGate, formatPct, KNOWLEDGE_FAIL_ON_CATEGORIES, knowledgeStaleGateInput, knowledgeStaleWindowProblem, parseMinReferenced, settleKnowledgeStaleGate, } from '@shrkcrft/inspector';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,eAAe,EAMhB,MAAM,uBAAuB,CAAC;AA0Z/B,wBAAgB,aAAa,IAAI,eAAe,CAqZ/C;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDrE;AAwID;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAoDxE"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,eAAe,EAKhB,MAAM,uBAAuB,CAAC;AAsb/B,wBAAgB,aAAa,IAAI,eAAe,CA4Z/C;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8DrE;AA+OD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAoDxE"}
package/dist/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { loadDotenv } from "./env/load-dotenv.js";
3
- import { CommandRegistry, extractGlobalCompress, extractGlobalCwd, extractGlobalExitTrailer, parseArgs, } from "./command-registry.js";
4
- import { argvHasExitTrailer, argvHasNoHints, argvHasStrict, emitPipeExitSignal, promoteForStrict, } from "./exit-codes.js";
3
+ import { CommandRegistry, extractGlobalCwd, parseArgs, } from "./command-registry.js";
4
+ import { argvHasExitTrailer, argvHasNoHints, argvHasStrict, emitPipeExitSignal, promoteForStrict, VERDICT_PATH_TOKENS, } from "./exit-codes.js";
5
5
  import { runCommandWithCompression } from "./output/output-compression.js";
6
6
  import { initCommand } from "./commands/init.command.js";
7
7
  import { inspectCommand } from "./commands/inspect.command.js";
@@ -37,9 +37,10 @@ import { gateCommand } from "./commands/gate.command.js";
37
37
  import { policyLintCommand, policyLintExplainCommand } from "./commands/policy-lint.command.js";
38
38
  import { baselineCheckCommand, baselineCommand, baselineDiffCommand, baselineExplainCommand, baselineListCommand, baselineUpdateCommand, } from "./commands/baseline.command.js";
39
39
  import { generatedCheckCommand, generatedExplainCommand, generatedListCommand, generatedUpdateCommand, } from "./commands/generated.command.js";
40
- import { gatesCommand, gatesCoverageCommand, gatesExplainCommand, gatesListCommand, } from "./commands/gates.command.js";
40
+ import { gatesCheckCommand, gatesCommand, gatesCoverageCommand, gatesExplainCommand, gatesListCommand, gatesScaffoldSelfTestCommand, gatesTryCommand, } from "./commands/gates.command.js";
41
41
  import { wiringCommand } from "./commands/wiring.command.js";
42
42
  import { reuseCommand } from "./commands/reuse.command.js";
43
+ import { reuseCoverageCommand } from "./commands/reuse-coverage.command.js";
43
44
  import { migrateCommand } from "./commands/migrate.command.js";
44
45
  import { coverageCommand } from "./commands/coverage.command.js";
45
46
  import { statsCommand } from "./commands/stats.command.js";
@@ -106,6 +107,7 @@ import { briefCommand } from "./commands/brief.command.js";
106
107
  import { releaseCommand, installSmokeCommand } from "./commands/release.command.js";
107
108
  import { startHereCommand } from "./commands/start-here.command.js";
108
109
  import { docsCheckCommand, examplesCheckCommand } from "./commands/docs.command.js";
110
+ import { docsReferencesCommand } from "./commands/docs-references.command.js";
109
111
  import { selfAuditCommand } from "./commands/self.command.js";
110
112
  import { diagnosticsListCommand } from "./commands/diagnostics.command.js";
111
113
  import { architectureMapCommand } from "./commands/architecture.command.js";
@@ -147,8 +149,17 @@ import { errorFooterFor, renderErrorFooter } from "./output/failure-hints.js";
147
149
  import { renderAbout } from "./surface/about.js";
148
150
  import { renderNoArgsLanding } from "./surface/no-args-landing.js";
149
151
  import { loadSurfaceContext } from "./surface/load-surface-context.js";
152
+ import { warnStaleCompiledPacks } from "./packs/stale-build-warning.js";
150
153
  import { buildSurfaceSummary, findCommandInSummary } from "./surface/surface-summary.js";
151
- import { makeSurfaceNotEnabledError, renderSurfaceNotEnabledText, SURFACE_NOT_ENABLED_EXIT_CODE, } from "./surface/not-enabled-error.js";
154
+ import { commandIndexFor, setActiveCommandRegistry } from "./surface/command-index.js";
155
+ import { editDistance, typoTolerance } from "./dispatch/closest-match.js";
156
+ import { isPathTransparentGlobal, PATH_TRANSPARENCY, stripPreDispatchGlobals, withoutPathGlobals, } from "./dispatch/global-flags.js";
157
+ import { judgeInvocation } from "./dispatch/judge-invocation.js";
158
+ import { helpTopicFor, wantsHelp } from "./dispatch/help-intercept.js";
159
+ import { beginFlagReadTracking, flagDocumentation, invocationFlagDocumentation, settleUnreadFlags, siblingsDocumenting, tracksFlagReads, } from "./dispatch/unread-flags.js";
160
+ import { isStdoutPipe } from "./output/stdout-is-pipe.js";
161
+ import { walkDeclaredSubverbs } from "./dispatch/walk-declared-subverbs.js";
162
+ import { SURFACE_NOT_ENABLED_EXIT_CODE, surfaceRefusalFor, surfaceRefusalOutput, } from "./surface/not-enabled-error.js";
152
163
  import { extractCommandPath, recordUsage, sanitizeFlagNames, } from "./usage/usage-log.js";
153
164
  import { loadProjectConfig } from '@shrkcrft/config';
154
165
  export function buildRegistry() {
@@ -227,10 +238,16 @@ export function buildRegistry() {
227
238
  registry.registerSubcommand('generated', generatedExplainCommand);
228
239
  registry.register(gatesCommand);
229
240
  registry.registerSubcommand('gates', gatesListCommand);
241
+ registry.registerSubcommand('gates', gatesCheckCommand);
230
242
  registry.registerSubcommand('gates', gatesCoverageCommand);
231
243
  registry.registerSubcommand('gates', gatesExplainCommand);
244
+ registry.registerSubcommand('gates', gatesTryCommand);
245
+ registry.registerSubcommand('gates', gatesScaffoldSelfTestCommand);
232
246
  registry.register(wiringCommand);
233
247
  registry.register(reuseCommand);
248
+ // `shrk reuse coverage` — the trie's greedy descent routes the literal
249
+ // `coverage` here; any other intent still reaches `reuse` itself.
250
+ registry.registerSubcommand('reuse', reuseCoverageCommand);
234
251
  registry.register(migrateCommand);
235
252
  registry.register(coverageCommand);
236
253
  registry.register(statsCommand);
@@ -339,6 +356,7 @@ export function buildRegistry() {
339
356
  registry.registerSubcommand('memory', memorySnapshotsCommand);
340
357
  registry.register(languagesCommand);
341
358
  registry.registerSubcommand('docs', docsCheckCommand);
359
+ registry.registerSubcommand('docs', docsReferencesCommand);
342
360
  registry.registerSubcommand('examples', examplesCheckCommand);
343
361
  registry.registerSubcommand('self', selfAuditCommand);
344
362
  registry.registerSubcommand('install', installSmokeCommand);
@@ -539,21 +557,35 @@ export async function runCli(argv) {
539
557
  // and each command's own `--strict` semantics (e.g. `check --strict`) still
540
558
  // apply beneath this (a25 §1.1).
541
559
  const strict = argvHasStrict(argv);
542
- // Derive the command path from an argv with the global --exit-trailer stripped:
543
- // otherwise a LEADING `--exit-trailer` makes extractCommandPath break on the '-'
544
- // and return "" — zeroing out both the pipe-exit signal and the usage record.
545
- const command = extractCommandPath(extractGlobalExitTrailer(probeArgv).rest);
560
+ // THE registry this run dispatches from the verdict path below and the
561
+ // dispatcher read the same one.
562
+ const registry = buildRegistry();
563
+ // Derive the command path from the argv the dispatcher reads: THE pre-dispatch
564
+ // strip (`--cwd`, `--exit-trailer`, `--compress*` — the one runCliInner uses),
565
+ // then the global `--no-hints` / `--strict` stepped over by the SAME descent.
566
+ // Otherwise a LEADING stripped global (`--exit-trailer`, `--compress`) makes
567
+ // extractCommandPath break on the '-' and return "" — zeroing out the pipe
568
+ // note, `--exit-trailer` and the usage record — while `doctor --strict
569
+ // warnings` must stay `doctor`.
570
+ const commandArgv = withoutPathGlobals(stripPreDispatchGlobals(argv).rest, registry);
571
+ const command = extractCommandPath(commandArgv);
572
+ // The verdict-verb check reads one token deeper than the usage record, so a
573
+ // three-token verdict verb (`docs references check`) is told apart from its
574
+ // informational siblings (`docs references list` / `explain`).
575
+ const verdictPath = extractCommandPath(commandArgv, VERDICT_PATH_TOKENS);
546
576
  let exitCode = 0;
547
577
  try {
548
- exitCode = promoteForStrict(await runCliInner(argv), strict);
578
+ exitCode = promoteForStrict(await runCliInner(argv, registry), strict);
549
579
  // Keep the honest 0/1/2 verdict readable through a trailing pipe (the shape
550
580
  // an agent reaches for first). A no-op for non-gate verbs. Skipped inside the
551
581
  // smart-context worker child and the --compress re-run child, whose stdout is
552
582
  // a pipe by construction — a spurious "stdout is piped" note there (the user
553
583
  // never piped) would be noise, not signal.
554
584
  if (!process.env.SHRK_WORKER_EXITCODE_FILE && !process.env.SHRK_COMPRESS_CHILD) {
555
- emitPipeExitSignal(command, exitCode, {
556
- piped: !process.stdout.isTTY,
585
+ emitPipeExitSignal(verdictPath, exitCode, {
586
+ // A PIPE (or socket) to another process — never a plain file redirect,
587
+ // which is not a TTY either but has no downstream `$?` (round 13).
588
+ piped: isStdoutPipe(),
557
589
  trailer: argvHasExitTrailer(argv),
558
590
  noHints: argvHasNoHints(argv),
559
591
  });
@@ -600,16 +632,21 @@ async function isUsageEnabled(cwd) {
600
632
  return true;
601
633
  }
602
634
  }
603
- async function runCliInner(argv) {
604
- const registry = buildRegistry();
605
- // Pre-parse the global --cwd so it can appear anywhere (incl. before the command).
606
- const { cwd: globalCwd, rest: cwdCleanArgv } = extractGlobalCwd(argv);
607
- // Strip the global --exit-trailer here so no per-command flag-guard sees it;
608
- // runCli reads it off the raw argv to decide whether to print the trailer.
609
- const { rest: trailerCleanArgv } = extractGlobalExitTrailer(cwdCleanArgv);
610
- // Pre-parse the global --compress / --ccr output-compression flags.
611
- const { directive: compressDirective, rest: cleanArgv } = extractGlobalCompress(trailerCleanArgv);
612
- const [first] = cleanArgv;
635
+ async function runCliInner(argv, registry) {
636
+ // The ONE command index (surface list, help, the surface gate, the command
637
+ // resolver injected into the inspector) reads the registry this run
638
+ // dispatches from commands never import main.ts to get it.
639
+ setActiveCommandRegistry(registry);
640
+ // THE pre-dispatch strip the one runCli derives the verdict path from: the
641
+ // global --cwd (anywhere, incl. before the command), --exit-trailer (runCli
642
+ // reads it off the raw argv to decide whether to print the trailer) and the
643
+ // --compress / --ccr output-compression flags, so no per-command flag guard
644
+ // ever sees them.
645
+ const { cwd: globalCwd, compress: compressDirective, rest: cleanArgv } = stripPreDispatchGlobals(argv);
646
+ // The global `--strict` / `--no-hints` may LEAD the command
647
+ // (`shrk --no-hints scaffolds list`): the meta checks below read the first
648
+ // token that is not one of them, and the trie descent steps over them.
649
+ const first = cleanArgv.find((t) => !isPathTransparentGlobal(t));
613
650
  // `--compress` / `--ccr` on a real command: re-run it and compress its stdout.
614
651
  // (Meta verbs like --help/--version and bare invocations are left untouched.)
615
652
  if (compressDirective &&
@@ -651,11 +688,16 @@ async function runCliInner(argv) {
651
688
  process.stdout.write(renderAbout());
652
689
  return 0;
653
690
  }
654
- // greedy trie descent. Handles 1-, 2-, and 3-level commands uniformly
691
+ // Greedy trie descent. Handles 1-, 2-, and 3-level commands uniformly
655
692
  // (`shrk doctor`, `shrk packs list`, `shrk pack author status`). The
656
693
  // resolver stops when it hits a flag or a token that isn't a child of the
657
- // current node, returning the deepest handler + the leftover tokens.
658
- let { handler, matchedPath, rest: leftover, node } = registry.resolve(cleanArgv);
694
+ // current node, returning the deepest handler + the leftover tokens. The
695
+ // global `--strict` / `--no-hints` are transparent to it while they sit
696
+ // inside the path — hoisted into the leftover instead of ending the descent
697
+ // at the first token — and past the path a bare `--strict` keeps the value
698
+ // after it (`doctor --strict warnings`). THE options: PATH_TRANSPARENCY.
699
+ const descend = (tokens) => registry.resolve(tokens, PATH_TRANSPARENCY);
700
+ let { handler, matchedPath, rest: leftover, node } = descend(cleanArgv);
659
701
  // A multi-word command passed as a SINGLE quoted token (`shrk "graph status"`)
660
702
  // arrives as one argv element with internal whitespace. The trie has no atomic
661
703
  // `graph status` node, so the first descent misses (handler undefined) — yet
@@ -664,32 +706,82 @@ async function runCliInner(argv) {
664
706
  // quoted form behaves identically to the unquoted `shrk graph status`.
665
707
  // Genuinely unknown tokens leave `handler` undefined and fall through to the
666
708
  // existing unknown-command path unchanged.
667
- if (!handler && cleanArgv.length === 1 && /\s/.test(cleanArgv[0])) {
668
- const retry = registry.resolve(cleanArgv[0].trim().split(/\s+/));
709
+ const bareArgv = cleanArgv.filter((t) => !isPathTransparentGlobal(t));
710
+ if (!handler && bareArgv.length === 1 && /\s/.test(bareArgv[0])) {
711
+ const retry = descend([
712
+ ...bareArgv[0].trim().split(/\s+/),
713
+ ...cleanArgv.filter(isPathTransparentGlobal),
714
+ ]);
669
715
  if (retry.handler) {
670
716
  ({ handler, matchedPath, rest: leftover, node } = retry);
671
717
  }
672
718
  }
673
- // `--help` / `-h` immediately after a (sub)group render help for that
674
- // path. This works at any depth.
675
- if (leftover[0] === '--help' || leftover[0] === '-h') {
676
- return registry.get('help').run(parseArgs([matchedPath.join(' ')], { globalCwd }));
719
+ // `--help` / `-h` ANYWHERE before `--` — after a subverb, a positional or
720
+ // another flag, at any depth — prints help for the deepest path the command
721
+ // index knows, and NOTHING else runs: no guard, no surface gate, no
722
+ // inspection, no command body. (Only a leading `--help` used to be caught:
723
+ // `report site --help` wrote twelve HTML files, `graph index --help` built
724
+ // the store.) Tokens after `--` pass through untouched.
725
+ if (matchedPath.length > 0 && wantsHelp(leftover)) {
726
+ const topic = helpTopicFor(commandIndexFor(registry), matchedPath, leftover);
727
+ return registry.get('help').run(parseArgs([topic.join(' ')], { globalCwd }));
677
728
  }
729
+ const trieChildren = [...node.children.keys()];
678
730
  if (handler) {
679
- // gate experimental commands. Bootstrap commands and core/extended
680
- // tiers pass through; experimental commands return the structured
681
- // not-enabled error unless `surface.enabled[]` contains them.
682
- const gateReason = await checkSurfaceGate(matchedPath, globalCwd ?? process.cwd());
683
- if (gateReason) {
684
- const err = makeSurfaceNotEnabledError(gateReason.command, { reason: gateReason.detail });
685
- process.stderr.write(renderSurfaceNotEnabledText(err));
731
+ const parsed = parseArgs(leftover, { globalCwd, booleanFlags: handler.booleanFlags });
732
+ // THE pre-run judgement (round 11 §5.2, `judgeInvocation` — the function the
733
+ // command-string resolver calls too): an unknown subcommand, a verb-shaped
734
+ // token that is neither a subverb nor a file, a flag outside a declared set,
735
+ // or a flag no documentation of the command names is refused BEFORE
736
+ // anything runs — cheap, no inspection instead of a default action that
737
+ // exits 0 (or a write that happens before the refusal).
738
+ const rejection = judgeInvocation({
739
+ registry,
740
+ handler,
741
+ matchedPath,
742
+ trieChildren,
743
+ parsed,
744
+ cwd: globalCwd ?? process.cwd(),
745
+ });
746
+ if (rejection) {
747
+ process.stderr.write(rejection.message);
748
+ return rejection.exitCode;
749
+ }
750
+ // The surface gate. Bootstrap commands and core/extended tiers pass
751
+ // through; an experimental command not in `surface.enabled[]`, a
752
+ // tool-maintenance command outside SharkCraft's own repository, or a
753
+ // command `surface.disabled[]` denies returns the structured refusal
754
+ // (exit 78 — never a check verdict).
755
+ const refusal = await checkSurfaceGate(handler, matchedPath, parsed.positional, globalCwd ?? process.cwd());
756
+ if (refusal) {
757
+ // `--json` / `--format json` get the documented machine form on stdout
758
+ // (`sharkcraft.surface.not-enabled.v1` + `reasonCode`); otherwise the text
759
+ // on stderr — `surfaceRefusalOutput`, the one writer.
760
+ const output = surfaceRefusalOutput(refusal, parsed);
761
+ if (output.stdout)
762
+ process.stdout.write(output.stdout);
763
+ if (output.stderr)
764
+ process.stderr.write(output.stderr);
686
765
  return SURFACE_NOT_ENABLED_EXIT_CODE;
687
766
  }
688
- return await handler.run(parseArgs(leftover, { globalCwd, booleanFlags: handler.booleanFlags }));
767
+ return await runWithFlagReadTracking(registry, handler, matchedPath, parsed);
689
768
  }
690
- // No handler at the deepest match. If we landed on a group node (has
691
- // children), show that group's help so the user discovers the verbs.
769
+ // No handler at the deepest match: a command group. A bare token under it
770
+ // is an unknown subcommand (`templates lst` did you mean `templates
771
+ // list`?), never the group's help at exit 0; a bare group lists its verbs.
692
772
  if (matchedPath.length > 0 && node.children.size > 0) {
773
+ const rejection = judgeInvocation({
774
+ registry,
775
+ handler: undefined,
776
+ matchedPath,
777
+ trieChildren,
778
+ parsed: parseArgs(leftover, { globalCwd }),
779
+ cwd: globalCwd ?? process.cwd(),
780
+ });
781
+ if (rejection) {
782
+ process.stderr.write(rejection.message);
783
+ return rejection.exitCode;
784
+ }
693
785
  return registry.get('help').run(parseArgs([matchedPath.join(' ')], { globalCwd }));
694
786
  }
695
787
  // Genuinely unknown — fall back to free-form / did-you-mean.
@@ -703,6 +795,43 @@ async function runCliInner(argv) {
703
795
  printDidYouMean(attempted);
704
796
  return 2;
705
797
  }
798
+ /**
799
+ * Run `handler`, then judge the flags it never READ — the universal post-run
800
+ * detector (`dispatch/unread-flags.ts`). An undocumented non-presentation flag
801
+ * was already refused before the run (`judgeInvocation`), so this backstop
802
+ * warns about an undocumented presentation flag and catches a flag name
803
+ * computed at runtime: a `0` over a dropped input becomes `usageExitFor(path)`. Skipped for a
804
+ * handler that declares `flags` (the pre-run guard already judged them) or
805
+ * `forwardsArgv` (a child process re-parses the argv). The declared-subverb
806
+ * walk is taken BEFORE the run — some handlers consume `args.positional`.
807
+ */
808
+ async function runWithFlagReadTracking(registry, handler, matchedPath, parsed) {
809
+ const walk = walkDeclaredSubverbs(handler, matchedPath, parsed.positional);
810
+ if (!tracksFlagReads(handler, walk))
811
+ return await handler.run(parsed);
812
+ // Captured BEFORE the run — some handlers consume `args.positional`.
813
+ const positional = [...parsed.positional];
814
+ const unread = beginFlagReadTracking(parsed);
815
+ const exit = await handler.run(parsed);
816
+ // The flag documentation (which builds the command index) is needed only to
817
+ // judge an unread flag — the common run reads every flag it was given, so it
818
+ // pays nothing. settleUnreadFlags returns `exit` untouched for no unread flag.
819
+ // The INVOCATION's documentation, as the pre-run refusal read it (round 13:
820
+ // per subverb, never a sibling's).
821
+ const unreadKeys = unread();
822
+ if (unreadKeys.length === 0)
823
+ return exit;
824
+ const index = commandIndexFor(registry);
825
+ return settleUnreadFlags({
826
+ unread: unreadKeys,
827
+ path: walk.path.join(' '),
828
+ documentation: invocationFlagDocumentation({ handler, matchedPath, positional, index }),
829
+ groupDocumentation: flagDocumentation(handler, matchedPath, index),
830
+ documentedOn: (key) => siblingsDocumenting(key, matchedPath, walk.path, index),
831
+ exit,
832
+ argv: parsed.argv,
833
+ });
834
+ }
706
835
  /**
707
836
  * Heuristic for "this looks like a task, not a command".
708
837
  *
@@ -784,32 +913,44 @@ function printFreeFormTaskHint(task) {
784
913
  ` $ shrk commands\n`);
785
914
  }
786
915
  /**
787
- * Check whether the resolved command path is gated by the
788
- * surface tier model. Returns `null` if the command is callable
789
- * (core/extended), or `{ command, detail }` if it is an experimental
790
- * command not enabled in the current repo's surface config.
916
+ * Check whether the invoked command is gated by the surface tier model.
917
+ * Returns `null` if the command is callable (core/extended), or the
918
+ * structured refusal (`surfaceRefusalFor`) an experimental command not
919
+ * enabled, a tool-maintenance command outside SharkCraft's own repository, or
920
+ * a command a `surface.disabled` selector denies.
921
+ *
922
+ * The view is looked up at the deepest DECLARED path first
923
+ * (`walkDeclaredSubverbs`: `release readiness` and `commands doctor` are
924
+ * subverbs one handler dispatches, so the trie path alone — `release` — could
925
+ * never gate them), then at each shorter prefix down to the top-level token.
791
926
  *
792
927
  * Failure-soft: any error loading the inspection (fresh repo, no
793
928
  * config, etc.) lets the command through. The gate must NEVER false-
794
929
  * positive a bootstrap call — the bootstrap set in `tier.ts` plus
795
930
  * spine-derived core commands always pass through cleanly.
796
931
  */
797
- async function checkSurfaceGate(matchedPath, cwd) {
798
- const candidate = matchedPath.join(' ');
799
- if (candidate.length === 0)
932
+ async function checkSurfaceGate(handler, matchedPath, positional, cwd) {
933
+ if (matchedPath.length === 0)
800
934
  return null;
935
+ const walk = walkDeclaredSubverbs(handler, matchedPath, positional);
936
+ const candidates = [];
937
+ for (let n = walk.path.length; n >= 1; n -= 1)
938
+ candidates.push(walk.path.slice(0, n).join(' '));
801
939
  try {
802
- const { context } = await loadSurfaceContext({ cwd });
940
+ const { context, inspection } = await loadSurfaceContext({ cwd });
941
+ // Startup warning: a pack serving compiled contributions built from an
942
+ // older source (the one pack-asset freshness authority; content, not age).
943
+ warnStaleCompiledPacks(inspection);
803
944
  const summary = buildSurfaceSummary(context);
804
- // Try the full path first; fall back to the top-level token. The
805
- // catalog uses both shapes ("doctor" and "plan review").
806
- const view = findCommandInSummary(summary, candidate) ??
807
- findCommandInSummary(summary, matchedPath[0] ?? '');
808
- if (!view)
809
- return null;
810
- if (view.callable)
945
+ let view;
946
+ for (const candidate of candidates) {
947
+ view = findCommandInSummary(summary, candidate);
948
+ if (view)
949
+ break;
950
+ }
951
+ if (!view || view.callable)
811
952
  return null;
812
- return { command: view.command, detail: view.detail };
953
+ return surfaceRefusalFor(view);
813
954
  }
814
955
  catch {
815
956
  return null;
@@ -838,29 +979,6 @@ function reorderCandidates(attempted, candidates) {
838
979
  });
839
980
  return ranked;
840
981
  }
841
- /** Edit distance (Levenshtein). Used to gate did-you-mean confidence. */
842
- function editDistance(a, b) {
843
- const m = a.length;
844
- const n = b.length;
845
- if (m === 0)
846
- return n;
847
- if (n === 0)
848
- return m;
849
- const dp = new Array(n + 1);
850
- for (let j = 0; j <= n; j += 1)
851
- dp[j] = j;
852
- for (let i = 1; i <= m; i += 1) {
853
- let prev = dp[0];
854
- dp[0] = i;
855
- for (let j = 1; j <= n; j += 1) {
856
- const tmp = dp[j];
857
- const cost = a[i - 1] === b[j - 1] ? 0 : 1;
858
- dp[j] = Math.min(dp[j] + 1, dp[j - 1] + 1, prev + cost);
859
- prev = tmp;
860
- }
861
- }
862
- return dp[n];
863
- }
864
982
  /**
865
983
  * Suggestion is "confident" when the candidate's top token is close
866
984
  * to the attempt in edit-distance terms — `doctorz`→`doctor` (1 edit)
@@ -877,9 +995,9 @@ function isConfidentMatch(attempted, suggestion) {
877
995
  return false;
878
996
  const lower = attempted.toLowerCase();
879
997
  const head = (suggestion.command.split(/\s+/)[0] ?? suggestion.command).toLowerCase();
880
- const dist = editDistance(lower, head);
881
- const tolerance = Math.max(1, Math.floor(lower.length / 4));
882
- return dist <= tolerance;
998
+ // The ONE typo tolerance (dispatch/closest-match.ts) — shared with help's
999
+ // topic suggestion and the dispatcher guard's closest subcommand / flag.
1000
+ return editDistance(lower, head) <= typoTolerance(lower);
883
1001
  }
884
1002
  function printDidYouMean(attempted) {
885
1003
  const rawCandidates = suggestDidYouMean(COMMAND_CATALOG, [attempted], 5);
@@ -958,13 +1076,16 @@ async function redirectStderrToTeardownLog() {
958
1076
  // Bun exposes `import.meta.main`; Node does not. When Node runs the
959
1077
  // compiled `dist/main.js` directly the path-suffix check (`main.js`)
960
1078
  // catches it. The npm bin shim points at `shrk` so that suffix also
961
- // triggers it. Source dev under Bun still runs via `main.ts`.
1079
+ // triggers it. Source dev under Bun still runs via `main.ts`. The bin target
1080
+ // is the round-13 bootstrap `dist/shrk.js` (source `src/shrk.ts`), which
1081
+ // imports this module — its suffixes are recognised the same way.
962
1082
  const isMain = typeof import.meta !== 'undefined' && import.meta.main === true;
963
1083
  const entryPath = process.argv[1] ?? '';
964
1084
  if (isMain ||
965
1085
  entryPath.endsWith('main.ts') ||
966
1086
  entryPath.endsWith('main.js') ||
967
1087
  entryPath.endsWith('shrk') ||
1088
+ entryPath.endsWith('shrk.ts') ||
968
1089
  entryPath.endsWith('shrk.js') ||
969
1090
  entryPath.endsWith('shrk.cmd')) {
970
1091
  // Marks a real CLI invocation (vs. a command handler imported directly by a
@@ -1 +1 @@
1
- {"version":3,"file":"failure-hints.d.ts","sourceRoot":"","sources":["../../src/output/failure-hints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAUzE;AAID,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAM5C;AAED,wBAAgB,mBAAmB,IAAI,YAAY,EAAE,CAMpD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAMnD;AAED,wBAAgB,yBAAyB,IAAI,YAAY,EAAE,CAK1D;AAED,wBAAgB,6BAA6B,IAAI,YAAY,EAAE,CAK9D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAKnD;AAED,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAKzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiB9D;AAED,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,2BAA2B,GAC3B,sBAAsB,GACtB,+BAA+B,GAC/B,wBAAwB,GACxB,8BAA8B,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,GAAG,SAAS,CA4E3G"}
1
+ {"version":3,"file":"failure-hints.d.ts","sourceRoot":"","sources":["../../src/output/failure-hints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAUzE;AAID,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAM5C;AAED,wBAAgB,mBAAmB,IAAI,YAAY,EAAE,CAMpD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAMnD;AAED,wBAAgB,yBAAyB,IAAI,YAAY,EAAE,CAK1D;AAED,wBAAgB,6BAA6B,IAAI,YAAY,EAAE,CAO9D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAKnD;AAED,wBAAgB,wBAAwB,IAAI,YAAY,EAAE,CAKzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiB9D;AAED,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,uBAAuB,GACvB,kBAAkB,GAClB,eAAe,GACf,2BAA2B,GAC3B,sBAAsB,GACtB,+BAA+B,GAC/B,wBAAwB,GACxB,8BAA8B,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,GAAG,SAAS,CA4E3G"}