@cleocode/cleo 2026.10.3 → 2026.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -94612
- 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/{DMj27Pxj.js → Btgeq_wq.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → CgBjxmu6.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.js → DgEKqO6r.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +1 -0
- package/studio-dist/client/_app/immutable/entry/{app.CHWXLeE9.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.DmKQGvFh.js → 0.nTXyRfc-.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.4zrWeHtl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.D9mk4JyY.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16._-wt-sQf.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CUu6LQDj.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.Dz4QRTkX.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.CJ2_EB0U.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.js → 24.Igj2FS7k.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.D1vYaH8g.js → 25.BnATjVGN.js} +2 -2
- package/studio-dist/client/_app/immutable/nodes/{26.C3rNqzZF.js → 26.6iPyjT44.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.AA5GwNgP.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-DGmsoBYm.js} +3 -3
- package/studio-dist/server/chunks/1-8PfxPvlK.js +9 -0
- package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-Bg6YTndh.js} +3 -3
- package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-BObLwgyD.js} +3 -3
- package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-BNXGyAHX.js} +3 -3
- package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-UqQFRIID.js} +3 -3
- package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-CMn8a_yP.js} +3 -3
- package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-BuOTDzib.js} +3 -3
- package/studio-dist/server/chunks/{25-CYsps38R.js → 25-CIMSmjVx.js} +4 -4
- package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-DWGObn2T.js} +3 -3
- package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-CyiffdJZ.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-DYtClaIk.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-1h9E6s_f.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-BNNF62Nm.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-BT1EUadj.js} +5 -5
- package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-Bip079LT.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-CEATWp_5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-CV3xiD1y.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-Cv_KVJDV.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DSSy6LuK.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-TF795TAS.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.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-CPM4LrO2.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-ShcZo43D.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-Cgsrya1j.js → internal-CTULuLPB.js} +2 -2
- package/studio-dist/server/chunks/{stores-BGrpEDMK.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/Bw6J8NDM.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.C9bwPpvc.js +0 -1
- package/studio-dist/server/chunks/1-CVo7Nk6d.js +0 -9
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
|
|
3
|
+
if (globalThis[_installed]) return;
|
|
4
|
+
globalThis[_installed] = true;
|
|
5
|
+
const _origEmitWarning = process.emitWarning;
|
|
6
|
+
process.emitWarning = function(warning, type, code, ctor) {
|
|
7
|
+
if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
import {
|
|
17
|
+
defineCommand
|
|
18
|
+
} from "./chunk-PKKZPOOP.js";
|
|
19
|
+
import {
|
|
20
|
+
dispatchFromCli
|
|
21
|
+
} from "./chunk-3IOQVUO7.js";
|
|
22
|
+
import "./chunk-AWCQH2W5.js";
|
|
23
|
+
import "./chunk-OGV57L4J.js";
|
|
24
|
+
import "./chunk-ZBISIPCK.js";
|
|
25
|
+
import "./chunk-3ZO3M37V.js";
|
|
26
|
+
import "./chunk-6JSJNYH2.js";
|
|
27
|
+
import "./chunk-QFFQSKRC.js";
|
|
28
|
+
|
|
29
|
+
// packages/cleo/src/cli/commands/roadmap.ts
|
|
30
|
+
var roadmapCommand = defineCommand({
|
|
31
|
+
meta: {
|
|
32
|
+
name: "roadmap",
|
|
33
|
+
description: "Generate project roadmap from task provenance \u2014 epics grouped by status with progress"
|
|
34
|
+
},
|
|
35
|
+
args: {
|
|
36
|
+
"include-history": {
|
|
37
|
+
type: "boolean",
|
|
38
|
+
description: "Include release history from CHANGELOG.md"
|
|
39
|
+
},
|
|
40
|
+
"upcoming-only": {
|
|
41
|
+
type: "boolean",
|
|
42
|
+
description: "Only show pending/upcoming epics (exclude completed)"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
async run({ args }) {
|
|
46
|
+
await dispatchFromCli(
|
|
47
|
+
"query",
|
|
48
|
+
"admin",
|
|
49
|
+
"roadmap",
|
|
50
|
+
{
|
|
51
|
+
includeHistory: args["include-history"],
|
|
52
|
+
upcomingOnly: args["upcoming-only"]
|
|
53
|
+
},
|
|
54
|
+
{ command: "roadmap", operation: "admin.roadmap" }
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
export {
|
|
59
|
+
roadmapCommand
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=roadmap-7OOQLXKG.js.map
|
|
@@ -0,0 +1,211 @@
|
|
|
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-3ZO3M37V.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";
|
|
33
|
+
import {
|
|
34
|
+
canonicalForClass,
|
|
35
|
+
isWatchCommand,
|
|
36
|
+
resolveRunClass
|
|
37
|
+
} from "@cleocode/core/resources/run-admission.js";
|
|
38
|
+
import {
|
|
39
|
+
runGoverned
|
|
40
|
+
} from "@cleocode/core/resources/run-governed.js";
|
|
41
|
+
import { planHeavyToolEnv } from "@cleocode/core/tasks/heavy-tool-env.js";
|
|
42
|
+
function commandAfterDashes(rawArgs) {
|
|
43
|
+
const idx = rawArgs.indexOf("--");
|
|
44
|
+
return idx === -1 ? [] : rawArgs.slice(idx + 1);
|
|
45
|
+
}
|
|
46
|
+
function invalid(message, fix, stderr) {
|
|
47
|
+
cliError(
|
|
48
|
+
message,
|
|
49
|
+
"E_VALIDATION",
|
|
50
|
+
{ name: "E_VALIDATION", fix },
|
|
51
|
+
{ operation: "resources.run" },
|
|
52
|
+
{ stderr }
|
|
53
|
+
);
|
|
54
|
+
process.exit(6);
|
|
55
|
+
}
|
|
56
|
+
function runExitCode(r) {
|
|
57
|
+
if (r.spawnError !== null) return 127;
|
|
58
|
+
if (r.signal !== null) return 128 + (constants.signals[r.signal] ?? 0);
|
|
59
|
+
return r.exitCode ?? 1;
|
|
60
|
+
}
|
|
61
|
+
function exitFailed(result, code, passthrough, resources) {
|
|
62
|
+
const { kind: _kind, ...rest } = result;
|
|
63
|
+
const data = resources === null ? rest : { ...rest, resources };
|
|
64
|
+
const message = result.spawnError !== null ? `could not start command: ${result.spawnError}` : `command ${result.signal !== null ? `killed by ${result.signal}` : `exited with ${result.exitCode}`}`;
|
|
65
|
+
if (passthrough && result.spawnError === null) {
|
|
66
|
+
process.stderr.write(`[cleo run] ${RUN_COMMAND_FAILED_CODE}: ${message}
|
|
67
|
+
`);
|
|
68
|
+
} else {
|
|
69
|
+
cliError(
|
|
70
|
+
message,
|
|
71
|
+
RUN_COMMAND_FAILED_CODE,
|
|
72
|
+
{ name: RUN_COMMAND_FAILED_CODE, details: data },
|
|
73
|
+
{ operation: "resources.run" },
|
|
74
|
+
{ stderr: passthrough }
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
process.exit(code);
|
|
78
|
+
}
|
|
79
|
+
var runCommand = defineCommand({
|
|
80
|
+
meta: {
|
|
81
|
+
name: "run",
|
|
82
|
+
description: "Run a heavy command (tests, builds, installs) under the machine-wide resource budget: cleo run [--class test|build|full-build] [--wait] [--passthrough] -- <command...>"
|
|
83
|
+
},
|
|
84
|
+
args: {
|
|
85
|
+
class: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Resource class: test, build, typecheck, install, scan, full-build, db (default: inferred from the command)"
|
|
88
|
+
},
|
|
89
|
+
wait: {
|
|
90
|
+
type: "boolean",
|
|
91
|
+
description: "Join the FIFO queue for the class instead of returning E_RESOURCE_DEFERRED",
|
|
92
|
+
default: false
|
|
93
|
+
},
|
|
94
|
+
timeout: {
|
|
95
|
+
type: "string",
|
|
96
|
+
description: "With --wait: give up after this many seconds (default 1800)"
|
|
97
|
+
},
|
|
98
|
+
passthrough: {
|
|
99
|
+
type: "boolean",
|
|
100
|
+
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",
|
|
101
|
+
default: false
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
async run({ args, rawArgs }) {
|
|
105
|
+
const passthrough = args.passthrough === true;
|
|
106
|
+
const argv = commandAfterDashes(rawArgs ?? []);
|
|
107
|
+
if (argv.length === 0) {
|
|
108
|
+
invalid(
|
|
109
|
+
"cleo run needs a command after --",
|
|
110
|
+
"cleo run --class test -- npx vitest run path/to/file.test.ts",
|
|
111
|
+
passthrough
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
if (args.class === void 0 && isWatchCommand(argv)) {
|
|
115
|
+
invalid(
|
|
116
|
+
`cleo run refuses watch/dev/serve commands, which never exit and would hold a resource slot forever: ${argv.join(" ")}`,
|
|
117
|
+
"Run the watcher directly, without cleo run. If it is a bounded job, say so with --class (cleo run --class test -- <cmd>)",
|
|
118
|
+
passthrough
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
let timeoutMs = 18e5;
|
|
122
|
+
if (args.timeout !== void 0) {
|
|
123
|
+
if (!args.wait)
|
|
124
|
+
invalid("--timeout requires --wait", "cleo run --wait --timeout 600 -- <cmd>", passthrough);
|
|
125
|
+
const seconds = Number(args.timeout);
|
|
126
|
+
if (!Number.isFinite(seconds) || seconds <= 0) {
|
|
127
|
+
invalid(
|
|
128
|
+
`--timeout must be a positive number of seconds (got '${args.timeout}')`,
|
|
129
|
+
"--timeout 600",
|
|
130
|
+
passthrough
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
timeoutMs = seconds * 1e3;
|
|
134
|
+
}
|
|
135
|
+
let cls;
|
|
136
|
+
try {
|
|
137
|
+
cls = resolveRunClass(args.class, argv, process.cwd());
|
|
138
|
+
} catch (err) {
|
|
139
|
+
invalid(
|
|
140
|
+
err instanceof Error ? err.message : String(err),
|
|
141
|
+
"cleo run --class test -- <cmd>",
|
|
142
|
+
passthrough
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
const notice = (line, level) => {
|
|
146
|
+
if (passthrough && level === "info") return;
|
|
147
|
+
process.stderr.write(`[cleo run] ${line}
|
|
148
|
+
`);
|
|
149
|
+
};
|
|
150
|
+
const { overlay, resources } = planHeavyToolEnv(canonicalForClass(cls));
|
|
151
|
+
if (resources !== null) {
|
|
152
|
+
notice(
|
|
153
|
+
`planned resources: ${resources.summary}`,
|
|
154
|
+
resources.clamped.length > 0 || resources.overBudget ? "warn" : "info"
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
let result;
|
|
158
|
+
try {
|
|
159
|
+
result = await runGoverned({
|
|
160
|
+
argv,
|
|
161
|
+
cls,
|
|
162
|
+
cwd: process.cwd(),
|
|
163
|
+
env: { ...process.env, ...overlay },
|
|
164
|
+
sessionId: process.env.CLEO_SESSION_ID ?? process.env.CLAUDE_CODE_SESSION_ID ?? null,
|
|
165
|
+
wait: Boolean(args.wait),
|
|
166
|
+
timeoutMs,
|
|
167
|
+
passthrough,
|
|
168
|
+
// A terminal on stdin: keep the child in its foreground group.
|
|
169
|
+
foreground: passthrough && process.stdin.isTTY === true,
|
|
170
|
+
notice
|
|
171
|
+
});
|
|
172
|
+
} catch (err) {
|
|
173
|
+
cliError(
|
|
174
|
+
`cleo run failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
175
|
+
1,
|
|
176
|
+
{ name: "E_GENERAL" },
|
|
177
|
+
{ operation: "resources.run" },
|
|
178
|
+
{ stderr: passthrough }
|
|
179
|
+
);
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
if (result.kind === "deferred") {
|
|
183
|
+
cliError(
|
|
184
|
+
`not started: ${result.reason}`,
|
|
185
|
+
RESOURCE_DEFERRED_CODE,
|
|
186
|
+
{
|
|
187
|
+
name: RESOURCE_DEFERRED_CODE,
|
|
188
|
+
details: result.details,
|
|
189
|
+
fix: result.fix,
|
|
190
|
+
alternatives: result.alternatives
|
|
191
|
+
},
|
|
192
|
+
{ operation: "resources.run" },
|
|
193
|
+
{ stderr: passthrough }
|
|
194
|
+
);
|
|
195
|
+
process.exit(RUN_DEFERRED_EXIT_CODE);
|
|
196
|
+
}
|
|
197
|
+
const code = runExitCode(result);
|
|
198
|
+
if (code !== 0) exitFailed(result, code, passthrough, resources);
|
|
199
|
+
if (passthrough) return;
|
|
200
|
+
const { kind: _kind, ...data } = result;
|
|
201
|
+
cliOutput(resources === null ? data : { ...data, resources }, {
|
|
202
|
+
command: "run",
|
|
203
|
+
operation: "resources.run"
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
export {
|
|
208
|
+
runCommand,
|
|
209
|
+
runExitCode
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=run-2U5NZV5Z.js.map
|
|
@@ -0,0 +1,88 @@
|
|
|
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
|
+
defineCommand,
|
|
21
|
+
showUsage
|
|
22
|
+
} from "./chunk-PKKZPOOP.js";
|
|
23
|
+
import {
|
|
24
|
+
dispatchFromCli
|
|
25
|
+
} from "./chunk-3IOQVUO7.js";
|
|
26
|
+
import "./chunk-AWCQH2W5.js";
|
|
27
|
+
import "./chunk-OGV57L4J.js";
|
|
28
|
+
import "./chunk-ZBISIPCK.js";
|
|
29
|
+
import "./chunk-3ZO3M37V.js";
|
|
30
|
+
import "./chunk-6JSJNYH2.js";
|
|
31
|
+
import "./chunk-QFFQSKRC.js";
|
|
32
|
+
|
|
33
|
+
// packages/cleo/src/cli/commands/safestop.ts
|
|
34
|
+
var safestopCommand = defineCommand({
|
|
35
|
+
meta: {
|
|
36
|
+
name: "safestop",
|
|
37
|
+
description: "Graceful shutdown for agents approaching context limits"
|
|
38
|
+
},
|
|
39
|
+
args: {
|
|
40
|
+
reason: {
|
|
41
|
+
type: "string",
|
|
42
|
+
description: "Reason for stopping",
|
|
43
|
+
required: false
|
|
44
|
+
},
|
|
45
|
+
commit: {
|
|
46
|
+
type: "boolean",
|
|
47
|
+
description: "Commit pending git changes with WIP message",
|
|
48
|
+
default: false
|
|
49
|
+
},
|
|
50
|
+
handoff: {
|
|
51
|
+
type: "string",
|
|
52
|
+
description: "Generate handoff document (use - for stdout)"
|
|
53
|
+
},
|
|
54
|
+
"no-session-end": {
|
|
55
|
+
type: "boolean",
|
|
56
|
+
description: "Update notes but do not end session",
|
|
57
|
+
default: false
|
|
58
|
+
},
|
|
59
|
+
"dry-run": {
|
|
60
|
+
type: "boolean",
|
|
61
|
+
description: "Show actions without executing",
|
|
62
|
+
default: false
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
async run({ args, cmd }) {
|
|
66
|
+
if (!args.reason) {
|
|
67
|
+
await showUsage(cmd);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
await dispatchFromCli(
|
|
71
|
+
"mutate",
|
|
72
|
+
"admin",
|
|
73
|
+
"safestop",
|
|
74
|
+
{
|
|
75
|
+
reason: args.reason,
|
|
76
|
+
commit: args.commit,
|
|
77
|
+
handoff: args.handoff,
|
|
78
|
+
noSessionEnd: negatedFlag(args, "session-end"),
|
|
79
|
+
dryRun: args["dry-run"]
|
|
80
|
+
},
|
|
81
|
+
{ command: "safestop", operation: "admin.safestop" }
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
export {
|
|
86
|
+
safestopCommand
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=safestop-VR4VK56D.js.map
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
|
|
3
|
+
if (globalThis[_installed]) return;
|
|
4
|
+
globalThis[_installed] = true;
|
|
5
|
+
const _origEmitWarning = process.emitWarning;
|
|
6
|
+
process.emitWarning = function(warning, type, code, ctor) {
|
|
7
|
+
if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
import {
|
|
17
|
+
defineCommand,
|
|
18
|
+
showUsage
|
|
19
|
+
} from "./chunk-PKKZPOOP.js";
|
|
20
|
+
import {
|
|
21
|
+
dispatchFromCli,
|
|
22
|
+
dispatchRaw,
|
|
23
|
+
handleRawError
|
|
24
|
+
} from "./chunk-3IOQVUO7.js";
|
|
25
|
+
import "./chunk-AWCQH2W5.js";
|
|
26
|
+
import "./chunk-OGV57L4J.js";
|
|
27
|
+
import "./chunk-ZBISIPCK.js";
|
|
28
|
+
import {
|
|
29
|
+
cliOutput
|
|
30
|
+
} from "./chunk-3ZO3M37V.js";
|
|
31
|
+
import "./chunk-6JSJNYH2.js";
|
|
32
|
+
import "./chunk-QFFQSKRC.js";
|
|
33
|
+
|
|
34
|
+
// packages/cleo/src/cli/commands/saga.ts
|
|
35
|
+
import { parseAcceptanceCriteria } from "@cleocode/core";
|
|
36
|
+
var createCommand = defineCommand({
|
|
37
|
+
meta: {
|
|
38
|
+
name: "create",
|
|
39
|
+
description: "Create a new Saga (top-level task with type='saga')"
|
|
40
|
+
},
|
|
41
|
+
args: {
|
|
42
|
+
title: {
|
|
43
|
+
type: "string",
|
|
44
|
+
description: "Saga title",
|
|
45
|
+
required: true
|
|
46
|
+
},
|
|
47
|
+
description: {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Saga description",
|
|
50
|
+
required: false
|
|
51
|
+
},
|
|
52
|
+
acceptance: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: 'Pipe-separated acceptance criteria (e.g. "AC1|AC2")',
|
|
55
|
+
required: false
|
|
56
|
+
},
|
|
57
|
+
"dry-run": {
|
|
58
|
+
type: "boolean",
|
|
59
|
+
description: "Validate and preview the Saga without writing task, relation, or doc rows",
|
|
60
|
+
required: false
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
async run({ args }) {
|
|
64
|
+
await dispatchFromCli(
|
|
65
|
+
"mutate",
|
|
66
|
+
"tasks",
|
|
67
|
+
"saga.create",
|
|
68
|
+
{
|
|
69
|
+
title: args.title,
|
|
70
|
+
description: args.description,
|
|
71
|
+
// T9839/gh-409: route through bracket+quote-aware parser so criteria
|
|
72
|
+
// containing `ENUM (a|b|c)` or quoted unions aren't shredded.
|
|
73
|
+
acceptance: args.acceptance ? parseAcceptanceCriteria(args.acceptance) : void 0,
|
|
74
|
+
dryRun: args["dry-run"] === true
|
|
75
|
+
},
|
|
76
|
+
{ command: "saga", operation: "tasks.saga.create" }
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
var addCommand = defineCommand({
|
|
81
|
+
meta: {
|
|
82
|
+
name: "add",
|
|
83
|
+
description: "Link a member Epic to a Saga via parent_id containment"
|
|
84
|
+
},
|
|
85
|
+
args: {
|
|
86
|
+
sagaId: {
|
|
87
|
+
type: "positional",
|
|
88
|
+
description: "Saga task ID (must have type='saga')",
|
|
89
|
+
required: true
|
|
90
|
+
},
|
|
91
|
+
epicId: {
|
|
92
|
+
type: "positional",
|
|
93
|
+
description: "Epic task ID to add as a member",
|
|
94
|
+
required: true
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
async run({ args }) {
|
|
98
|
+
await dispatchFromCli(
|
|
99
|
+
"mutate",
|
|
100
|
+
"tasks",
|
|
101
|
+
"saga.add",
|
|
102
|
+
{ sagaId: args.sagaId, epicId: args.epicId },
|
|
103
|
+
{ command: "saga", operation: "tasks.saga.add" }
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
var detachCommand = defineCommand({
|
|
108
|
+
meta: {
|
|
109
|
+
name: "detach",
|
|
110
|
+
description: "Remove a Saga member via parent_id containment \u2014 idempotent, audit-logged"
|
|
111
|
+
},
|
|
112
|
+
args: {
|
|
113
|
+
sagaId: {
|
|
114
|
+
type: "positional",
|
|
115
|
+
description: "Saga task ID",
|
|
116
|
+
required: true
|
|
117
|
+
},
|
|
118
|
+
memberId: {
|
|
119
|
+
type: "positional",
|
|
120
|
+
description: "Member task ID to detach from the Saga",
|
|
121
|
+
required: true
|
|
122
|
+
},
|
|
123
|
+
reason: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "Human-readable reason recorded in the audit log entry",
|
|
126
|
+
required: false
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
async run({ args }) {
|
|
130
|
+
await dispatchFromCli(
|
|
131
|
+
"mutate",
|
|
132
|
+
"tasks",
|
|
133
|
+
"saga.detach",
|
|
134
|
+
{ sagaId: args.sagaId, memberId: args.memberId, reason: args.reason },
|
|
135
|
+
{ command: "saga", operation: "tasks.saga.detach" }
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
var listCommand = defineCommand({
|
|
140
|
+
meta: {
|
|
141
|
+
name: "list",
|
|
142
|
+
description: "List all Sagas"
|
|
143
|
+
},
|
|
144
|
+
async run() {
|
|
145
|
+
await dispatchFromCli("query", "tasks", "saga.list", {}, { command: "saga" });
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
var membersCommand = defineCommand({
|
|
149
|
+
meta: {
|
|
150
|
+
name: "members",
|
|
151
|
+
description: "List all member Epics linked to a Saga via parent_id containment"
|
|
152
|
+
},
|
|
153
|
+
args: {
|
|
154
|
+
sagaId: {
|
|
155
|
+
type: "positional",
|
|
156
|
+
description: "Saga task ID",
|
|
157
|
+
required: true
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
async run({ args }) {
|
|
161
|
+
await dispatchFromCli(
|
|
162
|
+
"query",
|
|
163
|
+
"tasks",
|
|
164
|
+
"saga.members",
|
|
165
|
+
{ sagaId: args.sagaId },
|
|
166
|
+
{ command: "saga" }
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
var repairCommand = defineCommand({
|
|
171
|
+
meta: {
|
|
172
|
+
name: "repair",
|
|
173
|
+
description: "Detach an I5-violating parentId from a Saga. Idempotent."
|
|
174
|
+
},
|
|
175
|
+
args: {
|
|
176
|
+
sagaId: {
|
|
177
|
+
type: "positional",
|
|
178
|
+
description: "Saga task ID (must have type='saga')",
|
|
179
|
+
required: true
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
async run({ args }) {
|
|
183
|
+
await dispatchFromCli(
|
|
184
|
+
"mutate",
|
|
185
|
+
"tasks",
|
|
186
|
+
"saga.repair",
|
|
187
|
+
{ sagaId: args.sagaId },
|
|
188
|
+
{ command: "saga", operation: "tasks.saga.repair" }
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
var reconcileCommand = defineCommand({
|
|
193
|
+
meta: {
|
|
194
|
+
name: "reconcile",
|
|
195
|
+
description: "Idempotent cron-safe saga auto-close repair \u2014 re-applies T10116 logic for state changed outside completeTask"
|
|
196
|
+
},
|
|
197
|
+
args: {
|
|
198
|
+
sagaId: {
|
|
199
|
+
type: "positional",
|
|
200
|
+
description: "Optional saga task ID. Omit to walk every saga.",
|
|
201
|
+
required: false
|
|
202
|
+
},
|
|
203
|
+
"dry-run": {
|
|
204
|
+
type: "boolean",
|
|
205
|
+
description: "Report what would happen without mutating rows or writing audit log",
|
|
206
|
+
required: false
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
async run({ args }) {
|
|
210
|
+
const sagaId = typeof args.sagaId === "string" && args.sagaId.length > 0 ? args.sagaId : void 0;
|
|
211
|
+
await dispatchFromCli(
|
|
212
|
+
"mutate",
|
|
213
|
+
"tasks",
|
|
214
|
+
"saga.reconcile",
|
|
215
|
+
{ sagaId, dryRun: args["dry-run"] === true },
|
|
216
|
+
{ command: "saga", operation: "tasks.saga.reconcile" }
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
var rollupCommand = defineCommand({
|
|
221
|
+
meta: {
|
|
222
|
+
name: "rollup",
|
|
223
|
+
description: "Aggregate member Epic statuses: total/done/active/blocked/pending + completionPct"
|
|
224
|
+
},
|
|
225
|
+
args: {
|
|
226
|
+
sagaId: {
|
|
227
|
+
type: "positional",
|
|
228
|
+
description: "Saga task ID",
|
|
229
|
+
required: true
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
async run({ args }) {
|
|
233
|
+
const response = await dispatchRaw("query", "tasks", "saga.rollup", {
|
|
234
|
+
sagaId: args.sagaId
|
|
235
|
+
});
|
|
236
|
+
handleRawError(response, { command: "saga", operation: "tasks.saga.rollup" });
|
|
237
|
+
cliOutput(response.data ?? {}, { command: "saga", operation: "tasks.saga.rollup" });
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
var nextCommand = defineCommand({
|
|
241
|
+
meta: {
|
|
242
|
+
name: "next",
|
|
243
|
+
description: "Return the next actionable Saga and its ready-frontier task IDs"
|
|
244
|
+
},
|
|
245
|
+
args: {
|
|
246
|
+
sagaId: {
|
|
247
|
+
type: "positional",
|
|
248
|
+
description: "Optional saga task ID. Omit to auto-select from canonical order.",
|
|
249
|
+
required: false
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
async run({ args }) {
|
|
253
|
+
const { sagas, getProjectRoot } = await import("@cleocode/core");
|
|
254
|
+
const projectRoot = getProjectRoot();
|
|
255
|
+
const sagaId = typeof args.sagaId === "string" && args.sagaId.length > 0 ? args.sagaId : void 0;
|
|
256
|
+
const result = await sagas.sagaNext(projectRoot, { sagaId });
|
|
257
|
+
cliOutput(result.success ? result.data : result, { command: "saga", operation: "saga.next" });
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
var sagaCommand = defineCommand({
|
|
261
|
+
meta: {
|
|
262
|
+
name: "saga",
|
|
263
|
+
description: "Saga management \u2014 above-Epic grouping tier (ADR-073)"
|
|
264
|
+
},
|
|
265
|
+
subCommands: {
|
|
266
|
+
create: createCommand,
|
|
267
|
+
add: addCommand,
|
|
268
|
+
detach: detachCommand,
|
|
269
|
+
list: listCommand,
|
|
270
|
+
members: membersCommand,
|
|
271
|
+
rollup: rollupCommand,
|
|
272
|
+
repair: repairCommand,
|
|
273
|
+
reconcile: reconcileCommand,
|
|
274
|
+
next: nextCommand
|
|
275
|
+
},
|
|
276
|
+
async run({ cmd, rawArgs }) {
|
|
277
|
+
const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
|
|
278
|
+
if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
|
|
279
|
+
await showUsage(cmd);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
export {
|
|
283
|
+
sagaCommand
|
|
284
|
+
};
|
|
285
|
+
//# sourceMappingURL=saga-SEWPIOX2.js.map
|