@cleocode/cleo 2026.10.3 → 2026.10.5-rc.ci.672
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/bin/cleo.js +11 -1
- package/dist/cli/adapter-OUQRSFZL.js +159 -0
- package/dist/cli/add-4SRRJL4U.js +443 -0
- package/dist/cli/add-batch-TSWICA5J.js +164 -0
- package/dist/cli/admin-L3F6CDYH.js +1428 -0
- package/dist/cli/admin-YMU55YCU.js +341 -0
- package/dist/cli/adr-XESRMFMP.js +172 -0
- package/dist/cli/agent-TAFPIYUU.js +2404 -0
- package/dist/cli/agent-outputs-HVJJIPS4.js +84 -0
- package/dist/cli/analyze-YQ22QVGW.js +49 -0
- package/dist/cli/archive-W5XX6AH7.js +65 -0
- package/dist/cli/archive-stats-HP2KPAJU.js +101 -0
- package/dist/cli/attention-7JBDCRZX.js +124 -0
- package/dist/cli/attention-ZXZANHKC.js +168 -0
- package/dist/cli/audit-ICA2SEFN.js +122 -0
- package/dist/cli/auth-DXIG5OG7.js +491 -0
- package/dist/cli/backfill-LBSYBWLR.js +156 -0
- package/dist/cli/backup-NUGBZ7NA.js +588 -0
- package/dist/cli/backup-inspect-PDRXI45A.js +26 -0
- package/dist/cli/backup-recover-TVKAPERB.js +29 -0
- package/dist/cli/blockers-ZOPCGHDW.js +55 -0
- package/dist/cli/brain-EJOBKL4A.js +397 -0
- package/dist/cli/briefing-RDQJ6WHS.js +213 -0
- package/dist/cli/caamp-Z3XPKEHB.js +181 -0
- package/dist/cli/cancel-S7EHLCJN.js +85 -0
- package/dist/cli/canon-NPF5RODM.js +142 -0
- package/dist/cli/canon-docs-2GTOLF7Y.js +26 -0
- package/dist/cli/cant-CHNN6O57.js +239 -0
- package/dist/cli/changeset-RYPHPN2B.js +246 -0
- package/dist/cli/check-C67YAU7W.js +759 -0
- package/dist/cli/check-DHMURGHC.js +924 -0
- package/dist/cli/checkpoint-UWDFOGYQ.js +128 -0
- package/dist/cli/chunk-22YPFZYB.js +91 -0
- package/dist/cli/chunk-2MGFDMDF.js +272 -0
- package/dist/cli/chunk-47JYZAMS.js +30 -0
- package/dist/cli/chunk-4JYHPP4C.js +76 -0
- package/dist/cli/chunk-4PEODTHY.js +278 -0
- package/dist/cli/chunk-4RGSNUUP.js +950 -0
- package/dist/cli/chunk-4VASFLUW.js +35 -0
- package/dist/cli/chunk-5PNI276X.js +124 -0
- package/dist/cli/chunk-6JSJNYH2.js +114 -0
- package/dist/cli/chunk-6N6WGLXE.js +63 -0
- package/dist/cli/chunk-75UH3BLS.js +210 -0
- package/dist/cli/chunk-7ACK4EIN.js +92 -0
- package/dist/cli/chunk-7NMKLVMI.js +107 -0
- package/dist/cli/chunk-7SINJXB6.js +110 -0
- package/dist/cli/chunk-7UARFJYS.js +46 -0
- package/dist/cli/chunk-7ZYPQV4N.js +90 -0
- package/dist/cli/chunk-AQCYT3L4.js +72 -0
- package/dist/cli/chunk-BQK6XTOH.js +57 -0
- package/dist/cli/chunk-C3B7C43W.js +16 -0
- package/dist/cli/chunk-CAPAGD5E.js +98 -0
- package/dist/cli/chunk-CHGEDCKG.js +77 -0
- package/dist/cli/chunk-COXFJ3PT.js +74 -0
- package/dist/cli/chunk-D7BAQNV2.js +55 -0
- package/dist/cli/chunk-EIUXVHNF.js +258 -0
- package/dist/cli/chunk-EUGB6P5V.js +173 -0
- package/dist/cli/chunk-EW2CKNNZ.js +304 -0
- package/dist/cli/chunk-FSKN4DWC.js +108 -0
- package/dist/cli/chunk-FVKLULL7.js +48 -0
- package/dist/cli/chunk-GAGUBU4Z.js +280 -0
- package/dist/cli/chunk-GKRFH2YG.js +171 -0
- package/dist/cli/chunk-GRU74UE4.js +270 -0
- package/dist/cli/chunk-GZFVDR44.js +320 -0
- package/dist/cli/chunk-HFLLZE6A.js +83 -0
- package/dist/cli/chunk-HXRXT3XU.js +78 -0
- package/dist/cli/chunk-IIOGUY3B.js +258 -0
- package/dist/cli/chunk-ILWWL462.js +60 -0
- package/dist/cli/chunk-J5USPJKZ.js +48 -0
- package/dist/cli/chunk-KEQS36GD.js +88 -0
- package/dist/cli/chunk-L7ONYSV6.js +2497 -0
- package/dist/cli/chunk-LVGIFMCV.js +163 -0
- package/dist/cli/chunk-NEFMQYLE.js +656 -0
- package/dist/cli/chunk-NU6CQQVB.js +4501 -0
- package/dist/cli/chunk-OILHT47L.js +252 -0
- package/dist/cli/chunk-PKKZPOOP.js +352 -0
- package/dist/cli/chunk-PN4WW5VX.js +66 -0
- package/dist/cli/chunk-PSJ33WVO.js +56 -0
- package/dist/cli/chunk-QA6T2LQ5.js +71 -0
- package/dist/cli/chunk-QJJWWCIC.js +288 -0
- package/dist/cli/chunk-QKMBWYAS.js +93 -0
- package/dist/cli/chunk-QWNKLLLG.js +84 -0
- package/dist/cli/chunk-QWUFFDL3.js +85 -0
- package/dist/cli/chunk-QY76BRUZ.js +35 -0
- package/dist/cli/chunk-R45KVF5Y.js +117 -0
- package/dist/cli/chunk-RRKP7HLU.js +66 -0
- package/dist/cli/chunk-SXXOC6KZ.js +209 -0
- package/dist/cli/chunk-T6GZJYL3.js +108 -0
- package/dist/cli/chunk-TLQ37HRE.js +67 -0
- package/dist/cli/chunk-TPTNEJZJ.js +52 -0
- package/dist/cli/chunk-TYC7G5LF.js +100 -0
- package/dist/cli/chunk-UWCZY52R.js +766 -0
- package/dist/cli/chunk-VB3LDPL5.js +46 -0
- package/dist/cli/chunk-VLEYOOPH.js +31 -0
- package/dist/cli/chunk-W3JLYKKY.js +140 -0
- package/dist/cli/chunk-WWCYZYSN.js +56 -0
- package/dist/cli/chunk-XA5WISNV.js +52 -0
- package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
- package/dist/cli/chunk-XLPMIGJJ.js +148 -0
- package/dist/cli/chunk-YY66LFZF.js +29 -0
- package/dist/cli/chunk-ZMGDZMSJ.js +210 -0
- package/dist/cli/claim-IGOG2QOC.js +97 -0
- package/dist/cli/classify-MG4N7GMQ.js +117 -0
- package/dist/cli/cli-A23Q335V.js +51 -0
- package/dist/cli/cloud-SILYJVKO.js +731 -0
- package/dist/cli/cockpit-RZKLGYPN.js +790 -0
- package/dist/cli/code-H2FQCVMW.js +178 -0
- package/dist/cli/complete-JLX7NBI4.js +35 -0
- package/dist/cli/complexity-OKV7PVZH.js +57 -0
- package/dist/cli/compliance-QMGZHJNQ.js +277 -0
- package/dist/cli/conduit-4H32UYEA.js +308 -0
- package/dist/cli/conduit-EY54WTZA.js +535 -0
- package/dist/cli/config-TDYOC7XO.js +519 -0
- package/dist/cli/consensus-4XCOFPPT.js +122 -0
- package/dist/cli/context-FN4YTGHD.js +142 -0
- package/dist/cli/contribution-7RWFBJLC.js +112 -0
- package/dist/cli/curator-HKZJCVRL.js +139 -0
- package/dist/cli/current-B2NU7V3G.js +43 -0
- package/dist/cli/daemon-GBD4TVCD.js +452 -0
- package/dist/cli/dash-IGDANIE5.js +71 -0
- package/dist/cli/decide-26SXC2V6.js +416 -0
- package/dist/cli/decompose-LQ76TEZG.js +78 -0
- package/dist/cli/decomposition-WFRWNUSJ.js +122 -0
- package/dist/cli/delete-T5DUQHOX.js +69 -0
- package/dist/cli/deps-UTPZJBXL.js +462 -0
- package/dist/cli/detect-FFZSMVDT.js +46 -0
- package/dist/cli/detect-drift-TVCJOFYJ.js +408 -0
- package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
- package/dist/cli/diagnostics-ZNBKH6GX.js +133 -0
- package/dist/cli/docs-CLQKEEUK.js +1710 -0
- package/dist/cli/docs-DPPDFTWR.js +3098 -0
- package/dist/cli/doctor-GPENOP4N.js +1270 -0
- package/dist/cli/doctor-ac-bindings-S3IOEFP4.js +26 -0
- package/dist/cli/doctor-acceptance-drift-VNFKPBSQ.js +26 -0
- package/dist/cli/doctor-credentials-A5H4JMTF.js +26 -0
- package/dist/cli/doctor-db-substrate-FGCISE4Z.js +27 -0
- package/dist/cli/doctor-dep-cycles-BKKKHHYG.js +26 -0
- package/dist/cli/doctor-exodus-ND2DH2KP.js +26 -0
- package/dist/cli/doctor-exodus-residue-4EMRYMEQ.js +26 -0
- package/dist/cli/doctor-fk-check-VY3RIQV3.js +26 -0
- package/dist/cli/doctor-global-delivery-JN6IGHUL.js +26 -0
- package/dist/cli/doctor-heavy-command-hook-XSN44WXU.js +26 -0
- package/dist/cli/doctor-legacy-backups-QAG5NHYP.js +26 -0
- package/dist/cli/doctor-legacy-reaper-CIRGFE6R.js +26 -0
- package/dist/cli/doctor-malformed-ids-WL7HT4TB.js +26 -0
- package/dist/cli/doctor-manifest-rows-SMQCKJ2T.js +26 -0
- package/dist/cli/doctor-memory-guard-LJDOJG76.js +26 -0
- package/dist/cli/doctor-migrations-ETQPFNUP.js +26 -0
- package/dist/cli/doctor-nexus-residency-A4JMKBEJ.js +26 -0
- package/dist/cli/doctor-project-identity-FFQJ5LNX.js +26 -0
- package/dist/cli/doctor-projects-MFUTKRHP.js +30 -0
- package/dist/cli/doctor-projects-registry-76X6VTGM.js +26 -0
- package/dist/cli/doctor-release-readiness-QJCOPFTK.js +26 -0
- package/dist/cli/doctor-repair-AU76FIKY.js +26 -0
- package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
- package/dist/cli/doctor-skill-fixtures-G3T7JUHS.js +26 -0
- package/dist/cli/doctor-split-brain-FUW6L7FS.js +26 -0
- package/dist/cli/doctor-superseded-store-DUHGSBLC.js +26 -0
- package/dist/cli/doctor-sync-journal-SXMUIKF7.js +26 -0
- package/dist/cli/doctor-sync-triggers-6WNJZFRM.js +26 -0
- package/dist/cli/doctor-tool-locks-66LSLUBN.js +26 -0
- package/dist/cli/doctor-twin-collapse-AYBYBFC4.js +26 -0
- package/dist/cli/doctor-worktree-stores-C5XEH5OG.js +26 -0
- package/dist/cli/done-R64XRZ32.js +196 -0
- package/dist/cli/dynamic-RR4HB7BB.js +29 -0
- package/dist/cli/entities-3JIHDIOK.js +361 -0
- package/dist/cli/event-45KEWV5H.js +372 -0
- package/dist/cli/exists-BEDZS5RI.js +65 -0
- package/dist/cli/exodus-DUX62344.js +401 -0
- package/dist/cli/export-C5PQIQ5O.js +93 -0
- package/dist/cli/export-tasks-CUXDZPJB.js +97 -0
- package/dist/cli/federation-ESM35EGG.js +145 -0
- package/dist/cli/find-5EUZHHQJ.js +178 -0
- package/dist/cli/focus-6AH4KLRO.js +368 -0
- package/dist/cli/focus-ANKAIRO5.js +56 -0
- package/dist/cli/gateway-2GW2KTK3.js +77 -0
- package/dist/cli/gateway-auto-start-EDK7XI6E.js +36 -0
- package/dist/cli/gc-CTOQLUSA.js +291 -0
- package/dist/cli/go-YJPNHHYT.js +206 -0
- package/dist/cli/goal-4GW4G77D.js +213 -0
- package/dist/cli/grade-25WSZH4X.js +57 -0
- package/dist/cli/graph-JUO3TMF3.js +879 -0
- package/dist/cli/history-NACNUQTC.js +138 -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-7ESGL5SS.js +89 -0
- package/dist/cli/import-tasks-FLE2RPBR.js +109 -0
- package/dist/cli/index.js +601 -94637
- package/dist/cli/init-AN4DZ2XO.js +40 -0
- package/dist/cli/inject-HQWA5GWY.js +83 -0
- package/dist/cli/install-global-YQV4W5OG.js +95 -0
- package/dist/cli/intelligence-OFFNQGHE.js +238 -0
- package/dist/cli/intelligence-QIC4SN4X.js +182 -0
- package/dist/cli/issue-P5RNMRDG.js +159 -0
- package/dist/cli/janitor-ZNCFQ7E3.js +111 -0
- package/dist/cli/labels-ORBM3T57.js +88 -0
- package/dist/cli/lifecycle-MHR22TVI.js +273 -0
- package/dist/cli/list-LB6GCYYU.js +109 -0
- package/dist/cli/llm-H7LZWQKX.js +130 -0
- package/dist/cli/llm-OTJWPMGI.js +704 -0
- package/dist/cli/llm-cost-MLMXEAR4.js +25 -0
- package/dist/cli/llm-stream-AAEUNKRP.js +27 -0
- package/dist/cli/log-W2A5M2NA.js +76 -0
- package/dist/cli/login-SIXFFZSP.js +45 -0
- package/dist/cli/logout-G3KVLQQM.js +74 -0
- package/dist/cli/manifest-G4T6EBSI.js +354 -0
- package/dist/cli/map-VU5M72TK.js +53 -0
- package/dist/cli/memory-2E27G2G5.js +1952 -0
- package/dist/cli/memory-IAEYKXG6.js +1895 -0
- package/dist/cli/migrate-agents-v2-A52QIYNJ.js +33 -0
- package/dist/cli/migrate-claude-mem-TPDW3R4Z.js +206 -0
- package/dist/cli/next-SVH4LIDY.js +57 -0
- package/dist/cli/nexus-FPQV2EAF.js +1059 -0
- package/dist/cli/nexus-XSFXN5E6.js +2924 -0
- package/dist/cli/ops-K6LHY5J6.js +52 -0
- package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
- package/dist/cli/orchestrate-HURUCQFT.js +950 -0
- package/dist/cli/otel-JCNPVJLZ.js +188 -0
- package/dist/cli/phase-VDFRASSO.js +221 -0
- package/dist/cli/pipeline-TCZPOEDR.js +697 -0
- package/dist/cli/pivot-V5MSQZ7L.js +88 -0
- package/dist/cli/plan-SQUGCKSM.js +49 -0
- package/dist/cli/playbook-L47GLDQD.js +230 -0
- package/dist/cli/playbook-NJVO4R6P.js +33 -0
- package/dist/cli/project-YZEC7GYF.js +331 -0
- package/dist/cli/promote-FINF4HVK.js +53 -0
- package/dist/cli/provenance-3TUWVBFR.js +141 -0
- package/dist/cli/provenance-YZG33JGM.js +129 -0
- package/dist/cli/provider-23JVLLG3.js +213 -0
- package/dist/cli/reason-FHN54O7O.js +138 -0
- package/dist/cli/reconcile-MOM5T4AX.js +128 -0
- package/dist/cli/refresh-memory-3OSTRAVK.js +45 -0
- package/dist/cli/relates-6FWUFUS2.js +260 -0
- package/dist/cli/release-G2DPSG5M.js +347 -0
- package/dist/cli/release-URX6JHZ2.js +525 -0
- package/dist/cli/remote-VIULU2T5.js +279 -0
- package/dist/cli/renderers-TGSW77J4.js +37 -0
- package/dist/cli/reorder-UIPN6TQY.js +87 -0
- package/dist/cli/reparent-ALOWWUIU.js +59 -0
- package/dist/cli/req-RH2Y3H7A.js +130 -0
- package/dist/cli/research-G2Y72HRC.js +366 -0
- package/dist/cli/restore-VBR5XNML.js +470 -0
- package/dist/cli/revert-32LDNSGP.js +240 -0
- package/dist/cli/roadmap-LFU3AG7D.js +62 -0
- package/dist/cli/run-HXRILSR7.js +245 -0
- package/dist/cli/safestop-Z5UC7NGQ.js +89 -0
- package/dist/cli/saga-Y6FZS6AM.js +286 -0
- package/dist/cli/schema-OOOKLWUE.js +195 -0
- package/dist/cli/self-update-26SOTJMH.js +504 -0
- package/dist/cli/selfimprove-4SMOCLUV.js +89 -0
- package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
- package/dist/cli/sentient-QPETVE53.js +254 -0
- package/dist/cli/sentient-RGMWR4XJ.js +1088 -0
- package/dist/cli/sequence-H7DSAJPF.js +94 -0
- package/dist/cli/service-EK5MGB2D.js +156 -0
- package/dist/cli/service-GLOMZWPQ.js +437 -0
- package/dist/cli/session-HYUXAQGC.js +708 -0
- package/dist/cli/session-N5ISU56W.js +568 -0
- package/dist/cli/setup-L3YYV53D.js +323 -0
- package/dist/cli/show-364V3KY2.js +123 -0
- package/dist/cli/skill-F2KR6HW5.js +84 -0
- package/dist/cli/skills-FS3DCP6E.js +929 -0
- package/dist/cli/smoke-provider-SKUFMZXU.js +218 -0
- package/dist/cli/snapshot-EGXEQ5PR.js +120 -0
- package/dist/cli/src-LYLXHXHH.js +80 -0
- package/dist/cli/start-6DXOCCKL.js +68 -0
- package/dist/cli/stats-UVUQEGYC.js +96 -0
- package/dist/cli/status-XLKYLN42.js +157 -0
- package/dist/cli/sticky-VSTQ2I2O.js +264 -0
- package/dist/cli/sticky-XZXZDCFW.js +339 -0
- package/dist/cli/stop-VNOAFWNB.js +43 -0
- package/dist/cli/sync-YYPARW3A.js +155 -0
- package/dist/cli/tasks-C24KHTFF.js +1118 -0
- package/dist/cli/tasks-LBJC7CZV.js +175 -0
- package/dist/cli/telemetry-CU7W5WAY.js +120 -0
- package/dist/cli/templates-G42JBUY4.js +609 -0
- package/dist/cli/testing-HSRITHEY.js +147 -0
- package/dist/cli/token-J74E7TSU.js +221 -0
- package/dist/cli/tools-BI74W7VE.js +652 -0
- package/dist/cli/transcript-RGK7RSGQ.js +440 -0
- package/dist/cli/tui-BPUFHYKK.js +51 -0
- package/dist/cli/update-2KQWA27S.js +478 -0
- package/dist/cli/update-check-entry.js +124 -0
- package/dist/cli/update-notice-6SQ6WPQG.js +68 -0
- package/dist/cli/upgrade-E2MJAPC7.js +136 -0
- package/dist/cli/upgrade-XRSQ4RWH.js +243 -0
- package/dist/cli/verify-WASRGDBA.js +191 -0
- package/dist/cli/web-NJ3P67EU.js +275 -0
- package/dist/cli/workgraph-OHJ2VKJD.js +232 -0
- package/dist/cli/worktree-FVQLORFY.js +371 -0
- package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{DMj27Pxj.js → AH7dIemv.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{Dc2owyvE.js → BDgH40i3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{qq3pe1aT.js → Gg4iYl59.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.CHWXLeE9.js → app.DUDNK-37.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.DNmZ0pA4.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.DmKQGvFh.js → 0.DWqP3ail.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DqJk_REO.js → 1.CZGVUP5B.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.GUy6kdW1.js → 15.DGaflZRS.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.CcnKZ8f9.js → 16.uYlarGXl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.DAlQF3lQ.js → 17.CZMR0E47.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.vQFr-vFj.js → 18.CBC-AKH_.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.GVOj5j_r.js → 20.BGi43MvQ.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.2-wC6DOh.js → 24.Dv8ftCyR.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/25.DQPVlTDQ.js +39 -0
- package/studio-dist/client/_app/immutable/nodes/{26.C3rNqzZF.js → 26.Cl800304.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.b-7pzc3M.js → 3.D_fQKj9f.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BaCce-O1.js → 0-BpOagOst.js} +3 -3
- package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
- package/studio-dist/server/chunks/{15-DRMOSIC9.js → 15-BcjHz7Tv.js} +3 -3
- package/studio-dist/server/chunks/{16-BulXhoZZ.js → 16-CXm8TUk7.js} +3 -3
- package/studio-dist/server/chunks/{17-DUEOCM0H.js → 17-mSgUK-cp.js} +3 -3
- package/studio-dist/server/chunks/{18-DP7Q8zPs.js → 18-BtfnIw1d.js} +3 -3
- package/studio-dist/server/chunks/{20-9ta6MI7q.js → 20-By1e4QDS.js} +3 -3
- package/studio-dist/server/chunks/{24-DysdL1ab.js → 24-0i2YLVxG.js} +3 -3
- package/studio-dist/server/chunks/{dist-CdoCt9zT.js → 25-DPsrqbrh.js} +797 -10736
- package/studio-dist/server/chunks/{26-Df4YXgg0.js → 26-P0XkOibm.js} +3 -3
- package/studio-dist/server/chunks/{3-BEhOhYpL.js → 3-WudjUK7e.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-CnLcXYG-.js → _layout.svelte-D9m81Rle.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DGhXqeRc.js → _page.svelte-2PDLOF83.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Dv8tmDEC.js → _page.svelte-BjE3jm2K.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C0qgUvzA.js → _page.svelte-Clc0vmiZ.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-ui7LnWkL.js → _page.svelte-DABdRT3h.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-HUqTICJR.js → _page.svelte-DG3PjiHj.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DzcZljiy.js → _page.svelte-Edy9CaE8.js} +20 -7
- package/studio-dist/server/chunks/{_page.svelte-DOl0DGOO.js → _page.svelte-Hrf3-ZR8.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Da4q5l93.js → _page.svelte-VB4O4Nl5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CbyEPj2j.js → _page.svelte-d3jEgjsI.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-P4wVVksg.js → _server.ts-BcRFsyo3.js} +4 -5
- package/studio-dist/server/chunks/{_server.ts-Cr57EKWf.js → _server.ts-CEWpIFrj.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-CnKVmf_s.js → _server.ts-CLVdVIF9.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-C0evMKCk.js → _server.ts-D_j7aSy5.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-2BazvYRP.js → _server.ts-QEZF8h2q.js} +4 -5
- package/studio-dist/server/chunks/{client-CPM4LrO2.js → client-Kp1dP1od.js} +2 -2
- package/studio-dist/server/chunks/{error.svelte-ShcZo43D.js → error.svelte-WOCioJVX.js} +3 -3
- package/studio-dist/server/chunks/{hooks.server-D2qbf3Zp.js → hooks.server-DH9zkIrJ.js} +3 -1
- package/studio-dist/server/chunks/{http-BiQjEmVU.js → http-DT5kxaWk.js} +5 -4
- package/studio-dist/server/chunks/{internal-Cgsrya1j.js → internal-z0vqd5_u.js} +3 -3
- package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
- package/studio-dist/server/chunks/{stores-BGrpEDMK.js → stores-s2kaL315.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/client/_app/immutable/nodes/25.D1vYaH8g.js +0 -39
- package/studio-dist/server/chunks/1-CVo7Nk6d.js +0 -9
- package/studio-dist/server/chunks/25-CYsps38R.js +0 -366
|
@@ -0,0 +1,697 @@
|
|
|
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
|
+
defineTypedHandler,
|
|
18
|
+
lafsError,
|
|
19
|
+
lafsSuccess,
|
|
20
|
+
typedDispatch,
|
|
21
|
+
wrapCoreResult
|
|
22
|
+
} from "./chunk-QWNKLLLG.js";
|
|
23
|
+
import {
|
|
24
|
+
lazyOperation
|
|
25
|
+
} from "./chunk-TYC7G5LF.js";
|
|
26
|
+
import {
|
|
27
|
+
dispatchMeta,
|
|
28
|
+
envelopeToEngineResult,
|
|
29
|
+
errorResult,
|
|
30
|
+
getListParams,
|
|
31
|
+
handleErrorResult,
|
|
32
|
+
wrapResult
|
|
33
|
+
} from "./chunk-XHRZ7OYZ.js";
|
|
34
|
+
|
|
35
|
+
// packages/cleo/src/dispatch/domains/pipeline.ts
|
|
36
|
+
import { execFileSync } from "node:child_process";
|
|
37
|
+
import { buildStageGuidance, formatStageGuidance } from "@cleocode/core/lifecycle/stage-guidance";
|
|
38
|
+
import { isValidStage } from "@cleocode/core/lifecycle/stages";
|
|
39
|
+
import { getLogger } from "@cleocode/core/logger";
|
|
40
|
+
import { pipelineManifestList } from "@cleocode/core/memory/pipeline-manifest-sqlite";
|
|
41
|
+
import { paginate } from "@cleocode/core/pagination";
|
|
42
|
+
import { getProjectRoot } from "@cleocode/core/project-scope";
|
|
43
|
+
import {
|
|
44
|
+
channelToDistTag,
|
|
45
|
+
describeChannel,
|
|
46
|
+
resolveChannelFromBranch
|
|
47
|
+
} from "@cleocode/core/release/channel";
|
|
48
|
+
var lifecycleCheck = lazyOperation(
|
|
49
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleCheck
|
|
50
|
+
);
|
|
51
|
+
var lifecycleGateFail = lazyOperation(
|
|
52
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleGateFail
|
|
53
|
+
);
|
|
54
|
+
var lifecycleGatePass = lazyOperation(
|
|
55
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleGatePass
|
|
56
|
+
);
|
|
57
|
+
var lifecycleHistory = lazyOperation(
|
|
58
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleHistory
|
|
59
|
+
);
|
|
60
|
+
var lifecycleProgress = lazyOperation(
|
|
61
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleProgress
|
|
62
|
+
);
|
|
63
|
+
var lifecycleReset = lazyOperation(
|
|
64
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleReset
|
|
65
|
+
);
|
|
66
|
+
var lifecycleSkip = lazyOperation(
|
|
67
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleSkip
|
|
68
|
+
);
|
|
69
|
+
var lifecycleStatus = lazyOperation(
|
|
70
|
+
async () => (await import("@cleocode/core/lifecycle/engine-ops")).lifecycleStatus
|
|
71
|
+
);
|
|
72
|
+
var phaseAdvance = lazyOperation(
|
|
73
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseAdvance
|
|
74
|
+
);
|
|
75
|
+
var phaseComplete = lazyOperation(
|
|
76
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseComplete
|
|
77
|
+
);
|
|
78
|
+
var phaseDelete = lazyOperation(
|
|
79
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseDelete
|
|
80
|
+
);
|
|
81
|
+
var phaseList = lazyOperation(
|
|
82
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseList
|
|
83
|
+
);
|
|
84
|
+
var phaseRename = lazyOperation(
|
|
85
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseRename
|
|
86
|
+
);
|
|
87
|
+
var phaseSet = lazyOperation(
|
|
88
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseSet
|
|
89
|
+
);
|
|
90
|
+
var phaseShow = lazyOperation(
|
|
91
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseShow
|
|
92
|
+
);
|
|
93
|
+
var phaseStart = lazyOperation(
|
|
94
|
+
async () => (await import("@cleocode/core/pipeline/engine-ops")).phaseStart
|
|
95
|
+
);
|
|
96
|
+
var pipelineManifestAppend = lazyOperation(
|
|
97
|
+
async () => (await import("@cleocode/core/memory/pipeline-manifest-sqlite")).pipelineManifestAppend
|
|
98
|
+
);
|
|
99
|
+
var pipelineManifestArchive = lazyOperation(
|
|
100
|
+
async () => (await import("@cleocode/core/memory/pipeline-manifest-sqlite")).pipelineManifestArchive
|
|
101
|
+
);
|
|
102
|
+
var pipelineManifestFind = lazyOperation(
|
|
103
|
+
async () => (await import("@cleocode/core/memory/pipeline-manifest-sqlite")).pipelineManifestFind
|
|
104
|
+
);
|
|
105
|
+
var pipelineManifestShow = lazyOperation(
|
|
106
|
+
async () => (await import("@cleocode/core/memory/pipeline-manifest-sqlite")).pipelineManifestShow
|
|
107
|
+
);
|
|
108
|
+
var pipelineManifestStats = lazyOperation(
|
|
109
|
+
async () => (await import("@cleocode/core/memory/pipeline-manifest-sqlite")).pipelineManifestStats
|
|
110
|
+
);
|
|
111
|
+
var releaseCancel = lazyOperation(
|
|
112
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releaseCancel
|
|
113
|
+
);
|
|
114
|
+
var releaseList = lazyOperation(
|
|
115
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releaseList
|
|
116
|
+
);
|
|
117
|
+
var releasePrStatus = lazyOperation(
|
|
118
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releasePrStatus
|
|
119
|
+
);
|
|
120
|
+
var releaseRollback = lazyOperation(
|
|
121
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releaseRollback
|
|
122
|
+
);
|
|
123
|
+
var releaseRollbackFull = lazyOperation(
|
|
124
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releaseRollbackFull
|
|
125
|
+
);
|
|
126
|
+
var releaseShow = lazyOperation(
|
|
127
|
+
async () => (await import("@cleocode/core/release/engine-ops")).releaseShow
|
|
128
|
+
);
|
|
129
|
+
async function stageValidateOp(params) {
|
|
130
|
+
return lifecycleCheck(params.epicId, params.targetStage, getProjectRoot());
|
|
131
|
+
}
|
|
132
|
+
async function stageStatusOp(params) {
|
|
133
|
+
return lifecycleStatus(params.epicId, getProjectRoot());
|
|
134
|
+
}
|
|
135
|
+
async function stageHistoryOp(params) {
|
|
136
|
+
return lifecycleHistory(params.taskId, getProjectRoot());
|
|
137
|
+
}
|
|
138
|
+
async function stageGuidanceOp(params) {
|
|
139
|
+
let stage = params.stage;
|
|
140
|
+
const epicId = params.epicId;
|
|
141
|
+
const format = params.format ?? "markdown";
|
|
142
|
+
const projectRoot = getProjectRoot();
|
|
143
|
+
if (!stage && epicId) {
|
|
144
|
+
const statusResult = await lifecycleStatus(epicId, projectRoot);
|
|
145
|
+
if (statusResult.success) {
|
|
146
|
+
const data = statusResult.data;
|
|
147
|
+
stage = data?.currentStage ?? data?.activeStage;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return { _stage: stage, _format: format, _projectRoot: projectRoot };
|
|
151
|
+
}
|
|
152
|
+
async function stageRecordOp(params) {
|
|
153
|
+
return lifecycleProgress(
|
|
154
|
+
params.taskId,
|
|
155
|
+
params.stage,
|
|
156
|
+
params.status,
|
|
157
|
+
params.notes,
|
|
158
|
+
getProjectRoot()
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
async function stageSkipOp(params) {
|
|
162
|
+
return lifecycleSkip(params.taskId, params.stage, params.reason, getProjectRoot());
|
|
163
|
+
}
|
|
164
|
+
async function stageResetOp(params) {
|
|
165
|
+
return lifecycleReset(params.taskId, params.stage, params.reason, getProjectRoot());
|
|
166
|
+
}
|
|
167
|
+
async function stageGatePassOp(params) {
|
|
168
|
+
return lifecycleGatePass(
|
|
169
|
+
params.taskId,
|
|
170
|
+
params.gateName,
|
|
171
|
+
params.agent,
|
|
172
|
+
params.notes,
|
|
173
|
+
getProjectRoot()
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
async function stageGateFailOp(params) {
|
|
177
|
+
return lifecycleGateFail(params.taskId, params.gateName, params.reason, getProjectRoot());
|
|
178
|
+
}
|
|
179
|
+
async function releaseListOp(params) {
|
|
180
|
+
return releaseList(
|
|
181
|
+
{ status: params.status, limit: params.limit, offset: params.offset },
|
|
182
|
+
getProjectRoot()
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
async function releaseShowOp(params) {
|
|
186
|
+
return releaseShow(params.version, getProjectRoot());
|
|
187
|
+
}
|
|
188
|
+
async function releaseChannelShowOp(_params) {
|
|
189
|
+
let currentBranch = "unknown";
|
|
190
|
+
const projectRoot = getProjectRoot();
|
|
191
|
+
try {
|
|
192
|
+
currentBranch = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
|
|
193
|
+
encoding: "utf-8",
|
|
194
|
+
stdio: "pipe",
|
|
195
|
+
cwd: projectRoot
|
|
196
|
+
}).trim();
|
|
197
|
+
} catch {
|
|
198
|
+
}
|
|
199
|
+
const resolvedChannel = resolveChannelFromBranch(currentBranch);
|
|
200
|
+
const distTag = channelToDistTag(resolvedChannel);
|
|
201
|
+
const description = describeChannel(resolvedChannel);
|
|
202
|
+
return {
|
|
203
|
+
success: true,
|
|
204
|
+
data: { branch: currentBranch, channel: resolvedChannel, distTag, description }
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
async function releasePrStatusOp(params) {
|
|
208
|
+
return releasePrStatus(params.version, getProjectRoot());
|
|
209
|
+
}
|
|
210
|
+
async function releaseCancelOp(params) {
|
|
211
|
+
return releaseCancel(params.version, getProjectRoot());
|
|
212
|
+
}
|
|
213
|
+
async function releaseRollbackOp(params) {
|
|
214
|
+
return releaseRollback(params.version, params.reason, getProjectRoot());
|
|
215
|
+
}
|
|
216
|
+
async function releaseRollbackFullOp(params) {
|
|
217
|
+
return releaseRollbackFull(
|
|
218
|
+
params.version,
|
|
219
|
+
{ reason: params.reason, force: params.force, unpublish: params.unpublish },
|
|
220
|
+
getProjectRoot()
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
async function manifestShowOp(params) {
|
|
224
|
+
return pipelineManifestShow(params.entryId, getProjectRoot());
|
|
225
|
+
}
|
|
226
|
+
async function manifestListOp(params) {
|
|
227
|
+
return pipelineManifestList(params, getProjectRoot());
|
|
228
|
+
}
|
|
229
|
+
async function manifestFindOp(params) {
|
|
230
|
+
return pipelineManifestFind(
|
|
231
|
+
params.query,
|
|
232
|
+
{ confidence: params.confidence, limit: params.limit },
|
|
233
|
+
getProjectRoot()
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
async function manifestStatsOp(params) {
|
|
237
|
+
return pipelineManifestStats(params.epicId, getProjectRoot());
|
|
238
|
+
}
|
|
239
|
+
async function manifestAppendOp(params) {
|
|
240
|
+
return pipelineManifestAppend(params.entry, getProjectRoot(), { requireExistingTasks: true });
|
|
241
|
+
}
|
|
242
|
+
async function manifestArchiveOp(params) {
|
|
243
|
+
return pipelineManifestArchive(params.beforeDate, getProjectRoot());
|
|
244
|
+
}
|
|
245
|
+
async function phaseShowOp(params) {
|
|
246
|
+
return phaseShow(params.phaseId, getProjectRoot());
|
|
247
|
+
}
|
|
248
|
+
async function phaseListOp(_params) {
|
|
249
|
+
return phaseList(getProjectRoot());
|
|
250
|
+
}
|
|
251
|
+
async function phaseSetOp(params) {
|
|
252
|
+
const { phaseId, action, rollback, force, dryRun } = params;
|
|
253
|
+
const projectRoot = getProjectRoot();
|
|
254
|
+
if (action === "start") {
|
|
255
|
+
return phaseStart(phaseId, projectRoot);
|
|
256
|
+
}
|
|
257
|
+
if (action === "complete") {
|
|
258
|
+
return phaseComplete(phaseId, projectRoot);
|
|
259
|
+
}
|
|
260
|
+
return phaseSet({ phaseId, rollback, force, dryRun }, projectRoot);
|
|
261
|
+
}
|
|
262
|
+
async function phaseAdvanceOp(params) {
|
|
263
|
+
return phaseAdvance(params.force, getProjectRoot());
|
|
264
|
+
}
|
|
265
|
+
async function phaseRenameOp(params) {
|
|
266
|
+
return phaseRename(params.oldName, params.newName, getProjectRoot());
|
|
267
|
+
}
|
|
268
|
+
async function phaseDeleteOp(params) {
|
|
269
|
+
return phaseDelete(
|
|
270
|
+
params.phaseId,
|
|
271
|
+
{ reassignTo: params.reassignTo, force: params.force },
|
|
272
|
+
getProjectRoot()
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
var coreOps = {
|
|
276
|
+
"stage.validate": stageValidateOp,
|
|
277
|
+
"stage.status": stageStatusOp,
|
|
278
|
+
"stage.history": stageHistoryOp,
|
|
279
|
+
"stage.guidance": stageGuidanceOp,
|
|
280
|
+
"stage.record": stageRecordOp,
|
|
281
|
+
"stage.skip": stageSkipOp,
|
|
282
|
+
"stage.reset": stageResetOp,
|
|
283
|
+
"stage.gate.pass": stageGatePassOp,
|
|
284
|
+
"stage.gate.fail": stageGateFailOp,
|
|
285
|
+
"release.list": releaseListOp,
|
|
286
|
+
"release.show": releaseShowOp,
|
|
287
|
+
"release.channel.show": releaseChannelShowOp,
|
|
288
|
+
"release.pr-status": releasePrStatusOp,
|
|
289
|
+
"release.cancel": releaseCancelOp,
|
|
290
|
+
"release.rollback": releaseRollbackOp,
|
|
291
|
+
"release.rollback.full": releaseRollbackFullOp,
|
|
292
|
+
"manifest.show": manifestShowOp,
|
|
293
|
+
"manifest.list": manifestListOp,
|
|
294
|
+
"manifest.find": manifestFindOp,
|
|
295
|
+
"manifest.stats": manifestStatsOp,
|
|
296
|
+
"manifest.append": manifestAppendOp,
|
|
297
|
+
"manifest.archive": manifestArchiveOp,
|
|
298
|
+
"phase.show": phaseShowOp,
|
|
299
|
+
"phase.list": phaseListOp,
|
|
300
|
+
"phase.set": phaseSetOp,
|
|
301
|
+
"phase.advance": phaseAdvanceOp,
|
|
302
|
+
"phase.rename": phaseRenameOp,
|
|
303
|
+
"phase.delete": phaseDeleteOp
|
|
304
|
+
};
|
|
305
|
+
var _pipelineTypedHandler = defineTypedHandler("pipeline", {
|
|
306
|
+
// -------------------------------------------------------------------------
|
|
307
|
+
// Stage queries
|
|
308
|
+
// -------------------------------------------------------------------------
|
|
309
|
+
"stage.validate": async (params) => {
|
|
310
|
+
if (!params.epicId || !params.targetStage) {
|
|
311
|
+
return lafsError("E_INVALID_INPUT", "epicId and targetStage are required", "stage.validate");
|
|
312
|
+
}
|
|
313
|
+
return wrapCoreResult(await coreOps["stage.validate"](params), "stage.validate");
|
|
314
|
+
},
|
|
315
|
+
"stage.status": async (params) => {
|
|
316
|
+
if (!params.epicId) {
|
|
317
|
+
return lafsError("E_INVALID_INPUT", "epicId is required", "stage.status");
|
|
318
|
+
}
|
|
319
|
+
return wrapCoreResult(await coreOps["stage.status"](params), "stage.status");
|
|
320
|
+
},
|
|
321
|
+
"stage.history": async (params) => {
|
|
322
|
+
if (!params.taskId) {
|
|
323
|
+
return lafsError("E_INVALID_INPUT", "taskId is required", "stage.history");
|
|
324
|
+
}
|
|
325
|
+
return wrapCoreResult(await coreOps["stage.history"](params), "stage.history");
|
|
326
|
+
},
|
|
327
|
+
// SSoT-EXEMPT: sentinel-unwrap from stageGuidanceOp + isValidStage + buildStageGuidance
|
|
328
|
+
// + formatStageGuidance — Core fn returns an intermediate sentinel shape; dispatch
|
|
329
|
+
// cannot simply delegate and wrap — ADR-058
|
|
330
|
+
"stage.guidance": async (params) => {
|
|
331
|
+
const {
|
|
332
|
+
_stage: stage,
|
|
333
|
+
_format: format,
|
|
334
|
+
_projectRoot: projectRoot
|
|
335
|
+
} = await coreOps["stage.guidance"](params);
|
|
336
|
+
if (!stage) {
|
|
337
|
+
return lafsError(
|
|
338
|
+
"E_INVALID_INPUT",
|
|
339
|
+
"Either stage or epicId (with an active pipeline stage) is required",
|
|
340
|
+
"stage.guidance"
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
if (!isValidStage(stage)) {
|
|
344
|
+
return lafsError("E_INVALID_INPUT", `Unknown stage: ${stage}`, "stage.guidance");
|
|
345
|
+
}
|
|
346
|
+
const guidance = buildStageGuidance(stage, projectRoot);
|
|
347
|
+
const data = format === "json" ? { stage: guidance.stage, guidance } : {
|
|
348
|
+
stage: guidance.stage,
|
|
349
|
+
name: guidance.name,
|
|
350
|
+
order: guidance.order,
|
|
351
|
+
primarySkill: guidance.primarySkill,
|
|
352
|
+
loadedSkills: guidance.loadedSkills,
|
|
353
|
+
requiredGates: guidance.requiredGates,
|
|
354
|
+
expectedArtifacts: guidance.expectedArtifacts,
|
|
355
|
+
source: guidance.source,
|
|
356
|
+
prompt: formatStageGuidance(guidance)
|
|
357
|
+
};
|
|
358
|
+
return lafsSuccess(data, "stage.guidance");
|
|
359
|
+
},
|
|
360
|
+
// -------------------------------------------------------------------------
|
|
361
|
+
// Stage mutations
|
|
362
|
+
// -------------------------------------------------------------------------
|
|
363
|
+
"stage.record": async (params) => {
|
|
364
|
+
if (!params.taskId || !params.stage || !params.status) {
|
|
365
|
+
return lafsError("E_INVALID_INPUT", "taskId, stage, and status are required", "stage.record");
|
|
366
|
+
}
|
|
367
|
+
return wrapCoreResult(await coreOps["stage.record"](params), "stage.record");
|
|
368
|
+
},
|
|
369
|
+
"stage.skip": async (params) => {
|
|
370
|
+
if (!params.taskId || !params.stage || !params.reason) {
|
|
371
|
+
return lafsError("E_INVALID_INPUT", "taskId, stage, and reason are required", "stage.skip");
|
|
372
|
+
}
|
|
373
|
+
return wrapCoreResult(await coreOps["stage.skip"](params), "stage.skip");
|
|
374
|
+
},
|
|
375
|
+
"stage.reset": async (params) => {
|
|
376
|
+
if (!params.taskId || !params.stage || !params.reason) {
|
|
377
|
+
return lafsError("E_INVALID_INPUT", "taskId, stage, and reason are required", "stage.reset");
|
|
378
|
+
}
|
|
379
|
+
return wrapCoreResult(await coreOps["stage.reset"](params), "stage.reset");
|
|
380
|
+
},
|
|
381
|
+
"stage.gate.pass": async (params) => {
|
|
382
|
+
if (!params.taskId || !params.gateName) {
|
|
383
|
+
return lafsError("E_INVALID_INPUT", "taskId and gateName are required", "stage.gate.pass");
|
|
384
|
+
}
|
|
385
|
+
return wrapCoreResult(await coreOps["stage.gate.pass"](params), "stage.gate.pass");
|
|
386
|
+
},
|
|
387
|
+
"stage.gate.fail": async (params) => {
|
|
388
|
+
if (!params.taskId || !params.gateName) {
|
|
389
|
+
return lafsError("E_INVALID_INPUT", "taskId and gateName are required", "stage.gate.fail");
|
|
390
|
+
}
|
|
391
|
+
return wrapCoreResult(await coreOps["stage.gate.fail"](params), "stage.gate.fail");
|
|
392
|
+
},
|
|
393
|
+
// -------------------------------------------------------------------------
|
|
394
|
+
// Release queries
|
|
395
|
+
// -------------------------------------------------------------------------
|
|
396
|
+
"release.list": async (params) => {
|
|
397
|
+
const result = await coreOps["release.list"](params);
|
|
398
|
+
if (!result.success) {
|
|
399
|
+
return lafsError(
|
|
400
|
+
String(result.error?.code ?? "E_INTERNAL"),
|
|
401
|
+
result.error?.message ?? "Unknown error",
|
|
402
|
+
"release.list"
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
return lafsSuccess(
|
|
406
|
+
{ ...result.data, _enginePage: result.page },
|
|
407
|
+
"release.list"
|
|
408
|
+
);
|
|
409
|
+
},
|
|
410
|
+
"release.show": async (params) => {
|
|
411
|
+
if (!params.version) {
|
|
412
|
+
return lafsError("E_INVALID_INPUT", "version is required", "release.show");
|
|
413
|
+
}
|
|
414
|
+
return wrapCoreResult(await coreOps["release.show"](params), "release.show");
|
|
415
|
+
},
|
|
416
|
+
// Always succeeds (git branch detection falls back to 'unknown') — no error path.
|
|
417
|
+
"release.channel.show": async (_params) => lafsSuccess((await coreOps["release.channel.show"](_params)).data, "release.channel.show"),
|
|
418
|
+
// -------------------------------------------------------------------------
|
|
419
|
+
// Release mutations
|
|
420
|
+
//
|
|
421
|
+
// T9540 removed `release.ship` from the pipeline domain — the
|
|
422
|
+
// `cleo release ship` CLI alias now forwards to `release.plan` +
|
|
423
|
+
// `release.open` (handled by the release domain), not the deleted
|
|
424
|
+
// `releaseShip` monolith.
|
|
425
|
+
// -------------------------------------------------------------------------
|
|
426
|
+
// release.pr-status — T9095 query: poll CI checks for an in-progress release PR
|
|
427
|
+
"release.pr-status": async (params) => {
|
|
428
|
+
if (!params.version) {
|
|
429
|
+
return lafsError("E_INVALID_INPUT", "version is required", "release.pr-status");
|
|
430
|
+
}
|
|
431
|
+
return wrapCoreResult(await coreOps["release.pr-status"](params), "release.pr-status");
|
|
432
|
+
},
|
|
433
|
+
"release.cancel": async (params) => {
|
|
434
|
+
if (!params.version) {
|
|
435
|
+
return lafsError("E_INVALID_INPUT", "version is required", "release.cancel");
|
|
436
|
+
}
|
|
437
|
+
return wrapCoreResult(await coreOps["release.cancel"](params), "release.cancel");
|
|
438
|
+
},
|
|
439
|
+
"release.rollback": async (params) => {
|
|
440
|
+
if (!params.version) {
|
|
441
|
+
return lafsError("E_INVALID_INPUT", "version is required", "release.rollback");
|
|
442
|
+
}
|
|
443
|
+
return wrapCoreResult(await coreOps["release.rollback"](params), "release.rollback");
|
|
444
|
+
},
|
|
445
|
+
"release.rollback.full": async (params) => {
|
|
446
|
+
if (!params.version) {
|
|
447
|
+
return lafsError("E_INVALID_INPUT", "version is required", "release.rollback.full");
|
|
448
|
+
}
|
|
449
|
+
return wrapCoreResult(await coreOps["release.rollback.full"](params), "release.rollback.full");
|
|
450
|
+
},
|
|
451
|
+
// -------------------------------------------------------------------------
|
|
452
|
+
// Manifest queries
|
|
453
|
+
// -------------------------------------------------------------------------
|
|
454
|
+
"manifest.show": async (params) => {
|
|
455
|
+
if (!params.entryId) {
|
|
456
|
+
return lafsError("E_INVALID_INPUT", "entryId is required", "manifest.show");
|
|
457
|
+
}
|
|
458
|
+
return wrapCoreResult(await coreOps["manifest.show"](params), "manifest.show");
|
|
459
|
+
},
|
|
460
|
+
"manifest.list": async (params) => {
|
|
461
|
+
const result = await coreOps["manifest.list"](params);
|
|
462
|
+
if (!result.success) {
|
|
463
|
+
return wrapCoreResult(result, "manifest.list");
|
|
464
|
+
}
|
|
465
|
+
return lafsSuccess(
|
|
466
|
+
{ ...result.data, _enginePage: result.page },
|
|
467
|
+
"manifest.list"
|
|
468
|
+
);
|
|
469
|
+
},
|
|
470
|
+
"manifest.find": async (params) => {
|
|
471
|
+
if (!params.query) {
|
|
472
|
+
return lafsError("E_INVALID_INPUT", "query is required", "manifest.find");
|
|
473
|
+
}
|
|
474
|
+
return wrapCoreResult(await coreOps["manifest.find"](params), "manifest.find");
|
|
475
|
+
},
|
|
476
|
+
"manifest.stats": async (params) => wrapCoreResult(await coreOps["manifest.stats"](params), "manifest.stats"),
|
|
477
|
+
// -------------------------------------------------------------------------
|
|
478
|
+
// Manifest mutations
|
|
479
|
+
// -------------------------------------------------------------------------
|
|
480
|
+
"manifest.append": async (params) => {
|
|
481
|
+
if (!params.entry) {
|
|
482
|
+
return lafsError("E_INVALID_INPUT", "entry is required", "manifest.append");
|
|
483
|
+
}
|
|
484
|
+
return wrapCoreResult(await coreOps["manifest.append"](params), "manifest.append");
|
|
485
|
+
},
|
|
486
|
+
"manifest.archive": async (params) => {
|
|
487
|
+
if (!params.beforeDate) {
|
|
488
|
+
return lafsError(
|
|
489
|
+
"E_INVALID_INPUT",
|
|
490
|
+
"beforeDate is required (ISO-8601: YYYY-MM-DD)",
|
|
491
|
+
"manifest.archive"
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
return wrapCoreResult(await coreOps["manifest.archive"](params), "manifest.archive");
|
|
495
|
+
},
|
|
496
|
+
// -------------------------------------------------------------------------
|
|
497
|
+
// Phase queries
|
|
498
|
+
// -------------------------------------------------------------------------
|
|
499
|
+
"phase.show": async (params) => wrapCoreResult(await coreOps["phase.show"](params), "phase.show"),
|
|
500
|
+
// Pagination is applied in PipelineHandler.query() for phase.list.
|
|
501
|
+
"phase.list": async (_params) => wrapCoreResult(await coreOps["phase.list"](_params), "phase.list"),
|
|
502
|
+
// -------------------------------------------------------------------------
|
|
503
|
+
// Phase mutations
|
|
504
|
+
// -------------------------------------------------------------------------
|
|
505
|
+
"phase.set": async (params) => {
|
|
506
|
+
if (!params.phaseId) {
|
|
507
|
+
return lafsError("E_INVALID_INPUT", "phaseId is required", "phase.set");
|
|
508
|
+
}
|
|
509
|
+
return wrapCoreResult(await coreOps["phase.set"](params), "phase.set");
|
|
510
|
+
},
|
|
511
|
+
"phase.advance": async (params) => wrapCoreResult(await coreOps["phase.advance"](params), "phase.advance"),
|
|
512
|
+
"phase.rename": async (params) => {
|
|
513
|
+
if (!params.oldName || !params.newName) {
|
|
514
|
+
return lafsError("E_INVALID_INPUT", "oldName and newName are required", "phase.rename");
|
|
515
|
+
}
|
|
516
|
+
return wrapCoreResult(await coreOps["phase.rename"](params), "phase.rename");
|
|
517
|
+
},
|
|
518
|
+
"phase.delete": async (params) => {
|
|
519
|
+
if (!params.phaseId) {
|
|
520
|
+
return lafsError("E_INVALID_INPUT", "phaseId is required", "phase.delete");
|
|
521
|
+
}
|
|
522
|
+
return wrapCoreResult(await coreOps["phase.delete"](params), "phase.delete");
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
function pipelinePhaseListResponse(envelope, params, operation, startTime) {
|
|
526
|
+
const listData = envelope.data ?? {};
|
|
527
|
+
const phases = listData?.phases ?? [];
|
|
528
|
+
const total = listData?.summary?.total ?? phases.length;
|
|
529
|
+
const { limit, offset } = getListParams(params);
|
|
530
|
+
const page = paginate(phases, limit, offset);
|
|
531
|
+
return {
|
|
532
|
+
meta: dispatchMeta("query", "pipeline", operation, startTime),
|
|
533
|
+
success: true,
|
|
534
|
+
data: { ...listData, phases: page.items, total, filtered: total },
|
|
535
|
+
page: page.page
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
function pipelineEnvelopeResponse(envelope, operation, startTime) {
|
|
539
|
+
const envelopeData = envelope.data;
|
|
540
|
+
const enginePage = envelopeData?._enginePage;
|
|
541
|
+
const responseData = envelopeData?._enginePage !== void 0 ? (({ _enginePage: _p, ...rest }) => rest)(
|
|
542
|
+
envelopeData
|
|
543
|
+
) : envelopeData;
|
|
544
|
+
return {
|
|
545
|
+
meta: dispatchMeta("query", "pipeline", operation, startTime),
|
|
546
|
+
success: true,
|
|
547
|
+
data: responseData,
|
|
548
|
+
...enginePage ? { page: enginePage } : {}
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
var PipelineHandler = class {
|
|
552
|
+
// -----------------------------------------------------------------------
|
|
553
|
+
// DomainHandler interface
|
|
554
|
+
// -----------------------------------------------------------------------
|
|
555
|
+
async query(operation, params) {
|
|
556
|
+
const startTime = Date.now();
|
|
557
|
+
const queryOps = /* @__PURE__ */ new Set([
|
|
558
|
+
"stage.validate",
|
|
559
|
+
"stage.status",
|
|
560
|
+
"stage.history",
|
|
561
|
+
"stage.guidance",
|
|
562
|
+
"manifest.show",
|
|
563
|
+
"manifest.list",
|
|
564
|
+
"manifest.find",
|
|
565
|
+
"manifest.stats",
|
|
566
|
+
"release.list",
|
|
567
|
+
"release.show",
|
|
568
|
+
"release.channel.show",
|
|
569
|
+
"release.pr-status",
|
|
570
|
+
"phase.show",
|
|
571
|
+
"phase.list"
|
|
572
|
+
]);
|
|
573
|
+
if (!queryOps.has(operation)) {
|
|
574
|
+
return errorResult(
|
|
575
|
+
"query",
|
|
576
|
+
"pipeline",
|
|
577
|
+
operation,
|
|
578
|
+
"E_INVALID_OPERATION",
|
|
579
|
+
`Unknown pipeline query: ${operation}`,
|
|
580
|
+
startTime
|
|
581
|
+
);
|
|
582
|
+
}
|
|
583
|
+
try {
|
|
584
|
+
const envelope = await typedDispatch(
|
|
585
|
+
_pipelineTypedHandler,
|
|
586
|
+
operation,
|
|
587
|
+
params ?? {}
|
|
588
|
+
);
|
|
589
|
+
if (!envelope.success) {
|
|
590
|
+
return wrapResult(
|
|
591
|
+
envelopeToEngineResult(envelope),
|
|
592
|
+
"query",
|
|
593
|
+
"pipeline",
|
|
594
|
+
operation,
|
|
595
|
+
startTime
|
|
596
|
+
);
|
|
597
|
+
}
|
|
598
|
+
if (operation === "phase.list")
|
|
599
|
+
return pipelinePhaseListResponse(envelope, params, operation, startTime);
|
|
600
|
+
return pipelineEnvelopeResponse(envelope, operation, startTime);
|
|
601
|
+
} catch (error) {
|
|
602
|
+
getLogger("domain:pipeline").error(
|
|
603
|
+
{ gateway: "query", domain: "pipeline", operation, err: error },
|
|
604
|
+
error instanceof Error ? error.message : String(error)
|
|
605
|
+
);
|
|
606
|
+
return handleErrorResult("query", "pipeline", operation, error, startTime);
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
async mutate(operation, params) {
|
|
610
|
+
const startTime = Date.now();
|
|
611
|
+
const mutateOps = /* @__PURE__ */ new Set([
|
|
612
|
+
"stage.record",
|
|
613
|
+
"stage.skip",
|
|
614
|
+
"stage.reset",
|
|
615
|
+
"stage.gate.pass",
|
|
616
|
+
"stage.gate.fail",
|
|
617
|
+
"release.cancel",
|
|
618
|
+
"release.rollback",
|
|
619
|
+
"release.rollback.full",
|
|
620
|
+
"manifest.append",
|
|
621
|
+
"manifest.archive",
|
|
622
|
+
"phase.set",
|
|
623
|
+
"phase.advance",
|
|
624
|
+
"phase.rename",
|
|
625
|
+
"phase.delete"
|
|
626
|
+
]);
|
|
627
|
+
if (!mutateOps.has(operation)) {
|
|
628
|
+
return errorResult(
|
|
629
|
+
"mutate",
|
|
630
|
+
"pipeline",
|
|
631
|
+
operation,
|
|
632
|
+
"E_INVALID_OPERATION",
|
|
633
|
+
`Unknown pipeline mutation: ${operation}`,
|
|
634
|
+
startTime
|
|
635
|
+
);
|
|
636
|
+
}
|
|
637
|
+
try {
|
|
638
|
+
const envelope = await typedDispatch(
|
|
639
|
+
_pipelineTypedHandler,
|
|
640
|
+
operation,
|
|
641
|
+
params ?? {}
|
|
642
|
+
);
|
|
643
|
+
return wrapResult(
|
|
644
|
+
envelopeToEngineResult(envelope),
|
|
645
|
+
"mutate",
|
|
646
|
+
"pipeline",
|
|
647
|
+
operation,
|
|
648
|
+
startTime
|
|
649
|
+
);
|
|
650
|
+
} catch (error) {
|
|
651
|
+
getLogger("domain:pipeline").error(
|
|
652
|
+
{ gateway: "mutate", domain: "pipeline", operation, err: error },
|
|
653
|
+
error instanceof Error ? error.message : String(error)
|
|
654
|
+
);
|
|
655
|
+
return handleErrorResult("mutate", "pipeline", operation, error, startTime);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
getSupportedOperations() {
|
|
659
|
+
return {
|
|
660
|
+
query: [
|
|
661
|
+
"stage.validate",
|
|
662
|
+
"stage.status",
|
|
663
|
+
"stage.history",
|
|
664
|
+
"stage.guidance",
|
|
665
|
+
"manifest.show",
|
|
666
|
+
"manifest.list",
|
|
667
|
+
"manifest.find",
|
|
668
|
+
"manifest.stats",
|
|
669
|
+
"release.list",
|
|
670
|
+
"release.show",
|
|
671
|
+
"release.channel.show",
|
|
672
|
+
"phase.show",
|
|
673
|
+
"phase.list"
|
|
674
|
+
],
|
|
675
|
+
mutate: [
|
|
676
|
+
"stage.record",
|
|
677
|
+
"stage.skip",
|
|
678
|
+
"stage.reset",
|
|
679
|
+
"stage.gate.pass",
|
|
680
|
+
"stage.gate.fail",
|
|
681
|
+
"release.cancel",
|
|
682
|
+
"release.rollback",
|
|
683
|
+
"release.rollback.full",
|
|
684
|
+
"manifest.append",
|
|
685
|
+
"manifest.archive",
|
|
686
|
+
"phase.set",
|
|
687
|
+
"phase.advance",
|
|
688
|
+
"phase.rename",
|
|
689
|
+
"phase.delete"
|
|
690
|
+
]
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
};
|
|
694
|
+
export {
|
|
695
|
+
PipelineHandler
|
|
696
|
+
};
|
|
697
|
+
//# sourceMappingURL=pipeline-TCZPOEDR.js.map
|