@cleocode/cleo 2026.10.4 → 2026.10.5
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/dist/cli/{adapter-LVXHFBC4.js → adapter-OUQRSFZL.js} +10 -9
- package/dist/cli/{add-WUAV7LDT.js → add-4SRRJL4U.js} +18 -18
- package/dist/cli/{add-batch-U2DLKAQC.js → add-batch-TSWICA5J.js} +12 -11
- package/dist/cli/admin-L3F6CDYH.js +1428 -0
- package/dist/cli/{admin-I7BQYVZD.js → admin-YMU55YCU.js} +10 -9
- package/dist/cli/{adr-K2THMQBS.js → adr-XESRMFMP.js} +10 -9
- package/dist/cli/{agent-WQ6XY2DW.js → agent-TAFPIYUU.js} +66 -28
- package/dist/cli/{agent-outputs-BJIYLVTU.js → agent-outputs-HVJJIPS4.js} +3 -3
- package/dist/cli/{analyze-PGQZWGOC.js → analyze-YQ22QVGW.js} +10 -9
- package/dist/cli/{archive-5LZPF7C3.js → archive-W5XX6AH7.js} +10 -9
- package/dist/cli/{archive-stats-U6CYC6JM.js → archive-stats-HP2KPAJU.js} +10 -9
- package/dist/cli/attention-7JBDCRZX.js +124 -0
- package/dist/cli/{attention-SOURWCNI.js → attention-ZXZANHKC.js} +13 -12
- package/dist/cli/{audit-FO2Y4LH2.js → audit-ICA2SEFN.js} +2 -2
- package/dist/cli/{auth-ED7TAIXI.js → auth-DXIG5OG7.js} +5 -5
- package/dist/cli/{backfill-32TRAYRD.js → backfill-LBSYBWLR.js} +2 -2
- package/dist/cli/{backup-LEJMZJKL.js → backup-NUGBZ7NA.js} +17 -16
- package/dist/cli/{backup-inspect-6HPLUEI2.js → backup-inspect-PDRXI45A.js} +3 -3
- package/dist/cli/{backup-recover-2BTYBZU2.js → backup-recover-TVKAPERB.js} +3 -3
- package/dist/cli/{blockers-5JULUJTV.js → blockers-ZOPCGHDW.js} +10 -9
- package/dist/cli/{brain-273N3FW4.js → brain-EJOBKL4A.js} +9 -12
- package/dist/cli/{briefing-7H6OLECX.js → briefing-RDQJ6WHS.js} +11 -10
- package/dist/cli/{caamp-MFQVN6VU.js → caamp-Z3XPKEHB.js} +2 -2
- package/dist/cli/{cancel-SCMJTXZB.js → cancel-S7EHLCJN.js} +10 -9
- package/dist/cli/{cant-46XCUP4P.js → cant-CHNN6O57.js} +2 -2
- package/dist/cli/{changeset-32NMBGG2.js → changeset-RYPHPN2B.js} +4 -6
- package/dist/cli/check-C67YAU7W.js +759 -0
- package/dist/cli/{check-RWJLBCI2.js → check-DHMURGHC.js} +30 -13
- package/dist/cli/{checkpoint-37HMMKD7.js → checkpoint-UWDFOGYQ.js} +3 -3
- package/dist/cli/{chunk-NRKWJLMS.js → chunk-22YPFZYB.js} +2 -2
- package/dist/cli/{chunk-I3CRQQAD.js → chunk-2MGFDMDF.js} +84 -37
- package/dist/cli/{chunk-BCEXRFA2.js → chunk-4JYHPP4C.js} +2 -2
- package/dist/cli/{chunk-A2IUEIM5.js → chunk-4PEODTHY.js} +2 -2
- package/dist/cli/{chunk-3ZO3M37V.js → chunk-4RGSNUUP.js} +118 -170
- package/dist/cli/{chunk-AWCQH2W5.js → chunk-4VASFLUW.js} +2 -2
- package/dist/cli/{chunk-BPEVD37G.js → chunk-5PNI276X.js} +2 -2
- package/dist/cli/{chunk-OGV57L4J.js → chunk-6N6WGLXE.js} +6 -2
- package/dist/cli/{chunk-KHB52JNB.js → chunk-75UH3BLS.js} +4 -3
- package/dist/cli/{chunk-5ZFFUFH7.js → chunk-7ACK4EIN.js} +2 -2
- package/dist/cli/{chunk-MNJRLSEQ.js → chunk-7NMKLVMI.js} +2 -2
- package/dist/cli/{chunk-GFGLLDXX.js → chunk-7SINJXB6.js} +2 -2
- package/dist/cli/{chunk-KJDWWQFY.js → chunk-7UARFJYS.js} +3 -3
- package/dist/cli/{chunk-JNZJPIPJ.js → chunk-7ZYPQV4N.js} +3 -3
- package/dist/cli/{chunk-DVTPIZJM.js → chunk-AQCYT3L4.js} +2 -2
- package/dist/cli/{chunk-EGOTK2HA.js → chunk-BQK6XTOH.js} +2 -2
- package/dist/cli/{chunk-DYABOIHB.js → chunk-CAPAGD5E.js} +6 -4
- package/dist/cli/{chunk-ZZTHTMQP.js → chunk-CHGEDCKG.js} +3 -3
- package/dist/cli/{chunk-QPUY2HQZ.js → chunk-COXFJ3PT.js} +2 -2
- package/dist/cli/chunk-D7BAQNV2.js +55 -0
- package/dist/cli/{chunk-OPTEQKBB.js → chunk-EIUXVHNF.js} +3 -3
- package/dist/cli/{chunk-3PGH67MT.js → chunk-EUGB6P5V.js} +4 -6
- package/dist/cli/chunk-EW2CKNNZ.js +304 -0
- package/dist/cli/{chunk-2JIJD2I7.js → chunk-FSKN4DWC.js} +2 -2
- package/dist/cli/{chunk-NSHV2JNM.js → chunk-FVKLULL7.js} +2 -2
- package/dist/cli/{chunk-GH37QXW5.js → chunk-GAGUBU4Z.js} +2 -2
- package/dist/cli/{chunk-37NU2XDP.js → chunk-GKRFH2YG.js} +2 -2
- package/dist/cli/{chunk-ULN4OKQQ.js → chunk-GRU74UE4.js} +21 -10
- package/dist/cli/{chunk-LKNUA3SB.js → chunk-HFLLZE6A.js} +2 -2
- package/dist/cli/{chunk-YGKEECTI.js → chunk-HXRXT3XU.js} +2 -2
- package/dist/cli/{chunk-REUTEW3O.js → chunk-IIOGUY3B.js} +6 -6
- package/dist/cli/chunk-ILWWL462.js +60 -0
- package/dist/cli/{chunk-XRAX6XFP.js → chunk-J5USPJKZ.js} +2 -2
- package/dist/cli/{chunk-S24YI723.js → chunk-KEQS36GD.js} +4 -4
- package/dist/cli/chunk-L7ONYSV6.js +2497 -0
- package/dist/cli/chunk-NEFMQYLE.js +656 -0
- package/dist/cli/{chunk-QFFQSKRC.js → chunk-NU6CQQVB.js} +6 -2
- package/dist/cli/{chunk-5J2VH3BC.js → chunk-PN4WW5VX.js} +3 -3
- package/dist/cli/{chunk-AYA6F4ZT.js → chunk-PSJ33WVO.js} +3 -3
- package/dist/cli/{chunk-FORFDPP5.js → chunk-QJJWWCIC.js} +3 -3
- package/dist/cli/{chunk-ZBISIPCK.js → chunk-QKMBWYAS.js} +16 -1
- package/dist/cli/chunk-QWNKLLLG.js +84 -0
- package/dist/cli/{chunk-7INMKEAD.js → chunk-QWUFFDL3.js} +2 -2
- package/dist/cli/chunk-QY76BRUZ.js +35 -0
- package/dist/cli/chunk-R45KVF5Y.js +117 -0
- package/dist/cli/{chunk-W33Q3FBH.js → chunk-RRKP7HLU.js} +3 -3
- package/dist/cli/{chunk-YUZJI67I.js → chunk-T6GZJYL3.js} +2 -2
- package/dist/cli/{chunk-LWQBJQSE.js → chunk-TLQ37HRE.js} +3 -3
- package/dist/cli/chunk-TPTNEJZJ.js +52 -0
- package/dist/cli/chunk-TYC7G5LF.js +100 -0
- package/dist/cli/{chunk-J3ZFM3UQ.js → chunk-UWCZY52R.js} +25 -13
- package/dist/cli/{chunk-V5GBGOGM.js → chunk-VB3LDPL5.js} +2 -2
- package/dist/cli/chunk-WWCYZYSN.js +56 -0
- package/dist/cli/{chunk-EBRZ76HS.js → chunk-XA5WISNV.js} +4 -3
- package/dist/cli/chunk-XHRZ7OYZ.js +132 -0
- package/dist/cli/{chunk-EOPQFCSR.js → chunk-XLPMIGJJ.js} +6 -6
- package/dist/cli/{chunk-NWTATTEQ.js → chunk-ZMGDZMSJ.js} +2 -2
- package/dist/cli/{claim-KPENYHIQ.js → claim-IGOG2QOC.js} +10 -9
- package/dist/cli/{classify-DRVMCFQU.js → classify-MG4N7GMQ.js} +2 -2
- package/dist/cli/{cli-T3CR7J57.js → cli-A23Q335V.js} +10 -7
- package/dist/cli/{cloud-PPQ4O5TX.js → cloud-SILYJVKO.js} +194 -28
- package/dist/cli/{code-Z5CTMVTD.js → code-H2FQCVMW.js} +2 -2
- package/dist/cli/{complete-UBOCOBRB.js → complete-JLX7NBI4.js} +9 -8
- package/dist/cli/{complexity-BV2AGQRZ.js → complexity-OKV7PVZH.js} +10 -9
- package/dist/cli/{compliance-32PD5Y47.js → compliance-QMGZHJNQ.js} +10 -9
- package/dist/cli/{conduit-VDKCH33F.js → conduit-4H32UYEA.js} +10 -9
- package/dist/cli/conduit-EY54WTZA.js +535 -0
- package/dist/cli/{config-I72JAXK4.js → config-TDYOC7XO.js} +21 -18
- package/dist/cli/{consensus-LFILLSTK.js → consensus-4XCOFPPT.js} +10 -9
- package/dist/cli/{context-XUUVFVTP.js → context-FN4YTGHD.js} +12 -11
- package/dist/cli/{contribution-37NQ4N5R.js → contribution-7RWFBJLC.js} +10 -9
- package/dist/cli/{curator-TFDXU2EX.js → curator-HKZJCVRL.js} +2 -2
- package/dist/cli/{current-C4SN5BWV.js → current-B2NU7V3G.js} +10 -9
- package/dist/cli/{daemon-DV25JQ62.js → daemon-GBD4TVCD.js} +11 -10
- package/dist/cli/{dash-TFU4RLQW.js → dash-IGDANIE5.js} +10 -9
- package/dist/cli/{decide-5VPMNTSI.js → decide-26SXC2V6.js} +5 -8
- package/dist/cli/{decompose-KOYEZNJL.js → decompose-LQ76TEZG.js} +11 -10
- package/dist/cli/{decomposition-7OHUFIQN.js → decomposition-WFRWNUSJ.js} +10 -9
- package/dist/cli/{delete-Q7YCAFY5.js → delete-T5DUQHOX.js} +11 -10
- package/dist/cli/{deps-6UZKLDGJ.js → deps-UTPZJBXL.js} +17 -18
- package/dist/cli/{detect-FERY35UL.js → detect-FFZSMVDT.js} +10 -9
- package/dist/cli/{detect-drift-UL2JTPUK.js → detect-drift-TVCJOFYJ.js} +7 -7
- package/dist/cli/diagnostics-GN5CVD3N.js +93 -0
- package/dist/cli/{diagnostics-TI5QAZXR.js → diagnostics-ZNBKH6GX.js} +10 -9
- package/dist/cli/docs-CLQKEEUK.js +1710 -0
- package/dist/cli/{docs-QI2PRN3T.js → docs-DPPDFTWR.js} +45 -42
- package/dist/cli/{doctor-AX5TICQO.js → doctor-GPENOP4N.js} +79 -62
- package/dist/cli/{doctor-ac-bindings-YPMYHU2G.js → doctor-ac-bindings-S3IOEFP4.js} +3 -3
- package/dist/cli/{doctor-acceptance-drift-PYNFGMKB.js → doctor-acceptance-drift-VNFKPBSQ.js} +3 -3
- package/dist/cli/{doctor-credentials-UZRIADKM.js → doctor-credentials-A5H4JMTF.js} +3 -3
- package/dist/cli/{doctor-db-substrate-Q2TOYM2S.js → doctor-db-substrate-FGCISE4Z.js} +3 -3
- package/dist/cli/{doctor-dep-cycles-GCVYZY6F.js → doctor-dep-cycles-BKKKHHYG.js} +3 -3
- package/dist/cli/{doctor-exodus-RO5SUTC2.js → doctor-exodus-ND2DH2KP.js} +3 -3
- package/dist/cli/{doctor-exodus-residue-EM2AWQXP.js → doctor-exodus-residue-4EMRYMEQ.js} +3 -3
- package/dist/cli/{doctor-fk-check-Q3FOLECE.js → doctor-fk-check-VY3RIQV3.js} +3 -3
- package/dist/cli/{doctor-global-delivery-TNOAQ3NP.js → doctor-global-delivery-JN6IGHUL.js} +3 -3
- package/dist/cli/{doctor-heavy-command-hook-IO3QAQLG.js → doctor-heavy-command-hook-XSN44WXU.js} +3 -3
- package/dist/cli/{doctor-legacy-backups-O2YH5VLS.js → doctor-legacy-backups-QAG5NHYP.js} +3 -3
- package/dist/cli/{doctor-legacy-reaper-VSEJEIFA.js → doctor-legacy-reaper-CIRGFE6R.js} +3 -3
- package/dist/cli/{doctor-malformed-ids-LQ766V5K.js → doctor-malformed-ids-WL7HT4TB.js} +3 -3
- package/dist/cli/{doctor-manifest-rows-6FQDNHLH.js → doctor-manifest-rows-SMQCKJ2T.js} +3 -3
- package/dist/cli/{doctor-memory-guard-J4PSEKB5.js → doctor-memory-guard-LJDOJG76.js} +3 -3
- package/dist/cli/{doctor-migrations-ONOH56YM.js → doctor-migrations-ETQPFNUP.js} +3 -3
- package/dist/cli/{doctor-nexus-residency-FUQAX7PV.js → doctor-nexus-residency-A4JMKBEJ.js} +3 -3
- package/dist/cli/{doctor-project-identity-GUDK3HYX.js → doctor-project-identity-FFQJ5LNX.js} +3 -3
- package/dist/cli/{doctor-projects-7L3BNL4O.js → doctor-projects-MFUTKRHP.js} +3 -3
- package/dist/cli/{doctor-projects-registry-TEAVHFQU.js → doctor-projects-registry-76X6VTGM.js} +3 -3
- package/dist/cli/{doctor-release-readiness-IEGHX6SL.js → doctor-release-readiness-QJCOPFTK.js} +3 -3
- package/dist/cli/{doctor-repair-NBONOSZU.js → doctor-repair-AU76FIKY.js} +3 -3
- package/dist/cli/doctor-row-identity-KW6JYZQE.js +26 -0
- package/dist/cli/{doctor-skill-fixtures-7Y6L34A3.js → doctor-skill-fixtures-G3T7JUHS.js} +3 -3
- package/dist/cli/{doctor-split-brain-TUKIGVHF.js → doctor-split-brain-FUW6L7FS.js} +3 -3
- package/dist/cli/{doctor-superseded-store-BHZY2B2L.js → doctor-superseded-store-DUHGSBLC.js} +3 -3
- 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-REQMIVYK.js → doctor-tool-locks-66LSLUBN.js} +3 -3
- package/dist/cli/{doctor-twin-collapse-222GOSPE.js → doctor-twin-collapse-AYBYBFC4.js} +3 -3
- package/dist/cli/{doctor-worktree-stores-J7TCRVJ3.js → doctor-worktree-stores-C5XEH5OG.js} +3 -3
- package/dist/cli/{done-V3AOO65B.js → done-R64XRZ32.js} +11 -10
- package/dist/cli/entities-3JIHDIOK.js +361 -0
- package/dist/cli/{event-EGNPGE5A.js → event-45KEWV5H.js} +2 -2
- package/dist/cli/{exists-H4SDCBPL.js → exists-BEDZS5RI.js} +3 -3
- package/dist/cli/{exodus-KALO3B3X.js → exodus-DUX62344.js} +3 -3
- package/dist/cli/{export-ROFOCG4M.js → export-C5PQIQ5O.js} +11 -10
- package/dist/cli/{export-tasks-US3WBIEQ.js → export-tasks-CUXDZPJB.js} +11 -10
- package/dist/cli/{federation-SUIB5QWT.js → federation-ESM35EGG.js} +3 -3
- package/dist/cli/{find-YICG4BG6.js → find-5EUZHHQJ.js} +13 -12
- package/dist/cli/focus-6AH4KLRO.js +368 -0
- package/dist/cli/{focus-TKCZPKOM.js → focus-ANKAIRO5.js} +10 -9
- package/dist/cli/{gateway-H4HFDC3E.js → gateway-2GW2KTK3.js} +2 -2
- package/dist/cli/{gc-5R2TUY5T.js → gc-CTOQLUSA.js} +2 -2
- package/dist/cli/{go-PRQFK5YG.js → go-YJPNHHYT.js} +6 -6
- package/dist/cli/{goal-7CZRMLHC.js → goal-4GW4G77D.js} +4 -3
- package/dist/cli/{grade-PY2YRPUS.js → grade-25WSZH4X.js} +10 -9
- package/dist/cli/{graph-XIXMCFKG.js → graph-JUO3TMF3.js} +11 -10
- package/dist/cli/{history-EIXADPAD.js → history-NACNUQTC.js} +10 -9
- package/dist/cli/{import-R73SO444.js → import-7ESGL5SS.js} +10 -9
- package/dist/cli/{import-tasks-O22FZJ4U.js → import-tasks-FLE2RPBR.js} +10 -9
- package/dist/cli/index.js +395 -238
- package/dist/cli/{init-IHEJDQWU.js → init-AN4DZ2XO.js} +5 -5
- package/dist/cli/{inject-LSRVWNCP.js → inject-HQWA5GWY.js} +10 -9
- package/dist/cli/{install-global-4AZUCH6U.js → install-global-YQV4W5OG.js} +2 -2
- package/dist/cli/intelligence-OFFNQGHE.js +238 -0
- package/dist/cli/{intelligence-2OSFOGD2.js → intelligence-QIC4SN4X.js} +10 -9
- package/dist/cli/{issue-IIWEDNFC.js → issue-P5RNMRDG.js} +10 -9
- package/dist/cli/{janitor-GPMC7VOR.js → janitor-ZNCFQ7E3.js} +2 -2
- package/dist/cli/{labels-5NPOIQXN.js → labels-ORBM3T57.js} +10 -9
- package/dist/cli/{lifecycle-4FFS2K2T.js → lifecycle-MHR22TVI.js} +13 -12
- package/dist/cli/{list-47KEUGPQ.js → list-LB6GCYYU.js} +14 -13
- package/dist/cli/llm-H7LZWQKX.js +130 -0
- package/dist/cli/{llm-G5B3I6GD.js → llm-OTJWPMGI.js} +14 -13
- package/dist/cli/{llm-cost-S7RS6BVA.js → llm-cost-MLMXEAR4.js} +3 -3
- package/dist/cli/{llm-stream-24A45NTS.js → llm-stream-AAEUNKRP.js} +3 -3
- package/dist/cli/{log-XF6H2XSD.js → log-W2A5M2NA.js} +10 -9
- package/dist/cli/{login-LBPLGHYG.js → login-SIXFFZSP.js} +6 -4
- package/dist/cli/{logout-SX4JSJIV.js → logout-G3KVLQQM.js} +5 -5
- package/dist/cli/{manifest-NMCW4PIW.js → manifest-G4T6EBSI.js} +10 -9
- package/dist/cli/{map-BU72KMGF.js → map-VU5M72TK.js} +10 -9
- package/dist/cli/{memory-UHYIVGVM.js → memory-2E27G2G5.js} +17 -21
- package/dist/cli/memory-IAEYKXG6.js +1895 -0
- package/dist/cli/{migrate-agents-v2-OO7OILZK.js → migrate-agents-v2-A52QIYNJ.js} +3 -3
- package/dist/cli/{migrate-claude-mem-EDNYUY3K.js → migrate-claude-mem-TPDW3R4Z.js} +17 -12
- package/dist/cli/{next-RZFRG5X7.js → next-SVH4LIDY.js} +10 -9
- package/dist/cli/nexus-FPQV2EAF.js +1059 -0
- package/dist/cli/{nexus-4S4Z5EVU.js → nexus-XSFXN5E6.js} +14 -13
- package/dist/cli/{ops-KR7AWCG3.js → ops-K6LHY5J6.js} +10 -9
- package/dist/cli/orchestrate-CZ2J6W3L.js +1650 -0
- package/dist/cli/{orchestrate-HOYZY3VX.js → orchestrate-HURUCQFT.js} +13 -11
- package/dist/cli/{otel-U7IIRBCT.js → otel-JCNPVJLZ.js} +2 -2
- package/dist/cli/{phase-NYZFHUE5.js → phase-VDFRASSO.js} +10 -9
- package/dist/cli/pipeline-TCZPOEDR.js +697 -0
- package/dist/cli/{pivot-FF2CVUZL.js → pivot-V5MSQZ7L.js} +10 -9
- package/dist/cli/{plan-3SL2NTRV.js → plan-SQUGCKSM.js} +10 -9
- package/dist/cli/{playbook-2FCBV7N3.js → playbook-L47GLDQD.js} +10 -9
- package/dist/cli/playbook-NJVO4R6P.js +33 -0
- package/dist/cli/{project-WDX2TGMC.js → project-YZEC7GYF.js} +6 -5
- package/dist/cli/{promote-YINYFBZY.js → promote-FINF4HVK.js} +10 -9
- package/dist/cli/provenance-3TUWVBFR.js +141 -0
- package/dist/cli/{provenance-C7AYD7WG.js → provenance-YZG33JGM.js} +10 -9
- package/dist/cli/{provider-QLJEDQBR.js → provider-23JVLLG3.js} +10 -9
- package/dist/cli/{reason-JF5BHBM5.js → reason-FHN54O7O.js} +10 -9
- package/dist/cli/{reconcile-NMISHDGX.js → reconcile-MOM5T4AX.js} +11 -10
- package/dist/cli/{refresh-memory-EY5YNICV.js → refresh-memory-3OSTRAVK.js} +2 -2
- package/dist/cli/{relates-R3ZPICAY.js → relates-6FWUFUS2.js} +10 -9
- package/dist/cli/release-G2DPSG5M.js +347 -0
- package/dist/cli/{release-4ZJTMUUT.js → release-URX6JHZ2.js} +10 -9
- package/dist/cli/{remote-QSONJDIK.js → remote-VIULU2T5.js} +3 -3
- package/dist/cli/{renderers-64OR3IWX.js → renderers-TGSW77J4.js} +2 -2
- package/dist/cli/{reorder-J3DOE7ST.js → reorder-UIPN6TQY.js} +10 -9
- package/dist/cli/{reparent-2OUMKEZX.js → reparent-ALOWWUIU.js} +10 -9
- package/dist/cli/{req-TZB7OFKO.js → req-RH2Y3H7A.js} +10 -9
- package/dist/cli/{research-MTD7EX45.js → research-G2Y72HRC.js} +10 -9
- package/dist/cli/{restore-VEUOX7NF.js → restore-VBR5XNML.js} +62 -15
- package/dist/cli/{revert-3YF2IL5G.js → revert-32LDNSGP.js} +2 -2
- package/dist/cli/{roadmap-7OOQLXKG.js → roadmap-LFU3AG7D.js} +10 -9
- package/dist/cli/{run-2U5NZV5Z.js → run-HXRILSR7.js} +40 -6
- package/dist/cli/{safestop-VR4VK56D.js → safestop-Z5UC7NGQ.js} +10 -9
- package/dist/cli/{saga-SEWPIOX2.js → saga-Y6FZS6AM.js} +12 -11
- package/dist/cli/{schema-C52WZ35V.js → schema-OOOKLWUE.js} +5 -5
- package/dist/cli/{self-update-GQIGUDPS.js → self-update-26SOTJMH.js} +3 -3
- package/dist/cli/{selfimprove-3Y5L4ECT.js → selfimprove-4SMOCLUV.js} +10 -9
- package/dist/cli/selfimprove-EB4RQLP4.js +139 -0
- package/dist/cli/sentient-QPETVE53.js +254 -0
- package/dist/cli/{sentient-M4YMAVGV.js → sentient-RGMWR4XJ.js} +2 -2
- package/dist/cli/{sequence-6UBMA4IF.js → sequence-H7DSAJPF.js} +10 -9
- package/dist/cli/{service-5R7SILZ7.js → service-EK5MGB2D.js} +10 -9
- package/dist/cli/service-GLOMZWPQ.js +437 -0
- package/dist/cli/{session-3C6AAC4Y.js → session-HYUXAQGC.js} +12 -11
- package/dist/cli/session-N5ISU56W.js +568 -0
- package/dist/cli/{setup-BTUBW5PU.js → setup-L3YYV53D.js} +4 -4
- package/dist/cli/{show-MXT2V7TF.js → show-364V3KY2.js} +12 -11
- package/dist/cli/{skill-GFUZOU2C.js → skill-F2KR6HW5.js} +2 -2
- package/dist/cli/{skills-EDWLKAF3.js → skills-FS3DCP6E.js} +13 -12
- package/dist/cli/{snapshot-GUWMURCM.js → snapshot-EGXEQ5PR.js} +12 -11
- package/dist/cli/{src-66GAKPXR.js → src-LYLXHXHH.js} +2 -2
- package/dist/cli/{start-QFG56RGN.js → start-6DXOCCKL.js} +10 -9
- package/dist/cli/{stats-GW55P7RR.js → stats-UVUQEGYC.js} +10 -9
- package/dist/cli/{status-46HTKNRR.js → status-XLKYLN42.js} +3 -3
- package/dist/cli/sticky-VSTQ2I2O.js +264 -0
- package/dist/cli/{sticky-2DUZOUGI.js → sticky-XZXZDCFW.js} +12 -11
- package/dist/cli/{stop-J2QEUKHX.js → stop-VNOAFWNB.js} +10 -9
- package/dist/cli/{sync-GJP2QYT5.js → sync-YYPARW3A.js} +11 -10
- package/dist/cli/tasks-C24KHTFF.js +1118 -0
- package/dist/cli/{tasks-BNXTM7PB.js → tasks-LBJC7CZV.js} +10 -9
- package/dist/cli/{telemetry-55Z2XJWL.js → telemetry-CU7W5WAY.js} +2 -2
- package/dist/cli/{templates-7O77TKPV.js → templates-G42JBUY4.js} +9 -11
- package/dist/cli/{testing-37YTBNKP.js → testing-HSRITHEY.js} +10 -9
- package/dist/cli/{token-UAVJMNUI.js → token-J74E7TSU.js} +10 -9
- package/dist/cli/tools-BI74W7VE.js +652 -0
- package/dist/cli/{transcript-LORQTV5Z.js → transcript-RGK7RSGQ.js} +2 -2
- package/dist/cli/{update-NVCYV2FT.js → update-2KQWA27S.js} +19 -17
- 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-OXJXOGEF.js → upgrade-XRSQ4RWH.js} +5 -5
- package/dist/cli/{verify-LYLDHPT2.js → verify-WASRGDBA.js} +10 -9
- package/dist/cli/{web-QP2RP266.js → web-NJ3P67EU.js} +4 -4
- package/dist/cli/{workgraph-FXBSZDQE.js → workgraph-OHJ2VKJD.js} +6 -6
- package/dist/cli/{worktree-6RXAJIST.js → worktree-FVQLORFY.js} +10 -9
- package/dist/cli/worktree-ZJ6JTQNG.js +287 -0
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{Btgeq_wq.js → AH7dIemv.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{DgEKqO6r.js → BDgH40i3.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/BXDCSJ7U.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{CgBjxmu6.js → Gg4iYl59.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.a02HWaRB.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.nTXyRfc-.js → 0.DWqP3ail.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.4zrWeHtl.js → 1.CZGVUP5B.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.D9mk4JyY.js → 15.DGaflZRS.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16._-wt-sQf.js → 16.uYlarGXl.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.CUu6LQDj.js → 17.CZMR0E47.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.Dz4QRTkX.js → 18.CBC-AKH_.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.CJ2_EB0U.js → 20.BGi43MvQ.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.Igj2FS7k.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.6iPyjT44.js → 26.Cl800304.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.AA5GwNgP.js → 3.D_fQKj9f.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-DGmsoBYm.js → 0-BpOagOst.js} +3 -3
- package/studio-dist/server/chunks/1-D0oRGR-C.js +9 -0
- package/studio-dist/server/chunks/{15-Bg6YTndh.js → 15-BcjHz7Tv.js} +3 -3
- package/studio-dist/server/chunks/{16-BObLwgyD.js → 16-CXm8TUk7.js} +3 -3
- package/studio-dist/server/chunks/{17-BNXGyAHX.js → 17-mSgUK-cp.js} +3 -3
- package/studio-dist/server/chunks/{18-UqQFRIID.js → 18-BtfnIw1d.js} +3 -3
- package/studio-dist/server/chunks/{20-CMn8a_yP.js → 20-By1e4QDS.js} +3 -3
- package/studio-dist/server/chunks/{24-BuOTDzib.js → 24-0i2YLVxG.js} +3 -3
- package/studio-dist/server/chunks/{dist-B8xbIrdB.js → 25-DPsrqbrh.js} +795 -10736
- package/studio-dist/server/chunks/{26-DWGObn2T.js → 26-P0XkOibm.js} +3 -3
- package/studio-dist/server/chunks/{3-CyiffdJZ.js → 3-WudjUK7e.js} +3 -3
- package/studio-dist/server/chunks/{_layout.svelte-DYtClaIk.js → _layout.svelte-D9m81Rle.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CEATWp_5.js → _page.svelte-2PDLOF83.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Bip079LT.js → _page.svelte-BjE3jm2K.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CV3xiD1y.js → _page.svelte-Clc0vmiZ.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DSSy6LuK.js → _page.svelte-DABdRT3h.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-1h9E6s_f.js → _page.svelte-DG3PjiHj.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BT1EUadj.js → _page.svelte-Edy9CaE8.js} +20 -7
- package/studio-dist/server/chunks/{_page.svelte-BNNF62Nm.js → _page.svelte-Hrf3-ZR8.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-TF795TAS.js → _page.svelte-VB4O4Nl5.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Cv_KVJDV.js → _page.svelte-d3jEgjsI.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-CzrwbhkQ.js → _server.ts-BcRFsyo3.js} +4 -5
- package/studio-dist/server/chunks/{_server.ts-C4w6UdU0.js → _server.ts-CEWpIFrj.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-BlhRFLY3.js → _server.ts-CLVdVIF9.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-Db6mEile.js → _server.ts-D_j7aSy5.js} +6 -5
- package/studio-dist/server/chunks/{_server.ts-DWt8Dziu.js → _server.ts-QEZF8h2q.js} +4 -5
- package/studio-dist/server/chunks/{client-D8f2k-H_.js → client-Kp1dP1od.js} +2 -2
- package/studio-dist/server/chunks/{error.svelte-DbbOwIme.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-1ftNGTs5.js → http-DT5kxaWk.js} +5 -4
- package/studio-dist/server/chunks/{internal-CTULuLPB.js → internal-z0vqd5_u.js} +3 -3
- package/studio-dist/server/chunks/operations-registry-DdzmYzqX.js +10584 -0
- package/studio-dist/server/chunks/{stores-CS5XOReX.js → stores-s2kaL315.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +17 -17
- package/dist/cli/chunk-3IOQVUO7.js +0 -17308
- package/dist/cli/chunk-OAPN46TC.js +0 -89
- package/studio-dist/client/_app/immutable/chunks/t81h7afa.js +0 -1
- package/studio-dist/client/_app/immutable/entry/start.BreMSngo.js +0 -1
- package/studio-dist/client/_app/immutable/nodes/25.BnATjVGN.js +0 -39
- package/studio-dist/server/chunks/1-8PfxPvlK.js +0 -9
- package/studio-dist/server/chunks/25-CIMSmjVx.js +0 -366
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
import { T as TASK_STATUSES } from './dist-B8xbIrdB.js';
|
|
2
|
-
import { g as getTasksDb } from './connections2-DyYEcX2h.js';
|
|
3
|
-
import { l as loadExplorerBundle } from './explorer-loader-CP09K03H.js';
|
|
4
|
-
import { computeTaskRollups } from '@cleocode/core/lifecycle/rollup';
|
|
5
|
-
import { getTaskAccessor } from '@cleocode/core/store/data-accessor';
|
|
6
|
-
import { listTasks } from '@cleocode/core/tasks/list';
|
|
7
|
-
import 'node:fs';
|
|
8
|
-
import 'node:path';
|
|
9
|
-
import './cleo-home-_XIqkZaL.js';
|
|
10
|
-
import '@cleocode/core/nexus/hash';
|
|
11
|
-
import '@cleocode/core/paths.js';
|
|
12
|
-
import '@cleocode/core/store/dual-scope-db';
|
|
13
|
-
import 'node:module';
|
|
14
|
-
import '@cleocode/core';
|
|
15
|
-
import '@cleocode/core/store/open-cleo-db';
|
|
16
|
-
import '@cleocode/core/store/worktree-build-guard';
|
|
17
|
-
|
|
18
|
-
//#region src/routes/tasks/+page.server.ts
|
|
19
|
-
/**
|
|
20
|
-
* Set of all valid {@link TaskStatus} values, used for O(1) narrowing at
|
|
21
|
-
* the server boundary. Sourced from the canonical {@link TASK_STATUSES}
|
|
22
|
-
* registry so any future status addition is picked up for free.
|
|
23
|
-
*/
|
|
24
|
-
var TASK_STATUS_SET = new Set(TASK_STATUSES);
|
|
25
|
-
/**
|
|
26
|
-
* Set of canonical {@link TaskPriority} values. Mirrors the union in
|
|
27
|
-
* `@cleocode/contracts` — the contracts package does not (yet) export a
|
|
28
|
-
* runtime constant tuple for it, so we declare the narrow literal tuple
|
|
29
|
-
* here and let TypeScript enforce exhaustiveness via the
|
|
30
|
-
* `TaskPriority[]` type annotation.
|
|
31
|
-
*/
|
|
32
|
-
var TASK_PRIORITY_SET = new Set([
|
|
33
|
-
"critical",
|
|
34
|
-
"high",
|
|
35
|
-
"medium",
|
|
36
|
-
"low"
|
|
37
|
-
]);
|
|
38
|
-
/**
|
|
39
|
-
* Narrow a raw `status` string from the SQL layer to {@link TaskStatus}.
|
|
40
|
-
*
|
|
41
|
-
* The dashboard SELECT filters rows to `('active', 'pending', 'done'[,
|
|
42
|
-
* 'archived'])`, but the DB column is declared as `TEXT` — so at the TS
|
|
43
|
-
* layer we still need to prove the narrowing to satisfy the strict
|
|
44
|
-
* {@link RecentTaskRow} union. Unknown values fall back to `'cancelled'`
|
|
45
|
-
* (a terminal bucket that cannot ship an unrelated render path) and log
|
|
46
|
-
* a one-line warning so a schema drift bug gets noticed.
|
|
47
|
-
*/
|
|
48
|
-
function narrowStatus(raw, taskId) {
|
|
49
|
-
if (TASK_STATUS_SET.has(raw)) return raw;
|
|
50
|
-
console.warn(`[tasks/+page.server] unexpected status "${raw}" for ${taskId}; coerced to "cancelled".`);
|
|
51
|
-
return "cancelled";
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Narrow a raw `priority` string from the SQL layer to {@link TaskPriority}.
|
|
55
|
-
*
|
|
56
|
-
* Same rationale as {@link narrowStatus} — the DB column is loose. Unknown
|
|
57
|
-
* values fall back to `'low'` and warn once per row.
|
|
58
|
-
*/
|
|
59
|
-
function narrowPriority(raw, taskId) {
|
|
60
|
-
if (TASK_PRIORITY_SET.has(raw)) return raw;
|
|
61
|
-
console.warn(`[tasks/+page.server] unexpected priority "${raw}" for ${taskId}; coerced to "low".`);
|
|
62
|
-
return "low";
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Resolve the canonical "include cancelled epics" flag from a possibly-legacy
|
|
66
|
-
* options bag, preferring {@link DeprecatedEpicProgressOptions.includeCancelled}
|
|
67
|
-
* over the deprecated `includeDeferred`.
|
|
68
|
-
*/
|
|
69
|
-
function resolveIncludeCancelled(options) {
|
|
70
|
-
if (typeof options.includeCancelled === "boolean") return options.includeCancelled;
|
|
71
|
-
if (typeof options.includeDeferred === "boolean") return options.includeDeferred;
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Compute dashboard epic-progress rows using a direct-children basis.
|
|
76
|
-
*
|
|
77
|
-
* @deprecated T948: production `load()` now uses
|
|
78
|
-
* {@link _computeEpicProgressViaRollup} which routes through
|
|
79
|
-
* `cleo.lifecycle.computeRollupsBatch` so Studio, the CLI, and
|
|
80
|
-
* `/tasks/pipeline` all see the same projection. This pure SQL helper is
|
|
81
|
-
* retained only so the T874/T878 test suites (which pass an in-memory
|
|
82
|
-
* `node:sqlite` db) keep working without a wholesale rewrite.
|
|
83
|
-
*
|
|
84
|
-
* Pure function so it can be unit-tested against an in-memory SQLite DB
|
|
85
|
-
* without spinning up the full SvelteKit load context.
|
|
86
|
-
*
|
|
87
|
-
* T958: `options.includeDeferred` renamed to `options.includeCancelled`
|
|
88
|
-
* since "deferred" was only ever a UI label for `status='cancelled'` on
|
|
89
|
-
* epics — not a real DB field. The legacy option name is still accepted
|
|
90
|
-
* for one release via {@link DeprecatedEpicProgressOptions}.
|
|
91
|
-
*
|
|
92
|
-
* @param db - SQLite DB handle (better-sqlite3-compatible).
|
|
93
|
-
* @param options.includeCancelled - When true, include cancelled epics too.
|
|
94
|
-
* @param options.includeDeferred - Deprecated alias for `includeCancelled`.
|
|
95
|
-
* @returns One {@link EpicProgress} row per epic (filtered by `includeCancelled`).
|
|
96
|
-
*
|
|
97
|
-
* @task T874 | T878 | T948 | T958
|
|
98
|
-
* @epic T876 | T949
|
|
99
|
-
*/
|
|
100
|
-
function _computeEpicProgress(db, options = {}) {
|
|
101
|
-
const epicFilter = resolveIncludeCancelled(options) ? `status != 'archived'` : `status NOT IN ('archived','cancelled')`;
|
|
102
|
-
return db.prepare(`SELECT id, title, status FROM tasks WHERE type = 'epic' AND ${epicFilter} ORDER BY id`).all().map((epic) => {
|
|
103
|
-
const children = db.prepare(`SELECT status, COUNT(*) as cnt
|
|
104
|
-
FROM tasks
|
|
105
|
-
WHERE parent_id = ?
|
|
106
|
-
AND status != 'archived'
|
|
107
|
-
GROUP BY status`).all(epic.id);
|
|
108
|
-
const childMap = Object.fromEntries(children.map((r) => [r.status, r.cnt]));
|
|
109
|
-
const total = Object.values(childMap).reduce((a, b) => a + b, 0);
|
|
110
|
-
return {
|
|
111
|
-
id: epic.id,
|
|
112
|
-
title: epic.title,
|
|
113
|
-
status: epic.status,
|
|
114
|
-
total,
|
|
115
|
-
done: childMap["done"] ?? 0,
|
|
116
|
-
active: childMap["active"] ?? 0,
|
|
117
|
-
pending: childMap["pending"] ?? 0,
|
|
118
|
-
cancelled: childMap["cancelled"] ?? 0
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Build an {@link EpicProgress} row from a parent epic + its child rollups.
|
|
124
|
-
*
|
|
125
|
-
* Pure transformation, no I/O. Child rollups arrive already filtered to the
|
|
126
|
-
* epic's direct, non-archived children — this function only tallies
|
|
127
|
-
* `execStatus` into dashboard buckets.
|
|
128
|
-
*
|
|
129
|
-
* Exported for tests (T948).
|
|
130
|
-
*/
|
|
131
|
-
function _epicRowFromRollups(parent, children) {
|
|
132
|
-
let done = 0;
|
|
133
|
-
let active = 0;
|
|
134
|
-
let pending = 0;
|
|
135
|
-
let cancelled = 0;
|
|
136
|
-
for (const child of children) switch (child.execStatus) {
|
|
137
|
-
case "done":
|
|
138
|
-
done += 1;
|
|
139
|
-
break;
|
|
140
|
-
case "active":
|
|
141
|
-
active += 1;
|
|
142
|
-
break;
|
|
143
|
-
case "pending":
|
|
144
|
-
pending += 1;
|
|
145
|
-
break;
|
|
146
|
-
case "cancelled":
|
|
147
|
-
cancelled += 1;
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
id: parent.id,
|
|
152
|
-
title: parent.title,
|
|
153
|
-
status: parent.status,
|
|
154
|
-
total: children.length,
|
|
155
|
-
done,
|
|
156
|
-
active,
|
|
157
|
-
pending,
|
|
158
|
-
cancelled
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Compute epic-progress rows via the canonical task-rollup facade.
|
|
163
|
-
*
|
|
164
|
-
* T948: this is the production path. For every non-archived epic we issue a
|
|
165
|
-
* single `computeRollup` call to get the parent's exec status plus a
|
|
166
|
-
* `computeRollupsBatch` for its direct children, then delegate to
|
|
167
|
-
* {@link _epicRowFromRollups} for the tally.
|
|
168
|
-
*
|
|
169
|
-
* T958: `options.includeDeferred` renamed to `options.includeCancelled`. The
|
|
170
|
-
* deprecated key is still accepted for one release.
|
|
171
|
-
*
|
|
172
|
-
* @param projectPath - Absolute path to the active project (from
|
|
173
|
-
* `locals.projectCtx.projectPath`). Passed straight to
|
|
174
|
-
* `Cleo.forProject` so the DataAccessor opens against
|
|
175
|
-
* the right tasks.db.
|
|
176
|
-
* @param options.includeCancelled - Include `status='cancelled'` epics.
|
|
177
|
-
* @param options.includeDeferred - Deprecated alias for `includeCancelled`.
|
|
178
|
-
* @returns Epic progress rows in deterministic (sorted-id) order.
|
|
179
|
-
*/
|
|
180
|
-
async function _computeEpicProgressViaRollup(projectPath, options = {}) {
|
|
181
|
-
const includeCancelled = resolveIncludeCancelled(options);
|
|
182
|
-
const accessor = await getTaskAccessor(projectPath);
|
|
183
|
-
const epics = (await listTasks({
|
|
184
|
-
type: "epic",
|
|
185
|
-
excludeArchived: true,
|
|
186
|
-
sortByPriority: false,
|
|
187
|
-
limit: 1e3
|
|
188
|
-
}, projectPath, accessor)).tasks.filter((e) => includeCancelled || e.status !== "cancelled").sort((a, b) => a.id.localeCompare(b.id));
|
|
189
|
-
const rows = [];
|
|
190
|
-
for (const epic of epics) {
|
|
191
|
-
const childRollups = await computeTaskRollups((await listTasks({
|
|
192
|
-
parentId: epic.id,
|
|
193
|
-
excludeArchived: true,
|
|
194
|
-
sortByPriority: false,
|
|
195
|
-
limit: 1e3
|
|
196
|
-
}, projectPath, accessor)).tasks.map((c) => c.id), accessor);
|
|
197
|
-
rows.push(_epicRowFromRollups({
|
|
198
|
-
id: epic.id,
|
|
199
|
-
title: epic.title,
|
|
200
|
-
status: epic.status
|
|
201
|
-
}, childRollups));
|
|
202
|
-
}
|
|
203
|
-
return rows;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* One-time guard so the server only warns about a legacy `?deferred=1` URL
|
|
207
|
-
* once per process lifetime, regardless of how many `/tasks` page loads see
|
|
208
|
-
* the param. Mirrors the client-side guard in
|
|
209
|
-
* `packages/studio/src/lib/stores/task-filters.svelte.ts`.
|
|
210
|
-
*/
|
|
211
|
-
var legacyDeferredWarningEmitted = false;
|
|
212
|
-
/**
|
|
213
|
-
* Emit a one-time `console.warn` flagging `?deferred=1` as deprecated.
|
|
214
|
-
*
|
|
215
|
-
* @internal
|
|
216
|
-
*/
|
|
217
|
-
function warnLegacyDeferredParamOnce() {
|
|
218
|
-
if (legacyDeferredWarningEmitted) return;
|
|
219
|
-
legacyDeferredWarningEmitted = true;
|
|
220
|
-
console.warn("[tasks/+page.server] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked as a follow-up to T958.");
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* @internal
|
|
224
|
-
* Test-only hook to reset the one-time `?deferred=1` warning guard so
|
|
225
|
-
* repeated test cases can observe the warning firing exactly once per
|
|
226
|
-
* scenario.
|
|
227
|
-
*/
|
|
228
|
-
function __resetLegacyDeferredParamWarningForTests() {
|
|
229
|
-
legacyDeferredWarningEmitted = false;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Empty explorer-bundle stub returned whenever the shared loader cannot
|
|
233
|
-
* produce a payload (missing tasks.db, half-initialised project, or the
|
|
234
|
-
* loader threw). The hybrid `/tasks` page can still render the dashboard
|
|
235
|
-
* panel and show an "Explorer empty" message without crashing.
|
|
236
|
-
*/
|
|
237
|
-
function emptyExplorerBundle() {
|
|
238
|
-
return {
|
|
239
|
-
tasks: [],
|
|
240
|
-
deps: [],
|
|
241
|
-
epicProgress: {},
|
|
242
|
-
labels: [],
|
|
243
|
-
loadedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Load the shared Task Explorer payload side-by-side with the dashboard.
|
|
248
|
-
*
|
|
249
|
-
* Extracted as its own helper so the try/catch around the explorer loader
|
|
250
|
-
* stays surgical — an Explorer failure must NOT blank the dashboard panel.
|
|
251
|
-
*
|
|
252
|
-
* @param ctx - Active project context (from `locals.projectCtx`).
|
|
253
|
-
* @param includeArchived - Pass through the dashboard archived toggle.
|
|
254
|
-
* @returns The explorer bundle, or an empty stub on any failure.
|
|
255
|
-
*
|
|
256
|
-
* @internal
|
|
257
|
-
*/
|
|
258
|
-
async function loadExplorerSafe(ctx, includeArchived) {
|
|
259
|
-
try {
|
|
260
|
-
return await loadExplorerBundle({
|
|
261
|
-
projectCtx: ctx,
|
|
262
|
-
includeArchived
|
|
263
|
-
});
|
|
264
|
-
} catch {
|
|
265
|
-
return emptyExplorerBundle();
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
var load = async ({ locals, url }) => {
|
|
269
|
-
const db = getTasksDb(locals.projectCtx);
|
|
270
|
-
const cancelledParam = url.searchParams.get("cancelled") === "1";
|
|
271
|
-
const legacyDeferredParam = url.searchParams.get("deferred") === "1";
|
|
272
|
-
if (legacyDeferredParam) warnLegacyDeferredParamOnce();
|
|
273
|
-
const showCancelled = cancelledParam || legacyDeferredParam;
|
|
274
|
-
const showArchived = url.searchParams.get("archived") === "1";
|
|
275
|
-
const filters = {
|
|
276
|
-
showCancelled,
|
|
277
|
-
showArchived
|
|
278
|
-
};
|
|
279
|
-
const explorerPromise = loadExplorerSafe(locals.projectCtx, showArchived);
|
|
280
|
-
if (!db) return {
|
|
281
|
-
stats: null,
|
|
282
|
-
recentTasks: [],
|
|
283
|
-
epicProgress: [],
|
|
284
|
-
filters,
|
|
285
|
-
explorer: await explorerPromise
|
|
286
|
-
};
|
|
287
|
-
try {
|
|
288
|
-
const countByStatus = db.prepare("SELECT status, COUNT(*) as cnt FROM tasks GROUP BY status").all();
|
|
289
|
-
const countByPriority = db.prepare(`SELECT priority, COUNT(*) as cnt FROM tasks WHERE status != 'archived' GROUP BY priority`).all();
|
|
290
|
-
const countByType = db.prepare(`SELECT type, COUNT(*) as cnt FROM tasks WHERE status != 'archived' GROUP BY type`).all();
|
|
291
|
-
const statusMap = Object.fromEntries(countByStatus.map((r) => [r.status, r.cnt]));
|
|
292
|
-
const priorityMap = Object.fromEntries(countByPriority.map((r) => [r.priority, r.cnt]));
|
|
293
|
-
const typeMap = Object.fromEntries(countByType.map((r) => [r.type, r.cnt]));
|
|
294
|
-
const stats = {
|
|
295
|
-
total: (statusMap["pending"] ?? 0) + (statusMap["active"] ?? 0) + (statusMap["done"] ?? 0) + (statusMap["cancelled"] ?? 0),
|
|
296
|
-
pending: statusMap["pending"] ?? 0,
|
|
297
|
-
active: statusMap["active"] ?? 0,
|
|
298
|
-
done: statusMap["done"] ?? 0,
|
|
299
|
-
cancelled: statusMap["cancelled"] ?? 0,
|
|
300
|
-
archived: statusMap["archived"] ?? 0,
|
|
301
|
-
critical: priorityMap["critical"] ?? 0,
|
|
302
|
-
high: priorityMap["high"] ?? 0,
|
|
303
|
-
medium: priorityMap["medium"] ?? 0,
|
|
304
|
-
low: priorityMap["low"] ?? 0,
|
|
305
|
-
epics: typeMap["epic"] ?? 0,
|
|
306
|
-
tasks: typeMap["task"] ?? 0,
|
|
307
|
-
subtasks: typeMap["subtask"] ?? 0
|
|
308
|
-
};
|
|
309
|
-
const recentStatusFilter = showArchived ? `status IN ('active', 'pending', 'done', 'archived')` : `status IN ('active', 'pending', 'done')`;
|
|
310
|
-
const recentTasks = db.prepare(`SELECT id, title, status, priority, type, pipeline_stage, updated_at
|
|
311
|
-
FROM tasks
|
|
312
|
-
WHERE ${recentStatusFilter}
|
|
313
|
-
ORDER BY updated_at DESC
|
|
314
|
-
LIMIT 20`).all().map((row) => ({
|
|
315
|
-
id: row.id,
|
|
316
|
-
title: row.title,
|
|
317
|
-
status: narrowStatus(row.status, row.id),
|
|
318
|
-
priority: narrowPriority(row.priority, row.id),
|
|
319
|
-
type: row.type,
|
|
320
|
-
pipeline_stage: row.pipeline_stage,
|
|
321
|
-
updated_at: row.updated_at
|
|
322
|
-
}));
|
|
323
|
-
let epicProgress = [];
|
|
324
|
-
try {
|
|
325
|
-
epicProgress = await _computeEpicProgressViaRollup(locals.projectCtx.projectPath, { includeCancelled: showCancelled });
|
|
326
|
-
} catch {
|
|
327
|
-
epicProgress = _computeEpicProgress(db, { includeCancelled: showCancelled });
|
|
328
|
-
}
|
|
329
|
-
const explorer = await explorerPromise;
|
|
330
|
-
return {
|
|
331
|
-
stats,
|
|
332
|
-
recentTasks,
|
|
333
|
-
epicProgress,
|
|
334
|
-
filters,
|
|
335
|
-
explorer
|
|
336
|
-
};
|
|
337
|
-
} catch {
|
|
338
|
-
return {
|
|
339
|
-
stats: null,
|
|
340
|
-
recentTasks: [],
|
|
341
|
-
epicProgress: [],
|
|
342
|
-
filters,
|
|
343
|
-
explorer: await explorerPromise
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
349
|
-
__proto__: null,
|
|
350
|
-
__resetLegacyDeferredParamWarningForTests: __resetLegacyDeferredParamWarningForTests,
|
|
351
|
-
_computeEpicProgress: _computeEpicProgress,
|
|
352
|
-
_computeEpicProgressViaRollup: _computeEpicProgressViaRollup,
|
|
353
|
-
_epicRowFromRollups: _epicRowFromRollups,
|
|
354
|
-
load: load
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
const index = 25;
|
|
358
|
-
let component_cache;
|
|
359
|
-
const component = async () => component_cache ??= (await import('./_page.svelte-BT1EUadj.js')).default;
|
|
360
|
-
const server_id = "src/routes/tasks/+page.server.ts";
|
|
361
|
-
const imports = ["_app/immutable/nodes/25.BnATjVGN.js","_app/immutable/chunks/DGftG5oL.js","_app/immutable/chunks/DgEKqO6r.js","_app/immutable/chunks/t81h7afa.js","_app/immutable/chunks/Btgeq_wq.js","_app/immutable/chunks/EZwHPWle.js","_app/immutable/chunks/CqgtdAx_.js","_app/immutable/chunks/B8WnZMYa.js","_app/immutable/chunks/rUtW7Hx6.js","_app/immutable/chunks/Cge6qiwc.js","_app/immutable/chunks/DZrdToAH.js","_app/immutable/chunks/CTLGzgdN.js"];
|
|
362
|
-
const stylesheets = ["_app/immutable/assets/StatBlock.DX6OXz7z.css","_app/immutable/assets/no-face-up.BlswZ73M.css","_app/immutable/assets/Tabs.CU9_rsWl.css","_app/immutable/assets/ui.CH-9N9-0.css","_app/immutable/assets/tasks.BZWJL4jq.css","_app/immutable/assets/25.BtvG5YXz.css"];
|
|
363
|
-
const fonts = [];
|
|
364
|
-
|
|
365
|
-
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
366
|
-
//# sourceMappingURL=25-CIMSmjVx.js.map
|