@shrkcrft/cli 0.1.0-alpha.30 → 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 +54 -3
  20. package/dist/commands/baseline.command.d.ts.map +1 -1
  21. package/dist/commands/baseline.command.js +582 -74
  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 +138 -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 +1241 -322
  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 +3 -0
  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 +13 -0
  77. package/dist/commands/docs-references.command.d.ts.map +1 -1
  78. package/dist/commands/docs-references.command.js +269 -72
  79. package/dist/commands/doctor.command.d.ts.map +1 -1
  80. package/dist/commands/doctor.command.js +58 -4
  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 +52 -0
  99. package/dist/commands/gates.command.d.ts.map +1 -1
  100. package/dist/commands/gates.command.js +811 -185
  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 +33 -3
  104. package/dist/commands/generated.command.d.ts.map +1 -1
  105. package/dist/commands/generated.command.js +499 -147
  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 +198 -24
  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 +360 -73
  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 +37 -3
  328. package/dist/gates/gate-rule-globs.d.ts.map +1 -1
  329. package/dist/gates/gate-rule-globs.js +78 -40
  330. package/dist/gates/gate-rule-view.d.ts +17 -4
  331. package/dist/gates/gate-rule-view.d.ts.map +1 -1
  332. package/dist/gates/gate-rule-view.js +105 -90
  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 +187 -4
  370. package/dist/gates/rule-coverage.d.ts.map +1 -1
  371. package/dist/gates/rule-coverage.js +501 -49
  372. package/dist/gates/run-gate-planes.d.ts +14 -0
  373. package/dist/gates/run-gate-planes.d.ts.map +1 -1
  374. package/dist/gates/run-gate-planes.js +172 -30
  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 +200 -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
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,eAAe,EAMhB,MAAM,uBAAuB,CAAC;AA6Z/B,wBAAgB,aAAa,IAAI,eAAe,CAwZ/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 { gatesCheckCommand, gatesCommand, gatesCoverageCommand, gatesExplainCommand, gatesListCommand, gatesTryCommand, } 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";
@@ -148,8 +149,17 @@ import { errorFooterFor, renderErrorFooter } from "./output/failure-hints.js";
148
149
  import { renderAbout } from "./surface/about.js";
149
150
  import { renderNoArgsLanding } from "./surface/no-args-landing.js";
150
151
  import { loadSurfaceContext } from "./surface/load-surface-context.js";
152
+ import { warnStaleCompiledPacks } from "./packs/stale-build-warning.js";
151
153
  import { buildSurfaceSummary, findCommandInSummary } from "./surface/surface-summary.js";
152
- 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";
153
163
  import { extractCommandPath, recordUsage, sanitizeFlagNames, } from "./usage/usage-log.js";
154
164
  import { loadProjectConfig } from '@shrkcrft/config';
155
165
  export function buildRegistry() {
@@ -232,8 +242,12 @@ export function buildRegistry() {
232
242
  registry.registerSubcommand('gates', gatesCoverageCommand);
233
243
  registry.registerSubcommand('gates', gatesExplainCommand);
234
244
  registry.registerSubcommand('gates', gatesTryCommand);
245
+ registry.registerSubcommand('gates', gatesScaffoldSelfTestCommand);
235
246
  registry.register(wiringCommand);
236
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);
237
251
  registry.register(migrateCommand);
238
252
  registry.register(coverageCommand);
239
253
  registry.register(statsCommand);
@@ -543,21 +557,35 @@ export async function runCli(argv) {
543
557
  // and each command's own `--strict` semantics (e.g. `check --strict`) still
544
558
  // apply beneath this (a25 §1.1).
545
559
  const strict = argvHasStrict(argv);
546
- // Derive the command path from an argv with the global --exit-trailer stripped:
547
- // otherwise a LEADING `--exit-trailer` makes extractCommandPath break on the '-'
548
- // and return "" — zeroing out both the pipe-exit signal and the usage record.
549
- 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);
550
576
  let exitCode = 0;
551
577
  try {
552
- exitCode = promoteForStrict(await runCliInner(argv), strict);
578
+ exitCode = promoteForStrict(await runCliInner(argv, registry), strict);
553
579
  // Keep the honest 0/1/2 verdict readable through a trailing pipe (the shape
554
580
  // an agent reaches for first). A no-op for non-gate verbs. Skipped inside the
555
581
  // smart-context worker child and the --compress re-run child, whose stdout is
556
582
  // a pipe by construction — a spurious "stdout is piped" note there (the user
557
583
  // never piped) would be noise, not signal.
558
584
  if (!process.env.SHRK_WORKER_EXITCODE_FILE && !process.env.SHRK_COMPRESS_CHILD) {
559
- emitPipeExitSignal(command, exitCode, {
560
- 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(),
561
589
  trailer: argvHasExitTrailer(argv),
562
590
  noHints: argvHasNoHints(argv),
563
591
  });
@@ -604,16 +632,21 @@ async function isUsageEnabled(cwd) {
604
632
  return true;
605
633
  }
606
634
  }
607
- async function runCliInner(argv) {
608
- const registry = buildRegistry();
609
- // Pre-parse the global --cwd so it can appear anywhere (incl. before the command).
610
- const { cwd: globalCwd, rest: cwdCleanArgv } = extractGlobalCwd(argv);
611
- // Strip the global --exit-trailer here so no per-command flag-guard sees it;
612
- // runCli reads it off the raw argv to decide whether to print the trailer.
613
- const { rest: trailerCleanArgv } = extractGlobalExitTrailer(cwdCleanArgv);
614
- // Pre-parse the global --compress / --ccr output-compression flags.
615
- const { directive: compressDirective, rest: cleanArgv } = extractGlobalCompress(trailerCleanArgv);
616
- 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));
617
650
  // `--compress` / `--ccr` on a real command: re-run it and compress its stdout.
618
651
  // (Meta verbs like --help/--version and bare invocations are left untouched.)
619
652
  if (compressDirective &&
@@ -655,11 +688,16 @@ async function runCliInner(argv) {
655
688
  process.stdout.write(renderAbout());
656
689
  return 0;
657
690
  }
658
- // greedy trie descent. Handles 1-, 2-, and 3-level commands uniformly
691
+ // Greedy trie descent. Handles 1-, 2-, and 3-level commands uniformly
659
692
  // (`shrk doctor`, `shrk packs list`, `shrk pack author status`). The
660
693
  // resolver stops when it hits a flag or a token that isn't a child of the
661
- // current node, returning the deepest handler + the leftover tokens.
662
- 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);
663
701
  // A multi-word command passed as a SINGLE quoted token (`shrk "graph status"`)
664
702
  // arrives as one argv element with internal whitespace. The trie has no atomic
665
703
  // `graph status` node, so the first descent misses (handler undefined) — yet
@@ -668,32 +706,82 @@ async function runCliInner(argv) {
668
706
  // quoted form behaves identically to the unquoted `shrk graph status`.
669
707
  // Genuinely unknown tokens leave `handler` undefined and fall through to the
670
708
  // existing unknown-command path unchanged.
671
- if (!handler && cleanArgv.length === 1 && /\s/.test(cleanArgv[0])) {
672
- 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
+ ]);
673
715
  if (retry.handler) {
674
716
  ({ handler, matchedPath, rest: leftover, node } = retry);
675
717
  }
676
718
  }
677
- // `--help` / `-h` immediately after a (sub)group render help for that
678
- // path. This works at any depth.
679
- if (leftover[0] === '--help' || leftover[0] === '-h') {
680
- 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 }));
681
728
  }
729
+ const trieChildren = [...node.children.keys()];
682
730
  if (handler) {
683
- // gate experimental commands. Bootstrap commands and core/extended
684
- // tiers pass through; experimental commands return the structured
685
- // not-enabled error unless `surface.enabled[]` contains them.
686
- const gateReason = await checkSurfaceGate(matchedPath, globalCwd ?? process.cwd());
687
- if (gateReason) {
688
- const err = makeSurfaceNotEnabledError(gateReason.command, { reason: gateReason.detail });
689
- 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);
690
765
  return SURFACE_NOT_ENABLED_EXIT_CODE;
691
766
  }
692
- return await handler.run(parseArgs(leftover, { globalCwd, booleanFlags: handler.booleanFlags }));
767
+ return await runWithFlagReadTracking(registry, handler, matchedPath, parsed);
693
768
  }
694
- // No handler at the deepest match. If we landed on a group node (has
695
- // 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.
696
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
+ }
697
785
  return registry.get('help').run(parseArgs([matchedPath.join(' ')], { globalCwd }));
698
786
  }
699
787
  // Genuinely unknown — fall back to free-form / did-you-mean.
@@ -707,6 +795,43 @@ async function runCliInner(argv) {
707
795
  printDidYouMean(attempted);
708
796
  return 2;
709
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
+ }
710
835
  /**
711
836
  * Heuristic for "this looks like a task, not a command".
712
837
  *
@@ -788,32 +913,44 @@ function printFreeFormTaskHint(task) {
788
913
  ` $ shrk commands\n`);
789
914
  }
790
915
  /**
791
- * Check whether the resolved command path is gated by the
792
- * surface tier model. Returns `null` if the command is callable
793
- * (core/extended), or `{ command, detail }` if it is an experimental
794
- * 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.
795
926
  *
796
927
  * Failure-soft: any error loading the inspection (fresh repo, no
797
928
  * config, etc.) lets the command through. The gate must NEVER false-
798
929
  * positive a bootstrap call — the bootstrap set in `tier.ts` plus
799
930
  * spine-derived core commands always pass through cleanly.
800
931
  */
801
- async function checkSurfaceGate(matchedPath, cwd) {
802
- const candidate = matchedPath.join(' ');
803
- if (candidate.length === 0)
932
+ async function checkSurfaceGate(handler, matchedPath, positional, cwd) {
933
+ if (matchedPath.length === 0)
804
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(' '));
805
939
  try {
806
- 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);
807
944
  const summary = buildSurfaceSummary(context);
808
- // Try the full path first; fall back to the top-level token. The
809
- // catalog uses both shapes ("doctor" and "plan review").
810
- const view = findCommandInSummary(summary, candidate) ??
811
- findCommandInSummary(summary, matchedPath[0] ?? '');
812
- if (!view)
813
- return null;
814
- 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)
815
952
  return null;
816
- return { command: view.command, detail: view.detail };
953
+ return surfaceRefusalFor(view);
817
954
  }
818
955
  catch {
819
956
  return null;
@@ -842,29 +979,6 @@ function reorderCandidates(attempted, candidates) {
842
979
  });
843
980
  return ranked;
844
981
  }
845
- /** Edit distance (Levenshtein). Used to gate did-you-mean confidence. */
846
- function editDistance(a, b) {
847
- const m = a.length;
848
- const n = b.length;
849
- if (m === 0)
850
- return n;
851
- if (n === 0)
852
- return m;
853
- const dp = new Array(n + 1);
854
- for (let j = 0; j <= n; j += 1)
855
- dp[j] = j;
856
- for (let i = 1; i <= m; i += 1) {
857
- let prev = dp[0];
858
- dp[0] = i;
859
- for (let j = 1; j <= n; j += 1) {
860
- const tmp = dp[j];
861
- const cost = a[i - 1] === b[j - 1] ? 0 : 1;
862
- dp[j] = Math.min(dp[j] + 1, dp[j - 1] + 1, prev + cost);
863
- prev = tmp;
864
- }
865
- }
866
- return dp[n];
867
- }
868
982
  /**
869
983
  * Suggestion is "confident" when the candidate's top token is close
870
984
  * to the attempt in edit-distance terms — `doctorz`→`doctor` (1 edit)
@@ -881,9 +995,9 @@ function isConfidentMatch(attempted, suggestion) {
881
995
  return false;
882
996
  const lower = attempted.toLowerCase();
883
997
  const head = (suggestion.command.split(/\s+/)[0] ?? suggestion.command).toLowerCase();
884
- const dist = editDistance(lower, head);
885
- const tolerance = Math.max(1, Math.floor(lower.length / 4));
886
- 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);
887
1001
  }
888
1002
  function printDidYouMean(attempted) {
889
1003
  const rawCandidates = suggestDidYouMean(COMMAND_CATALOG, [attempted], 5);
@@ -962,13 +1076,16 @@ async function redirectStderrToTeardownLog() {
962
1076
  // Bun exposes `import.meta.main`; Node does not. When Node runs the
963
1077
  // compiled `dist/main.js` directly the path-suffix check (`main.js`)
964
1078
  // catches it. The npm bin shim points at `shrk` so that suffix also
965
- // 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.
966
1082
  const isMain = typeof import.meta !== 'undefined' && import.meta.main === true;
967
1083
  const entryPath = process.argv[1] ?? '';
968
1084
  if (isMain ||
969
1085
  entryPath.endsWith('main.ts') ||
970
1086
  entryPath.endsWith('main.js') ||
971
1087
  entryPath.endsWith('shrk') ||
1088
+ entryPath.endsWith('shrk.ts') ||
972
1089
  entryPath.endsWith('shrk.js') ||
973
1090
  entryPath.endsWith('shrk.cmd')) {
974
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"}
@@ -41,8 +41,10 @@ export function fuzzyImpactAmbiguousHints() {
41
41
  }
42
42
  export function agentTestMissingExpectedHints() {
43
43
  return [
44
- { label: 'explain a missing id', command: 'shrk why <id> --for-task "<task>"' },
45
- { label: 'explain why not', command: 'shrk why-not <id> --for-task "<task>"' },
44
+ // `why <id> --for-task` / `why-not` are gone (`why` explains a FILE now);
45
+ // the ranking trace for a task lives on `task` and `search`.
46
+ { label: 'see how each id ranked for the task (or why it was left out)', command: 'shrk task "<task>" --explain-ranking' },
47
+ { label: 'see what the ranker matched for the query', command: 'shrk search "<task>" --explain' },
46
48
  ];
47
49
  }
48
50
  export function ciReportEmptyHints() {
@@ -87,25 +89,25 @@ export function errorFooterFor(kind, context) {
87
89
  return {
88
90
  next: `shrk recommend "${task}"`,
89
91
  why: 'Free-form input routes to the canonical human entrypoint — `shrk recommend` ranks commands for a query without writes.',
90
- more: ['shrk commands', 'shrk commands suggest "<partial>"', 'shrk start-here'],
92
+ more: ['shrk commands', 'shrk commands search "<partial>"', 'shrk start-here'],
91
93
  };
92
94
  case 'ambiguous-command':
93
95
  return {
94
- next: 'shrk commands suggest "<partial>"',
96
+ next: 'shrk commands search "<partial>"',
95
97
  why: 'Multiple commands matched the input — narrow it down or pick the canonical entrypoint.',
96
- more: ['shrk commands explain <cmd>', 'shrk commands overlaps'],
98
+ more: ['shrk help <cmd>', 'shrk commands overlaps'],
97
99
  };
98
100
  case 'apply-rejected':
99
101
  return {
100
102
  next: 'shrk plan review <plan.json>',
101
103
  why: 'The apply gate refused the plan — review the safety report before retrying.',
102
- more: ['shrk plan verify <plan.json>', 'shrk safety audit --deep'],
104
+ more: ['shrk plan simulate <plan.json>', 'shrk safety audit --deep'],
103
105
  };
104
106
  case 'signature-mismatch':
105
107
  return {
106
- next: 'shrk plan verify <plan.json>',
107
- why: 'The plan signature does not match the source content — re-sign or regenerate before retrying.',
108
- more: ['shrk plan sign <plan.json>', 'shrk gen <template> --save-plan <plan.json>'],
108
+ next: 'shrk plan review <plan.json>',
109
+ why: 'The plan signature does not match the source content — regenerate the plan (which re-signs it) before retrying.',
110
+ more: ['shrk gen <template> --save-plan <plan.json>'],
109
111
  };
110
112
  case 'contract-gate-blocked':
111
113
  return {
@@ -0,0 +1,57 @@
1
+ /**
2
+ * THE list-verb note (round 12, 12.1 — and, since the round-12 review (A-4),
3
+ * the files that failed to load).
4
+ *
5
+ * A contributed entry its loader refused used to vanish: the `list` verb
6
+ * printed the survivors and exited 0, and nothing said an entry was dropped.
7
+ * A contribution FILE that failed to import dropped every entry it declares
8
+ * just as silently — `conventions list` even pointed at that very file as the
9
+ * place to contribute. Every list verb now prints, after its list, one line
10
+ * per file:
11
+ *
12
+ * ⚠ sharkcraft/conventions.ts failed to load (boom) — nothing in it is listed → shrk conventions doctor
13
+ * ⚠ 2 entries rejected from node_modules/@r12/pack/conventions.ts: 'conv.b' (default[8]) — severity: …; 'conv.j' (default[9]) — … → shrk conventions doctor
14
+ *
15
+ * with the wording of THE formatter (`formatEntryRejection`), from THE channel
16
+ * (`collectKindOutcomes`). A list verb is not a verdict: its exit stays 0.
17
+ * Under `--json` the stdout array is untouched (a parser never breaks) and the
18
+ * note goes to stderr, one line per failed file plus one for the rejections.
19
+ */
20
+ import { type ContributionKind, type IContributionEntryRejection, type IContributionLoadFailure, type IKindOutcomes, type inspectSharkcraft } from '@shrkcrft/inspector';
21
+ type IInspection = Awaited<ReturnType<typeof inspectSharkcraft>>;
22
+ /** The note lines (text, stdout) — `''` when nothing was rejected. */
23
+ export declare function rejectedEntriesNote(rejections: readonly IContributionEntryRejection[], projectRoot: string, next?: string): string;
24
+ /** The one-line `--json` stderr form — `''` when nothing was rejected. */
25
+ export declare function rejectedEntriesStderrNote(rejections: readonly IContributionEntryRejection[], projectRoot: string, next?: string): string;
26
+ /** One line per contribution file that failed to load (text, stdout) — `''` when every file loaded. */
27
+ export declare function loadFailuresNote(failures: readonly IContributionLoadFailure[], projectRoot: string, next?: string): string;
28
+ /** The `--json` stderr form, one line per failed file — `''` when every file loaded. */
29
+ export declare function loadFailuresStderrNote(failures: readonly IContributionLoadFailure[], projectRoot: string, next?: string): string;
30
+ /**
31
+ * What `kinds`' loaders reported — refused entries and files that never
32
+ * loaded — narrowed to `--source`. `loadFailures: false` for a verb that
33
+ * already reports its own load failures (knowledge list's partial-list WARN,
34
+ * helper list's broken-file line), so no failure is said twice.
35
+ */
36
+ export declare function collectListVerbNote(inspection: IInspection, kinds: readonly ContributionKind[], options?: {
37
+ readonly source?: string;
38
+ readonly loadFailures?: boolean;
39
+ }): Promise<IKindOutcomes>;
40
+ /** Write a collected note: text after the list on stdout, or stderr lines under `--json`. */
41
+ export declare function writeListVerbNote(outcomes: IKindOutcomes, projectRoot: string, options?: {
42
+ readonly json?: boolean;
43
+ readonly next?: string;
44
+ }): void;
45
+ /**
46
+ * Collect `kinds`' outcomes (THE channel, running only the loaders those
47
+ * kinds need) and write the note: text after the list on stdout, or stderr
48
+ * lines under `--json`. Returns the rejections it reported.
49
+ */
50
+ export declare function writeRejectedEntriesNote(inspection: IInspection, kinds: readonly ContributionKind[], options?: {
51
+ readonly json?: boolean;
52
+ readonly source?: string;
53
+ readonly next?: string;
54
+ readonly loadFailures?: boolean;
55
+ }): Promise<readonly IContributionEntryRejection[]>;
56
+ export {};
57
+ //# sourceMappingURL=rejected-entries-note.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejected-entries-note.d.ts","sourceRoot":"","sources":["../../src/output/rejected-entries-note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAUjE,sEAAsE;AACtE,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,2BAA2B,EAAE,EAClD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAaR;AAED,0EAA0E;AAC1E,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,2BAA2B,EAAE,EAClD,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAIR;AAED,uGAAuG;AACvG,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAUR;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAUR;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAChE,IAAI,CAaN;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,GAAE;IACP,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAC5B,GACL,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAIjD"}