@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
|
@@ -0,0 +1,524 @@
|
|
|
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 "./chunk-C3B7C43W.js";
|
|
20
|
+
import {
|
|
21
|
+
defineCommand,
|
|
22
|
+
showUsage
|
|
23
|
+
} from "./chunk-PKKZPOOP.js";
|
|
24
|
+
import {
|
|
25
|
+
dispatchFromCli
|
|
26
|
+
} from "./chunk-3IOQVUO7.js";
|
|
27
|
+
import "./chunk-AWCQH2W5.js";
|
|
28
|
+
import "./chunk-OGV57L4J.js";
|
|
29
|
+
import "./chunk-ZBISIPCK.js";
|
|
30
|
+
import {
|
|
31
|
+
cliError,
|
|
32
|
+
cliOutput
|
|
33
|
+
} from "./chunk-3ZO3M37V.js";
|
|
34
|
+
import "./chunk-6JSJNYH2.js";
|
|
35
|
+
import "./chunk-QFFQSKRC.js";
|
|
36
|
+
|
|
37
|
+
// packages/cleo/src/cli/commands/release.ts
|
|
38
|
+
import { release as release2 } from "@cleocode/core";
|
|
39
|
+
|
|
40
|
+
// packages/cleo/src/cli/commands/release/ship-e2e-smoke.ts
|
|
41
|
+
import { release } from "@cleocode/core";
|
|
42
|
+
var shipE2eSmokeCommand = defineCommand({
|
|
43
|
+
meta: {
|
|
44
|
+
name: "ship-e2e-smoke",
|
|
45
|
+
description: "One-shot end-to-end release smoke: plan \u2192 open \u2192 wait-for-PR \u2192 wait-for-tag \u2192 verify-npm-published. Dry-run by default; pass --execute to perform real mutations (T10103)."
|
|
46
|
+
},
|
|
47
|
+
args: {
|
|
48
|
+
version: {
|
|
49
|
+
type: "positional",
|
|
50
|
+
description: "Candidate release version (e.g. v2026.6.0 or 2026.6.0)",
|
|
51
|
+
required: true
|
|
52
|
+
},
|
|
53
|
+
epic: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "Epic task ID (forwarded to release plan)",
|
|
56
|
+
required: true
|
|
57
|
+
},
|
|
58
|
+
execute: {
|
|
59
|
+
type: "boolean",
|
|
60
|
+
description: "Actually perform mutations (default: dry-run preview only)"
|
|
61
|
+
},
|
|
62
|
+
"poll-interval-ms": {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Polling interval for wait-* steps (default 5000)"
|
|
65
|
+
},
|
|
66
|
+
"total-timeout-ms": {
|
|
67
|
+
type: "string",
|
|
68
|
+
description: "Wall-clock budget across all polling waits (default 1800000 = 30 min)"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
async run({ args }) {
|
|
72
|
+
const pollIntervalMs = args["poll-interval-ms"] ? Number.parseInt(args["poll-interval-ms"], 10) : void 0;
|
|
73
|
+
const totalTimeoutMs = args["total-timeout-ms"] ? Number.parseInt(args["total-timeout-ms"], 10) : void 0;
|
|
74
|
+
const params = {
|
|
75
|
+
version: args.version,
|
|
76
|
+
epicId: args.epic,
|
|
77
|
+
execute: args.execute === true,
|
|
78
|
+
...pollIntervalMs !== void 0 ? { pollIntervalMs } : {},
|
|
79
|
+
...totalTimeoutMs !== void 0 ? { totalTimeoutMs } : {}
|
|
80
|
+
};
|
|
81
|
+
const env = release.createDefaultSmokeEnvironment();
|
|
82
|
+
const result = await release.runShipE2eSmoke(params, env);
|
|
83
|
+
if (result.success) {
|
|
84
|
+
cliOutput(result, { command: "release", operation: "release.ship-e2e-smoke" });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const failed = result.steps.find((s) => s.status === "failed");
|
|
88
|
+
cliError(
|
|
89
|
+
`ship-e2e-smoke step "${failed?.name ?? "unknown"}" failed: ${failed?.error ?? "see envelope"}`,
|
|
90
|
+
"E_SHIP_E2E_SMOKE_FAILED",
|
|
91
|
+
{ name: "E_SHIP_E2E_SMOKE_FAILED", details: result },
|
|
92
|
+
{ operation: "release.ship-e2e-smoke" }
|
|
93
|
+
);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// packages/cleo/src/cli/commands/release.ts
|
|
99
|
+
var listCommand = defineCommand({
|
|
100
|
+
meta: { name: "list", description: "List all releases" },
|
|
101
|
+
async run() {
|
|
102
|
+
await dispatchFromCli("query", "pipeline", "release.list", {}, { command: "release" });
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
var showCommand = defineCommand({
|
|
106
|
+
meta: { name: "show", description: "Show release details" },
|
|
107
|
+
args: {
|
|
108
|
+
version: {
|
|
109
|
+
type: "positional",
|
|
110
|
+
description: "Release version to show",
|
|
111
|
+
required: true
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
async run({ args }) {
|
|
115
|
+
await dispatchFromCli(
|
|
116
|
+
"query",
|
|
117
|
+
"pipeline",
|
|
118
|
+
"release.show",
|
|
119
|
+
{ version: args.version },
|
|
120
|
+
{ command: "release" }
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
var cancelCommand = defineCommand({
|
|
125
|
+
meta: {
|
|
126
|
+
name: "cancel",
|
|
127
|
+
description: "Cancel and remove a release in draft or prepared state"
|
|
128
|
+
},
|
|
129
|
+
args: {
|
|
130
|
+
version: {
|
|
131
|
+
type: "positional",
|
|
132
|
+
description: "Release version to cancel",
|
|
133
|
+
required: true
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
async run({ args }) {
|
|
137
|
+
await dispatchFromCli(
|
|
138
|
+
"mutate",
|
|
139
|
+
"pipeline",
|
|
140
|
+
"release.cancel",
|
|
141
|
+
{ version: args.version },
|
|
142
|
+
{ command: "release" }
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
var rollbackCommand = defineCommand({
|
|
147
|
+
meta: {
|
|
148
|
+
name: "rollback",
|
|
149
|
+
description: "Roll back a shipped release (marks it as rolled-back in CLEO records)"
|
|
150
|
+
},
|
|
151
|
+
args: {
|
|
152
|
+
version: {
|
|
153
|
+
type: "positional",
|
|
154
|
+
description: "Release version to roll back",
|
|
155
|
+
required: true
|
|
156
|
+
},
|
|
157
|
+
reason: {
|
|
158
|
+
type: "string",
|
|
159
|
+
description: "Reason for rollback"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
async run({ args }) {
|
|
163
|
+
await dispatchFromCli(
|
|
164
|
+
"mutate",
|
|
165
|
+
"pipeline",
|
|
166
|
+
"release.rollback",
|
|
167
|
+
{
|
|
168
|
+
version: args.version,
|
|
169
|
+
reason: args.reason
|
|
170
|
+
},
|
|
171
|
+
{ command: "release" }
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
var rollbackFullCommand = defineCommand({
|
|
176
|
+
meta: {
|
|
177
|
+
name: "rollback-full",
|
|
178
|
+
description: "Full rollback: delete git tag, revert commit, remove release record"
|
|
179
|
+
},
|
|
180
|
+
args: {
|
|
181
|
+
version: {
|
|
182
|
+
type: "positional",
|
|
183
|
+
description: "Release version to fully roll back (e.g. 2026.4.77)",
|
|
184
|
+
required: true
|
|
185
|
+
},
|
|
186
|
+
reason: {
|
|
187
|
+
type: "string",
|
|
188
|
+
description: "Reason for rollback"
|
|
189
|
+
},
|
|
190
|
+
force: {
|
|
191
|
+
type: "boolean",
|
|
192
|
+
description: "Continue even if some git operations fail"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
async run({ args }) {
|
|
196
|
+
await dispatchFromCli(
|
|
197
|
+
"mutate",
|
|
198
|
+
"pipeline",
|
|
199
|
+
"release.rollback.full",
|
|
200
|
+
{
|
|
201
|
+
version: args.version,
|
|
202
|
+
reason: args.reason,
|
|
203
|
+
force: args.force
|
|
204
|
+
},
|
|
205
|
+
{ command: "release" }
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
var prStatusCommand = defineCommand({
|
|
210
|
+
meta: {
|
|
211
|
+
name: "pr-status",
|
|
212
|
+
description: "Poll CI check status for an in-progress release PR (T9095)"
|
|
213
|
+
},
|
|
214
|
+
args: {
|
|
215
|
+
version: {
|
|
216
|
+
type: "positional",
|
|
217
|
+
description: "Release version (e.g. 2026.5.43)",
|
|
218
|
+
required: true
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
async run({ args }) {
|
|
222
|
+
await dispatchFromCli(
|
|
223
|
+
"query",
|
|
224
|
+
"pipeline",
|
|
225
|
+
"release.pr-status",
|
|
226
|
+
{ version: args.version },
|
|
227
|
+
{ command: "release" }
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
var channelCommand = defineCommand({
|
|
232
|
+
meta: {
|
|
233
|
+
name: "channel",
|
|
234
|
+
description: "Show the current release channel based on git branch (latest/beta/alpha)"
|
|
235
|
+
},
|
|
236
|
+
async run() {
|
|
237
|
+
await dispatchFromCli("query", "pipeline", "release.channel.show", {}, { command: "release" });
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
var validateChangelogCommand = defineCommand({
|
|
241
|
+
meta: {
|
|
242
|
+
name: "validate-changelog",
|
|
243
|
+
description: "Validate that CHANGELOG.md contains the canonical `## [VERSION]` header (T9937)"
|
|
244
|
+
},
|
|
245
|
+
args: {
|
|
246
|
+
version: {
|
|
247
|
+
type: "positional",
|
|
248
|
+
description: "Release version (accepts v2026.5.94 or 2026.5.94)",
|
|
249
|
+
required: true
|
|
250
|
+
},
|
|
251
|
+
path: {
|
|
252
|
+
type: "string",
|
|
253
|
+
description: "Override the CHANGELOG file path (default: <projectRoot>/CHANGELOG.md)",
|
|
254
|
+
required: false
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
async run({ args }) {
|
|
258
|
+
await dispatchFromCli(
|
|
259
|
+
"query",
|
|
260
|
+
"release",
|
|
261
|
+
"validate-changelog",
|
|
262
|
+
{
|
|
263
|
+
version: args.version,
|
|
264
|
+
...typeof args.path === "string" && args.path.length > 0 ? { changelogPath: args.path } : {}
|
|
265
|
+
},
|
|
266
|
+
{ command: "release" }
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
var READINESS_GATE_EXIT_CODE = 6;
|
|
271
|
+
var planCommand = defineCommand({
|
|
272
|
+
meta: {
|
|
273
|
+
name: "plan",
|
|
274
|
+
description: "Build the canonical Release Plan envelope and persist status=planned (T9525)"
|
|
275
|
+
},
|
|
276
|
+
args: {
|
|
277
|
+
version: {
|
|
278
|
+
type: "positional",
|
|
279
|
+
description: "Candidate release version (e.g. v2026.6.0 or 2026.6.0)",
|
|
280
|
+
required: true
|
|
281
|
+
},
|
|
282
|
+
epic: {
|
|
283
|
+
type: "string",
|
|
284
|
+
description: "Epic task ID \u2014 children (or leaf Epic itself per ADR-073) are candidates",
|
|
285
|
+
required: false
|
|
286
|
+
},
|
|
287
|
+
saga: {
|
|
288
|
+
type: "string",
|
|
289
|
+
description: "Saga task ID \u2014 walks task_relations type=groups to aggregate member Epics (ADR-073). Mutually exclusive with --epic/--tasks. (T9838)",
|
|
290
|
+
required: false
|
|
291
|
+
},
|
|
292
|
+
tasks: {
|
|
293
|
+
type: "string",
|
|
294
|
+
description: "Explicit task-list release scope (comma- or space-separated, e.g. --tasks T9961,T9962 or --tasks T9961 --tasks T9962). Mutually exclusive with --epic/--saga. (T10088)",
|
|
295
|
+
required: false
|
|
296
|
+
},
|
|
297
|
+
scheme: {
|
|
298
|
+
type: "string",
|
|
299
|
+
description: "Versioning scheme: calver | semver | calver-suffix"
|
|
300
|
+
},
|
|
301
|
+
channel: {
|
|
302
|
+
type: "string",
|
|
303
|
+
description: "Release channel: latest | beta | alpha | rc"
|
|
304
|
+
},
|
|
305
|
+
hotfix: {
|
|
306
|
+
type: "boolean",
|
|
307
|
+
description: "Mark plan as release_kind=hotfix"
|
|
308
|
+
},
|
|
309
|
+
"dry-run": {
|
|
310
|
+
type: "boolean",
|
|
311
|
+
description: "Compute plan + envelope without writing the plan file or DB row"
|
|
312
|
+
},
|
|
313
|
+
"no-changelog": {
|
|
314
|
+
type: "boolean",
|
|
315
|
+
description: "Skip CHANGELOG.md auto-write (default: write/replace the ## [<version>] section). (T9838)"
|
|
316
|
+
},
|
|
317
|
+
"skip-readiness": {
|
|
318
|
+
type: "boolean",
|
|
319
|
+
description: "Skip the release-readiness preflight check (default: run check). Use only in emergency. (T10459)"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
async run({ args }) {
|
|
323
|
+
if (args["skip-readiness"] !== true) {
|
|
324
|
+
const { runSpawnReadinessHygieneCli } = await import("@cleocode/core/hygiene/validate-spawn-readiness.js");
|
|
325
|
+
const readiness = await runSpawnReadinessHygieneCli();
|
|
326
|
+
if (readiness.hasBlockingFailure) {
|
|
327
|
+
const failed = readiness.gates.filter((g) => !g.passed && g.severity === "error");
|
|
328
|
+
const timedOut = failed.filter((g) => g.reason === "timeout").map((g) => g.name);
|
|
329
|
+
cliError(
|
|
330
|
+
`Release readiness failed: ${readiness.blockingGates.join(", ")}. No plan was written.`,
|
|
331
|
+
READINESS_GATE_EXIT_CODE,
|
|
332
|
+
{
|
|
333
|
+
name: "E_READINESS_GATE_FAILED",
|
|
334
|
+
// gh#1367: a gate that timed out found nothing wrong — telling the
|
|
335
|
+
// operator to go repair the artifact would send them after a defect
|
|
336
|
+
// that does not exist.
|
|
337
|
+
fix: timedOut.length > 0 ? `${timedOut.join(", ")} timed out rather than finding a problem \u2014 re-run, raise the gate timeout, or pass --skip-readiness.` : "Fix the gates listed above, or pass --skip-readiness to bypass the preflight (emergency use only).",
|
|
338
|
+
details: {
|
|
339
|
+
gates: failed.map((g) => ({
|
|
340
|
+
name: g.name,
|
|
341
|
+
reason: g.reason ?? "validation",
|
|
342
|
+
message: g.message
|
|
343
|
+
})),
|
|
344
|
+
checkedAt: readiness.checkedAt
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
{ operation: "release.plan" }
|
|
348
|
+
);
|
|
349
|
+
process.exit(READINESS_GATE_EXIT_CODE);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
await dispatchFromCli(
|
|
353
|
+
"mutate",
|
|
354
|
+
"release",
|
|
355
|
+
"plan",
|
|
356
|
+
{
|
|
357
|
+
version: args.version,
|
|
358
|
+
epicId: args.epic,
|
|
359
|
+
sagaId: args.saga,
|
|
360
|
+
taskIds: parseTaskScopeArg(args.tasks),
|
|
361
|
+
scheme: args.scheme,
|
|
362
|
+
channel: args.channel,
|
|
363
|
+
hotfix: args.hotfix === true,
|
|
364
|
+
dryRun: args["dry-run"] === true,
|
|
365
|
+
writeChangelog: !negatedFlag(args, "changelog")
|
|
366
|
+
},
|
|
367
|
+
{ command: "release" }
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
function parseTaskScopeArg(value) {
|
|
372
|
+
const raw = Array.isArray(value) ? value : typeof value === "string" ? [value] : [];
|
|
373
|
+
const taskIds = raw.flatMap(
|
|
374
|
+
(part) => String(part).split(",").map((s) => s.trim()).filter(Boolean)
|
|
375
|
+
);
|
|
376
|
+
return taskIds.length > 0 ? taskIds : void 0;
|
|
377
|
+
}
|
|
378
|
+
var openCommand = defineCommand({
|
|
379
|
+
meta: {
|
|
380
|
+
name: "open",
|
|
381
|
+
description: "Dispatch release-prepare workflow + transition releases.status to pr-opened"
|
|
382
|
+
},
|
|
383
|
+
args: {
|
|
384
|
+
version: {
|
|
385
|
+
type: "positional",
|
|
386
|
+
description: "Release version (e.g. v2026.6.0)",
|
|
387
|
+
required: true
|
|
388
|
+
},
|
|
389
|
+
workflow: {
|
|
390
|
+
type: "string",
|
|
391
|
+
description: "Workflow file to dispatch (default: release-prepare.yml)"
|
|
392
|
+
},
|
|
393
|
+
watch: {
|
|
394
|
+
type: "boolean",
|
|
395
|
+
description: "Poll gh run watch until the run reaches a terminal state"
|
|
396
|
+
},
|
|
397
|
+
"commit-plan": {
|
|
398
|
+
type: "boolean",
|
|
399
|
+
description: "Commit the plan file to the active branch before dispatching (DEFAULT). The workflow cannot regenerate a task- or epic-scoped plan on the runner \u2014 the task store is untracked \u2014 so the committed plan is the only path that can succeed (T12309). After a release-plan PR has merged, pass --no-commit-plan: the plan on the default branch is verified (read from there when this checkout lacks it) and dispatched by its sha256 (T13050). Either way the dispatch carries the verified preflight skips (T13140).",
|
|
400
|
+
default: true
|
|
401
|
+
},
|
|
402
|
+
// T12089: the workflow regenerates the plan when no committed plan is
|
|
403
|
+
// supplied, and `cleo release plan` requires a scope — so one of these must
|
|
404
|
+
// ride along or the dispatched run dies at "Prepare bump-PR".
|
|
405
|
+
epic: {
|
|
406
|
+
type: "string",
|
|
407
|
+
description: "Epic task ID forwarded as the plan scope (e.g. T9999)"
|
|
408
|
+
},
|
|
409
|
+
tasks: {
|
|
410
|
+
type: "string",
|
|
411
|
+
description: "Comma-separated task IDs forwarded as the plan scope (task-scoped release)"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
async run({ args }) {
|
|
415
|
+
await dispatchFromCli(
|
|
416
|
+
"mutate",
|
|
417
|
+
"release",
|
|
418
|
+
"open",
|
|
419
|
+
{
|
|
420
|
+
version: args.version,
|
|
421
|
+
workflow: args.workflow,
|
|
422
|
+
watch: args.watch === true,
|
|
423
|
+
// citty synthesises `--no-commit-plan` for a boolean with `default: true`
|
|
424
|
+
// and delivers it as `commit-plan: false`, so the negation needs no arg
|
|
425
|
+
// of its own — declaring one listed it twice in `--help`.
|
|
426
|
+
commitPlan: args["commit-plan"] !== false,
|
|
427
|
+
epic: args.epic,
|
|
428
|
+
tasks: args.tasks
|
|
429
|
+
},
|
|
430
|
+
{ command: "release" }
|
|
431
|
+
);
|
|
432
|
+
}
|
|
433
|
+
});
|
|
434
|
+
var reconcileCommand = defineCommand({
|
|
435
|
+
meta: {
|
|
436
|
+
name: "reconcile",
|
|
437
|
+
description: "Reconcile a published release: backfill the 11 provenance tables"
|
|
438
|
+
},
|
|
439
|
+
args: {
|
|
440
|
+
version: {
|
|
441
|
+
type: "positional",
|
|
442
|
+
description: "Version string (e.g. v2026.6.0)",
|
|
443
|
+
required: true
|
|
444
|
+
},
|
|
445
|
+
"from-workflow": {
|
|
446
|
+
type: "boolean",
|
|
447
|
+
description: "Indicates invocation from release-publish.yml (affects logging only)"
|
|
448
|
+
},
|
|
449
|
+
rollback: {
|
|
450
|
+
type: "boolean",
|
|
451
|
+
description: "Reconcile a rollback rather than a publish (deferred to T9528)"
|
|
452
|
+
},
|
|
453
|
+
/**
|
|
454
|
+
* T11977 / DHQ-080: tag-driven path dry-run.
|
|
455
|
+
*
|
|
456
|
+
* When the release plan file is absent (tag-driven publish with no prior
|
|
457
|
+
* `cleo release plan`), `--dry-run` synthesises the minimal plan from the
|
|
458
|
+
* git tag + CHANGELOG.md + merged-PR history and prints the derivation
|
|
459
|
+
* WITHOUT writing to the DB. Safe to run against the live project — produces
|
|
460
|
+
* no side effects.
|
|
461
|
+
*/
|
|
462
|
+
"dry-run": {
|
|
463
|
+
type: "boolean",
|
|
464
|
+
description: "On tag-driven path (no plan file): synthesise and print the plan derivation without writing to DB"
|
|
465
|
+
},
|
|
466
|
+
json: { type: "boolean", description: "Emit LAFS envelope" }
|
|
467
|
+
},
|
|
468
|
+
async run({ args }) {
|
|
469
|
+
const result = await release2.releaseReconcileV2(args.version, {
|
|
470
|
+
fromWorkflow: args["from-workflow"] === true,
|
|
471
|
+
rollback: args.rollback === true,
|
|
472
|
+
dryRun: args["dry-run"] === true
|
|
473
|
+
});
|
|
474
|
+
if (result.success) {
|
|
475
|
+
cliOutput(result.data, { command: "release", operation: "release.reconcile" });
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
cliError(
|
|
479
|
+
result.error.message,
|
|
480
|
+
result.error.code,
|
|
481
|
+
{
|
|
482
|
+
name: result.error.code,
|
|
483
|
+
...result.error.details ? { details: result.error.details } : {},
|
|
484
|
+
...result.error.fix ? { fix: result.error.fix } : {}
|
|
485
|
+
},
|
|
486
|
+
{ operation: "release.reconcile" }
|
|
487
|
+
);
|
|
488
|
+
process.exit(1);
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
var releaseCommand = defineCommand({
|
|
492
|
+
meta: {
|
|
493
|
+
name: "release",
|
|
494
|
+
description: "Release lifecycle management \u2014 4-verb pipeline: plan \u2192 open \u2192 reconcile / rollback. Use `ship-e2e-smoke` for end-to-end validation (dry-run by default)."
|
|
495
|
+
},
|
|
496
|
+
subCommands: {
|
|
497
|
+
// Canonical SPEC-T9345 4-verb pipeline — list these first so `--help`
|
|
498
|
+
// surfaces them as the documented default.
|
|
499
|
+
plan: planCommand,
|
|
500
|
+
open: openCommand,
|
|
501
|
+
reconcile: reconcileCommand,
|
|
502
|
+
rollback: rollbackCommand,
|
|
503
|
+
// End-to-end smoke walker — see docs/release/verb-matrix.md.
|
|
504
|
+
"ship-e2e-smoke": shipE2eSmokeCommand,
|
|
505
|
+
// Read-only helpers — not deprecated.
|
|
506
|
+
list: listCommand,
|
|
507
|
+
show: showCommand,
|
|
508
|
+
cancel: cancelCommand,
|
|
509
|
+
"pr-status": prStatusCommand,
|
|
510
|
+
channel: channelCommand,
|
|
511
|
+
"rollback-full": rollbackFullCommand,
|
|
512
|
+
// T9937 — canonical CHANGELOG.md header validator (Saga T9862).
|
|
513
|
+
"validate-changelog": validateChangelogCommand
|
|
514
|
+
},
|
|
515
|
+
async run({ cmd, rawArgs }) {
|
|
516
|
+
const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
|
|
517
|
+
if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
|
|
518
|
+
await showUsage(cmd);
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
export {
|
|
522
|
+
releaseCommand
|
|
523
|
+
};
|
|
524
|
+
//# sourceMappingURL=release-4ZJTMUUT.js.map
|