@cleocode/cleo 2026.10.3 → 2026.10.5-rc.ci.672

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 (352) hide show
  1. package/README.md +7 -0
  2. package/bin/cleo.js +11 -1
  3. package/dist/cli/adapter-OUQRSFZL.js +159 -0
  4. package/dist/cli/add-4SRRJL4U.js +443 -0
  5. package/dist/cli/add-batch-TSWICA5J.js +164 -0
  6. package/dist/cli/admin-L3F6CDYH.js +1428 -0
  7. package/dist/cli/admin-YMU55YCU.js +341 -0
  8. package/dist/cli/adr-XESRMFMP.js +172 -0
  9. package/dist/cli/agent-TAFPIYUU.js +2404 -0
  10. package/dist/cli/agent-outputs-HVJJIPS4.js +84 -0
  11. package/dist/cli/analyze-YQ22QVGW.js +49 -0
  12. package/dist/cli/archive-W5XX6AH7.js +65 -0
  13. package/dist/cli/archive-stats-HP2KPAJU.js +101 -0
  14. package/dist/cli/attention-7JBDCRZX.js +124 -0
  15. package/dist/cli/attention-ZXZANHKC.js +168 -0
  16. package/dist/cli/audit-ICA2SEFN.js +122 -0
  17. package/dist/cli/auth-DXIG5OG7.js +491 -0
  18. package/dist/cli/backfill-LBSYBWLR.js +156 -0
  19. package/dist/cli/backup-NUGBZ7NA.js +588 -0
  20. package/dist/cli/backup-inspect-PDRXI45A.js +26 -0
  21. package/dist/cli/backup-recover-TVKAPERB.js +29 -0
  22. package/dist/cli/blockers-ZOPCGHDW.js +55 -0
  23. package/dist/cli/brain-EJOBKL4A.js +397 -0
  24. package/dist/cli/briefing-RDQJ6WHS.js +213 -0
  25. package/dist/cli/caamp-Z3XPKEHB.js +181 -0
  26. package/dist/cli/cancel-S7EHLCJN.js +85 -0
  27. package/dist/cli/canon-NPF5RODM.js +142 -0
  28. package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
  29. package/dist/cli/cant-CHNN6O57.js +239 -0
  30. package/dist/cli/changeset-RYPHPN2B.js +246 -0
  31. package/dist/cli/check-C67YAU7W.js +759 -0
  32. package/dist/cli/check-DHMURGHC.js +924 -0
  33. package/dist/cli/checkpoint-UWDFOGYQ.js +128 -0
  34. package/dist/cli/chunk-22YPFZYB.js +91 -0
  35. package/dist/cli/chunk-2MGFDMDF.js +272 -0
  36. package/dist/cli/chunk-47JYZAMS.js +30 -0
  37. package/dist/cli/chunk-4JYHPP4C.js +76 -0
  38. package/dist/cli/chunk-4PEODTHY.js +278 -0
  39. package/dist/cli/chunk-4RGSNUUP.js +950 -0
  40. package/dist/cli/chunk-4VASFLUW.js +35 -0
  41. package/dist/cli/chunk-5PNI276X.js +124 -0
  42. package/dist/cli/chunk-6JSJNYH2.js +114 -0
  43. package/dist/cli/chunk-6N6WGLXE.js +63 -0
  44. package/dist/cli/chunk-75UH3BLS.js +210 -0
  45. package/dist/cli/chunk-7ACK4EIN.js +92 -0
  46. package/dist/cli/chunk-7NMKLVMI.js +107 -0
  47. package/dist/cli/chunk-7SINJXB6.js +110 -0
  48. package/dist/cli/chunk-7UARFJYS.js +46 -0
  49. package/dist/cli/chunk-7ZYPQV4N.js +90 -0
  50. package/dist/cli/chunk-AQCYT3L4.js +72 -0
  51. package/dist/cli/chunk-BQK6XTOH.js +57 -0
  52. package/dist/cli/chunk-C3B7C43W.js +16 -0
  53. package/dist/cli/chunk-CAPAGD5E.js +98 -0
  54. package/dist/cli/chunk-CHGEDCKG.js +77 -0
  55. package/dist/cli/chunk-COXFJ3PT.js +74 -0
  56. package/dist/cli/chunk-D7BAQNV2.js +55 -0
  57. package/dist/cli/chunk-EIUXVHNF.js +258 -0
  58. package/dist/cli/chunk-EUGB6P5V.js +173 -0
  59. package/dist/cli/chunk-EW2CKNNZ.js +304 -0
  60. package/dist/cli/chunk-FSKN4DWC.js +108 -0
  61. package/dist/cli/chunk-FVKLULL7.js +48 -0
  62. package/dist/cli/chunk-GAGUBU4Z.js +280 -0
  63. package/dist/cli/chunk-GKRFH2YG.js +171 -0
  64. package/dist/cli/chunk-GRU74UE4.js +270 -0
  65. package/dist/cli/chunk-GZFVDR44.js +320 -0
  66. package/dist/cli/chunk-HFLLZE6A.js +83 -0
  67. package/dist/cli/chunk-HXRXT3XU.js +78 -0
  68. package/dist/cli/chunk-IIOGUY3B.js +258 -0
  69. package/dist/cli/chunk-ILWWL462.js +60 -0
  70. package/dist/cli/chunk-J5USPJKZ.js +48 -0
  71. package/dist/cli/chunk-KEQS36GD.js +88 -0
  72. package/dist/cli/chunk-L7ONYSV6.js +2497 -0
  73. package/dist/cli/chunk-LVGIFMCV.js +163 -0
  74. package/dist/cli/chunk-NEFMQYLE.js +656 -0
  75. package/dist/cli/chunk-NU6CQQVB.js +4501 -0
  76. package/dist/cli/chunk-OILHT47L.js +252 -0
  77. package/dist/cli/chunk-PKKZPOOP.js +352 -0
  78. package/dist/cli/chunk-PN4WW5VX.js +66 -0
  79. package/dist/cli/chunk-PSJ33WVO.js +56 -0
  80. package/dist/cli/chunk-QA6T2LQ5.js +71 -0
  81. package/dist/cli/chunk-QJJWWCIC.js +288 -0
  82. package/dist/cli/chunk-QKMBWYAS.js +93 -0
  83. package/dist/cli/chunk-QWNKLLLG.js +84 -0
  84. package/dist/cli/chunk-QWUFFDL3.js +85 -0
  85. package/dist/cli/chunk-QY76BRUZ.js +35 -0
  86. package/dist/cli/chunk-R45KVF5Y.js +117 -0
  87. package/dist/cli/chunk-RRKP7HLU.js +66 -0
  88. package/dist/cli/chunk-SXXOC6KZ.js +209 -0
  89. package/dist/cli/chunk-T6GZJYL3.js +108 -0
  90. package/dist/cli/chunk-TLQ37HRE.js +67 -0
  91. package/dist/cli/chunk-TPTNEJZJ.js +52 -0
  92. package/dist/cli/chunk-TYC7G5LF.js +100 -0
  93. package/dist/cli/chunk-UWCZY52R.js +766 -0
  94. package/dist/cli/chunk-VB3LDPL5.js +46 -0
  95. package/dist/cli/chunk-VLEYOOPH.js +31 -0
  96. package/dist/cli/chunk-W3JLYKKY.js +140 -0
  97. package/dist/cli/chunk-WWCYZYSN.js +56 -0
  98. package/dist/cli/chunk-XA5WISNV.js +52 -0
  99. package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
  100. package/dist/cli/chunk-XLPMIGJJ.js +148 -0
  101. package/dist/cli/chunk-YY66LFZF.js +29 -0
  102. package/dist/cli/chunk-ZMGDZMSJ.js +210 -0
  103. package/dist/cli/claim-IGOG2QOC.js +97 -0
  104. package/dist/cli/classify-MG4N7GMQ.js +117 -0
  105. package/dist/cli/cli-A23Q335V.js +51 -0
  106. package/dist/cli/cloud-SILYJVKO.js +731 -0
  107. package/dist/cli/cockpit-RZKLGYPN.js +790 -0
  108. package/dist/cli/code-H2FQCVMW.js +178 -0
  109. package/dist/cli/complete-JLX7NBI4.js +35 -0
  110. package/dist/cli/complexity-OKV7PVZH.js +57 -0
  111. package/dist/cli/compliance-QMGZHJNQ.js +277 -0
  112. package/dist/cli/conduit-4H32UYEA.js +308 -0
  113. package/dist/cli/conduit-EY54WTZA.js +535 -0
  114. package/dist/cli/config-TDYOC7XO.js +519 -0
  115. package/dist/cli/consensus-4XCOFPPT.js +122 -0
  116. package/dist/cli/context-FN4YTGHD.js +142 -0
  117. package/dist/cli/contribution-7RWFBJLC.js +112 -0
  118. package/dist/cli/curator-HKZJCVRL.js +139 -0
  119. package/dist/cli/current-B2NU7V3G.js +43 -0
  120. package/dist/cli/daemon-GBD4TVCD.js +452 -0
  121. package/dist/cli/dash-IGDANIE5.js +71 -0
  122. package/dist/cli/decide-26SXC2V6.js +416 -0
  123. package/dist/cli/decompose-LQ76TEZG.js +78 -0
  124. package/dist/cli/decomposition-WFRWNUSJ.js +122 -0
  125. package/dist/cli/delete-T5DUQHOX.js +69 -0
  126. package/dist/cli/deps-UTPZJBXL.js +462 -0
  127. package/dist/cli/detect-FFZSMVDT.js +46 -0
  128. package/dist/cli/detect-drift-TVCJOFYJ.js +408 -0
  129. package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
  130. package/dist/cli/diagnostics-ZNBKH6GX.js +133 -0
  131. package/dist/cli/docs-CLQKEEUK.js +1710 -0
  132. package/dist/cli/docs-DPPDFTWR.js +3098 -0
  133. package/dist/cli/doctor-GPENOP4N.js +1270 -0
  134. package/dist/cli/doctor-ac-bindings-S3IOEFP4.js +26 -0
  135. package/dist/cli/doctor-acceptance-drift-VNFKPBSQ.js +26 -0
  136. package/dist/cli/doctor-credentials-A5H4JMTF.js +26 -0
  137. package/dist/cli/doctor-db-substrate-FGCISE4Z.js +27 -0
  138. package/dist/cli/doctor-dep-cycles-BKKKHHYG.js +26 -0
  139. package/dist/cli/doctor-exodus-ND2DH2KP.js +26 -0
  140. package/dist/cli/doctor-exodus-residue-4EMRYMEQ.js +26 -0
  141. package/dist/cli/doctor-fk-check-VY3RIQV3.js +26 -0
  142. package/dist/cli/doctor-global-delivery-JN6IGHUL.js +26 -0
  143. package/dist/cli/doctor-heavy-command-hook-XSN44WXU.js +26 -0
  144. package/dist/cli/doctor-legacy-backups-QAG5NHYP.js +26 -0
  145. package/dist/cli/doctor-legacy-reaper-CIRGFE6R.js +26 -0
  146. package/dist/cli/doctor-malformed-ids-WL7HT4TB.js +26 -0
  147. package/dist/cli/doctor-manifest-rows-SMQCKJ2T.js +26 -0
  148. package/dist/cli/doctor-memory-guard-LJDOJG76.js +26 -0
  149. package/dist/cli/doctor-migrations-ETQPFNUP.js +26 -0
  150. package/dist/cli/doctor-nexus-residency-A4JMKBEJ.js +26 -0
  151. package/dist/cli/doctor-project-identity-FFQJ5LNX.js +26 -0
  152. package/dist/cli/doctor-projects-MFUTKRHP.js +30 -0
  153. package/dist/cli/doctor-projects-registry-76X6VTGM.js +26 -0
  154. package/dist/cli/doctor-release-readiness-QJCOPFTK.js +26 -0
  155. package/dist/cli/doctor-repair-AU76FIKY.js +26 -0
  156. package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
  157. package/dist/cli/doctor-skill-fixtures-G3T7JUHS.js +26 -0
  158. package/dist/cli/doctor-split-brain-FUW6L7FS.js +26 -0
  159. package/dist/cli/doctor-superseded-store-DUHGSBLC.js +26 -0
  160. package/dist/cli/doctor-sync-journal-SXMUIKF7.js +26 -0
  161. package/dist/cli/doctor-sync-triggers-6WNJZFRM.js +26 -0
  162. package/dist/cli/doctor-tool-locks-66LSLUBN.js +26 -0
  163. package/dist/cli/doctor-twin-collapse-AYBYBFC4.js +26 -0
  164. package/dist/cli/doctor-worktree-stores-C5XEH5OG.js +26 -0
  165. package/dist/cli/done-R64XRZ32.js +196 -0
  166. package/dist/cli/dynamic-RR4HB7BB.js +29 -0
  167. package/dist/cli/entities-3JIHDIOK.js +361 -0
  168. package/dist/cli/event-45KEWV5H.js +372 -0
  169. package/dist/cli/exists-BEDZS5RI.js +65 -0
  170. package/dist/cli/exodus-DUX62344.js +401 -0
  171. package/dist/cli/export-C5PQIQ5O.js +93 -0
  172. package/dist/cli/export-tasks-CUXDZPJB.js +97 -0
  173. package/dist/cli/federation-ESM35EGG.js +145 -0
  174. package/dist/cli/find-5EUZHHQJ.js +178 -0
  175. package/dist/cli/focus-6AH4KLRO.js +368 -0
  176. package/dist/cli/focus-ANKAIRO5.js +56 -0
  177. package/dist/cli/gateway-2GW2KTK3.js +77 -0
  178. package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
  179. package/dist/cli/gc-CTOQLUSA.js +291 -0
  180. package/dist/cli/go-YJPNHHYT.js +206 -0
  181. package/dist/cli/goal-4GW4G77D.js +213 -0
  182. package/dist/cli/grade-25WSZH4X.js +57 -0
  183. package/dist/cli/graph-JUO3TMF3.js +879 -0
  184. package/dist/cli/history-NACNUQTC.js +138 -0
  185. package/dist/cli/hook-UF7J7R6D.js +57 -0
  186. package/dist/cli/hook-entry.js +244 -19
  187. package/dist/cli/hygiene-3QZ2NI7P.js +55 -0
  188. package/dist/cli/import-7ESGL5SS.js +89 -0
  189. package/dist/cli/import-tasks-FLE2RPBR.js +109 -0
  190. package/dist/cli/index.js +601 -94637
  191. package/dist/cli/init-AN4DZ2XO.js +40 -0
  192. package/dist/cli/inject-HQWA5GWY.js +83 -0
  193. package/dist/cli/install-global-YQV4W5OG.js +95 -0
  194. package/dist/cli/intelligence-OFFNQGHE.js +238 -0
  195. package/dist/cli/intelligence-QIC4SN4X.js +182 -0
  196. package/dist/cli/issue-P5RNMRDG.js +159 -0
  197. package/dist/cli/janitor-ZNCFQ7E3.js +111 -0
  198. package/dist/cli/labels-ORBM3T57.js +88 -0
  199. package/dist/cli/lifecycle-MHR22TVI.js +273 -0
  200. package/dist/cli/list-LB6GCYYU.js +109 -0
  201. package/dist/cli/llm-H7LZWQKX.js +130 -0
  202. package/dist/cli/llm-OTJWPMGI.js +704 -0
  203. package/dist/cli/llm-cost-MLMXEAR4.js +25 -0
  204. package/dist/cli/llm-stream-AAEUNKRP.js +27 -0
  205. package/dist/cli/log-W2A5M2NA.js +76 -0
  206. package/dist/cli/login-SIXFFZSP.js +45 -0
  207. package/dist/cli/logout-G3KVLQQM.js +74 -0
  208. package/dist/cli/manifest-G4T6EBSI.js +354 -0
  209. package/dist/cli/map-VU5M72TK.js +53 -0
  210. package/dist/cli/memory-2E27G2G5.js +1952 -0
  211. package/dist/cli/memory-IAEYKXG6.js +1895 -0
  212. package/dist/cli/migrate-agents-v2-A52QIYNJ.js +33 -0
  213. package/dist/cli/migrate-claude-mem-TPDW3R4Z.js +206 -0
  214. package/dist/cli/next-SVH4LIDY.js +57 -0
  215. package/dist/cli/nexus-FPQV2EAF.js +1059 -0
  216. package/dist/cli/nexus-XSFXN5E6.js +2924 -0
  217. package/dist/cli/ops-K6LHY5J6.js +52 -0
  218. package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
  219. package/dist/cli/orchestrate-HURUCQFT.js +950 -0
  220. package/dist/cli/otel-JCNPVJLZ.js +188 -0
  221. package/dist/cli/phase-VDFRASSO.js +221 -0
  222. package/dist/cli/pipeline-TCZPOEDR.js +697 -0
  223. package/dist/cli/pivot-V5MSQZ7L.js +88 -0
  224. package/dist/cli/plan-SQUGCKSM.js +49 -0
  225. package/dist/cli/playbook-L47GLDQD.js +230 -0
  226. package/dist/cli/playbook-NJVO4R6P.js +33 -0
  227. package/dist/cli/project-YZEC7GYF.js +331 -0
  228. package/dist/cli/promote-FINF4HVK.js +53 -0
  229. package/dist/cli/provenance-3TUWVBFR.js +141 -0
  230. package/dist/cli/provenance-YZG33JGM.js +129 -0
  231. package/dist/cli/provider-23JVLLG3.js +213 -0
  232. package/dist/cli/reason-FHN54O7O.js +138 -0
  233. package/dist/cli/reconcile-MOM5T4AX.js +128 -0
  234. package/dist/cli/refresh-memory-3OSTRAVK.js +45 -0
  235. package/dist/cli/relates-6FWUFUS2.js +260 -0
  236. package/dist/cli/release-G2DPSG5M.js +347 -0
  237. package/dist/cli/release-URX6JHZ2.js +525 -0
  238. package/dist/cli/remote-VIULU2T5.js +279 -0
  239. package/dist/cli/renderers-TGSW77J4.js +37 -0
  240. package/dist/cli/reorder-UIPN6TQY.js +87 -0
  241. package/dist/cli/reparent-ALOWWUIU.js +59 -0
  242. package/dist/cli/req-RH2Y3H7A.js +130 -0
  243. package/dist/cli/research-G2Y72HRC.js +366 -0
  244. package/dist/cli/restore-VBR5XNML.js +470 -0
  245. package/dist/cli/revert-32LDNSGP.js +240 -0
  246. package/dist/cli/roadmap-LFU3AG7D.js +62 -0
  247. package/dist/cli/run-HXRILSR7.js +245 -0
  248. package/dist/cli/safestop-Z5UC7NGQ.js +89 -0
  249. package/dist/cli/saga-Y6FZS6AM.js +286 -0
  250. package/dist/cli/schema-OOOKLWUE.js +195 -0
  251. package/dist/cli/self-update-26SOTJMH.js +504 -0
  252. package/dist/cli/selfimprove-4SMOCLUV.js +89 -0
  253. package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
  254. package/dist/cli/sentient-QPETVE53.js +254 -0
  255. package/dist/cli/sentient-RGMWR4XJ.js +1088 -0
  256. package/dist/cli/sequence-H7DSAJPF.js +94 -0
  257. package/dist/cli/service-EK5MGB2D.js +156 -0
  258. package/dist/cli/service-GLOMZWPQ.js +437 -0
  259. package/dist/cli/session-HYUXAQGC.js +708 -0
  260. package/dist/cli/session-N5ISU56W.js +568 -0
  261. package/dist/cli/setup-L3YYV53D.js +323 -0
  262. package/dist/cli/show-364V3KY2.js +123 -0
  263. package/dist/cli/skill-F2KR6HW5.js +84 -0
  264. package/dist/cli/skills-FS3DCP6E.js +929 -0
  265. package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
  266. package/dist/cli/snapshot-EGXEQ5PR.js +120 -0
  267. package/dist/cli/src-LYLXHXHH.js +80 -0
  268. package/dist/cli/start-6DXOCCKL.js +68 -0
  269. package/dist/cli/stats-UVUQEGYC.js +96 -0
  270. package/dist/cli/status-XLKYLN42.js +157 -0
  271. package/dist/cli/sticky-VSTQ2I2O.js +264 -0
  272. package/dist/cli/sticky-XZXZDCFW.js +339 -0
  273. package/dist/cli/stop-VNOAFWNB.js +43 -0
  274. package/dist/cli/sync-YYPARW3A.js +155 -0
  275. package/dist/cli/tasks-C24KHTFF.js +1118 -0
  276. package/dist/cli/tasks-LBJC7CZV.js +175 -0
  277. package/dist/cli/telemetry-CU7W5WAY.js +120 -0
  278. package/dist/cli/templates-G42JBUY4.js +609 -0
  279. package/dist/cli/testing-HSRITHEY.js +147 -0
  280. package/dist/cli/token-J74E7TSU.js +221 -0
  281. package/dist/cli/tools-BI74W7VE.js +652 -0
  282. package/dist/cli/transcript-RGK7RSGQ.js +440 -0
  283. package/dist/cli/tui-BPUFHYKK.js +51 -0
  284. package/dist/cli/update-2KQWA27S.js +478 -0
  285. package/dist/cli/update-check-entry.js +124 -0
  286. package/dist/cli/update-notice-6SQ6WPQG.js +68 -0
  287. package/dist/cli/upgrade-E2MJAPC7.js +136 -0
  288. package/dist/cli/upgrade-XRSQ4RWH.js +243 -0
  289. package/dist/cli/verify-WASRGDBA.js +191 -0
  290. package/dist/cli/web-NJ3P67EU.js +275 -0
  291. package/dist/cli/workgraph-OHJ2VKJD.js +232 -0
  292. package/dist/cli/worktree-FVQLORFY.js +371 -0
  293. package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
  294. package/package.json +13 -13
  295. package/studio-dist/client/_app/immutable/chunks/{DMj27Pxj.js → AH7dIemv.js} +1 -1
  296. package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.js → BDgH40i3.js} +1 -1
  297. package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
  298. package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → Gg4iYl59.js} +1 -1
  299. package/studio-dist/client/_app/immutable/entry/{app.CHWXLeE9.js → app.DUDNK-37.js} +2 -2
  300. package/studio-dist/client/_app/immutable/entry/start.DNmZ0pA4.js +1 -0
  301. package/studio-dist/client/_app/immutable/nodes/{0.DmKQGvFh.js → 0.DWqP3ail.js} +1 -1
  302. package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.CZGVUP5B.js} +1 -1
  303. package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.DGaflZRS.js} +1 -1
  304. package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16.uYlarGXl.js} +1 -1
  305. package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CZMR0E47.js} +1 -1
  306. package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.CBC-AKH_.js} +1 -1
  307. package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.BGi43MvQ.js} +1 -1
  308. package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.js → 24.Dv8ftCyR.js} +1 -1
  309. package/studio-dist/client/_app/immutable/nodes/25.DQPVlTDQ.js +39 -0
  310. package/studio-dist/client/_app/immutable/nodes/{26.C3rNqzZF.js → 26.Cl800304.js} +1 -1
  311. package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.D_fQKj9f.js} +1 -1
  312. package/studio-dist/client/_app/version.json +1 -1
  313. package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-BpOagOst.js} +3 -3
  314. package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
  315. package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-BcjHz7Tv.js} +3 -3
  316. package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-CXm8TUk7.js} +3 -3
  317. package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-mSgUK-cp.js} +3 -3
  318. package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-BtfnIw1d.js} +3 -3
  319. package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-By1e4QDS.js} +3 -3
  320. package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-0i2YLVxG.js} +3 -3
  321. package/studio-dist/server/chunks/{dist-CdoCt9zT.js → 25-DPsrqbrh.js} +797 -10736
  322. package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-P0XkOibm.js} +3 -3
  323. package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-WudjUK7e.js} +3 -3
  324. package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-D9m81Rle.js} +4 -4
  325. package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-2PDLOF83.js} +3 -3
  326. package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-BjE3jm2K.js} +3 -3
  327. package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-Clc0vmiZ.js} +4 -4
  328. package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DABdRT3h.js} +3 -3
  329. package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-DG3PjiHj.js} +3 -3
  330. package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-Edy9CaE8.js} +20 -7
  331. package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-Hrf3-ZR8.js} +3 -3
  332. package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-VB4O4Nl5.js} +3 -3
  333. package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-d3jEgjsI.js} +3 -3
  334. package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-BcRFsyo3.js} +4 -5
  335. package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-CEWpIFrj.js} +6 -5
  336. package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.js → _server.ts-CLVdVIF9.js} +2 -2
  337. package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-D_j7aSy5.js} +6 -5
  338. package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-QEZF8h2q.js} +4 -5
  339. package/studio-dist/server/chunks/{client-CPM4LrO2.js → client-Kp1dP1od.js} +2 -2
  340. package/studio-dist/server/chunks/{error.svelte-ShcZo43D.js → error.svelte-WOCioJVX.js} +3 -3
  341. package/studio-dist/server/chunks/{hooks.server-D2qbf3Zp.js → hooks.server-DH9zkIrJ.js} +3 -1
  342. package/studio-dist/server/chunks/{http-BiQjEmVU.js → http-DT5kxaWk.js} +5 -4
  343. package/studio-dist/server/chunks/{internal-Cgsrya1j.js → internal-z0vqd5_u.js} +3 -3
  344. package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
  345. package/studio-dist/server/chunks/{stores-BGrpEDMK.js → stores-s2kaL315.js} +2 -2
  346. package/studio-dist/server/index.js +1 -1
  347. package/studio-dist/server/manifest.js +17 -17
  348. package/studio-dist/client/_app/immutable/chunks/Bw6J8NDM.js +0 -1
  349. package/studio-dist/client/_app/immutable/entry/start.C9bwPpvc.js +0 -1
  350. package/studio-dist/client/_app/immutable/nodes/25.D1vYaH8g.js +0 -39
  351. package/studio-dist/server/chunks/1-CVo7Nk6d.js +0 -9
  352. package/studio-dist/server/chunks/25-CYsps38R.js +0 -366
@@ -0,0 +1,62 @@
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
+ dispatchFromCli
18
+ } from "./chunk-L7ONYSV6.js";
19
+ import "./chunk-6N6WGLXE.js";
20
+ import "./chunk-4VASFLUW.js";
21
+ import {
22
+ defineCommand
23
+ } from "./chunk-PKKZPOOP.js";
24
+ import "./chunk-QKMBWYAS.js";
25
+ import "./chunk-4RGSNUUP.js";
26
+ import "./chunk-6JSJNYH2.js";
27
+ import "./chunk-D7BAQNV2.js";
28
+ import "./chunk-TYC7G5LF.js";
29
+
30
+ // packages/cleo/src/cli/commands/roadmap.ts
31
+ var roadmapCommand = defineCommand({
32
+ meta: {
33
+ name: "roadmap",
34
+ description: "Generate project roadmap from task provenance \u2014 epics grouped by status with progress"
35
+ },
36
+ args: {
37
+ "include-history": {
38
+ type: "boolean",
39
+ description: "Include release history from CHANGELOG.md"
40
+ },
41
+ "upcoming-only": {
42
+ type: "boolean",
43
+ description: "Only show pending/upcoming epics (exclude completed)"
44
+ }
45
+ },
46
+ async run({ args }) {
47
+ await dispatchFromCli(
48
+ "query",
49
+ "admin",
50
+ "roadmap",
51
+ {
52
+ includeHistory: args["include-history"],
53
+ upcomingOnly: args["upcoming-only"]
54
+ },
55
+ { command: "roadmap", operation: "admin.roadmap" }
56
+ );
57
+ }
58
+ });
59
+ export {
60
+ roadmapCommand
61
+ };
62
+ //# sourceMappingURL=roadmap-LFU3AG7D.js.map
@@ -0,0 +1,245 @@
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
+ } from "./chunk-PKKZPOOP.js";
20
+ import {
21
+ cliError,
22
+ cliOutput
23
+ } from "./chunk-4RGSNUUP.js";
24
+ import "./chunk-6JSJNYH2.js";
25
+
26
+ // packages/cleo/src/cli/commands/run.ts
27
+ import { constants } from "node:os";
28
+ import {
29
+ RESOURCE_DEFERRED_CODE,
30
+ RUN_COMMAND_FAILED_CODE,
31
+ RUN_DEFERRED_EXIT_CODE
32
+ } from "@cleocode/contracts/resource-governor.js";
33
+ import { planFootprintBytes } from "@cleocode/core/resources/admission-ledger.js";
34
+ import {
35
+ canonicalForClass,
36
+ isWatchCommand,
37
+ isWholeSuiteTestRun,
38
+ namedTestFileCount,
39
+ resolveRunClass
40
+ } from "@cleocode/core/resources/run-admission.js";
41
+ import {
42
+ runGoverned
43
+ } from "@cleocode/core/resources/run-governed.js";
44
+ import { planHeavyToolEnv } from "@cleocode/core/tasks/heavy-tool-env.js";
45
+ import { GovernedRunInTestRunnerError } from "@cleocode/core/tasks/tool-runner-guard.js";
46
+ function commandAfterDashes(rawArgs) {
47
+ const idx = rawArgs.indexOf("--");
48
+ return idx === -1 ? [] : rawArgs.slice(idx + 1);
49
+ }
50
+ function invalid(message, fix, stderr) {
51
+ cliError(
52
+ message,
53
+ "E_VALIDATION",
54
+ { name: "E_VALIDATION", fix },
55
+ { operation: "resources.run" },
56
+ { stderr }
57
+ );
58
+ process.exit(6);
59
+ }
60
+ function runExitCode(r) {
61
+ if (r.spawnError !== null) return 127;
62
+ if (r.signal !== null) return 128 + (constants.signals[r.signal] ?? 0);
63
+ return r.exitCode ?? 1;
64
+ }
65
+ function exitFailed(result, code, passthrough, resources) {
66
+ const { kind: _kind, ...rest } = result;
67
+ const data = resources === null ? rest : { ...rest, resources };
68
+ const message = result.spawnError !== null ? `could not start command: ${result.spawnError}` : `command ${result.signal !== null ? `killed by ${result.signal}` : `exited with ${result.exitCode}`}`;
69
+ if (passthrough && result.spawnError === null) {
70
+ process.stderr.write(`[cleo run] ${RUN_COMMAND_FAILED_CODE}: ${message}
71
+ `);
72
+ } else {
73
+ cliError(
74
+ message,
75
+ RUN_COMMAND_FAILED_CODE,
76
+ { name: RUN_COMMAND_FAILED_CODE, details: data },
77
+ { operation: "resources.run" },
78
+ { stderr: passthrough }
79
+ );
80
+ }
81
+ process.exit(code);
82
+ }
83
+ var runCommand = defineCommand({
84
+ meta: {
85
+ name: "run",
86
+ description: "Run a heavy command (tests, builds, installs) under the machine-wide resource budget: cleo run [--class test|build|full-build] [--wait] [--passthrough] -- <command...>"
87
+ },
88
+ args: {
89
+ class: {
90
+ type: "string",
91
+ description: "Resource class: test, build, typecheck, install, scan, full-build, db (default: inferred from the command)"
92
+ },
93
+ wait: {
94
+ type: "boolean",
95
+ description: "Join the machine-wide FIFO admission queue instead of returning E_RESOURCE_DEFERRED",
96
+ default: false
97
+ },
98
+ timeout: {
99
+ type: "string",
100
+ description: "With --wait: give up after this many seconds (default 1800)"
101
+ },
102
+ "whole-suite": {
103
+ type: "boolean",
104
+ description: "Allow a whole-suite test run (a vitest run naming no file, directory, --project or -t filter, or a vitest test script without narrowing arguments): refused by default, since an empty file list is the usual cause",
105
+ default: false
106
+ },
107
+ passthrough: {
108
+ type: "boolean",
109
+ description: "Give the command this process's stdin, stdout and stderr and exit with its code. cleo run then writes nothing to stdout (an explicit ADR-086 exception, like docs fetch --content): its own envelopes go to stderr, and it prints only a deferral (exit 75), an ungoverned run, a pause or a failure",
110
+ default: false
111
+ }
112
+ },
113
+ async run({ args, rawArgs }) {
114
+ const passthrough = args.passthrough === true;
115
+ const argv = commandAfterDashes(rawArgs ?? []);
116
+ if (argv.length === 0) {
117
+ invalid(
118
+ "cleo run needs a command after --",
119
+ "cleo run --class test -- npx vitest run path/to/file.test.ts",
120
+ passthrough
121
+ );
122
+ }
123
+ if (args.class === void 0 && isWatchCommand(argv)) {
124
+ invalid(
125
+ `cleo run refuses watch/dev/serve commands, which never exit and would hold a resource slot forever: ${argv.join(" ")}`,
126
+ "Run the watcher directly, without cleo run. If it is a bounded job, say so with --class (cleo run --class test -- <cmd>)",
127
+ passthrough
128
+ );
129
+ }
130
+ if (args["whole-suite"] !== true && isWholeSuiteTestRun(argv, process.cwd())) {
131
+ invalid(
132
+ `cleo run refuses a test run that names no test file, directory, --project or -t filter: it would run the whole suite (${argv.join(" ")}). An empty generated file list is the usual cause`,
133
+ "Name what to run: cleo run -- pnpm exec vitest run path/to/a.test.ts (check a generated list is not empty), or pass test files to the script (pnpm test path/to/a.test.ts). For a deliberate whole-suite run: cleo run --whole-suite -- <cmd>",
134
+ passthrough
135
+ );
136
+ }
137
+ let timeoutMs = 18e5;
138
+ if (args.timeout !== void 0) {
139
+ if (!args.wait)
140
+ invalid("--timeout requires --wait", "cleo run --wait --timeout 600 -- <cmd>", passthrough);
141
+ const seconds = Number(args.timeout);
142
+ if (!Number.isFinite(seconds) || seconds <= 0) {
143
+ invalid(
144
+ `--timeout must be a positive number of seconds (got '${args.timeout}')`,
145
+ "--timeout 600",
146
+ passthrough
147
+ );
148
+ }
149
+ timeoutMs = seconds * 1e3;
150
+ }
151
+ let cls;
152
+ try {
153
+ cls = resolveRunClass(args.class, argv, process.cwd());
154
+ } catch (err) {
155
+ invalid(
156
+ err instanceof Error ? err.message : String(err),
157
+ "cleo run --class test -- <cmd>",
158
+ passthrough
159
+ );
160
+ }
161
+ const notice = (line, level) => {
162
+ if (passthrough && level === "info") return;
163
+ process.stderr.write(`[cleo run] ${line}
164
+ `);
165
+ };
166
+ const namedFiles = namedTestFileCount(cls, argv);
167
+ const { overlay, resources } = planHeavyToolEnv(
168
+ canonicalForClass(cls),
169
+ process.env,
170
+ void 0,
171
+ namedFiles ?? void 0
172
+ );
173
+ if (resources !== null) {
174
+ notice(
175
+ `planned resources: ${resources.summary}`,
176
+ resources.clamped.length > 0 || resources.overBudget ? "warn" : "info"
177
+ );
178
+ }
179
+ let result;
180
+ try {
181
+ result = await runGoverned({
182
+ argv,
183
+ cls,
184
+ cwd: process.cwd(),
185
+ env: { ...process.env, ...overlay },
186
+ sessionId: process.env.CLEO_SESSION_ID ?? process.env.CLAUDE_CODE_SESSION_ID ?? null,
187
+ wait: Boolean(args.wait),
188
+ timeoutMs,
189
+ passthrough,
190
+ // A terminal on stdin: keep the child in its foreground group.
191
+ foreground: passthrough && process.stdin.isTTY === true,
192
+ notice,
193
+ ...resources !== null ? { footprintBytes: planFootprintBytes(resources) } : {},
194
+ ...namedFiles !== null ? { scope: "narrowed" } : {}
195
+ });
196
+ } catch (err) {
197
+ if (err instanceof GovernedRunInTestRunnerError) {
198
+ cliError(
199
+ err.message,
200
+ err.codeName,
201
+ { name: err.codeName, fix: err.fix, details: err.details },
202
+ { operation: "resources.run" },
203
+ { stderr: passthrough }
204
+ );
205
+ process.exit(err.code);
206
+ }
207
+ cliError(
208
+ `cleo run failed: ${err instanceof Error ? err.message : String(err)}`,
209
+ 1,
210
+ { name: "E_GENERAL" },
211
+ { operation: "resources.run" },
212
+ { stderr: passthrough }
213
+ );
214
+ process.exit(1);
215
+ }
216
+ if (result.kind === "deferred") {
217
+ cliError(
218
+ `not started: ${result.reason}`,
219
+ RESOURCE_DEFERRED_CODE,
220
+ {
221
+ name: RESOURCE_DEFERRED_CODE,
222
+ details: result.details,
223
+ fix: result.fix,
224
+ alternatives: result.alternatives
225
+ },
226
+ { operation: "resources.run" },
227
+ { stderr: passthrough }
228
+ );
229
+ process.exit(RUN_DEFERRED_EXIT_CODE);
230
+ }
231
+ const code = runExitCode(result);
232
+ if (code !== 0) exitFailed(result, code, passthrough, resources);
233
+ if (passthrough) return;
234
+ const { kind: _kind, ...data } = result;
235
+ cliOutput(resources === null ? data : { ...data, resources }, {
236
+ command: "run",
237
+ operation: "resources.run"
238
+ });
239
+ }
240
+ });
241
+ export {
242
+ runCommand,
243
+ runExitCode
244
+ };
245
+ //# sourceMappingURL=run-HXRILSR7.js.map
@@ -0,0 +1,89 @@
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
+ negatedFlag
18
+ } from "./chunk-47JYZAMS.js";
19
+ import {
20
+ dispatchFromCli
21
+ } from "./chunk-L7ONYSV6.js";
22
+ import "./chunk-6N6WGLXE.js";
23
+ import "./chunk-4VASFLUW.js";
24
+ import {
25
+ defineCommand,
26
+ showUsage
27
+ } from "./chunk-PKKZPOOP.js";
28
+ import "./chunk-QKMBWYAS.js";
29
+ import "./chunk-4RGSNUUP.js";
30
+ import "./chunk-6JSJNYH2.js";
31
+ import "./chunk-D7BAQNV2.js";
32
+ import "./chunk-TYC7G5LF.js";
33
+
34
+ // packages/cleo/src/cli/commands/safestop.ts
35
+ var safestopCommand = defineCommand({
36
+ meta: {
37
+ name: "safestop",
38
+ description: "Graceful shutdown for agents approaching context limits"
39
+ },
40
+ args: {
41
+ reason: {
42
+ type: "string",
43
+ description: "Reason for stopping",
44
+ required: false
45
+ },
46
+ commit: {
47
+ type: "boolean",
48
+ description: "Commit pending git changes with WIP message",
49
+ default: false
50
+ },
51
+ handoff: {
52
+ type: "string",
53
+ description: "Generate handoff document (use - for stdout)"
54
+ },
55
+ "no-session-end": {
56
+ type: "boolean",
57
+ description: "Update notes but do not end session",
58
+ default: false
59
+ },
60
+ "dry-run": {
61
+ type: "boolean",
62
+ description: "Show actions without executing",
63
+ default: false
64
+ }
65
+ },
66
+ async run({ args, cmd }) {
67
+ if (!args.reason) {
68
+ await showUsage(cmd);
69
+ return;
70
+ }
71
+ await dispatchFromCli(
72
+ "mutate",
73
+ "admin",
74
+ "safestop",
75
+ {
76
+ reason: args.reason,
77
+ commit: args.commit,
78
+ handoff: args.handoff,
79
+ noSessionEnd: negatedFlag(args, "session-end"),
80
+ dryRun: args["dry-run"]
81
+ },
82
+ { command: "safestop", operation: "admin.safestop" }
83
+ );
84
+ }
85
+ });
86
+ export {
87
+ safestopCommand
88
+ };
89
+ //# sourceMappingURL=safestop-Z5UC7NGQ.js.map
@@ -0,0 +1,286 @@
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
+ dispatchFromCli,
18
+ dispatchRaw,
19
+ handleRawError
20
+ } from "./chunk-L7ONYSV6.js";
21
+ import "./chunk-6N6WGLXE.js";
22
+ import "./chunk-4VASFLUW.js";
23
+ import {
24
+ defineCommand,
25
+ showUsage
26
+ } from "./chunk-PKKZPOOP.js";
27
+ import "./chunk-QKMBWYAS.js";
28
+ import {
29
+ cliOutput
30
+ } from "./chunk-4RGSNUUP.js";
31
+ import "./chunk-6JSJNYH2.js";
32
+ import "./chunk-D7BAQNV2.js";
33
+ import "./chunk-TYC7G5LF.js";
34
+
35
+ // packages/cleo/src/cli/commands/saga.ts
36
+ import { parseAcceptanceCriteria } from "@cleocode/core";
37
+ var createCommand = defineCommand({
38
+ meta: {
39
+ name: "create",
40
+ description: "Create a new Saga (top-level task with type='saga')"
41
+ },
42
+ args: {
43
+ title: {
44
+ type: "string",
45
+ description: "Saga title",
46
+ required: true
47
+ },
48
+ description: {
49
+ type: "string",
50
+ description: "Saga description",
51
+ required: false
52
+ },
53
+ acceptance: {
54
+ type: "string",
55
+ description: 'Pipe-separated acceptance criteria (e.g. "AC1|AC2")',
56
+ required: false
57
+ },
58
+ "dry-run": {
59
+ type: "boolean",
60
+ description: "Validate and preview the Saga without writing task, relation, or doc rows",
61
+ required: false
62
+ }
63
+ },
64
+ async run({ args }) {
65
+ await dispatchFromCli(
66
+ "mutate",
67
+ "tasks",
68
+ "saga.create",
69
+ {
70
+ title: args.title,
71
+ description: args.description,
72
+ // T9839/gh-409: route through bracket+quote-aware parser so criteria
73
+ // containing `ENUM (a|b|c)` or quoted unions aren't shredded.
74
+ acceptance: args.acceptance ? parseAcceptanceCriteria(args.acceptance) : void 0,
75
+ dryRun: args["dry-run"] === true
76
+ },
77
+ { command: "saga", operation: "tasks.saga.create" }
78
+ );
79
+ }
80
+ });
81
+ var addCommand = defineCommand({
82
+ meta: {
83
+ name: "add",
84
+ description: "Link a member Epic to a Saga via parent_id containment"
85
+ },
86
+ args: {
87
+ sagaId: {
88
+ type: "positional",
89
+ description: "Saga task ID (must have type='saga')",
90
+ required: true
91
+ },
92
+ epicId: {
93
+ type: "positional",
94
+ description: "Epic task ID to add as a member",
95
+ required: true
96
+ }
97
+ },
98
+ async run({ args }) {
99
+ await dispatchFromCli(
100
+ "mutate",
101
+ "tasks",
102
+ "saga.add",
103
+ { sagaId: args.sagaId, epicId: args.epicId },
104
+ { command: "saga", operation: "tasks.saga.add" }
105
+ );
106
+ }
107
+ });
108
+ var detachCommand = defineCommand({
109
+ meta: {
110
+ name: "detach",
111
+ description: "Remove a Saga member via parent_id containment \u2014 idempotent, audit-logged"
112
+ },
113
+ args: {
114
+ sagaId: {
115
+ type: "positional",
116
+ description: "Saga task ID",
117
+ required: true
118
+ },
119
+ memberId: {
120
+ type: "positional",
121
+ description: "Member task ID to detach from the Saga",
122
+ required: true
123
+ },
124
+ reason: {
125
+ type: "string",
126
+ description: "Human-readable reason recorded in the audit log entry",
127
+ required: false
128
+ }
129
+ },
130
+ async run({ args }) {
131
+ await dispatchFromCli(
132
+ "mutate",
133
+ "tasks",
134
+ "saga.detach",
135
+ { sagaId: args.sagaId, memberId: args.memberId, reason: args.reason },
136
+ { command: "saga", operation: "tasks.saga.detach" }
137
+ );
138
+ }
139
+ });
140
+ var listCommand = defineCommand({
141
+ meta: {
142
+ name: "list",
143
+ description: "List all Sagas"
144
+ },
145
+ async run() {
146
+ await dispatchFromCli("query", "tasks", "saga.list", {}, { command: "saga" });
147
+ }
148
+ });
149
+ var membersCommand = defineCommand({
150
+ meta: {
151
+ name: "members",
152
+ description: "List all member Epics linked to a Saga via parent_id containment"
153
+ },
154
+ args: {
155
+ sagaId: {
156
+ type: "positional",
157
+ description: "Saga task ID",
158
+ required: true
159
+ }
160
+ },
161
+ async run({ args }) {
162
+ await dispatchFromCli(
163
+ "query",
164
+ "tasks",
165
+ "saga.members",
166
+ { sagaId: args.sagaId },
167
+ { command: "saga" }
168
+ );
169
+ }
170
+ });
171
+ var repairCommand = defineCommand({
172
+ meta: {
173
+ name: "repair",
174
+ description: "Detach an I5-violating parentId from a Saga. Idempotent."
175
+ },
176
+ args: {
177
+ sagaId: {
178
+ type: "positional",
179
+ description: "Saga task ID (must have type='saga')",
180
+ required: true
181
+ }
182
+ },
183
+ async run({ args }) {
184
+ await dispatchFromCli(
185
+ "mutate",
186
+ "tasks",
187
+ "saga.repair",
188
+ { sagaId: args.sagaId },
189
+ { command: "saga", operation: "tasks.saga.repair" }
190
+ );
191
+ }
192
+ });
193
+ var reconcileCommand = defineCommand({
194
+ meta: {
195
+ name: "reconcile",
196
+ description: "Idempotent cron-safe saga auto-close repair \u2014 re-applies T10116 logic for state changed outside completeTask"
197
+ },
198
+ args: {
199
+ sagaId: {
200
+ type: "positional",
201
+ description: "Optional saga task ID. Omit to walk every saga.",
202
+ required: false
203
+ },
204
+ "dry-run": {
205
+ type: "boolean",
206
+ description: "Report what would happen without mutating rows or writing audit log",
207
+ required: false
208
+ }
209
+ },
210
+ async run({ args }) {
211
+ const sagaId = typeof args.sagaId === "string" && args.sagaId.length > 0 ? args.sagaId : void 0;
212
+ await dispatchFromCli(
213
+ "mutate",
214
+ "tasks",
215
+ "saga.reconcile",
216
+ { sagaId, dryRun: args["dry-run"] === true },
217
+ { command: "saga", operation: "tasks.saga.reconcile" }
218
+ );
219
+ }
220
+ });
221
+ var rollupCommand = defineCommand({
222
+ meta: {
223
+ name: "rollup",
224
+ description: "Aggregate member Epic statuses: total/done/active/blocked/pending + completionPct"
225
+ },
226
+ args: {
227
+ sagaId: {
228
+ type: "positional",
229
+ description: "Saga task ID",
230
+ required: true
231
+ }
232
+ },
233
+ async run({ args }) {
234
+ const response = await dispatchRaw("query", "tasks", "saga.rollup", {
235
+ sagaId: args.sagaId
236
+ });
237
+ handleRawError(response, { command: "saga", operation: "tasks.saga.rollup" });
238
+ cliOutput(response.data ?? {}, { command: "saga", operation: "tasks.saga.rollup" });
239
+ }
240
+ });
241
+ var nextCommand = defineCommand({
242
+ meta: {
243
+ name: "next",
244
+ description: "Return the next actionable Saga and its ready-frontier task IDs"
245
+ },
246
+ args: {
247
+ sagaId: {
248
+ type: "positional",
249
+ description: "Optional saga task ID. Omit to auto-select from canonical order.",
250
+ required: false
251
+ }
252
+ },
253
+ async run({ args }) {
254
+ const { sagas, getProjectRoot } = await import("@cleocode/core");
255
+ const projectRoot = getProjectRoot();
256
+ const sagaId = typeof args.sagaId === "string" && args.sagaId.length > 0 ? args.sagaId : void 0;
257
+ const result = await sagas.sagaNext(projectRoot, { sagaId });
258
+ cliOutput(result.success ? result.data : result, { command: "saga", operation: "saga.next" });
259
+ }
260
+ });
261
+ var sagaCommand = defineCommand({
262
+ meta: {
263
+ name: "saga",
264
+ description: "Saga management \u2014 above-Epic grouping tier (ADR-073)"
265
+ },
266
+ subCommands: {
267
+ create: createCommand,
268
+ add: addCommand,
269
+ detach: detachCommand,
270
+ list: listCommand,
271
+ members: membersCommand,
272
+ rollup: rollupCommand,
273
+ repair: repairCommand,
274
+ reconcile: reconcileCommand,
275
+ next: nextCommand
276
+ },
277
+ async run({ cmd, rawArgs }) {
278
+ const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
279
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
280
+ await showUsage(cmd);
281
+ }
282
+ });
283
+ export {
284
+ sagaCommand
285
+ };
286
+ //# sourceMappingURL=saga-Y6FZS6AM.js.map