@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,232 @@
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 "./chunk-C3B7C43W.js";
17
+ import {
18
+ defineCommand,
19
+ showUsage
20
+ } from "./chunk-PKKZPOOP.js";
21
+
22
+ // packages/cleo/src/cli/commands/workgraph.ts
23
+ import { readFileSync } from "node:fs";
24
+ import { resolve } from "node:path";
25
+ var validateCommand = defineCommand({
26
+ meta: {
27
+ name: "validate",
28
+ description: "Validate a WorkGraph scaffold JSON payload (dry-run)"
29
+ },
30
+ args: {
31
+ file: {
32
+ type: "positional",
33
+ description: "Path to scaffold JSON file",
34
+ required: true
35
+ }
36
+ },
37
+ async run({ args }) {
38
+ const { validateWorkGraphScaffold } = await import("@cleocode/core/workgraph");
39
+ const { cliOutput } = await import("./renderers-64OR3IWX.js");
40
+ const filePath = resolve(String(args.file));
41
+ let raw;
42
+ try {
43
+ raw = readFileSync(filePath, "utf-8");
44
+ } catch {
45
+ cliOutput(
46
+ { error: `Cannot read file: ${filePath}` },
47
+ { command: "workgraph", operation: "validate" }
48
+ );
49
+ return;
50
+ }
51
+ let payload;
52
+ try {
53
+ payload = JSON.parse(raw);
54
+ } catch {
55
+ cliOutput(
56
+ { error: `Invalid JSON in ${filePath}` },
57
+ { command: "workgraph", operation: "validate" }
58
+ );
59
+ return;
60
+ }
61
+ const result = validateWorkGraphScaffold(payload);
62
+ cliOutput(result, { command: "workgraph", operation: "validate" });
63
+ }
64
+ });
65
+ var applyCommand = defineCommand({
66
+ meta: {
67
+ name: "apply",
68
+ description: "Atomically apply a WorkGraph scaffold to the task database"
69
+ },
70
+ args: {
71
+ file: {
72
+ type: "positional",
73
+ description: "Path to scaffold JSON file",
74
+ required: true
75
+ },
76
+ "dry-run": {
77
+ type: "boolean",
78
+ description: "Validate only, do not write to the database",
79
+ required: false
80
+ }
81
+ },
82
+ async run({ args }) {
83
+ const { applyWorkGraphScaffold } = await import("@cleocode/core/workgraph");
84
+ const { cliOutput } = await import("./renderers-64OR3IWX.js");
85
+ const filePath = resolve(String(args.file));
86
+ let raw;
87
+ try {
88
+ raw = readFileSync(filePath, "utf-8");
89
+ } catch {
90
+ cliOutput(
91
+ { error: `Cannot read file: ${filePath}` },
92
+ { command: "workgraph", operation: "apply" }
93
+ );
94
+ return;
95
+ }
96
+ let payload;
97
+ try {
98
+ payload = JSON.parse(raw);
99
+ } catch {
100
+ cliOutput(
101
+ { error: `Invalid JSON in ${filePath}` },
102
+ { command: "workgraph", operation: "apply" }
103
+ );
104
+ return;
105
+ }
106
+ const result = await applyWorkGraphScaffold({ ...payload, apply: !args["dry-run"] });
107
+ cliOutput(result, { command: "workgraph", operation: "apply" });
108
+ }
109
+ });
110
+ var planCommand = defineCommand({
111
+ meta: {
112
+ name: "plan",
113
+ description: "Generate a planning doc from a Saga WorkGraph"
114
+ },
115
+ args: {
116
+ sagaId: {
117
+ type: "positional",
118
+ description: "Saga task ID to generate the plan for",
119
+ required: true
120
+ },
121
+ audience: {
122
+ type: "string",
123
+ description: "Audience: agent (compact) or maintainer (prose)",
124
+ required: false,
125
+ default: "maintainer"
126
+ }
127
+ },
128
+ async run({ args }) {
129
+ const { generatePlanningDoc } = await import("@cleocode/core/workgraph");
130
+ const { getProjectRoot } = await import("@cleocode/core");
131
+ const { cliOutput } = await import("./renderers-64OR3IWX.js");
132
+ const projectRoot = getProjectRoot();
133
+ const audience = String(args.audience) === "agent" ? "agent" : "maintainer";
134
+ const result = await generatePlanningDoc(projectRoot, {
135
+ sagaId: String(args.sagaId),
136
+ audience
137
+ });
138
+ cliOutput(result, { command: "workgraph", operation: "plan" });
139
+ }
140
+ });
141
+ var structureCommand = defineCommand({
142
+ meta: {
143
+ name: "structure",
144
+ description: "Validate WorkGraph structure (cycles, depth violations, orphans)"
145
+ },
146
+ async run() {
147
+ const { validateWorkGraphStructure } = await import("@cleocode/core/workgraph");
148
+ const { taskList } = await import("@cleocode/core/internal");
149
+ const { getProjectRoot } = await import("@cleocode/core");
150
+ const { cliOutput } = await import("./renderers-64OR3IWX.js");
151
+ const projectRoot = getProjectRoot();
152
+ const listResult = await taskList(projectRoot, { limit: 5e3 });
153
+ const tasks = listResult.success ? listResult.data?.tasks ?? [] : [];
154
+ const nodes = tasks.map((t) => ({
155
+ id: String(t.id ?? ""),
156
+ type: t.type ?? "task",
157
+ parentId: t.parentId ?? null,
158
+ phase: t.phase ?? null
159
+ }));
160
+ const result = validateWorkGraphStructure(nodes, {});
161
+ cliOutput(result, { command: "workgraph", operation: "structure" });
162
+ }
163
+ });
164
+ var statusCommand = defineCommand({
165
+ meta: {
166
+ name: "status",
167
+ description: "One-shot saga-to-saga workgraph dashboard (tracking checklist)"
168
+ },
169
+ async run() {
170
+ const { sagas, getProjectRoot } = await import("@cleocode/core");
171
+ const { cliOutput } = await import("./renderers-64OR3IWX.js");
172
+ const projectRoot = getProjectRoot();
173
+ const listResult = await sagas.sagaList(projectRoot);
174
+ if (!listResult.success) {
175
+ cliOutput(listResult, { command: "workgraph", operation: "workgraph.status" });
176
+ return;
177
+ }
178
+ const allSagas = listResult.data?.sagas ?? [];
179
+ const sagaMap = new Map(
180
+ allSagas.map((s) => [s.id, s])
181
+ );
182
+ const TERMINAL = /* @__PURE__ */ new Set(["done", "cancelled", "deleted", "archived", "completed"]);
183
+ const rows = [];
184
+ for (let i = 0; i < sagas.CANONICAL_SAGA_ORDER.length; i++) {
185
+ const [id, label] = sagas.CANONICAL_SAGA_ORDER[i];
186
+ const saga = sagaMap.get(id);
187
+ if (!saga) continue;
188
+ const status = saga.status ?? "pending";
189
+ const rollupResult = await sagas.sagaRollup(projectRoot, { sagaId: id });
190
+ const rollup = rollupResult.success ? rollupResult.data : { total: 0, done: 0, completionPct: 0 };
191
+ rows.push({
192
+ rank: i + 1,
193
+ sagaId: id,
194
+ status,
195
+ completionPct: rollup.completionPct ?? 0,
196
+ done: rollup.done ?? 0,
197
+ total: rollup.total ?? 0,
198
+ label: TERMINAL.has(status) ? `${label} \u2713` : label
199
+ });
200
+ }
201
+ cliOutput(
202
+ {
203
+ rows,
204
+ total: rows.length,
205
+ activeSagaCount: rows.filter((r) => !TERMINAL.has(r.status)).length
206
+ },
207
+ { command: "workgraph", operation: "workgraph.status" }
208
+ );
209
+ }
210
+ });
211
+ var workgraphCommand = defineCommand({
212
+ meta: {
213
+ name: "workgraph",
214
+ description: "PM-Core V2 WorkGraph operations \u2014 validate, apply, plan, structure, status"
215
+ },
216
+ subCommands: {
217
+ validate: validateCommand,
218
+ apply: applyCommand,
219
+ plan: planCommand,
220
+ structure: structureCommand,
221
+ status: statusCommand
222
+ },
223
+ async run({ cmd, rawArgs }) {
224
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
225
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
226
+ await showUsage(cmd);
227
+ }
228
+ });
229
+ export {
230
+ workgraphCommand
231
+ };
232
+ //# sourceMappingURL=workgraph-FXBSZDQE.js.map
@@ -0,0 +1,370 @@
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
+ defineCommand,
18
+ showUsage
19
+ } from "./chunk-PKKZPOOP.js";
20
+ import {
21
+ dispatchFromCli
22
+ } from "./chunk-3IOQVUO7.js";
23
+ import "./chunk-AWCQH2W5.js";
24
+ import "./chunk-OGV57L4J.js";
25
+ import "./chunk-ZBISIPCK.js";
26
+ import {
27
+ cliError,
28
+ cliOutput
29
+ } from "./chunk-3ZO3M37V.js";
30
+ import "./chunk-6JSJNYH2.js";
31
+ import "./chunk-QFFQSKRC.js";
32
+
33
+ // packages/cleo/src/cli/commands/worktree.ts
34
+ import readline from "node:readline";
35
+ import { getProjectRoot, listWorktrees } from "@cleocode/core/internal";
36
+ var VALID_STATUS_VALUES = ["active", "stale", "merged", "orphan", "locked"];
37
+ var listCommand = defineCommand({
38
+ meta: {
39
+ name: "list",
40
+ description: "List worktrees attached to this project with status classification (active|stale|merged|orphan|locked)."
41
+ },
42
+ args: {
43
+ status: {
44
+ type: "string",
45
+ description: `Filter by status category (single value or comma-separated list of ${VALID_STATUS_VALUES.join("|")}).`
46
+ },
47
+ days: {
48
+ type: "string",
49
+ description: "Staleness threshold in days for the isStale classifier (default: 7)."
50
+ }
51
+ },
52
+ async run({ args }) {
53
+ const statusFilter = typeof args["status"] === "string" && args["status"].length > 0 ? args["status"] : void 0;
54
+ const staleDaysRaw = typeof args["days"] === "string" ? args["days"] : void 0;
55
+ const staleDays = staleDaysRaw !== void 0 ? Number.parseInt(staleDaysRaw, 10) : void 0;
56
+ await dispatchFromCli(
57
+ "query",
58
+ "worktree",
59
+ "list",
60
+ {
61
+ ...statusFilter !== void 0 ? { statusFilter } : {},
62
+ ...staleDays !== void 0 && !Number.isNaN(staleDays) ? { staleDays } : {}
63
+ },
64
+ { command: "worktree-list", operation: "worktree.list" }
65
+ );
66
+ }
67
+ });
68
+ async function promptYesNo(question) {
69
+ return new Promise((resolve) => {
70
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
71
+ rl.question(`${question} [y/N]: `, (answer) => {
72
+ rl.close();
73
+ const trimmed = answer.trim().toLowerCase();
74
+ resolve(trimmed === "y" || trimmed === "yes");
75
+ });
76
+ });
77
+ }
78
+ function renderOrphanPreamble(wt) {
79
+ return [
80
+ "Orphaned worktree found:",
81
+ ` Path: ${wt.path}`,
82
+ ` Branch: ${wt.branch}${wt.isMerged ? " (merged to main)" : ""}`,
83
+ ` Task status: ${wt.owningTaskStatus ?? "(missing)"}`,
84
+ ` Last activity: ${wt.lastActivity}`,
85
+ ""
86
+ ].join("\n");
87
+ }
88
+ var pruneCommand = defineCommand({
89
+ meta: {
90
+ name: "prune",
91
+ description: "Remove orphan/merged worktrees with per-orphan Y/N confirmation."
92
+ },
93
+ args: {
94
+ orphaned: {
95
+ type: "boolean",
96
+ description: "Prune worktrees classified as orphan or merged (required).",
97
+ default: false
98
+ },
99
+ yes: {
100
+ type: "boolean",
101
+ description: "Skip per-orphan confirmation. Required on non-TTY (CI / pipe) input.",
102
+ default: false
103
+ },
104
+ "dry-run": {
105
+ type: "boolean",
106
+ description: "Show what would be pruned without acting. No audit-log entries written.",
107
+ default: false
108
+ },
109
+ days: {
110
+ type: "string",
111
+ description: "Override staleness threshold passed through to the listing (default: 7)."
112
+ },
113
+ "idle-days": {
114
+ type: "string",
115
+ description: "Abandonment-timeout threshold in days (T9805 AC2). Worktrees whose last commit is older than this value AND have no open PR are also pruned."
116
+ }
117
+ },
118
+ async run({ args }) {
119
+ if (args["orphaned"] !== true) {
120
+ cliError(
121
+ "cleo worktree prune requires --orphaned (other categories are reserved for future flags).",
122
+ 2
123
+ );
124
+ process.exit(2);
125
+ return;
126
+ }
127
+ const dryRun = args["dry-run"] === true;
128
+ const yes = args["yes"] === true;
129
+ const staleDaysRaw = typeof args["days"] === "string" ? args["days"] : void 0;
130
+ const staleDays = staleDaysRaw !== void 0 ? Number.parseInt(staleDaysRaw, 10) : void 0;
131
+ const idleDaysRaw = typeof args["idle-days"] === "string" ? args["idle-days"] : void 0;
132
+ const idleDays = idleDaysRaw !== void 0 ? Number.parseInt(idleDaysRaw, 10) : void 0;
133
+ const projectRoot = getProjectRoot();
134
+ const listResult = await listWorktrees({
135
+ projectRoot,
136
+ ...staleDays !== void 0 && !Number.isNaN(staleDays) ? { staleDays } : {}
137
+ });
138
+ if (!listResult.success) {
139
+ cliError(`Failed to enumerate worktrees: ${listResult.error.message}`, 1);
140
+ process.exit(1);
141
+ return;
142
+ }
143
+ const candidates = listResult.data.worktrees.filter(
144
+ (w) => w.statusCategory === "orphan" || w.statusCategory === "merged"
145
+ );
146
+ if (candidates.length === 0) {
147
+ cliOutput(
148
+ {
149
+ prunedCount: 0,
150
+ skippedCount: 0,
151
+ outcomes: [],
152
+ errors: [],
153
+ dryRun,
154
+ message: "No orphan or merged worktrees found."
155
+ },
156
+ { command: "worktree-prune", operation: "worktree.prune" }
157
+ );
158
+ return;
159
+ }
160
+ const isTty = process.stdin.isTTY === true;
161
+ if (!isTty && !yes && !dryRun) {
162
+ cliError(
163
+ "cleo worktree prune is interactive \u2014 re-run with --yes or --dry-run on non-TTY input.",
164
+ 2
165
+ );
166
+ process.exit(2);
167
+ return;
168
+ }
169
+ let confirmedPaths;
170
+ let skippedByUser = 0;
171
+ if (dryRun || yes) {
172
+ confirmedPaths = candidates.map((w) => w.path);
173
+ } else {
174
+ confirmedPaths = [];
175
+ for (const wt of candidates) {
176
+ process.stdout.write(renderOrphanPreamble(wt));
177
+ const accepted = await promptYesNo("Prune this worktree?");
178
+ if (accepted) {
179
+ confirmedPaths.push(wt.path);
180
+ } else {
181
+ skippedByUser += 1;
182
+ }
183
+ }
184
+ }
185
+ if (confirmedPaths.length === 0) {
186
+ cliOutput(
187
+ {
188
+ prunedCount: 0,
189
+ skippedCount: skippedByUser,
190
+ outcomes: [],
191
+ errors: [],
192
+ dryRun,
193
+ message: skippedByUser > 0 ? `Skipped ${skippedByUser} orphan(s) on user request.` : "No-op."
194
+ },
195
+ { command: "worktree-prune", operation: "worktree.prune" }
196
+ );
197
+ return;
198
+ }
199
+ await dispatchFromCli(
200
+ "mutate",
201
+ "worktree",
202
+ "prune",
203
+ {
204
+ dryRun,
205
+ paths: confirmedPaths,
206
+ ...staleDays !== void 0 && !Number.isNaN(staleDays) ? { staleDays } : {},
207
+ ...idleDays !== void 0 && !Number.isNaN(idleDays) ? { idleDays } : {}
208
+ },
209
+ { command: "worktree-prune", operation: "worktree.prune" }
210
+ );
211
+ }
212
+ });
213
+ var destroyCommand = defineCommand({
214
+ meta: {
215
+ name: "destroy",
216
+ description: "Destroy the XDG worktree for a task, update audit log and sentinel index (T9805)."
217
+ },
218
+ args: {
219
+ taskId: {
220
+ type: "positional",
221
+ description: "The task ID whose worktree to destroy (e.g. T9805).",
222
+ required: true
223
+ },
224
+ force: {
225
+ type: "boolean",
226
+ description: "Force removal even when the worktree has uncommitted changes.",
227
+ default: false
228
+ },
229
+ reason: {
230
+ type: "string",
231
+ description: "Reason string recorded in the audit log (e.g. pr-merged, manual, idle-timeout)."
232
+ },
233
+ "keep-branch": {
234
+ type: "boolean",
235
+ description: "Do not delete the task branch after removing the worktree.",
236
+ default: false
237
+ }
238
+ },
239
+ async run({ args }) {
240
+ const rawTaskId = typeof args["taskId"] === "string" ? args["taskId"] : "";
241
+ if (rawTaskId.length === 0) {
242
+ cliError("Missing required positional: <taskId>.", 2);
243
+ process.exit(2);
244
+ return;
245
+ }
246
+ const reason = typeof args["reason"] === "string" && args["reason"].length > 0 ? args["reason"] : "manual";
247
+ await dispatchFromCli(
248
+ "mutate",
249
+ "worktree",
250
+ "destroy",
251
+ {
252
+ taskId: rawTaskId,
253
+ force: args["force"] === true,
254
+ deleteBranch: args["keep-branch"] !== true,
255
+ reason
256
+ },
257
+ { command: "worktree-destroy", operation: "worktree.destroy" }
258
+ );
259
+ }
260
+ });
261
+ var forceUnlockCommand = defineCommand({
262
+ meta: {
263
+ name: "force-unlock",
264
+ description: "Clear wedged lock state (.git/index.lock + git worktree unlock) for a task."
265
+ },
266
+ args: {
267
+ taskId: {
268
+ type: "positional",
269
+ description: "The task ID whose worktree should be force-unlocked (e.g. T9547).",
270
+ required: true
271
+ }
272
+ },
273
+ async run({ args }) {
274
+ const rawTaskId = typeof args["taskId"] === "string" ? args["taskId"] : "";
275
+ if (rawTaskId.length === 0) {
276
+ cliError("Missing required positional: <taskId>.", 2);
277
+ process.exit(2);
278
+ return;
279
+ }
280
+ await dispatchFromCli(
281
+ "mutate",
282
+ "worktree",
283
+ "forceUnlock",
284
+ { taskId: rawTaskId },
285
+ { command: "worktree-force-unlock", operation: "worktree.forceUnlock" }
286
+ );
287
+ }
288
+ });
289
+ var VALID_ADOPT_SOURCES = ["claude-agent", "manual", "adopted"];
290
+ var adoptCommand = defineCommand({
291
+ meta: {
292
+ name: "adopt",
293
+ description: "Register an externally-created worktree (e.g. Claude Code Agent isolation:worktree) in the CLEO SSoT so it surfaces in `cleo worktree list`."
294
+ },
295
+ args: {
296
+ path: {
297
+ type: "positional",
298
+ description: "Absolute or relative path to the worktree directory to adopt. For Claude Code Agent worktrees this is typically `.claude/worktrees/<sessionId>/`.",
299
+ required: true
300
+ },
301
+ source: {
302
+ type: "string",
303
+ description: `Source classification for this worktree (${VALID_ADOPT_SOURCES.join("|")}). Defaults to \`claude-agent\` for paths under \`.claude/worktrees/\`, else \`manual\`.`
304
+ },
305
+ "task-id": {
306
+ type: "string",
307
+ description: "Optional task ID to associate with this worktree. When omitted the command attempts to extract it from the branch name."
308
+ },
309
+ actor: {
310
+ type: "string",
311
+ description: "Override actor name written to the audit log."
312
+ },
313
+ recover: {
314
+ type: "boolean",
315
+ description: "After adopting, recover a partial ETIMEDOUT worktree by running pnpm install and clearing stale git locks.",
316
+ default: false
317
+ }
318
+ },
319
+ async run({ args }) {
320
+ const rawPath = typeof args["path"] === "string" ? args["path"] : "";
321
+ if (rawPath.length === 0) {
322
+ cliError("Missing required positional: <path>.", 2);
323
+ process.exit(2);
324
+ return;
325
+ }
326
+ const rawSource = typeof args["source"] === "string" ? args["source"] : void 0;
327
+ const source = rawSource !== void 0 && VALID_ADOPT_SOURCES.includes(rawSource) ? rawSource : void 0;
328
+ const rawTaskId = typeof args["task-id"] === "string" ? args["task-id"] : void 0;
329
+ const rawActor = typeof args["actor"] === "string" ? args["actor"] : void 0;
330
+ await dispatchFromCli(
331
+ "mutate",
332
+ "worktree",
333
+ "adopt",
334
+ {
335
+ worktreePath: rawPath,
336
+ ...source !== void 0 ? { source } : {},
337
+ ...rawTaskId !== void 0 ? { taskId: rawTaskId } : {},
338
+ ...rawActor !== void 0 ? { actor: rawActor } : {},
339
+ recover: args["recover"] === true
340
+ },
341
+ { command: "worktree-adopt", operation: "worktree.adopt" }
342
+ );
343
+ }
344
+ });
345
+ var worktreeCommand = defineCommand({
346
+ meta: {
347
+ name: "worktree",
348
+ description: "Inspect and manage CLEO-attached git worktrees. See `cleo worktree <subcommand> --help` for details."
349
+ },
350
+ subCommands: {
351
+ list: listCommand,
352
+ adopt: adoptCommand,
353
+ prune: pruneCommand,
354
+ destroy: destroyCommand,
355
+ "force-unlock": forceUnlockCommand
356
+ },
357
+ // Early-return when a subcommand was matched; citty still invokes the
358
+ // parent run() after the subcommand finishes which would otherwise
359
+ // append the help text to the subcommand's JSON envelope output
360
+ // (T9686-A bug A4).
361
+ async run({ cmd, rawArgs }) {
362
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
363
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
364
+ await showUsage(cmd);
365
+ }
366
+ });
367
+ export {
368
+ worktreeCommand
369
+ };
370
+ //# sourceMappingURL=worktree-6RXAJIST.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/cleo",
3
- "version": "2026.10.2",
3
+ "version": "2026.10.4",
4
4
  "description": "CLEO CLI — the assembled product consuming @cleocode/core",
5
5
  "type": "module",
6
6
  "main": "./dist/cli/index.js",
@@ -31,17 +31,17 @@
31
31
  "tree-sitter-rust": "0.23.1",
32
32
  "tree-sitter-typescript": "^0.23.2",
33
33
  "yaml": "^2.8.3",
34
- "@cleocode/animations": "2026.10.2",
35
- "@cleocode/contracts": "2026.10.2",
36
- "@cleocode/caamp": "2026.10.2",
37
- "@cleocode/core": "2026.10.2",
38
- "@cleocode/cant": "2026.10.2",
39
- "@cleocode/lafs": "2026.10.2",
40
- "@cleocode/nexus": "2026.10.2",
41
- "@cleocode/paths": "2026.10.2",
42
- "@cleocode/playbooks": "2026.10.2",
43
- "@cleocode/runtime": "2026.10.2",
44
- "@cleocode/worktree": "2026.10.2"
34
+ "@cleocode/animations": "2026.10.4",
35
+ "@cleocode/caamp": "2026.10.4",
36
+ "@cleocode/cant": "2026.10.4",
37
+ "@cleocode/contracts": "2026.10.4",
38
+ "@cleocode/core": "2026.10.4",
39
+ "@cleocode/lafs": "2026.10.4",
40
+ "@cleocode/paths": "2026.10.4",
41
+ "@cleocode/playbooks": "2026.10.4",
42
+ "@cleocode/nexus": "2026.10.4",
43
+ "@cleocode/runtime": "2026.10.4",
44
+ "@cleocode/worktree": "2026.10.4"
45
45
  },
46
46
  "engines": {
47
47
  "node": ">=24.16.0"
@@ -63,7 +63,7 @@
63
63
  "devDependencies": {
64
64
  "@types/node-cron": "^3.0.11",
65
65
  "vitest": "^4.1.4",
66
- "@cleocode/utils": "2026.10.2"
66
+ "@cleocode/utils": "2026.10.4"
67
67
  },
68
68
  "repository": {
69
69
  "type": "git",
@@ -1 +1 @@
1
- import"./DGftG5oL.js";import{o as e}from"./CLP4JZvZ.js";var t=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},n={subscribe(e){return t().page.subscribe(e)}};export{n as t};
1
+ import"./DGftG5oL.js";import{o as e}from"./DgEKqO6r.js";var t=()=>{let t=e;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},n={subscribe(e){return t().page.subscribe(e)}};export{n as t};
@@ -1 +1 @@
1
- import"./DGftG5oL.js";import{c as e,o as t,s as n}from"./CLP4JZvZ.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},`current`,{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
1
+ import"./DGftG5oL.js";import{c as e,o as t,s as n}from"./DgEKqO6r.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},`current`,{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};