@cleocode/cleo 2026.10.2 → 2026.10.4

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 (307) hide show
  1. package/bin/cleo.js +11 -1
  2. package/dist/cli/adapter-LVXHFBC4.js +158 -0
  3. package/dist/cli/add-WUAV7LDT.js +443 -0
  4. package/dist/cli/add-batch-U2DLKAQC.js +163 -0
  5. package/dist/cli/admin-I7BQYVZD.js +340 -0
  6. package/dist/cli/adr-K2THMQBS.js +171 -0
  7. package/dist/cli/agent-WQ6XY2DW.js +2366 -0
  8. package/dist/cli/agent-outputs-BJIYLVTU.js +84 -0
  9. package/dist/cli/analyze-PGQZWGOC.js +48 -0
  10. package/dist/cli/archive-5LZPF7C3.js +64 -0
  11. package/dist/cli/archive-stats-U6CYC6JM.js +100 -0
  12. package/dist/cli/attention-SOURWCNI.js +167 -0
  13. package/dist/cli/audit-FO2Y4LH2.js +122 -0
  14. package/dist/cli/auth-ED7TAIXI.js +491 -0
  15. package/dist/cli/backfill-32TRAYRD.js +156 -0
  16. package/dist/cli/backup-LEJMZJKL.js +587 -0
  17. package/dist/cli/backup-inspect-6HPLUEI2.js +26 -0
  18. package/dist/cli/backup-recover-2BTYBZU2.js +29 -0
  19. package/dist/cli/blockers-5JULUJTV.js +54 -0
  20. package/dist/cli/brain-273N3FW4.js +400 -0
  21. package/dist/cli/briefing-7H6OLECX.js +212 -0
  22. package/dist/cli/caamp-MFQVN6VU.js +181 -0
  23. package/dist/cli/cancel-SCMJTXZB.js +84 -0
  24. package/dist/cli/canon-NPF5RODM.js +142 -0
  25. package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
  26. package/dist/cli/cant-46XCUP4P.js +239 -0
  27. package/dist/cli/changeset-32NMBGG2.js +248 -0
  28. package/dist/cli/check-RWJLBCI2.js +907 -0
  29. package/dist/cli/checkpoint-37HMMKD7.js +128 -0
  30. package/dist/cli/chunk-2JIJD2I7.js +108 -0
  31. package/dist/cli/chunk-37NU2XDP.js +171 -0
  32. package/dist/cli/chunk-3IOQVUO7.js +17308 -0
  33. package/dist/cli/chunk-3PGH67MT.js +175 -0
  34. package/dist/cli/chunk-3ZO3M37V.js +1002 -0
  35. package/dist/cli/chunk-47JYZAMS.js +30 -0
  36. package/dist/cli/chunk-5J2VH3BC.js +66 -0
  37. package/dist/cli/chunk-5ZFFUFH7.js +92 -0
  38. package/dist/cli/chunk-6JSJNYH2.js +114 -0
  39. package/dist/cli/chunk-7INMKEAD.js +85 -0
  40. package/dist/cli/chunk-A2IUEIM5.js +278 -0
  41. package/dist/cli/chunk-AWCQH2W5.js +35 -0
  42. package/dist/cli/chunk-AYA6F4ZT.js +56 -0
  43. package/dist/cli/chunk-BCEXRFA2.js +76 -0
  44. package/dist/cli/chunk-BPEVD37G.js +124 -0
  45. package/dist/cli/chunk-C3B7C43W.js +16 -0
  46. package/dist/cli/chunk-DVTPIZJM.js +72 -0
  47. package/dist/cli/chunk-DYABOIHB.js +96 -0
  48. package/dist/cli/chunk-EBRZ76HS.js +51 -0
  49. package/dist/cli/chunk-EGOTK2HA.js +57 -0
  50. package/dist/cli/chunk-EOPQFCSR.js +148 -0
  51. package/dist/cli/chunk-FORFDPP5.js +288 -0
  52. package/dist/cli/chunk-GFGLLDXX.js +110 -0
  53. package/dist/cli/chunk-GH37QXW5.js +280 -0
  54. package/dist/cli/chunk-GZFVDR44.js +320 -0
  55. package/dist/cli/chunk-I3CRQQAD.js +225 -0
  56. package/dist/cli/chunk-J3ZFM3UQ.js +754 -0
  57. package/dist/cli/chunk-JNZJPIPJ.js +90 -0
  58. package/dist/cli/chunk-KHB52JNB.js +209 -0
  59. package/dist/cli/chunk-KJDWWQFY.js +46 -0
  60. package/dist/cli/chunk-LKNUA3SB.js +83 -0
  61. package/dist/cli/chunk-LVGIFMCV.js +163 -0
  62. package/dist/cli/chunk-LWQBJQSE.js +67 -0
  63. package/dist/cli/chunk-MNJRLSEQ.js +107 -0
  64. package/dist/cli/chunk-NRKWJLMS.js +91 -0
  65. package/dist/cli/chunk-NSHV2JNM.js +48 -0
  66. package/dist/cli/chunk-NWTATTEQ.js +210 -0
  67. package/dist/cli/chunk-OAPN46TC.js +89 -0
  68. package/dist/cli/chunk-OGV57L4J.js +59 -0
  69. package/dist/cli/chunk-OILHT47L.js +252 -0
  70. package/dist/cli/chunk-OPTEQKBB.js +258 -0
  71. package/dist/cli/chunk-PKKZPOOP.js +352 -0
  72. package/dist/cli/chunk-QA6T2LQ5.js +71 -0
  73. package/dist/cli/chunk-QFFQSKRC.js +4497 -0
  74. package/dist/cli/chunk-QPUY2HQZ.js +74 -0
  75. package/dist/cli/chunk-REUTEW3O.js +258 -0
  76. package/dist/cli/chunk-S24YI723.js +88 -0
  77. package/dist/cli/chunk-SXXOC6KZ.js +209 -0
  78. package/dist/cli/chunk-ULN4OKQQ.js +259 -0
  79. package/dist/cli/chunk-V5GBGOGM.js +46 -0
  80. package/dist/cli/chunk-VLEYOOPH.js +31 -0
  81. package/dist/cli/chunk-W33Q3FBH.js +66 -0
  82. package/dist/cli/chunk-W3JLYKKY.js +140 -0
  83. package/dist/cli/chunk-XRAX6XFP.js +48 -0
  84. package/dist/cli/chunk-YGKEECTI.js +78 -0
  85. package/dist/cli/chunk-YUZJI67I.js +108 -0
  86. package/dist/cli/chunk-YY66LFZF.js +29 -0
  87. package/dist/cli/chunk-ZBISIPCK.js +78 -0
  88. package/dist/cli/chunk-ZZTHTMQP.js +77 -0
  89. package/dist/cli/claim-KPENYHIQ.js +96 -0
  90. package/dist/cli/classify-DRVMCFQU.js +117 -0
  91. package/dist/cli/cli-T3CR7J57.js +48 -0
  92. package/dist/cli/cloud-PPQ4O5TX.js +565 -0
  93. package/dist/cli/cockpit-RZKLGYPN.js +790 -0
  94. package/dist/cli/code-Z5CTMVTD.js +178 -0
  95. package/dist/cli/complete-UBOCOBRB.js +34 -0
  96. package/dist/cli/complexity-BV2AGQRZ.js +56 -0
  97. package/dist/cli/compliance-32PD5Y47.js +276 -0
  98. package/dist/cli/conduit-VDKCH33F.js +307 -0
  99. package/dist/cli/config-I72JAXK4.js +516 -0
  100. package/dist/cli/consensus-LFILLSTK.js +121 -0
  101. package/dist/cli/context-XUUVFVTP.js +141 -0
  102. package/dist/cli/contribution-37NQ4N5R.js +111 -0
  103. package/dist/cli/curator-TFDXU2EX.js +139 -0
  104. package/dist/cli/current-C4SN5BWV.js +42 -0
  105. package/dist/cli/daemon-DV25JQ62.js +451 -0
  106. package/dist/cli/dash-TFU4RLQW.js +70 -0
  107. package/dist/cli/decide-5VPMNTSI.js +419 -0
  108. package/dist/cli/decompose-KOYEZNJL.js +77 -0
  109. package/dist/cli/decomposition-7OHUFIQN.js +121 -0
  110. package/dist/cli/delete-Q7YCAFY5.js +68 -0
  111. package/dist/cli/deps-6UZKLDGJ.js +463 -0
  112. package/dist/cli/detect-FERY35UL.js +45 -0
  113. package/dist/cli/detect-drift-UL2JTPUK.js +408 -0
  114. package/dist/cli/diagnostics-TI5QAZXR.js +132 -0
  115. package/dist/cli/docs-QI2PRN3T.js +3095 -0
  116. package/dist/cli/doctor-AX5TICQO.js +1253 -0
  117. package/dist/cli/doctor-ac-bindings-YPMYHU2G.js +26 -0
  118. package/dist/cli/doctor-acceptance-drift-PYNFGMKB.js +26 -0
  119. package/dist/cli/doctor-credentials-UZRIADKM.js +26 -0
  120. package/dist/cli/doctor-db-substrate-Q2TOYM2S.js +27 -0
  121. package/dist/cli/doctor-dep-cycles-GCVYZY6F.js +26 -0
  122. package/dist/cli/doctor-exodus-RO5SUTC2.js +26 -0
  123. package/dist/cli/doctor-exodus-residue-EM2AWQXP.js +26 -0
  124. package/dist/cli/doctor-fk-check-Q3FOLECE.js +26 -0
  125. package/dist/cli/doctor-global-delivery-TNOAQ3NP.js +26 -0
  126. package/dist/cli/doctor-heavy-command-hook-IO3QAQLG.js +26 -0
  127. package/dist/cli/doctor-legacy-backups-O2YH5VLS.js +26 -0
  128. package/dist/cli/doctor-legacy-reaper-VSEJEIFA.js +26 -0
  129. package/dist/cli/doctor-malformed-ids-LQ766V5K.js +26 -0
  130. package/dist/cli/doctor-manifest-rows-6FQDNHLH.js +26 -0
  131. package/dist/cli/doctor-memory-guard-J4PSEKB5.js +26 -0
  132. package/dist/cli/doctor-migrations-ONOH56YM.js +26 -0
  133. package/dist/cli/doctor-nexus-residency-FUQAX7PV.js +26 -0
  134. package/dist/cli/doctor-project-identity-GUDK3HYX.js +26 -0
  135. package/dist/cli/doctor-projects-7L3BNL4O.js +30 -0
  136. package/dist/cli/doctor-projects-registry-TEAVHFQU.js +26 -0
  137. package/dist/cli/doctor-release-readiness-IEGHX6SL.js +26 -0
  138. package/dist/cli/doctor-repair-NBONOSZU.js +26 -0
  139. package/dist/cli/doctor-skill-fixtures-7Y6L34A3.js +26 -0
  140. package/dist/cli/doctor-split-brain-TUKIGVHF.js +26 -0
  141. package/dist/cli/doctor-superseded-store-BHZY2B2L.js +26 -0
  142. package/dist/cli/doctor-tool-locks-REQMIVYK.js +26 -0
  143. package/dist/cli/doctor-twin-collapse-222GOSPE.js +26 -0
  144. package/dist/cli/doctor-worktree-stores-J7TCRVJ3.js +26 -0
  145. package/dist/cli/done-V3AOO65B.js +195 -0
  146. package/dist/cli/dynamic-RR4HB7BB.js +29 -0
  147. package/dist/cli/event-EGNPGE5A.js +372 -0
  148. package/dist/cli/exists-H4SDCBPL.js +65 -0
  149. package/dist/cli/exodus-KALO3B3X.js +401 -0
  150. package/dist/cli/export-ROFOCG4M.js +92 -0
  151. package/dist/cli/export-tasks-US3WBIEQ.js +96 -0
  152. package/dist/cli/federation-SUIB5QWT.js +145 -0
  153. package/dist/cli/find-YICG4BG6.js +177 -0
  154. package/dist/cli/focus-TKCZPKOM.js +55 -0
  155. package/dist/cli/gateway-H4HFDC3E.js +77 -0
  156. package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
  157. package/dist/cli/gc-5R2TUY5T.js +291 -0
  158. package/dist/cli/go-PRQFK5YG.js +206 -0
  159. package/dist/cli/goal-7CZRMLHC.js +212 -0
  160. package/dist/cli/grade-PY2YRPUS.js +56 -0
  161. package/dist/cli/graph-XIXMCFKG.js +878 -0
  162. package/dist/cli/history-EIXADPAD.js +137 -0
  163. package/dist/cli/hook-UF7J7R6D.js +57 -0
  164. package/dist/cli/hook-entry.js +244 -19
  165. package/dist/cli/hygiene-3QZ2NI7P.js +55 -0
  166. package/dist/cli/import-R73SO444.js +88 -0
  167. package/dist/cli/import-tasks-O22FZJ4U.js +108 -0
  168. package/dist/cli/index.js +419 -94607
  169. package/dist/cli/init-IHEJDQWU.js +40 -0
  170. package/dist/cli/inject-LSRVWNCP.js +82 -0
  171. package/dist/cli/install-global-4AZUCH6U.js +95 -0
  172. package/dist/cli/intelligence-2OSFOGD2.js +181 -0
  173. package/dist/cli/issue-IIWEDNFC.js +158 -0
  174. package/dist/cli/janitor-GPMC7VOR.js +111 -0
  175. package/dist/cli/labels-5NPOIQXN.js +87 -0
  176. package/dist/cli/lifecycle-4FFS2K2T.js +272 -0
  177. package/dist/cli/list-47KEUGPQ.js +108 -0
  178. package/dist/cli/llm-G5B3I6GD.js +703 -0
  179. package/dist/cli/llm-cost-S7RS6BVA.js +25 -0
  180. package/dist/cli/llm-stream-24A45NTS.js +27 -0
  181. package/dist/cli/log-XF6H2XSD.js +75 -0
  182. package/dist/cli/login-LBPLGHYG.js +43 -0
  183. package/dist/cli/logout-SX4JSJIV.js +74 -0
  184. package/dist/cli/manifest-NMCW4PIW.js +353 -0
  185. package/dist/cli/map-BU72KMGF.js +52 -0
  186. package/dist/cli/memory-UHYIVGVM.js +1956 -0
  187. package/dist/cli/migrate-agents-v2-OO7OILZK.js +33 -0
  188. package/dist/cli/migrate-claude-mem-EDNYUY3K.js +201 -0
  189. package/dist/cli/next-RZFRG5X7.js +56 -0
  190. package/dist/cli/nexus-4S4Z5EVU.js +2923 -0
  191. package/dist/cli/ops-KR7AWCG3.js +51 -0
  192. package/dist/cli/orchestrate-HOYZY3VX.js +948 -0
  193. package/dist/cli/otel-U7IIRBCT.js +188 -0
  194. package/dist/cli/phase-NYZFHUE5.js +220 -0
  195. package/dist/cli/pivot-FF2CVUZL.js +87 -0
  196. package/dist/cli/plan-3SL2NTRV.js +48 -0
  197. package/dist/cli/playbook-2FCBV7N3.js +229 -0
  198. package/dist/cli/project-WDX2TGMC.js +330 -0
  199. package/dist/cli/promote-YINYFBZY.js +52 -0
  200. package/dist/cli/provenance-C7AYD7WG.js +128 -0
  201. package/dist/cli/provider-QLJEDQBR.js +212 -0
  202. package/dist/cli/reason-JF5BHBM5.js +137 -0
  203. package/dist/cli/reconcile-NMISHDGX.js +127 -0
  204. package/dist/cli/refresh-memory-EY5YNICV.js +45 -0
  205. package/dist/cli/relates-R3ZPICAY.js +259 -0
  206. package/dist/cli/release-4ZJTMUUT.js +524 -0
  207. package/dist/cli/remote-QSONJDIK.js +279 -0
  208. package/dist/cli/renderers-64OR3IWX.js +37 -0
  209. package/dist/cli/reorder-J3DOE7ST.js +86 -0
  210. package/dist/cli/reparent-2OUMKEZX.js +58 -0
  211. package/dist/cli/req-TZB7OFKO.js +129 -0
  212. package/dist/cli/research-MTD7EX45.js +365 -0
  213. package/dist/cli/restore-VEUOX7NF.js +423 -0
  214. package/dist/cli/revert-3YF2IL5G.js +240 -0
  215. package/dist/cli/roadmap-7OOQLXKG.js +61 -0
  216. package/dist/cli/run-2U5NZV5Z.js +211 -0
  217. package/dist/cli/safestop-VR4VK56D.js +88 -0
  218. package/dist/cli/saga-SEWPIOX2.js +285 -0
  219. package/dist/cli/schema-C52WZ35V.js +195 -0
  220. package/dist/cli/self-update-GQIGUDPS.js +504 -0
  221. package/dist/cli/selfimprove-3Y5L4ECT.js +88 -0
  222. package/dist/cli/sentient-M4YMAVGV.js +1088 -0
  223. package/dist/cli/sequence-6UBMA4IF.js +93 -0
  224. package/dist/cli/service-5R7SILZ7.js +155 -0
  225. package/dist/cli/session-3C6AAC4Y.js +707 -0
  226. package/dist/cli/setup-BTUBW5PU.js +323 -0
  227. package/dist/cli/show-MXT2V7TF.js +122 -0
  228. package/dist/cli/skill-GFUZOU2C.js +84 -0
  229. package/dist/cli/skills-EDWLKAF3.js +928 -0
  230. package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
  231. package/dist/cli/snapshot-GUWMURCM.js +119 -0
  232. package/dist/cli/src-66GAKPXR.js +80 -0
  233. package/dist/cli/start-QFG56RGN.js +67 -0
  234. package/dist/cli/stats-GW55P7RR.js +95 -0
  235. package/dist/cli/status-46HTKNRR.js +157 -0
  236. package/dist/cli/sticky-2DUZOUGI.js +338 -0
  237. package/dist/cli/stop-J2QEUKHX.js +42 -0
  238. package/dist/cli/sync-GJP2QYT5.js +154 -0
  239. package/dist/cli/tasks-BNXTM7PB.js +174 -0
  240. package/dist/cli/telemetry-55Z2XJWL.js +120 -0
  241. package/dist/cli/templates-7O77TKPV.js +611 -0
  242. package/dist/cli/testing-37YTBNKP.js +146 -0
  243. package/dist/cli/token-UAVJMNUI.js +220 -0
  244. package/dist/cli/transcript-LORQTV5Z.js +440 -0
  245. package/dist/cli/tui-BPUFHYKK.js +51 -0
  246. package/dist/cli/update-NVCYV2FT.js +476 -0
  247. package/dist/cli/upgrade-OXJXOGEF.js +243 -0
  248. package/dist/cli/verify-LYLDHPT2.js +190 -0
  249. package/dist/cli/web-QP2RP266.js +275 -0
  250. package/dist/cli/workgraph-FXBSZDQE.js +232 -0
  251. package/dist/cli/worktree-6RXAJIST.js +370 -0
  252. package/package.json +13 -13
  253. package/studio-dist/client/_app/immutable/chunks/{Buaay_Q8.js → Btgeq_wq.js} +1 -1
  254. package/studio-dist/client/_app/immutable/chunks/{BJp57kf2.js → CgBjxmu6.js} +1 -1
  255. package/studio-dist/client/_app/immutable/chunks/{CLP4JZvZ.js → DgEKqO6r.js} +1 -1
  256. package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +1 -0
  257. package/studio-dist/client/_app/immutable/entry/{app.CczVILch.js → app.a02HWaRB.js} +2 -2
  258. package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +1 -0
  259. package/studio-dist/client/_app/immutable/nodes/{0.Zy2IsLEl.js → 0.nTXyRfc-.js} +1 -1
  260. package/studio-dist/client/_app/immutable/nodes/{1.DJN1QI3l.js → 1.4zrWeHtl.js} +1 -1
  261. package/studio-dist/client/_app/immutable/nodes/{15.B4rwqbHV.js → 15.D9mk4JyY.js} +1 -1
  262. package/studio-dist/client/_app/immutable/nodes/{16.jn-5BG_L.js → 16._-wt-sQf.js} +1 -1
  263. package/studio-dist/client/_app/immutable/nodes/{17.DnWGC4t9.js → 17.CUu6LQDj.js} +1 -1
  264. package/studio-dist/client/_app/immutable/nodes/{18.0zddLZOY.js → 18.Dz4QRTkX.js} +1 -1
  265. package/studio-dist/client/_app/immutable/nodes/{20.DEKHq9Tc.js → 20.CJ2_EB0U.js} +1 -1
  266. package/studio-dist/client/_app/immutable/nodes/{24.CQB9KP-p.js → 24.Igj2FS7k.js} +1 -1
  267. package/studio-dist/client/_app/immutable/nodes/{25.BaqToZD-.js → 25.BnATjVGN.js} +2 -2
  268. package/studio-dist/client/_app/immutable/nodes/{26.BiE1i4iE.js → 26.6iPyjT44.js} +1 -1
  269. package/studio-dist/client/_app/immutable/nodes/{3.BObAOu_-.js → 3.AA5GwNgP.js} +1 -1
  270. package/studio-dist/client/_app/version.json +1 -1
  271. package/studio-dist/server/chunks/{0-BmUoS2yd.js → 0-DGmsoBYm.js} +3 -3
  272. package/studio-dist/server/chunks/1-8PfxPvlK.js +9 -0
  273. package/studio-dist/server/chunks/{15-Dt4kqUxW.js → 15-Bg6YTndh.js} +3 -3
  274. package/studio-dist/server/chunks/{16-kgTLJvbO.js → 16-BObLwgyD.js} +3 -3
  275. package/studio-dist/server/chunks/{17-mRYB5141.js → 17-BNXGyAHX.js} +3 -3
  276. package/studio-dist/server/chunks/{18-BjZ325q5.js → 18-UqQFRIID.js} +3 -3
  277. package/studio-dist/server/chunks/{20-DQ2Vrujq.js → 20-CMn8a_yP.js} +3 -3
  278. package/studio-dist/server/chunks/{24-DAeuAfXN.js → 24-BuOTDzib.js} +3 -3
  279. package/studio-dist/server/chunks/{25-DGCNmzAS.js → 25-CIMSmjVx.js} +4 -4
  280. package/studio-dist/server/chunks/{26-CiN6bbmR.js → 26-DWGObn2T.js} +3 -3
  281. package/studio-dist/server/chunks/{3-BS2FXYjP.js → 3-CyiffdJZ.js} +3 -3
  282. package/studio-dist/server/chunks/{_layout.svelte-DJ_UWmGp.js → _layout.svelte-DYtClaIk.js} +4 -4
  283. package/studio-dist/server/chunks/{_page.svelte-WR6jUiQE.js → _page.svelte-1h9E6s_f.js} +3 -3
  284. package/studio-dist/server/chunks/{_page.svelte-BUq8_eQH.js → _page.svelte-BNNF62Nm.js} +3 -3
  285. package/studio-dist/server/chunks/{_page.svelte-CRnYa4cW.js → _page.svelte-BT1EUadj.js} +5 -5
  286. package/studio-dist/server/chunks/{_page.svelte-Dk0znswQ.js → _page.svelte-Bip079LT.js} +3 -3
  287. package/studio-dist/server/chunks/{_page.svelte-CcP_KW3Y.js → _page.svelte-CEATWp_5.js} +3 -3
  288. package/studio-dist/server/chunks/{_page.svelte-Ca7x-ZvH.js → _page.svelte-CV3xiD1y.js} +4 -4
  289. package/studio-dist/server/chunks/{_page.svelte-Cfv9tDBA.js → _page.svelte-Cv_KVJDV.js} +3 -3
  290. package/studio-dist/server/chunks/{_page.svelte-J4HjPhfO.js → _page.svelte-DSSy6LuK.js} +3 -3
  291. package/studio-dist/server/chunks/{_page.svelte-D8dLEr7O.js → _page.svelte-TF795TAS.js} +3 -3
  292. package/studio-dist/server/chunks/{_server.ts-Bih2-_5O.js → _server.ts-BlhRFLY3.js} +2 -2
  293. package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-C4w6UdU0.js} +3 -3
  294. package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-CzrwbhkQ.js} +3 -3
  295. package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-DWt8Dziu.js} +3 -3
  296. package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-Db6mEile.js} +3 -3
  297. package/studio-dist/server/chunks/{client-Cl295FWH.js → client-D8f2k-H_.js} +2 -2
  298. package/studio-dist/server/chunks/{dist-CdoCt9zT.js → dist-B8xbIrdB.js} +3 -1
  299. package/studio-dist/server/chunks/{error.svelte-ajn1HNOb.js → error.svelte-DbbOwIme.js} +3 -3
  300. package/studio-dist/server/chunks/{http-BiQjEmVU.js → http-1ftNGTs5.js} +2 -2
  301. package/studio-dist/server/chunks/{internal-D9MtKHIF.js → internal-CTULuLPB.js} +2 -2
  302. package/studio-dist/server/chunks/{stores-BlknvZ80.js → stores-CS5XOReX.js} +2 -2
  303. package/studio-dist/server/index.js +1 -1
  304. package/studio-dist/server/manifest.js +17 -17
  305. package/studio-dist/client/_app/immutable/chunks/C3l-lTkq.js +0 -1
  306. package/studio-dist/client/_app/immutable/entry/start.D7gHmBNS.js +0 -1
  307. package/studio-dist/server/chunks/1-CTjj2MYz.js +0 -9
@@ -0,0 +1,928 @@
1
+ (() => {
2
+ const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
3
+ if (globalThis[_installed]) return;
4
+ globalThis[_installed] = true;
5
+ const _origEmitWarning = process.emitWarning;
6
+ process.emitWarning = function(warning, type, code, ctor) {
7
+ if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
8
+ return;
9
+ }
10
+ if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
11
+ return;
12
+ }
13
+ return _origEmitWarning.call(process, warning, type, code, ctor);
14
+ };
15
+ })();
16
+ import {
17
+ isSubCommandDispatch
18
+ } from "./chunk-YY66LFZF.js";
19
+ import {
20
+ defineCommand
21
+ } from "./chunk-PKKZPOOP.js";
22
+ import {
23
+ dispatchFromCli
24
+ } from "./chunk-3IOQVUO7.js";
25
+ import "./chunk-AWCQH2W5.js";
26
+ import "./chunk-OGV57L4J.js";
27
+ import "./chunk-ZBISIPCK.js";
28
+ import {
29
+ cliError,
30
+ cliOutput
31
+ } from "./chunk-3ZO3M37V.js";
32
+ import "./chunk-6JSJNYH2.js";
33
+ import "./chunk-QFFQSKRC.js";
34
+
35
+ // packages/cleo/src/cli/commands/skills.ts
36
+ import { ExitCode } from "@cleocode/contracts";
37
+ import {
38
+ AgentsSkillsRealDirError,
39
+ skills as coreSkills,
40
+ restoreBundledSkillQuarantine,
41
+ runBundledSkillPrune,
42
+ runDoctorAdopt,
43
+ runDoctorBridge,
44
+ unkeepBundledSkill
45
+ } from "@cleocode/core";
46
+ var listCommand = defineCommand({
47
+ meta: { name: "list", description: "List installed skills" },
48
+ args: {
49
+ global: {
50
+ type: "boolean",
51
+ description: "Use global skills directory"
52
+ }
53
+ },
54
+ async run({ args }) {
55
+ await dispatchFromCli(
56
+ "query",
57
+ "tools",
58
+ "skill.list",
59
+ {
60
+ scope: args.global ? "global" : "project"
61
+ },
62
+ { command: "skills", operation: "tools.skill.list" }
63
+ );
64
+ }
65
+ });
66
+ var searchCommand = defineCommand({
67
+ meta: { name: "search", description: "Search for skills" },
68
+ args: {
69
+ query: {
70
+ type: "positional",
71
+ description: "Search query",
72
+ required: true
73
+ },
74
+ mp: {
75
+ type: "boolean",
76
+ description: "Search marketplace (agentskills.in)"
77
+ },
78
+ all: {
79
+ type: "boolean",
80
+ description: "Search both local and marketplace"
81
+ }
82
+ },
83
+ async run({ args }) {
84
+ await dispatchFromCli(
85
+ "query",
86
+ "tools",
87
+ "skill.find",
88
+ {
89
+ query: args.query,
90
+ source: args.mp ? "skillsmp" : args.all ? "all" : "local"
91
+ },
92
+ { command: "skills", operation: "tools.skill.find" }
93
+ );
94
+ }
95
+ });
96
+ var findCommand = defineCommand({
97
+ meta: {
98
+ name: "find",
99
+ description: "Federated skill search across local, canonical, and federation peers"
100
+ },
101
+ args: {
102
+ query: {
103
+ type: "positional",
104
+ description: "Search query",
105
+ required: true
106
+ },
107
+ federated: {
108
+ type: "boolean",
109
+ description: "Include federation peers (OPT-IN \u2014 no network calls without this flag)"
110
+ },
111
+ limit: {
112
+ type: "string",
113
+ description: "Maximum results to return"
114
+ }
115
+ },
116
+ async run({ args }) {
117
+ await dispatchFromCli(
118
+ "query",
119
+ "tools",
120
+ "skill.federated.find",
121
+ {
122
+ query: args.query,
123
+ federated: !!args.federated,
124
+ limit: args.limit ? Number(args.limit) : void 0
125
+ },
126
+ { command: "skills", operation: "tools.skill.federated.find" }
127
+ );
128
+ }
129
+ });
130
+ var validateCommand = defineCommand({
131
+ meta: {
132
+ name: "validate",
133
+ description: "Validate a SKILL.md; exits non-zero with findings. Every skill is checked against the Agent Skills standard (valid YAML; name and description present, well-formed, no tags). A CLEO bundled skill (packages/skills/skills, or an installed copy of one) must also meet the CLEO frontmatter contract gate 29 enforces: metadata.version X.Y.Z, metadata.tier, metadata.install, no top-level tier/core/category, name equal to its directory."
134
+ },
135
+ args: {
136
+ "skill-name": {
137
+ type: "positional",
138
+ description: "Skill name, skill directory, or SKILL.md path",
139
+ required: true
140
+ }
141
+ },
142
+ async run({ args }) {
143
+ await dispatchFromCli(
144
+ "query",
145
+ "tools",
146
+ "skill.verify",
147
+ {
148
+ name: args["skill-name"]
149
+ },
150
+ { command: "skills", operation: "tools.skill.verify" }
151
+ );
152
+ }
153
+ });
154
+ var infoCommand = defineCommand({
155
+ meta: { name: "info", description: "Show skill details" },
156
+ args: {
157
+ "skill-name": {
158
+ type: "positional",
159
+ description: "Skill name to show details for",
160
+ required: true
161
+ }
162
+ },
163
+ async run({ args }) {
164
+ await dispatchFromCli(
165
+ "query",
166
+ "tools",
167
+ "skill.show",
168
+ {
169
+ name: args["skill-name"]
170
+ },
171
+ { command: "skills", operation: "tools.skill.show" }
172
+ );
173
+ }
174
+ });
175
+ var installCommand = defineCommand({
176
+ meta: { name: "install", description: "Install skill to agent directory" },
177
+ args: {
178
+ "skill-name": {
179
+ type: "positional",
180
+ description: "Skill name to install",
181
+ required: true
182
+ },
183
+ global: {
184
+ type: "boolean",
185
+ description: "Install globally"
186
+ }
187
+ },
188
+ async run({ args }) {
189
+ await dispatchFromCli(
190
+ "mutate",
191
+ "tools",
192
+ "skill.install",
193
+ {
194
+ name: args["skill-name"],
195
+ global: !!args.global
196
+ },
197
+ { command: "skills", operation: "tools.skill.install" }
198
+ );
199
+ }
200
+ });
201
+ var uninstallCommand = defineCommand({
202
+ meta: { name: "uninstall", description: "Uninstall a skill" },
203
+ args: {
204
+ "skill-name": {
205
+ type: "positional",
206
+ description: "Skill name to uninstall",
207
+ required: true
208
+ }
209
+ },
210
+ async run({ args }) {
211
+ await dispatchFromCli(
212
+ "mutate",
213
+ "tools",
214
+ "skill.uninstall",
215
+ {
216
+ name: args["skill-name"]
217
+ },
218
+ { command: "skills", operation: "tools.skill.uninstall" }
219
+ );
220
+ }
221
+ });
222
+ var enableCommand = defineCommand({
223
+ meta: { name: "enable", description: "Enable a skill (alias for install)" },
224
+ args: {
225
+ "skill-name": {
226
+ type: "positional",
227
+ description: "Skill name to enable",
228
+ required: true
229
+ }
230
+ },
231
+ async run({ args }) {
232
+ await dispatchFromCli(
233
+ "mutate",
234
+ "tools",
235
+ "skill.install",
236
+ {
237
+ name: args["skill-name"]
238
+ },
239
+ { command: "skills", operation: "tools.skill.install" }
240
+ );
241
+ }
242
+ });
243
+ var disableCommand = defineCommand({
244
+ meta: { name: "disable", description: "Disable a skill (alias for uninstall)" },
245
+ args: {
246
+ "skill-name": {
247
+ type: "positional",
248
+ description: "Skill name to disable",
249
+ required: true
250
+ }
251
+ },
252
+ async run({ args }) {
253
+ await dispatchFromCli(
254
+ "mutate",
255
+ "tools",
256
+ "skill.uninstall",
257
+ {
258
+ name: args["skill-name"]
259
+ },
260
+ { command: "skills", operation: "tools.skill.uninstall" }
261
+ );
262
+ }
263
+ });
264
+ var refreshCommand = defineCommand({
265
+ meta: { name: "refresh", description: "Refresh skills cache" },
266
+ async run() {
267
+ await dispatchFromCli(
268
+ "mutate",
269
+ "tools",
270
+ "skill.refresh",
271
+ {},
272
+ {
273
+ command: "skills",
274
+ operation: "tools.skill.refresh"
275
+ }
276
+ );
277
+ }
278
+ });
279
+ var dispatchCommand = defineCommand({
280
+ meta: { name: "dispatch", description: "Resolve dispatch path for a skill" },
281
+ args: {
282
+ "skill-name": {
283
+ type: "positional",
284
+ description: "Skill name to resolve dispatch path for",
285
+ required: true
286
+ }
287
+ },
288
+ async run({ args }) {
289
+ await dispatchFromCli(
290
+ "query",
291
+ "tools",
292
+ "skill.dispatch",
293
+ { name: args["skill-name"] },
294
+ { command: "skills", operation: "tools.skill.dispatch" }
295
+ );
296
+ }
297
+ });
298
+ var catalogCommand = defineCommand({
299
+ meta: {
300
+ name: "catalog",
301
+ description: "Browse CAAMP skill catalog (protocols, profiles, resources, info)"
302
+ },
303
+ args: {
304
+ type: {
305
+ type: "string",
306
+ description: "Catalog type: protocols, profiles, resources, info (default: info)"
307
+ },
308
+ limit: {
309
+ type: "string",
310
+ description: "Maximum items to return"
311
+ },
312
+ offset: {
313
+ type: "string",
314
+ description: "Offset for pagination"
315
+ }
316
+ },
317
+ async run({ args }) {
318
+ await dispatchFromCli(
319
+ "query",
320
+ "tools",
321
+ "skill.catalog",
322
+ {
323
+ type: args.type ?? "info",
324
+ limit: args.limit ? Number(args.limit) : void 0,
325
+ offset: args.offset ? Number(args.offset) : void 0
326
+ },
327
+ { command: "skills", operation: "tools.skill.catalog" }
328
+ );
329
+ }
330
+ });
331
+ var precedenceCommand = defineCommand({
332
+ meta: { name: "precedence", description: "Show or resolve skill provider precedence" },
333
+ args: {
334
+ resolve: {
335
+ type: "string",
336
+ description: "Resolve precedence for a specific provider"
337
+ },
338
+ scope: {
339
+ type: "string",
340
+ description: "Scope: global or project (default: global)"
341
+ }
342
+ },
343
+ async run({ args }) {
344
+ const providerId = args.resolve;
345
+ await dispatchFromCli(
346
+ "query",
347
+ "tools",
348
+ "skill.precedence",
349
+ {
350
+ action: providerId ? "resolve" : "show",
351
+ providerId,
352
+ scope: args.scope ?? "global"
353
+ },
354
+ { command: "skills", operation: "tools.skill.precedence" }
355
+ );
356
+ }
357
+ });
358
+ var depsCommand = defineCommand({
359
+ meta: { name: "deps", description: "Show skill dependency tree" },
360
+ args: {
361
+ "skill-name": {
362
+ type: "positional",
363
+ description: "Skill name to show dependency tree for",
364
+ required: true
365
+ }
366
+ },
367
+ async run({ args }) {
368
+ await dispatchFromCli(
369
+ "query",
370
+ "tools",
371
+ "skill.dependencies",
372
+ { name: args["skill-name"] },
373
+ { command: "skills", operation: "tools.skill.dependencies" }
374
+ );
375
+ }
376
+ });
377
+ var doctorBridgeCommand = defineCommand({
378
+ meta: {
379
+ name: "bridge",
380
+ description: "Create the single ~/.agents/skills bridge symlink + remove orphan per-skill symlinks"
381
+ },
382
+ args: {
383
+ force: {
384
+ type: "boolean",
385
+ description: "Back up and replace a real ~/.agents/skills directory if present"
386
+ },
387
+ "dry-run": {
388
+ type: "boolean",
389
+ description: "Print planned actions without mutating disk state"
390
+ },
391
+ json: {
392
+ type: "boolean",
393
+ description: "Output as JSON (default)"
394
+ },
395
+ human: {
396
+ type: "boolean",
397
+ description: "Output in human-readable format"
398
+ }
399
+ },
400
+ async run({ args }) {
401
+ const { cliError: cliError2, cliOutput: cliOutput2 } = await import("./renderers-64OR3IWX.js");
402
+ try {
403
+ const result = await runDoctorBridge({
404
+ force: args.force === true,
405
+ dryRun: args["dry-run"] === true
406
+ });
407
+ cliOutput2(
408
+ { success: true, data: result },
409
+ { command: "skills doctor bridge", operation: "skills.doctor.bridge" }
410
+ );
411
+ } catch (error) {
412
+ if (error instanceof AgentsSkillsRealDirError) {
413
+ cliError2(
414
+ error.message,
415
+ error.code,
416
+ {
417
+ details: {
418
+ agentsSkillsPath: error.agentsSkillsPath,
419
+ entryCount: error.entryCount
420
+ }
421
+ },
422
+ { operation: "skills.doctor.bridge" }
423
+ );
424
+ process.exit(1);
425
+ }
426
+ const message = error instanceof Error ? error.message : String(error);
427
+ cliError2(message, "E_INTERNAL_ERROR", void 0, {
428
+ operation: "skills.doctor.bridge"
429
+ });
430
+ process.exit(1);
431
+ }
432
+ }
433
+ });
434
+ function buildSkillsDoctorAdoptAdapters() {
435
+ return {
436
+ loadRegisteredNames: async () => {
437
+ const { listSkillsBySource } = await import("@cleocode/core");
438
+ const rows = await Promise.all([
439
+ listSkillsBySource("canonical"),
440
+ listSkillsBySource("user"),
441
+ listSkillsBySource("community"),
442
+ listSkillsBySource("agent-created")
443
+ ]);
444
+ return new Set(rows.flat().map((r) => r.name));
445
+ },
446
+ recordRow: async (data) => {
447
+ const { upsertSkillRow } = await import("@cleocode/core");
448
+ await upsertSkillRow({
449
+ name: data.name,
450
+ sourceType: data.sourceType,
451
+ installPath: data.installPath,
452
+ installedAt: data.installedAt,
453
+ lifecycleState: data.lifecycleState,
454
+ pinned: false,
455
+ isAgentCreated: false
456
+ });
457
+ }
458
+ };
459
+ }
460
+ var doctorAdoptOrphansCommand = defineCommand({
461
+ meta: {
462
+ name: "adopt-orphans",
463
+ description: "Interactive audit of on-disk skill dirs not tracked in skills.db (canonical/user/delete/skip)"
464
+ },
465
+ args: {
466
+ "non-interactive": {
467
+ type: "boolean",
468
+ description: "List orphans + exit without action"
469
+ },
470
+ "auto-user-adopt": {
471
+ type: "boolean",
472
+ description: "Bulk-mark all orphans as source_type=user without prompting"
473
+ },
474
+ json: {
475
+ type: "boolean",
476
+ description: "Output as JSON (default)"
477
+ },
478
+ human: {
479
+ type: "boolean",
480
+ description: "Output in human-readable format"
481
+ }
482
+ },
483
+ async run({ args }) {
484
+ const { cliError: cliError2, cliOutput: cliOutput2 } = await import("./renderers-64OR3IWX.js");
485
+ try {
486
+ const adapters = buildSkillsDoctorAdoptAdapters();
487
+ const result = await runDoctorAdopt({
488
+ nonInteractive: args["non-interactive"] === true,
489
+ autoUserAdopt: args["auto-user-adopt"] === true,
490
+ loadRegisteredNames: adapters.loadRegisteredNames,
491
+ recordRow: adapters.recordRow
492
+ });
493
+ cliOutput2(
494
+ { success: true, data: result },
495
+ { command: "skills doctor adopt-orphans", operation: "skills.doctor.adopt-orphans" }
496
+ );
497
+ } catch (error) {
498
+ const message = error instanceof Error ? error.message : String(error);
499
+ cliError2(message, "E_INTERNAL_ERROR", void 0, {
500
+ operation: "skills.doctor.adopt-orphans"
501
+ });
502
+ process.exit(1);
503
+ }
504
+ }
505
+ });
506
+ var doctorPruneCommand = defineCommand({
507
+ meta: {
508
+ name: "prune",
509
+ description: "Quarantine bundled skills CLEO no longer installs (internal/retired), only where its install ledger proves ownership"
510
+ },
511
+ args: {
512
+ "dry-run": {
513
+ type: "boolean",
514
+ description: "List what would be quarantined or kept; move nothing"
515
+ },
516
+ json: { type: "boolean", description: "Output as JSON (default)" },
517
+ human: { type: "boolean", description: "Output in human-readable format" }
518
+ },
519
+ async run({ args }) {
520
+ try {
521
+ const receipt = await runBundledSkillPrune({ dryRun: args["dry-run"] === true });
522
+ if (!receipt) {
523
+ cliError("bundled @cleocode/skills not found", "E_NOT_FOUND", void 0, {
524
+ operation: "skills.doctor.prune"
525
+ });
526
+ process.exit(4);
527
+ }
528
+ cliOutput(receipt, { command: "skills doctor prune", operation: "skills.doctor.prune" });
529
+ } catch (error) {
530
+ cliError(
531
+ error instanceof Error ? error.message : String(error),
532
+ "E_INTERNAL_ERROR",
533
+ void 0,
534
+ {
535
+ operation: "skills.doctor.prune"
536
+ }
537
+ );
538
+ process.exit(1);
539
+ }
540
+ }
541
+ });
542
+ var doctorRestoreCommand = defineCommand({
543
+ meta: {
544
+ name: "restore",
545
+ description: "List skill quarantines, or restore one by id (reverses cleo skills doctor prune). A restored skill is kept: prune never takes it again. --unkeep <name> hands it back to CLEO only when its files still hash exactly to the copy that was restored; a changed copy stays kept."
546
+ },
547
+ args: {
548
+ id: { type: "positional", required: false, description: "Quarantine id (omit to list)" },
549
+ unkeep: {
550
+ type: "string",
551
+ description: "Kept skill name to hand back to CLEO (only if unchanged since it was restored)"
552
+ },
553
+ json: { type: "boolean", description: "Output as JSON (default)" },
554
+ human: { type: "boolean", description: "Output in human-readable format" }
555
+ },
556
+ async run({ args }) {
557
+ try {
558
+ if (typeof args.unkeep === "string" && args.unkeep !== "") {
559
+ const outcome = await unkeepBundledSkill(args.unkeep);
560
+ if (!outcome.unkept) {
561
+ cliError(outcome.reason, ExitCode.VALIDATION_ERROR, {
562
+ name: "E_VALIDATION",
563
+ details: outcome
564
+ });
565
+ process.exit(ExitCode.VALIDATION_ERROR);
566
+ }
567
+ cliOutput(outcome, { command: "skills doctor restore", operation: "skills.doctor.unkeep" });
568
+ return;
569
+ }
570
+ const id = typeof args.id === "string" && args.id !== "" ? args.id : void 0;
571
+ const result = await restoreBundledSkillQuarantine(id);
572
+ cliOutput(result, { command: "skills doctor restore", operation: "skills.doctor.restore" });
573
+ } catch (error) {
574
+ cliError(
575
+ error instanceof Error ? error.message : String(error),
576
+ "E_INTERNAL_ERROR",
577
+ void 0,
578
+ {
579
+ operation: "skills.doctor.restore"
580
+ }
581
+ );
582
+ process.exit(1);
583
+ }
584
+ }
585
+ });
586
+ var statsCommand = defineCommand({
587
+ meta: {
588
+ name: "stats",
589
+ description: "Show skill telemetry stats: top-N usage, lifecycle / source-type breakdowns, agent-created skills"
590
+ },
591
+ args: {
592
+ top: {
593
+ type: "string",
594
+ description: "Top-N usage rollup limit (default 10)"
595
+ },
596
+ since: {
597
+ type: "string",
598
+ description: "Restrict the top-N rollup to the last N days (default: all-time)"
599
+ },
600
+ "by-source": {
601
+ type: "boolean",
602
+ description: "Include source-type breakdown facet"
603
+ },
604
+ "by-lifecycle": {
605
+ type: "boolean",
606
+ description: "Include lifecycle-state breakdown facet"
607
+ },
608
+ "agent-created": {
609
+ type: "boolean",
610
+ description: "Include agent-created skill list facet"
611
+ }
612
+ },
613
+ async run({ args }) {
614
+ const top = args.top ? Number(args.top) : void 0;
615
+ const sinceDays = args.since ? Number(args.since) : void 0;
616
+ await dispatchFromCli(
617
+ "query",
618
+ "tools",
619
+ "skill.stats",
620
+ {
621
+ top,
622
+ sinceDays,
623
+ bySource: args["by-source"] === true,
624
+ byLifecycle: args["by-lifecycle"] === true,
625
+ agentCreated: args["agent-created"] === true
626
+ },
627
+ { command: "skills", operation: "tools.skill.stats" }
628
+ );
629
+ }
630
+ });
631
+ var importHermesCommand = defineCommand({
632
+ meta: {
633
+ name: "import-hermes",
634
+ description: "Migrate Hermes ~/.hermes/skills/.usage.json sidecars into the CLEO skills.db registry"
635
+ },
636
+ args: {
637
+ "hermes-home": {
638
+ type: "string",
639
+ description: "Override Hermes home directory (default: $HERMES_HOME or ~/.hermes)"
640
+ },
641
+ "dry-run": {
642
+ type: "boolean",
643
+ description: "Print planned writes without mutating skills.db"
644
+ }
645
+ },
646
+ async run({ args }) {
647
+ await dispatchFromCli(
648
+ "mutate",
649
+ "tools",
650
+ "skill.import.hermes",
651
+ {
652
+ hermesHome: args["hermes-home"],
653
+ dryRun: args["dry-run"] === true
654
+ },
655
+ { command: "skills", operation: "tools.skill.import.hermes" }
656
+ );
657
+ }
658
+ });
659
+ var migrateCommand = defineCommand({
660
+ meta: {
661
+ name: "migrate",
662
+ description: "Migrate legacy skills (~/.local/share/agents/skills) into ~/.cleo/skills (SSoT)"
663
+ },
664
+ args: {
665
+ "dry-run": {
666
+ type: "boolean",
667
+ description: "Preview the plan without writing anything"
668
+ },
669
+ rollback: {
670
+ type: "boolean",
671
+ description: "Restore from the most recent backup tarball"
672
+ },
673
+ json: {
674
+ type: "boolean",
675
+ description: "Emit LAFS JSON envelope (default)"
676
+ },
677
+ human: {
678
+ type: "boolean",
679
+ description: "Emit a coloured human-readable summary instead of JSON"
680
+ }
681
+ },
682
+ async run({ args }) {
683
+ await dispatchFromCli(
684
+ "mutate",
685
+ "tools",
686
+ "skill.migrate",
687
+ {
688
+ dryRun: args["dry-run"] === true,
689
+ rollback: args.rollback === true
690
+ },
691
+ { command: "skills", operation: "tools.skill.migrate" }
692
+ );
693
+ }
694
+ });
695
+ var pruneTelemetryCommand = defineCommand({
696
+ meta: {
697
+ name: "prune-telemetry",
698
+ description: "Delete skill_usage rows older than --older-than DAYS (default 180); optional --vacuum reclaims disk space"
699
+ },
700
+ args: {
701
+ "older-than": {
702
+ type: "string",
703
+ description: "Age threshold in days (default 180)"
704
+ },
705
+ "dry-run": {
706
+ type: "boolean",
707
+ description: "Print planned deletes without touching the DB"
708
+ },
709
+ vacuum: {
710
+ type: "boolean",
711
+ description: "Run VACUUM after the delete to reclaim disk space"
712
+ }
713
+ },
714
+ async run({ args }) {
715
+ const olderThanDays = args["older-than"] ? Number(args["older-than"]) : void 0;
716
+ await dispatchFromCli(
717
+ "mutate",
718
+ "tools",
719
+ "skill.prune.telemetry",
720
+ {
721
+ olderThanDays,
722
+ dryRun: args["dry-run"] === true,
723
+ vacuum: args.vacuum === true
724
+ },
725
+ { command: "skills", operation: "tools.skill.prune.telemetry" }
726
+ );
727
+ }
728
+ });
729
+ var spawnProvidersCommand = defineCommand({
730
+ meta: { name: "spawn-providers", description: "List providers capable of spawning subagents" },
731
+ args: {
732
+ capability: {
733
+ type: "string",
734
+ description: "Filter by capability: supportsSubagents, supportsProgrammaticSpawn, supportsInterAgentComms, supportsParallelSpawn"
735
+ }
736
+ },
737
+ async run({ args }) {
738
+ await dispatchFromCli(
739
+ "query",
740
+ "tools",
741
+ "skill.spawn.providers",
742
+ { capability: args.capability },
743
+ { command: "skills", operation: "tools.skill.spawn.providers" }
744
+ );
745
+ }
746
+ });
747
+ var doctorDiagnoseCommand = defineCommand({
748
+ meta: {
749
+ name: "diagnose",
750
+ description: "Read-only health report on skill storage, db drift, orphans, and bridge symlinks"
751
+ },
752
+ args: {
753
+ verbose: {
754
+ type: "boolean",
755
+ description: "Include per-skill detail in the rendered summary"
756
+ }
757
+ },
758
+ async run({ args }) {
759
+ await dispatchFromCli(
760
+ "query",
761
+ "tools",
762
+ "skill.doctor.diagnose",
763
+ { verbose: !!args.verbose },
764
+ { command: "skills", operation: "tools.skill.doctor.diagnose" }
765
+ );
766
+ }
767
+ });
768
+ var doctorCommand = defineCommand({
769
+ meta: {
770
+ name: "doctor",
771
+ description: "Skill-store health checks (diagnose, bridge, adopt-orphans, prune, restore)"
772
+ },
773
+ subCommands: {
774
+ diagnose: doctorDiagnoseCommand,
775
+ bridge: doctorBridgeCommand,
776
+ "adopt-orphans": doctorAdoptOrphansCommand,
777
+ prune: doctorPruneCommand,
778
+ restore: doctorRestoreCommand
779
+ },
780
+ async run({ cmd, rawArgs }) {
781
+ if (isSubCommandDispatch(rawArgs, cmd.subCommands)) return;
782
+ await dispatchFromCli(
783
+ "query",
784
+ "tools",
785
+ "skill.doctor.diagnose",
786
+ { verbose: false },
787
+ { command: "skills", operation: "tools.skill.doctor.diagnose" }
788
+ );
789
+ }
790
+ });
791
+ var proposePatchCommand = defineCommand({
792
+ meta: {
793
+ name: "propose-patch",
794
+ description: "Open a PR against the cleocode repo carrying a canonical-skill patch (Sphere A)"
795
+ },
796
+ args: {
797
+ "skill-name": {
798
+ type: "positional",
799
+ description: "Skill identifier (e.g. ct-orchestrator)",
800
+ required: true
801
+ },
802
+ diff: {
803
+ type: "string",
804
+ description: "Path to a unified-diff file to apply",
805
+ required: true
806
+ },
807
+ title: {
808
+ type: "string",
809
+ description: 'PR title (defaults to "skill(<name>): proposed patch")'
810
+ },
811
+ body: {
812
+ type: "string",
813
+ description: "PR body markdown (defaults to a stub citing the skill + diff path)"
814
+ },
815
+ base: {
816
+ type: "string",
817
+ description: "Base branch for the PR (defaults to main)"
818
+ },
819
+ "dry-run": {
820
+ type: "boolean",
821
+ description: "Print the steps without invoking git/gh"
822
+ },
823
+ json: {
824
+ type: "boolean",
825
+ description: "Emit LAFS JSON envelope"
826
+ }
827
+ },
828
+ async run({ args }) {
829
+ const skillName = String(args["skill-name"]);
830
+ const diffPath = String(args.diff);
831
+ const title = typeof args.title === "string" ? args.title : void 0;
832
+ const body = typeof args.body === "string" ? args.body : void 0;
833
+ const base = typeof args.base === "string" ? args.base : void 0;
834
+ const dryRun = args["dry-run"] === true;
835
+ void (args.json === true);
836
+ const result = await coreSkills.proposeCanonicalPatch({
837
+ skillName,
838
+ diffPath,
839
+ title,
840
+ body,
841
+ base,
842
+ dryRun
843
+ });
844
+ if (result.kind === "error") {
845
+ cliError(
846
+ result.message,
847
+ result.code,
848
+ { name: result.code },
849
+ { operation: "tools.skill.propose-patch" }
850
+ );
851
+ process.exit(1);
852
+ return;
853
+ }
854
+ if (result.kind === "dry-run") {
855
+ cliOutput(
856
+ {
857
+ skillName: result.skillName,
858
+ diffPath: result.diffPath,
859
+ branchName: result.branchName,
860
+ base: result.base,
861
+ steps: result.steps,
862
+ dryRun: true
863
+ },
864
+ {
865
+ command: "skills",
866
+ message: `[dry-run] would open PR for ${result.skillName} on branch ${result.branchName}`,
867
+ operation: "tools.skill.propose-patch"
868
+ }
869
+ );
870
+ return;
871
+ }
872
+ cliOutput(
873
+ {
874
+ skillName: result.skillName,
875
+ prUrl: result.prUrl,
876
+ branchName: result.branchName,
877
+ base: result.base
878
+ },
879
+ {
880
+ command: "skills",
881
+ message: `Opened PR ${result.prUrl}`,
882
+ operation: "tools.skill.propose-patch"
883
+ }
884
+ );
885
+ }
886
+ });
887
+ var skillsCommand = defineCommand({
888
+ meta: { name: "skills", description: "Skill management: list, search, validate, info, install" },
889
+ subCommands: {
890
+ list: listCommand,
891
+ search: searchCommand,
892
+ find: findCommand,
893
+ validate: validateCommand,
894
+ info: infoCommand,
895
+ install: installCommand,
896
+ uninstall: uninstallCommand,
897
+ enable: enableCommand,
898
+ disable: disableCommand,
899
+ refresh: refreshCommand,
900
+ dispatch: dispatchCommand,
901
+ catalog: catalogCommand,
902
+ precedence: precedenceCommand,
903
+ deps: depsCommand,
904
+ "spawn-providers": spawnProvidersCommand,
905
+ doctor: doctorCommand,
906
+ "propose-patch": proposePatchCommand,
907
+ stats: statsCommand,
908
+ "import-hermes": importHermesCommand,
909
+ migrate: migrateCommand,
910
+ "prune-telemetry": pruneTelemetryCommand
911
+ },
912
+ async run({ cmd, rawArgs }) {
913
+ if (isSubCommandDispatch(rawArgs, cmd.subCommands)) return;
914
+ await dispatchFromCli(
915
+ "query",
916
+ "tools",
917
+ "skill.list",
918
+ {
919
+ scope: "project"
920
+ },
921
+ { command: "skills", operation: "tools.skill.list" }
922
+ );
923
+ }
924
+ });
925
+ export {
926
+ skillsCommand
927
+ };
928
+ //# sourceMappingURL=skills-EDWLKAF3.js.map