@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,331 @@
|
|
|
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
|
+
NEXUS_API_URL_ARG,
|
|
18
|
+
emitNexusResult,
|
|
19
|
+
failNexus,
|
|
20
|
+
nexusApiUrlArg,
|
|
21
|
+
writeNexusWarnings
|
|
22
|
+
} from "./chunk-GRU74UE4.js";
|
|
23
|
+
import "./chunk-47JYZAMS.js";
|
|
24
|
+
import {
|
|
25
|
+
defineCommand
|
|
26
|
+
} from "./chunk-PKKZPOOP.js";
|
|
27
|
+
import {
|
|
28
|
+
cliError,
|
|
29
|
+
cliOutput
|
|
30
|
+
} from "./chunk-4RGSNUUP.js";
|
|
31
|
+
import {
|
|
32
|
+
getFormatContext
|
|
33
|
+
} from "./chunk-6JSJNYH2.js";
|
|
34
|
+
|
|
35
|
+
// packages/cleo/src/cli/commands/project.ts
|
|
36
|
+
import { resolve } from "node:path";
|
|
37
|
+
import { ExitCode } from "@cleocode/contracts/exit-codes.js";
|
|
38
|
+
import {
|
|
39
|
+
CleoError,
|
|
40
|
+
getProjectRoot,
|
|
41
|
+
moveProject,
|
|
42
|
+
projectLifecycle,
|
|
43
|
+
renameProject,
|
|
44
|
+
rerootProject
|
|
45
|
+
} from "@cleocode/core";
|
|
46
|
+
function formatSuccessSection(header, icon, items) {
|
|
47
|
+
const prefix = icon ? `${icon} ` : "";
|
|
48
|
+
return { kind: "section", data: { header: `${prefix}${header}`, items } };
|
|
49
|
+
}
|
|
50
|
+
function emitEngineFailure(error, operation) {
|
|
51
|
+
const exitCode = error.exitCode ?? ExitCode.GENERAL_ERROR;
|
|
52
|
+
cliError(
|
|
53
|
+
error.message,
|
|
54
|
+
exitCode,
|
|
55
|
+
{ name: error.code, fix: error.fix, details: error.details },
|
|
56
|
+
{ operation }
|
|
57
|
+
);
|
|
58
|
+
process.exitCode = exitCode;
|
|
59
|
+
}
|
|
60
|
+
function resolveRootOrFail(operation) {
|
|
61
|
+
try {
|
|
62
|
+
return getProjectRoot();
|
|
63
|
+
} catch (err) {
|
|
64
|
+
const code = err instanceof CleoError && typeof err.details?.["code"] === "string" ? err.details["code"] : "E_NOT_CLEO_PROJECT";
|
|
65
|
+
emitEngineFailure(
|
|
66
|
+
{
|
|
67
|
+
code,
|
|
68
|
+
message: err.message,
|
|
69
|
+
exitCode: err instanceof CleoError ? err.code : ExitCode.CONFIG_ERROR,
|
|
70
|
+
fix: err instanceof CleoError ? err.fix : void 0
|
|
71
|
+
},
|
|
72
|
+
operation
|
|
73
|
+
);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function planItems(plan) {
|
|
78
|
+
const r = plan.registry;
|
|
79
|
+
return [
|
|
80
|
+
`Source: ${plan.source}`,
|
|
81
|
+
`Target: ${plan.target}`,
|
|
82
|
+
`Rename: ${plan.entries.join(", ") || "(nothing)"}`,
|
|
83
|
+
...plan.excluded.map((e) => `Left: ${e.entry} (${e.reason})`),
|
|
84
|
+
`Writes: ${plan.writes.join(", ") || "(nothing)"}`,
|
|
85
|
+
`Registry: ${r.livePath} live; ${r.demotedPath} ${r.demotedState}`,
|
|
86
|
+
`Checkpoint: ${plan.checkpoint}`,
|
|
87
|
+
...plan.blockers.map((b) => `BLOCKER: ${b}`),
|
|
88
|
+
...plan.deferredChecks.map((c) => `Checked at apply time: ${c}`),
|
|
89
|
+
"Nothing was changed. Run without --dry-run to apply."
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
function resultItems(r) {
|
|
93
|
+
const [from, to] = "oldPath" in r ? [r.oldPath, r.newPath] : [r.oldRoot, r.newRoot];
|
|
94
|
+
return [
|
|
95
|
+
`Project ID: ${r.projectId}`,
|
|
96
|
+
`Old root: ${from}`,
|
|
97
|
+
`New root: ${to}`,
|
|
98
|
+
..."renamed" in r ? [`Renamed: ${r.renamed.join(", ") || "(resumed)"}`] : [],
|
|
99
|
+
`Checkpoint: ${r.checkpointPath || "(none: resumed)"}`,
|
|
100
|
+
`Registry: ${r.reconcileStatus}`,
|
|
101
|
+
..."notes" in r ? r.notes.map((n) => `Next: ${n}`) : []
|
|
102
|
+
];
|
|
103
|
+
}
|
|
104
|
+
function emitRelocation(data, operation) {
|
|
105
|
+
if (getFormatContext().format !== "human") {
|
|
106
|
+
cliOutput(data, { command: "project", operation });
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const verb = operation === "project.move" ? "move" : "reroot";
|
|
110
|
+
cliOutput(
|
|
111
|
+
data.dryRun ? formatSuccessSection(`Dry Run: project ${verb}`, void 0, [
|
|
112
|
+
`Project ID: ${data.projectId}`,
|
|
113
|
+
...planItems(data)
|
|
114
|
+
]) : formatSuccessSection(
|
|
115
|
+
verb === "move" ? "Project Moved" : "Project Rerooted",
|
|
116
|
+
"\u2705",
|
|
117
|
+
resultItems(data)
|
|
118
|
+
),
|
|
119
|
+
{ command: "project", operation }
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
var moveSubCommand = defineCommand({
|
|
123
|
+
meta: {
|
|
124
|
+
name: "move",
|
|
125
|
+
description: "Move this project to a new path on the same device by RENAMING its root: .git, the database and everything else move together, nothing is copied and no old copy is left. The registry is rebound to the new path. Refuses a cross-device target (use a plain `mv`, then any cleo command), a target inside the project (use `cleo project reroot`), and any move while sessions are active or worktrees exist (end them first)."
|
|
126
|
+
},
|
|
127
|
+
args: {
|
|
128
|
+
newPath: {
|
|
129
|
+
type: "positional",
|
|
130
|
+
description: "New project root: absent or an empty directory, outside this project.",
|
|
131
|
+
required: true
|
|
132
|
+
},
|
|
133
|
+
"dry-run": {
|
|
134
|
+
type: "boolean",
|
|
135
|
+
description: "Print the plan (renames, blockers, registry action) and change nothing.",
|
|
136
|
+
default: false
|
|
137
|
+
},
|
|
138
|
+
json: { type: "boolean", description: "Output raw JSON envelope.", default: false }
|
|
139
|
+
},
|
|
140
|
+
async run({ args }) {
|
|
141
|
+
const operation = "project.move";
|
|
142
|
+
const root = resolveRootOrFail(operation);
|
|
143
|
+
if (root === null) return;
|
|
144
|
+
const result = await moveProject(resolve(args["newPath"]), root, {
|
|
145
|
+
dryRun: args["dry-run"] === true
|
|
146
|
+
});
|
|
147
|
+
if (!result.success) {
|
|
148
|
+
emitEngineFailure(result.error, operation);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
emitRelocation(result.data, operation);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
var rerootSubCommand = defineCommand({
|
|
155
|
+
meta: {
|
|
156
|
+
name: "reroot",
|
|
157
|
+
description: "Make a subdirectory of this project the project root. Checkpoints, then RENAMES CLEO's own top-level entries into it (.cleo/, .worktreeinclude, and .github/ when it holds only CLEO's init templates), keeps the same project id, leaves a .cleo-moved.json tombstone at the old root and rebinds the registry. Everything else stays. Refuses while a session or worktree is active. Run `cleo project reroot .` from the child to finish an interrupted reroot."
|
|
158
|
+
},
|
|
159
|
+
args: {
|
|
160
|
+
childDir: {
|
|
161
|
+
type: "positional",
|
|
162
|
+
description: "Existing subdirectory of the current project root (`.` from the child resumes).",
|
|
163
|
+
required: true
|
|
164
|
+
},
|
|
165
|
+
"dry-run": {
|
|
166
|
+
type: "boolean",
|
|
167
|
+
description: "Print the plan and change nothing (no disk, no registry).",
|
|
168
|
+
default: false
|
|
169
|
+
},
|
|
170
|
+
json: { type: "boolean", description: "Output raw JSON envelope.", default: false }
|
|
171
|
+
},
|
|
172
|
+
async run({ args }) {
|
|
173
|
+
const operation = "project.reroot";
|
|
174
|
+
const root = resolveRootOrFail(operation);
|
|
175
|
+
if (root === null) return;
|
|
176
|
+
const result = await rerootProject(resolve(args["childDir"]), root, {
|
|
177
|
+
dryRun: args["dry-run"] === true
|
|
178
|
+
});
|
|
179
|
+
if (!result.success) {
|
|
180
|
+
emitEngineFailure(result.error, operation);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
emitRelocation(result.data, operation);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
var renameSubCommand = defineCommand({
|
|
187
|
+
meta: {
|
|
188
|
+
name: "rename",
|
|
189
|
+
description: "Rename this project: the committed .cleo/project.json name, the registry label, and a Cleo Nexus relink hint (the id never changes)."
|
|
190
|
+
},
|
|
191
|
+
args: {
|
|
192
|
+
newName: { type: "positional", description: "New project name.", required: true },
|
|
193
|
+
"dry-run": { type: "boolean", description: "Validate without applying.", default: false },
|
|
194
|
+
json: { type: "boolean", description: "Output raw JSON envelope.", default: false }
|
|
195
|
+
},
|
|
196
|
+
async run({ args }) {
|
|
197
|
+
const newName = args["newName"];
|
|
198
|
+
const dryRun = args["dry-run"] ?? false;
|
|
199
|
+
const nameRe = /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,99}$/;
|
|
200
|
+
if (!newName || !nameRe.test(newName)) {
|
|
201
|
+
emitEngineFailure(
|
|
202
|
+
{
|
|
203
|
+
code: "E_VALIDATION",
|
|
204
|
+
message: `Invalid project name: "${newName}".`,
|
|
205
|
+
exitCode: ExitCode.INVALID_INPUT,
|
|
206
|
+
fix: 'Use 1-100 characters: letters, digits, "_" or "-", starting with a letter or digit'
|
|
207
|
+
},
|
|
208
|
+
"project.rename"
|
|
209
|
+
);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (dryRun) {
|
|
213
|
+
cliOutput(
|
|
214
|
+
formatSuccessSection("Dry Run", void 0, [
|
|
215
|
+
`Would rename project to "${newName}".`,
|
|
216
|
+
"Run without --dry-run to apply."
|
|
217
|
+
]),
|
|
218
|
+
{ command: "project", operation: "project.rename" }
|
|
219
|
+
);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const result = await renameProject(newName, process.cwd());
|
|
223
|
+
if (result.success) {
|
|
224
|
+
const r = result.data;
|
|
225
|
+
cliOutput(
|
|
226
|
+
formatSuccessSection("Project Renamed", "\u2705", [
|
|
227
|
+
`Project ID: ${r.projectId}`,
|
|
228
|
+
`Old name: ${r.oldName}`,
|
|
229
|
+
`New name: ${r.newName}`,
|
|
230
|
+
`Project hash: ${r.newProjectHash}`,
|
|
231
|
+
...r.recordedIn ? [`Recorded in: .cleo/${r.recordedIn}`] : [],
|
|
232
|
+
...r.registry ? [`Registry: ${r.registry}`] : [],
|
|
233
|
+
...r.nexusLabel ? [`Nexus label: ${r.nexusLabel}`] : [],
|
|
234
|
+
...r.hint ? [`Next: ${r.hint}`] : []
|
|
235
|
+
]),
|
|
236
|
+
{ command: "project", operation: "project.rename" }
|
|
237
|
+
);
|
|
238
|
+
} else {
|
|
239
|
+
emitEngineFailure(result.error, "project.rename");
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
var reregisterSubCommand = defineCommand({
|
|
244
|
+
meta: { name: "re-register", description: "Re-register project with NEXUS." },
|
|
245
|
+
args: {
|
|
246
|
+
fix: { type: "boolean", description: "Auto-heal path_updated drift.", default: false },
|
|
247
|
+
json: { type: "boolean", description: "Output raw JSON envelope.", default: false }
|
|
248
|
+
},
|
|
249
|
+
async run() {
|
|
250
|
+
const result = await projectLifecycle.reregisterProject(process.cwd());
|
|
251
|
+
if (result.success) {
|
|
252
|
+
const r = result.data;
|
|
253
|
+
const icon = r.drifted ? "\u26A0\uFE0F" : "\u2705";
|
|
254
|
+
const items = [
|
|
255
|
+
`Project ID: ${r.projectId}`,
|
|
256
|
+
`Project root: ${r.projectRoot}`,
|
|
257
|
+
`Hash: ${r.projectHash}`,
|
|
258
|
+
`Status: ${r.reconcileStatus}`
|
|
259
|
+
];
|
|
260
|
+
if (r.drifted && r.oldPath) items.push(`Old path: ${r.oldPath}`);
|
|
261
|
+
cliOutput(
|
|
262
|
+
formatSuccessSection(
|
|
263
|
+
r.drifted ? "Project Re-registered (Drift Detected)" : "Project Re-registered",
|
|
264
|
+
icon,
|
|
265
|
+
items
|
|
266
|
+
),
|
|
267
|
+
{ command: "project", operation: "project.re-register" }
|
|
268
|
+
);
|
|
269
|
+
} else {
|
|
270
|
+
emitEngineFailure(result.error, "project.re-register");
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
var linkSubCommand = defineCommand({
|
|
275
|
+
meta: {
|
|
276
|
+
name: "link",
|
|
277
|
+
description: "Register this project with Cleo Nexus under its project id (.cleo/project-id) with its name as a plaintext label (--label overrides; never a filesystem path). Idempotent: re-linking after a rename updates the label. Requires cleo login nexus."
|
|
278
|
+
},
|
|
279
|
+
args: {
|
|
280
|
+
label: {
|
|
281
|
+
type: "string",
|
|
282
|
+
description: "Name shown in Nexus, sent in plaintext (default: the project name). A name, never a path."
|
|
283
|
+
},
|
|
284
|
+
rebind: {
|
|
285
|
+
type: "boolean",
|
|
286
|
+
description: "Use only after E_NEXUS_REPLICA_COPIED: give this copy of the project a new replica id before attaching it (this machine was re-enrolled, or the store was copied). Each run mints a new id and leaves the old one on the server as stale history."
|
|
287
|
+
},
|
|
288
|
+
"api-url": NEXUS_API_URL_ARG,
|
|
289
|
+
json: { type: "boolean", description: "Output raw JSON envelope.", default: false }
|
|
290
|
+
},
|
|
291
|
+
async run({ args }) {
|
|
292
|
+
const { linkProjectToNexus } = await import(
|
|
293
|
+
/* webpackIgnore: true */
|
|
294
|
+
"@cleocode/core/cloud/nexus-link.js"
|
|
295
|
+
);
|
|
296
|
+
let result;
|
|
297
|
+
try {
|
|
298
|
+
result = await linkProjectToNexus({
|
|
299
|
+
apiUrl: nexusApiUrlArg(args),
|
|
300
|
+
...typeof args["label"] === "string" && args["label"] ? { label: args["label"] } : {},
|
|
301
|
+
...args["rebind"] === true ? { rebind: true } : {}
|
|
302
|
+
});
|
|
303
|
+
} catch (err) {
|
|
304
|
+
failNexus(err, "project.link");
|
|
305
|
+
}
|
|
306
|
+
const { link, replica } = result;
|
|
307
|
+
const verb = result.alreadyLinked ? "Already linked" : "Linked";
|
|
308
|
+
const attached = replica ? ` This machine (device ${replica.deviceId}) holds it as replica ${replica.replicaId}${replica.reboundFrom ? ` (rebound from ${replica.reboundFrom})` : ""}${replica.presenceAt ? "; presence reported" : ""}.` : "";
|
|
309
|
+
const keyed = result.initialKeyVersion !== null ? ` Its encryption key (version ${result.initialKeyVersion}) was stored with the registration.` : "";
|
|
310
|
+
const summary = `${verb}: project ${link.localProjectId} as "${link.label ?? ""}" on ${link.apiUrl}.${attached}${keyed}`;
|
|
311
|
+
writeNexusWarnings(result.warnings);
|
|
312
|
+
emitNexusResult(result, summary, "project", "project.link");
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
var projectCommand = defineCommand({
|
|
316
|
+
meta: {
|
|
317
|
+
name: "project",
|
|
318
|
+
description: "Project lifecycle management (move, reroot, rename, re-register, link)."
|
|
319
|
+
},
|
|
320
|
+
subCommands: {
|
|
321
|
+
link: linkSubCommand,
|
|
322
|
+
move: moveSubCommand,
|
|
323
|
+
reroot: rerootSubCommand,
|
|
324
|
+
rename: renameSubCommand,
|
|
325
|
+
"re-register": reregisterSubCommand
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
export {
|
|
329
|
+
projectCommand
|
|
330
|
+
};
|
|
331
|
+
//# sourceMappingURL=project-YZEC7GYF.js.map
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
dispatchFromCli
|
|
18
|
+
} from "./chunk-L7ONYSV6.js";
|
|
19
|
+
import "./chunk-6N6WGLXE.js";
|
|
20
|
+
import "./chunk-4VASFLUW.js";
|
|
21
|
+
import {
|
|
22
|
+
defineCommand
|
|
23
|
+
} from "./chunk-PKKZPOOP.js";
|
|
24
|
+
import "./chunk-QKMBWYAS.js";
|
|
25
|
+
import "./chunk-4RGSNUUP.js";
|
|
26
|
+
import "./chunk-6JSJNYH2.js";
|
|
27
|
+
import "./chunk-D7BAQNV2.js";
|
|
28
|
+
import "./chunk-TYC7G5LF.js";
|
|
29
|
+
|
|
30
|
+
// packages/cleo/src/cli/commands/promote.ts
|
|
31
|
+
var promoteCommand = defineCommand({
|
|
32
|
+
meta: { name: "promote", description: "Remove parent from task, making it root-level" },
|
|
33
|
+
args: {
|
|
34
|
+
taskId: {
|
|
35
|
+
type: "positional",
|
|
36
|
+
description: "Task ID to promote to root level",
|
|
37
|
+
required: true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
async run({ args }) {
|
|
41
|
+
await dispatchFromCli(
|
|
42
|
+
"mutate",
|
|
43
|
+
"tasks",
|
|
44
|
+
"reparent",
|
|
45
|
+
{ taskId: args.taskId, newParentId: null },
|
|
46
|
+
{ command: "promote" }
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
promoteCommand
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=promote-FINF4HVK.js.map
|
|
@@ -0,0 +1,141 @@
|
|
|
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
|
+
errorResult,
|
|
18
|
+
handleErrorResult,
|
|
19
|
+
unsupportedOp,
|
|
20
|
+
wrapResult
|
|
21
|
+
} from "./chunk-XHRZ7OYZ.js";
|
|
22
|
+
|
|
23
|
+
// packages/cleo/src/dispatch/domains/provenance.ts
|
|
24
|
+
import {
|
|
25
|
+
getLogger,
|
|
26
|
+
getProjectRoot,
|
|
27
|
+
provenanceBackfill,
|
|
28
|
+
verifyProvenance
|
|
29
|
+
} from "@cleocode/core/internal";
|
|
30
|
+
var log = getLogger("domain:provenance");
|
|
31
|
+
var ProvenanceHandler = class {
|
|
32
|
+
// -----------------------------------------------------------------------
|
|
33
|
+
// Query
|
|
34
|
+
// -----------------------------------------------------------------------
|
|
35
|
+
/**
|
|
36
|
+
* Provenance query operations. Currently only `verify` is implemented.
|
|
37
|
+
*
|
|
38
|
+
* @param operation - The provenance query op name (`verify`).
|
|
39
|
+
* @param params - The dispatch params object: `version`, `all`, `limit`.
|
|
40
|
+
*/
|
|
41
|
+
async query(operation, params) {
|
|
42
|
+
const startTime = Date.now();
|
|
43
|
+
try {
|
|
44
|
+
switch (operation) {
|
|
45
|
+
// ------------------------------------------------------------------
|
|
46
|
+
// provenance.verify — T9529 / SPEC-T9345 §4.6
|
|
47
|
+
// ------------------------------------------------------------------
|
|
48
|
+
case "verify": {
|
|
49
|
+
const version = typeof params?.["version"] === "string" ? params["version"] : void 0;
|
|
50
|
+
const all = typeof params?.["all"] === "boolean" ? params["all"] : false;
|
|
51
|
+
const limit = typeof params?.["limit"] === "number" ? params["limit"] : void 0;
|
|
52
|
+
if (!version && !all) {
|
|
53
|
+
return errorResult(
|
|
54
|
+
"query",
|
|
55
|
+
"provenance",
|
|
56
|
+
operation,
|
|
57
|
+
"E_INVALID_INPUT",
|
|
58
|
+
"verify requires either <version> or --all",
|
|
59
|
+
startTime
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
const result = await verifyProvenance({
|
|
63
|
+
...version ? { version } : {},
|
|
64
|
+
all,
|
|
65
|
+
...limit !== void 0 ? { limit } : {},
|
|
66
|
+
projectRoot: getProjectRoot()
|
|
67
|
+
});
|
|
68
|
+
return wrapResult(result, "query", "provenance", operation, startTime);
|
|
69
|
+
}
|
|
70
|
+
default:
|
|
71
|
+
return unsupportedOp("query", "provenance", operation, startTime);
|
|
72
|
+
}
|
|
73
|
+
} catch (err) {
|
|
74
|
+
log.error({ err, operation }, "ProvenanceHandler query error");
|
|
75
|
+
return handleErrorResult("query", "provenance", operation, err, startTime);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// -----------------------------------------------------------------------
|
|
79
|
+
// Mutate
|
|
80
|
+
// -----------------------------------------------------------------------
|
|
81
|
+
/**
|
|
82
|
+
* Provenance mutate operations. Currently only `backfill` is implemented.
|
|
83
|
+
*
|
|
84
|
+
* @param operation - The provenance mutate op name (`backfill`).
|
|
85
|
+
* @param params - The dispatch params object: `since`, `forceOverwrite`,
|
|
86
|
+
* `dryRun`, `resetCheckpoint`.
|
|
87
|
+
*/
|
|
88
|
+
async mutate(operation, params) {
|
|
89
|
+
const startTime = Date.now();
|
|
90
|
+
try {
|
|
91
|
+
switch (operation) {
|
|
92
|
+
// ------------------------------------------------------------------
|
|
93
|
+
// provenance.backfill — T9528 / SPEC-T9345 §8.3
|
|
94
|
+
// ------------------------------------------------------------------
|
|
95
|
+
case "backfill": {
|
|
96
|
+
const since = typeof params?.["since"] === "string" ? params["since"] : void 0;
|
|
97
|
+
if (since === void 0) {
|
|
98
|
+
return errorResult(
|
|
99
|
+
"mutate",
|
|
100
|
+
"provenance",
|
|
101
|
+
operation,
|
|
102
|
+
"E_INVALID_INPUT",
|
|
103
|
+
'since is required (use --since "" to walk every reachable tag)',
|
|
104
|
+
startTime
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
const forceOverwrite = typeof params?.["forceOverwrite"] === "boolean" ? params["forceOverwrite"] : false;
|
|
108
|
+
const dryRun = typeof params?.["dryRun"] === "boolean" ? params["dryRun"] : false;
|
|
109
|
+
const resetCheckpoint = typeof params?.["resetCheckpoint"] === "boolean" ? params["resetCheckpoint"] : false;
|
|
110
|
+
const result = await provenanceBackfill({
|
|
111
|
+
since,
|
|
112
|
+
projectRoot: getProjectRoot(),
|
|
113
|
+
forceOverwrite,
|
|
114
|
+
dryRun,
|
|
115
|
+
resetCheckpoint
|
|
116
|
+
});
|
|
117
|
+
return wrapResult(result, "mutate", "provenance", operation, startTime);
|
|
118
|
+
}
|
|
119
|
+
default:
|
|
120
|
+
return unsupportedOp("mutate", "provenance", operation, startTime);
|
|
121
|
+
}
|
|
122
|
+
} catch (err) {
|
|
123
|
+
log.error({ err, operation }, "ProvenanceHandler mutate error");
|
|
124
|
+
return handleErrorResult("mutate", "provenance", operation, err, startTime);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// -----------------------------------------------------------------------
|
|
128
|
+
// getSupportedOperations
|
|
129
|
+
// -----------------------------------------------------------------------
|
|
130
|
+
/** Return declared operations for introspection and registry validation. */
|
|
131
|
+
getSupportedOperations() {
|
|
132
|
+
return {
|
|
133
|
+
query: ["verify"],
|
|
134
|
+
mutate: ["backfill"]
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
export {
|
|
139
|
+
ProvenanceHandler
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=provenance-3TUWVBFR.js.map
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
dispatchFromCli
|
|
18
|
+
} from "./chunk-L7ONYSV6.js";
|
|
19
|
+
import "./chunk-6N6WGLXE.js";
|
|
20
|
+
import "./chunk-4VASFLUW.js";
|
|
21
|
+
import {
|
|
22
|
+
defineCommand,
|
|
23
|
+
showUsage
|
|
24
|
+
} from "./chunk-PKKZPOOP.js";
|
|
25
|
+
import "./chunk-QKMBWYAS.js";
|
|
26
|
+
import "./chunk-4RGSNUUP.js";
|
|
27
|
+
import "./chunk-6JSJNYH2.js";
|
|
28
|
+
import "./chunk-D7BAQNV2.js";
|
|
29
|
+
import "./chunk-TYC7G5LF.js";
|
|
30
|
+
|
|
31
|
+
// packages/cleo/src/cli/commands/provenance.ts
|
|
32
|
+
var backfillCommand = defineCommand({
|
|
33
|
+
meta: {
|
|
34
|
+
name: "backfill",
|
|
35
|
+
description: "Walk historical git tags from --since and populate the 11 provenance tables"
|
|
36
|
+
},
|
|
37
|
+
args: {
|
|
38
|
+
since: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Lower-bound version (exclusive). Tags newer than this are reconciled. Empty string = all tags.",
|
|
41
|
+
required: true
|
|
42
|
+
},
|
|
43
|
+
"force-overwrite": {
|
|
44
|
+
type: "boolean",
|
|
45
|
+
description: "UPDATE existing rows on conflict (audit-logged). Default: UPSERT-on-insert only."
|
|
46
|
+
},
|
|
47
|
+
"dry-run": {
|
|
48
|
+
type: "boolean",
|
|
49
|
+
description: "Enumerate the tag set + return the plan without writing to the DB"
|
|
50
|
+
},
|
|
51
|
+
"reset-checkpoint": {
|
|
52
|
+
type: "boolean",
|
|
53
|
+
description: "Clear the existing .cleo/release/backfill-state.json before starting (do NOT resume)"
|
|
54
|
+
},
|
|
55
|
+
json: { type: "boolean", description: "Emit LAFS envelope" }
|
|
56
|
+
},
|
|
57
|
+
async run({ args }) {
|
|
58
|
+
await dispatchFromCli(
|
|
59
|
+
"mutate",
|
|
60
|
+
"provenance",
|
|
61
|
+
"backfill",
|
|
62
|
+
{
|
|
63
|
+
since: args.since,
|
|
64
|
+
forceOverwrite: args["force-overwrite"] === true,
|
|
65
|
+
dryRun: args["dry-run"] === true,
|
|
66
|
+
resetCheckpoint: args["reset-checkpoint"] === true
|
|
67
|
+
},
|
|
68
|
+
{ command: "provenance" }
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var verifyCommand = defineCommand({
|
|
73
|
+
meta: {
|
|
74
|
+
name: "verify",
|
|
75
|
+
description: "Audit the 11 provenance tables for a release (FK integrity, orphans, evidence staleness)"
|
|
76
|
+
},
|
|
77
|
+
args: {
|
|
78
|
+
version: {
|
|
79
|
+
type: "positional",
|
|
80
|
+
description: "Release version to verify (e.g. v2026.6.0). Optional when --all is set.",
|
|
81
|
+
required: false
|
|
82
|
+
},
|
|
83
|
+
all: {
|
|
84
|
+
type: "boolean",
|
|
85
|
+
description: "Verify the most-recent N releases instead of a single version"
|
|
86
|
+
},
|
|
87
|
+
limit: {
|
|
88
|
+
type: "string",
|
|
89
|
+
description: "How many releases to verify in --all mode (default 5)"
|
|
90
|
+
},
|
|
91
|
+
json: { type: "boolean", description: "Emit LAFS envelope" }
|
|
92
|
+
},
|
|
93
|
+
async run({ args }) {
|
|
94
|
+
const version = typeof args.version === "string" ? args.version : void 0;
|
|
95
|
+
const all = args.all === true;
|
|
96
|
+
const limitArg = typeof args.limit === "string" ? args.limit : void 0;
|
|
97
|
+
const limit = limitArg ? Number.parseInt(limitArg, 10) : void 0;
|
|
98
|
+
await dispatchFromCli(
|
|
99
|
+
"query",
|
|
100
|
+
"provenance",
|
|
101
|
+
"verify",
|
|
102
|
+
{
|
|
103
|
+
...version ? { version } : {},
|
|
104
|
+
all,
|
|
105
|
+
...limit && Number.isFinite(limit) ? { limit } : {}
|
|
106
|
+
},
|
|
107
|
+
{ command: "provenance" }
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
var provenanceCommand = defineCommand({
|
|
112
|
+
meta: {
|
|
113
|
+
name: "provenance",
|
|
114
|
+
description: "Provenance-graph maintenance: backfill, verify, repair"
|
|
115
|
+
},
|
|
116
|
+
subCommands: {
|
|
117
|
+
backfill: backfillCommand,
|
|
118
|
+
verify: verifyCommand
|
|
119
|
+
},
|
|
120
|
+
async run({ cmd, rawArgs }) {
|
|
121
|
+
const firstArg = rawArgs?.find((a) => !a.startsWith("-"));
|
|
122
|
+
if (firstArg && cmd.subCommands && firstArg in cmd.subCommands) return;
|
|
123
|
+
await showUsage(cmd);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
export {
|
|
127
|
+
provenanceCommand
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=provenance-YZG33JGM.js.map
|