@cleocode/cleo 2026.10.3 → 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 -94612
  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/{DMj27Pxj.js → Btgeq_wq.js} +1 -1
  254. package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → CgBjxmu6.js} +1 -1
  255. package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.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.CHWXLeE9.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.DmKQGvFh.js → 0.nTXyRfc-.js} +1 -1
  260. package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.4zrWeHtl.js} +1 -1
  261. package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.D9mk4JyY.js} +1 -1
  262. package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16._-wt-sQf.js} +1 -1
  263. package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CUu6LQDj.js} +1 -1
  264. package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.Dz4QRTkX.js} +1 -1
  265. package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.CJ2_EB0U.js} +1 -1
  266. package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.js → 24.Igj2FS7k.js} +1 -1
  267. package/studio-dist/client/_app/immutable/nodes/{25.D1vYaH8g.js → 25.BnATjVGN.js} +2 -2
  268. package/studio-dist/client/_app/immutable/nodes/{26.C3rNqzZF.js → 26.6iPyjT44.js} +1 -1
  269. package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.AA5GwNgP.js} +1 -1
  270. package/studio-dist/client/_app/version.json +1 -1
  271. package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-DGmsoBYm.js} +3 -3
  272. package/studio-dist/server/chunks/1-8PfxPvlK.js +9 -0
  273. package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-Bg6YTndh.js} +3 -3
  274. package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-BObLwgyD.js} +3 -3
  275. package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-BNXGyAHX.js} +3 -3
  276. package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-UqQFRIID.js} +3 -3
  277. package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-CMn8a_yP.js} +3 -3
  278. package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-BuOTDzib.js} +3 -3
  279. package/studio-dist/server/chunks/{25-CYsps38R.js → 25-CIMSmjVx.js} +4 -4
  280. package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-DWGObn2T.js} +3 -3
  281. package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-CyiffdJZ.js} +3 -3
  282. package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-DYtClaIk.js} +4 -4
  283. package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-1h9E6s_f.js} +3 -3
  284. package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-BNNF62Nm.js} +3 -3
  285. package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-BT1EUadj.js} +5 -5
  286. package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-Bip079LT.js} +3 -3
  287. package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-CEATWp_5.js} +3 -3
  288. package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-CV3xiD1y.js} +4 -4
  289. package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-Cv_KVJDV.js} +3 -3
  290. package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DSSy6LuK.js} +3 -3
  291. package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-TF795TAS.js} +3 -3
  292. package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.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-CPM4LrO2.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-ShcZo43D.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-Cgsrya1j.js → internal-CTULuLPB.js} +2 -2
  302. package/studio-dist/server/chunks/{stores-BGrpEDMK.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/Bw6J8NDM.js +0 -1
  306. package/studio-dist/client/_app/immutable/entry/start.C9bwPpvc.js +0 -1
  307. package/studio-dist/server/chunks/1-CVo7Nk6d.js +0 -9
@@ -0,0 +1,157 @@
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
+ BOLD,
18
+ CYAN,
19
+ DIM,
20
+ GREEN,
21
+ NC,
22
+ RED,
23
+ YELLOW
24
+ } from "./chunk-V5GBGOGM.js";
25
+ import {
26
+ defineCommand
27
+ } from "./chunk-PKKZPOOP.js";
28
+ import {
29
+ cliOutput
30
+ } from "./chunk-3ZO3M37V.js";
31
+ import {
32
+ isJsonFormat
33
+ } from "./chunk-6JSJNYH2.js";
34
+
35
+ // packages/cleo/src/cli/commands/status.ts
36
+ import { getCleoStatus } from "@cleocode/core/status";
37
+ function formatEpoch(epoch) {
38
+ if (epoch == null) return "";
39
+ const d = new Date(epoch);
40
+ if (Number.isNaN(d.getTime())) return "";
41
+ return d.toISOString().replace("T", " ").slice(0, 19) + "Z";
42
+ }
43
+ function renderCredentialLine(c) {
44
+ const badges = [];
45
+ if (c.lastStatus === "invalid") badges.push(`${RED}${BOLD}[INVALID]${NC}`);
46
+ if (c.isExpired === true) badges.push(`${YELLOW}${BOLD}[EXPIRED]${NC}`);
47
+ const label = c.label ?? "(no label)";
48
+ const head = `${BOLD}${c.provider}${NC} ${DIM}${label}${NC}`;
49
+ const meta = [];
50
+ meta.push(`source=${c.source}`);
51
+ if (c.authType !== void 0) meta.push(`authType=${c.authType}`);
52
+ if (c.lastStatus !== void 0) meta.push(`lastStatus=${c.lastStatus}`);
53
+ if (c.expiresAt != null) meta.push(`expiresAt=${formatEpoch(c.expiresAt)}`);
54
+ const metaLine = `${DIM}${meta.join(" \xB7 ")}${NC}`;
55
+ const badgeStr = badges.length > 0 ? ` ${badges.join(" ")}` : "";
56
+ return ` ${head}${badgeStr}
57
+ ${metaLine}`;
58
+ }
59
+ function renderStatusHuman(status) {
60
+ const lines = [];
61
+ if (status.config.hasSecretsInProjectConfig) {
62
+ lines.push(`${RED}${BOLD}WARNING: Secrets detected in project config${NC}`);
63
+ for (const w of status.config.secretsWarnings) {
64
+ lines.push(` ${RED}${w}${NC}`);
65
+ }
66
+ lines.push("");
67
+ }
68
+ lines.push(`${BOLD}Identity${NC}`);
69
+ lines.push(` ${DIM}agentId:${NC} ${status.identity.agentId ?? "(none)"}`);
70
+ lines.push(` ${DIM}identityFile:${NC} ${status.identity.identityFile ?? "(none)"}`);
71
+ const loggedInBadge = status.identity.loggedIn ? `${GREEN}yes${NC}` : `${YELLOW}no \u2014 run \`cleo setup\`${NC}`;
72
+ lines.push(` ${DIM}loggedIn:${NC} ${loggedInBadge}`);
73
+ lines.push("");
74
+ lines.push(`${BOLD}Credentials${NC} ${DIM}(${status.credentials.length} entries)${NC}`);
75
+ if (status.credentials.length === 0) {
76
+ lines.push(` ${DIM}(no credentials \u2014 run \`cleo auth list\` after \`cleo setup\`)${NC}`);
77
+ } else {
78
+ for (const c of status.credentials) {
79
+ lines.push(renderCredentialLine(c));
80
+ }
81
+ }
82
+ lines.push("");
83
+ lines.push(`${BOLD}Config${NC}`);
84
+ lines.push(` ${DIM}globalConfigPath:${NC} ${status.config.globalConfigPath}`);
85
+ lines.push(` ${DIM}projectConfigPath:${NC} ${status.config.projectConfigPath ?? "(none)"}`);
86
+ lines.push(` ${DIM}activeConfigPath:${NC} ${status.config.activeConfigPath}`);
87
+ lines.push("");
88
+ lines.push(`${BOLD}Session${NC}`);
89
+ const sessionState = status.session.active ? `${GREEN}active${NC}` : `${DIM}inactive${NC}`;
90
+ lines.push(` ${DIM}state:${NC} ${sessionState}`);
91
+ lines.push(` ${DIM}sessionId:${NC} ${status.session.sessionId ?? "(none)"}`);
92
+ lines.push(` ${DIM}focusedTask:${NC} ${status.session.focusedTask ?? "(none)"}`);
93
+ lines.push("");
94
+ lines.push(`${BOLD}Harness${NC}`);
95
+ lines.push(` ${DIM}active:${NC} ${CYAN}${status.harness.active}${NC}`);
96
+ lines.push(
97
+ ` ${DIM}healthy:${NC} ${status.harness.healthy ? `${GREEN}yes${NC}` : `${RED}no${NC}`}`
98
+ );
99
+ if (status.harness.issues.length > 0) {
100
+ for (const issue of status.harness.issues) {
101
+ lines.push(` ${YELLOW}- ${issue}${NC}`);
102
+ }
103
+ }
104
+ lines.push("");
105
+ lines.push(`${BOLD}Daemon${NC}`);
106
+ const daemonState = status.daemon.running ? `${GREEN}running${NC}` : `${DIM}stopped${NC}`;
107
+ lines.push(` ${DIM}state:${NC} ${daemonState}`);
108
+ lines.push(` ${DIM}pid:${NC} ${status.daemon.pid ?? "(none)"}`);
109
+ lines.push(
110
+ ` ${DIM}lastTickAt:${NC} ${status.daemon.lastTickAt != null ? formatEpoch(status.daemon.lastTickAt) : "(never)"}`
111
+ );
112
+ const killSwitchBadge = status.daemon.killSwitchActive ? `${RED}${BOLD}ACTIVE${NC}` : `${DIM}inactive${NC}`;
113
+ lines.push(` ${DIM}killSwitchActive:${NC} ${killSwitchBadge}`);
114
+ lines.push("");
115
+ lines.push(`${BOLD}Cleo Nexus account${NC}`);
116
+ for (const n of status.nexusAccount) {
117
+ const color = n.state === "signed-in" ? GREEN : n.state === "not-signed-in" ? DIM : YELLOW;
118
+ lines.push(` ${DIM}${n.apiUrl}:${NC} ${color}${n.summary}${NC}`);
119
+ }
120
+ return lines.join("\n");
121
+ }
122
+ function computeExitCode(status) {
123
+ const hasInvalid = status.credentials.some((c) => c.lastStatus === "invalid");
124
+ return hasInvalid ? 1 : 0;
125
+ }
126
+ var statusCommand = defineCommand({
127
+ meta: {
128
+ name: "status",
129
+ description: "Unified config + credential + session + harness + daemon snapshot. Use --json for the full LAFS envelope (CleoStatus interface). Exits non-zero when any credential is in invalid state."
130
+ },
131
+ args: {
132
+ json: {
133
+ type: "boolean",
134
+ description: "Output as JSON envelope (CleoStatus interface)"
135
+ }
136
+ },
137
+ async run({ args }) {
138
+ const a = args;
139
+ const forceJson = a["json"] === true;
140
+ const status = await getCleoStatus();
141
+ if (forceJson || isJsonFormat()) {
142
+ cliOutput(status, {
143
+ command: "status",
144
+ operation: "status.show"
145
+ });
146
+ } else {
147
+ process.stdout.write(`${renderStatusHuman(status)}
148
+ `);
149
+ }
150
+ const exitCode = computeExitCode(status);
151
+ if (exitCode !== 0) process.exit(exitCode);
152
+ }
153
+ });
154
+ export {
155
+ statusCommand
156
+ };
157
+ //# sourceMappingURL=status-46HTKNRR.js.map
@@ -0,0 +1,338 @@
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
+ dispatchRaw,
23
+ handleRawError
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/sticky.ts
36
+ import { ExitCode } from "@cleocode/contracts";
37
+ import { CleoError } from "@cleocode/core";
38
+ var addCommand = defineCommand({
39
+ meta: { name: "add", description: "Create a new sticky note" },
40
+ args: {
41
+ content: {
42
+ type: "positional",
43
+ description: "Sticky note content",
44
+ required: true
45
+ },
46
+ tag: {
47
+ type: "string",
48
+ description: 'Comma-separated tags (e.g. "bug,urgent")'
49
+ },
50
+ color: {
51
+ type: "string",
52
+ description: "Sticky color: yellow|blue|green|red|purple",
53
+ default: "yellow"
54
+ },
55
+ priority: {
56
+ type: "string",
57
+ description: "Priority: low|medium|high",
58
+ default: "medium"
59
+ }
60
+ },
61
+ async run({ args }) {
62
+ try {
63
+ const rawTag = args.tag;
64
+ const tags = rawTag ? rawTag.split(",").map((t) => t.trim()).filter(Boolean) : [];
65
+ await dispatchFromCli(
66
+ "mutate",
67
+ "sticky",
68
+ "add",
69
+ {
70
+ content: args.content,
71
+ tags,
72
+ color: args.color,
73
+ priority: args.priority
74
+ },
75
+ { command: "sticky", operation: "sticky.add" }
76
+ );
77
+ } catch (err) {
78
+ if (err instanceof CleoError) {
79
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
80
+ process.exit(err.code);
81
+ }
82
+ throw err;
83
+ }
84
+ }
85
+ });
86
+ var listCommand = defineCommand({
87
+ meta: { name: "list", description: "List active sticky notes" },
88
+ args: {
89
+ tag: {
90
+ type: "string",
91
+ description: 'Filter by tags (comma-separated, e.g. "bug,urgent")'
92
+ },
93
+ color: {
94
+ type: "string",
95
+ description: "Filter by color"
96
+ },
97
+ status: {
98
+ type: "string",
99
+ description: "Filter by status: active|converted|archived",
100
+ default: "active"
101
+ },
102
+ limit: {
103
+ type: "string",
104
+ description: "Max results",
105
+ default: "50"
106
+ }
107
+ },
108
+ async run({ args }) {
109
+ try {
110
+ const rawTag = args.tag;
111
+ const tags = rawTag ? rawTag.split(",").map((t) => t.trim()).filter(Boolean) : void 0;
112
+ const response = await dispatchRaw("query", "sticky", "list", {
113
+ tags,
114
+ color: args.color,
115
+ status: args.status,
116
+ limit: Number.parseInt(args.limit, 10)
117
+ });
118
+ if (!response.success) {
119
+ handleRawError(response, { command: "sticky list", operation: "sticky.list" });
120
+ return;
121
+ }
122
+ const data = response.data;
123
+ if (!data?.stickies || data.stickies.length === 0) {
124
+ cliOutput(
125
+ { stickies: [], total: 0 },
126
+ { command: "sticky list", message: "No sticky notes found", operation: "sticky.list" }
127
+ );
128
+ process.exit(ExitCode.NO_DATA);
129
+ return;
130
+ }
131
+ cliOutput(data, { command: "sticky list", operation: "sticky.list", page: response.page });
132
+ } catch (err) {
133
+ if (err instanceof CleoError) {
134
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
135
+ process.exit(err.code);
136
+ }
137
+ throw err;
138
+ }
139
+ }
140
+ });
141
+ var showCommand = defineCommand({
142
+ meta: { name: "show", description: "Show a specific sticky note" },
143
+ args: {
144
+ id: {
145
+ type: "positional",
146
+ description: "Sticky note ID",
147
+ required: true
148
+ }
149
+ },
150
+ async run({ args }) {
151
+ try {
152
+ const response = await dispatchRaw("query", "sticky", "show", {
153
+ stickyId: args.id
154
+ });
155
+ if (!response.success) {
156
+ handleRawError(response, { command: "sticky show", operation: "sticky.show" });
157
+ return;
158
+ }
159
+ const data = response.data;
160
+ if (!data) {
161
+ cliOutput(
162
+ { sticky: null },
163
+ {
164
+ command: "sticky show",
165
+ message: `Sticky note not found: ${args.id}`,
166
+ operation: "sticky.show"
167
+ }
168
+ );
169
+ process.exit(ExitCode.NO_DATA);
170
+ return;
171
+ }
172
+ cliOutput({ sticky: data }, { command: "sticky show", operation: "sticky.show" });
173
+ } catch (err) {
174
+ if (err instanceof CleoError) {
175
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
176
+ process.exit(err.code);
177
+ }
178
+ throw err;
179
+ }
180
+ }
181
+ });
182
+ var convertCommand = defineCommand({
183
+ meta: { name: "convert", description: "Convert sticky note to task or memory" },
184
+ args: {
185
+ id: {
186
+ type: "positional",
187
+ description: "Sticky note ID to convert",
188
+ required: true
189
+ },
190
+ "to-task": {
191
+ type: "boolean",
192
+ description: "Convert to a task"
193
+ },
194
+ "to-memory": {
195
+ type: "boolean",
196
+ description: "Convert to a memory observation"
197
+ },
198
+ title: {
199
+ type: "string",
200
+ description: "Title for the converted item (tasks only)"
201
+ },
202
+ type: {
203
+ type: "string",
204
+ description: "Memory type: pattern|learning|decision|observation (memory only)",
205
+ default: "observation"
206
+ },
207
+ epic: {
208
+ type: "string",
209
+ description: "Epic ID for the new task (e.g., epic:T###)"
210
+ }
211
+ },
212
+ async run({ args }) {
213
+ try {
214
+ const toTask = args["to-task"];
215
+ const toMemory = args["to-memory"];
216
+ if (!toTask && !toMemory) {
217
+ cliError(
218
+ "Must specify either --to-task or --to-memory",
219
+ ExitCode.INVALID_INPUT,
220
+ { name: "E_INVALID_INPUT" },
221
+ { operation: "sticky.convert" }
222
+ );
223
+ process.exit(ExitCode.INVALID_INPUT);
224
+ return;
225
+ }
226
+ if (toTask && toMemory) {
227
+ cliError(
228
+ "Cannot specify both --to-task and --to-memory",
229
+ ExitCode.INVALID_INPUT,
230
+ { name: "E_INVALID_INPUT" },
231
+ { operation: "sticky.convert" }
232
+ );
233
+ process.exit(ExitCode.INVALID_INPUT);
234
+ return;
235
+ }
236
+ const convertParams = {
237
+ stickyId: args.id,
238
+ targetType: toTask ? "task" : "memory"
239
+ };
240
+ if (toTask) {
241
+ if (args.title) convertParams["title"] = args.title;
242
+ if (args.epic) convertParams["epic"] = args.epic;
243
+ }
244
+ if (toMemory) {
245
+ convertParams["memoryType"] = args.type;
246
+ }
247
+ await dispatchFromCli("mutate", "sticky", "convert", convertParams, {
248
+ command: "sticky convert",
249
+ operation: "sticky.convert"
250
+ });
251
+ } catch (err) {
252
+ if (err instanceof CleoError) {
253
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
254
+ process.exit(err.code);
255
+ }
256
+ throw err;
257
+ }
258
+ }
259
+ });
260
+ var archiveCommand = defineCommand({
261
+ meta: { name: "archive", description: "Archive a sticky note" },
262
+ args: {
263
+ id: {
264
+ type: "positional",
265
+ description: "Sticky note ID to archive",
266
+ required: true
267
+ }
268
+ },
269
+ async run({ args }) {
270
+ try {
271
+ await dispatchFromCli(
272
+ "mutate",
273
+ "sticky",
274
+ "archive",
275
+ { stickyId: args.id },
276
+ { command: "sticky archive", operation: "sticky.archive" }
277
+ );
278
+ } catch (err) {
279
+ if (err instanceof CleoError) {
280
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
281
+ process.exit(err.code);
282
+ }
283
+ throw err;
284
+ }
285
+ }
286
+ });
287
+ var purgeCommand = defineCommand({
288
+ meta: { name: "purge", description: "Permanently delete a sticky note (cannot be undone)" },
289
+ args: {
290
+ id: {
291
+ type: "positional",
292
+ description: "Sticky note ID to purge",
293
+ required: true
294
+ }
295
+ },
296
+ async run({ args }) {
297
+ try {
298
+ await dispatchFromCli(
299
+ "mutate",
300
+ "sticky",
301
+ "purge",
302
+ { stickyId: args.id },
303
+ { command: "sticky purge", operation: "sticky.purge" }
304
+ );
305
+ } catch (err) {
306
+ if (err instanceof CleoError) {
307
+ cliError(err.message, err.code, { name: "CleoError", fix: err.fix });
308
+ process.exit(err.code);
309
+ }
310
+ throw err;
311
+ }
312
+ }
313
+ });
314
+ var stickyCommand = defineCommand({
315
+ meta: {
316
+ name: "sticky",
317
+ description: "Manage sticky notes - quick project-wide ephemeral captures"
318
+ },
319
+ subCommands: {
320
+ add: addCommand,
321
+ jot: addCommand,
322
+ list: listCommand,
323
+ ls: listCommand,
324
+ show: showCommand,
325
+ convert: convertCommand,
326
+ archive: archiveCommand,
327
+ purge: purgeCommand
328
+ },
329
+ async run({ cmd, rawArgs }) {
330
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
331
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
332
+ await showUsage(cmd);
333
+ }
334
+ });
335
+ export {
336
+ stickyCommand
337
+ };
338
+ //# sourceMappingURL=sticky-2DUZOUGI.js.map
@@ -0,0 +1,42 @@
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
+ } from "./chunk-PKKZPOOP.js";
19
+ import {
20
+ dispatchFromCli
21
+ } from "./chunk-3IOQVUO7.js";
22
+ import "./chunk-AWCQH2W5.js";
23
+ import "./chunk-OGV57L4J.js";
24
+ import "./chunk-ZBISIPCK.js";
25
+ import "./chunk-3ZO3M37V.js";
26
+ import "./chunk-6JSJNYH2.js";
27
+ import "./chunk-QFFQSKRC.js";
28
+
29
+ // packages/cleo/src/cli/commands/stop.ts
30
+ var stopCommand = defineCommand({
31
+ meta: {
32
+ name: "stop",
33
+ description: "Stop working on the current task (clears the active task, returns {cleared: boolean, previousTask: string|null})"
34
+ },
35
+ async run() {
36
+ await dispatchFromCli("mutate", "tasks", "stop", {}, { command: "stop" });
37
+ }
38
+ });
39
+ export {
40
+ stopCommand
41
+ };
42
+ //# sourceMappingURL=stop-J2QEUKHX.js.map
@@ -0,0 +1,154 @@
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
+ } from "./chunk-3ZO3M37V.js";
29
+ import "./chunk-6JSJNYH2.js";
30
+ import "./chunk-QFFQSKRC.js";
31
+
32
+ // packages/cleo/src/cli/commands/sync.ts
33
+ import { ExitCode } from "@cleocode/contracts";
34
+ var linksRemoveCommand = defineCommand({
35
+ meta: { name: "remove", description: "Remove all external task links for a provider" },
36
+ args: {
37
+ providerId: {
38
+ type: "positional",
39
+ description: "Provider ID whose links should be removed",
40
+ required: true
41
+ }
42
+ },
43
+ async run({ args }) {
44
+ await dispatchFromCli(
45
+ "mutate",
46
+ "tasks",
47
+ "sync.links.remove",
48
+ { providerId: args.providerId },
49
+ { command: "sync", operation: "tasks.sync.links.remove" }
50
+ );
51
+ }
52
+ });
53
+ var linksCommand = defineCommand({
54
+ meta: { name: "links", description: "List external task links" },
55
+ args: {
56
+ provider: {
57
+ type: "string",
58
+ description: "Filter links by provider (e.g. linear, jira, github)"
59
+ },
60
+ task: {
61
+ type: "string",
62
+ description: "Filter links by CLEO task ID"
63
+ }
64
+ },
65
+ subCommands: {
66
+ remove: linksRemoveCommand
67
+ },
68
+ async run({ args }) {
69
+ const providerId = args.provider;
70
+ const taskId = args.task;
71
+ if (!providerId && !taskId) {
72
+ cliError(
73
+ "at least one of --provider or --task is required for sync links list",
74
+ ExitCode.INVALID_INPUT,
75
+ { name: "E_VALIDATION" }
76
+ );
77
+ process.exit(ExitCode.INVALID_INPUT);
78
+ }
79
+ await dispatchFromCli(
80
+ "query",
81
+ "tasks",
82
+ "sync.links",
83
+ { providerId, taskId },
84
+ { command: "sync", operation: "tasks.sync.links" }
85
+ );
86
+ }
87
+ });
88
+ var reconcileCommand = defineCommand({
89
+ meta: {
90
+ name: "reconcile",
91
+ description: "Reconcile external tasks from a JSON file against CLEO tasks"
92
+ },
93
+ args: {
94
+ file: {
95
+ type: "positional",
96
+ description: "Path to JSON file containing external tasks array",
97
+ required: true
98
+ },
99
+ provider: {
100
+ type: "string",
101
+ description: "Provider ID (e.g. linear, jira, github)",
102
+ required: true
103
+ },
104
+ "conflict-policy": {
105
+ type: "string",
106
+ description: "How to resolve conflicts: keep-cleo, keep-external, or newest (default: keep-cleo)",
107
+ default: "keep-cleo"
108
+ }
109
+ },
110
+ async run({ args }) {
111
+ const { readFileSync } = await import("node:fs");
112
+ let externalTasks;
113
+ try {
114
+ externalTasks = JSON.parse(readFileSync(args.file, "utf8"));
115
+ } catch (err) {
116
+ const message = err instanceof Error ? err.message : String(err);
117
+ cliError(`Failed to read or parse external tasks file: ${message}`, 2, {
118
+ name: "E_VALIDATION"
119
+ });
120
+ process.exit(2);
121
+ }
122
+ if (!Array.isArray(externalTasks)) {
123
+ cliError("External tasks file must contain a JSON array", 2, { name: "E_VALIDATION" });
124
+ process.exit(2);
125
+ }
126
+ await dispatchFromCli(
127
+ "mutate",
128
+ "tasks",
129
+ "sync.reconcile",
130
+ {
131
+ providerId: args.provider,
132
+ externalTasks,
133
+ conflictPolicy: args["conflict-policy"]
134
+ },
135
+ { command: "sync", operation: "tasks.sync.reconcile" }
136
+ );
137
+ }
138
+ });
139
+ var syncCommand = defineCommand({
140
+ meta: { name: "sync", description: "External task synchronisation management" },
141
+ subCommands: {
142
+ links: linksCommand,
143
+ reconcile: reconcileCommand
144
+ },
145
+ async run({ cmd, rawArgs }) {
146
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
147
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
148
+ await showUsage(cmd);
149
+ }
150
+ });
151
+ export {
152
+ syncCommand
153
+ };
154
+ //# sourceMappingURL=sync-GJP2QYT5.js.map