@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,74 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
|
|
3
|
+
if (globalThis[_installed]) return;
|
|
4
|
+
globalThis[_installed] = true;
|
|
5
|
+
const _origEmitWarning = process.emitWarning;
|
|
6
|
+
process.emitWarning = function(warning, type, code, ctor) {
|
|
7
|
+
if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
import {
|
|
17
|
+
defineCommand
|
|
18
|
+
} from "./chunk-PKKZPOOP.js";
|
|
19
|
+
import {
|
|
20
|
+
cliOutput
|
|
21
|
+
} from "./chunk-4RGSNUUP.js";
|
|
22
|
+
|
|
23
|
+
// packages/cleo/src/cli/commands/doctor-heavy-command-hook.ts
|
|
24
|
+
import { getProjectRoot } from "@cleocode/core/paths.js";
|
|
25
|
+
import {
|
|
26
|
+
deliverHeavyCommandHooks,
|
|
27
|
+
heavyHookPresent,
|
|
28
|
+
inspectHeavyCommandHooks,
|
|
29
|
+
isHeavyHookProblem,
|
|
30
|
+
probeHeavyHookCliFor
|
|
31
|
+
} from "@cleocode/core/resources/heavy-command-hook-delivery.js";
|
|
32
|
+
var doctorHeavyCommandHookCommand = defineCommand({
|
|
33
|
+
meta: {
|
|
34
|
+
name: "heavy-command-hook",
|
|
35
|
+
description: "Report, per agent harness in use, whether the heavy-command hook (routes agent-run tests and builds through cleo run) is installed, outdated, missing or blocked. --fix installs it."
|
|
36
|
+
},
|
|
37
|
+
args: {
|
|
38
|
+
fix: {
|
|
39
|
+
type: "boolean",
|
|
40
|
+
description: "Install or refresh the hook in this project (project-level configs only, never user-global)"
|
|
41
|
+
},
|
|
42
|
+
json: { type: "boolean", description: "Output as JSON" },
|
|
43
|
+
human: { type: "boolean", description: "Force human-readable output" },
|
|
44
|
+
quiet: { type: "boolean", description: "Suppress non-essential output" }
|
|
45
|
+
},
|
|
46
|
+
async run({ args }) {
|
|
47
|
+
const projectRoot = getProjectRoot();
|
|
48
|
+
const outcomes = args.fix === true ? (await deliverHeavyCommandHooks(projectRoot)).outcomes : [];
|
|
49
|
+
const { mode, inspections } = await inspectHeavyCommandHooks(projectRoot);
|
|
50
|
+
const cli = mode !== "off" && heavyHookPresent(inspections) ? await probeHeavyHookCliFor(projectRoot) : null;
|
|
51
|
+
const problems = inspections.filter(isHeavyHookProblem);
|
|
52
|
+
const cliProblem = cli !== null && cli.state !== "current";
|
|
53
|
+
cliOutput(
|
|
54
|
+
{
|
|
55
|
+
projectRoot,
|
|
56
|
+
mode,
|
|
57
|
+
inspections,
|
|
58
|
+
cli,
|
|
59
|
+
fixApplied: args.fix === true,
|
|
60
|
+
outcomes,
|
|
61
|
+
healthy: problems.length === 0 && !cliProblem
|
|
62
|
+
},
|
|
63
|
+
{ command: "doctor", operation: "doctor.heavy-command-hook.run" }
|
|
64
|
+
);
|
|
65
|
+
if ((problems.length > 0 || cliProblem) && (process.exitCode ?? 0) === 0) {
|
|
66
|
+
process.exitCode = 1;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
doctorHeavyCommandHookCommand
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-COXFJ3PT.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
|
|
17
|
+
// packages/cleo/src/dispatch/context/session-context.ts
|
|
18
|
+
var _context = null;
|
|
19
|
+
var GLOBAL_PEER_ID = "global";
|
|
20
|
+
function resolveActivePeerId() {
|
|
21
|
+
const envPeerId = process.env["CLEO_AGENT_PEER_ID"] ?? process.env["CLEO_AGENT_ID"] ?? null;
|
|
22
|
+
if (envPeerId && envPeerId.trim().length > 0) {
|
|
23
|
+
return envPeerId.trim();
|
|
24
|
+
}
|
|
25
|
+
return GLOBAL_PEER_ID;
|
|
26
|
+
}
|
|
27
|
+
function bindSession(ctx) {
|
|
28
|
+
if (_context) {
|
|
29
|
+
throw new Error(
|
|
30
|
+
`Session already bound: ${_context.sessionId}. Call unbindSession() before binding a new session.`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
_context = {
|
|
34
|
+
...ctx,
|
|
35
|
+
agentPid: process.pid,
|
|
36
|
+
boundAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
37
|
+
activePeerId: ctx.activePeerId ?? resolveActivePeerId()
|
|
38
|
+
};
|
|
39
|
+
return _context;
|
|
40
|
+
}
|
|
41
|
+
function getBoundSession() {
|
|
42
|
+
return _context;
|
|
43
|
+
}
|
|
44
|
+
function unbindSession() {
|
|
45
|
+
const prev = _context;
|
|
46
|
+
_context = null;
|
|
47
|
+
return prev;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export {
|
|
51
|
+
bindSession,
|
|
52
|
+
getBoundSession,
|
|
53
|
+
unbindSession
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=chunk-D7BAQNV2.js.map
|
|
@@ -0,0 +1,258 @@
|
|
|
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
|
+
runLoginFrontDoor
|
|
18
|
+
} from "./chunk-UWCZY52R.js";
|
|
19
|
+
import {
|
|
20
|
+
ReadlineWizardIO
|
|
21
|
+
} from "./chunk-GZFVDR44.js";
|
|
22
|
+
import {
|
|
23
|
+
defineCommand
|
|
24
|
+
} from "./chunk-PKKZPOOP.js";
|
|
25
|
+
import {
|
|
26
|
+
cliError,
|
|
27
|
+
cliOutput,
|
|
28
|
+
isHumanOutput
|
|
29
|
+
} from "./chunk-4RGSNUUP.js";
|
|
30
|
+
|
|
31
|
+
// packages/cleo/src/cli/commands/init.ts
|
|
32
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
33
|
+
import { join } from "node:path";
|
|
34
|
+
import { fileURLToPath } from "node:url";
|
|
35
|
+
import {
|
|
36
|
+
CleoError,
|
|
37
|
+
getWorkflowTemplatesDir as getCoreWorkflowTemplatesDir,
|
|
38
|
+
initErrorCodeName,
|
|
39
|
+
initProject,
|
|
40
|
+
pushWarning,
|
|
41
|
+
scaffoldWorkflows
|
|
42
|
+
} from "@cleocode/core";
|
|
43
|
+
import { getCredentialPool } from "@cleocode/core/llm/credential-pool.js";
|
|
44
|
+
import { getTemplatesByKind } from "@cleocode/core/templates/registry";
|
|
45
|
+
function getGitignoreTemplate() {
|
|
46
|
+
try {
|
|
47
|
+
const thisFile = fileURLToPath(import.meta.url);
|
|
48
|
+
const packageRoot = join(thisFile, "..", "..", "..", "..");
|
|
49
|
+
const localTemplatePath = join(packageRoot, "templates", "cleo-gitignore");
|
|
50
|
+
const monorepoTemplatePath = join(packageRoot, "..", "..", "templates", "cleo-gitignore");
|
|
51
|
+
const templatePath = existsSync(localTemplatePath) ? localTemplatePath : monorepoTemplatePath;
|
|
52
|
+
if (existsSync(templatePath)) {
|
|
53
|
+
return readFileSync(templatePath, "utf-8");
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
return "# CLEO Project Data - Selective Git Tracking\nagent-outputs/\n";
|
|
58
|
+
}
|
|
59
|
+
function getWorkflowTemplatesDir() {
|
|
60
|
+
return getCoreWorkflowTemplatesDir();
|
|
61
|
+
}
|
|
62
|
+
var initCommand = defineCommand({
|
|
63
|
+
meta: { name: "init", description: "Initialize CLEO in a project directory" },
|
|
64
|
+
args: {
|
|
65
|
+
projectName: {
|
|
66
|
+
type: "positional",
|
|
67
|
+
description: "Project name (alternative to --name)",
|
|
68
|
+
required: false
|
|
69
|
+
},
|
|
70
|
+
name: {
|
|
71
|
+
type: "string",
|
|
72
|
+
description: "Project name"
|
|
73
|
+
},
|
|
74
|
+
force: {
|
|
75
|
+
type: "boolean",
|
|
76
|
+
description: "Re-initialize THIS directory's project: resets .cleo/config.json and project-info.json, rewrites .cleo/.gitignore and the managed git hooks. Snapshots databases and those files to .cleo/backups/sqlite/ first; never targets an ancestor or a worktree.",
|
|
77
|
+
default: false
|
|
78
|
+
},
|
|
79
|
+
detect: {
|
|
80
|
+
type: "boolean",
|
|
81
|
+
description: "Auto-detect project configuration",
|
|
82
|
+
default: false
|
|
83
|
+
},
|
|
84
|
+
"map-codebase": {
|
|
85
|
+
type: "boolean",
|
|
86
|
+
description: "Run codebase analysis and store findings to brain.db",
|
|
87
|
+
default: false
|
|
88
|
+
},
|
|
89
|
+
"install-seed-agents": {
|
|
90
|
+
type: "boolean",
|
|
91
|
+
description: "Install canonical CleoOS seed agent personas (.cant)",
|
|
92
|
+
default: false
|
|
93
|
+
},
|
|
94
|
+
workflows: {
|
|
95
|
+
type: "boolean",
|
|
96
|
+
/**
|
|
97
|
+
* @deprecated Use `cleo templates install --kind workflow` instead
|
|
98
|
+
* (T9886 / Saga T9855). Removal target: v2026.7.0. T9888.
|
|
99
|
+
*/
|
|
100
|
+
description: "[DEPRECATED \u2014 use `cleo templates install --kind workflow`] Scaffold release workflows into .github/workflows/. Will be removed in v2026.7.0.",
|
|
101
|
+
default: false
|
|
102
|
+
},
|
|
103
|
+
"dry-run": {
|
|
104
|
+
type: "boolean",
|
|
105
|
+
description: "With --workflows: print the rendered YAML without writing.",
|
|
106
|
+
default: false
|
|
107
|
+
},
|
|
108
|
+
"force-rebind": {
|
|
109
|
+
type: "boolean",
|
|
110
|
+
description: "Point the NEXUS registry at this checkout even though the project is registered at another path that still exists (T12470).",
|
|
111
|
+
default: false
|
|
112
|
+
},
|
|
113
|
+
here: {
|
|
114
|
+
type: "boolean",
|
|
115
|
+
description: "Initialize the current directory itself, even inside an ancestor CLEO project (T12562). A directory that is its own git root is targeted without it. At a directory a project was rerooted away from it requires --new-identity (T12558).",
|
|
116
|
+
default: false
|
|
117
|
+
},
|
|
118
|
+
"new-identity": {
|
|
119
|
+
type: "boolean",
|
|
120
|
+
description: "Mint a new project identity instead of re-linking a registered one (T12325). Never rewrites an existing .cleo/project-id \u2014 except with --here at a directory a project was rerooted away from, where that project's restored id is retired for the new one (T12558).",
|
|
121
|
+
default: false
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
async run({ args }) {
|
|
125
|
+
try {
|
|
126
|
+
if (args.workflows) {
|
|
127
|
+
pushWarning({
|
|
128
|
+
code: "W_INIT_WORKFLOWS_DEPRECATED",
|
|
129
|
+
message: "[deprecated] cleo init --workflows: use `cleo templates install --kind workflow` instead. This alias will be removed in v2026.7.0.",
|
|
130
|
+
severity: "warn",
|
|
131
|
+
deprecated: "cleo init --workflows",
|
|
132
|
+
replacement: "cleo templates install --kind workflow",
|
|
133
|
+
removeBy: "v2026.7.0",
|
|
134
|
+
context: { task: "T9888", saga: "T9855" }
|
|
135
|
+
});
|
|
136
|
+
const projectRoot = process.cwd();
|
|
137
|
+
const templatesDir = getWorkflowTemplatesDir();
|
|
138
|
+
const workflowEntries = getTemplatesByKind("workflow");
|
|
139
|
+
const templates = workflowEntries.map((entry) => entry.id).filter((id) => isWorkflowName(id));
|
|
140
|
+
const result2 = await scaffoldWorkflows({
|
|
141
|
+
projectRoot,
|
|
142
|
+
templatesDir,
|
|
143
|
+
...templates.length > 0 ? { templates } : {},
|
|
144
|
+
dryRun: !!args["dry-run"],
|
|
145
|
+
force: !!args.force
|
|
146
|
+
});
|
|
147
|
+
cliOutput(
|
|
148
|
+
{
|
|
149
|
+
scaffolded: result2.outcomes.map((o) => ({
|
|
150
|
+
template: o.template,
|
|
151
|
+
targetPath: o.targetPath,
|
|
152
|
+
status: o.status
|
|
153
|
+
})),
|
|
154
|
+
resolvedTools: result2.resolvedTools,
|
|
155
|
+
...args["dry-run"] ? { rendered: result2.outcomes.map((o) => o.rendered) } : {}
|
|
156
|
+
},
|
|
157
|
+
{ command: "init" }
|
|
158
|
+
);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const initOpts = {
|
|
162
|
+
name: args.name || args.projectName || void 0,
|
|
163
|
+
force: !!args.force,
|
|
164
|
+
detect: !!args.detect,
|
|
165
|
+
mapCodebase: !!args["map-codebase"],
|
|
166
|
+
installSeedAgents: !!args["install-seed-agents"],
|
|
167
|
+
newIdentity: !!args["new-identity"],
|
|
168
|
+
forceRebind: !!args["force-rebind"],
|
|
169
|
+
here: !!args.here
|
|
170
|
+
};
|
|
171
|
+
const result = await initProject(initOpts);
|
|
172
|
+
const nextSteps = [...result.nextSteps ?? []];
|
|
173
|
+
await maybeNudgeFirstRunLogin(nextSteps);
|
|
174
|
+
cliOutput(
|
|
175
|
+
{
|
|
176
|
+
initialized: result.initialized,
|
|
177
|
+
directory: result.directory,
|
|
178
|
+
created: result.created,
|
|
179
|
+
skipped: result.skipped,
|
|
180
|
+
...result.warnings.length > 0 ? { warnings: result.warnings } : {},
|
|
181
|
+
...result.updateDocsOnly ? { updateDocsOnly: true } : {},
|
|
182
|
+
// Phase 5 — greenfield/brownfield classification + LAFS nextSteps
|
|
183
|
+
...result.classification ? { classification: result.classification } : {},
|
|
184
|
+
...nextSteps.length > 0 ? { nextSteps } : {}
|
|
185
|
+
},
|
|
186
|
+
{ command: "init" }
|
|
187
|
+
);
|
|
188
|
+
} catch (err) {
|
|
189
|
+
if (err instanceof CleoError) {
|
|
190
|
+
cliError(`init failed: ${err.message}`, err.code, {
|
|
191
|
+
name: initErrorCodeName(err) ?? err.toLAFSError().code,
|
|
192
|
+
...err.fix !== void 0 ? { fix: err.fix } : {},
|
|
193
|
+
...err.alternatives !== void 0 ? { alternatives: err.alternatives } : {},
|
|
194
|
+
...err.details !== void 0 ? { details: err.details } : {}
|
|
195
|
+
});
|
|
196
|
+
process.exit(err.code);
|
|
197
|
+
}
|
|
198
|
+
throw err;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
var FIRST_RUN_LOGIN_NEXT_STEP = {
|
|
203
|
+
action: "Add an LLM credential to start using CLEO",
|
|
204
|
+
command: "cleo login"
|
|
205
|
+
};
|
|
206
|
+
async function isCredentialPoolEmpty() {
|
|
207
|
+
try {
|
|
208
|
+
const pool = getCredentialPool();
|
|
209
|
+
const entries = await pool.list();
|
|
210
|
+
return entries.length === 0;
|
|
211
|
+
} catch {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async function maybeNudgeFirstRunLogin(nextSteps) {
|
|
216
|
+
if (!await isCredentialPoolEmpty()) return;
|
|
217
|
+
nextSteps.push({ ...FIRST_RUN_LOGIN_NEXT_STEP });
|
|
218
|
+
if (!isHumanOutput() || process.stdin.isTTY !== true) return;
|
|
219
|
+
try {
|
|
220
|
+
const io = new ReadlineWizardIO(process.stdin, process.stderr);
|
|
221
|
+
let configureNow;
|
|
222
|
+
try {
|
|
223
|
+
configureNow = await io.confirm("No LLM credential found. Configure now?", true);
|
|
224
|
+
} finally {
|
|
225
|
+
io.close();
|
|
226
|
+
}
|
|
227
|
+
if (!configureNow) return;
|
|
228
|
+
const result = await runLoginFrontDoor({});
|
|
229
|
+
let note;
|
|
230
|
+
if (result.validated) {
|
|
231
|
+
note = ` Logged in to ${result.provider} as '${result.accountLabel}' \u2014 bound ${result.profileName ?? "default"} \u2192 ${result.provider}/${result.modelId}.
|
|
232
|
+
`;
|
|
233
|
+
} else {
|
|
234
|
+
const failed = result.steps.find((st) => st.status === "failed");
|
|
235
|
+
note = ` Login did not complete${failed?.detail ? `: ${failed.detail}` : "."} Run 'cleo login' to retry.
|
|
236
|
+
`;
|
|
237
|
+
}
|
|
238
|
+
process.stderr.write(note);
|
|
239
|
+
} catch (err) {
|
|
240
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
241
|
+
const note = ` Login skipped (${msg}). Run 'cleo login' to retry.
|
|
242
|
+
`;
|
|
243
|
+
process.stderr.write(note);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function isWorkflowName(id) {
|
|
247
|
+
return id === "release-prepare" || id === "release-publish" || id === "release-fanout" || id === "release-rollback";
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export {
|
|
251
|
+
getGitignoreTemplate,
|
|
252
|
+
getWorkflowTemplatesDir,
|
|
253
|
+
initCommand,
|
|
254
|
+
FIRST_RUN_LOGIN_NEXT_STEP,
|
|
255
|
+
isCredentialPoolEmpty,
|
|
256
|
+
maybeNudgeFirstRunLogin
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=chunk-EIUXVHNF.js.map
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
const _installed = Symbol.for('cleocode.cli.sqliteWarningFilter');
|
|
3
|
+
if (globalThis[_installed]) return;
|
|
4
|
+
globalThis[_installed] = true;
|
|
5
|
+
const _origEmitWarning = process.emitWarning;
|
|
6
|
+
process.emitWarning = function(warning, type, code, ctor) {
|
|
7
|
+
if (typeof warning === 'object' && warning.name === 'ExperimentalWarning' && typeof warning.message === 'string' && /SQLite is an experimental feature/i.test(warning.message)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof warning === 'string' && /SQLite is an experimental feature/i.test(warning)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return _origEmitWarning.call(process, warning, type, code, ctor);
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
import {
|
|
17
|
+
negatedFlag
|
|
18
|
+
} from "./chunk-47JYZAMS.js";
|
|
19
|
+
import {
|
|
20
|
+
defineCommand
|
|
21
|
+
} from "./chunk-PKKZPOOP.js";
|
|
22
|
+
import {
|
|
23
|
+
cliError,
|
|
24
|
+
cliOutput,
|
|
25
|
+
humanLine
|
|
26
|
+
} from "./chunk-4RGSNUUP.js";
|
|
27
|
+
|
|
28
|
+
// packages/cleo/src/cli/commands/doctor-projects.ts
|
|
29
|
+
import { checkAllRegisteredProjects } from "@cleocode/core/system/project-health";
|
|
30
|
+
function formatRow(report, nameFallback) {
|
|
31
|
+
const hash = report.projectHash.padEnd(12).slice(0, 12);
|
|
32
|
+
const name = nameFallback.padEnd(24).slice(0, 24);
|
|
33
|
+
const path = report.projectPath.padEnd(40).slice(0, 40);
|
|
34
|
+
const status = report.overall.padEnd(12).slice(0, 12);
|
|
35
|
+
const issues = report.issues.join("; ").slice(0, 80);
|
|
36
|
+
return `${hash} ${name} ${path} ${status} ${issues}`;
|
|
37
|
+
}
|
|
38
|
+
function deriveExitCode(summary, ignoreUnreachable) {
|
|
39
|
+
if (summary.unreachable > 0 && !ignoreUnreachable) return 2;
|
|
40
|
+
if (summary.degraded > 0) return 1;
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
function printDoctorProjectsReport(report, opts, nameLookup) {
|
|
44
|
+
if (report.registryError) {
|
|
45
|
+
const { registryError } = report;
|
|
46
|
+
cliError(
|
|
47
|
+
registryError.message,
|
|
48
|
+
registryError.exitCode,
|
|
49
|
+
{ name: registryError.code, fix: registryError.fix, details: { report } },
|
|
50
|
+
{ operation: "doctor.projects" }
|
|
51
|
+
);
|
|
52
|
+
process.exitCode = registryError.exitCode;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const { summary } = report;
|
|
56
|
+
const exitCode = deriveExitCode(summary, opts.ignoreUnreachable === true);
|
|
57
|
+
process.exitCode = exitCode;
|
|
58
|
+
if (opts.json === true || opts.quiet === true) {
|
|
59
|
+
cliOutput(
|
|
60
|
+
opts.quiet ? {
|
|
61
|
+
projects: summary.totalProjects,
|
|
62
|
+
healthy: summary.healthy,
|
|
63
|
+
degraded: summary.degraded,
|
|
64
|
+
unreachable: summary.unreachable,
|
|
65
|
+
unknown: summary.unknown,
|
|
66
|
+
global: report.global.overall
|
|
67
|
+
} : report,
|
|
68
|
+
{ command: "doctor-projects", operation: "doctor.projects" }
|
|
69
|
+
);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
humanLine("\nCLEO Cross-Project Health Report");
|
|
73
|
+
humanLine(`Generated: ${report.generatedAt}
|
|
74
|
+
`);
|
|
75
|
+
humanLine(`Global: ${report.global.overall.toUpperCase()} (${report.global.cleoHome})`);
|
|
76
|
+
if (report.global.issues.length > 0) {
|
|
77
|
+
for (const iss of report.global.issues) {
|
|
78
|
+
humanLine(` - ${iss}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
humanLine("");
|
|
82
|
+
if (report.projects.length === 0) {
|
|
83
|
+
humanLine("No projects registered in nexus.db.");
|
|
84
|
+
humanLine("Register projects with: cleo nexus register <path>\n");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const header = `${"hash".padEnd(12)} ${"name".padEnd(24)} ${"path".padEnd(40)} ${"status".padEnd(12)} issues`;
|
|
88
|
+
humanLine(header);
|
|
89
|
+
humanLine("-".repeat(header.length));
|
|
90
|
+
for (const project of report.projects) {
|
|
91
|
+
const name = nameLookup.get(project.projectHash) ?? "<unnamed>";
|
|
92
|
+
humanLine(formatRow(project, name));
|
|
93
|
+
}
|
|
94
|
+
humanLine("");
|
|
95
|
+
humanLine(
|
|
96
|
+
`Summary: ${summary.totalProjects} project(s) \u2014 ${summary.healthy} healthy, ${summary.degraded} degraded, ${summary.unreachable} unreachable, ${summary.unknown} unknown
|
|
97
|
+
`
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
async function runDoctorProjects(opts = {}) {
|
|
101
|
+
const report = await checkAllRegisteredProjects({
|
|
102
|
+
updateRegistry: opts.noUpdateRegistry !== true,
|
|
103
|
+
parallelism: opts.parallelism,
|
|
104
|
+
includeGlobal: opts.skipGlobal !== true
|
|
105
|
+
});
|
|
106
|
+
const nameLookup = /* @__PURE__ */ new Map();
|
|
107
|
+
if (!report.registryError) {
|
|
108
|
+
try {
|
|
109
|
+
const { nexusList } = await import("@cleocode/core/nexus/registry");
|
|
110
|
+
const rows = await nexusList();
|
|
111
|
+
for (const row of rows) {
|
|
112
|
+
nameLookup.set(row.hash, row.name);
|
|
113
|
+
}
|
|
114
|
+
} catch {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
printDoctorProjectsReport(report, opts, nameLookup);
|
|
118
|
+
return report;
|
|
119
|
+
}
|
|
120
|
+
var doctorProjectsCommand = defineCommand({
|
|
121
|
+
meta: {
|
|
122
|
+
name: "doctor-projects",
|
|
123
|
+
description: "Probe every registered project (nexus.db) for DB + config health"
|
|
124
|
+
},
|
|
125
|
+
args: {
|
|
126
|
+
json: {
|
|
127
|
+
type: "boolean",
|
|
128
|
+
description: "Emit machine-readable JSON report"
|
|
129
|
+
},
|
|
130
|
+
quiet: {
|
|
131
|
+
type: "boolean",
|
|
132
|
+
description: "Emit a one-line summary only"
|
|
133
|
+
},
|
|
134
|
+
"ignore-unreachable": {
|
|
135
|
+
type: "boolean",
|
|
136
|
+
description: "Exit 1 instead of 2 when a project is unreachable"
|
|
137
|
+
},
|
|
138
|
+
parallelism: {
|
|
139
|
+
type: "string",
|
|
140
|
+
description: "Probe concurrency cap (default: 8)"
|
|
141
|
+
},
|
|
142
|
+
"no-update-registry": {
|
|
143
|
+
type: "boolean",
|
|
144
|
+
description: "Do not write healthStatus back to nexus.db"
|
|
145
|
+
},
|
|
146
|
+
"skip-global": {
|
|
147
|
+
type: "boolean",
|
|
148
|
+
description: "Skip the global-tier (nexus.db, signaldock.db) probe"
|
|
149
|
+
},
|
|
150
|
+
human: {
|
|
151
|
+
type: "boolean",
|
|
152
|
+
description: "Force human-readable output"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
async run({ args }) {
|
|
156
|
+
const parallelism = args.parallelism ? Number.parseInt(String(args.parallelism), 10) : void 0;
|
|
157
|
+
await runDoctorProjects({
|
|
158
|
+
json: args.json === true,
|
|
159
|
+
quiet: args.quiet === true,
|
|
160
|
+
ignoreUnreachable: args["ignore-unreachable"] === true,
|
|
161
|
+
parallelism: typeof parallelism === "number" && Number.isFinite(parallelism) ? parallelism : void 0,
|
|
162
|
+
noUpdateRegistry: negatedFlag(args, "update-registry"),
|
|
163
|
+
skipGlobal: args["skip-global"] === true
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
export {
|
|
169
|
+
printDoctorProjectsReport,
|
|
170
|
+
runDoctorProjects,
|
|
171
|
+
doctorProjectsCommand
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=chunk-EUGB6P5V.js.map
|