@cleocode/cleo 2026.10.2 → 2026.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cleo.js +11 -1
- package/dist/cli/adapter-LVXHFBC4.js +158 -0
- package/dist/cli/add-WUAV7LDT.js +443 -0
- package/dist/cli/add-batch-U2DLKAQC.js +163 -0
- package/dist/cli/admin-I7BQYVZD.js +340 -0
- package/dist/cli/adr-K2THMQBS.js +171 -0
- package/dist/cli/agent-WQ6XY2DW.js +2366 -0
- package/dist/cli/agent-outputs-BJIYLVTU.js +84 -0
- package/dist/cli/analyze-PGQZWGOC.js +48 -0
- package/dist/cli/archive-5LZPF7C3.js +64 -0
- package/dist/cli/archive-stats-U6CYC6JM.js +100 -0
- package/dist/cli/attention-SOURWCNI.js +167 -0
- package/dist/cli/audit-FO2Y4LH2.js +122 -0
- package/dist/cli/auth-ED7TAIXI.js +491 -0
- package/dist/cli/backfill-32TRAYRD.js +156 -0
- package/dist/cli/backup-LEJMZJKL.js +587 -0
- package/dist/cli/backup-inspect-6HPLUEI2.js +26 -0
- package/dist/cli/backup-recover-2BTYBZU2.js +29 -0
- package/dist/cli/blockers-5JULUJTV.js +54 -0
- package/dist/cli/brain-273N3FW4.js +400 -0
- package/dist/cli/briefing-7H6OLECX.js +212 -0
- package/dist/cli/caamp-MFQVN6VU.js +181 -0
- package/dist/cli/cancel-SCMJTXZB.js +84 -0
- package/dist/cli/canon-NPF5RODM.js +142 -0
- package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
- package/dist/cli/cant-46XCUP4P.js +239 -0
- package/dist/cli/changeset-32NMBGG2.js +248 -0
- package/dist/cli/check-RWJLBCI2.js +907 -0
- package/dist/cli/checkpoint-37HMMKD7.js +128 -0
- package/dist/cli/chunk-2JIJD2I7.js +108 -0
- package/dist/cli/chunk-37NU2XDP.js +171 -0
- package/dist/cli/chunk-3IOQVUO7.js +17308 -0
- package/dist/cli/chunk-3PGH67MT.js +175 -0
- package/dist/cli/chunk-3ZO3M37V.js +1002 -0
- package/dist/cli/chunk-47JYZAMS.js +30 -0
- package/dist/cli/chunk-5J2VH3BC.js +66 -0
- package/dist/cli/chunk-5ZFFUFH7.js +92 -0
- package/dist/cli/chunk-6JSJNYH2.js +114 -0
- package/dist/cli/chunk-7INMKEAD.js +85 -0
- package/dist/cli/chunk-A2IUEIM5.js +278 -0
- package/dist/cli/chunk-AWCQH2W5.js +35 -0
- package/dist/cli/chunk-AYA6F4ZT.js +56 -0
- package/dist/cli/chunk-BCEXRFA2.js +76 -0
- package/dist/cli/chunk-BPEVD37G.js +124 -0
- package/dist/cli/chunk-C3B7C43W.js +16 -0
- package/dist/cli/chunk-DVTPIZJM.js +72 -0
- package/dist/cli/chunk-DYABOIHB.js +96 -0
- package/dist/cli/chunk-EBRZ76HS.js +51 -0
- package/dist/cli/chunk-EGOTK2HA.js +57 -0
- package/dist/cli/chunk-EOPQFCSR.js +148 -0
- package/dist/cli/chunk-FORFDPP5.js +288 -0
- package/dist/cli/chunk-GFGLLDXX.js +110 -0
- package/dist/cli/chunk-GH37QXW5.js +280 -0
- package/dist/cli/chunk-GZFVDR44.js +320 -0
- package/dist/cli/chunk-I3CRQQAD.js +225 -0
- package/dist/cli/chunk-J3ZFM3UQ.js +754 -0
- package/dist/cli/chunk-JNZJPIPJ.js +90 -0
- package/dist/cli/chunk-KHB52JNB.js +209 -0
- package/dist/cli/chunk-KJDWWQFY.js +46 -0
- package/dist/cli/chunk-LKNUA3SB.js +83 -0
- package/dist/cli/chunk-LVGIFMCV.js +163 -0
- package/dist/cli/chunk-LWQBJQSE.js +67 -0
- package/dist/cli/chunk-MNJRLSEQ.js +107 -0
- package/dist/cli/chunk-NRKWJLMS.js +91 -0
- package/dist/cli/chunk-NSHV2JNM.js +48 -0
- package/dist/cli/chunk-NWTATTEQ.js +210 -0
- package/dist/cli/chunk-OAPN46TC.js +89 -0
- package/dist/cli/chunk-OGV57L4J.js +59 -0
- package/dist/cli/chunk-OILHT47L.js +252 -0
- package/dist/cli/chunk-OPTEQKBB.js +258 -0
- package/dist/cli/chunk-PKKZPOOP.js +352 -0
- package/dist/cli/chunk-QA6T2LQ5.js +71 -0
- package/dist/cli/chunk-QFFQSKRC.js +4497 -0
- package/dist/cli/chunk-QPUY2HQZ.js +74 -0
- package/dist/cli/chunk-REUTEW3O.js +258 -0
- package/dist/cli/chunk-S24YI723.js +88 -0
- package/dist/cli/chunk-SXXOC6KZ.js +209 -0
- package/dist/cli/chunk-ULN4OKQQ.js +259 -0
- package/dist/cli/chunk-V5GBGOGM.js +46 -0
- package/dist/cli/chunk-VLEYOOPH.js +31 -0
- package/dist/cli/chunk-W33Q3FBH.js +66 -0
- package/dist/cli/chunk-W3JLYKKY.js +140 -0
- package/dist/cli/chunk-XRAX6XFP.js +48 -0
- package/dist/cli/chunk-YGKEECTI.js +78 -0
- package/dist/cli/chunk-YUZJI67I.js +108 -0
- package/dist/cli/chunk-YY66LFZF.js +29 -0
- package/dist/cli/chunk-ZBISIPCK.js +78 -0
- package/dist/cli/chunk-ZZTHTMQP.js +77 -0
- package/dist/cli/claim-KPENYHIQ.js +96 -0
- package/dist/cli/classify-DRVMCFQU.js +117 -0
- package/dist/cli/cli-T3CR7J57.js +48 -0
- package/dist/cli/cloud-PPQ4O5TX.js +565 -0
- package/dist/cli/cockpit-RZKLGYPN.js +790 -0
- package/dist/cli/code-Z5CTMVTD.js +178 -0
- package/dist/cli/complete-UBOCOBRB.js +34 -0
- package/dist/cli/complexity-BV2AGQRZ.js +56 -0
- package/dist/cli/compliance-32PD5Y47.js +276 -0
- package/dist/cli/conduit-VDKCH33F.js +307 -0
- package/dist/cli/config-I72JAXK4.js +516 -0
- package/dist/cli/consensus-LFILLSTK.js +121 -0
- package/dist/cli/context-XUUVFVTP.js +141 -0
- package/dist/cli/contribution-37NQ4N5R.js +111 -0
- package/dist/cli/curator-TFDXU2EX.js +139 -0
- package/dist/cli/current-C4SN5BWV.js +42 -0
- package/dist/cli/daemon-DV25JQ62.js +451 -0
- package/dist/cli/dash-TFU4RLQW.js +70 -0
- package/dist/cli/decide-5VPMNTSI.js +419 -0
- package/dist/cli/decompose-KOYEZNJL.js +77 -0
- package/dist/cli/decomposition-7OHUFIQN.js +121 -0
- package/dist/cli/delete-Q7YCAFY5.js +68 -0
- package/dist/cli/deps-6UZKLDGJ.js +463 -0
- package/dist/cli/detect-FERY35UL.js +45 -0
- package/dist/cli/detect-drift-UL2JTPUK.js +408 -0
- package/dist/cli/diagnostics-TI5QAZXR.js +132 -0
- package/dist/cli/docs-QI2PRN3T.js +3095 -0
- package/dist/cli/doctor-AX5TICQO.js +1253 -0
- package/dist/cli/doctor-ac-bindings-YPMYHU2G.js +26 -0
- package/dist/cli/doctor-acceptance-drift-PYNFGMKB.js +26 -0
- package/dist/cli/doctor-credentials-UZRIADKM.js +26 -0
- package/dist/cli/doctor-db-substrate-Q2TOYM2S.js +27 -0
- package/dist/cli/doctor-dep-cycles-GCVYZY6F.js +26 -0
- package/dist/cli/doctor-exodus-RO5SUTC2.js +26 -0
- package/dist/cli/doctor-exodus-residue-EM2AWQXP.js +26 -0
- package/dist/cli/doctor-fk-check-Q3FOLECE.js +26 -0
- package/dist/cli/doctor-global-delivery-TNOAQ3NP.js +26 -0
- package/dist/cli/doctor-heavy-command-hook-IO3QAQLG.js +26 -0
- package/dist/cli/doctor-legacy-backups-O2YH5VLS.js +26 -0
- package/dist/cli/doctor-legacy-reaper-VSEJEIFA.js +26 -0
- package/dist/cli/doctor-malformed-ids-LQ766V5K.js +26 -0
- package/dist/cli/doctor-manifest-rows-6FQDNHLH.js +26 -0
- package/dist/cli/doctor-memory-guard-J4PSEKB5.js +26 -0
- package/dist/cli/doctor-migrations-ONOH56YM.js +26 -0
- package/dist/cli/doctor-nexus-residency-FUQAX7PV.js +26 -0
- package/dist/cli/doctor-project-identity-GUDK3HYX.js +26 -0
- package/dist/cli/doctor-projects-7L3BNL4O.js +30 -0
- package/dist/cli/doctor-projects-registry-TEAVHFQU.js +26 -0
- package/dist/cli/doctor-release-readiness-IEGHX6SL.js +26 -0
- package/dist/cli/doctor-repair-NBONOSZU.js +26 -0
- package/dist/cli/doctor-skill-fixtures-7Y6L34A3.js +26 -0
- package/dist/cli/doctor-split-brain-TUKIGVHF.js +26 -0
- package/dist/cli/doctor-superseded-store-BHZY2B2L.js +26 -0
- package/dist/cli/doctor-tool-locks-REQMIVYK.js +26 -0
- package/dist/cli/doctor-twin-collapse-222GOSPE.js +26 -0
- package/dist/cli/doctor-worktree-stores-J7TCRVJ3.js +26 -0
- package/dist/cli/done-V3AOO65B.js +195 -0
- package/dist/cli/dynamic-RR4HB7BB.js +29 -0
- package/dist/cli/event-EGNPGE5A.js +372 -0
- package/dist/cli/exists-H4SDCBPL.js +65 -0
- package/dist/cli/exodus-KALO3B3X.js +401 -0
- package/dist/cli/export-ROFOCG4M.js +92 -0
- package/dist/cli/export-tasks-US3WBIEQ.js +96 -0
- package/dist/cli/federation-SUIB5QWT.js +145 -0
- package/dist/cli/find-YICG4BG6.js +177 -0
- package/dist/cli/focus-TKCZPKOM.js +55 -0
- package/dist/cli/gateway-H4HFDC3E.js +77 -0
- package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
- package/dist/cli/gc-5R2TUY5T.js +291 -0
- package/dist/cli/go-PRQFK5YG.js +206 -0
- package/dist/cli/goal-7CZRMLHC.js +212 -0
- package/dist/cli/grade-PY2YRPUS.js +56 -0
- package/dist/cli/graph-XIXMCFKG.js +878 -0
- package/dist/cli/history-EIXADPAD.js +137 -0
- package/dist/cli/hook-UF7J7R6D.js +57 -0
- package/dist/cli/hook-entry.js +244 -19
- package/dist/cli/hygiene-3QZ2NI7P.js +55 -0
- package/dist/cli/import-R73SO444.js +88 -0
- package/dist/cli/import-tasks-O22FZJ4U.js +108 -0
- package/dist/cli/index.js +419 -94607
- package/dist/cli/init-IHEJDQWU.js +40 -0
- package/dist/cli/inject-LSRVWNCP.js +82 -0
- package/dist/cli/install-global-4AZUCH6U.js +95 -0
- package/dist/cli/intelligence-2OSFOGD2.js +181 -0
- package/dist/cli/issue-IIWEDNFC.js +158 -0
- package/dist/cli/janitor-GPMC7VOR.js +111 -0
- package/dist/cli/labels-5NPOIQXN.js +87 -0
- package/dist/cli/lifecycle-4FFS2K2T.js +272 -0
- package/dist/cli/list-47KEUGPQ.js +108 -0
- package/dist/cli/llm-G5B3I6GD.js +703 -0
- package/dist/cli/llm-cost-S7RS6BVA.js +25 -0
- package/dist/cli/llm-stream-24A45NTS.js +27 -0
- package/dist/cli/log-XF6H2XSD.js +75 -0
- package/dist/cli/login-LBPLGHYG.js +43 -0
- package/dist/cli/logout-SX4JSJIV.js +74 -0
- package/dist/cli/manifest-NMCW4PIW.js +353 -0
- package/dist/cli/map-BU72KMGF.js +52 -0
- package/dist/cli/memory-UHYIVGVM.js +1956 -0
- package/dist/cli/migrate-agents-v2-OO7OILZK.js +33 -0
- package/dist/cli/migrate-claude-mem-EDNYUY3K.js +201 -0
- package/dist/cli/next-RZFRG5X7.js +56 -0
- package/dist/cli/nexus-4S4Z5EVU.js +2923 -0
- package/dist/cli/ops-KR7AWCG3.js +51 -0
- package/dist/cli/orchestrate-HOYZY3VX.js +948 -0
- package/dist/cli/otel-U7IIRBCT.js +188 -0
- package/dist/cli/phase-NYZFHUE5.js +220 -0
- package/dist/cli/pivot-FF2CVUZL.js +87 -0
- package/dist/cli/plan-3SL2NTRV.js +48 -0
- package/dist/cli/playbook-2FCBV7N3.js +229 -0
- package/dist/cli/project-WDX2TGMC.js +330 -0
- package/dist/cli/promote-YINYFBZY.js +52 -0
- package/dist/cli/provenance-C7AYD7WG.js +128 -0
- package/dist/cli/provider-QLJEDQBR.js +212 -0
- package/dist/cli/reason-JF5BHBM5.js +137 -0
- package/dist/cli/reconcile-NMISHDGX.js +127 -0
- package/dist/cli/refresh-memory-EY5YNICV.js +45 -0
- package/dist/cli/relates-R3ZPICAY.js +259 -0
- package/dist/cli/release-4ZJTMUUT.js +524 -0
- package/dist/cli/remote-QSONJDIK.js +279 -0
- package/dist/cli/renderers-64OR3IWX.js +37 -0
- package/dist/cli/reorder-J3DOE7ST.js +86 -0
- package/dist/cli/reparent-2OUMKEZX.js +58 -0
- package/dist/cli/req-TZB7OFKO.js +129 -0
- package/dist/cli/research-MTD7EX45.js +365 -0
- package/dist/cli/restore-VEUOX7NF.js +423 -0
- package/dist/cli/revert-3YF2IL5G.js +240 -0
- package/dist/cli/roadmap-7OOQLXKG.js +61 -0
- package/dist/cli/run-2U5NZV5Z.js +211 -0
- package/dist/cli/safestop-VR4VK56D.js +88 -0
- package/dist/cli/saga-SEWPIOX2.js +285 -0
- package/dist/cli/schema-C52WZ35V.js +195 -0
- package/dist/cli/self-update-GQIGUDPS.js +504 -0
- package/dist/cli/selfimprove-3Y5L4ECT.js +88 -0
- package/dist/cli/sentient-M4YMAVGV.js +1088 -0
- package/dist/cli/sequence-6UBMA4IF.js +93 -0
- package/dist/cli/service-5R7SILZ7.js +155 -0
- package/dist/cli/session-3C6AAC4Y.js +707 -0
- package/dist/cli/setup-BTUBW5PU.js +323 -0
- package/dist/cli/show-MXT2V7TF.js +122 -0
- package/dist/cli/skill-GFUZOU2C.js +84 -0
- package/dist/cli/skills-EDWLKAF3.js +928 -0
- package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
- package/dist/cli/snapshot-GUWMURCM.js +119 -0
- package/dist/cli/src-66GAKPXR.js +80 -0
- package/dist/cli/start-QFG56RGN.js +67 -0
- package/dist/cli/stats-GW55P7RR.js +95 -0
- package/dist/cli/status-46HTKNRR.js +157 -0
- package/dist/cli/sticky-2DUZOUGI.js +338 -0
- package/dist/cli/stop-J2QEUKHX.js +42 -0
- package/dist/cli/sync-GJP2QYT5.js +154 -0
- package/dist/cli/tasks-BNXTM7PB.js +174 -0
- package/dist/cli/telemetry-55Z2XJWL.js +120 -0
- package/dist/cli/templates-7O77TKPV.js +611 -0
- package/dist/cli/testing-37YTBNKP.js +146 -0
- package/dist/cli/token-UAVJMNUI.js +220 -0
- package/dist/cli/transcript-LORQTV5Z.js +440 -0
- package/dist/cli/tui-BPUFHYKK.js +51 -0
- package/dist/cli/update-NVCYV2FT.js +476 -0
- package/dist/cli/upgrade-OXJXOGEF.js +243 -0
- package/dist/cli/verify-LYLDHPT2.js +190 -0
- package/dist/cli/web-QP2RP266.js +275 -0
- package/dist/cli/workgraph-FXBSZDQE.js +232 -0
- package/dist/cli/worktree-6RXAJIST.js +370 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{Buaay_Q8.js → Btgeq_wq.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{BJp57kf2.js → CgBjxmu6.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{CLP4JZvZ.js → DgEKqO6r.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +1 -0
- package/studio-dist/client/_app/immutable/entry/{app.CczVILch.js → app.a02HWaRB.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.Zy2IsLEl.js → 0.nTXyRfc-.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DJN1QI3l.js → 1.4zrWeHtl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.B4rwqbHV.js → 15.D9mk4JyY.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.jn-5BG_L.js → 16._-wt-sQf.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DnWGC4t9.js → 17.CUu6LQDj.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.0zddLZOY.js → 18.Dz4QRTkX.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.DEKHq9Tc.js → 20.CJ2_EB0U.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.CQB9KP-p.js → 24.Igj2FS7k.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.BaqToZD-.js → 25.BnATjVGN.js} +2 -2
- package/studio-dist/client/_app/immutable/nodes/{26.BiE1i4iE.js → 26.6iPyjT44.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.BObAOu_-.js → 3.AA5GwNgP.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BmUoS2yd.js → 0-DGmsoBYm.js} +3 -3
- package/studio-dist/server/chunks/1-8PfxPvlK.js +9 -0
- package/studio-dist/server/chunks/{15-Dt4kqUxW.js → 15-Bg6YTndh.js} +3 -3
- package/studio-dist/server/chunks/{16-kgTLJvbO.js → 16-BObLwgyD.js} +3 -3
- package/studio-dist/server/chunks/{17-mRYB5141.js → 17-BNXGyAHX.js} +3 -3
- package/studio-dist/server/chunks/{18-BjZ325q5.js → 18-UqQFRIID.js} +3 -3
- package/studio-dist/server/chunks/{20-DQ2Vrujq.js → 20-CMn8a_yP.js} +3 -3
- package/studio-dist/server/chunks/{24-DAeuAfXN.js → 24-BuOTDzib.js} +3 -3
- package/studio-dist/server/chunks/{25-DGCNmzAS.js → 25-CIMSmjVx.js} +4 -4
- package/studio-dist/server/chunks/{26-CiN6bbmR.js → 26-DWGObn2T.js} +3 -3
- package/studio-dist/server/chunks/{3-BS2FXYjP.js → 3-CyiffdJZ.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-DJ_UWmGp.js → _layout.svelte-DYtClaIk.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-WR6jUiQE.js → _page.svelte-1h9E6s_f.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BUq8_eQH.js → _page.svelte-BNNF62Nm.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CRnYa4cW.js → _page.svelte-BT1EUadj.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-Dk0znswQ.js → _page.svelte-Bip079LT.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CcP_KW3Y.js → _page.svelte-CEATWp_5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Ca7x-ZvH.js → _page.svelte-CV3xiD1y.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-Cfv9tDBA.js → _page.svelte-Cv_KVJDV.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-J4HjPhfO.js → _page.svelte-DSSy6LuK.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-D8dLEr7O.js → _page.svelte-TF795TAS.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-Bih2-_5O.js → _server.ts-BlhRFLY3.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-C4w6UdU0.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-CzrwbhkQ.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-DWt8Dziu.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-Db6mEile.js} +3 -3
- package/studio-dist/server/chunks/{client-Cl295FWH.js → client-D8f2k-H_.js} +2 -2
- package/studio-dist/server/chunks/{dist-CdoCt9zT.js → dist-B8xbIrdB.js} +3 -1
- package/studio-dist/server/chunks/{error.svelte-ajn1HNOb.js → error.svelte-DbbOwIme.js} +3 -3
- package/studio-dist/server/chunks/{http-BiQjEmVU.js → http-1ftNGTs5.js} +2 -2
- package/studio-dist/server/chunks/{internal-D9MtKHIF.js → internal-CTULuLPB.js} +2 -2
- package/studio-dist/server/chunks/{stores-BlknvZ80.js → stores-CS5XOReX.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +17 -17
- package/studio-dist/client/_app/immutable/chunks/C3l-lTkq.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.D7gHmBNS.js +0 -1
- package/studio-dist/server/chunks/1-CTjj2MYz.js +0 -9
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
|
-
|
|
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,158 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
|
|
3
|
+
if (globalThis[_installed]) return;
|
|
4
|
+
globalThis[_installed] = true;
|
|
5
|
+
const _origEmitWarning = process.emitWarning;
|
|
6
|
+
process.emitWarning = function(warning, type, code, ctor) {
|
|
7
|
+
if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
import {
|
|
17
|
+
isSubCommandDispatch
|
|
18
|
+
} from "./chunk-YY66LFZF.js";
|
|
19
|
+
import {
|
|
20
|
+
defineCommand
|
|
21
|
+
} from "./chunk-PKKZPOOP.js";
|
|
22
|
+
import {
|
|
23
|
+
dispatchFromCli
|
|
24
|
+
} from "./chunk-3IOQVUO7.js";
|
|
25
|
+
import "./chunk-AWCQH2W5.js";
|
|
26
|
+
import "./chunk-OGV57L4J.js";
|
|
27
|
+
import "./chunk-ZBISIPCK.js";
|
|
28
|
+
import "./chunk-3ZO3M37V.js";
|
|
29
|
+
import "./chunk-6JSJNYH2.js";
|
|
30
|
+
import "./chunk-QFFQSKRC.js";
|
|
31
|
+
|
|
32
|
+
// packages/cleo/src/cli/commands/adapter.ts
|
|
33
|
+
var listCommand = defineCommand({
|
|
34
|
+
meta: { name: "list", description: "List all discovered provider adapters" },
|
|
35
|
+
async run() {
|
|
36
|
+
await dispatchFromCli(
|
|
37
|
+
"query",
|
|
38
|
+
"tools",
|
|
39
|
+
"adapter.list",
|
|
40
|
+
{},
|
|
41
|
+
{ command: "adapter", operation: "tools.adapter.list" }
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
var showCommand = defineCommand({
|
|
46
|
+
meta: { name: "show", description: "Show details for a specific adapter" },
|
|
47
|
+
args: {
|
|
48
|
+
adapterId: {
|
|
49
|
+
type: "positional",
|
|
50
|
+
description: "Adapter ID to inspect",
|
|
51
|
+
required: true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
async run({ args }) {
|
|
55
|
+
await dispatchFromCli(
|
|
56
|
+
"query",
|
|
57
|
+
"tools",
|
|
58
|
+
"adapter.show",
|
|
59
|
+
{ id: args.adapterId },
|
|
60
|
+
{ command: "adapter", operation: "tools.adapter.show" }
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var detectCommand = defineCommand({
|
|
65
|
+
meta: { name: "detect", description: "Detect active providers in the current environment" },
|
|
66
|
+
async run() {
|
|
67
|
+
await dispatchFromCli(
|
|
68
|
+
"query",
|
|
69
|
+
"tools",
|
|
70
|
+
"adapter.detect",
|
|
71
|
+
{},
|
|
72
|
+
{ command: "adapter", operation: "tools.adapter.detect" }
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
var healthCommand = defineCommand({
|
|
77
|
+
meta: { name: "health", description: "Show health status for adapters" },
|
|
78
|
+
args: {
|
|
79
|
+
id: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "Specific adapter ID (omit for all adapters)"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
async run({ args }) {
|
|
85
|
+
await dispatchFromCli(
|
|
86
|
+
"query",
|
|
87
|
+
"tools",
|
|
88
|
+
"adapter.health",
|
|
89
|
+
{ id: args.id },
|
|
90
|
+
{ command: "adapter", operation: "tools.adapter.health" }
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
var activateCommand = defineCommand({
|
|
95
|
+
meta: { name: "activate", description: "Load and activate a provider adapter" },
|
|
96
|
+
args: {
|
|
97
|
+
adapterId: {
|
|
98
|
+
type: "positional",
|
|
99
|
+
description: "Adapter ID to activate",
|
|
100
|
+
required: true
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
async run({ args }) {
|
|
104
|
+
await dispatchFromCli(
|
|
105
|
+
"mutate",
|
|
106
|
+
"tools",
|
|
107
|
+
"adapter.activate",
|
|
108
|
+
{ id: args.adapterId },
|
|
109
|
+
{ command: "adapter", operation: "tools.adapter.activate" }
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
var disposeCommand = defineCommand({
|
|
114
|
+
meta: { name: "dispose", description: "Dispose one or all adapters" },
|
|
115
|
+
args: {
|
|
116
|
+
id: {
|
|
117
|
+
type: "string",
|
|
118
|
+
description: "Specific adapter ID to dispose (omit to dispose all)"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
async run({ args }) {
|
|
122
|
+
await dispatchFromCli(
|
|
123
|
+
"mutate",
|
|
124
|
+
"tools",
|
|
125
|
+
"adapter.dispose",
|
|
126
|
+
{ id: args.id },
|
|
127
|
+
{ command: "adapter", operation: "tools.adapter.dispose" }
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
var adapterCommand = defineCommand({
|
|
132
|
+
meta: {
|
|
133
|
+
name: "adapter",
|
|
134
|
+
description: "Provider adapter management: list, show, detect, health, activate, dispose"
|
|
135
|
+
},
|
|
136
|
+
subCommands: {
|
|
137
|
+
list: listCommand,
|
|
138
|
+
show: showCommand,
|
|
139
|
+
detect: detectCommand,
|
|
140
|
+
health: healthCommand,
|
|
141
|
+
activate: activateCommand,
|
|
142
|
+
dispose: disposeCommand
|
|
143
|
+
},
|
|
144
|
+
async run({ cmd, rawArgs }) {
|
|
145
|
+
if (isSubCommandDispatch(rawArgs, cmd.subCommands)) return;
|
|
146
|
+
await dispatchFromCli(
|
|
147
|
+
"query",
|
|
148
|
+
"tools",
|
|
149
|
+
"adapter.list",
|
|
150
|
+
{},
|
|
151
|
+
{ command: "adapter", operation: "tools.adapter.list" }
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
export {
|
|
156
|
+
adapterCommand
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=adapter-LVXHFBC4.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
|
+
defineCommand,
|
|
21
|
+
showUsage
|
|
22
|
+
} from "./chunk-PKKZPOOP.js";
|
|
23
|
+
import {
|
|
24
|
+
dispatchRaw,
|
|
25
|
+
handleRawError,
|
|
26
|
+
maybeEmitDescribe
|
|
27
|
+
} from "./chunk-3IOQVUO7.js";
|
|
28
|
+
import "./chunk-AWCQH2W5.js";
|
|
29
|
+
import "./chunk-OGV57L4J.js";
|
|
30
|
+
import "./chunk-ZBISIPCK.js";
|
|
31
|
+
import {
|
|
32
|
+
cliError,
|
|
33
|
+
cliOutput,
|
|
34
|
+
humanInfo,
|
|
35
|
+
humanWarn
|
|
36
|
+
} from "./chunk-3ZO3M37V.js";
|
|
37
|
+
import "./chunk-6JSJNYH2.js";
|
|
38
|
+
import "./chunk-QFFQSKRC.js";
|
|
39
|
+
|
|
40
|
+
// packages/cleo/src/cli/commands/add.ts
|
|
41
|
+
import { ExitCode, TASK_SEVERITIES } from "@cleocode/contracts";
|
|
42
|
+
import {
|
|
43
|
+
getProjectRoot,
|
|
44
|
+
INPUT_CONTRACTS,
|
|
45
|
+
inferTaskAddParams,
|
|
46
|
+
validateOperationInput
|
|
47
|
+
} from "@cleocode/core";
|
|
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-WUAV7LDT.js.map
|