@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
package/README.md CHANGED
@@ -259,8 +259,15 @@ cleo --mvi <level> <command> # Control detail level
259
259
  export CLEO_LOG_LEVEL=debug
260
260
  export CLEO_PROJECT_ROOT=/path/to/project # Override cwd-based project detection
261
261
  export CLEO_ROOT=/path/to/project # Alias for CLEO_PROJECT_ROOT
262
+ export CLEO_NO_UPDATE_NOTICE=1 # Hide the update notice and skip its daily registry check
262
263
  ```
263
264
 
265
+ An installed CLI checks npm for a newer release at most once a day, in a
266
+ detached background process, and prints one line on stderr naming the version
267
+ and `cleo self-update` (at most once a day; every 15 minutes for a release
268
+ flagged as a hotfix). It never writes to stdout, and it stays silent in CI and
269
+ from a source checkout.
270
+
264
271
  ### Configuration File
265
272
 
266
273
  ```json
package/bin/cleo.js CHANGED
@@ -65,9 +65,19 @@ import { fileURLToPath } from 'node:url';
65
65
  * Must be set before anything submits work to the pool — the pool is created
66
66
  * on first use and never resized — so it is set here, before the re-exec and
67
67
  * before the in-process import; the child inherits it through the environment.
68
+ *
69
+ * T13122: it is the CLI's tuning, not its children's. The marker names the value
70
+ * CLEO supplied, and the CLI removes both once its own pool exists
71
+ * (`src/cli/lib/cli-threadpool-env.ts`), so a test runner and each of its
72
+ * workers no longer start 64 pool threads apiece. An operator's own value
73
+ * carries no marker and is inherited as before.
68
74
  */
69
75
  const DEFAULT_UV_THREADPOOL_SIZE = '64';
70
- if (!process.env.UV_THREADPOOL_SIZE) process.env.UV_THREADPOOL_SIZE = DEFAULT_UV_THREADPOOL_SIZE;
76
+ const CLI_THREADPOOL_MARKER = 'CLEO_CLI_UV_THREADPOOL_SIZE';
77
+ if (!process.env.UV_THREADPOOL_SIZE) {
78
+ process.env.UV_THREADPOOL_SIZE = DEFAULT_UV_THREADPOOL_SIZE;
79
+ process.env[CLI_THREADPOOL_MARKER] = DEFAULT_UV_THREADPOOL_SIZE;
80
+ }
71
81
 
72
82
  const __dirname = dirname(fileURLToPath(import.meta.url));
73
83
  const cliPath = resolve(__dirname, '../dist/cli/index.js');
@@ -0,0 +1,159 @@
1
+ (() => {
2
+ const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
3
+ if (globalThis[_installed]) return;
4
+ globalThis[_installed] = true;
5
+ const _origEmitWarning = process.emitWarning;
6
+ process.emitWarning = function(warning, type, code, ctor) {
7
+ if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
8
+ return;
9
+ }
10
+ if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
11
+ return;
12
+ }
13
+ return _origEmitWarning.call(process, warning, type, code, ctor);
14
+ };
15
+ })();
16
+ import {
17
+ isSubCommandDispatch
18
+ } from "./chunk-YY66LFZF.js";
19
+ import {
20
+ dispatchFromCli
21
+ } from "./chunk-L7ONYSV6.js";
22
+ import "./chunk-6N6WGLXE.js";
23
+ import "./chunk-4VASFLUW.js";
24
+ import {
25
+ defineCommand
26
+ } from "./chunk-PKKZPOOP.js";
27
+ import "./chunk-QKMBWYAS.js";
28
+ import "./chunk-4RGSNUUP.js";
29
+ import "./chunk-6JSJNYH2.js";
30
+ import "./chunk-D7BAQNV2.js";
31
+ import "./chunk-TYC7G5LF.js";
32
+
33
+ // packages/cleo/src/cli/commands/adapter.ts
34
+ var listCommand = defineCommand({
35
+ meta: { name: "list", description: "List all discovered provider adapters" },
36
+ async run() {
37
+ await dispatchFromCli(
38
+ "query",
39
+ "tools",
40
+ "adapter.list",
41
+ {},
42
+ { command: "adapter", operation: "tools.adapter.list" }
43
+ );
44
+ }
45
+ });
46
+ var showCommand = defineCommand({
47
+ meta: { name: "show", description: "Show details for a specific adapter" },
48
+ args: {
49
+ adapterId: {
50
+ type: "positional",
51
+ description: "Adapter ID to inspect",
52
+ required: true
53
+ }
54
+ },
55
+ async run({ args }) {
56
+ await dispatchFromCli(
57
+ "query",
58
+ "tools",
59
+ "adapter.show",
60
+ { id: args.adapterId },
61
+ { command: "adapter", operation: "tools.adapter.show" }
62
+ );
63
+ }
64
+ });
65
+ var detectCommand = defineCommand({
66
+ meta: { name: "detect", description: "Detect active providers in the current environment" },
67
+ async run() {
68
+ await dispatchFromCli(
69
+ "query",
70
+ "tools",
71
+ "adapter.detect",
72
+ {},
73
+ { command: "adapter", operation: "tools.adapter.detect" }
74
+ );
75
+ }
76
+ });
77
+ var healthCommand = defineCommand({
78
+ meta: { name: "health", description: "Show health status for adapters" },
79
+ args: {
80
+ id: {
81
+ type: "string",
82
+ description: "Specific adapter ID (omit for all adapters)"
83
+ }
84
+ },
85
+ async run({ args }) {
86
+ await dispatchFromCli(
87
+ "query",
88
+ "tools",
89
+ "adapter.health",
90
+ { id: args.id },
91
+ { command: "adapter", operation: "tools.adapter.health" }
92
+ );
93
+ }
94
+ });
95
+ var activateCommand = defineCommand({
96
+ meta: { name: "activate", description: "Load and activate a provider adapter" },
97
+ args: {
98
+ adapterId: {
99
+ type: "positional",
100
+ description: "Adapter ID to activate",
101
+ required: true
102
+ }
103
+ },
104
+ async run({ args }) {
105
+ await dispatchFromCli(
106
+ "mutate",
107
+ "tools",
108
+ "adapter.activate",
109
+ { id: args.adapterId },
110
+ { command: "adapter", operation: "tools.adapter.activate" }
111
+ );
112
+ }
113
+ });
114
+ var disposeCommand = defineCommand({
115
+ meta: { name: "dispose", description: "Dispose one or all adapters" },
116
+ args: {
117
+ id: {
118
+ type: "string",
119
+ description: "Specific adapter ID to dispose (omit to dispose all)"
120
+ }
121
+ },
122
+ async run({ args }) {
123
+ await dispatchFromCli(
124
+ "mutate",
125
+ "tools",
126
+ "adapter.dispose",
127
+ { id: args.id },
128
+ { command: "adapter", operation: "tools.adapter.dispose" }
129
+ );
130
+ }
131
+ });
132
+ var adapterCommand = defineCommand({
133
+ meta: {
134
+ name: "adapter",
135
+ description: "Provider adapter management: list, show, detect, health, activate, dispose"
136
+ },
137
+ subCommands: {
138
+ list: listCommand,
139
+ show: showCommand,
140
+ detect: detectCommand,
141
+ health: healthCommand,
142
+ activate: activateCommand,
143
+ dispose: disposeCommand
144
+ },
145
+ async run({ cmd, rawArgs }) {
146
+ if (isSubCommandDispatch(rawArgs, cmd.subCommands)) return;
147
+ await dispatchFromCli(
148
+ "query",
149
+ "tools",
150
+ "adapter.list",
151
+ {},
152
+ { command: "adapter", operation: "tools.adapter.list" }
153
+ );
154
+ }
155
+ });
156
+ export {
157
+ adapterCommand
158
+ };
159
+ //# sourceMappingURL=adapter-OUQRSFZL.js.map
@@ -0,0 +1,443 @@
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
+ collectMutateInput
18
+ } from "./chunk-QA6T2LQ5.js";
19
+ import {
20
+ dispatchRaw,
21
+ handleRawError,
22
+ maybeEmitDescribe
23
+ } from "./chunk-L7ONYSV6.js";
24
+ import "./chunk-6N6WGLXE.js";
25
+ import "./chunk-4VASFLUW.js";
26
+ import {
27
+ defineCommand,
28
+ showUsage
29
+ } from "./chunk-PKKZPOOP.js";
30
+ import "./chunk-QKMBWYAS.js";
31
+ import {
32
+ cliError,
33
+ cliOutput,
34
+ humanInfo,
35
+ humanWarn
36
+ } from "./chunk-4RGSNUUP.js";
37
+ import "./chunk-6JSJNYH2.js";
38
+ import "./chunk-D7BAQNV2.js";
39
+ import "./chunk-TYC7G5LF.js";
40
+
41
+ // packages/cleo/src/cli/commands/add.ts
42
+ import { TASK_SEVERITIES } from "@cleocode/contracts/enums.js";
43
+ import { ExitCode } from "@cleocode/contracts/exit-codes.js";
44
+ import { INPUT_CONTRACTS } from "@cleocode/core/dispatch/contracts/input-contracts";
45
+ import { validateOperationInput } from "@cleocode/core/dispatch/validation";
46
+ import { getProjectRoot } from "@cleocode/core/project-scope";
47
+ import { inferTaskAddParams } from "@cleocode/core/tasks/infer-add-params";
48
+ var addCommand = defineCommand({
49
+ meta: {
50
+ name: "add",
51
+ description: `Create a new task (requires active session)
52
+ For 2+ tasks at once: cleo add-batch --file tasks.json (single transaction, atomic rollback)`
53
+ },
54
+ args: {
55
+ /**
56
+ * Schema-first input — supersedes all flag-based args when present.
57
+ *
58
+ * Accepts a JSON object that matches `INPUT_CONTRACTS['tasks.add']`.
59
+ * When provided, the command short-circuits the flag-mapping path
60
+ * entirely and goes straight to validate→dispatch.
61
+ *
62
+ * @task T9917
63
+ */
64
+ params: {
65
+ type: "string",
66
+ description: 'Inline JSON object matching INPUT_CONTRACTS["tasks.add"] (T9917). Overrides positional + flags.'
67
+ },
68
+ /**
69
+ * Schema-first input from a JSON file. Same semantics as --params.
70
+ *
71
+ * @task T9917
72
+ */
73
+ "params-file": {
74
+ type: "string",
75
+ description: 'Path to JSON file matching INPUT_CONTRACTS["tasks.add"] (T9917).'
76
+ },
77
+ title: {
78
+ type: "positional",
79
+ description: "Task title (3\u2013500 characters)",
80
+ required: false
81
+ },
82
+ status: {
83
+ type: "string",
84
+ alias: "s",
85
+ description: "Task status (pending | active | blocked | done)"
86
+ },
87
+ priority: {
88
+ type: "string",
89
+ alias: "p",
90
+ description: "Task priority (low | medium | high | critical)"
91
+ },
92
+ type: {
93
+ type: "string",
94
+ alias: "t",
95
+ description: "Task type (epic | task | subtask)"
96
+ },
97
+ parent: {
98
+ type: "string",
99
+ description: 'Parent task ID (makes this task a subtask). Pass "none" to suppress focus-task inference \u2014 the task will still require a valid parent per hierarchy policy (T11293).'
100
+ },
101
+ "parent-id": {
102
+ type: "string",
103
+ description: 'Alias for --parent. Pass "none" to suppress focus-task inference (T11293).'
104
+ },
105
+ size: {
106
+ type: "string",
107
+ description: "Scope size estimate (small | medium | large)"
108
+ },
109
+ phase: {
110
+ type: "string",
111
+ alias: "P",
112
+ description: "Phase slug to assign the task to"
113
+ },
114
+ description: {
115
+ type: "string",
116
+ alias: "d",
117
+ description: "Detailed task description (must differ meaningfully from title)"
118
+ },
119
+ desc: {
120
+ type: "string",
121
+ description: "Task description (alias for --description)"
122
+ },
123
+ labels: {
124
+ type: "string",
125
+ alias: "l",
126
+ description: 'Comma-separated labels (lowercase alphanumeric + hyphens + periods only, e.g. "track-b,wave.1") (gh-392)'
127
+ },
128
+ files: {
129
+ type: "string",
130
+ description: "Comma-separated file paths"
131
+ },
132
+ "files-infer": {
133
+ type: "boolean",
134
+ description: "Infer touched files from task title and description using GitNexus"
135
+ },
136
+ acceptance: {
137
+ type: "string",
138
+ description: 'Pipe-separated acceptance criteria (e.g. "AC1|AC2|AC3")'
139
+ },
140
+ depends: {
141
+ type: "string",
142
+ alias: "D",
143
+ description: "Comma-separated dependency task IDs"
144
+ },
145
+ notes: {
146
+ type: "string",
147
+ description: "Initial note entry for the task"
148
+ },
149
+ note: {
150
+ type: "string",
151
+ description: "Alias for --notes"
152
+ },
153
+ position: {
154
+ type: "string",
155
+ description: "Position within sibling group"
156
+ },
157
+ "parent-search": {
158
+ type: "string",
159
+ description: "Resolve parent by title substring instead of exact ID (T090)"
160
+ },
161
+ "add-phase": {
162
+ type: "boolean",
163
+ description: "Create new phase if it does not exist"
164
+ },
165
+ "dry-run": {
166
+ type: "boolean",
167
+ description: "Show what would be created without making changes"
168
+ },
169
+ /**
170
+ * Task kind axis — intent of work.
171
+ * Values: work | research | experiment | bug | spike | release
172
+ * @task T944
173
+ * @task T9072
174
+ */
175
+ kind: {
176
+ type: "string",
177
+ description: "Task kind / intent axis (work|research|experiment|bug|spike|release) \u2014 orthogonal to --type (T944)"
178
+ },
179
+ /**
180
+ * Task scope axis — granularity of work.
181
+ * Values: project | feature | unit
182
+ * @task T944
183
+ */
184
+ scope: {
185
+ type: "string",
186
+ description: "Task scope / granularity axis (project|feature|unit) \u2014 orthogonal to --type (T944)"
187
+ },
188
+ /**
189
+ * Severity level for any task kind (not just bug).
190
+ * Values: P0 | P1 | P2 | P3
191
+ * Orthogonal to --priority — does NOT auto-map priority.
192
+ * Appends a signed attestation to .cleo/audit/severity-attestation.jsonl (T9071/T9073).
193
+ * @task T944
194
+ * @task T9073
195
+ */
196
+ severity: {
197
+ type: "string",
198
+ description: "Severity level (P0|P1|P2|P3) \u2014 valid for any --kind (T9073). Orthogonal to priority. Appends signed attestation."
199
+ },
200
+ /**
201
+ * Bypass the E_DUPLICATE_TASK_LIKELY rejection guard.
202
+ *
203
+ * When passed, `cleo add` proceeds even if BRAIN similarity scoring
204
+ * determines the task is very likely a duplicate (score >= 0.92).
205
+ * The bypass is audited to `.cleo/audit/duplicate-bypass.jsonl`.
206
+ *
207
+ * @task T1633
208
+ */
209
+ "force-duplicate": {
210
+ type: "boolean",
211
+ description: "Bypass BRAIN duplicate-task rejection (audited to .cleo/audit/duplicate-bypass.jsonl) (T1633)"
212
+ },
213
+ /**
214
+ * Resolve the PM-Core V2 design-point 3 guard in-line rather than failing.
215
+ *
216
+ * Without it, filing the first subtask under a task that carries its own
217
+ * text ACs costs three commands: add (rejected), decompose, add again.
218
+ *
219
+ * @task T12298
220
+ */
221
+ "auto-decompose": {
222
+ type: "boolean",
223
+ description: "Move the parent's text acceptance criteria to a new first subtask if they would block this add (T12298)"
224
+ },
225
+ /**
226
+ * Waiver for the critical-priority dependency declaration requirement.
227
+ *
228
+ * Critical-priority tasks without declared dependencies silently break
229
+ * wave-order spawning when downstream work assumes they are load-bearing.
230
+ * Provide a justification string to waive the `--depends` requirement.
231
+ * The waiver is stored in the task creation audit log in the mutation transaction.
232
+ *
233
+ * @task T1856
234
+ * @epic T1855
235
+ */
236
+ "depends-waiver": {
237
+ type: "string",
238
+ description: "Non-empty justification for creating a critical-priority task without --depends (T1856). Recorded verbatim in the transactional task creation audit log; rejected for non-critical creation."
239
+ },
240
+ /**
241
+ * Related tasks — semantic relationships (non-dependency).
242
+ * Comma-separated task IDs with optional type suffix (e.g. "T001:blocks,T002:related").
243
+ * Default type is 'related'.
244
+ */
245
+ relates: {
246
+ type: "string",
247
+ description: 'Comma-separated related task IDs with optional type suffix (e.g. "T001:blocks,T002")'
248
+ }
249
+ },
250
+ async run({ args, cmd }) {
251
+ if (maybeEmitDescribe("mutate", "tasks", "add", { command: "add" })) return;
252
+ const paramsArg = args.params;
253
+ const paramsFileArg = args["params-file"];
254
+ if (paramsArg !== void 0 || paramsFileArg !== void 0) {
255
+ const collectArgs = {};
256
+ if (paramsArg !== void 0) collectArgs.params = paramsArg;
257
+ if (paramsFileArg !== void 0) collectArgs.file = paramsFileArg;
258
+ let raw;
259
+ try {
260
+ raw = await collectMutateInput(
261
+ collectArgs,
262
+ process.stdin
263
+ );
264
+ } catch (err) {
265
+ cliError(
266
+ err.message,
267
+ ExitCode.VALIDATION_ERROR,
268
+ {
269
+ name: "E_VALIDATION_FAILED",
270
+ fix: "Verify the JSON syntax of your --params / --params-file input"
271
+ },
272
+ { operation: "tasks.add" }
273
+ );
274
+ process.exit(ExitCode.VALIDATION_ERROR);
275
+ return;
276
+ }
277
+ const contract = INPUT_CONTRACTS["tasks.add"];
278
+ if (!contract) {
279
+ cliError(
280
+ "tasks.add contract missing from INPUT_CONTRACTS registry",
281
+ ExitCode.GENERAL_ERROR,
282
+ { name: "E_INTERNAL", fix: "This is a CLI bug \u2014 file an issue" },
283
+ { operation: "tasks.add" }
284
+ );
285
+ process.exit(ExitCode.GENERAL_ERROR);
286
+ return;
287
+ }
288
+ const validation = validateOperationInput(contract, raw);
289
+ if (!validation.ok) {
290
+ cliError(
291
+ "tasks.add failed: validation",
292
+ ExitCode.VALIDATION_ERROR,
293
+ {
294
+ name: "E_VALIDATION_FAILED",
295
+ fix: validation.errors[0]?.fix ?? "Inspect errors[] and correct the input",
296
+ details: { errors: validation.errors }
297
+ },
298
+ { operation: "tasks.add" }
299
+ );
300
+ process.exit(ExitCode.VALIDATION_ERROR);
301
+ return;
302
+ }
303
+ const validatedPayload = raw;
304
+ const response2 = await dispatchRaw("mutate", "tasks", "add", validatedPayload);
305
+ if (!response2.success) {
306
+ handleRawError(response2, { command: "add", operation: "tasks.add" });
307
+ }
308
+ const data2 = response2.data;
309
+ const dataWarnings2 = data2?.warnings;
310
+ if (dataWarnings2?.length) {
311
+ for (const w of dataWarnings2) {
312
+ humanWarn(`\u26A0 ${w}`);
313
+ }
314
+ }
315
+ cliOutput(data2, { command: "add", operation: "tasks.add" });
316
+ return;
317
+ }
318
+ if (!args.title) {
319
+ await showUsage(cmd);
320
+ return;
321
+ }
322
+ if (args.severity !== void 0 && !TASK_SEVERITIES.includes(args.severity)) {
323
+ const valid = TASK_SEVERITIES.join(", ");
324
+ cliError(
325
+ `severity must be one of: ${valid} \u2014 got '${args.severity}'`,
326
+ 6,
327
+ {
328
+ name: "E_INVALID_SEVERITY_VALUE",
329
+ fix: `Pass --severity with one of: ${valid}`
330
+ },
331
+ { operation: "tasks.add" }
332
+ );
333
+ process.exit(6);
334
+ return;
335
+ }
336
+ const params = { title: args.title };
337
+ if (args.status !== void 0) params["status"] = args.status;
338
+ if (args.priority !== void 0) params["priority"] = args.priority;
339
+ if (args.type !== void 0) params["type"] = args.type;
340
+ const parentArg = args.parent;
341
+ const parentIdArg = args["parent-id"];
342
+ const resolvedParent = parentArg ?? parentIdArg;
343
+ if (resolvedParent !== void 0 && resolvedParent !== "none") {
344
+ params["parent"] = resolvedParent;
345
+ }
346
+ if (args.size !== void 0) params["size"] = args.size;
347
+ if (args.phase !== void 0) params["phase"] = args.phase;
348
+ if (args["add-phase"] !== void 0) params["addPhase"] = args["add-phase"];
349
+ if (args.description !== void 0) {
350
+ params["description"] = args.description;
351
+ } else if (args.desc !== void 0) {
352
+ params["description"] = args.desc;
353
+ }
354
+ if (args.labels) params["labels"] = args.labels.split(",").map((s) => s.trim());
355
+ if (args.depends) params["depends"] = args.depends.split(",").map((s) => s.trim());
356
+ if (args.relates) {
357
+ params["relates"] = args.relates.split(",").map((s) => {
358
+ const [taskId, relType = "related"] = s.trim().split(":");
359
+ return { taskId: taskId.trim(), type: relType.trim() };
360
+ });
361
+ }
362
+ if (args.notes !== void 0) params["notes"] = args.notes;
363
+ if (args.note !== void 0) params["notes"] = params["notes"] ?? args.note;
364
+ if (args.position !== void 0)
365
+ params["position"] = Number.parseInt(args.position, 10);
366
+ if (args["dry-run"] !== void 0) params["dryRun"] = args["dry-run"];
367
+ if (args["parent-search"] !== void 0) params["parentSearch"] = args["parent-search"];
368
+ if (args.kind !== void 0) params["kind"] = args.kind;
369
+ if (args.scope !== void 0) params["scope"] = args.scope;
370
+ if (args.severity !== void 0) params["severity"] = args.severity;
371
+ if (args["force-duplicate"] !== void 0) params["forceDuplicate"] = args["force-duplicate"];
372
+ if (args["auto-decompose"] !== void 0) params["autoDecompose"] = args["auto-decompose"];
373
+ if (args["depends-waiver"] !== void 0) params["dependsWaiver"] = args["depends-waiver"];
374
+ const parentSentinel = resolvedParent === "none" ? "none" : void 0;
375
+ const parentRawForInference = params["parent"] ?? parentSentinel;
376
+ const inferred = await inferTaskAddParams(getProjectRoot(), {
377
+ title: args.title,
378
+ description: args.description ?? args.desc,
379
+ filesInfer: args["files-infer"],
380
+ filesRaw: args.files,
381
+ acceptanceRaw: args.acceptance,
382
+ parentRaw: parentRawForInference,
383
+ type: params["type"]
384
+ });
385
+ if (inferred.filesInferWarning) {
386
+ humanWarn(
387
+ "\u26A0 No files inferred by GitNexus. Use --files to specify files explicitly, or leave empty for atomicity check at spawn time."
388
+ );
389
+ }
390
+ if (inferred.files) params["files"] = inferred.files;
391
+ if (inferred.acceptance) params["acceptance"] = inferred.acceptance;
392
+ if (inferred.inferredParent) {
393
+ params["parent"] = inferred.inferredParent;
394
+ params["parentSource"] = "session-inference";
395
+ humanInfo(
396
+ `[cleo add] ${inferred.parentInference?.note ?? `inferred --parent from current task: ${inferred.inferredParent}`}`
397
+ );
398
+ }
399
+ if (inferred.parentInference && inferred.parentInference.outcome !== "applied") {
400
+ if (inferred.parentInference.outcome !== "no-current-task") {
401
+ humanWarn(`\u26A0 [cleo add] ${inferred.parentInference.note}`);
402
+ }
403
+ }
404
+ const parentInferenceMeta = inferred.parentInference;
405
+ const response = await dispatchRaw("mutate", "tasks", "add", params);
406
+ if (!response.success) {
407
+ handleRawError(response, { command: "add", operation: "tasks.add" });
408
+ }
409
+ const data = response.data;
410
+ const dataWarnings = data?.warnings;
411
+ if (dataWarnings?.length) {
412
+ for (const w of dataWarnings) {
413
+ humanWarn(`\u26A0 ${w}`);
414
+ }
415
+ }
416
+ const inferenceExtensions = parentInferenceMeta && parentInferenceMeta.outcome !== "no-current-task" ? { parentInference: parentInferenceMeta } : void 0;
417
+ if (data?.duplicate) {
418
+ cliOutput(data, {
419
+ command: "add",
420
+ message: "Task with identical title was created recently",
421
+ operation: "tasks.add",
422
+ ...inferenceExtensions ? { extensions: inferenceExtensions } : {}
423
+ });
424
+ } else if (data?.dryRun) {
425
+ cliOutput(data, {
426
+ command: "add",
427
+ message: "Dry run - no changes made",
428
+ operation: "tasks.add",
429
+ ...inferenceExtensions ? { extensions: inferenceExtensions } : {}
430
+ });
431
+ } else {
432
+ cliOutput(data, {
433
+ command: "add",
434
+ operation: "tasks.add",
435
+ ...inferenceExtensions ? { extensions: inferenceExtensions } : {}
436
+ });
437
+ }
438
+ }
439
+ });
440
+ export {
441
+ addCommand
442
+ };
443
+ //# sourceMappingURL=add-4SRRJL4U.js.map