@shrkcrft/cli 0.1.0-alpha.2

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 (450) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/asset-preview/apply-action-hint-stub.d.ts +28 -0
  4. package/dist/asset-preview/apply-action-hint-stub.d.ts.map +1 -0
  5. package/dist/asset-preview/apply-action-hint-stub.js +170 -0
  6. package/dist/asset-preview/apply-asset-preview.d.ts +31 -0
  7. package/dist/asset-preview/apply-asset-preview.d.ts.map +1 -0
  8. package/dist/asset-preview/apply-asset-preview.js +210 -0
  9. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts +37 -0
  10. package/dist/asset-preview/apply-knowledge-stale-fix.d.ts.map +1 -0
  11. package/dist/asset-preview/apply-knowledge-stale-fix.js +344 -0
  12. package/dist/asset-preview/apply-missing-barrel.d.ts +15 -0
  13. package/dist/asset-preview/apply-missing-barrel.d.ts.map +1 -0
  14. package/dist/asset-preview/apply-missing-barrel.js +65 -0
  15. package/dist/asset-preview/apply-template-drift-fix.d.ts +21 -0
  16. package/dist/asset-preview/apply-template-drift-fix.d.ts.map +1 -0
  17. package/dist/asset-preview/apply-template-drift-fix.js +125 -0
  18. package/dist/asset-preview/apply-template-update.d.ts +43 -0
  19. package/dist/asset-preview/apply-template-update.d.ts.map +1 -0
  20. package/dist/asset-preview/apply-template-update.js +257 -0
  21. package/dist/asset-preview/entry-mutator.d.ts +106 -0
  22. package/dist/asset-preview/entry-mutator.d.ts.map +1 -0
  23. package/dist/asset-preview/entry-mutator.js +428 -0
  24. package/dist/authoring/authoring-kit.d.ts +36 -0
  25. package/dist/authoring/authoring-kit.d.ts.map +1 -0
  26. package/dist/authoring/authoring-kit.js +106 -0
  27. package/dist/command-registry.d.ts +158 -0
  28. package/dist/command-registry.d.ts.map +1 -0
  29. package/dist/command-registry.js +348 -0
  30. package/dist/commands/apply.command.d.ts +3 -0
  31. package/dist/commands/apply.command.d.ts.map +1 -0
  32. package/dist/commands/apply.command.js +879 -0
  33. package/dist/commands/architecture.command.d.ts +5 -0
  34. package/dist/commands/architecture.command.d.ts.map +1 -0
  35. package/dist/commands/architecture.command.js +141 -0
  36. package/dist/commands/ask.command.d.ts +3 -0
  37. package/dist/commands/ask.command.d.ts.map +1 -0
  38. package/dist/commands/ask.command.js +58 -0
  39. package/dist/commands/audit.command.d.ts +3 -0
  40. package/dist/commands/audit.command.d.ts.map +1 -0
  41. package/dist/commands/audit.command.js +141 -0
  42. package/dist/commands/biome.command.d.ts +7 -0
  43. package/dist/commands/biome.command.d.ts.map +1 -0
  44. package/dist/commands/biome.command.js +350 -0
  45. package/dist/commands/boundaries.command.d.ts +9 -0
  46. package/dist/commands/boundaries.command.d.ts.map +1 -0
  47. package/dist/commands/boundaries.command.js +314 -0
  48. package/dist/commands/brief.command.d.ts +3 -0
  49. package/dist/commands/brief.command.d.ts.map +1 -0
  50. package/dist/commands/brief.command.js +206 -0
  51. package/dist/commands/bundle.command.d.ts +3 -0
  52. package/dist/commands/bundle.command.d.ts.map +1 -0
  53. package/dist/commands/bundle.command.js +1183 -0
  54. package/dist/commands/changes.command.d.ts +3 -0
  55. package/dist/commands/changes.command.d.ts.map +1 -0
  56. package/dist/commands/changes.command.js +155 -0
  57. package/dist/commands/check.command.d.ts +3 -0
  58. package/dist/commands/check.command.d.ts.map +1 -0
  59. package/dist/commands/check.command.js +553 -0
  60. package/dist/commands/checks.command.d.ts +29 -0
  61. package/dist/commands/checks.command.d.ts.map +1 -0
  62. package/dist/commands/checks.command.js +521 -0
  63. package/dist/commands/ci.command.d.ts +3 -0
  64. package/dist/commands/ci.command.d.ts.map +1 -0
  65. package/dist/commands/ci.command.js +680 -0
  66. package/dist/commands/codemod.command.d.ts +3 -0
  67. package/dist/commands/codemod.command.d.ts.map +1 -0
  68. package/dist/commands/codemod.command.js +130 -0
  69. package/dist/commands/command-catalog.d.ts +265 -0
  70. package/dist/commands/command-catalog.d.ts.map +1 -0
  71. package/dist/commands/command-catalog.js +3242 -0
  72. package/dist/commands/commands.command.d.ts +92 -0
  73. package/dist/commands/commands.command.d.ts.map +1 -0
  74. package/dist/commands/commands.command.js +1208 -0
  75. package/dist/commands/constructs.command.d.ts +15 -0
  76. package/dist/commands/constructs.command.d.ts.map +1 -0
  77. package/dist/commands/constructs.command.js +669 -0
  78. package/dist/commands/context.command.d.ts +3 -0
  79. package/dist/commands/context.command.d.ts.map +1 -0
  80. package/dist/commands/context.command.js +120 -0
  81. package/dist/commands/contract-gate.command.d.ts +5 -0
  82. package/dist/commands/contract-gate.command.d.ts.map +1 -0
  83. package/dist/commands/contract-gate.command.js +208 -0
  84. package/dist/commands/contract-templates.command.d.ts +8 -0
  85. package/dist/commands/contract-templates.command.d.ts.map +1 -0
  86. package/dist/commands/contract-templates.command.js +151 -0
  87. package/dist/commands/contract.command.d.ts +3 -0
  88. package/dist/commands/contract.command.d.ts.map +1 -0
  89. package/dist/commands/contract.command.js +105 -0
  90. package/dist/commands/conventions.command.d.ts +8 -0
  91. package/dist/commands/conventions.command.d.ts.map +1 -0
  92. package/dist/commands/conventions.command.js +169 -0
  93. package/dist/commands/coverage.command.d.ts +3 -0
  94. package/dist/commands/coverage.command.d.ts.map +1 -0
  95. package/dist/commands/coverage.command.js +56 -0
  96. package/dist/commands/daily.commands.d.ts +5 -0
  97. package/dist/commands/daily.commands.d.ts.map +1 -0
  98. package/dist/commands/daily.commands.js +224 -0
  99. package/dist/commands/dashboard-export.command.d.ts +4 -0
  100. package/dist/commands/dashboard-export.command.d.ts.map +1 -0
  101. package/dist/commands/dashboard-export.command.js +86 -0
  102. package/dist/commands/dashboard.command.d.ts +3 -0
  103. package/dist/commands/dashboard.command.d.ts.map +1 -0
  104. package/dist/commands/dashboard.command.js +106 -0
  105. package/dist/commands/dev.command.d.ts +3 -0
  106. package/dist/commands/dev.command.d.ts.map +1 -0
  107. package/dist/commands/dev.command.js +1392 -0
  108. package/dist/commands/diagnostics.command.d.ts +5 -0
  109. package/dist/commands/diagnostics.command.d.ts.map +1 -0
  110. package/dist/commands/diagnostics.command.js +97 -0
  111. package/dist/commands/docs.command.d.ts +4 -0
  112. package/dist/commands/docs.command.d.ts.map +1 -0
  113. package/dist/commands/docs.command.js +34 -0
  114. package/dist/commands/doctor.command.d.ts +7 -0
  115. package/dist/commands/doctor.command.d.ts.map +1 -0
  116. package/dist/commands/doctor.command.js +681 -0
  117. package/dist/commands/drift.command.d.ts +3 -0
  118. package/dist/commands/drift.command.d.ts.map +1 -0
  119. package/dist/commands/drift.command.js +124 -0
  120. package/dist/commands/eslint.command.d.ts +7 -0
  121. package/dist/commands/eslint.command.d.ts.map +1 -0
  122. package/dist/commands/eslint.command.js +423 -0
  123. package/dist/commands/explore.command.d.ts +3 -0
  124. package/dist/commands/explore.command.d.ts.map +1 -0
  125. package/dist/commands/explore.command.js +65 -0
  126. package/dist/commands/export-bundle.command.d.ts +6 -0
  127. package/dist/commands/export-bundle.command.d.ts.map +1 -0
  128. package/dist/commands/export-bundle.command.js +96 -0
  129. package/dist/commands/export.command.d.ts +3 -0
  130. package/dist/commands/export.command.d.ts.map +1 -0
  131. package/dist/commands/export.command.js +83 -0
  132. package/dist/commands/feedback-dispatch.command.d.ts +12 -0
  133. package/dist/commands/feedback-dispatch.command.d.ts.map +1 -0
  134. package/dist/commands/feedback-dispatch.command.js +63 -0
  135. package/dist/commands/feedback.command.d.ts +11 -0
  136. package/dist/commands/feedback.command.d.ts.map +1 -0
  137. package/dist/commands/feedback.command.js +336 -0
  138. package/dist/commands/fix.command.d.ts +3 -0
  139. package/dist/commands/fix.command.d.ts.map +1 -0
  140. package/dist/commands/fix.command.js +776 -0
  141. package/dist/commands/gen.command.d.ts +3 -0
  142. package/dist/commands/gen.command.d.ts.map +1 -0
  143. package/dist/commands/gen.command.js +136 -0
  144. package/dist/commands/git.command.d.ts +6 -0
  145. package/dist/commands/git.command.d.ts.map +1 -0
  146. package/dist/commands/git.command.js +81 -0
  147. package/dist/commands/graph.command.d.ts +3 -0
  148. package/dist/commands/graph.command.d.ts.map +1 -0
  149. package/dist/commands/graph.command.js +287 -0
  150. package/dist/commands/grounding.command.d.ts +7 -0
  151. package/dist/commands/grounding.command.d.ts.map +1 -0
  152. package/dist/commands/grounding.command.js +54 -0
  153. package/dist/commands/help.command.d.ts +20 -0
  154. package/dist/commands/help.command.d.ts.map +1 -0
  155. package/dist/commands/help.command.js +127 -0
  156. package/dist/commands/helper.command.d.ts +6 -0
  157. package/dist/commands/helper.command.d.ts.map +1 -0
  158. package/dist/commands/helper.command.js +170 -0
  159. package/dist/commands/ide.command.d.ts +6 -0
  160. package/dist/commands/ide.command.d.ts.map +1 -0
  161. package/dist/commands/ide.command.js +340 -0
  162. package/dist/commands/impact.command.d.ts +3 -0
  163. package/dist/commands/impact.command.d.ts.map +1 -0
  164. package/dist/commands/impact.command.js +819 -0
  165. package/dist/commands/import.command.d.ts +3 -0
  166. package/dist/commands/import.command.d.ts.map +1 -0
  167. package/dist/commands/import.command.js +115 -0
  168. package/dist/commands/infer.command.d.ts +3 -0
  169. package/dist/commands/infer.command.d.ts.map +1 -0
  170. package/dist/commands/infer.command.js +227 -0
  171. package/dist/commands/ingest.command.d.ts +6 -0
  172. package/dist/commands/ingest.command.d.ts.map +1 -0
  173. package/dist/commands/ingest.command.js +532 -0
  174. package/dist/commands/init.command.d.ts +3 -0
  175. package/dist/commands/init.command.d.ts.map +1 -0
  176. package/dist/commands/init.command.js +301 -0
  177. package/dist/commands/inspect.command.d.ts +3 -0
  178. package/dist/commands/inspect.command.d.ts.map +1 -0
  179. package/dist/commands/inspect.command.js +122 -0
  180. package/dist/commands/knowledge-author.command.d.ts +22 -0
  181. package/dist/commands/knowledge-author.command.d.ts.map +1 -0
  182. package/dist/commands/knowledge-author.command.js +366 -0
  183. package/dist/commands/knowledge-propose.command.d.ts +3 -0
  184. package/dist/commands/knowledge-propose.command.d.ts.map +1 -0
  185. package/dist/commands/knowledge-propose.command.js +125 -0
  186. package/dist/commands/knowledge.command.d.ts +18 -0
  187. package/dist/commands/knowledge.command.d.ts.map +1 -0
  188. package/dist/commands/knowledge.command.js +538 -0
  189. package/dist/commands/languages.command.d.ts +3 -0
  190. package/dist/commands/languages.command.d.ts.map +1 -0
  191. package/dist/commands/languages.command.js +300 -0
  192. package/dist/commands/lint.command.d.ts +15 -0
  193. package/dist/commands/lint.command.d.ts.map +1 -0
  194. package/dist/commands/lint.command.js +194 -0
  195. package/dist/commands/mcp.command.d.ts +3 -0
  196. package/dist/commands/mcp.command.d.ts.map +1 -0
  197. package/dist/commands/mcp.command.js +74 -0
  198. package/dist/commands/memory.command.d.ts +11 -0
  199. package/dist/commands/memory.command.d.ts.map +1 -0
  200. package/dist/commands/memory.command.js +264 -0
  201. package/dist/commands/onboard.command.d.ts +3 -0
  202. package/dist/commands/onboard.command.d.ts.map +1 -0
  203. package/dist/commands/onboard.command.js +650 -0
  204. package/dist/commands/orchestrate.command.d.ts +3 -0
  205. package/dist/commands/orchestrate.command.d.ts.map +1 -0
  206. package/dist/commands/orchestrate.command.js +49 -0
  207. package/dist/commands/owners.command.d.ts +5 -0
  208. package/dist/commands/owners.command.d.ts.map +1 -0
  209. package/dist/commands/owners.command.js +113 -0
  210. package/dist/commands/ownership.command.d.ts +5 -0
  211. package/dist/commands/ownership.command.d.ts.map +1 -0
  212. package/dist/commands/ownership.command.js +117 -0
  213. package/dist/commands/pack-author.command.d.ts +30 -0
  214. package/dist/commands/pack-author.command.d.ts.map +1 -0
  215. package/dist/commands/pack-author.command.js +242 -0
  216. package/dist/commands/packs-new.d.ts +27 -0
  217. package/dist/commands/packs-new.d.ts.map +1 -0
  218. package/dist/commands/packs-new.js +805 -0
  219. package/dist/commands/packs.command.d.ts +15 -0
  220. package/dist/commands/packs.command.d.ts.map +1 -0
  221. package/dist/commands/packs.command.js +958 -0
  222. package/dist/commands/paths.command.d.ts +6 -0
  223. package/dist/commands/paths.command.d.ts.map +1 -0
  224. package/dist/commands/paths.command.js +97 -0
  225. package/dist/commands/pipelines.command.d.ts +9 -0
  226. package/dist/commands/pipelines.command.d.ts.map +1 -0
  227. package/dist/commands/pipelines.command.js +308 -0
  228. package/dist/commands/plan-check.command.d.ts +27 -0
  229. package/dist/commands/plan-check.command.d.ts.map +1 -0
  230. package/dist/commands/plan-check.command.js +150 -0
  231. package/dist/commands/plan-simulate.command.d.ts +3 -0
  232. package/dist/commands/plan-simulate.command.d.ts.map +1 -0
  233. package/dist/commands/plan-simulate.command.js +60 -0
  234. package/dist/commands/plan.command.d.ts +8 -0
  235. package/dist/commands/plan.command.d.ts.map +1 -0
  236. package/dist/commands/plan.command.js +139 -0
  237. package/dist/commands/playbooks.command.d.ts +10 -0
  238. package/dist/commands/playbooks.command.d.ts.map +1 -0
  239. package/dist/commands/playbooks.command.js +296 -0
  240. package/dist/commands/plugin.command.d.ts +11 -0
  241. package/dist/commands/plugin.command.d.ts.map +1 -0
  242. package/dist/commands/plugin.command.js +394 -0
  243. package/dist/commands/policy.command.d.ts +8 -0
  244. package/dist/commands/policy.command.d.ts.map +1 -0
  245. package/dist/commands/policy.command.js +451 -0
  246. package/dist/commands/pr.command.d.ts +3 -0
  247. package/dist/commands/pr.command.d.ts.map +1 -0
  248. package/dist/commands/pr.command.js +132 -0
  249. package/dist/commands/preflight.command.d.ts +3 -0
  250. package/dist/commands/preflight.command.d.ts.map +1 -0
  251. package/dist/commands/preflight.command.js +102 -0
  252. package/dist/commands/presets.command.d.ts +17 -0
  253. package/dist/commands/presets.command.d.ts.map +1 -0
  254. package/dist/commands/presets.command.js +647 -0
  255. package/dist/commands/profiles.command.d.ts +7 -0
  256. package/dist/commands/profiles.command.d.ts.map +1 -0
  257. package/dist/commands/profiles.command.js +151 -0
  258. package/dist/commands/provenance.command.d.ts +26 -0
  259. package/dist/commands/provenance.command.d.ts.map +1 -0
  260. package/dist/commands/provenance.command.js +237 -0
  261. package/dist/commands/quality.command.d.ts +5 -0
  262. package/dist/commands/quality.command.d.ts.map +1 -0
  263. package/dist/commands/quality.command.js +69 -0
  264. package/dist/commands/recommend.command.d.ts +4 -0
  265. package/dist/commands/recommend.command.d.ts.map +1 -0
  266. package/dist/commands/recommend.command.js +270 -0
  267. package/dist/commands/registrations.command.d.ts +3 -0
  268. package/dist/commands/registrations.command.d.ts.map +1 -0
  269. package/dist/commands/registrations.command.js +300 -0
  270. package/dist/commands/registry.command.d.ts +4 -0
  271. package/dist/commands/registry.command.d.ts.map +1 -0
  272. package/dist/commands/registry.command.js +37 -0
  273. package/dist/commands/release.command.d.ts +4 -0
  274. package/dist/commands/release.command.d.ts.map +1 -0
  275. package/dist/commands/release.command.js +639 -0
  276. package/dist/commands/repo.command.d.ts +3 -0
  277. package/dist/commands/repo.command.d.ts.map +1 -0
  278. package/dist/commands/repo.command.js +24 -0
  279. package/dist/commands/report.command.d.ts +3 -0
  280. package/dist/commands/report.command.d.ts.map +1 -0
  281. package/dist/commands/report.command.js +511 -0
  282. package/dist/commands/reposet.command.d.ts +6 -0
  283. package/dist/commands/reposet.command.d.ts.map +1 -0
  284. package/dist/commands/reposet.command.js +120 -0
  285. package/dist/commands/review.command.d.ts +3 -0
  286. package/dist/commands/review.command.d.ts.map +1 -0
  287. package/dist/commands/review.command.js +354 -0
  288. package/dist/commands/risk.command.d.ts +3 -0
  289. package/dist/commands/risk.command.d.ts.map +1 -0
  290. package/dist/commands/risk.command.js +56 -0
  291. package/dist/commands/rounds.command.d.ts +8 -0
  292. package/dist/commands/rounds.command.d.ts.map +1 -0
  293. package/dist/commands/rounds.command.js +180 -0
  294. package/dist/commands/rules.command.d.ts +49 -0
  295. package/dist/commands/rules.command.d.ts.map +1 -0
  296. package/dist/commands/rules.command.js +435 -0
  297. package/dist/commands/runtime.command.d.ts +3 -0
  298. package/dist/commands/runtime.command.d.ts.map +1 -0
  299. package/dist/commands/runtime.command.js +56 -0
  300. package/dist/commands/safety.command.d.ts +3 -0
  301. package/dist/commands/safety.command.d.ts.map +1 -0
  302. package/dist/commands/safety.command.js +117 -0
  303. package/dist/commands/scaffolds.command.d.ts +5 -0
  304. package/dist/commands/scaffolds.command.d.ts.map +1 -0
  305. package/dist/commands/scaffolds.command.js +122 -0
  306. package/dist/commands/schemas.command.d.ts +21 -0
  307. package/dist/commands/schemas.command.d.ts.map +1 -0
  308. package/dist/commands/schemas.command.js +296 -0
  309. package/dist/commands/search.command.d.ts +12 -0
  310. package/dist/commands/search.command.d.ts.map +1 -0
  311. package/dist/commands/search.command.js +275 -0
  312. package/dist/commands/self-config.command.d.ts +7 -0
  313. package/dist/commands/self-config.command.d.ts.map +1 -0
  314. package/dist/commands/self-config.command.js +156 -0
  315. package/dist/commands/self.command.d.ts +3 -0
  316. package/dist/commands/self.command.d.ts.map +1 -0
  317. package/dist/commands/self.command.js +117 -0
  318. package/dist/commands/simulate.command.d.ts +3 -0
  319. package/dist/commands/simulate.command.d.ts.map +1 -0
  320. package/dist/commands/simulate.command.js +54 -0
  321. package/dist/commands/spec.command.d.ts +29 -0
  322. package/dist/commands/spec.command.d.ts.map +1 -0
  323. package/dist/commands/spec.command.js +985 -0
  324. package/dist/commands/start-here.command.d.ts +3 -0
  325. package/dist/commands/start-here.command.d.ts.map +1 -0
  326. package/dist/commands/start-here.command.js +35 -0
  327. package/dist/commands/stats.command.d.ts +3 -0
  328. package/dist/commands/stats.command.d.ts.map +1 -0
  329. package/dist/commands/stats.command.js +88 -0
  330. package/dist/commands/surface.command.d.ts +15 -0
  331. package/dist/commands/surface.command.d.ts.map +1 -0
  332. package/dist/commands/surface.command.js +328 -0
  333. package/dist/commands/task-context.command.d.ts +7 -0
  334. package/dist/commands/task-context.command.d.ts.map +1 -0
  335. package/dist/commands/task-context.command.js +646 -0
  336. package/dist/commands/task.command.d.ts +3 -0
  337. package/dist/commands/task.command.d.ts.map +1 -0
  338. package/dist/commands/task.command.js +301 -0
  339. package/dist/commands/template-quality.command.d.ts +5 -0
  340. package/dist/commands/template-quality.command.d.ts.map +1 -0
  341. package/dist/commands/template-quality.command.js +128 -0
  342. package/dist/commands/templates.command.d.ts +26 -0
  343. package/dist/commands/templates.command.d.ts.map +1 -0
  344. package/dist/commands/templates.command.js +964 -0
  345. package/dist/commands/test.command.d.ts +3 -0
  346. package/dist/commands/test.command.d.ts.map +1 -0
  347. package/dist/commands/test.command.js +262 -0
  348. package/dist/commands/tests.command.d.ts +5 -0
  349. package/dist/commands/tests.command.d.ts.map +1 -0
  350. package/dist/commands/tests.command.js +97 -0
  351. package/dist/commands/trace.command.d.ts +3 -0
  352. package/dist/commands/trace.command.d.ts.map +1 -0
  353. package/dist/commands/trace.command.js +121 -0
  354. package/dist/commands/upgrade.command.d.ts +4 -0
  355. package/dist/commands/upgrade.command.d.ts.map +1 -0
  356. package/dist/commands/upgrade.command.js +43 -0
  357. package/dist/commands/version.command.d.ts +3 -0
  358. package/dist/commands/version.command.d.ts.map +1 -0
  359. package/dist/commands/version.command.js +10 -0
  360. package/dist/commands/why.command.d.ts +24 -0
  361. package/dist/commands/why.command.d.ts.map +1 -0
  362. package/dist/commands/why.command.js +119 -0
  363. package/dist/dashboard/dashboard-api-server.d.ts +21 -0
  364. package/dist/dashboard/dashboard-api-server.d.ts.map +1 -0
  365. package/dist/dashboard/dashboard-api-server.js +410 -0
  366. package/dist/dashboard/live-session-server.d.ts +18 -0
  367. package/dist/dashboard/live-session-server.d.ts.map +1 -0
  368. package/dist/dashboard/live-session-server.js +133 -0
  369. package/dist/diff/collect-changed-paths.d.ts +27 -0
  370. package/dist/diff/collect-changed-paths.d.ts.map +1 -0
  371. package/dist/diff/collect-changed-paths.js +68 -0
  372. package/dist/doctor/doctor-tags.d.ts +63 -0
  373. package/dist/doctor/doctor-tags.d.ts.map +1 -0
  374. package/dist/doctor/doctor-tags.js +146 -0
  375. package/dist/export/export-formats.d.ts +22 -0
  376. package/dist/export/export-formats.d.ts.map +1 -0
  377. package/dist/export/export-formats.js +135 -0
  378. package/dist/index.d.ts +22 -0
  379. package/dist/index.d.ts.map +1 -0
  380. package/dist/index.js +21 -0
  381. package/dist/init/detected-block.d.ts +57 -0
  382. package/dist/init/detected-block.d.ts.map +1 -0
  383. package/dist/init/detected-block.js +197 -0
  384. package/dist/init/gitignore.d.ts +30 -0
  385. package/dist/init/gitignore.d.ts.map +1 -0
  386. package/dist/init/gitignore.js +110 -0
  387. package/dist/init/init-templates.d.ts +6 -0
  388. package/dist/init/init-templates.d.ts.map +1 -0
  389. package/dist/init/init-templates.js +413 -0
  390. package/dist/main.d.ts +18 -0
  391. package/dist/main.d.ts.map +1 -0
  392. package/dist/main.js +699 -0
  393. package/dist/output/failure-hints.d.ts +55 -0
  394. package/dist/output/failure-hints.d.ts.map +1 -0
  395. package/dist/output/failure-hints.js +159 -0
  396. package/dist/output/format-output.d.ts +9 -0
  397. package/dist/output/format-output.d.ts.map +1 -0
  398. package/dist/output/format-output.js +26 -0
  399. package/dist/output/print-error.d.ts +3 -0
  400. package/dist/output/print-error.d.ts.map +1 -0
  401. package/dist/output/print-error.js +14 -0
  402. package/dist/output/watch-loop.d.ts +37 -0
  403. package/dist/output/watch-loop.d.ts.map +1 -0
  404. package/dist/output/watch-loop.js +115 -0
  405. package/dist/schemas/json-schemas.d.ts +1630 -0
  406. package/dist/schemas/json-schemas.d.ts.map +1 -0
  407. package/dist/schemas/json-schemas.js +811 -0
  408. package/dist/surface/about.d.ts +10 -0
  409. package/dist/surface/about.d.ts.map +1 -0
  410. package/dist/surface/about.js +53 -0
  411. package/dist/surface/load-surface-context.d.ts +34 -0
  412. package/dist/surface/load-surface-context.d.ts.map +1 -0
  413. package/dist/surface/load-surface-context.js +100 -0
  414. package/dist/surface/no-args-landing.d.ts +7 -0
  415. package/dist/surface/no-args-landing.d.ts.map +1 -0
  416. package/dist/surface/no-args-landing.js +36 -0
  417. package/dist/surface/not-enabled-error.d.ts +24 -0
  418. package/dist/surface/not-enabled-error.d.ts.map +1 -0
  419. package/dist/surface/not-enabled-error.js +36 -0
  420. package/dist/surface/profiles.d.ts +37 -0
  421. package/dist/surface/profiles.d.ts.map +1 -0
  422. package/dist/surface/profiles.js +151 -0
  423. package/dist/surface/shape-defaults.d.ts +21 -0
  424. package/dist/surface/shape-defaults.d.ts.map +1 -0
  425. package/dist/surface/shape-defaults.js +50 -0
  426. package/dist/surface/spine-extractor.d.ts +38 -0
  427. package/dist/surface/spine-extractor.d.ts.map +1 -0
  428. package/dist/surface/spine-extractor.js +100 -0
  429. package/dist/surface/surface-config-writer.d.ts +59 -0
  430. package/dist/surface/surface-config-writer.d.ts.map +1 -0
  431. package/dist/surface/surface-config-writer.js +135 -0
  432. package/dist/surface/surface-summary.d.ts +66 -0
  433. package/dist/surface/surface-summary.d.ts.map +1 -0
  434. package/dist/surface/surface-summary.js +162 -0
  435. package/dist/surface/tier.d.ts +100 -0
  436. package/dist/surface/tier.d.ts.map +1 -0
  437. package/dist/surface/tier.js +172 -0
  438. package/dist/task-next/apply-batch-runner.d.ts +42 -0
  439. package/dist/task-next/apply-batch-runner.d.ts.map +1 -0
  440. package/dist/task-next/apply-batch-runner.js +192 -0
  441. package/dist/task-next/task-next-ranker.d.ts +75 -0
  442. package/dist/task-next/task-next-ranker.d.ts.map +1 -0
  443. package/dist/task-next/task-next-ranker.js +179 -0
  444. package/dist/usage/usage-log.d.ts +54 -0
  445. package/dist/usage/usage-log.d.ts.map +1 -0
  446. package/dist/usage/usage-log.js +105 -0
  447. package/dist/validation/run-validation-loop.d.ts +38 -0
  448. package/dist/validation/run-validation-loop.d.ts.map +1 -0
  449. package/dist/validation/run-validation-loop.js +100 -0
  450. package/package.json +73 -0
@@ -0,0 +1,158 @@
1
+ export interface ParsedArgs {
2
+ positional: string[];
3
+ flags: Map<string, string | boolean>;
4
+ /** Captures every occurrence (including repeats) for flags like --var. */
5
+ multiFlags: Map<string, string[]>;
6
+ /** Resolved global cwd (absolute), if --cwd was passed at the top level. */
7
+ globalCwd?: string;
8
+ }
9
+ export interface ICommandHandler {
10
+ name: string;
11
+ description: string;
12
+ usage: string;
13
+ run(args: ParsedArgs): Promise<number> | number;
14
+ }
15
+ /**
16
+ * Trie node backing the registry. A node can carry a handler (the verb
17
+ * at this path is callable) and/or children (further verbs nested below).
18
+ * Aliases live at the node — `pack.aliases.set('author2', 'author')` makes
19
+ * `shrk pack author2 status` resolve via `pack/author/status`.
20
+ */
21
+ interface ICommandTrieNode {
22
+ handler?: ICommandHandler;
23
+ readonly children: Map<string, ICommandTrieNode>;
24
+ readonly aliases: Map<string, string>;
25
+ }
26
+ /** Result of a greedy descent through the trie. */
27
+ export interface ICommandResolution {
28
+ /** Handler at the deepest matched path (may be undefined if it's a pure group). */
29
+ handler?: ICommandHandler;
30
+ /** The canonical segments that matched (aliases already resolved). */
31
+ matchedPath: string[];
32
+ /** Tokens left over after the descent stopped (passed to the handler). */
33
+ rest: string[];
34
+ /** The trie node where the descent stopped — useful for help/suggestions. */
35
+ node: ICommandTrieNode;
36
+ }
37
+ /**
38
+ * Trie-backed command registry. Supports N-level dispatch
39
+ * (`shrk pack author status`) while keeping the historical 1- and 2-level
40
+ * API working as degenerate cases.
41
+ *
42
+ * Aliases:
43
+ * - `aliasCommand(a, c)` — top-level alias (`shrk a` → `shrk c`).
44
+ * - `aliasGroup(a, c)` — top-level group alias (`shrk a list` → `shrk c list`).
45
+ * - `aliasAt(path, alias, canonical)` — alias at arbitrary depth.
46
+ */
47
+ export declare class CommandRegistry {
48
+ private readonly root;
49
+ /** Mirrors of the trie root for the legacy listGroupAliases/listCommandAliases API. */
50
+ private readonly groupAliases;
51
+ private readonly commandAliases;
52
+ /** Register a top-level command (`shrk <name>`). */
53
+ register(command: ICommandHandler): void;
54
+ /** Register a 2-level command (`shrk <group> <name>`). */
55
+ registerSubcommand(group: string, command: ICommandHandler): void;
56
+ /**
57
+ * Register a command at an arbitrary depth (`shrk a b c <name>`).
58
+ * Path is the full sequence of segments; the LAST segment is the verb
59
+ * (the command name).
60
+ */
61
+ registerAt(path: readonly string[], command: ICommandHandler): void;
62
+ /** Legacy: top-level group alias. */
63
+ aliasGroup(alias: string, canonical: string): void;
64
+ /** Legacy: top-level command alias. */
65
+ aliasCommand(alias: string, canonical: string): void;
66
+ /** Alias at arbitrary depth. Path is the parent of the alias. */
67
+ aliasAt(parentPath: readonly string[], alias: string, canonical: string): void;
68
+ /** Top-level command lookup. */
69
+ get(name: string): ICommandHandler | undefined;
70
+ /** 2-level command lookup. */
71
+ getSub(group: string, name: string): ICommandHandler | undefined;
72
+ /** Handler at an arbitrary path (exact match, no descent). */
73
+ getAt(path: readonly string[]): ICommandHandler | undefined;
74
+ resolveGroup(group: string): string;
75
+ listGroups(): readonly string[];
76
+ listGroup(group: string): readonly ICommandHandler[];
77
+ /** Immediate subgroup names of a group (nodes with their own children). */
78
+ listSubgroups(path: readonly string[]): readonly string[];
79
+ listGroupAliases(): ReadonlyMap<string, string>;
80
+ listCommandAliases(): ReadonlyMap<string, string>;
81
+ /** Top-level commands (handlers at depth 1). */
82
+ list(): readonly ICommandHandler[];
83
+ /** Every handler in the trie with its full path. */
84
+ listAll(): ReadonlyArray<{
85
+ readonly path: readonly string[];
86
+ readonly handler: ICommandHandler;
87
+ }>;
88
+ /**
89
+ * Greedy dispatch resolution. Descends as deep as possible through
90
+ * the trie. Stops when:
91
+ * 1. The next token is a flag (`--foo` / `-f`).
92
+ * 2. The current node has no matching child for the next token.
93
+ *
94
+ * Returns the deepest node's handler, the canonical path that matched,
95
+ * and the remaining tokens (passed to the handler).
96
+ */
97
+ resolve(tokens: readonly string[]): ICommandResolution;
98
+ private descend;
99
+ private collectAll;
100
+ }
101
+ export interface ParseArgsOptions {
102
+ /** Global cwd resolved during pre-parse, propagated to the command. */
103
+ globalCwd?: string;
104
+ }
105
+ export declare function parseArgs(argv: readonly string[], options?: ParseArgsOptions): ParsedArgs;
106
+ /**
107
+ * Extracts `--cwd <value>` / `--cwd=<value>` from anywhere in argv. Used as a
108
+ * pre-pass before command dispatch so a user can write `shrk --cwd ./repo doctor`.
109
+ */
110
+ export declare function extractGlobalCwd(argv: readonly string[]): {
111
+ cwd?: string;
112
+ rest: string[];
113
+ };
114
+ /**
115
+ * Returns the absolute cwd for the current command:
116
+ * 1. Command-level --cwd flag (if passed after the command)
117
+ * 2. Global --cwd (extracted at the top level)
118
+ * 3. process.cwd()
119
+ */
120
+ export declare function resolveCwd(args: ParsedArgs): string;
121
+ export declare function flagString(args: ParsedArgs, name: string): string | undefined;
122
+ export declare function flagBool(args: ParsedArgs, name: string): boolean;
123
+ export declare function flagNumber(args: ParsedArgs, name: string): number | undefined;
124
+ /**
125
+ * Canonical multi-value flag parser.
126
+ *
127
+ * Accepts every form the CLI has historically used:
128
+ *
129
+ * --tag a --tag b → ['a','b']
130
+ * --tag a,b → ['a','b']
131
+ * --tag "a, b, c" → ['a','b','c']
132
+ * --tag=a --tag=b → ['a','b']
133
+ * (mixed) → flattened, trimmed, empties dropped.
134
+ *
135
+ * Replaces the older `flagStringList` (comma-only) and the one-off
136
+ * `multiValues()` helpers that accreted across commands.
137
+ */
138
+ export interface IFlagListOptions {
139
+ /** Remove duplicates while preserving first occurrence. Default false. */
140
+ dedupe?: boolean;
141
+ /** Allowlist — values outside this set are filtered out silently. */
142
+ allow?: readonly string[];
143
+ /**
144
+ * Controls comma splitting:
145
+ *
146
+ * - `'always'` (default) — every occurrence is comma-split.
147
+ * - `'never'` — keep each occurrence verbatim (use when a single value
148
+ * may legitimately contain commas, e.g. structured refs).
149
+ * - `'auto'` — comma-split when the flag was passed once; keep
150
+ * occurrences verbatim when passed multiple times. Useful for
151
+ * `--reference "kind:value"` shapes.
152
+ */
153
+ split?: 'always' | 'never' | 'auto';
154
+ }
155
+ export declare function flagList(args: ParsedArgs, name: string, options?: IFlagListOptions): string[];
156
+ export declare function flagVars(args: ParsedArgs): Record<string, string>;
157
+ export {};
158
+ //# sourceMappingURL=command-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../src/command-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,348 @@
1
+ import * as nodePath from 'node:path';
2
+ function makeTrieNode() {
3
+ return { children: new Map(), aliases: new Map() };
4
+ }
5
+ /**
6
+ * Trie-backed command registry. Supports N-level dispatch
7
+ * (`shrk pack author status`) while keeping the historical 1- and 2-level
8
+ * API working as degenerate cases.
9
+ *
10
+ * Aliases:
11
+ * - `aliasCommand(a, c)` — top-level alias (`shrk a` → `shrk c`).
12
+ * - `aliasGroup(a, c)` — top-level group alias (`shrk a list` → `shrk c list`).
13
+ * - `aliasAt(path, alias, canonical)` — alias at arbitrary depth.
14
+ */
15
+ export class CommandRegistry {
16
+ root = makeTrieNode();
17
+ /** Mirrors of the trie root for the legacy listGroupAliases/listCommandAliases API. */
18
+ groupAliases = new Map();
19
+ commandAliases = new Map();
20
+ /** Register a top-level command (`shrk <name>`). */
21
+ register(command) {
22
+ this.registerAt([command.name], command);
23
+ }
24
+ /** Register a 2-level command (`shrk <group> <name>`). */
25
+ registerSubcommand(group, command) {
26
+ this.registerAt([group, command.name], command);
27
+ }
28
+ /**
29
+ * Register a command at an arbitrary depth (`shrk a b c <name>`).
30
+ * Path is the full sequence of segments; the LAST segment is the verb
31
+ * (the command name).
32
+ */
33
+ registerAt(path, command) {
34
+ if (path.length === 0) {
35
+ throw new Error('registerAt: path must have at least one segment');
36
+ }
37
+ let node = this.root;
38
+ for (const seg of path) {
39
+ let child = node.children.get(seg);
40
+ if (!child) {
41
+ child = makeTrieNode();
42
+ node.children.set(seg, child);
43
+ }
44
+ node = child;
45
+ }
46
+ node.handler = command;
47
+ }
48
+ /** Legacy: top-level group alias. */
49
+ aliasGroup(alias, canonical) {
50
+ this.groupAliases.set(alias, canonical);
51
+ this.root.aliases.set(alias, canonical);
52
+ }
53
+ /** Legacy: top-level command alias. */
54
+ aliasCommand(alias, canonical) {
55
+ this.commandAliases.set(alias, canonical);
56
+ this.root.aliases.set(alias, canonical);
57
+ }
58
+ /** Alias at arbitrary depth. Path is the parent of the alias. */
59
+ aliasAt(parentPath, alias, canonical) {
60
+ let node = this.root;
61
+ for (const seg of parentPath) {
62
+ let child = node.children.get(seg);
63
+ if (!child) {
64
+ child = makeTrieNode();
65
+ node.children.set(seg, child);
66
+ }
67
+ node = child;
68
+ }
69
+ node.aliases.set(alias, canonical);
70
+ }
71
+ /** Top-level command lookup. */
72
+ get(name) {
73
+ const canonical = this.root.aliases.get(name) ?? name;
74
+ return this.root.children.get(canonical)?.handler;
75
+ }
76
+ /** 2-level command lookup. */
77
+ getSub(group, name) {
78
+ const node = this.descend([group]);
79
+ if (!node)
80
+ return undefined;
81
+ const canonical = node.aliases.get(name) ?? name;
82
+ return node.children.get(canonical)?.handler;
83
+ }
84
+ /** Handler at an arbitrary path (exact match, no descent). */
85
+ getAt(path) {
86
+ const node = this.descend(path);
87
+ return node?.handler;
88
+ }
89
+ resolveGroup(group) {
90
+ return this.root.aliases.get(group) ?? group;
91
+ }
92
+ listGroups() {
93
+ // Canonical groups at depth 1 (children with their own children) plus
94
+ // every top-level alias. Mirrors the historical behaviour.
95
+ const out = [];
96
+ for (const [name, node] of this.root.children) {
97
+ if (node.children.size > 0)
98
+ out.push(name);
99
+ }
100
+ for (const alias of this.root.aliases.keys())
101
+ out.push(alias);
102
+ return out;
103
+ }
104
+ listGroup(group) {
105
+ const canonical = this.root.aliases.get(group) ?? group;
106
+ const node = this.root.children.get(canonical);
107
+ if (!node)
108
+ return [];
109
+ // Immediate verbs only (matches the legacy 2-level semantics). Use
110
+ // `listSubgroups(group)` to discover nested groups.
111
+ return [...node.children.values()]
112
+ .map((c) => c.handler)
113
+ .filter((h) => h !== undefined);
114
+ }
115
+ /** Immediate subgroup names of a group (nodes with their own children). */
116
+ listSubgroups(path) {
117
+ const node = this.descend(path);
118
+ if (!node)
119
+ return [];
120
+ const out = [];
121
+ for (const [name, child] of node.children) {
122
+ if (child.children.size > 0)
123
+ out.push(name);
124
+ }
125
+ return out;
126
+ }
127
+ listGroupAliases() {
128
+ return this.groupAliases;
129
+ }
130
+ listCommandAliases() {
131
+ return this.commandAliases;
132
+ }
133
+ /** Top-level commands (handlers at depth 1). */
134
+ list() {
135
+ const out = [];
136
+ for (const child of this.root.children.values()) {
137
+ if (child.handler)
138
+ out.push(child.handler);
139
+ }
140
+ return out;
141
+ }
142
+ /** Every handler in the trie with its full path. */
143
+ listAll() {
144
+ const out = [];
145
+ this.collectAll(this.root, [], out);
146
+ return out;
147
+ }
148
+ /**
149
+ * Greedy dispatch resolution. Descends as deep as possible through
150
+ * the trie. Stops when:
151
+ * 1. The next token is a flag (`--foo` / `-f`).
152
+ * 2. The current node has no matching child for the next token.
153
+ *
154
+ * Returns the deepest node's handler, the canonical path that matched,
155
+ * and the remaining tokens (passed to the handler).
156
+ */
157
+ resolve(tokens) {
158
+ let node = this.root;
159
+ const matched = [];
160
+ let i = 0;
161
+ while (i < tokens.length) {
162
+ const t = tokens[i];
163
+ if (t.startsWith('-'))
164
+ break;
165
+ const canonical = node.aliases.get(t) ?? t;
166
+ const child = node.children.get(canonical);
167
+ if (!child)
168
+ break;
169
+ node = child;
170
+ matched.push(canonical);
171
+ i += 1;
172
+ }
173
+ return {
174
+ handler: node.handler,
175
+ matchedPath: matched,
176
+ rest: tokens.slice(i),
177
+ node,
178
+ };
179
+ }
180
+ descend(path) {
181
+ let node = this.root;
182
+ for (const seg of path) {
183
+ if (!node)
184
+ return undefined;
185
+ const canonical = node.aliases.get(seg) ?? seg;
186
+ node = node.children.get(canonical);
187
+ }
188
+ return node;
189
+ }
190
+ collectAll(node, prefix, out) {
191
+ for (const [name, child] of node.children) {
192
+ const path = [...prefix, name];
193
+ if (child.handler)
194
+ out.push({ path, handler: child.handler });
195
+ this.collectAll(child, path, out);
196
+ }
197
+ }
198
+ }
199
+ function addMultiFlag(map, key, value) {
200
+ const arr = map.get(key) ?? [];
201
+ arr.push(value);
202
+ map.set(key, arr);
203
+ }
204
+ export function parseArgs(argv, options = {}) {
205
+ const positional = [];
206
+ const flags = new Map();
207
+ const multiFlags = new Map();
208
+ for (let i = 0; i < argv.length; i += 1) {
209
+ const arg = argv[i];
210
+ if (arg === '--') {
211
+ positional.push(...argv.slice(i + 1));
212
+ break;
213
+ }
214
+ if (arg.startsWith('--')) {
215
+ const eq = arg.indexOf('=');
216
+ let key;
217
+ let value;
218
+ if (eq !== -1) {
219
+ key = arg.slice(2, eq);
220
+ value = arg.slice(eq + 1);
221
+ }
222
+ else {
223
+ key = arg.slice(2);
224
+ const next = argv[i + 1];
225
+ if (next !== undefined && !next.startsWith('-')) {
226
+ value = next;
227
+ i += 1;
228
+ }
229
+ else {
230
+ value = true;
231
+ }
232
+ }
233
+ flags.set(key, value);
234
+ if (typeof value === 'string')
235
+ addMultiFlag(multiFlags, key, value);
236
+ }
237
+ else if (arg.startsWith('-')) {
238
+ const key = arg.slice(1);
239
+ flags.set(key, true);
240
+ }
241
+ else {
242
+ positional.push(arg);
243
+ }
244
+ }
245
+ const out = { positional, flags, multiFlags };
246
+ if (options.globalCwd)
247
+ out.globalCwd = options.globalCwd;
248
+ return out;
249
+ }
250
+ /**
251
+ * Extracts `--cwd <value>` / `--cwd=<value>` from anywhere in argv. Used as a
252
+ * pre-pass before command dispatch so a user can write `shrk --cwd ./repo doctor`.
253
+ */
254
+ export function extractGlobalCwd(argv) {
255
+ const rest = [];
256
+ let cwd;
257
+ for (let i = 0; i < argv.length; i += 1) {
258
+ const t = argv[i];
259
+ if (t === '--cwd') {
260
+ const next = argv[i + 1];
261
+ if (next !== undefined && !next.startsWith('-')) {
262
+ cwd = next;
263
+ i += 1;
264
+ continue;
265
+ }
266
+ // No value — leave it; command-level parser may complain.
267
+ rest.push(t);
268
+ continue;
269
+ }
270
+ if (t.startsWith('--cwd=')) {
271
+ cwd = t.slice('--cwd='.length);
272
+ continue;
273
+ }
274
+ rest.push(t);
275
+ }
276
+ if (cwd && !nodePath.isAbsolute(cwd))
277
+ cwd = nodePath.resolve(process.cwd(), cwd);
278
+ return cwd === undefined ? { rest } : { cwd, rest };
279
+ }
280
+ /**
281
+ * Returns the absolute cwd for the current command:
282
+ * 1. Command-level --cwd flag (if passed after the command)
283
+ * 2. Global --cwd (extracted at the top level)
284
+ * 3. process.cwd()
285
+ */
286
+ export function resolveCwd(args) {
287
+ const flag = args.flags.get('cwd');
288
+ if (typeof flag === 'string')
289
+ return nodePath.resolve(flag);
290
+ if (args.globalCwd)
291
+ return args.globalCwd;
292
+ return process.cwd();
293
+ }
294
+ export function flagString(args, name) {
295
+ const v = args.flags.get(name);
296
+ return typeof v === 'string' ? v : undefined;
297
+ }
298
+ export function flagBool(args, name) {
299
+ const v = args.flags.get(name);
300
+ return v === true || v === 'true';
301
+ }
302
+ export function flagNumber(args, name) {
303
+ const v = args.flags.get(name);
304
+ if (typeof v !== 'string')
305
+ return undefined;
306
+ const n = Number(v);
307
+ return Number.isFinite(n) ? n : undefined;
308
+ }
309
+ export function flagList(args, name, options = {}) {
310
+ const split = options.split ?? 'always';
311
+ const raw = args.multiFlags.get(name) ?? [];
312
+ let entries;
313
+ if (split === 'never' || (split === 'auto' && raw.length > 1)) {
314
+ entries = raw.map((v) => v.trim()).filter(Boolean);
315
+ }
316
+ else {
317
+ entries = raw.flatMap((v) => v
318
+ .split(',')
319
+ .map((s) => s.trim())
320
+ .filter(Boolean));
321
+ }
322
+ if (options.allow && options.allow.length) {
323
+ const allow = new Set(options.allow);
324
+ entries = entries.filter((v) => allow.has(v));
325
+ }
326
+ if (options.dedupe) {
327
+ const seen = new Set();
328
+ const out = [];
329
+ for (const v of entries) {
330
+ if (!seen.has(v)) {
331
+ seen.add(v);
332
+ out.push(v);
333
+ }
334
+ }
335
+ return out;
336
+ }
337
+ return entries;
338
+ }
339
+ export function flagVars(args) {
340
+ const out = {};
341
+ const list = args.multiFlags.get('var') ?? [];
342
+ for (const item of list) {
343
+ const eq = item.indexOf('=');
344
+ if (eq !== -1)
345
+ out[item.slice(0, eq)] = item.slice(eq + 1);
346
+ }
347
+ return out;
348
+ }
@@ -0,0 +1,3 @@
1
+ import { type ICommandHandler } from '../command-registry.js';
2
+ export declare const applyCommand: ICommandHandler;
3
+ //# sourceMappingURL=apply.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.command.d.ts","sourceRoot":"","sources":["../../src/commands/apply.command.ts"],"names":[],"mappings":"AAqDA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAyLhC,eAAO,MAAM,YAAY,EAAE,eAyrB1B,CAAC"}