@qwen-code/qwen-code 0.22.0 → 0.22.2-preview.0
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/bundled/computer-use/SKILL.md +229 -0
- package/bundled/computer-use/agents/openai.yaml +4 -0
- package/bundled/coordinate/SKILL.md +5 -5
- package/bundled/qc-helper/docs/configuration/auth.md +7 -7
- package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
- package/bundled/qc-helper/docs/configuration/settings.md +40 -40
- package/bundled/qc-helper/docs/extension/introduction.md +3 -1
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
- package/bundled/qc-helper/docs/features/code-review.md +25 -21
- package/bundled/qc-helper/docs/features/commands.md +2 -2
- package/bundled/qc-helper/docs/features/computer-use.md +57 -51
- package/bundled/qc-helper/docs/features/mcp.md +35 -12
- package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
- package/bundled/qc-helper/docs/features/worktree.md +1 -1
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +29 -6
- package/bundled/review/SKILL.md +119 -417
- package/bundled/review/references/aone.md +18 -0
- package/bundled/review/references/persistence.md +105 -0
- package/bundled/review/references/posting.md +270 -0
- package/chunks/MaxSizedBox-XYQOMOBE.js +112 -0
- package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-KFMJILVY.js} +87 -86
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-KNFTTDWL.js} +2216 -1931
- package/chunks/agent-6V6MZOA7.js +97 -0
- package/chunks/agent-headless-3ZC4LX3E.js +87 -0
- package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-U76GTVB6.js} +128 -58
- package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XDJCZZCF.js} +2 -2
- package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-ZXXERLEV.js} +2 -2
- package/chunks/bridge-LFFLHLU5.js +119 -0
- package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
- package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-HXXS3HOZ.js} +4 -4
- package/chunks/channel-settings-store-CAL2HWAH.js +117 -0
- package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-EVDC2P4K.js} +8 -7
- package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-IJJZHGEI.js} +8 -7
- package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-YSKB5GVB.js} +12 -7
- package/chunks/{chunk-2TRNCJK4.js → chunk-27ONXAFY.js} +1 -1
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-DB2OKNTU.js → chunk-2FN2HNTI.js} +2 -2
- package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
- package/chunks/{chunk-QJHPWLZC.js → chunk-2MHGD7EE.js} +1 -1
- package/chunks/{chunk-A5F2YNO6.js → chunk-2NNTE2ED.js} +245 -10
- package/chunks/{chunk-Z3JMO2CH.js → chunk-2SERYG4T.js} +1 -1
- package/chunks/{chunk-4J7OPYNS.js → chunk-2YDYDDE2.js} +6 -6
- package/chunks/{chunk-SE55HQGF.js → chunk-3B5DCAQU.js} +74 -52
- package/chunks/{chunk-UIRLQ3N7.js → chunk-3BV7TZNQ.js} +3 -3
- package/chunks/{chunk-2Z6LSQMF.js → chunk-3FSBMAYD.js} +1 -1
- package/chunks/{chunk-S4C4JJKE.js → chunk-3UXJFOB3.js} +5 -5
- package/chunks/{chunk-DJEHYM4H.js → chunk-3UZCLCXR.js} +3 -3
- package/chunks/{chunk-BUGYW6FB.js → chunk-4IDJQOCO.js} +1 -1
- package/chunks/chunk-4K7NQDCG.js +104 -0
- package/chunks/{chunk-WS7PAXXR.js → chunk-4N6UAPD3.js} +18 -13
- package/chunks/{chunk-VYC7XFYV.js → chunk-4PLAO7FS.js} +5 -5
- package/chunks/{chunk-UZPYR3EV.js → chunk-4TPAG3O7.js} +1 -1
- package/chunks/{chunk-2E3V7G6Y.js → chunk-4X5GYZFO.js} +55 -50
- package/chunks/{chunk-XYQHT3AW.js → chunk-4Z3PSHN4.js} +2 -2
- package/chunks/{chunk-PDL6LKB5.js → chunk-5AFPOEY3.js} +1 -1
- package/chunks/{chunk-BB5IMQCV.js → chunk-5CW26JIE.js} +2 -2
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-U2UYQMM6.js → chunk-5NV2AN56.js} +3 -3
- package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
- package/chunks/{chunk-IBJ5S45N.js → chunk-5T4LWWNX.js} +2 -2
- package/chunks/{chunk-VUMLT7E5.js → chunk-5Y2JCJAH.js} +2 -2
- package/chunks/{chunk-BEGIBJAZ.js → chunk-6HOU52QX.js} +4 -4
- package/chunks/{chunk-GAHYKJPV.js → chunk-6US7BF3G.js} +7 -59
- package/chunks/{chunk-3CLIDIVQ.js → chunk-73WFGVIZ.js} +3 -3
- package/chunks/{chunk-ZZUVC6RI.js → chunk-76WGY6LW.js} +3 -3
- package/chunks/{chunk-XLDFW44M.js → chunk-77TOMRBG.js} +3 -3
- package/chunks/{chunk-ND7NOI4P.js → chunk-7CWEZQ6T.js} +0 -15
- package/chunks/{chunk-DWCKACFL.js → chunk-7DPKPBOQ.js} +2 -2
- package/chunks/{chunk-X7V3N6YH.js → chunk-7JJUFI36.js} +218 -37
- package/chunks/{chunk-45NQKMYB.js → chunk-7JPW6IYH.js} +1 -1
- package/chunks/{chunk-HDKCKCYO.js → chunk-7QGEJI7M.js} +1 -1
- package/chunks/{chunk-PHJJ3RVO.js → chunk-7XKW4CVK.js} +7 -15
- package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
- package/chunks/{chunk-7DYNJFES.js → chunk-AYVIGUUK.js} +6 -1
- package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
- package/chunks/{chunk-OARZJFZX.js → chunk-BGWT7VBV.js} +4 -4
- package/chunks/{chunk-AP3B7LKD.js → chunk-BKDAF7ES.js} +2 -2
- package/chunks/{chunk-B6UBOIFE.js → chunk-BQBUZDDH.js} +14 -11
- package/chunks/{chunk-6PCOVQO2.js → chunk-BU7OUDQB.js} +8 -8
- package/chunks/{chunk-VLRBJ24J.js → chunk-BVE5EMIG.js} +2 -2
- package/chunks/{chunk-6UQSU7CQ.js → chunk-C2BAEV64.js} +58 -107
- package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
- package/chunks/{chunk-URN2JIAQ.js → chunk-CITGRGCM.js} +2 -1
- package/chunks/{chunk-WU5E4HMO.js → chunk-CPPYZHBN.js} +1 -1
- package/chunks/{chunk-T6XLJRQY.js → chunk-D6XO27Z5.js} +36509 -5182
- package/chunks/{chunk-Q54XG7IX.js → chunk-DEYPMJPD.js} +1 -1
- package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
- package/chunks/{chunk-I432KXWD.js → chunk-DP7LABIB.js} +1 -1
- package/chunks/{chunk-P47E4SJC.js → chunk-DWRFOH3G.js} +3 -3
- package/chunks/{chunk-J5ZDDUKM.js → chunk-DX5FZGHZ.js} +4 -4
- package/chunks/{chunk-36OF5PRW.js → chunk-E4I5MVBR.js} +7 -3
- package/chunks/{chunk-AW27A43Y.js → chunk-E55H6BZ7.js} +93 -1
- package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
- package/chunks/{chunk-YZBDKFRQ.js → chunk-EADEZDPO.js} +993 -895
- package/chunks/{chunk-5XUTPXQU.js → chunk-EAV3TENS.js} +6 -9
- package/chunks/{chunk-LI4YHTQK.js → chunk-EB4VDXNI.js} +1 -1
- package/chunks/{chunk-JOLJTKIG.js → chunk-EC5BONC3.js} +1 -1
- package/chunks/{chunk-W4CRPSC5.js → chunk-ELY4QVIB.js} +1 -1
- package/chunks/{chunk-AVCCKIZ6.js → chunk-EWBY3PFB.js} +1 -1
- package/chunks/chunk-FBX2SDQ4.js +48 -0
- package/chunks/{chunk-C72BXMJ5.js → chunk-FJWICLG7.js} +1 -1
- package/chunks/{chunk-LDGWX737.js → chunk-FN5C6C7G.js} +160 -59
- package/chunks/{chunk-3ZFJUBTP.js → chunk-FPH6TXD3.js} +1 -1
- package/chunks/{chunk-WRT324N6.js → chunk-FVDQ5E67.js} +3 -3
- package/chunks/{chunk-2A4C2MEG.js → chunk-FY62MBPS.js} +35 -12
- package/chunks/{chunk-VFACN2CE.js → chunk-GNMJNDZE.js} +1 -1
- package/chunks/{chunk-6QSA4JHL.js → chunk-GQAIZL3H.js} +2772 -814
- package/chunks/{chunk-PZRUV52H.js → chunk-GTUKW3I6.js} +20 -2
- package/chunks/{chunk-7DMTAQJ6.js → chunk-GXWY24QS.js} +132 -49
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-VMJL7RH6.js → chunk-GZJUCMH4.js} +4 -4
- package/chunks/{chunk-2GXYDNXP.js → chunk-H2MDBYLL.js} +8 -8
- package/chunks/{chunk-RDG44S5I.js → chunk-H4JK2A2V.js} +2 -2
- package/chunks/{chunk-FVBVJEBG.js → chunk-HOANA6GC.js} +10 -8
- package/chunks/{chunk-AO4M6NMD.js → chunk-I6HWGOWD.js} +60 -20
- package/chunks/{chunk-7IV52LTO.js → chunk-I6VVOZDK.js} +2 -2
- package/chunks/{chunk-SQS55KR4.js → chunk-IJVDHPKD.js} +2 -2
- package/chunks/{chunk-QS4ENGVF.js → chunk-IKN3IUJP.js} +9 -8
- package/chunks/{chunk-2UZJWSVD.js → chunk-ILPXSKGQ.js} +2 -2
- package/chunks/{chunk-OVH5Y7KS.js → chunk-IN66KO3N.js} +19 -3
- package/chunks/{chunk-ZRYQMWEP.js → chunk-IPQA4SR5.js} +2 -2
- package/chunks/{chunk-AZF6SME3.js → chunk-JECO75XD.js} +3 -3
- package/chunks/{chunk-MQP3MHWN.js → chunk-JJJD6QCC.js} +21 -15
- package/chunks/chunk-JLGFGPZJ.js +346 -0
- package/chunks/{chunk-WZDM44SB.js → chunk-JUIJ3FXC.js} +7 -7
- package/chunks/{chunk-A6NRNRKE.js → chunk-JVPFTDBK.js} +1 -1
- package/chunks/{chunk-2J3OJGTL.js → chunk-K2OJUPOE.js} +1 -21
- package/chunks/{chunk-GHY5OIYP.js → chunk-K5PNJ6VL.js} +13 -13
- package/chunks/{chunk-NW35NVFN.js → chunk-K6FURWIX.js} +4 -4
- package/chunks/{chunk-6NFAEG54.js → chunk-KOJ6MHD5.js} +24 -13
- package/chunks/{chunk-A5F63FEW.js → chunk-L436XFLJ.js} +1 -1
- package/chunks/{chunk-GIWB5QLV.js → chunk-LJP2BBMK.js} +4 -4
- package/chunks/{chunk-FYZMB6DB.js → chunk-LKOSBI2M.js} +11 -11
- package/chunks/{create-sub-session-XBCVGNFU.js → chunk-LRKMQPMD.js} +4 -6
- package/chunks/{chunk-5HJUPACR.js → chunk-LRLMDV5X.js} +2 -2
- package/chunks/{chunk-MHG6NDS6.js → chunk-MB4OCRQ2.js} +2 -2
- package/chunks/{chunk-IIWGSX4L.js → chunk-MI7CMXPU.js} +1 -1
- package/chunks/{chunk-ZLCT4C5A.js → chunk-MZS7GEC7.js} +1 -1
- package/chunks/{chunk-WWUSHZ7M.js → chunk-N4B7VPXK.js} +5 -5
- package/chunks/{chunk-BMCSKS37.js → chunk-NUHCXGAD.js} +6 -6
- package/chunks/{chunk-XZJKSETB.js → chunk-O3BUXIPM.js} +3 -3
- package/chunks/{chunk-4XPSVIED.js → chunk-O5YGAEQS.js} +6 -6
- package/chunks/{chunk-ZRFUT5VV.js → chunk-OAAPGZVH.js} +7 -7
- package/chunks/{chunk-UU4WC7DK.js → chunk-OGZAQWJP.js} +82 -12
- package/chunks/{chunk-5XHAOUWD.js → chunk-OI2DR6QB.js} +3 -3
- package/chunks/{chunk-EFB657PR.js → chunk-OX44MOAN.js} +3 -3
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-4F5WV4RF.js → chunk-PAJGKZAA.js} +281 -10
- package/chunks/{chunk-HIK2OF33.js → chunk-PVBT5QPD.js} +1 -1
- package/chunks/{chunk-MPHLIJYL.js → chunk-QB5DD75E.js} +14 -8
- package/chunks/chunk-QHMLYMMS.js +32 -0
- package/chunks/{chunk-4CWDWDL6.js → chunk-RCDXSEJ5.js} +1 -1
- package/chunks/{chunk-L4HVF7LM.js → chunk-RQ5ASDFQ.js} +3 -3
- package/chunks/{chunk-PXOJLJ5W.js → chunk-RQAMNZ4Y.js} +333 -184
- package/chunks/{chunk-K52PZNU4.js → chunk-RRKNX553.js} +2 -2
- package/chunks/{chunk-RPJQ3O4M.js → chunk-RUJTCU46.js} +31 -41
- package/chunks/{chunk-62JOGZL5.js → chunk-RUQBJS34.js} +199 -87
- package/chunks/chunk-RXFQM6FQ.js +42 -0
- package/chunks/{chunk-SJ4HB27T.js → chunk-SDVF6A42.js} +3 -3
- package/chunks/{chunk-TBVSALA3.js → chunk-SKNVVYIJ.js} +3 -3
- package/chunks/{chunk-JGUBDRBC.js → chunk-SLEWBQWM.js} +3 -3
- package/chunks/{chunk-UUQFJILB.js → chunk-SQPOJ4ZI.js} +15 -3
- package/chunks/{chunk-ISJMN3ML.js → chunk-T2CRBIDJ.js} +1 -1
- package/chunks/{chunk-MZKWFWVG.js → chunk-T2HMXHYA.js} +6 -6
- package/chunks/{chunk-FEMQ6Y7W.js → chunk-T6OODF2U.js} +47 -126
- package/chunks/{chunk-KVGR4MCF.js → chunk-TOF4UZHH.js} +3 -3
- package/chunks/{chunk-7HFULI45.js → chunk-TQYZG5DU.js} +3 -3
- package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
- package/chunks/{chunk-25NESM4G.js → chunk-TWUA5EIL.js} +29 -5
- package/chunks/{chunk-6FRJEE2S.js → chunk-U66FXEH2.js} +5 -5
- package/chunks/{chunk-7NBVNAJJ.js → chunk-UCSV2IZW.js} +3 -3
- package/chunks/chunk-UVDOONRU.js +20 -0
- package/chunks/{chunk-FDD2IUEL.js → chunk-UX3IFLJM.js} +229 -21
- package/chunks/{chunk-YDJRMQU4.js → chunk-V3GINY6K.js} +3 -3
- package/chunks/{chunk-XL5K4SVK.js → chunk-VL4YX3FH.js} +1 -1
- package/chunks/{chunk-ZS5BHEPD.js → chunk-VLY6XOBY.js} +1 -1
- package/chunks/{chunk-KIVGVFMM.js → chunk-VUZY6MEQ.js} +16 -4
- package/chunks/{chunk-OE52YHCZ.js → chunk-W2WRNJKX.js} +11 -11
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-IWOWEENB.js → chunk-WBT3STGU.js} +385 -25
- package/chunks/{chunk-S3G6YFQC.js → chunk-WEGXPP5E.js} +1 -1
- package/chunks/{chunk-RDQ7QB4Y.js → chunk-XJS54K4A.js} +2 -2
- package/chunks/{chunk-7JBHIQS2.js → chunk-XO4NGYRP.js} +7 -13
- package/chunks/{chunk-F6WFNA7U.js → chunk-XZA32HII.js} +3 -6
- package/chunks/{chunk-VEND4KA4.js → chunk-YT5XN3HV.js} +1 -1
- package/chunks/{chunk-NUGZAFR2.js → chunk-ZEADBZLO.js} +147 -6
- package/chunks/chunk-ZELCTN6Y.js +29 -0
- package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
- package/chunks/{chunk-IOSEW6KP.js → chunk-ZJG323IA.js} +5 -4
- package/chunks/{chunk-VSNPOSDN.js → chunk-ZKAZP2ZG.js} +107 -12
- package/chunks/{chunk-YMVFIYHV.js → chunk-ZLTEQYNC.js} +2 -2
- package/chunks/{chunk-O5BDEWBC.js → chunk-ZWKGZB2K.js} +3 -3
- package/chunks/chunk-ZYNTSXWK.js +32 -0
- package/chunks/config-utils-YMJNA25D.js +113 -0
- package/chunks/contextCommand-WMPSNKPG.js +108 -0
- package/chunks/{core-runtime-CES6JSVV.js → core-runtime-6TBMEULI.js} +63 -58
- package/chunks/create-sub-session-RVHSWVAP.js +17 -0
- package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-SAOMTP62.js} +60 -58
- package/chunks/{cron-create-IKA56DAF.js → cron-create-IJGVR5R2.js} +4 -4
- package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-4N5BI6GL.js} +4 -4
- package/chunks/{cron-list-QBFGAMP7.js → cron-list-2CATIPUX.js} +4 -4
- package/chunks/{daemon-RZZUPGOJ.js → daemon-NAYK4XXU.js} +51 -24
- package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-TYLESM6G.js} +338 -92
- package/chunks/daemon-status-provider-YBQAZD3G.js +118 -0
- package/chunks/daemon-trust-policy-O75ZSIJN.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-WWX7I7P6.js} +68 -66
- package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
- package/chunks/deferred-core-runtime-MGCCR6LA.js +116 -0
- package/chunks/{display-image-OEJMJV3S.js → display-image-DR55LL6M.js} +5 -5
- package/chunks/dist-4Q7NTUNB.js +2512 -0
- package/chunks/{dist-ESS34DHC.js → dist-6H6RZ5H6.js} +2 -2
- package/chunks/{dist-LZO24N3E.js → dist-7CKN54NL.js} +1 -1
- package/chunks/{dist-5EV2G6MC.js → dist-DJBNNPLN.js} +1 -1
- package/chunks/{dist-J6P3C52Z.js → dist-FVJZSIO4.js} +28 -7
- package/chunks/{dist-K7IQB53U.js → dist-SATKXKUR.js} +1 -1
- package/chunks/{dist-ES6HNUW2.js → dist-TJUDJTCB.js} +246 -17
- package/chunks/{dist-VVQBOKDH.js → dist-UQUFZDIY.js} +1 -1
- package/chunks/{dist-2OG3PGKO.js → dist-ZBVOXSKF.js} +3 -3
- package/chunks/earlyInputCapture-2EJKJET3.js +109 -0
- package/chunks/{edit-A2633SLR.js → edit-GBDKI5DZ.js} +48 -48
- package/chunks/{en-3RHLPITS.js → en-6MDBWMTG.js} +3 -0
- package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-UOZ6ZTP7.js} +7 -8
- package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-2KTIPPM3.js} +47 -47
- package/chunks/environment-XJ75LJ6N.js +131 -0
- package/chunks/errors-XEI3SJRV.js +115 -0
- package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-G2QATUCV.js} +7 -8
- package/chunks/exitPlanMode-AUMYTFIQ.js +85 -0
- package/chunks/{fast-path-3AVP3G35.js → fast-path-TU7U2ETU.js} +28 -7
- package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
- package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
- package/chunks/{gemini-7PVQWHTH.js → gemini-FKMYDP64.js} +129 -123
- package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-WSHP7CSR.js} +16 -13
- package/chunks/{glob-7YGXE6OV.js → glob-EOM6XK7H.js} +47 -47
- package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-CNVXMSZD.js} +72 -28
- package/chunks/{grep-6DV6LTON.js → grep-3NLSS32D.js} +6 -6
- package/chunks/handleAutoUpdate-S4CLP36D.js +111 -0
- package/chunks/i18n-XX7U2Q3X.js +126 -0
- package/chunks/{image-gen-7CSCJ73T.js → image-gen-63NN2H5N.js} +9 -11
- package/chunks/initializer-D3CA3272.js +115 -0
- package/chunks/installationInfo-HVDQOSIE.js +109 -0
- package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
- package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-3MGFRYGM.js} +2 -2
- package/chunks/list-XUDSTGT3.js +118 -0
- package/chunks/{list-agents-43XUEXJV.js → list-agents-EXRSHIDJ.js} +2 -2
- package/chunks/loadedSettingsAdapter-ZOJ4QEID.js +112 -0
- package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-TUDGCVUG.js} +27 -30
- package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XBPB2BRO.js} +5 -5
- package/chunks/{ls-CGL2UC3H.js → ls-WFONAND2.js} +4 -4
- package/chunks/{lsp-5IKUO5DX.js → lsp-DUKPDUXN.js} +2 -2
- package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-5K4FWFX2.js} +61 -59
- package/chunks/mcp-QJ6AUYE5.js +112 -0
- package/chunks/{monitor-PXYSGSUN.js → monitor-UUHIAGT7.js} +47 -47
- package/chunks/nonInteractiveCli-PAWO75YO.js +185 -0
- package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-GZPB3Q57.js} +48 -48
- package/chunks/open-with-auth-4UI3KHUR.js +55 -0
- package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-RPP6YBS3.js} +29 -30
- package/chunks/pidfile-RF3WUFKR.js +113 -0
- package/chunks/{processUtils-YK2TDTTU.js → processUtils-ENAY2GSA.js} +2 -2
- package/chunks/prompt-terminal-ledger-4CCXZ2LF.js +107 -0
- package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
- package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-GLUZVJAU.js} +53 -59
- package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-JIYAWXTW.js} +8 -10
- package/chunks/{read-file-2HOD2ATO.js → read-file-75R5LUWQ.js} +13 -14
- package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-7A7NFSFL.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-CPJ4IJSD.js} +4 -5
- package/chunks/report-findings-VFM5DENC.js +33 -0
- package/chunks/request-shutdown-AXVOFN5C.js +133 -0
- package/chunks/resumeHistoryUtils-GFPJD2XB.js +120 -0
- package/chunks/ripGrep-FNLXQYBS.js +39 -0
- package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
- package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-FJD4VMI2.js} +622 -79
- package/chunks/{runtime-J4SPTJRQ.js → runtime-INDSJB4K.js} +73 -71
- package/chunks/{scheduler-VRAEZZ4E.js → scheduler-Z52TCSUG.js} +62 -60
- package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-XXSKBD2C.js} +5 -5
- package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-VPNBLV7I.js} +7 -7
- package/chunks/{send-message-J4VT46OI.js → send-message-A2GXDX3B.js} +10 -31
- package/chunks/serve-GVD2WXVL.js +120 -0
- package/chunks/{server-74ONDK62.js → server-PSN5OOSX.js} +965 -405
- package/chunks/{session-BO6VBWJP.js → session-JPE34X6Q.js} +151 -140
- package/chunks/{settings-35QZNFDG.js → settings-IVGC4UYK.js} +71 -69
- package/chunks/shell-A5PZGPBR.js +95 -0
- package/chunks/{skill-DKEMQSNJ.js → skill-UUXQPDEH.js} +108 -25
- package/chunks/skill-settings-WVRXLTK4.js +120 -0
- package/chunks/spawnChannel-KTURLD4B.js +113 -0
- package/chunks/standalone-update-IRFRNGAA.js +120 -0
- package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-MC4GLL6G.js} +381 -293
- package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-5AJ444QT.js} +3 -3
- package/chunks/{task-create-I2H322E4.js → task-create-CDJSOEQD.js} +11 -11
- package/chunks/{task-list-3OLIWFTQ.js → task-list-BELMPA75.js} +5 -5
- package/chunks/{task-stop-JAUY6MSY.js → task-stop-U3S3KZG2.js} +2 -2
- package/chunks/{task-update-B3XO4CPI.js → task-update-77VCFDDZ.js} +11 -11
- package/chunks/{team-create-W534PMGX.js → team-create-WO5ZBCFW.js} +48 -48
- package/chunks/{team-delete-Q7GE7RRI.js → team-delete-YWFXX77L.js} +5 -5
- package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-KAVKRN7U.js} +47 -47
- package/chunks/terminal-image-renderer-SMRRNI6Z.js +116 -0
- package/chunks/theme-manager-A7CPN7F4.js +104 -0
- package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-435EO2CS.js} +4 -4
- package/chunks/{tool-search-Y4KL3LRE.js → tool-search-FBN6OC6U.js} +18 -19
- package/chunks/total-session-admission-B7U6UWKQ.js +114 -0
- package/chunks/trustedFolders-B4LPJBFK.js +124 -0
- package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-X5TJVKVG.js} +6 -6
- package/chunks/updateCheck-JCLP5JFT.js +120 -0
- package/chunks/useAutoAcceptIndicator-VBT3NKDM.js +122 -0
- package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-W7HYH5ZN.js} +113 -106
- package/chunks/{version-QMDRADXM.js → version-JG4J76GL.js} +2 -2
- package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-SPLMEDWF.js} +25 -242
- package/chunks/{web-search-JS3E76O6.js → web-search-PNW6OEH6.js} +11 -11
- package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
- package/chunks/webapi-Z5OM224P.js +4118 -0
- package/chunks/{workflow-2FCMBTBZ.js → workflow-QHOIIXJO.js} +635 -94
- package/chunks/workspace-providers-status-653DTR35.js +116 -0
- package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-H375IYR2.js} +1 -1
- package/chunks/workspace-registry-XTLCD7Z2.js +123 -0
- package/chunks/workspace-service-KVJWACCS.js +131 -0
- package/chunks/workspace-skills-status-TRJ2VWGU.js +115 -0
- package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-6SC6RKQE.js} +74 -73
- package/chunks/write-file-EAZSJZKR.js +90 -0
- package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-MV4FWFB6.js} +3 -0
- package/chunks/{zh-3JQ75KFU.js → zh-X3WGU6SI.js} +3 -0
- package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-WGNPZ572.js} +13 -14
- package/cli.js +15 -15
- package/locales/ca.js +3 -0
- package/locales/de.js +1 -0
- package/locales/en.js +3 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +3 -0
- package/locales/zh.js +3 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
- package/web-shell/assets/{arc-CXKjm86V.js → arc-CbJO0xnT.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
- package/web-shell/assets/channel-B3sGR79J.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
- package/web-shell/assets/{index-tYXRIPz4.js → index-B6JN54Pd.js} +1 -1
- package/web-shell/assets/{index-BN_m_uHJ.css → index-C-XlQn24.css} +1 -1
- package/web-shell/assets/index-DLjXM0dn.js +1860 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
- package/web-shell/assets/{layout-O2uHVkPd.js → layout-Bf83x7D6.js} +1 -1
- package/web-shell/assets/{linear-BVqYgjSc.js → linear-Bkc3ES2f.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-C6xuovwz.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
- package/web-shell/index.html +19 -4
- package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
- package/chunks/agent-BFE3DQM3.js +0 -93
- package/chunks/agent-headless-LLVKZZ4P.js +0 -87
- package/chunks/bridge-EBYO4SYM.js +0 -118
- package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/chunks/chunk-IO257NUD.js +0 -623
- package/chunks/chunk-YHC2EYYG.js +0 -125
- package/chunks/computer-use-EGPWFEX6.js +0 -2142
- package/chunks/config-utils-WZ43VOBS.js +0 -25
- package/chunks/contextCommand-5DSEQI6S.js +0 -106
- package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
- package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
- package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
- package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
- package/chunks/environment-WUPHLPKZ.js +0 -127
- package/chunks/errors-WPMPVIAT.js +0 -113
- package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
- package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
- package/chunks/i18n-C562S6KN.js +0 -124
- package/chunks/initializer-7YPGOFP4.js +0 -113
- package/chunks/installationInfo-ARU5Q2H7.js +0 -107
- package/chunks/list-KTSK275C.js +0 -116
- package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
- package/chunks/mcp-6ONTVPAY.js +0 -110
- package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
- package/chunks/pidfile-IO7ALSZF.js +0 -111
- package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
- package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
- package/chunks/ripGrep-E7P6K4QR.js +0 -40
- package/chunks/serve-KEAWV4TI.js +0 -118
- package/chunks/shell-H6K63WG3.js +0 -95
- package/chunks/skill-settings-TCKLXIXM.js +0 -118
- package/chunks/spawnChannel-2K6NKWM5.js +0 -111
- package/chunks/standalone-update-LSCGOEFP.js +0 -118
- package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
- package/chunks/theme-manager-6B47ZPIF.js +0 -102
- package/chunks/total-session-admission-NSCFWGJH.js +0 -113
- package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
- package/chunks/updateCheck-EOVLHD4T.js +0 -118
- package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
- package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
- package/chunks/workspace-registry-BQISXT6Y.js +0 -122
- package/chunks/workspace-service-LLY6HCUC.js +0 -129
- package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
- package/chunks/write-file-EJHU2Z3E.js +0 -90
- package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
- package/web-shell/assets/index-DrlJu79f.js +0 -1792
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
|
@@ -1,34 +1,18 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
CompactToolGroupDisplay,
|
|
5
|
-
ICON,
|
|
6
|
-
SCREEN_READER_MODEL_PREFIX,
|
|
7
|
-
SCREEN_READER_USER_PREFIX,
|
|
8
|
-
SHELL_COMMAND_NAME,
|
|
9
|
-
SHELL_NAME,
|
|
10
|
-
STATUS_INDICATOR_WIDTH,
|
|
11
|
-
ToolElapsedTime,
|
|
12
|
-
ToolStatusIndicator,
|
|
13
|
-
buildResumedHistoryItems,
|
|
14
|
-
build_default,
|
|
15
|
-
estimateCompactToolGroupHeight,
|
|
16
|
-
isCollapsibleTool,
|
|
17
|
-
wrapAnsi
|
|
18
|
-
} from "./chunk-UU4WC7DK.js";
|
|
19
3
|
import {
|
|
20
4
|
disableMouseEvents,
|
|
21
5
|
enableMouseEvents,
|
|
22
6
|
useKeypress,
|
|
23
7
|
useKeypressContext
|
|
24
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-O5YGAEQS.js";
|
|
25
9
|
import {
|
|
26
10
|
formatSupportedModes,
|
|
27
11
|
getCommandDisplayName,
|
|
28
12
|
getCommandSourceBadge,
|
|
29
13
|
getCommandSourceGroup,
|
|
30
14
|
getCommandSubcommandNames
|
|
31
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MI7CMXPU.js";
|
|
32
16
|
import {
|
|
33
17
|
INLINE_CODE_SPAN_PATTERN_SOURCE,
|
|
34
18
|
calculateAverageLatency,
|
|
@@ -43,19 +27,37 @@ import {
|
|
|
43
27
|
readInlineMathSpanAt,
|
|
44
28
|
unescapeMarkdownBeforeMath,
|
|
45
29
|
unescapeMarkdownDollars
|
|
46
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-DX5FZGHZ.js";
|
|
31
|
+
import {
|
|
32
|
+
MINIMUM_MAX_HEIGHT,
|
|
33
|
+
MaxSizedBox
|
|
34
|
+
} from "./chunk-IJVDHPKD.js";
|
|
35
|
+
import {
|
|
36
|
+
CompactToolGroupDisplay,
|
|
37
|
+
ICON,
|
|
38
|
+
SCREEN_READER_MODEL_PREFIX,
|
|
39
|
+
SCREEN_READER_USER_PREFIX,
|
|
40
|
+
SHELL_COMMAND_NAME,
|
|
41
|
+
SHELL_NAME,
|
|
42
|
+
STATUS_INDICATOR_WIDTH,
|
|
43
|
+
ToolElapsedTime,
|
|
44
|
+
ToolStatusIndicator,
|
|
45
|
+
buildResumedHistoryItems,
|
|
46
|
+
build_default,
|
|
47
|
+
coalesceFindingsHistoryItems,
|
|
48
|
+
estimateCompactToolGroupHeight,
|
|
49
|
+
isCollapsibleTool,
|
|
50
|
+
isFindingsListDisplay,
|
|
51
|
+
wrapAnsi
|
|
52
|
+
} from "./chunk-OGZAQWJP.js";
|
|
47
53
|
import {
|
|
48
54
|
formatDuration,
|
|
49
55
|
formatRelativeTime,
|
|
50
56
|
formatTokenCount
|
|
51
57
|
} from "./chunk-3SH53ANB.js";
|
|
52
|
-
import {
|
|
53
|
-
MINIMUM_MAX_HEIGHT,
|
|
54
|
-
MaxSizedBox
|
|
55
|
-
} from "./chunk-SQS55KR4.js";
|
|
56
58
|
import {
|
|
57
59
|
theme
|
|
58
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-FPH6TXD3.js";
|
|
59
61
|
import {
|
|
60
62
|
require_jsx_runtime
|
|
61
63
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -68,32 +70,32 @@ import {
|
|
|
68
70
|
use_stdin_default,
|
|
69
71
|
use_stdout_default
|
|
70
72
|
} from "./chunk-5Q372OFJ.js";
|
|
71
|
-
import {
|
|
72
|
-
require_react
|
|
73
|
-
} from "./chunk-5QWWOFGG.js";
|
|
74
73
|
import {
|
|
75
74
|
markKittyImageWritten,
|
|
76
75
|
prepareInlineTerminalImage,
|
|
77
76
|
renderMermaidImageAsync,
|
|
78
77
|
renderTerminalImage,
|
|
79
78
|
wasKittyImageWritten
|
|
80
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-BKDAF7ES.js";
|
|
81
80
|
import {
|
|
82
81
|
formatInlineImageOverflow
|
|
83
|
-
} from "./chunk-
|
|
84
|
-
import {
|
|
85
|
-
relaunchApp
|
|
86
|
-
} from "./chunk-AVCCKIZ6.js";
|
|
82
|
+
} from "./chunk-EC5BONC3.js";
|
|
87
83
|
import {
|
|
88
84
|
isTerminalGoalStatusKind
|
|
89
85
|
} from "./chunk-EKTCKZV5.js";
|
|
90
86
|
import {
|
|
91
87
|
resolveColor,
|
|
92
88
|
themeManager
|
|
93
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-WEGXPP5E.js";
|
|
90
|
+
import {
|
|
91
|
+
require_react
|
|
92
|
+
} from "./chunk-5QWWOFGG.js";
|
|
94
93
|
import {
|
|
95
94
|
getErrorMessage
|
|
96
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-BGWT7VBV.js";
|
|
96
|
+
import {
|
|
97
|
+
relaunchApp
|
|
98
|
+
} from "./chunk-EWBY3PFB.js";
|
|
97
99
|
import {
|
|
98
100
|
cpLen,
|
|
99
101
|
cpSlice,
|
|
@@ -110,24 +112,24 @@ import {
|
|
|
110
112
|
import {
|
|
111
113
|
stringWidth
|
|
112
114
|
} from "./chunk-2MIN6GRR.js";
|
|
113
|
-
import {
|
|
114
|
-
createLoadedSettingsAdapter
|
|
115
|
-
} from "./chunk-PDL6LKB5.js";
|
|
116
115
|
import {
|
|
117
116
|
require_has_flag,
|
|
118
117
|
require_source
|
|
119
118
|
} from "./chunk-57OAHC2Y.js";
|
|
119
|
+
import {
|
|
120
|
+
createLoadedSettingsAdapter
|
|
121
|
+
} from "./chunk-5AFPOEY3.js";
|
|
120
122
|
import {
|
|
121
123
|
getPersistScopeForModelSelection
|
|
122
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-C2BAEV64.js";
|
|
123
125
|
import {
|
|
124
126
|
getCurrentLanguage,
|
|
125
127
|
localizeToolDisplayName,
|
|
126
128
|
t
|
|
127
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-W2WRNJKX.js";
|
|
128
130
|
import {
|
|
129
131
|
isWorkspaceTrusted
|
|
130
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-RQ5ASDFQ.js";
|
|
131
133
|
import {
|
|
132
134
|
ALL_PROVIDERS,
|
|
133
135
|
PROVIDER_METADATA_NS,
|
|
@@ -140,12 +142,12 @@ import {
|
|
|
140
142
|
resolveBaseUrl,
|
|
141
143
|
resolveMetadataKey,
|
|
142
144
|
resolveOwnsModel
|
|
143
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-RUQBJS34.js";
|
|
144
146
|
import {
|
|
145
147
|
sanitizeForOsc,
|
|
146
148
|
supportsHyperlinks,
|
|
147
149
|
wrapForMultiplexer
|
|
148
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-ZWKGZB2K.js";
|
|
149
151
|
import {
|
|
150
152
|
IdeClient,
|
|
151
153
|
ShellExecutionService,
|
|
@@ -157,7 +159,7 @@ import {
|
|
|
157
159
|
getExternalEditorCommand,
|
|
158
160
|
ideContextStore,
|
|
159
161
|
isValidEditorType
|
|
160
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-D6XO27Z5.js";
|
|
161
163
|
import {
|
|
162
164
|
stripAnsi
|
|
163
165
|
} from "./chunk-TWPJO254.js";
|
|
@@ -167,18 +169,18 @@ import {
|
|
|
167
169
|
getMCPServerStatus,
|
|
168
170
|
isVisionBridgeNoticeDisplay,
|
|
169
171
|
uiTelemetryService
|
|
170
|
-
} from "./chunk-
|
|
172
|
+
} from "./chunk-UX3IFLJM.js";
|
|
171
173
|
import {
|
|
172
174
|
ToolDisplayNames,
|
|
173
175
|
ToolNames,
|
|
174
176
|
ToolNamesMigration,
|
|
175
177
|
isTerminalImageDisplay
|
|
176
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-KOJ6MHD5.js";
|
|
177
179
|
import {
|
|
178
180
|
createDebugLogger,
|
|
179
181
|
escapePath,
|
|
180
182
|
unescapePath
|
|
181
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-2NNTE2ED.js";
|
|
182
184
|
import {
|
|
183
185
|
init_esbuild_shims
|
|
184
186
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -7183,6 +7185,72 @@ var TodoItemRow = /* @__PURE__ */ __name(({ todo }) => {
|
|
|
7183
7185
|
] });
|
|
7184
7186
|
}, "TodoItemRow");
|
|
7185
7187
|
|
|
7188
|
+
// packages/cli/src/ui/components/FindingsDisplay.tsx
|
|
7189
|
+
init_esbuild_shims();
|
|
7190
|
+
var import_jsx_runtime14 = (
|
|
7191
|
+
// The unverified banner precedes the empty-state branch: an empty list is
|
|
7192
|
+
// still the product of the pass that reported it, and a low-effort "no
|
|
7193
|
+
// findings" that renders without the marker reads as a verified clean bill.
|
|
7194
|
+
__toESM(require_jsx_runtime(), 1)
|
|
7195
|
+
);
|
|
7196
|
+
var SEVERITY_COLORS = {
|
|
7197
|
+
Critical: /* @__PURE__ */ __name(() => Colors.AccentRed, "Critical"),
|
|
7198
|
+
Suggestion: /* @__PURE__ */ __name(() => Colors.AccentYellow, "Suggestion"),
|
|
7199
|
+
"Nice to have": /* @__PURE__ */ __name(() => Colors.Gray, "Nice to have")
|
|
7200
|
+
};
|
|
7201
|
+
function terminalSafe(text) {
|
|
7202
|
+
const withoutControls = text.replace(/[\u0000-\u001f\u007f-\u009f]/g, " ");
|
|
7203
|
+
return withoutControls.replace(/\s+/g, " ").trim();
|
|
7204
|
+
}
|
|
7205
|
+
__name(terminalSafe, "terminalSafe");
|
|
7206
|
+
var OUTCOME_LABELS = {
|
|
7207
|
+
fixed: "fixed",
|
|
7208
|
+
skipped: "skipped",
|
|
7209
|
+
no_change_needed: "no change needed"
|
|
7210
|
+
};
|
|
7211
|
+
var FindingsDisplay = /* @__PURE__ */ __name(({ data }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
7212
|
+
data.level === "low" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { minHeight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: "(low-effort pass \u2014 findings are unverified)" }) }),
|
|
7213
|
+
data.findings.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: "No findings." }) : data.findings.map((finding, index) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
7214
|
+
FindingRow,
|
|
7215
|
+
{
|
|
7216
|
+
finding
|
|
7217
|
+
},
|
|
7218
|
+
finding.id ?? `${finding.file}:${finding.line ?? ""}:${index}`
|
|
7219
|
+
)),
|
|
7220
|
+
data.omittedFindings !== void 0 && data.omittedFindings > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: `(+${data.omittedFindings} more finding${data.omittedFindings === 1 ? "" : "s"} removed by history compaction)` })
|
|
7221
|
+
] }), "FindingsDisplay");
|
|
7222
|
+
var FindingRow = /* @__PURE__ */ __name(({ finding }) => {
|
|
7223
|
+
const severityColor = SEVERITY_COLORS[finding.severity]();
|
|
7224
|
+
const resolved = finding.outcome === "fixed" || finding.outcome === "no_change_needed";
|
|
7225
|
+
const icon = finding.outcome === void 0 ? ICON.CIRCLE_FILLED : resolved ? ICON.CHECK : ICON.CIRCLE_EMPTY;
|
|
7226
|
+
const where = terminalSafe(
|
|
7227
|
+
`${finding.file}${finding.line !== void 0 ? `:${finding.line}` : ""}`
|
|
7228
|
+
);
|
|
7229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Box_default, { flexDirection: "row", minHeight: 1, children: [
|
|
7230
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { width: 3, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: resolved ? Colors.AccentGreen : severityColor, children: icon }) }),
|
|
7231
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { wrap: "wrap", children: [
|
|
7232
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: severityColor, bold: finding.severity === "Critical", children: finding.severity }),
|
|
7233
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: Colors.Gray, children: [
|
|
7234
|
+
finding.id ? ` ${terminalSafe(finding.id)}` : "",
|
|
7235
|
+
" "
|
|
7236
|
+
] }),
|
|
7237
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.AccentCyan, children: where }),
|
|
7238
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: Colors.Foreground, strikethrough: resolved, children: [
|
|
7239
|
+
" ",
|
|
7240
|
+
terminalSafe(finding.shortSummary)
|
|
7241
|
+
] }),
|
|
7242
|
+
finding.confidence === "low" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text, { color: Colors.Gray, children: " (low confidence)" }),
|
|
7243
|
+
finding.outcome && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Text, { color: resolved ? Colors.AccentGreen : Colors.AccentYellow, children: [
|
|
7244
|
+
" ",
|
|
7245
|
+
"(",
|
|
7246
|
+
OUTCOME_LABELS[finding.outcome],
|
|
7247
|
+
finding.outcome === "skipped" && finding.outcomeNote ? `: ${terminalSafe(finding.outcomeNote)}` : "",
|
|
7248
|
+
")"
|
|
7249
|
+
] })
|
|
7250
|
+
] }) })
|
|
7251
|
+
] });
|
|
7252
|
+
}, "FindingRow");
|
|
7253
|
+
|
|
7186
7254
|
// packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx
|
|
7187
7255
|
init_esbuild_shims();
|
|
7188
7256
|
var import_react26 = __toESM(require_react(), 1);
|
|
@@ -7927,7 +7995,7 @@ function RowMouseController({
|
|
|
7927
7995
|
__name(RowMouseController, "RowMouseController");
|
|
7928
7996
|
|
|
7929
7997
|
// packages/cli/src/ui/components/shared/BaseSelectionList.tsx
|
|
7930
|
-
var
|
|
7998
|
+
var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
|
|
7931
7999
|
function getScrollOffsetForIndex(activeIndex, itemCount, maxItemsToShow) {
|
|
7932
8000
|
return Math.max(
|
|
7933
8001
|
0,
|
|
@@ -7977,8 +8045,8 @@ function BaseSelectionList({
|
|
|
7977
8045
|
const itemRefs = (0, import_react20.useRef)([]);
|
|
7978
8046
|
const visibleItems = items.slice(scrollOffset, scrollOffset + maxItemsToShow);
|
|
7979
8047
|
const numberColumnWidth = String(items.length).length;
|
|
7980
|
-
return /* @__PURE__ */ (0,
|
|
7981
|
-
mouseEnabled && isFocused && items.length > 0 && /* @__PURE__ */ (0,
|
|
8048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Box_default, { ref: containerRef, flexDirection: "column", gap: itemGap, children: [
|
|
8049
|
+
mouseEnabled && isFocused && items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
7982
8050
|
RowMouseController,
|
|
7983
8051
|
{
|
|
7984
8052
|
containerRef,
|
|
@@ -7989,7 +8057,7 @@ function BaseSelectionList({
|
|
|
7989
8057
|
onSelectIndex: selectIndex
|
|
7990
8058
|
}
|
|
7991
8059
|
),
|
|
7992
|
-
showScrollArrows && /* @__PURE__ */ (0,
|
|
8060
|
+
showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
7993
8061
|
Text,
|
|
7994
8062
|
{
|
|
7995
8063
|
color: scrollOffset > 0 ? theme.text.primary : theme.text.secondary,
|
|
@@ -8017,7 +8085,7 @@ function BaseSelectionList({
|
|
|
8017
8085
|
const itemNumberText = `${String(itemIndex + 1).padStart(
|
|
8018
8086
|
numberColumnWidth
|
|
8019
8087
|
)}.`;
|
|
8020
|
-
return /* @__PURE__ */ (0,
|
|
8088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
8021
8089
|
Box_default,
|
|
8022
8090
|
{
|
|
8023
8091
|
alignItems: "flex-start",
|
|
@@ -8025,7 +8093,7 @@ function BaseSelectionList({
|
|
|
8025
8093
|
itemRefs.current[index] = node;
|
|
8026
8094
|
},
|
|
8027
8095
|
children: [
|
|
8028
|
-
/* @__PURE__ */ (0,
|
|
8096
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
8029
8097
|
Text,
|
|
8030
8098
|
{
|
|
8031
8099
|
color: isSelected ? theme.status.success : theme.text.primary,
|
|
@@ -8033,17 +8101,17 @@ function BaseSelectionList({
|
|
|
8033
8101
|
children: isSelected ? "\u203A" : " "
|
|
8034
8102
|
}
|
|
8035
8103
|
) }),
|
|
8036
|
-
showNumbers && /* @__PURE__ */ (0,
|
|
8104
|
+
showNumbers && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
8037
8105
|
Box_default,
|
|
8038
8106
|
{
|
|
8039
8107
|
marginRight: 1,
|
|
8040
8108
|
flexShrink: 0,
|
|
8041
8109
|
minWidth: itemNumberText.length,
|
|
8042
8110
|
"aria-state": { checked: isSelected },
|
|
8043
|
-
children: /* @__PURE__ */ (0,
|
|
8111
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text, { color: numberColor, children: itemNumberText })
|
|
8044
8112
|
}
|
|
8045
8113
|
),
|
|
8046
|
-
/* @__PURE__ */ (0,
|
|
8114
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Box_default, { flexGrow: 1, children: renderItem(item, {
|
|
8047
8115
|
isSelected,
|
|
8048
8116
|
titleColor,
|
|
8049
8117
|
numberColor
|
|
@@ -8053,7 +8121,7 @@ function BaseSelectionList({
|
|
|
8053
8121
|
item.key
|
|
8054
8122
|
);
|
|
8055
8123
|
}),
|
|
8056
|
-
showScrollArrows && /* @__PURE__ */ (0,
|
|
8124
|
+
showScrollArrows && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
8057
8125
|
Text,
|
|
8058
8126
|
{
|
|
8059
8127
|
color: scrollOffset + maxItemsToShow < items.length ? theme.text.primary : theme.text.secondary,
|
|
@@ -8065,7 +8133,7 @@ function BaseSelectionList({
|
|
|
8065
8133
|
__name(BaseSelectionList, "BaseSelectionList");
|
|
8066
8134
|
|
|
8067
8135
|
// packages/cli/src/ui/components/shared/RadioButtonSelect.tsx
|
|
8068
|
-
var
|
|
8136
|
+
var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
|
|
8069
8137
|
function RadioButtonSelect({
|
|
8070
8138
|
items,
|
|
8071
8139
|
initialIndex = 0,
|
|
@@ -8076,7 +8144,7 @@ function RadioButtonSelect({
|
|
|
8076
8144
|
maxItemsToShow = 10,
|
|
8077
8145
|
showNumbers = true
|
|
8078
8146
|
}) {
|
|
8079
|
-
return /* @__PURE__ */ (0,
|
|
8147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
8080
8148
|
BaseSelectionList,
|
|
8081
8149
|
{
|
|
8082
8150
|
items,
|
|
@@ -8089,13 +8157,13 @@ function RadioButtonSelect({
|
|
|
8089
8157
|
maxItemsToShow,
|
|
8090
8158
|
renderItem: (item, { titleColor }) => {
|
|
8091
8159
|
if (item.themeNameDisplay && item.themeTypeDisplay) {
|
|
8092
|
-
return /* @__PURE__ */ (0,
|
|
8160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text, { color: titleColor, wrap: "truncate", children: [
|
|
8093
8161
|
item.themeNameDisplay,
|
|
8094
8162
|
" ",
|
|
8095
|
-
/* @__PURE__ */ (0,
|
|
8163
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, children: item.themeTypeDisplay })
|
|
8096
8164
|
] }, item.key);
|
|
8097
8165
|
}
|
|
8098
|
-
return /* @__PURE__ */ (0,
|
|
8166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: titleColor, wrap: "truncate", children: item.label });
|
|
8099
8167
|
}
|
|
8100
8168
|
}
|
|
8101
8169
|
);
|
|
@@ -10966,7 +11034,7 @@ function renderSoftwareCursor(text) {
|
|
|
10966
11034
|
__name(renderSoftwareCursor, "renderSoftwareCursor");
|
|
10967
11035
|
|
|
10968
11036
|
// packages/cli/src/ui/components/shared/TextInput.tsx
|
|
10969
|
-
var
|
|
11037
|
+
var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
|
|
10970
11038
|
function ellipsizeMiddle(text, width) {
|
|
10971
11039
|
if (width <= 0) return "";
|
|
10972
11040
|
if (stringWidth(text) <= width) return text;
|
|
@@ -11088,13 +11156,13 @@ function TextInput({
|
|
|
11088
11156
|
const [cursorVisualRowAbsolute, cursorVisualColAbsolute] = buffer.visualCursor;
|
|
11089
11157
|
const scrollVisualRow = buffer.visualScrollRow;
|
|
11090
11158
|
const shouldRenderCursor = isActive && cursorVisible;
|
|
11091
|
-
return /* @__PURE__ */ (0,
|
|
11092
|
-
/* @__PURE__ */ (0,
|
|
11093
|
-
/* @__PURE__ */ (0,
|
|
11094
|
-
/* @__PURE__ */ (0,
|
|
11159
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", gap: 1, children: [
|
|
11160
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
|
|
11161
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.accent, children: "> " }),
|
|
11162
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexGrow: 1, flexDirection: "column", children: buffer.text.length === 0 && placeholder ? shouldRenderCursor ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { children: [
|
|
11095
11163
|
renderSoftwareCursor(placeholder.slice(0, 1)),
|
|
11096
|
-
/* @__PURE__ */ (0,
|
|
11097
|
-
] }) : /* @__PURE__ */ (0,
|
|
11164
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: Colors.Gray, children: placeholder.slice(1) })
|
|
11165
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: Colors.Gray, children: placeholder }) : ellipsizeOverflow && stringWidth(buffer.text) > inputWidth ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: ellipsizeMiddle(buffer.text, inputWidth) }) : linesToRender.map((lineText, visualIdxInRenderedSet) => {
|
|
11098
11166
|
const cursorVisualRow = cursorVisualRowAbsolute - scrollVisualRow;
|
|
11099
11167
|
let display = cpSlice(lineText, 0, inputWidth);
|
|
11100
11168
|
const currentVisualWidth = stringWidth(display);
|
|
@@ -11117,10 +11185,10 @@ function TextInput({
|
|
|
11117
11185
|
}
|
|
11118
11186
|
}
|
|
11119
11187
|
}
|
|
11120
|
-
return /* @__PURE__ */ (0,
|
|
11188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { children: display }, `line-${visualIdxInRenderedSet}`);
|
|
11121
11189
|
}) })
|
|
11122
11190
|
] }),
|
|
11123
|
-
validationErrors.length > 0 && /* @__PURE__ */ (0,
|
|
11191
|
+
validationErrors.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: validationErrors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Text, { color: theme.status.error, children: [
|
|
11124
11192
|
"\u26A0 ",
|
|
11125
11193
|
error
|
|
11126
11194
|
] }, index)) })
|
|
@@ -11129,7 +11197,7 @@ function TextInput({
|
|
|
11129
11197
|
__name(TextInput, "TextInput");
|
|
11130
11198
|
|
|
11131
11199
|
// packages/cli/src/ui/components/messages/AskUserQuestionDialog.tsx
|
|
11132
|
-
var
|
|
11200
|
+
var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
|
|
11133
11201
|
function computeHeaderCap(headerWidths, available) {
|
|
11134
11202
|
const ascending = [...headerWidths].sort((a, b) => a - b);
|
|
11135
11203
|
let remaining = available;
|
|
@@ -11351,36 +11419,36 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11351
11419
|
{ isActive: isFocused }
|
|
11352
11420
|
);
|
|
11353
11421
|
if (isSubmitTab) {
|
|
11354
|
-
return /* @__PURE__ */ (0,
|
|
11355
|
-
/* @__PURE__ */ (0,
|
|
11422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
|
|
11423
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
|
|
11356
11424
|
confirmationDetails.questions.map((q, idx) => {
|
|
11357
11425
|
const isAnswered = getAnswerForQuestion(idx) !== void 0;
|
|
11358
|
-
return /* @__PURE__ */ (0,
|
|
11426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { dimColor: true, children: [
|
|
11359
11427
|
" ",
|
|
11360
11428
|
truncateToWidth(q.header, headerCap),
|
|
11361
11429
|
isAnswered ? " \u2713" : ""
|
|
11362
11430
|
] }) }, idx);
|
|
11363
11431
|
}),
|
|
11364
|
-
/* @__PURE__ */ (0,
|
|
11432
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
|
|
11365
11433
|
"\u25B8 ",
|
|
11366
11434
|
t("Submit")
|
|
11367
11435
|
] }) })
|
|
11368
11436
|
] }),
|
|
11369
|
-
/* @__PURE__ */ (0,
|
|
11370
|
-
/* @__PURE__ */ (0,
|
|
11437
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
11438
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { bold: true, children: t("Your answers:") }),
|
|
11371
11439
|
confirmationDetails.questions.map((q, idx) => {
|
|
11372
11440
|
const answer = getAnswerForQuestion(idx);
|
|
11373
|
-
return /* @__PURE__ */ (0,
|
|
11441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { children: [
|
|
11374
11442
|
q.header,
|
|
11375
11443
|
":",
|
|
11376
11444
|
" ",
|
|
11377
|
-
answer ? /* @__PURE__ */ (0,
|
|
11445
|
+
answer ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.accent, children: answer }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: t("(not answered)") })
|
|
11378
11446
|
] }) }, idx);
|
|
11379
11447
|
})
|
|
11380
11448
|
] }),
|
|
11381
|
-
/* @__PURE__ */ (0,
|
|
11382
|
-
/* @__PURE__ */ (0,
|
|
11383
|
-
/* @__PURE__ */ (0,
|
|
11449
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginTop: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { children: t("Ready to submit your answers?") }) }),
|
|
11450
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
11451
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
11384
11452
|
Text,
|
|
11385
11453
|
{
|
|
11386
11454
|
color: selectedIndex === 0 ? theme.text.accent : theme.text.primary,
|
|
@@ -11392,7 +11460,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11392
11460
|
]
|
|
11393
11461
|
}
|
|
11394
11462
|
) }),
|
|
11395
|
-
/* @__PURE__ */ (0,
|
|
11463
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
11396
11464
|
Text,
|
|
11397
11465
|
{
|
|
11398
11466
|
color: selectedIndex === 1 ? theme.text.accent : theme.text.primary,
|
|
@@ -11405,14 +11473,14 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11405
11473
|
}
|
|
11406
11474
|
) })
|
|
11407
11475
|
] }),
|
|
11408
|
-
/* @__PURE__ */ (0,
|
|
11476
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: t("\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select") }) })
|
|
11409
11477
|
] });
|
|
11410
11478
|
}
|
|
11411
|
-
return /* @__PURE__ */ (0,
|
|
11412
|
-
hasMultipleQuestions && /* @__PURE__ */ (0,
|
|
11479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", padding: 1, children: [
|
|
11480
|
+
hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { marginBottom: 1, flexDirection: "row", gap: 1, children: [
|
|
11413
11481
|
confirmationDetails.questions.map((q, idx) => {
|
|
11414
11482
|
const isAnswered = getAnswerForQuestion(idx) !== void 0;
|
|
11415
|
-
return /* @__PURE__ */ (0,
|
|
11483
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
11416
11484
|
Text,
|
|
11417
11485
|
{
|
|
11418
11486
|
color: idx === currentQuestionIndex ? theme.text.accent : theme.text.primary,
|
|
@@ -11426,16 +11494,16 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11426
11494
|
}
|
|
11427
11495
|
) }, idx);
|
|
11428
11496
|
}),
|
|
11429
|
-
/* @__PURE__ */ (0,
|
|
11497
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { dimColor: true, children: [
|
|
11430
11498
|
" ",
|
|
11431
11499
|
t("Submit")
|
|
11432
11500
|
] }) })
|
|
11433
11501
|
] }),
|
|
11434
|
-
/* @__PURE__ */ (0,
|
|
11435
|
-
!hasMultipleQuestions && /* @__PURE__ */ (0,
|
|
11436
|
-
/* @__PURE__ */ (0,
|
|
11502
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
11503
|
+
!hasMultipleQuestions && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { color: theme.text.accent, bold: true, children: currentQuestion.header }) }),
|
|
11504
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { children: currentQuestion.question })
|
|
11437
11505
|
] }),
|
|
11438
|
-
/* @__PURE__ */ (0,
|
|
11506
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
11439
11507
|
currentQuestion.options.map((opt, index) => {
|
|
11440
11508
|
const isSelected = selectedIndex === index;
|
|
11441
11509
|
const isMultiChecked = isMultiSelect && (multiSelectedOptions[currentQuestionIndex] ?? []).includes(
|
|
@@ -11444,8 +11512,8 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11444
11512
|
const isAnswered = !isMultiSelect && selectedOptions[currentQuestionIndex] === opt.label;
|
|
11445
11513
|
const isHighlighted = isSelected || isAnswered || isMultiChecked;
|
|
11446
11514
|
const prefixWidth = 2 + (isMultiSelect ? 4 : 0) + String(index + 1).length + 2;
|
|
11447
|
-
return /* @__PURE__ */ (0,
|
|
11448
|
-
/* @__PURE__ */ (0,
|
|
11515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
11516
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
11449
11517
|
Text,
|
|
11450
11518
|
{
|
|
11451
11519
|
color: isHighlighted ? theme.text.accent : theme.text.primary,
|
|
@@ -11460,13 +11528,13 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11460
11528
|
]
|
|
11461
11529
|
}
|
|
11462
11530
|
) }),
|
|
11463
|
-
opt.description && /* @__PURE__ */ (0,
|
|
11531
|
+
opt.description && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { marginLeft: prefixWidth, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: opt.description }) })
|
|
11464
11532
|
] }, index);
|
|
11465
11533
|
}),
|
|
11466
|
-
/* @__PURE__ */ (0,
|
|
11534
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexDirection: "column", children: isCustomInputSelected ? (
|
|
11467
11535
|
// Inline TextInput replaces the option text
|
|
11468
|
-
/* @__PURE__ */ (0,
|
|
11469
|
-
/* @__PURE__ */ (0,
|
|
11536
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Box_default, { children: [
|
|
11537
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Text, { color: theme.text.accent, bold: true, children: [
|
|
11470
11538
|
"\u276F",
|
|
11471
11539
|
" ",
|
|
11472
11540
|
isMultiSelect ? customInputChecked[currentQuestionIndex] ? "[\u2713] " : "[ ] " : "",
|
|
@@ -11474,7 +11542,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11474
11542
|
".",
|
|
11475
11543
|
" "
|
|
11476
11544
|
] }),
|
|
11477
|
-
/* @__PURE__ */ (0,
|
|
11545
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
11478
11546
|
TextInput,
|
|
11479
11547
|
{
|
|
11480
11548
|
value: currentCustomInputValue,
|
|
@@ -11505,7 +11573,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11505
11573
|
] })
|
|
11506
11574
|
) : (
|
|
11507
11575
|
// Show typed value or placeholder when not selected
|
|
11508
|
-
/* @__PURE__ */ (0,
|
|
11576
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
11509
11577
|
Text,
|
|
11510
11578
|
{
|
|
11511
11579
|
color: isCustomInputAnswer || customInputChecked[currentQuestionIndex] ? theme.text.accent : theme.text.primary,
|
|
@@ -11524,7 +11592,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11524
11592
|
) })
|
|
11525
11593
|
) })
|
|
11526
11594
|
] }),
|
|
11527
|
-
/* @__PURE__ */ (0,
|
|
11595
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Text, { dimColor: true, children: hasMultipleQuestions ? isMultiSelect ? t(
|
|
11528
11596
|
"\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Space: Toggle | Enter: Confirm | Esc: Cancel"
|
|
11529
11597
|
) : t(
|
|
11530
11598
|
"\u2191/\u2193: Navigate | \u2190/\u2192: Switch tabs | Enter: Select | Esc: Cancel"
|
|
@@ -11535,7 +11603,7 @@ var AskUserQuestionDialog = /* @__PURE__ */ __name(({
|
|
|
11535
11603
|
}, "AskUserQuestionDialog");
|
|
11536
11604
|
|
|
11537
11605
|
// packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx
|
|
11538
|
-
var
|
|
11606
|
+
var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
|
|
11539
11607
|
var COMPACT_BODY_MAX_LINES = 5;
|
|
11540
11608
|
var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
11541
11609
|
confirmationDetails,
|
|
@@ -11650,7 +11718,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11650
11718
|
__name(warningsHeight, "warningsHeight");
|
|
11651
11719
|
if (confirmationDetails.type === "edit") {
|
|
11652
11720
|
if (confirmationDetails.isModifying) {
|
|
11653
|
-
return /* @__PURE__ */ (0,
|
|
11721
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
11654
11722
|
Box_default,
|
|
11655
11723
|
{
|
|
11656
11724
|
minWidth: "90%",
|
|
@@ -11660,11 +11728,11 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11660
11728
|
padding: 1,
|
|
11661
11729
|
overflow: "hidden",
|
|
11662
11730
|
children: [
|
|
11663
|
-
/* @__PURE__ */ (0,
|
|
11731
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.text.primary, children: [
|
|
11664
11732
|
t("Modify in progress:"),
|
|
11665
11733
|
" "
|
|
11666
11734
|
] }),
|
|
11667
|
-
/* @__PURE__ */ (0,
|
|
11735
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.status.success, children: t("Save and close external editor to continue") })
|
|
11668
11736
|
]
|
|
11669
11737
|
}
|
|
11670
11738
|
);
|
|
@@ -11724,7 +11792,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11724
11792
|
} else if (diffHeight !== void 0) {
|
|
11725
11793
|
diffHeight = Math.max(diffHeight - warningsHeight(warnings), 1);
|
|
11726
11794
|
}
|
|
11727
|
-
const renderedDiff = diffHeight === void 0 || diffHeight >= MINIMUM_MAX_HEIGHT ? /* @__PURE__ */ (0,
|
|
11795
|
+
const renderedDiff = diffHeight === void 0 || diffHeight >= MINIMUM_MAX_HEIGHT ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11728
11796
|
DiffRenderer,
|
|
11729
11797
|
{
|
|
11730
11798
|
diffContent: confirmationDetails.fileDiff,
|
|
@@ -11733,30 +11801,30 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11733
11801
|
contentWidth,
|
|
11734
11802
|
settings
|
|
11735
11803
|
}
|
|
11736
|
-
) : diffHeight === 1 ? /* @__PURE__ */ (0,
|
|
11737
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11738
|
-
warnings.length > 0 ? /* @__PURE__ */ (0,
|
|
11804
|
+
) : diffHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: "... diff hidden ..." }) : null;
|
|
11805
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
11806
|
+
warnings.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11739
11807
|
Box_default,
|
|
11740
11808
|
{
|
|
11741
11809
|
flexDirection: "column",
|
|
11742
11810
|
paddingX: 1,
|
|
11743
11811
|
marginLeft: 1,
|
|
11744
11812
|
marginBottom: warningMarginBottom,
|
|
11745
|
-
children: constrainWarnings && warningMaxHeight === 1 ? /* @__PURE__ */ (0,
|
|
11813
|
+
children: constrainWarnings && warningMaxHeight === 1 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
|
|
11746
11814
|
"\u26A0 ",
|
|
11747
11815
|
warnings.at(-1)?.replace(/\r\n?|\n/g, " \u21B5 ")
|
|
11748
|
-
] }) : constrainWarnings ? /* @__PURE__ */ (0,
|
|
11816
|
+
] }) : constrainWarnings ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11749
11817
|
MaxSizedBox,
|
|
11750
11818
|
{
|
|
11751
11819
|
maxHeight: warningMaxHeight,
|
|
11752
11820
|
maxWidth: warningContentWidth,
|
|
11753
11821
|
overflowDirection: "bottom",
|
|
11754
|
-
children: warnings.map((warning, idx) => /* @__PURE__ */ (0,
|
|
11822
|
+
children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, wrap: "truncate", children: [
|
|
11755
11823
|
"\u26A0 ",
|
|
11756
11824
|
warning.replace(/\r\n?|\n/g, " \u21B5 ")
|
|
11757
11825
|
] }) }, idx))
|
|
11758
11826
|
}
|
|
11759
|
-
) : warnings.map((warning, idx) => /* @__PURE__ */ (0,
|
|
11827
|
+
) : warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
|
|
11760
11828
|
"\u26A0 ",
|
|
11761
11829
|
warning
|
|
11762
11830
|
] }, idx))
|
|
@@ -11815,17 +11883,17 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11815
11883
|
1
|
|
11816
11884
|
);
|
|
11817
11885
|
}
|
|
11818
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11819
|
-
/* @__PURE__ */ (0,
|
|
11886
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
11887
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { paddingX: 1, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11820
11888
|
MaxSizedBox,
|
|
11821
11889
|
{
|
|
11822
11890
|
maxHeight: bodyContentHeight,
|
|
11823
11891
|
maxWidth: Math.max(contentWidth, 1),
|
|
11824
11892
|
overflowDirection: "bottom",
|
|
11825
|
-
children: /* @__PURE__ */ (0,
|
|
11893
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: executionProps.command }) })
|
|
11826
11894
|
}
|
|
11827
11895
|
) }),
|
|
11828
|
-
warningsCount > 0 ? /* @__PURE__ */ (0,
|
|
11896
|
+
warningsCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, marginTop: 1, children: warnings.map((warning, idx) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
|
|
11829
11897
|
"\u26A0 ",
|
|
11830
11898
|
warning
|
|
11831
11899
|
] }, idx)) }) : null
|
|
@@ -11860,8 +11928,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11860
11928
|
COMPACT_BODY_MAX_LINES
|
|
11861
11929
|
) : availableBodyContentHeight();
|
|
11862
11930
|
const planHeight = rawPlanHeight === void 0 ? void 0 : Math.max(rawPlanHeight - 1, 1);
|
|
11863
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11864
|
-
/* @__PURE__ */ (0,
|
|
11931
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
|
|
11932
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11865
11933
|
MarkdownDisplay,
|
|
11866
11934
|
{
|
|
11867
11935
|
text: planProps.plan,
|
|
@@ -11871,7 +11939,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11871
11939
|
enforceHeightBudget: true
|
|
11872
11940
|
}
|
|
11873
11941
|
),
|
|
11874
|
-
planViewError ? /* @__PURE__ */ (0,
|
|
11942
|
+
planViewError ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.status.error, wrap: "truncate", children: planViewError }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: t("o open full plan in editor") })
|
|
11875
11943
|
] });
|
|
11876
11944
|
} else if (confirmationDetails.type === "info") {
|
|
11877
11945
|
const infoProps = confirmationDetails;
|
|
@@ -11904,27 +11972,27 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11904
11972
|
value: "cancel" /* Cancel */,
|
|
11905
11973
|
key: "No, suggest changes (esc)"
|
|
11906
11974
|
});
|
|
11907
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11908
|
-
infoProps.renderPromptAsPlainText ? /* @__PURE__ */ (0,
|
|
11975
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
|
|
11976
|
+
infoProps.renderPromptAsPlainText ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11909
11977
|
MaxSizedBox,
|
|
11910
11978
|
{
|
|
11911
11979
|
maxHeight: availableBodyContentHeight(),
|
|
11912
11980
|
maxWidth: warningContentWidth,
|
|
11913
11981
|
overflowDirection: "bottom",
|
|
11914
|
-
children: infoProps.prompt.split("\n").map((line, index) => /* @__PURE__ */ (0,
|
|
11982
|
+
children: infoProps.prompt.split("\n").map((line, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, wrap: "wrap", children: line }) }, index))
|
|
11915
11983
|
}
|
|
11916
|
-
) : /* @__PURE__ */ (0,
|
|
11917
|
-
displayUrls && infoProps.urls && infoProps.urls.length > 0 && /* @__PURE__ */ (0,
|
|
11918
|
-
/* @__PURE__ */ (0,
|
|
11919
|
-
infoProps.urls.map((url) => /* @__PURE__ */ (0,
|
|
11984
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RenderInline, { text: infoProps.prompt, textColor: theme.text.link }) }),
|
|
11985
|
+
displayUrls && infoProps.urls && infoProps.urls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
11986
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.primary, children: t("URLs to fetch:") }),
|
|
11987
|
+
infoProps.urls.map((url) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { children: [
|
|
11920
11988
|
" ",
|
|
11921
11989
|
"- ",
|
|
11922
|
-
/* @__PURE__ */ (0,
|
|
11990
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RenderInline, { text: url })
|
|
11923
11991
|
] }, url))
|
|
11924
11992
|
] })
|
|
11925
11993
|
] });
|
|
11926
11994
|
} else if (confirmationDetails.type === "ask_user_question") {
|
|
11927
|
-
return /* @__PURE__ */ (0,
|
|
11995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
11928
11996
|
AskUserQuestionDialog,
|
|
11929
11997
|
{
|
|
11930
11998
|
confirmationDetails,
|
|
@@ -11935,9 +12003,9 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11935
12003
|
);
|
|
11936
12004
|
} else {
|
|
11937
12005
|
const mcpProps = confirmationDetails;
|
|
11938
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11939
|
-
/* @__PURE__ */ (0,
|
|
11940
|
-
/* @__PURE__ */ (0,
|
|
12006
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
|
|
12007
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: t("MCP Server: {{server}}", { server: mcpProps.serverName }) }),
|
|
12008
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.link, children: t("Tool: {{tool}}", { tool: mcpProps.toolName }) })
|
|
11941
12009
|
] });
|
|
11942
12010
|
question = t(
|
|
11943
12011
|
'Allow execution of MCP tool "{{tool}}" from server "{{server}}"?',
|
|
@@ -11988,8 +12056,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
11988
12056
|
0,
|
|
11989
12057
|
switchOption
|
|
11990
12058
|
);
|
|
11991
|
-
bodyContent = /* @__PURE__ */ (0,
|
|
11992
|
-
/* @__PURE__ */ (0,
|
|
12059
|
+
bodyContent = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12060
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { paddingX: 1, marginLeft: 1, marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Text, { color: theme.status.warning, children: [
|
|
11993
12061
|
"\u26A0 ",
|
|
11994
12062
|
autoModeFallback.message
|
|
11995
12063
|
] }) }),
|
|
@@ -12028,8 +12096,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
12028
12096
|
const outerPadding = compactMode ? 0 : 1;
|
|
12029
12097
|
const sectionMargin = compactMode ? 0 : 1;
|
|
12030
12098
|
const outerWidth = compactMode ? void 0 : contentWidth;
|
|
12031
|
-
return /* @__PURE__ */ (0,
|
|
12032
|
-
/* @__PURE__ */ (0,
|
|
12099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Box_default, { flexDirection: "column", padding: outerPadding, width: outerWidth, children: [
|
|
12100
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
12033
12101
|
Box_default,
|
|
12034
12102
|
{
|
|
12035
12103
|
flexGrow: 1,
|
|
@@ -12039,8 +12107,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
12039
12107
|
children: bodyContent
|
|
12040
12108
|
}
|
|
12041
12109
|
),
|
|
12042
|
-
/* @__PURE__ */ (0,
|
|
12043
|
-
/* @__PURE__ */ (0,
|
|
12110
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { marginBottom: sectionMargin, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: renderedQuestion }) }),
|
|
12111
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
12044
12112
|
RadioButtonSelect,
|
|
12045
12113
|
{
|
|
12046
12114
|
items: renderedOptions,
|
|
@@ -12053,7 +12121,7 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
12053
12121
|
|
|
12054
12122
|
// packages/cli/src/ui/components/PlanSummaryDisplay.tsx
|
|
12055
12123
|
init_esbuild_shims();
|
|
12056
|
-
var
|
|
12124
|
+
var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
|
|
12057
12125
|
var PlanSummaryDisplay = /* @__PURE__ */ __name(({
|
|
12058
12126
|
data,
|
|
12059
12127
|
availableHeight,
|
|
@@ -12061,9 +12129,9 @@ var PlanSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
12061
12129
|
}) => {
|
|
12062
12130
|
const { message, plan, rejected } = data;
|
|
12063
12131
|
const messageColor = rejected ? Colors.AccentYellow : Colors.AccentGreen;
|
|
12064
|
-
return /* @__PURE__ */ (0,
|
|
12065
|
-
/* @__PURE__ */ (0,
|
|
12066
|
-
/* @__PURE__ */ (0,
|
|
12132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12133
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Text, { color: messageColor, wrap: "wrap", children: message }) }),
|
|
12134
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
12067
12135
|
MarkdownDisplay,
|
|
12068
12136
|
{
|
|
12069
12137
|
text: plan,
|
|
@@ -12185,7 +12253,7 @@ var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
|
|
|
12185
12253
|
);
|
|
12186
12254
|
|
|
12187
12255
|
// packages/cli/src/ui/components/messages/ToolMessage.tsx
|
|
12188
|
-
var
|
|
12256
|
+
var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
|
|
12189
12257
|
var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
12190
12258
|
ToolNames.AGENT,
|
|
12191
12259
|
...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
|
|
@@ -12256,6 +12324,12 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
|
|
|
12256
12324
|
data: resultDisplay
|
|
12257
12325
|
};
|
|
12258
12326
|
}
|
|
12327
|
+
if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "findings_list") {
|
|
12328
|
+
return {
|
|
12329
|
+
type: "findings",
|
|
12330
|
+
data: resultDisplay
|
|
12331
|
+
};
|
|
12332
|
+
}
|
|
12259
12333
|
if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "plan_summary") {
|
|
12260
12334
|
return {
|
|
12261
12335
|
type: "plan",
|
|
@@ -12297,6 +12371,12 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
|
|
|
12297
12371
|
if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && (resultDisplay.type === "team_result" || resultDisplay.type === "task_list")) {
|
|
12298
12372
|
return { type: "none" };
|
|
12299
12373
|
}
|
|
12374
|
+
if (typeof resultDisplay === "object" && resultDisplay !== null && "type" in resultDisplay && resultDisplay.type === "mcp_app" && "fallbackText" in resultDisplay && typeof resultDisplay.fallbackText === "string") {
|
|
12375
|
+
return {
|
|
12376
|
+
type: "string",
|
|
12377
|
+
data: resultDisplay.fallbackText
|
|
12378
|
+
};
|
|
12379
|
+
}
|
|
12300
12380
|
return {
|
|
12301
12381
|
type: "string",
|
|
12302
12382
|
data: typeof resultDisplay === "string" ? resultDisplay : JSON.stringify(resultDisplay)
|
|
@@ -12304,8 +12384,8 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
|
|
|
12304
12384
|
}, [resultDisplay]), "useResultDisplayRenderer");
|
|
12305
12385
|
var TodoResultRenderer = /* @__PURE__ */ __name(({
|
|
12306
12386
|
data
|
|
12307
|
-
}) => /* @__PURE__ */ (0,
|
|
12308
|
-
var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0,
|
|
12387
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoDisplay, { todos: data.todos }), "TodoResultRenderer");
|
|
12388
|
+
var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12309
12389
|
PlanSummaryDisplay,
|
|
12310
12390
|
{
|
|
12311
12391
|
data,
|
|
@@ -12317,14 +12397,14 @@ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? [])
|
|
|
12317
12397
|
var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
|
|
12318
12398
|
const priorCalls = priorApprovalCalls(data);
|
|
12319
12399
|
if (priorCalls.length === 0) return null;
|
|
12320
|
-
return /* @__PURE__ */ (0,
|
|
12400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
|
|
12321
12401
|
const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : ICON.CIRCLE_EMPTY;
|
|
12322
12402
|
const displayName = localizeToolDisplayName(
|
|
12323
12403
|
TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
|
|
12324
12404
|
);
|
|
12325
12405
|
const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
|
|
12326
12406
|
const label = desc ? `${displayName} ${desc}` : displayName;
|
|
12327
|
-
return /* @__PURE__ */ (0,
|
|
12407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${glyph} ${sanitizeMultilineForDisplay(label)}` }) }, call.callId);
|
|
12328
12408
|
}) });
|
|
12329
12409
|
}, "SubagentApprovalContext");
|
|
12330
12410
|
var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
|
|
@@ -12336,14 +12416,14 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
|
|
|
12336
12416
|
MINIMUM_MAX_HEIGHT,
|
|
12337
12417
|
availableHeight - contextLines - HEADER_LINES
|
|
12338
12418
|
) : availableHeight;
|
|
12339
|
-
return /* @__PURE__ */ (0,
|
|
12340
|
-
/* @__PURE__ */ (0,
|
|
12341
|
-
/* @__PURE__ */ (0,
|
|
12342
|
-
/* @__PURE__ */ (0,
|
|
12343
|
-
/* @__PURE__ */ (0,
|
|
12419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
|
|
12420
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { children: [
|
|
12421
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
|
|
12422
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
|
|
12423
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: ":" })
|
|
12344
12424
|
] }),
|
|
12345
|
-
/* @__PURE__ */ (0,
|
|
12346
|
-
/* @__PURE__ */ (0,
|
|
12425
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentApprovalContext, { data }),
|
|
12426
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12347
12427
|
ToolConfirmationMessage,
|
|
12348
12428
|
{
|
|
12349
12429
|
confirmationDetails: data.pendingConfirmation,
|
|
@@ -12358,16 +12438,16 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
|
|
|
12358
12438
|
}
|
|
12359
12439
|
if (data.pendingConfirmation) {
|
|
12360
12440
|
const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
|
|
12361
|
-
return /* @__PURE__ */ (0,
|
|
12362
|
-
/* @__PURE__ */ (0,
|
|
12441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingLeft: 1, children: [
|
|
12442
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.secondary, dimColor: true, children: [
|
|
12363
12443
|
"\u25CC Queued approval:",
|
|
12364
12444
|
" "
|
|
12365
12445
|
] }),
|
|
12366
|
-
/* @__PURE__ */ (0,
|
|
12446
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: agentLabel })
|
|
12367
12447
|
] });
|
|
12368
12448
|
}
|
|
12369
12449
|
if (data.status === "completed" || data.status === "failed" || data.status === "cancelled") {
|
|
12370
|
-
return /* @__PURE__ */ (0,
|
|
12450
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentScrollbackSummary, { data });
|
|
12371
12451
|
}
|
|
12372
12452
|
return null;
|
|
12373
12453
|
}, "SubagentExecutionRenderer");
|
|
@@ -12407,12 +12487,12 @@ var SubagentScrollbackSummary = /* @__PURE__ */ __name(({ data }) => {
|
|
|
12407
12487
|
const typePrefix = data.subagentName ? `${escapeAnsiCtrlCodes(data.subagentName)}: ` : "";
|
|
12408
12488
|
const safeDescription = escapeAnsiCtrlCodes(data.taskDescription ?? "");
|
|
12409
12489
|
const reason = data.status !== "completed" && data.terminateReason ? ` \xB7 ${escapeAnsiCtrlCodes(data.terminateReason)}` : "";
|
|
12410
|
-
return /* @__PURE__ */ (0,
|
|
12411
|
-
/* @__PURE__ */ (0,
|
|
12412
|
-
/* @__PURE__ */ (0,
|
|
12413
|
-
/* @__PURE__ */ (0,
|
|
12414
|
-
/* @__PURE__ */ (0,
|
|
12415
|
-
/* @__PURE__ */ (0,
|
|
12490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
12491
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color, children: `${glyph} ` }),
|
|
12492
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, children: typePrefix }),
|
|
12493
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: safeDescription }),
|
|
12494
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: tail }),
|
|
12495
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: reason })
|
|
12416
12496
|
] }) });
|
|
12417
12497
|
}, "SubagentScrollbackSummary");
|
|
12418
12498
|
var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, availableHeight, childWidth }) => {
|
|
@@ -12421,7 +12501,7 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
|
|
|
12421
12501
|
displayData = "..." + displayData.slice(-MAXIMUM_RESULT_DISPLAY_CHARACTERS);
|
|
12422
12502
|
}
|
|
12423
12503
|
if (renderAsMarkdown) {
|
|
12424
|
-
return /* @__PURE__ */ (0,
|
|
12504
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12425
12505
|
MarkdownDisplay,
|
|
12426
12506
|
{
|
|
12427
12507
|
text: displayData,
|
|
@@ -12436,25 +12516,25 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
|
|
|
12436
12516
|
availableHeight,
|
|
12437
12517
|
childWidth
|
|
12438
12518
|
);
|
|
12439
|
-
return /* @__PURE__ */ (0,
|
|
12519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12440
12520
|
MaxSizedBox,
|
|
12441
12521
|
{
|
|
12442
12522
|
maxHeight: availableHeight,
|
|
12443
12523
|
maxWidth: childWidth,
|
|
12444
12524
|
additionalHiddenLinesCount: sliced.hiddenLinesCount,
|
|
12445
12525
|
sourceBoundaries: sliced.sourceBoundaries,
|
|
12446
|
-
children: /* @__PURE__ */ (0,
|
|
12526
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { wrap: "wrap", color: theme.text.primary, children: sliced.text }) })
|
|
12447
12527
|
}
|
|
12448
12528
|
);
|
|
12449
12529
|
}, "StringResultRenderer");
|
|
12450
12530
|
var DiffResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, settings }) => {
|
|
12451
12531
|
const diffHeight = data.truncatedForSession && availableHeight !== void 0 ? Math.max(1, availableHeight - 1) : availableHeight;
|
|
12452
|
-
return /* @__PURE__ */ (0,
|
|
12453
|
-
data.truncatedForSession && /* @__PURE__ */ (0,
|
|
12532
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12533
|
+
data.truncatedForSession && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.status.warning, wrap: "wrap", children: [
|
|
12454
12534
|
data.fileDiffTruncated ? "Saved session preview only; full diff omitted from JSONL" : "Saved session preview only; full file contents truncated in JSONL",
|
|
12455
12535
|
data.fileDiffTruncated && typeof data.fileDiffLength === "number" ? ` (${data.fileDiffLength} chars).` : "."
|
|
12456
12536
|
] }),
|
|
12457
|
-
/* @__PURE__ */ (0,
|
|
12537
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12458
12538
|
DiffRenderer,
|
|
12459
12539
|
{
|
|
12460
12540
|
diffContent: data.fileDiff,
|
|
@@ -12556,10 +12636,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12556
12636
|
effectiveResultDisplay
|
|
12557
12637
|
);
|
|
12558
12638
|
const shouldCollapseResult = !forceShowResult && status === "Success" /* Success */ && isCollapsibleTool(name) && (effectiveDisplayRenderer.type === "string" || effectiveDisplayRenderer.type === "ansi");
|
|
12559
|
-
return /* @__PURE__ */ (0,
|
|
12560
|
-
/* @__PURE__ */ (0,
|
|
12561
|
-
/* @__PURE__ */ (0,
|
|
12562
|
-
/* @__PURE__ */ (0,
|
|
12639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingY: 0, flexDirection: "column", children: [
|
|
12640
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { minHeight: 1, children: [
|
|
12641
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolStatusIndicator, { status, name }),
|
|
12642
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12563
12643
|
ToolInfo,
|
|
12564
12644
|
{
|
|
12565
12645
|
name,
|
|
@@ -12572,8 +12652,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12572
12652
|
)
|
|
12573
12653
|
}
|
|
12574
12654
|
),
|
|
12575
|
-
shouldShowFocusHint && /* @__PURE__ */ (0,
|
|
12576
|
-
/* @__PURE__ */ (0,
|
|
12655
|
+
shouldShowFocusHint && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.accent, children: isThisShellFocused ? "(Focused)" : "(ctrl+f to focus)" }) }),
|
|
12656
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12577
12657
|
ToolElapsedTime,
|
|
12578
12658
|
{
|
|
12579
12659
|
status,
|
|
@@ -12581,9 +12661,9 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12581
12661
|
timeoutMs: shellTimeoutMs
|
|
12582
12662
|
}
|
|
12583
12663
|
),
|
|
12584
|
-
emphasis === "high" && /* @__PURE__ */ (0,
|
|
12664
|
+
emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TrailingIndicator, {})
|
|
12585
12665
|
] }),
|
|
12586
|
-
visionBridgeNoticeText && /* @__PURE__ */ (0,
|
|
12666
|
+
visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12587
12667
|
StringResultRenderer,
|
|
12588
12668
|
{
|
|
12589
12669
|
data: visionBridgeNoticeText,
|
|
@@ -12591,9 +12671,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12591
12671
|
childWidth: innerWidth
|
|
12592
12672
|
}
|
|
12593
12673
|
) }),
|
|
12594
|
-
effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0,
|
|
12595
|
-
effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0,
|
|
12596
|
-
effectiveDisplayRenderer.type === "
|
|
12674
|
+
effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12675
|
+
effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
|
|
12676
|
+
effectiveDisplayRenderer.type === "findings" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FindingsDisplay, { data: effectiveDisplayRenderer.data }),
|
|
12677
|
+
effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12597
12678
|
PlanResultRenderer,
|
|
12598
12679
|
{
|
|
12599
12680
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12601,7 +12682,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12601
12682
|
childWidth: innerWidth
|
|
12602
12683
|
}
|
|
12603
12684
|
),
|
|
12604
|
-
effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0,
|
|
12685
|
+
effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12605
12686
|
SubagentExecutionRenderer,
|
|
12606
12687
|
{
|
|
12607
12688
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12612,7 +12693,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12612
12693
|
isPending
|
|
12613
12694
|
}
|
|
12614
12695
|
),
|
|
12615
|
-
effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0,
|
|
12696
|
+
effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12616
12697
|
DiffResultRenderer,
|
|
12617
12698
|
{
|
|
12618
12699
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12621,8 +12702,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12621
12702
|
settings
|
|
12622
12703
|
}
|
|
12623
12704
|
),
|
|
12624
|
-
effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0,
|
|
12625
|
-
/* @__PURE__ */ (0,
|
|
12705
|
+
effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
12706
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12626
12707
|
AnsiOutputText,
|
|
12627
12708
|
{
|
|
12628
12709
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12630,7 +12711,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12630
12711
|
maxWidth: innerWidth
|
|
12631
12712
|
}
|
|
12632
12713
|
),
|
|
12633
|
-
effectiveDisplayRenderer.stats && /* @__PURE__ */ (0,
|
|
12714
|
+
effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12634
12715
|
ShellStatsBar,
|
|
12635
12716
|
{
|
|
12636
12717
|
...effectiveDisplayRenderer.stats,
|
|
@@ -12638,7 +12719,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12638
12719
|
}
|
|
12639
12720
|
)
|
|
12640
12721
|
] }),
|
|
12641
|
-
effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0,
|
|
12722
|
+
effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12642
12723
|
TerminalImage,
|
|
12643
12724
|
{
|
|
12644
12725
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12647,7 +12728,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12647
12728
|
availableTerminalHeight: availableHeight
|
|
12648
12729
|
}
|
|
12649
12730
|
),
|
|
12650
|
-
effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0,
|
|
12731
|
+
effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12651
12732
|
StringResultRenderer,
|
|
12652
12733
|
{
|
|
12653
12734
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12657,14 +12738,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12657
12738
|
}
|
|
12658
12739
|
)
|
|
12659
12740
|
] }) }),
|
|
12660
|
-
((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0,
|
|
12741
|
+
((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
12661
12742
|
Box_default,
|
|
12662
12743
|
{
|
|
12663
12744
|
paddingLeft: STATUS_INDICATOR_WIDTH,
|
|
12664
12745
|
width: "100%",
|
|
12665
12746
|
flexDirection: "column",
|
|
12666
12747
|
children: [
|
|
12667
|
-
images?.map((image, index) => /* @__PURE__ */ (0,
|
|
12748
|
+
images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12668
12749
|
TerminalImage,
|
|
12669
12750
|
{
|
|
12670
12751
|
image,
|
|
@@ -12673,11 +12754,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12673
12754
|
},
|
|
12674
12755
|
index
|
|
12675
12756
|
)),
|
|
12676
|
-
omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0,
|
|
12757
|
+
omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
|
|
12677
12758
|
]
|
|
12678
12759
|
}
|
|
12679
12760
|
),
|
|
12680
|
-
isThisShellFocused && config && /* @__PURE__ */ (0,
|
|
12761
|
+
isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12681
12762
|
ShellInputPrompt,
|
|
12682
12763
|
{
|
|
12683
12764
|
activeShellPtyId: activeShellPtyId ?? null,
|
|
@@ -12731,15 +12812,15 @@ var ToolInfo = /* @__PURE__ */ __name(({
|
|
|
12731
12812
|
}
|
|
12732
12813
|
}
|
|
12733
12814
|
}, [emphasis]);
|
|
12734
|
-
return /* @__PURE__ */ (0,
|
|
12735
|
-
/* @__PURE__ */ (0,
|
|
12736
|
-
!hideDescription && /* @__PURE__ */ (0,
|
|
12815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "wrap", strikethrough: status === "Canceled" /* Canceled */, children: [
|
|
12816
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: nameColor, bold: true, children: localizeToolDisplayName(name) }),
|
|
12817
|
+
!hideDescription && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
12737
12818
|
" ",
|
|
12738
|
-
/* @__PURE__ */ (0,
|
|
12819
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: description })
|
|
12739
12820
|
] })
|
|
12740
12821
|
] }) });
|
|
12741
12822
|
}, "ToolInfo");
|
|
12742
|
-
var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
12823
|
+
var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
|
|
12743
12824
|
" ",
|
|
12744
12825
|
"\u2190"
|
|
12745
12826
|
] }), "TrailingIndicator");
|
|
@@ -12747,7 +12828,7 @@ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_
|
|
|
12747
12828
|
// packages/cli/src/ui/components/messages/InlineParallelAgentsDisplay.tsx
|
|
12748
12829
|
init_esbuild_shims();
|
|
12749
12830
|
var import_react29 = __toESM(require_react(), 1);
|
|
12750
|
-
var
|
|
12831
|
+
var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
|
|
12751
12832
|
function deriveAgentId(toolCall, resultDisplay) {
|
|
12752
12833
|
return `${resultDisplay.subagentName}-${toolCall.callId}`;
|
|
12753
12834
|
}
|
|
@@ -12867,15 +12948,15 @@ var InlineParallelAgentsDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWi
|
|
|
12867
12948
|
visibleRows = [];
|
|
12868
12949
|
}
|
|
12869
12950
|
}
|
|
12870
|
-
return /* @__PURE__ */ (0,
|
|
12871
|
-
/* @__PURE__ */ (0,
|
|
12872
|
-
overflowCount > 0 && /* @__PURE__ */ (0,
|
|
12951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, children: [
|
|
12952
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: headerLabel }) }),
|
|
12953
|
+
overflowCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
|
|
12873
12954
|
"\u2026 +",
|
|
12874
12955
|
overflowCount,
|
|
12875
12956
|
" more ",
|
|
12876
12957
|
overflowCount === 1 ? "agent" : "agents"
|
|
12877
12958
|
] }) }),
|
|
12878
|
-
visibleRows.map((row) => /* @__PURE__ */ (0,
|
|
12959
|
+
visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AgentRow, { row, now }, row.agentId))
|
|
12879
12960
|
] });
|
|
12880
12961
|
}, "InlineParallelAgentsDisplay");
|
|
12881
12962
|
var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
|
|
@@ -12889,16 +12970,16 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
|
|
|
12889
12970
|
if (elapsed) trailingParts.push(elapsed);
|
|
12890
12971
|
if (tokens) trailingParts.push(`${tokens} tok`);
|
|
12891
12972
|
const trailing = trailingParts.join(" \xB7 ");
|
|
12892
|
-
return /* @__PURE__ */ (0,
|
|
12893
|
-
/* @__PURE__ */ (0,
|
|
12894
|
-
/* @__PURE__ */ (0,
|
|
12895
|
-
/* @__PURE__ */ (0,
|
|
12896
|
-
/* @__PURE__ */ (0,
|
|
12973
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
12974
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color, wrap: "truncate-end", children: glyph }) }),
|
|
12975
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, marginRight: 1, width: NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { wrap: "truncate-end", children: displayName }) }),
|
|
12976
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 1, flexGrow: 1, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: activity }) }),
|
|
12977
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: trailing }) })
|
|
12897
12978
|
] });
|
|
12898
12979
|
}, "AgentRow");
|
|
12899
12980
|
|
|
12900
12981
|
// packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
|
|
12901
|
-
var
|
|
12982
|
+
var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
|
|
12902
12983
|
function isAgentWithPendingConfirmation(rd) {
|
|
12903
12984
|
return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution" && rd.pendingConfirmation !== void 0;
|
|
12904
12985
|
}
|
|
@@ -12991,7 +13072,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
12991
13072
|
if (inlineToolCalls.length === 0) {
|
|
12992
13073
|
return null;
|
|
12993
13074
|
}
|
|
12994
|
-
return /* @__PURE__ */ (0,
|
|
13075
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12995
13076
|
InlineParallelAgentsDisplay,
|
|
12996
13077
|
{
|
|
12997
13078
|
toolCalls: inlineToolCalls,
|
|
@@ -13008,15 +13089,15 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13008
13089
|
if (allMemOpsComplete) {
|
|
13009
13090
|
const readCount = memoryReadCount ?? 0;
|
|
13010
13091
|
const writeCount = memoryWriteCount ?? 0;
|
|
13011
|
-
return /* @__PURE__ */ (0,
|
|
13012
|
-
readCount > 0 && /* @__PURE__ */ (0,
|
|
13092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
|
|
13093
|
+
readCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
|
|
13013
13094
|
ICON.CIRCLE_FILLED + " ",
|
|
13014
13095
|
"Recalled ",
|
|
13015
13096
|
readCount,
|
|
13016
13097
|
" ",
|
|
13017
13098
|
readCount === 1 ? "memory" : "memories"
|
|
13018
13099
|
] }) }),
|
|
13019
|
-
writeCount > 0 && /* @__PURE__ */ (0,
|
|
13100
|
+
writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
|
|
13020
13101
|
ICON.CIRCLE_FILLED + " ",
|
|
13021
13102
|
"Wrote ",
|
|
13022
13103
|
writeCount,
|
|
@@ -13034,7 +13115,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13034
13115
|
(t2) => !isCollapsibleTool(t2.name) || t2.status === "Canceled" /* Canceled */ || hasInlineImageOutput(t2)
|
|
13035
13116
|
);
|
|
13036
13117
|
const hasMemoryBadge = !isMemoryOnlyGroup && ((memoryWriteCount ?? 0) > 0 || (memoryReadCount ?? 0) > 0);
|
|
13037
|
-
const memoryBadge = hasMemoryBadge ? /* @__PURE__ */ (0,
|
|
13118
|
+
const memoryBadge = hasMemoryBadge ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
|
|
13038
13119
|
ICON.CIRCLE_FILLED + " ",
|
|
13039
13120
|
[
|
|
13040
13121
|
(memoryReadCount ?? 0) > 0 && `Recalled ${memoryReadCount} ${memoryReadCount === 1 ? "memory" : "memories"}`,
|
|
@@ -13042,8 +13123,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13042
13123
|
].filter(Boolean).join(", ")
|
|
13043
13124
|
] }) }) : null;
|
|
13044
13125
|
if (collapsibleTools.length > 0 && nonCollapsibleTools.length === 0) {
|
|
13045
|
-
return /* @__PURE__ */ (0,
|
|
13046
|
-
/* @__PURE__ */ (0,
|
|
13126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
|
|
13127
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13047
13128
|
CompactToolGroupDisplay,
|
|
13048
13129
|
{
|
|
13049
13130
|
toolCalls: collapsibleTools,
|
|
@@ -13076,8 +13157,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13076
13157
|
),
|
|
13077
13158
|
1
|
|
13078
13159
|
) : void 0;
|
|
13079
|
-
return /* @__PURE__ */ (0,
|
|
13080
|
-
collapsibleTools.length > 0 && /* @__PURE__ */ (0,
|
|
13160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, gap: 0, children: [
|
|
13161
|
+
collapsibleTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13081
13162
|
CompactToolGroupDisplay,
|
|
13082
13163
|
{
|
|
13083
13164
|
toolCalls: collapsibleTools,
|
|
@@ -13088,8 +13169,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13088
13169
|
nonCollapsibleTools.map((tool) => {
|
|
13089
13170
|
const isConfirming = toolAwaitingApproval?.callId === tool.callId;
|
|
13090
13171
|
const isSubagentFocused = isFocused && !toolAwaitingApproval && keyboardFocusedSubagentCallId === tool.callId;
|
|
13091
|
-
return /* @__PURE__ */ (0,
|
|
13092
|
-
/* @__PURE__ */ (0,
|
|
13172
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", minHeight: 1, children: [
|
|
13173
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13093
13174
|
ToolMessage,
|
|
13094
13175
|
{
|
|
13095
13176
|
...tool,
|
|
@@ -13105,7 +13186,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13105
13186
|
isPending
|
|
13106
13187
|
}
|
|
13107
13188
|
) }),
|
|
13108
|
-
tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0,
|
|
13189
|
+
tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13109
13190
|
ToolConfirmationMessage,
|
|
13110
13191
|
{
|
|
13111
13192
|
confirmationDetails: tool.confirmationDetails,
|
|
@@ -13122,13 +13203,21 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13122
13203
|
|
|
13123
13204
|
// packages/cli/src/ui/components/messages/CompressionMessage.tsx
|
|
13124
13205
|
init_esbuild_shims();
|
|
13125
|
-
var
|
|
13206
|
+
var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
|
|
13126
13207
|
function CompressionMessage({
|
|
13127
13208
|
compression
|
|
13128
13209
|
}) {
|
|
13129
|
-
const {
|
|
13210
|
+
const {
|
|
13211
|
+
isPending,
|
|
13212
|
+
originalTokenCount,
|
|
13213
|
+
newTokenCount,
|
|
13214
|
+
compressionStatus,
|
|
13215
|
+
originalTokenCountIsEstimated,
|
|
13216
|
+
newTokenCountIsEstimated
|
|
13217
|
+
} = compression;
|
|
13130
13218
|
const originalTokens = originalTokenCount ?? 0;
|
|
13131
13219
|
const newTokens = newTokenCount ?? 0;
|
|
13220
|
+
const formatTokens2 = /* @__PURE__ */ __name((count, isEstimated) => isEstimated ? `~${count}` : String(count), "formatTokens");
|
|
13132
13221
|
const getCompressionText = /* @__PURE__ */ __name(() => {
|
|
13133
13222
|
if (isPending) {
|
|
13134
13223
|
return t("Compressing chat history");
|
|
@@ -13138,8 +13227,11 @@ function CompressionMessage({
|
|
|
13138
13227
|
return t(
|
|
13139
13228
|
"Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.",
|
|
13140
13229
|
{
|
|
13141
|
-
originalTokens:
|
|
13142
|
-
|
|
13230
|
+
originalTokens: formatTokens2(
|
|
13231
|
+
originalTokens,
|
|
13232
|
+
originalTokenCountIsEstimated
|
|
13233
|
+
),
|
|
13234
|
+
newTokens: formatTokens2(newTokens, newTokenCountIsEstimated)
|
|
13143
13235
|
}
|
|
13144
13236
|
);
|
|
13145
13237
|
case 2 /* COMPRESSION_FAILED_INFLATED_TOKEN_COUNT */:
|
|
@@ -13160,9 +13252,9 @@ function CompressionMessage({
|
|
|
13160
13252
|
}
|
|
13161
13253
|
}, "getCompressionText");
|
|
13162
13254
|
const text = getCompressionText();
|
|
13163
|
-
return /* @__PURE__ */ (0,
|
|
13164
|
-
/* @__PURE__ */ (0,
|
|
13165
|
-
/* @__PURE__ */ (0,
|
|
13255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13256
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 2, flexShrink: 0, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(build_default, { type: "dots" }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.accent, children: ICON.DIAMOND }) }),
|
|
13257
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
13166
13258
|
Text,
|
|
13167
13259
|
{
|
|
13168
13260
|
color: compression.isPending ? theme.text.accent : theme.status.success,
|
|
@@ -13176,7 +13268,7 @@ __name(CompressionMessage, "CompressionMessage");
|
|
|
13176
13268
|
|
|
13177
13269
|
// packages/cli/src/ui/components/messages/SummaryMessage.tsx
|
|
13178
13270
|
init_esbuild_shims();
|
|
13179
|
-
var
|
|
13271
|
+
var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
|
|
13180
13272
|
var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
|
|
13181
13273
|
const getText = /* @__PURE__ */ __name(() => {
|
|
13182
13274
|
if (summary.isPending) {
|
|
@@ -13199,13 +13291,13 @@ var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
|
|
|
13199
13291
|
}, "getText");
|
|
13200
13292
|
const getIcon = /* @__PURE__ */ __name(() => {
|
|
13201
13293
|
if (summary.isPending) {
|
|
13202
|
-
return /* @__PURE__ */ (0,
|
|
13294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(build_default, { type: "dots" });
|
|
13203
13295
|
}
|
|
13204
|
-
return /* @__PURE__ */ (0,
|
|
13296
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
|
|
13205
13297
|
}, "getIcon");
|
|
13206
|
-
return /* @__PURE__ */ (0,
|
|
13207
|
-
/* @__PURE__ */ (0,
|
|
13208
|
-
/* @__PURE__ */ (0,
|
|
13298
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13299
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: 2, flexShrink: 0, children: getIcon() }),
|
|
13300
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
13209
13301
|
Text,
|
|
13210
13302
|
{
|
|
13211
13303
|
color: summary.isPending ? Colors.AccentPurple : Colors.AccentGreen,
|
|
@@ -13386,7 +13478,7 @@ Link.propTypes = {
|
|
|
13386
13478
|
var dist_default = Link;
|
|
13387
13479
|
|
|
13388
13480
|
// packages/cli/src/ui/components/messages/StatusMessages.tsx
|
|
13389
|
-
var
|
|
13481
|
+
var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
|
|
13390
13482
|
var StatusMessage = /* @__PURE__ */ __name(({
|
|
13391
13483
|
text,
|
|
13392
13484
|
prefix,
|
|
@@ -13399,11 +13491,11 @@ var StatusMessage = /* @__PURE__ */ __name(({
|
|
|
13399
13491
|
return null;
|
|
13400
13492
|
}
|
|
13401
13493
|
const prefixWidth = stringWidth(prefix) + 1;
|
|
13402
|
-
return /* @__PURE__ */ (0,
|
|
13403
|
-
/* @__PURE__ */ (0,
|
|
13404
|
-
/* @__PURE__ */ (0,
|
|
13405
|
-
text && text.trim() !== "" && /* @__PURE__ */ (0,
|
|
13406
|
-
/* @__PURE__ */ (0,
|
|
13494
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13495
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: prefixWidth, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: prefixColor, children: prefix }) }),
|
|
13496
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
13497
|
+
text && text.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", color: textColor, children: [
|
|
13498
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RenderInline, { text }),
|
|
13407
13499
|
children
|
|
13408
13500
|
] }),
|
|
13409
13501
|
footer
|
|
@@ -13414,17 +13506,17 @@ var InfoMessage = /* @__PURE__ */ __name(({
|
|
|
13414
13506
|
text,
|
|
13415
13507
|
linkUrl,
|
|
13416
13508
|
linkText
|
|
13417
|
-
}) => /* @__PURE__ */ (0,
|
|
13509
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13418
13510
|
StatusMessage,
|
|
13419
13511
|
{
|
|
13420
13512
|
text,
|
|
13421
13513
|
prefix: ICON.CIRCLE_FILLED,
|
|
13422
13514
|
prefixColor: theme.text.primary,
|
|
13423
13515
|
textColor: theme.text.primary,
|
|
13424
|
-
footer: linkUrl && /* @__PURE__ */ (0,
|
|
13516
|
+
footer: linkUrl && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(dist_default, { url: linkUrl, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.link, underline: true, children: linkText ?? linkUrl }) })
|
|
13425
13517
|
}
|
|
13426
13518
|
), "InfoMessage");
|
|
13427
|
-
var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13519
|
+
var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13428
13520
|
StatusMessage,
|
|
13429
13521
|
{
|
|
13430
13522
|
text,
|
|
@@ -13433,7 +13525,7 @@ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
|
|
|
13433
13525
|
textColor: theme.status.success
|
|
13434
13526
|
}
|
|
13435
13527
|
), "SuccessMessage");
|
|
13436
|
-
var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13528
|
+
var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13437
13529
|
StatusMessage,
|
|
13438
13530
|
{
|
|
13439
13531
|
text,
|
|
@@ -13445,21 +13537,21 @@ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
|
|
|
13445
13537
|
var ErrorMessage = /* @__PURE__ */ __name(({
|
|
13446
13538
|
text,
|
|
13447
13539
|
hint
|
|
13448
|
-
}) => /* @__PURE__ */ (0,
|
|
13540
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13449
13541
|
StatusMessage,
|
|
13450
13542
|
{
|
|
13451
13543
|
text,
|
|
13452
13544
|
prefix: "\u2715",
|
|
13453
13545
|
prefixColor: theme.status.error,
|
|
13454
13546
|
textColor: theme.status.error,
|
|
13455
|
-
children: hint && /* @__PURE__ */ (0,
|
|
13547
|
+
children: hint && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13456
13548
|
" (",
|
|
13457
13549
|
hint,
|
|
13458
13550
|
")"
|
|
13459
13551
|
] })
|
|
13460
13552
|
}
|
|
13461
13553
|
), "ErrorMessage");
|
|
13462
|
-
var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13554
|
+
var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13463
13555
|
StatusMessage,
|
|
13464
13556
|
{
|
|
13465
13557
|
text,
|
|
@@ -13468,7 +13560,7 @@ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */
|
|
|
13468
13560
|
textColor: theme.text.secondary
|
|
13469
13561
|
}
|
|
13470
13562
|
), "RetryCountdownMessage");
|
|
13471
|
-
var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13563
|
+
var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13472
13564
|
StatusMessage,
|
|
13473
13565
|
{
|
|
13474
13566
|
text,
|
|
@@ -13477,23 +13569,23 @@ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (
|
|
|
13477
13569
|
textColor: theme.text.secondary
|
|
13478
13570
|
}
|
|
13479
13571
|
), "VisionNoticeMessage");
|
|
13480
|
-
var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13481
|
-
/* @__PURE__ */ (0,
|
|
13482
|
-
/* @__PURE__ */ (0,
|
|
13483
|
-
/* @__PURE__ */ (0,
|
|
13572
|
+
var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13573
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, children: ICON.REFERENCE }) }),
|
|
13574
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", children: [
|
|
13575
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, bold: true, children: [
|
|
13484
13576
|
"recap:",
|
|
13485
13577
|
" "
|
|
13486
13578
|
] }),
|
|
13487
|
-
/* @__PURE__ */ (0,
|
|
13579
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
|
|
13488
13580
|
] })
|
|
13489
13581
|
] }), "AwayRecapMessage");
|
|
13490
13582
|
|
|
13491
13583
|
// packages/cli/src/ui/components/AboutBox.tsx
|
|
13492
13584
|
init_esbuild_shims();
|
|
13493
|
-
var
|
|
13585
|
+
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
|
|
13494
13586
|
var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
|
|
13495
13587
|
const fields = getSystemInfoFields(props);
|
|
13496
|
-
return /* @__PURE__ */ (0,
|
|
13588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
13497
13589
|
Box_default,
|
|
13498
13590
|
{
|
|
13499
13591
|
borderStyle: "round",
|
|
@@ -13502,15 +13594,15 @@ var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
|
|
|
13502
13594
|
padding: 1,
|
|
13503
13595
|
width,
|
|
13504
13596
|
children: [
|
|
13505
|
-
/* @__PURE__ */ (0,
|
|
13506
|
-
fields.map((field) => /* @__PURE__ */ (0,
|
|
13597
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Status") }) }),
|
|
13598
|
+
fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
13507
13599
|
Box_default,
|
|
13508
13600
|
{
|
|
13509
13601
|
flexDirection: "row",
|
|
13510
13602
|
marginTop: field.label === t("Auth") ? 1 : 0,
|
|
13511
13603
|
children: [
|
|
13512
|
-
/* @__PURE__ */ (0,
|
|
13513
|
-
/* @__PURE__ */ (0,
|
|
13604
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { width: "35%", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { bold: true, color: theme.text.link, children: field.label }) }),
|
|
13605
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: field.value }) })
|
|
13514
13606
|
]
|
|
13515
13607
|
},
|
|
13516
13608
|
field.label
|
|
@@ -13640,20 +13732,20 @@ function sortSources(sources) {
|
|
|
13640
13732
|
__name(sortSources, "sortSources");
|
|
13641
13733
|
|
|
13642
13734
|
// packages/cli/src/ui/components/StatsDisplay.tsx
|
|
13643
|
-
var
|
|
13644
|
-
var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13645
|
-
/* @__PURE__ */ (0,
|
|
13646
|
-
/* @__PURE__ */ (0,
|
|
13735
|
+
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
|
|
13736
|
+
var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13737
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 28, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.link, children: title }) }),
|
|
13738
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
|
|
13647
13739
|
] }), "StatRow");
|
|
13648
|
-
var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13649
|
-
/* @__PURE__ */ (0,
|
|
13740
|
+
var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { paddingLeft: 2, children: [
|
|
13741
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13650
13742
|
"\xBB ",
|
|
13651
13743
|
title
|
|
13652
13744
|
] }) }),
|
|
13653
|
-
/* @__PURE__ */ (0,
|
|
13745
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
|
|
13654
13746
|
] }), "SubStatRow");
|
|
13655
|
-
var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13656
|
-
/* @__PURE__ */ (0,
|
|
13747
|
+
var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
|
|
13748
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }),
|
|
13657
13749
|
children
|
|
13658
13750
|
] }), "Section");
|
|
13659
13751
|
var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cacheEfficiency }) => {
|
|
@@ -13662,14 +13754,14 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13662
13754
|
const inputTokensWidth = 15;
|
|
13663
13755
|
const outputTokensWidth = 15;
|
|
13664
13756
|
const entries = flattenModelsBySource(models);
|
|
13665
|
-
return /* @__PURE__ */ (0,
|
|
13666
|
-
/* @__PURE__ */ (0,
|
|
13667
|
-
/* @__PURE__ */ (0,
|
|
13668
|
-
/* @__PURE__ */ (0,
|
|
13669
|
-
/* @__PURE__ */ (0,
|
|
13670
|
-
/* @__PURE__ */ (0,
|
|
13757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
13758
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13759
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Model Usage") }) }),
|
|
13760
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Reqs") }) }),
|
|
13761
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Input Tokens") }) }),
|
|
13762
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Output Tokens") }) })
|
|
13671
13763
|
] }),
|
|
13672
|
-
/* @__PURE__ */ (0,
|
|
13764
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
13673
13765
|
Box_default,
|
|
13674
13766
|
{
|
|
13675
13767
|
borderStyle: "round",
|
|
@@ -13681,15 +13773,15 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13681
13773
|
width: nameWidth + requestsWidth + inputTokensWidth + outputTokensWidth
|
|
13682
13774
|
}
|
|
13683
13775
|
),
|
|
13684
|
-
entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0,
|
|
13685
|
-
/* @__PURE__ */ (0,
|
|
13686
|
-
/* @__PURE__ */ (0,
|
|
13687
|
-
/* @__PURE__ */ (0,
|
|
13688
|
-
/* @__PURE__ */ (0,
|
|
13776
|
+
entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13777
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
13778
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: metrics.api.totalRequests }) }),
|
|
13779
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.prompt.toLocaleString() }) }),
|
|
13780
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.warning, children: metrics.tokens.candidates.toLocaleString() }) })
|
|
13689
13781
|
] }, key)),
|
|
13690
|
-
cacheEfficiency > 0 && /* @__PURE__ */ (0,
|
|
13691
|
-
/* @__PURE__ */ (0,
|
|
13692
|
-
/* @__PURE__ */ (0,
|
|
13782
|
+
cacheEfficiency > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
13783
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13784
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.success, children: t("Savings Highlight:") }),
|
|
13693
13785
|
" ",
|
|
13694
13786
|
totalCachedTokens.toLocaleString(),
|
|
13695
13787
|
" (",
|
|
@@ -13698,8 +13790,8 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13698
13790
|
" ",
|
|
13699
13791
|
t("of input tokens were served from the cache, reducing costs.")
|
|
13700
13792
|
] }),
|
|
13701
|
-
/* @__PURE__ */ (0,
|
|
13702
|
-
/* @__PURE__ */ (0,
|
|
13793
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
|
|
13794
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13703
13795
|
"\xBB ",
|
|
13704
13796
|
t("Tip: For a full token breakdown, run `/stats model`.")
|
|
13705
13797
|
] })
|
|
@@ -13731,11 +13823,11 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13731
13823
|
const renderTitle = /* @__PURE__ */ __name(() => {
|
|
13732
13824
|
if (title) {
|
|
13733
13825
|
const gradientColors = getRenderableGradientColors(theme.ui.gradient);
|
|
13734
|
-
return gradientColors ? /* @__PURE__ */ (0,
|
|
13826
|
+
return gradientColors ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(dist_default2, { colors: gradientColors, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }) }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: title });
|
|
13735
13827
|
}
|
|
13736
|
-
return /* @__PURE__ */ (0,
|
|
13828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
|
|
13737
13829
|
}, "renderTitle");
|
|
13738
|
-
return /* @__PURE__ */ (0,
|
|
13830
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
13739
13831
|
Box_default,
|
|
13740
13832
|
{
|
|
13741
13833
|
borderStyle: "round",
|
|
@@ -13746,33 +13838,33 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13746
13838
|
width,
|
|
13747
13839
|
children: [
|
|
13748
13840
|
renderTitle(),
|
|
13749
|
-
/* @__PURE__ */ (0,
|
|
13750
|
-
/* @__PURE__ */ (0,
|
|
13751
|
-
/* @__PURE__ */ (0,
|
|
13752
|
-
/* @__PURE__ */ (0,
|
|
13841
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
|
|
13842
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Interaction Summary"), children: [
|
|
13843
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Session ID:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: stats.sessionId }) }),
|
|
13844
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Tool Calls:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13753
13845
|
tools.totalCalls,
|
|
13754
13846
|
" (",
|
|
13755
13847
|
" ",
|
|
13756
|
-
/* @__PURE__ */ (0,
|
|
13848
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
|
|
13757
13849
|
"\u2713 ",
|
|
13758
13850
|
tools.totalSuccess
|
|
13759
13851
|
] }),
|
|
13760
13852
|
" ",
|
|
13761
|
-
/* @__PURE__ */ (0,
|
|
13853
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
|
|
13762
13854
|
"x ",
|
|
13763
13855
|
tools.totalFail
|
|
13764
13856
|
] }),
|
|
13765
13857
|
" )"
|
|
13766
13858
|
] }) }),
|
|
13767
|
-
/* @__PURE__ */ (0,
|
|
13859
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: successColor, children: [
|
|
13768
13860
|
computed.successRate.toFixed(1),
|
|
13769
13861
|
"%"
|
|
13770
13862
|
] }) }),
|
|
13771
|
-
computed.totalDecisions > 0 && /* @__PURE__ */ (0,
|
|
13863
|
+
computed.totalDecisions > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("User Agreement:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: agreementColor, children: [
|
|
13772
13864
|
computed.agreementRate.toFixed(1),
|
|
13773
13865
|
"%",
|
|
13774
13866
|
" ",
|
|
13775
|
-
/* @__PURE__ */ (0,
|
|
13867
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13776
13868
|
"(",
|
|
13777
13869
|
computed.totalDecisions,
|
|
13778
13870
|
" ",
|
|
@@ -13780,41 +13872,41 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13780
13872
|
")"
|
|
13781
13873
|
] })
|
|
13782
13874
|
] }) }),
|
|
13783
|
-
files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ (0,
|
|
13784
|
-
/* @__PURE__ */ (0,
|
|
13875
|
+
files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Code Changes:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13876
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
|
|
13785
13877
|
"+",
|
|
13786
13878
|
files.totalLinesAdded
|
|
13787
13879
|
] }),
|
|
13788
13880
|
" ",
|
|
13789
|
-
/* @__PURE__ */ (0,
|
|
13881
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
|
|
13790
13882
|
"-",
|
|
13791
13883
|
files.totalLinesRemoved
|
|
13792
13884
|
] })
|
|
13793
13885
|
] }) })
|
|
13794
13886
|
] }),
|
|
13795
|
-
/* @__PURE__ */ (0,
|
|
13796
|
-
/* @__PURE__ */ (0,
|
|
13797
|
-
/* @__PURE__ */ (0,
|
|
13798
|
-
/* @__PURE__ */ (0,
|
|
13887
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Performance"), children: [
|
|
13888
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Wall Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: duration }) }),
|
|
13889
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Agent Active:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: formatDuration(computed.agentActiveTime) }) }),
|
|
13890
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SubStatRow, { title: t("API Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13799
13891
|
formatDuration(computed.totalApiTime),
|
|
13800
13892
|
" ",
|
|
13801
|
-
/* @__PURE__ */ (0,
|
|
13893
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13802
13894
|
"(",
|
|
13803
13895
|
computed.apiTimePercent.toFixed(1),
|
|
13804
13896
|
"%)"
|
|
13805
13897
|
] })
|
|
13806
13898
|
] }) }),
|
|
13807
|
-
/* @__PURE__ */ (0,
|
|
13899
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SubStatRow, { title: t("Tool Time:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13808
13900
|
formatDuration(computed.totalToolTime),
|
|
13809
13901
|
" ",
|
|
13810
|
-
/* @__PURE__ */ (0,
|
|
13902
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13811
13903
|
"(",
|
|
13812
13904
|
computed.toolTimePercent.toFixed(1),
|
|
13813
13905
|
"%)"
|
|
13814
13906
|
] })
|
|
13815
13907
|
] }) })
|
|
13816
13908
|
] }),
|
|
13817
|
-
Object.keys(models).length > 0 && /* @__PURE__ */ (0,
|
|
13909
|
+
Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
13818
13910
|
ModelUsageTable,
|
|
13819
13911
|
{
|
|
13820
13912
|
models,
|
|
@@ -13829,7 +13921,7 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13829
13921
|
|
|
13830
13922
|
// packages/cli/src/ui/components/ModelStatsDisplay.tsx
|
|
13831
13923
|
init_esbuild_shims();
|
|
13832
|
-
var
|
|
13924
|
+
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
13833
13925
|
var METRIC_COL_WIDTH = 28;
|
|
13834
13926
|
var MODEL_COL_WIDTH = 24;
|
|
13835
13927
|
var PANEL_HORIZONTAL_CHROME_WIDTH = 6;
|
|
@@ -13839,8 +13931,8 @@ var StatRow2 = /* @__PURE__ */ __name(({
|
|
|
13839
13931
|
modelColWidth,
|
|
13840
13932
|
isSubtle = false,
|
|
13841
13933
|
isSection = false
|
|
13842
|
-
}) => /* @__PURE__ */ (0,
|
|
13843
|
-
/* @__PURE__ */ (0,
|
|
13934
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
|
|
13935
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13844
13936
|
Text,
|
|
13845
13937
|
{
|
|
13846
13938
|
bold: isSection,
|
|
@@ -13848,7 +13940,7 @@ var StatRow2 = /* @__PURE__ */ __name(({
|
|
|
13848
13940
|
children: isSubtle ? ` \u21B3 ${title}` : title
|
|
13849
13941
|
}
|
|
13850
13942
|
) }),
|
|
13851
|
-
values.map((value, index) => /* @__PURE__ */ (0,
|
|
13943
|
+
values.map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: value }) }, index))
|
|
13852
13944
|
] }), "StatRow");
|
|
13853
13945
|
var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
13854
13946
|
width
|
|
@@ -13859,7 +13951,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13859
13951
|
const settings = useSettings();
|
|
13860
13952
|
const modelPricing = settings.merged.modelPricing;
|
|
13861
13953
|
if (entries.length === 0) {
|
|
13862
|
-
return /* @__PURE__ */ (0,
|
|
13954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13863
13955
|
Box_default,
|
|
13864
13956
|
{
|
|
13865
13957
|
borderStyle: "round",
|
|
@@ -13867,7 +13959,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13867
13959
|
paddingY: 1,
|
|
13868
13960
|
paddingX: 2,
|
|
13869
13961
|
width,
|
|
13870
|
-
children: /* @__PURE__ */ (0,
|
|
13962
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t("No API calls have been made in this session.") })
|
|
13871
13963
|
}
|
|
13872
13964
|
);
|
|
13873
13965
|
}
|
|
@@ -13888,7 +13980,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13888
13980
|
pricing: modelPricing?.[getModelName(key)]
|
|
13889
13981
|
}) != null
|
|
13890
13982
|
);
|
|
13891
|
-
return /* @__PURE__ */ (0,
|
|
13983
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
13892
13984
|
Box_default,
|
|
13893
13985
|
{
|
|
13894
13986
|
borderStyle: "round",
|
|
@@ -13898,13 +13990,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13898
13990
|
paddingX: 2,
|
|
13899
13991
|
width,
|
|
13900
13992
|
children: [
|
|
13901
|
-
/* @__PURE__ */ (0,
|
|
13902
|
-
/* @__PURE__ */ (0,
|
|
13903
|
-
/* @__PURE__ */ (0,
|
|
13904
|
-
/* @__PURE__ */ (0,
|
|
13905
|
-
entries.map(({ key, label }) => /* @__PURE__ */ (0,
|
|
13993
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Model Stats For Nerds") }),
|
|
13994
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
13995
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
|
|
13996
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Metric") }) }),
|
|
13997
|
+
entries.map(({ key, label }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: modelColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.primary, children: label }) }, key))
|
|
13906
13998
|
] }),
|
|
13907
|
-
/* @__PURE__ */ (0,
|
|
13999
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13908
14000
|
Box_default,
|
|
13909
14001
|
{
|
|
13910
14002
|
borderStyle: "single",
|
|
@@ -13915,7 +14007,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13915
14007
|
borderColor: theme.border.default
|
|
13916
14008
|
}
|
|
13917
14009
|
),
|
|
13918
|
-
/* @__PURE__ */ (0,
|
|
14010
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13919
14011
|
StatRow2,
|
|
13920
14012
|
{
|
|
13921
14013
|
title: t("API"),
|
|
@@ -13924,7 +14016,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13924
14016
|
isSection: true
|
|
13925
14017
|
}
|
|
13926
14018
|
),
|
|
13927
|
-
/* @__PURE__ */ (0,
|
|
14019
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13928
14020
|
StatRow2,
|
|
13929
14021
|
{
|
|
13930
14022
|
title: t("Requests"),
|
|
@@ -13932,13 +14024,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13932
14024
|
modelColWidth
|
|
13933
14025
|
}
|
|
13934
14026
|
),
|
|
13935
|
-
/* @__PURE__ */ (0,
|
|
14027
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13936
14028
|
StatRow2,
|
|
13937
14029
|
{
|
|
13938
14030
|
title: t("Errors"),
|
|
13939
14031
|
values: getModelValues((m) => {
|
|
13940
14032
|
const errorRate = calculateErrorRate(m);
|
|
13941
|
-
return /* @__PURE__ */ (0,
|
|
14033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
13942
14034
|
Text,
|
|
13943
14035
|
{
|
|
13944
14036
|
color: m.api.totalErrors > 0 ? theme.status.error : theme.text.primary,
|
|
@@ -13954,7 +14046,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13954
14046
|
modelColWidth
|
|
13955
14047
|
}
|
|
13956
14048
|
),
|
|
13957
|
-
/* @__PURE__ */ (0,
|
|
14049
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13958
14050
|
StatRow2,
|
|
13959
14051
|
{
|
|
13960
14052
|
title: t("Avg Latency"),
|
|
@@ -13965,8 +14057,8 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13965
14057
|
modelColWidth
|
|
13966
14058
|
}
|
|
13967
14059
|
),
|
|
13968
|
-
/* @__PURE__ */ (0,
|
|
13969
|
-
/* @__PURE__ */ (0,
|
|
14060
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
14061
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13970
14062
|
StatRow2,
|
|
13971
14063
|
{
|
|
13972
14064
|
title: t("Tokens"),
|
|
@@ -13975,15 +14067,15 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13975
14067
|
isSection: true
|
|
13976
14068
|
}
|
|
13977
14069
|
),
|
|
13978
|
-
/* @__PURE__ */ (0,
|
|
14070
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13979
14071
|
StatRow2,
|
|
13980
14072
|
{
|
|
13981
14073
|
title: t("Total"),
|
|
13982
|
-
values: getModelValues((m) => /* @__PURE__ */ (0,
|
|
14074
|
+
values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
|
|
13983
14075
|
modelColWidth
|
|
13984
14076
|
}
|
|
13985
14077
|
),
|
|
13986
|
-
/* @__PURE__ */ (0,
|
|
14078
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13987
14079
|
StatRow2,
|
|
13988
14080
|
{
|
|
13989
14081
|
title: t("Prompt"),
|
|
@@ -13992,14 +14084,14 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13992
14084
|
modelColWidth
|
|
13993
14085
|
}
|
|
13994
14086
|
),
|
|
13995
|
-
hasCached && /* @__PURE__ */ (0,
|
|
14087
|
+
hasCached && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13996
14088
|
StatRow2,
|
|
13997
14089
|
{
|
|
13998
14090
|
title: t("Cached"),
|
|
13999
14091
|
isSubtle: true,
|
|
14000
14092
|
values: getModelValues((m) => {
|
|
14001
14093
|
const cacheHitRate = calculateCacheHitRate(m);
|
|
14002
|
-
return /* @__PURE__ */ (0,
|
|
14094
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text, { color: theme.status.success, children: [
|
|
14003
14095
|
m.tokens.cached.toLocaleString(),
|
|
14004
14096
|
" (",
|
|
14005
14097
|
cacheHitRate.toFixed(1),
|
|
@@ -14009,7 +14101,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14009
14101
|
modelColWidth
|
|
14010
14102
|
}
|
|
14011
14103
|
),
|
|
14012
|
-
hasThoughts && /* @__PURE__ */ (0,
|
|
14104
|
+
hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14013
14105
|
StatRow2,
|
|
14014
14106
|
{
|
|
14015
14107
|
title: t("Thoughts"),
|
|
@@ -14018,7 +14110,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14018
14110
|
modelColWidth
|
|
14019
14111
|
}
|
|
14020
14112
|
),
|
|
14021
|
-
/* @__PURE__ */ (0,
|
|
14113
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14022
14114
|
StatRow2,
|
|
14023
14115
|
{
|
|
14024
14116
|
title: t("Output"),
|
|
@@ -14027,9 +14119,9 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14027
14119
|
modelColWidth
|
|
14028
14120
|
}
|
|
14029
14121
|
),
|
|
14030
|
-
hasPricing && /* @__PURE__ */ (0,
|
|
14031
|
-
/* @__PURE__ */ (0,
|
|
14032
|
-
/* @__PURE__ */ (0,
|
|
14122
|
+
hasPricing && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
14123
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
14124
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14033
14125
|
StatRow2,
|
|
14034
14126
|
{
|
|
14035
14127
|
title: t("Cost"),
|
|
@@ -14038,7 +14130,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14038
14130
|
isSection: true
|
|
14039
14131
|
}
|
|
14040
14132
|
),
|
|
14041
|
-
/* @__PURE__ */ (0,
|
|
14133
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14042
14134
|
StatRow2,
|
|
14043
14135
|
{
|
|
14044
14136
|
title: t("Estimated"),
|
|
@@ -14061,7 +14153,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14061
14153
|
|
|
14062
14154
|
// packages/cli/src/ui/components/ToolStatsDisplay.tsx
|
|
14063
14155
|
init_esbuild_shims();
|
|
14064
|
-
var
|
|
14156
|
+
var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
|
|
14065
14157
|
var TOOL_NAME_COL_WIDTH = 25;
|
|
14066
14158
|
var CALLS_COL_WIDTH = 8;
|
|
14067
14159
|
var SUCCESS_RATE_COL_WIDTH = 15;
|
|
@@ -14073,14 +14165,14 @@ var StatRow3 = /* @__PURE__ */ __name(({ name, stats }) => {
|
|
|
14073
14165
|
green: TOOL_SUCCESS_RATE_HIGH,
|
|
14074
14166
|
yellow: TOOL_SUCCESS_RATE_MEDIUM
|
|
14075
14167
|
});
|
|
14076
|
-
return /* @__PURE__ */ (0,
|
|
14077
|
-
/* @__PURE__ */ (0,
|
|
14078
|
-
/* @__PURE__ */ (0,
|
|
14079
|
-
/* @__PURE__ */ (0,
|
|
14168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14169
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: name }) }),
|
|
14170
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
|
|
14171
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Text, { color: successColor, children: [
|
|
14080
14172
|
successRate.toFixed(1),
|
|
14081
14173
|
"%"
|
|
14082
14174
|
] }) }),
|
|
14083
|
-
/* @__PURE__ */ (0,
|
|
14175
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: formatDuration(avgDuration) }) })
|
|
14084
14176
|
] });
|
|
14085
14177
|
}, "StatRow");
|
|
14086
14178
|
var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
@@ -14092,7 +14184,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14092
14184
|
([, metrics]) => metrics.count > 0
|
|
14093
14185
|
);
|
|
14094
14186
|
if (activeTools.length === 0) {
|
|
14095
|
-
return /* @__PURE__ */ (0,
|
|
14187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14096
14188
|
Box_default,
|
|
14097
14189
|
{
|
|
14098
14190
|
borderStyle: "round",
|
|
@@ -14100,7 +14192,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14100
14192
|
paddingY: 1,
|
|
14101
14193
|
paddingX: 2,
|
|
14102
14194
|
width,
|
|
14103
|
-
children: /* @__PURE__ */ (0,
|
|
14195
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t("No tool calls have been made in this session.") })
|
|
14104
14196
|
}
|
|
14105
14197
|
);
|
|
14106
14198
|
}
|
|
@@ -14119,7 +14211,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14119
14211
|
green: USER_AGREEMENT_RATE_HIGH,
|
|
14120
14212
|
yellow: USER_AGREEMENT_RATE_MEDIUM
|
|
14121
14213
|
});
|
|
14122
|
-
return /* @__PURE__ */ (0,
|
|
14214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
14123
14215
|
Box_default,
|
|
14124
14216
|
{
|
|
14125
14217
|
borderStyle: "round",
|
|
@@ -14129,15 +14221,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14129
14221
|
paddingX: 2,
|
|
14130
14222
|
width,
|
|
14131
14223
|
children: [
|
|
14132
|
-
/* @__PURE__ */ (0,
|
|
14133
|
-
/* @__PURE__ */ (0,
|
|
14134
|
-
/* @__PURE__ */ (0,
|
|
14135
|
-
/* @__PURE__ */ (0,
|
|
14136
|
-
/* @__PURE__ */ (0,
|
|
14137
|
-
/* @__PURE__ */ (0,
|
|
14138
|
-
/* @__PURE__ */ (0,
|
|
14224
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Tool Stats For Nerds") }),
|
|
14225
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
|
|
14226
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14227
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Tool Name") }) }),
|
|
14228
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
|
|
14229
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) }),
|
|
14230
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Avg Duration") }) })
|
|
14139
14231
|
] }),
|
|
14140
|
-
/* @__PURE__ */ (0,
|
|
14232
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14141
14233
|
Box_default,
|
|
14142
14234
|
{
|
|
14143
14235
|
borderStyle: "single",
|
|
@@ -14149,50 +14241,50 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14149
14241
|
width: "100%"
|
|
14150
14242
|
}
|
|
14151
14243
|
),
|
|
14152
|
-
activeTools.map(([name, stats2]) => /* @__PURE__ */ (0,
|
|
14153
|
-
/* @__PURE__ */ (0,
|
|
14154
|
-
/* @__PURE__ */ (0,
|
|
14155
|
-
/* @__PURE__ */ (0,
|
|
14156
|
-
/* @__PURE__ */ (0,
|
|
14244
|
+
activeTools.map(([name, stats2]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow3, { name, stats: stats2 }, name)),
|
|
14245
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
|
|
14246
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("User Decision Summary") }),
|
|
14247
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14248
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14157
14249
|
Box_default,
|
|
14158
14250
|
{
|
|
14159
14251
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14160
|
-
children: /* @__PURE__ */ (0,
|
|
14252
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: t("Total Reviewed Suggestions:") })
|
|
14161
14253
|
}
|
|
14162
14254
|
),
|
|
14163
|
-
/* @__PURE__ */ (0,
|
|
14255
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: totalReviewed }) })
|
|
14164
14256
|
] }),
|
|
14165
|
-
/* @__PURE__ */ (0,
|
|
14166
|
-
/* @__PURE__ */ (0,
|
|
14257
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14258
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14167
14259
|
Box_default,
|
|
14168
14260
|
{
|
|
14169
14261
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14170
|
-
children: /* @__PURE__ */ (0,
|
|
14262
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Accepted:") })
|
|
14171
14263
|
}
|
|
14172
14264
|
),
|
|
14173
|
-
/* @__PURE__ */ (0,
|
|
14265
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.success, children: totalDecisions.accept }) })
|
|
14174
14266
|
] }),
|
|
14175
|
-
/* @__PURE__ */ (0,
|
|
14176
|
-
/* @__PURE__ */ (0,
|
|
14267
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14268
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14177
14269
|
Box_default,
|
|
14178
14270
|
{
|
|
14179
14271
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14180
|
-
children: /* @__PURE__ */ (0,
|
|
14272
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Rejected:") })
|
|
14181
14273
|
}
|
|
14182
14274
|
),
|
|
14183
|
-
/* @__PURE__ */ (0,
|
|
14275
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.error, children: totalDecisions.reject }) })
|
|
14184
14276
|
] }),
|
|
14185
|
-
/* @__PURE__ */ (0,
|
|
14186
|
-
/* @__PURE__ */ (0,
|
|
14277
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14278
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14187
14279
|
Box_default,
|
|
14188
14280
|
{
|
|
14189
14281
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14190
|
-
children: /* @__PURE__ */ (0,
|
|
14282
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Modified:") })
|
|
14191
14283
|
}
|
|
14192
14284
|
),
|
|
14193
|
-
/* @__PURE__ */ (0,
|
|
14285
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.status.warning, children: totalDecisions.modify }) })
|
|
14194
14286
|
] }),
|
|
14195
|
-
/* @__PURE__ */ (0,
|
|
14287
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14196
14288
|
Box_default,
|
|
14197
14289
|
{
|
|
14198
14290
|
borderStyle: "single",
|
|
@@ -14204,15 +14296,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14204
14296
|
width: "100%"
|
|
14205
14297
|
}
|
|
14206
14298
|
),
|
|
14207
|
-
/* @__PURE__ */ (0,
|
|
14208
|
-
/* @__PURE__ */ (0,
|
|
14299
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14300
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14209
14301
|
Box_default,
|
|
14210
14302
|
{
|
|
14211
14303
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14212
|
-
children: /* @__PURE__ */ (0,
|
|
14304
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" Overall Agreement Rate:") })
|
|
14213
14305
|
}
|
|
14214
14306
|
),
|
|
14215
|
-
/* @__PURE__ */ (0,
|
|
14307
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: totalReviewed > 0 ? agreementColor : void 0, children: totalReviewed > 0 ? `${agreementRate.toFixed(1)}%` : "--" }) })
|
|
14216
14308
|
] })
|
|
14217
14309
|
]
|
|
14218
14310
|
}
|
|
@@ -14221,7 +14313,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14221
14313
|
|
|
14222
14314
|
// packages/cli/src/ui/components/SkillStatsDisplay.tsx
|
|
14223
14315
|
init_esbuild_shims();
|
|
14224
|
-
var
|
|
14316
|
+
var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
|
|
14225
14317
|
var SKILL_NAME_COL_WIDTH = 30;
|
|
14226
14318
|
var CALLS_COL_WIDTH2 = 8;
|
|
14227
14319
|
var SUCCESS_COL_WIDTH = 8;
|
|
@@ -14233,12 +14325,12 @@ var StatRow4 = /* @__PURE__ */ __name(({ name, stats }) => {
|
|
|
14233
14325
|
green: TOOL_SUCCESS_RATE_HIGH,
|
|
14234
14326
|
yellow: TOOL_SUCCESS_RATE_MEDIUM
|
|
14235
14327
|
});
|
|
14236
|
-
return /* @__PURE__ */ (0,
|
|
14237
|
-
/* @__PURE__ */ (0,
|
|
14238
|
-
/* @__PURE__ */ (0,
|
|
14239
|
-
/* @__PURE__ */ (0,
|
|
14240
|
-
/* @__PURE__ */ (0,
|
|
14241
|
-
/* @__PURE__ */ (0,
|
|
14328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
|
|
14329
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.link, children: name }) }),
|
|
14330
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: stats.count }) }),
|
|
14331
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.status.success, children: stats.success }) }),
|
|
14332
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: stats.fail > 0 ? theme.status.error : theme.text.primary, children: stats.fail }) }),
|
|
14333
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Text, { color: successColor, children: [
|
|
14242
14334
|
successRate.toFixed(1),
|
|
14243
14335
|
"%"
|
|
14244
14336
|
] }) })
|
|
@@ -14259,7 +14351,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14259
14351
|
return countDelta !== 0 ? countDelta : leftName.localeCompare(rightName);
|
|
14260
14352
|
});
|
|
14261
14353
|
if (activeSkills.length === 0) {
|
|
14262
|
-
return /* @__PURE__ */ (0,
|
|
14354
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
14263
14355
|
Box_default,
|
|
14264
14356
|
{
|
|
14265
14357
|
borderStyle: "round",
|
|
@@ -14267,11 +14359,11 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14267
14359
|
paddingY: 1,
|
|
14268
14360
|
paddingX: 2,
|
|
14269
14361
|
width,
|
|
14270
|
-
children: /* @__PURE__ */ (0,
|
|
14362
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: t("No skill calls have been made in this session.") })
|
|
14271
14363
|
}
|
|
14272
14364
|
);
|
|
14273
14365
|
}
|
|
14274
|
-
return /* @__PURE__ */ (0,
|
|
14366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
14275
14367
|
Box_default,
|
|
14276
14368
|
{
|
|
14277
14369
|
borderStyle: "round",
|
|
@@ -14281,16 +14373,16 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14281
14373
|
paddingX: 2,
|
|
14282
14374
|
width,
|
|
14283
14375
|
children: [
|
|
14284
|
-
/* @__PURE__ */ (0,
|
|
14285
|
-
/* @__PURE__ */ (0,
|
|
14286
|
-
/* @__PURE__ */ (0,
|
|
14287
|
-
/* @__PURE__ */ (0,
|
|
14288
|
-
/* @__PURE__ */ (0,
|
|
14289
|
-
/* @__PURE__ */ (0,
|
|
14290
|
-
/* @__PURE__ */ (0,
|
|
14291
|
-
/* @__PURE__ */ (0,
|
|
14376
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Skill Stats For Nerds") }),
|
|
14377
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { height: 1 }),
|
|
14378
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
|
|
14379
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SKILL_NAME_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skill Name") }) }),
|
|
14380
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: CALLS_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Calls") }) }),
|
|
14381
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("OK") }) }),
|
|
14382
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: FAIL_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Fail") }) }),
|
|
14383
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { width: SUCCESS_RATE_COL_WIDTH2, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Success Rate") }) })
|
|
14292
14384
|
] }),
|
|
14293
|
-
/* @__PURE__ */ (0,
|
|
14385
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
14294
14386
|
Box_default,
|
|
14295
14387
|
{
|
|
14296
14388
|
borderStyle: "single",
|
|
@@ -14302,7 +14394,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14302
14394
|
width: "100%"
|
|
14303
14395
|
}
|
|
14304
14396
|
),
|
|
14305
|
-
activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0,
|
|
14397
|
+
activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StatRow4, { name, stats: skillStats }, name))
|
|
14306
14398
|
]
|
|
14307
14399
|
}
|
|
14308
14400
|
);
|
|
@@ -14310,7 +14402,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14310
14402
|
|
|
14311
14403
|
// packages/cli/src/ui/components/SessionSummaryDisplay.tsx
|
|
14312
14404
|
init_esbuild_shims();
|
|
14313
|
-
var
|
|
14405
|
+
var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
|
|
14314
14406
|
var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
14315
14407
|
duration,
|
|
14316
14408
|
width
|
|
@@ -14319,8 +14411,8 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14319
14411
|
const { stats } = useSessionStats();
|
|
14320
14412
|
const hasMessages = stats.promptCount > 0;
|
|
14321
14413
|
const canResume = !!config.getChatRecordingService();
|
|
14322
|
-
return /* @__PURE__ */ (0,
|
|
14323
|
-
/* @__PURE__ */ (0,
|
|
14414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
14415
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
14324
14416
|
StatsDisplay,
|
|
14325
14417
|
{
|
|
14326
14418
|
title: t("Agent powering down. Goodbye!"),
|
|
@@ -14328,10 +14420,10 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14328
14420
|
width
|
|
14329
14421
|
}
|
|
14330
14422
|
),
|
|
14331
|
-
hasMessages && canResume && /* @__PURE__ */ (0,
|
|
14423
|
+
hasMessages && canResume && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14332
14424
|
t("To continue this session, run"),
|
|
14333
14425
|
" ",
|
|
14334
|
-
/* @__PURE__ */ (0,
|
|
14426
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.accent, children: [
|
|
14335
14427
|
"qwen --resume ",
|
|
14336
14428
|
stats.sessionId
|
|
14337
14429
|
] })
|
|
@@ -14342,7 +14434,7 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14342
14434
|
// packages/cli/src/ui/components/Help.tsx
|
|
14343
14435
|
init_esbuild_shims();
|
|
14344
14436
|
var import_react33 = __toESM(require_react(), 1);
|
|
14345
|
-
var
|
|
14437
|
+
var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
|
|
14346
14438
|
var DEFAULT_WIDTH = 100;
|
|
14347
14439
|
var KEY_COL_WIDTH = 20;
|
|
14348
14440
|
var COMMAND_LIST_VISIBLE_LINES = 18;
|
|
@@ -14382,13 +14474,13 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14382
14474
|
},
|
|
14383
14475
|
{ isActive: isInteractive }
|
|
14384
14476
|
);
|
|
14385
|
-
return /* @__PURE__ */ (0,
|
|
14477
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14386
14478
|
Box_default,
|
|
14387
14479
|
{
|
|
14388
14480
|
borderColor: theme.border.default,
|
|
14389
14481
|
borderStyle: "single",
|
|
14390
14482
|
width: safeWidth,
|
|
14391
|
-
children: /* @__PURE__ */ (0,
|
|
14483
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
14392
14484
|
Box_default,
|
|
14393
14485
|
{
|
|
14394
14486
|
flexDirection: "column",
|
|
@@ -14396,10 +14488,10 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14396
14488
|
paddingY: 1,
|
|
14397
14489
|
width: safeWidth - 2,
|
|
14398
14490
|
children: [
|
|
14399
|
-
/* @__PURE__ */ (0,
|
|
14400
|
-
/* @__PURE__ */ (0,
|
|
14401
|
-
activeTab === "general" && /* @__PURE__ */ (0,
|
|
14402
|
-
activeTab === "commands" && /* @__PURE__ */ (0,
|
|
14491
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(HelpTabs, { activeTab }),
|
|
14492
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { marginTop: 1, children: [
|
|
14493
|
+
activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GeneralHelp, { width: bodyWidth }),
|
|
14494
|
+
activeTab === "commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14403
14495
|
CommandsHelp,
|
|
14404
14496
|
{
|
|
14405
14497
|
commands,
|
|
@@ -14408,7 +14500,7 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14408
14500
|
isInteractive
|
|
14409
14501
|
}
|
|
14410
14502
|
),
|
|
14411
|
-
activeTab === "custom-commands" && /* @__PURE__ */ (0,
|
|
14503
|
+
activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14412
14504
|
CommandsHelp,
|
|
14413
14505
|
{
|
|
14414
14506
|
commands,
|
|
@@ -14418,24 +14510,24 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14418
14510
|
}
|
|
14419
14511
|
)
|
|
14420
14512
|
] }),
|
|
14421
|
-
/* @__PURE__ */ (0,
|
|
14513
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14422
14514
|
t("For more help:"),
|
|
14423
14515
|
" ",
|
|
14424
|
-
/* @__PURE__ */ (0,
|
|
14516
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { underline: true, children: DOCS_URL })
|
|
14425
14517
|
] }) }),
|
|
14426
|
-
/* @__PURE__ */ (0,
|
|
14518
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { italic: true, color: theme.text.secondary, children: t("Tab/Shift+Tab to switch tabs \xB7 Esc to cancel") }) })
|
|
14427
14519
|
]
|
|
14428
14520
|
}
|
|
14429
14521
|
)
|
|
14430
14522
|
}
|
|
14431
14523
|
) });
|
|
14432
14524
|
}, "Help");
|
|
14433
|
-
var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0,
|
|
14434
|
-
/* @__PURE__ */ (0,
|
|
14435
|
-
/* @__PURE__ */ (0,
|
|
14525
|
+
var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
14526
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.accent, children: "Qwen Code" }),
|
|
14527
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
14436
14528
|
TAB_DEFS.map(({ tab, labelKey }) => {
|
|
14437
14529
|
const active = tab === activeTab;
|
|
14438
|
-
return /* @__PURE__ */ (0,
|
|
14530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14439
14531
|
Text,
|
|
14440
14532
|
{
|
|
14441
14533
|
color: active ? theme.background.primary : theme.text.primary,
|
|
@@ -14468,13 +14560,13 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14468
14560
|
const left = shortcuts.slice(0, Math.ceil(shortcuts.length / 2));
|
|
14469
14561
|
const right = shortcuts.slice(Math.ceil(shortcuts.length / 2));
|
|
14470
14562
|
const colWidth = Math.floor((width - 2) / 2);
|
|
14471
|
-
return /* @__PURE__ */ (0,
|
|
14472
|
-
/* @__PURE__ */ (0,
|
|
14563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
14564
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, children: t(
|
|
14473
14565
|
"Qwen Code understands your codebase, makes edits with your permission, and executes commands right from your terminal."
|
|
14474
14566
|
) }) }),
|
|
14475
|
-
/* @__PURE__ */ (0,
|
|
14476
|
-
/* @__PURE__ */ (0,
|
|
14477
|
-
/* @__PURE__ */ (0,
|
|
14567
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Shortcuts") }),
|
|
14568
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", gap: 2, children: [
|
|
14569
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: left.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14478
14570
|
ShortcutRow,
|
|
14479
14571
|
{
|
|
14480
14572
|
shortcutKey: key,
|
|
@@ -14483,7 +14575,7 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14483
14575
|
},
|
|
14484
14576
|
key
|
|
14485
14577
|
)) }),
|
|
14486
|
-
/* @__PURE__ */ (0,
|
|
14578
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14487
14579
|
ShortcutRow,
|
|
14488
14580
|
{
|
|
14489
14581
|
shortcutKey: key,
|
|
@@ -14495,9 +14587,9 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14495
14587
|
] })
|
|
14496
14588
|
] });
|
|
14497
14589
|
}, "GeneralHelp");
|
|
14498
|
-
var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0,
|
|
14499
|
-
/* @__PURE__ */ (0,
|
|
14500
|
-
/* @__PURE__ */ (0,
|
|
14590
|
+
var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", width, children: [
|
|
14591
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { width: KEY_COL_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.accent, children: shortcutKey }) }),
|
|
14592
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: truncateText2(desc, width - KEY_COL_WIDTH - 1) })
|
|
14501
14593
|
] }), "ShortcutRow");
|
|
14502
14594
|
var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInteractive }) => {
|
|
14503
14595
|
const groups = (0, import_react33.useMemo)(
|
|
@@ -14535,17 +14627,17 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14535
14627
|
{ isActive: isInteractive }
|
|
14536
14628
|
);
|
|
14537
14629
|
if (groups.length === 0) {
|
|
14538
|
-
return /* @__PURE__ */ (0,
|
|
14630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: customOnly ? t("No custom commands are currently available.") : t("No commands are currently available.") });
|
|
14539
14631
|
}
|
|
14540
14632
|
const visibleLines = lines.slice(
|
|
14541
14633
|
scrollOffset,
|
|
14542
14634
|
scrollOffset + COMMAND_LIST_VISIBLE_LINES
|
|
14543
14635
|
);
|
|
14544
|
-
return /* @__PURE__ */ (0,
|
|
14545
|
-
/* @__PURE__ */ (0,
|
|
14546
|
-
/* @__PURE__ */ (0,
|
|
14636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
14637
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, children: customOnly ? t("Browse custom, skill, plugin, and MCP commands:") : t("Browse built-in commands:") }) }),
|
|
14638
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", height: COMMAND_LIST_VISIBLE_LINES, children: visibleLines.map((line, index) => {
|
|
14547
14639
|
const stableKey = line.type === "blank" ? `blank:${index}` : `${line.type}:${line.text}:${index}`;
|
|
14548
|
-
return /* @__PURE__ */ (0,
|
|
14640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CommandLine, { line }, stableKey);
|
|
14549
14641
|
}) }),
|
|
14550
14642
|
maxScroll > 0 && (() => {
|
|
14551
14643
|
const totalCommands = lines.filter(
|
|
@@ -14557,7 +14649,7 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14557
14649
|
const firstCmd = visibleSignatures.length > 0 ? visibleSignatures[0].commandIndex + 1 : 0;
|
|
14558
14650
|
const lastCmd = visibleSignatures.length > 0 ? visibleSignatures[visibleSignatures.length - 1].commandIndex + 1 : 0;
|
|
14559
14651
|
const range = firstCmd === lastCmd ? `${firstCmd}` : `${firstCmd}-${lastCmd}`;
|
|
14560
|
-
return /* @__PURE__ */ (0,
|
|
14652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14561
14653
|
t("Use \u2191/\u2193 to scroll"),
|
|
14562
14654
|
" ",
|
|
14563
14655
|
`(${range}/${totalCommands})`
|
|
@@ -14568,28 +14660,28 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14568
14660
|
var CommandLine = /* @__PURE__ */ __name(({ line }) => {
|
|
14569
14661
|
switch (line.type) {
|
|
14570
14662
|
case "group":
|
|
14571
|
-
return /* @__PURE__ */ (0,
|
|
14663
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
|
|
14572
14664
|
line.text,
|
|
14573
14665
|
" ",
|
|
14574
|
-
/* @__PURE__ */ (0,
|
|
14666
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
|
|
14575
14667
|
] });
|
|
14576
14668
|
case "signature":
|
|
14577
|
-
return /* @__PURE__ */ (0,
|
|
14578
|
-
/* @__PURE__ */ (0,
|
|
14669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
14670
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.accent, children: [
|
|
14579
14671
|
" ",
|
|
14580
14672
|
line.text
|
|
14581
14673
|
] }),
|
|
14582
|
-
line.meta && /* @__PURE__ */ (0,
|
|
14674
|
+
line.meta && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14583
14675
|
" ",
|
|
14584
14676
|
line.meta
|
|
14585
14677
|
] })
|
|
14586
14678
|
] });
|
|
14587
14679
|
case "description":
|
|
14588
|
-
return /* @__PURE__ */ (0,
|
|
14680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: line.text }) });
|
|
14589
14681
|
case "subcommands":
|
|
14590
|
-
return /* @__PURE__ */ (0,
|
|
14682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { paddingLeft: 4, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: line.text }) });
|
|
14591
14683
|
case "blank":
|
|
14592
|
-
return /* @__PURE__ */ (0,
|
|
14684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { children: " " });
|
|
14593
14685
|
default:
|
|
14594
14686
|
return null;
|
|
14595
14687
|
}
|
|
@@ -14739,6 +14831,11 @@ function useHistory() {
|
|
|
14739
14831
|
`[ADD_ITEM] type=${newItem.type}, textSize=${textSize}, historyLength=${newHistory.length}`
|
|
14740
14832
|
);
|
|
14741
14833
|
}
|
|
14834
|
+
if (newItem.type === "tool_group" && newItem.tools.some(
|
|
14835
|
+
(tool) => isFindingsListDisplay(tool.resultDisplay)
|
|
14836
|
+
)) {
|
|
14837
|
+
return coalesceFindingsHistoryItems(newHistory);
|
|
14838
|
+
}
|
|
14742
14839
|
return newHistory;
|
|
14743
14840
|
});
|
|
14744
14841
|
return id;
|
|
@@ -14858,6 +14955,7 @@ ${UI_COMPACT_CLEARED_IMAGE_MESSAGE}` : UI_COMPACT_CLEARED_IMAGE_MESSAGE,
|
|
|
14858
14955
|
...t2,
|
|
14859
14956
|
resultDisplay: UI_COMPACT_CLEARED_MESSAGE,
|
|
14860
14957
|
detailedDisplay: void 0,
|
|
14958
|
+
supersededFindingsDisplay: void 0,
|
|
14861
14959
|
images: void 0,
|
|
14862
14960
|
omittedImageCount: void 0
|
|
14863
14961
|
};
|
|
@@ -14905,7 +15003,7 @@ var import_react37 = __toESM(require_react(), 1);
|
|
|
14905
15003
|
|
|
14906
15004
|
// packages/cli/src/ui/IdeIntegrationNudge.tsx
|
|
14907
15005
|
init_esbuild_shims();
|
|
14908
|
-
var
|
|
15006
|
+
var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
|
|
14909
15007
|
function IdeIntegrationNudge({
|
|
14910
15008
|
ide,
|
|
14911
15009
|
onComplete
|
|
@@ -14951,7 +15049,7 @@ function IdeIntegrationNudge({
|
|
|
14951
15049
|
}
|
|
14952
15050
|
];
|
|
14953
15051
|
const installText = isInSandbox ? `Note: In sandbox environments, IDE integration requires manual setup on the host system. If you select Yes, you'll receive instructions on how to set this up.` : isExtensionPreInstalled ? `If you select Yes, the CLI will connect to your ${ideName ?? "editor"} and have access to your open files and display diffs directly.` : `If you select Yes, we'll install an extension that allows the CLI to access your open files and display diffs directly in ${ideName ?? "your editor"}.`;
|
|
14954
|
-
return /* @__PURE__ */ (0,
|
|
15052
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
14955
15053
|
Box_default,
|
|
14956
15054
|
{
|
|
14957
15055
|
flexDirection: "column",
|
|
@@ -14961,14 +15059,14 @@ function IdeIntegrationNudge({
|
|
|
14961
15059
|
width: "100%",
|
|
14962
15060
|
marginLeft: 1,
|
|
14963
15061
|
children: [
|
|
14964
|
-
/* @__PURE__ */ (0,
|
|
14965
|
-
/* @__PURE__ */ (0,
|
|
14966
|
-
/* @__PURE__ */ (0,
|
|
15062
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
|
|
15063
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text, { children: [
|
|
15064
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.status.warning, children: "> " }),
|
|
14967
15065
|
`Do you want to connect ${ideName ?? "your editor"} to Qwen Code?`
|
|
14968
15066
|
] }),
|
|
14969
|
-
/* @__PURE__ */ (0,
|
|
15067
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: installText })
|
|
14970
15068
|
] }),
|
|
14971
|
-
/* @__PURE__ */ (0,
|
|
15069
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
|
|
14972
15070
|
]
|
|
14973
15071
|
}
|
|
14974
15072
|
);
|
|
@@ -14977,7 +15075,7 @@ __name(IdeIntegrationNudge, "IdeIntegrationNudge");
|
|
|
14977
15075
|
|
|
14978
15076
|
// packages/cli/src/ui/CommandFormatMigrationNudge.tsx
|
|
14979
15077
|
init_esbuild_shims();
|
|
14980
|
-
var
|
|
15078
|
+
var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
|
|
14981
15079
|
function CommandFormatMigrationNudge({
|
|
14982
15080
|
tomlFiles,
|
|
14983
15081
|
onComplete
|
|
@@ -15011,7 +15109,7 @@ function CommandFormatMigrationNudge({
|
|
|
15011
15109
|
const count = tomlFiles.length;
|
|
15012
15110
|
const fileList = count <= 3 ? tomlFiles.map((f) => ` \u2022 ${f}`).join("\n") : ` \u2022 ${tomlFiles.slice(0, 2).join("\n \u2022 ")}
|
|
15013
15111
|
\u2022 ${t("... and {{count}} more", { count: String(count - 2) })}`;
|
|
15014
|
-
return /* @__PURE__ */ (0,
|
|
15112
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
15015
15113
|
Box_default,
|
|
15016
15114
|
{
|
|
15017
15115
|
flexDirection: "column",
|
|
@@ -15021,20 +15119,20 @@ function CommandFormatMigrationNudge({
|
|
|
15021
15119
|
width: "100%",
|
|
15022
15120
|
marginLeft: 1,
|
|
15023
15121
|
children: [
|
|
15024
|
-
/* @__PURE__ */ (0,
|
|
15025
|
-
/* @__PURE__ */ (0,
|
|
15026
|
-
/* @__PURE__ */ (0,
|
|
15027
|
-
/* @__PURE__ */ (0,
|
|
15122
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
|
|
15123
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text, { children: [
|
|
15124
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.status.warning, children: "\u26A0 " }),
|
|
15125
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { bold: true, children: t("Command Format Migration") })
|
|
15028
15126
|
] }),
|
|
15029
|
-
/* @__PURE__ */ (0,
|
|
15030
|
-
/* @__PURE__ */ (0,
|
|
15031
|
-
/* @__PURE__ */ (0,
|
|
15032
|
-
/* @__PURE__ */ (0,
|
|
15127
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: count > 1 ? t("Found {{count}} TOML command files:", { count: String(count) }) : t("Found {{count}} TOML command file:", { count: String(count) }) }),
|
|
15128
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: fileList }),
|
|
15129
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { children: "" }),
|
|
15130
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t(
|
|
15033
15131
|
"The TOML format is deprecated. Would you like to migrate them to Markdown format?"
|
|
15034
15132
|
) }),
|
|
15035
|
-
/* @__PURE__ */ (0,
|
|
15133
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
|
|
15036
15134
|
] }),
|
|
15037
|
-
/* @__PURE__ */ (0,
|
|
15135
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
|
|
15038
15136
|
]
|
|
15039
15137
|
}
|
|
15040
15138
|
);
|
|
@@ -15046,7 +15144,7 @@ init_esbuild_shims();
|
|
|
15046
15144
|
var import_react35 = __toESM(require_react(), 1);
|
|
15047
15145
|
import * as process3 from "node:process";
|
|
15048
15146
|
import * as path3 from "node:path";
|
|
15049
|
-
var
|
|
15147
|
+
var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
|
|
15050
15148
|
var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
15051
15149
|
onSelect,
|
|
15052
15150
|
isRestarting
|
|
@@ -15088,8 +15186,8 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15088
15186
|
key: "Don't trust (esc)"
|
|
15089
15187
|
}
|
|
15090
15188
|
];
|
|
15091
|
-
return /* @__PURE__ */ (0,
|
|
15092
|
-
/* @__PURE__ */ (0,
|
|
15189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15190
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
15093
15191
|
Box_default,
|
|
15094
15192
|
{
|
|
15095
15193
|
flexDirection: "column",
|
|
@@ -15099,11 +15197,11 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15099
15197
|
width: "100%",
|
|
15100
15198
|
marginLeft: 1,
|
|
15101
15199
|
children: [
|
|
15102
|
-
/* @__PURE__ */ (0,
|
|
15103
|
-
/* @__PURE__ */ (0,
|
|
15104
|
-
/* @__PURE__ */ (0,
|
|
15200
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15201
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, color: theme.text.primary, children: "Do you trust this folder?" }),
|
|
15202
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.text.primary, children: "Trusting a folder allows Qwen Code to execute commands it suggests. This is a security feature to prevent accidental execution in untrusted directories." })
|
|
15105
15203
|
] }),
|
|
15106
|
-
/* @__PURE__ */ (0,
|
|
15204
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
15107
15205
|
RadioButtonSelect,
|
|
15108
15206
|
{
|
|
15109
15207
|
items: options,
|
|
@@ -15114,13 +15212,13 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15114
15212
|
]
|
|
15115
15213
|
}
|
|
15116
15214
|
),
|
|
15117
|
-
isRestarting && /* @__PURE__ */ (0,
|
|
15215
|
+
isRestarting && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Box_default, { marginLeft: 1, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { color: theme.status.warning, children: "Qwen Code is restarting to apply the trust changes..." }) })
|
|
15118
15216
|
] });
|
|
15119
15217
|
}, "FolderTrustDialog");
|
|
15120
15218
|
|
|
15121
15219
|
// packages/cli/src/ui/components/mcp/MCPServerApprovalDialog.tsx
|
|
15122
15220
|
init_esbuild_shims();
|
|
15123
|
-
var
|
|
15221
|
+
var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
|
|
15124
15222
|
var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, source, pendingServers, remaining, onSelect }) => {
|
|
15125
15223
|
useKeypress(
|
|
15126
15224
|
(key) => {
|
|
@@ -15147,7 +15245,7 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
|
|
|
15147
15245
|
key: "reject"
|
|
15148
15246
|
}
|
|
15149
15247
|
];
|
|
15150
|
-
return /* @__PURE__ */ (0,
|
|
15248
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
15151
15249
|
Box_default,
|
|
15152
15250
|
{
|
|
15153
15251
|
flexDirection: "column",
|
|
@@ -15157,21 +15255,21 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
|
|
|
15157
15255
|
width: "100%",
|
|
15158
15256
|
marginLeft: 1,
|
|
15159
15257
|
children: [
|
|
15160
|
-
/* @__PURE__ */ (0,
|
|
15161
|
-
/* @__PURE__ */ (0,
|
|
15162
|
-
/* @__PURE__ */ (0,
|
|
15258
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15259
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, color: theme.text.primary, children: `Untrusted MCP server in ${source}` }),
|
|
15260
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.primary, children: `This workspace declares an MCP server. Approving lets Qwen Code start it and run its tools. Approval is bound to this exact configuration \u2014 if ${source} changes, you will be asked again.` })
|
|
15163
15261
|
] }),
|
|
15164
|
-
/* @__PURE__ */ (0,
|
|
15165
|
-
/* @__PURE__ */ (0,
|
|
15166
|
-
/* @__PURE__ */ (0,
|
|
15262
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15263
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15264
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, children: serverName }),
|
|
15167
15265
|
` ${summary}`
|
|
15168
15266
|
] }),
|
|
15169
|
-
remaining > 0 && /* @__PURE__ */ (0,
|
|
15170
|
-
/* @__PURE__ */ (0,
|
|
15171
|
-
pendingServers.map((server) => /* @__PURE__ */ (0,
|
|
15267
|
+
remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
15268
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: "Approve all will trust these servers:" }),
|
|
15269
|
+
pendingServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: ` ${server.name} ${server.summary}` }, server.name))
|
|
15172
15270
|
] })
|
|
15173
15271
|
] }),
|
|
15174
|
-
/* @__PURE__ */ (0,
|
|
15272
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
|
|
15175
15273
|
]
|
|
15176
15274
|
}
|
|
15177
15275
|
) });
|
|
@@ -15594,17 +15692,17 @@ function extensionUpdatesReducer(state, action) {
|
|
|
15594
15692
|
__name(extensionUpdatesReducer, "extensionUpdatesReducer");
|
|
15595
15693
|
|
|
15596
15694
|
// packages/cli/src/ui/components/views/ExtensionsList.tsx
|
|
15597
|
-
var
|
|
15695
|
+
var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
|
|
15598
15696
|
var debugLogger8 = createDebugLogger("EXTENSIONS_LIST");
|
|
15599
15697
|
var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
15600
15698
|
const { extensionsUpdateState, commandContext } = useUIState();
|
|
15601
15699
|
const extensions = commandContext.services.config?.getExtensions() || [];
|
|
15602
15700
|
if (extensions.length === 0) {
|
|
15603
|
-
return /* @__PURE__ */ (0,
|
|
15701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "No extensions installed." });
|
|
15604
15702
|
}
|
|
15605
|
-
return /* @__PURE__ */ (0,
|
|
15606
|
-
/* @__PURE__ */ (0,
|
|
15607
|
-
/* @__PURE__ */ (0,
|
|
15703
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
|
|
15704
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "Installed extensions:" }),
|
|
15705
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: extensions.map((ext) => {
|
|
15608
15706
|
const state = extensionsUpdateState.get(ext.name);
|
|
15609
15707
|
const isActive = ext.isActive;
|
|
15610
15708
|
const activeString = isActive ? "active" : "disabled";
|
|
@@ -15633,15 +15731,15 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
15633
15731
|
debugLogger8.error(`Unhandled ExtensionUpdateState ${state}`);
|
|
15634
15732
|
break;
|
|
15635
15733
|
}
|
|
15636
|
-
return /* @__PURE__ */ (0,
|
|
15637
|
-
/* @__PURE__ */ (0,
|
|
15638
|
-
/* @__PURE__ */ (0,
|
|
15639
|
-
/* @__PURE__ */ (0,
|
|
15640
|
-
/* @__PURE__ */ (0,
|
|
15734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15735
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
|
|
15736
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: "cyan", children: `${getExtensionDisplayName(ext, getCurrentLanguage())} (v${ext.version})` }),
|
|
15737
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: activeColor, children: ` - ${activeString}` }),
|
|
15738
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: stateColor, children: ` (${stateText})` })
|
|
15641
15739
|
] }),
|
|
15642
|
-
ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0,
|
|
15643
|
-
/* @__PURE__ */ (0,
|
|
15644
|
-
ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0,
|
|
15740
|
+
ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 2, children: [
|
|
15741
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "settings:" }),
|
|
15742
|
+
ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
|
|
15645
15743
|
"- ",
|
|
15646
15744
|
setting.name,
|
|
15647
15745
|
": ",
|
|
@@ -15655,33 +15753,33 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
15655
15753
|
|
|
15656
15754
|
// packages/cli/src/ui/components/views/SkillsList.tsx
|
|
15657
15755
|
init_esbuild_shims();
|
|
15658
|
-
var
|
|
15756
|
+
var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
|
|
15659
15757
|
var NAME_COLUMN = 24;
|
|
15660
15758
|
function truncate(text, max) {
|
|
15661
15759
|
if (text.length <= max) return text;
|
|
15662
15760
|
return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
|
|
15663
15761
|
}
|
|
15664
15762
|
__name(truncate, "truncate");
|
|
15665
|
-
var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0,
|
|
15666
|
-
/* @__PURE__ */ (0,
|
|
15667
|
-
/* @__PURE__ */ (0,
|
|
15668
|
-
skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0,
|
|
15669
|
-
/* @__PURE__ */ (0,
|
|
15763
|
+
var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15764
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available skills:") }),
|
|
15765
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Box_default, { height: 1 }),
|
|
15766
|
+
skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
15767
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15670
15768
|
" ",
|
|
15671
15769
|
"- "
|
|
15672
15770
|
] }),
|
|
15673
|
-
/* @__PURE__ */ (0,
|
|
15674
|
-
skill.description && /* @__PURE__ */ (0,
|
|
15771
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.accent, children: skill.description ? truncate(skill.name, NAME_COLUMN).padEnd(NAME_COLUMN) : skill.name }),
|
|
15772
|
+
skill.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
15675
15773
|
" ",
|
|
15676
15774
|
truncate(skill.description, 80)
|
|
15677
15775
|
] }),
|
|
15678
|
-
skill.level && /* @__PURE__ */ (0,
|
|
15776
|
+
skill.level && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
15679
15777
|
" ",
|
|
15680
15778
|
"(",
|
|
15681
15779
|
levelLabel(skill.level),
|
|
15682
15780
|
")"
|
|
15683
15781
|
] })
|
|
15684
|
-
] }, skill.name)) : /* @__PURE__ */ (0,
|
|
15782
|
+
] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15685
15783
|
" ",
|
|
15686
15784
|
t("No skills available")
|
|
15687
15785
|
] })
|
|
@@ -15689,25 +15787,25 @@ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, impo
|
|
|
15689
15787
|
|
|
15690
15788
|
// packages/cli/src/ui/components/views/ToolsList.tsx
|
|
15691
15789
|
init_esbuild_shims();
|
|
15692
|
-
var
|
|
15790
|
+
var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
|
|
15693
15791
|
var ToolsList = /* @__PURE__ */ __name(({
|
|
15694
15792
|
tools,
|
|
15695
15793
|
showDescriptions,
|
|
15696
15794
|
contentWidth
|
|
15697
|
-
}) => /* @__PURE__ */ (0,
|
|
15698
|
-
/* @__PURE__ */ (0,
|
|
15699
|
-
/* @__PURE__ */ (0,
|
|
15700
|
-
tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0,
|
|
15701
|
-
/* @__PURE__ */ (0,
|
|
15795
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15796
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available Qwen Code CLI tools:") }),
|
|
15797
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { height: 1 }),
|
|
15798
|
+
tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
15799
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15702
15800
|
" ",
|
|
15703
15801
|
"- "
|
|
15704
15802
|
] }),
|
|
15705
|
-
/* @__PURE__ */ (0,
|
|
15706
|
-
/* @__PURE__ */ (0,
|
|
15803
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15804
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { bold: true, color: theme.text.accent, children: [
|
|
15707
15805
|
tool.displayName,
|
|
15708
15806
|
showDescriptions ? ` (${tool.name})` : ""
|
|
15709
15807
|
] }),
|
|
15710
|
-
showDescriptions && tool.description && /* @__PURE__ */ (0,
|
|
15808
|
+
showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
15711
15809
|
MarkdownDisplay,
|
|
15712
15810
|
{
|
|
15713
15811
|
contentWidth,
|
|
@@ -15716,7 +15814,7 @@ var ToolsList = /* @__PURE__ */ __name(({
|
|
|
15716
15814
|
}
|
|
15717
15815
|
)
|
|
15718
15816
|
] })
|
|
15719
|
-
] }, tool.name)) : /* @__PURE__ */ (0,
|
|
15817
|
+
] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15720
15818
|
" ",
|
|
15721
15819
|
t("No tools available")
|
|
15722
15820
|
] })
|
|
@@ -15724,7 +15822,7 @@ var ToolsList = /* @__PURE__ */ __name(({
|
|
|
15724
15822
|
|
|
15725
15823
|
// packages/cli/src/ui/components/views/McpStatus.tsx
|
|
15726
15824
|
init_esbuild_shims();
|
|
15727
|
-
var
|
|
15825
|
+
var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
|
|
15728
15826
|
var McpStatus = /* @__PURE__ */ __name(({
|
|
15729
15827
|
servers,
|
|
15730
15828
|
tools,
|
|
@@ -15740,19 +15838,19 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15740
15838
|
}) => {
|
|
15741
15839
|
const serverNames = Object.keys(servers);
|
|
15742
15840
|
if (serverNames.length === 0 && blockedServers.length === 0) {
|
|
15743
|
-
return /* @__PURE__ */ (0,
|
|
15841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { children: t("No MCP servers configured.") }) });
|
|
15744
15842
|
}
|
|
15745
|
-
return /* @__PURE__ */ (0,
|
|
15746
|
-
discoveryInProgress && /* @__PURE__ */ (0,
|
|
15747
|
-
/* @__PURE__ */ (0,
|
|
15843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15844
|
+
discoveryInProgress && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15845
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, children: t("\u25CC MCP servers are starting up ({{count}} initializing)...", {
|
|
15748
15846
|
count: String(connectingServers.length)
|
|
15749
15847
|
}) }),
|
|
15750
|
-
/* @__PURE__ */ (0,
|
|
15848
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t(
|
|
15751
15849
|
"Note: First startup may take longer. Tool availability will update automatically."
|
|
15752
15850
|
) })
|
|
15753
15851
|
] }),
|
|
15754
|
-
/* @__PURE__ */ (0,
|
|
15755
|
-
/* @__PURE__ */ (0,
|
|
15852
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: t("Configured MCP servers:") }),
|
|
15853
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
|
|
15756
15854
|
serverNames.map((serverName) => {
|
|
15757
15855
|
const server = servers[serverName];
|
|
15758
15856
|
const serverTools = tools.filter(
|
|
@@ -15807,140 +15905,140 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15807
15905
|
const serverAuthStatus = authStatus[serverName];
|
|
15808
15906
|
let authStatusNode = null;
|
|
15809
15907
|
if (serverAuthStatus === "authenticated") {
|
|
15810
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15908
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15811
15909
|
" (",
|
|
15812
15910
|
t("OAuth"),
|
|
15813
15911
|
")"
|
|
15814
15912
|
] });
|
|
15815
15913
|
} else if (serverAuthStatus === "expired") {
|
|
15816
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15914
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.error, children: [
|
|
15817
15915
|
" (",
|
|
15818
15916
|
t("OAuth expired"),
|
|
15819
15917
|
")"
|
|
15820
15918
|
] });
|
|
15821
15919
|
} else if (serverAuthStatus === "unauthenticated") {
|
|
15822
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15920
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.warning, children: [
|
|
15823
15921
|
" ",
|
|
15824
15922
|
"(",
|
|
15825
15923
|
t("OAuth not authenticated"),
|
|
15826
15924
|
")"
|
|
15827
15925
|
] });
|
|
15828
15926
|
}
|
|
15829
|
-
return /* @__PURE__ */ (0,
|
|
15830
|
-
/* @__PURE__ */ (0,
|
|
15831
|
-
/* @__PURE__ */ (0,
|
|
15927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15928
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { children: [
|
|
15929
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: statusColor, children: [
|
|
15832
15930
|
statusIndicator,
|
|
15833
15931
|
" "
|
|
15834
15932
|
] }),
|
|
15835
|
-
/* @__PURE__ */ (0,
|
|
15836
|
-
/* @__PURE__ */ (0,
|
|
15933
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: serverDisplayName }),
|
|
15934
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15837
15935
|
" - ",
|
|
15838
15936
|
statusText,
|
|
15839
15937
|
status === "connected" /* CONNECTED */ && parts.length > 0 && ` (${parts.join(", ")})`
|
|
15840
15938
|
] }),
|
|
15841
15939
|
authStatusNode
|
|
15842
15940
|
] }),
|
|
15843
|
-
status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0,
|
|
15941
|
+
status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15844
15942
|
" (",
|
|
15845
15943
|
t("tools and prompts will appear when ready"),
|
|
15846
15944
|
")"
|
|
15847
15945
|
] }),
|
|
15848
|
-
status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0,
|
|
15946
|
+
status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15849
15947
|
"(",
|
|
15850
15948
|
t("{{count}} tools cached", { count: String(toolCount) }),
|
|
15851
15949
|
")"
|
|
15852
15950
|
] }),
|
|
15853
|
-
showDescriptions && server?.description && /* @__PURE__ */ (0,
|
|
15854
|
-
serverTools.length > 0 && /* @__PURE__ */ (0,
|
|
15855
|
-
/* @__PURE__ */ (0,
|
|
15951
|
+
showDescriptions && server?.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: server.description.trim() }),
|
|
15952
|
+
serverTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
|
|
15953
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Tools:") }),
|
|
15856
15954
|
serverTools.map((tool) => {
|
|
15857
15955
|
const schemaContent = showSchema && tool.schema && (tool.schema.parametersJsonSchema || tool.schema.parameters) ? JSON.stringify(
|
|
15858
15956
|
tool.schema.parametersJsonSchema ?? tool.schema.parameters,
|
|
15859
15957
|
null,
|
|
15860
15958
|
2
|
|
15861
15959
|
) : null;
|
|
15862
|
-
return /* @__PURE__ */ (0,
|
|
15863
|
-
/* @__PURE__ */ (0,
|
|
15960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15961
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15864
15962
|
"- ",
|
|
15865
|
-
/* @__PURE__ */ (0,
|
|
15963
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: tool.name })
|
|
15866
15964
|
] }),
|
|
15867
|
-
showDescriptions && tool.description && /* @__PURE__ */ (0,
|
|
15868
|
-
schemaContent && /* @__PURE__ */ (0,
|
|
15869
|
-
/* @__PURE__ */ (0,
|
|
15870
|
-
/* @__PURE__ */ (0,
|
|
15965
|
+
showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: tool.description.trim() }) }),
|
|
15966
|
+
schemaContent && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 4, children: [
|
|
15967
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: t("Parameters:") }),
|
|
15968
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: schemaContent })
|
|
15871
15969
|
] })
|
|
15872
15970
|
] }, tool.name);
|
|
15873
15971
|
})
|
|
15874
15972
|
] }),
|
|
15875
|
-
serverPrompts.length > 0 && /* @__PURE__ */ (0,
|
|
15876
|
-
/* @__PURE__ */ (0,
|
|
15877
|
-
serverPrompts.map((prompt) => /* @__PURE__ */ (0,
|
|
15878
|
-
/* @__PURE__ */ (0,
|
|
15973
|
+
serverPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
|
|
15974
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Prompts:") }),
|
|
15975
|
+
serverPrompts.map((prompt) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15976
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15879
15977
|
"- ",
|
|
15880
|
-
/* @__PURE__ */ (0,
|
|
15978
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.name })
|
|
15881
15979
|
] }),
|
|
15882
|
-
showDescriptions && prompt.description && /* @__PURE__ */ (0,
|
|
15980
|
+
showDescriptions && prompt.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.description.trim() }) })
|
|
15883
15981
|
] }, prompt.name))
|
|
15884
15982
|
] })
|
|
15885
15983
|
] }, serverName);
|
|
15886
15984
|
}),
|
|
15887
|
-
blockedServers.map((server) => /* @__PURE__ */ (0,
|
|
15888
|
-
/* @__PURE__ */ (0,
|
|
15889
|
-
/* @__PURE__ */ (0,
|
|
15985
|
+
blockedServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { marginBottom: 1, children: [
|
|
15986
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.error, children: "\u25CF " }),
|
|
15987
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { bold: true, children: [
|
|
15890
15988
|
server.name,
|
|
15891
15989
|
server.extensionName ? ` ${t("(from {{extensionName}})", {
|
|
15892
15990
|
extensionName: server.extensionName
|
|
15893
15991
|
})}` : ""
|
|
15894
15992
|
] }),
|
|
15895
|
-
/* @__PURE__ */ (0,
|
|
15993
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15896
15994
|
" - ",
|
|
15897
15995
|
t("Blocked")
|
|
15898
15996
|
] })
|
|
15899
15997
|
] }, server.name)),
|
|
15900
|
-
showTips && /* @__PURE__ */ (0,
|
|
15901
|
-
/* @__PURE__ */ (0,
|
|
15902
|
-
/* @__PURE__ */ (0,
|
|
15998
|
+
showTips && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
15999
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: t("\u2605 Tips:") }),
|
|
16000
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15903
16001
|
" ",
|
|
15904
16002
|
"- ",
|
|
15905
16003
|
t("Use"),
|
|
15906
16004
|
" ",
|
|
15907
|
-
/* @__PURE__ */ (0,
|
|
16005
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
|
|
15908
16006
|
" ",
|
|
15909
16007
|
t("to show server and tool descriptions")
|
|
15910
16008
|
] }),
|
|
15911
|
-
/* @__PURE__ */ (0,
|
|
16009
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15912
16010
|
" ",
|
|
15913
16011
|
"- ",
|
|
15914
16012
|
t("Use"),
|
|
15915
16013
|
" ",
|
|
15916
|
-
/* @__PURE__ */ (0,
|
|
16014
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
|
|
15917
16015
|
" ",
|
|
15918
16016
|
t("to show tool parameter schemas")
|
|
15919
16017
|
] }),
|
|
15920
|
-
/* @__PURE__ */ (0,
|
|
16018
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15921
16019
|
" ",
|
|
15922
16020
|
"- ",
|
|
15923
16021
|
t("Use"),
|
|
15924
16022
|
" ",
|
|
15925
|
-
/* @__PURE__ */ (0,
|
|
16023
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
|
|
15926
16024
|
" ",
|
|
15927
16025
|
t("to hide descriptions")
|
|
15928
16026
|
] }),
|
|
15929
|
-
/* @__PURE__ */ (0,
|
|
16027
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15930
16028
|
" ",
|
|
15931
16029
|
"- ",
|
|
15932
16030
|
t("Use"),
|
|
15933
16031
|
" ",
|
|
15934
|
-
/* @__PURE__ */ (0,
|
|
16032
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
|
|
15935
16033
|
" ",
|
|
15936
16034
|
t("to authenticate with OAuth-enabled servers")
|
|
15937
16035
|
] }),
|
|
15938
|
-
/* @__PURE__ */ (0,
|
|
16036
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15939
16037
|
" ",
|
|
15940
16038
|
"- ",
|
|
15941
16039
|
t("Press"),
|
|
15942
16040
|
" ",
|
|
15943
|
-
/* @__PURE__ */ (0,
|
|
16041
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
|
|
15944
16042
|
" ",
|
|
15945
16043
|
t("to toggle tool descriptions on/off")
|
|
15946
16044
|
] })
|
|
@@ -15950,7 +16048,7 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15950
16048
|
|
|
15951
16049
|
// packages/cli/src/ui/components/views/ContextUsage.tsx
|
|
15952
16050
|
init_esbuild_shims();
|
|
15953
|
-
var
|
|
16051
|
+
var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
|
|
15954
16052
|
var FILLED = "\u2588";
|
|
15955
16053
|
var BUFFER = "\u2592";
|
|
15956
16054
|
var EMPTY = "\u2591";
|
|
@@ -15982,10 +16080,10 @@ var ProgressBar = /* @__PURE__ */ __name(({ usedPercentage, bufferPercentage, wi
|
|
|
15982
16080
|
} else if (usedPercentage > 60) {
|
|
15983
16081
|
usedColor = theme.status.warning;
|
|
15984
16082
|
}
|
|
15985
|
-
return /* @__PURE__ */ (0,
|
|
15986
|
-
/* @__PURE__ */ (0,
|
|
15987
|
-
/* @__PURE__ */ (0,
|
|
15988
|
-
/* @__PURE__ */ (0,
|
|
16083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { children: [
|
|
16084
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: usedColor, children: usedStr }),
|
|
16085
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: freeStr }),
|
|
16086
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, children: bufferStr })
|
|
15989
16087
|
] });
|
|
15990
16088
|
}, "ProgressBar");
|
|
15991
16089
|
function formatPercentage(tokens, contextWindowSize) {
|
|
@@ -16007,18 +16105,18 @@ var CategoryRow = /* @__PURE__ */ __name(({
|
|
|
16007
16105
|
}) => {
|
|
16008
16106
|
const percentageStr = formatPercentage(tokens, contextWindowSize);
|
|
16009
16107
|
const tokenStr = `${formatTokens(tokens)} ${t("tokens")} (${percentageStr}%)`;
|
|
16010
|
-
return /* @__PURE__ */ (0,
|
|
16011
|
-
/* @__PURE__ */ (0,
|
|
16012
|
-
/* @__PURE__ */ (0,
|
|
16013
|
-
/* @__PURE__ */ (0,
|
|
16108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16109
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: symbolColor || theme.text.secondary, children: symbol }) }),
|
|
16110
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 24, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
16111
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: isOverLimit ? theme.status.error : theme.text.secondary, children: tokenStr }) })
|
|
16014
16112
|
] });
|
|
16015
16113
|
}, "CategoryRow");
|
|
16016
16114
|
var ThresholdRow = /* @__PURE__ */ __name(({ label, tokens, isCurrent, hint }) => {
|
|
16017
16115
|
const tokenStr = `${formatTokens(tokens)} ${t("tokens")}`;
|
|
16018
|
-
return /* @__PURE__ */ (0,
|
|
16019
|
-
/* @__PURE__ */ (0,
|
|
16020
|
-
/* @__PURE__ */ (0,
|
|
16021
|
-
/* @__PURE__ */ (0,
|
|
16116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16117
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: isCurrent ? theme.status.warning : theme.text.secondary, children: isCurrent ? "\u25B6" : " " }) }),
|
|
16118
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
16119
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16022
16120
|
tokenStr,
|
|
16023
16121
|
hint ? ` ${hint}` : ""
|
|
16024
16122
|
] }) })
|
|
@@ -16039,16 +16137,16 @@ function tierColor(tier) {
|
|
|
16039
16137
|
}
|
|
16040
16138
|
}
|
|
16041
16139
|
__name(tierColor, "tierColor");
|
|
16042
|
-
var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0,
|
|
16043
|
-
/* @__PURE__ */ (0,
|
|
16044
|
-
/* @__PURE__ */ (0,
|
|
16140
|
+
var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16141
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Compaction thresholds") }),
|
|
16142
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16045
16143
|
ThresholdRow,
|
|
16046
16144
|
{
|
|
16047
16145
|
label: t("Effective window"),
|
|
16048
16146
|
tokens: thresholds.effectiveWindow
|
|
16049
16147
|
}
|
|
16050
16148
|
),
|
|
16051
|
-
/* @__PURE__ */ (0,
|
|
16149
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16052
16150
|
ThresholdRow,
|
|
16053
16151
|
{
|
|
16054
16152
|
label: t("Warn threshold"),
|
|
@@ -16056,7 +16154,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16056
16154
|
isCurrent: currentTier === "warn"
|
|
16057
16155
|
}
|
|
16058
16156
|
),
|
|
16059
|
-
/* @__PURE__ */ (0,
|
|
16157
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16060
16158
|
ThresholdRow,
|
|
16061
16159
|
{
|
|
16062
16160
|
label: t("Auto threshold"),
|
|
@@ -16064,7 +16162,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16064
16162
|
isCurrent: currentTier === "auto"
|
|
16065
16163
|
}
|
|
16066
16164
|
),
|
|
16067
|
-
/* @__PURE__ */ (0,
|
|
16165
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16068
16166
|
ThresholdRow,
|
|
16069
16167
|
{
|
|
16070
16168
|
label: t("Hard threshold"),
|
|
@@ -16072,22 +16170,22 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16072
16170
|
isCurrent: currentTier === "hard"
|
|
16073
16171
|
}
|
|
16074
16172
|
),
|
|
16075
|
-
/* @__PURE__ */ (0,
|
|
16076
|
-
/* @__PURE__ */ (0,
|
|
16077
|
-
/* @__PURE__ */ (0,
|
|
16078
|
-
/* @__PURE__ */ (0,
|
|
16173
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16174
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { children: " " }) }),
|
|
16175
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: t("Current tier") }) }),
|
|
16176
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: tierColor(currentTier), children: currentTier }) })
|
|
16079
16177
|
] })
|
|
16080
16178
|
] }), "CompactionThresholds");
|
|
16081
16179
|
var DETAIL_NAME_MAX_LEN = 30;
|
|
16082
16180
|
var DetailRow = /* @__PURE__ */ __name(({ name, tokens }) => {
|
|
16083
16181
|
const tokenStr = tokens > 0 ? `${formatTokens(tokens)} ${t("tokens")}` : `0 ${t("tokens")}`;
|
|
16084
|
-
return /* @__PURE__ */ (0,
|
|
16085
|
-
/* @__PURE__ */ (0,
|
|
16182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
|
|
16183
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16086
16184
|
"\u2514",
|
|
16087
16185
|
" "
|
|
16088
16186
|
] }),
|
|
16089
|
-
/* @__PURE__ */ (0,
|
|
16090
|
-
/* @__PURE__ */ (0,
|
|
16187
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 32, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(name, DETAIL_NAME_MAX_LEN) }) }),
|
|
16188
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: tokenStr }) })
|
|
16091
16189
|
] });
|
|
16092
16190
|
}, "DetailRow");
|
|
16093
16191
|
var ContextUsage = /* @__PURE__ */ __name(({
|
|
@@ -16118,7 +16216,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16118
16216
|
const bTotal = b.tokens + (b.bodyTokens ?? 0);
|
|
16119
16217
|
return bTotal - aTotal;
|
|
16120
16218
|
});
|
|
16121
|
-
return /* @__PURE__ */ (0,
|
|
16219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
16122
16220
|
Box_default,
|
|
16123
16221
|
{
|
|
16124
16222
|
borderStyle: "round",
|
|
@@ -16127,12 +16225,12 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16127
16225
|
paddingY: 1,
|
|
16128
16226
|
paddingX: 2,
|
|
16129
16227
|
children: [
|
|
16130
|
-
/* @__PURE__ */ (0,
|
|
16131
|
-
/* @__PURE__ */ (0,
|
|
16132
|
-
!hasTokenCount ? /* @__PURE__ */ (0,
|
|
16133
|
-
/* @__PURE__ */ (0,
|
|
16134
|
-
/* @__PURE__ */ (0,
|
|
16135
|
-
/* @__PURE__ */ (0,
|
|
16228
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Context Usage") }),
|
|
16229
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16230
|
+
!hasTokenCount ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16231
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, italic: true, children: t("No API response yet. Send a message to see actual usage.") }) }),
|
|
16232
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Estimated pre-conversation overhead") }),
|
|
16233
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16136
16234
|
t("Model"),
|
|
16137
16235
|
": ",
|
|
16138
16236
|
modelName,
|
|
@@ -16143,15 +16241,15 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16143
16241
|
" ",
|
|
16144
16242
|
t("tokens")
|
|
16145
16243
|
] }),
|
|
16146
|
-
/* @__PURE__ */ (0,
|
|
16147
|
-
] }) : /* @__PURE__ */ (0,
|
|
16148
|
-
/* @__PURE__ */ (0,
|
|
16149
|
-
/* @__PURE__ */ (0,
|
|
16244
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 })
|
|
16245
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16246
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, marginBottom: 1, children: [
|
|
16247
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16150
16248
|
t("Model"),
|
|
16151
16249
|
": ",
|
|
16152
16250
|
modelName
|
|
16153
16251
|
] }),
|
|
16154
|
-
/* @__PURE__ */ (0,
|
|
16252
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16155
16253
|
t("Context window"),
|
|
16156
16254
|
": ",
|
|
16157
16255
|
formatTokens(contextWindowSize),
|
|
@@ -16159,10 +16257,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16159
16257
|
t("tokens")
|
|
16160
16258
|
] }) })
|
|
16161
16259
|
] }),
|
|
16162
|
-
isEstimated && /* @__PURE__ */ (0,
|
|
16260
|
+
isEstimated && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, italic: true, children: t(
|
|
16163
16261
|
"Token usage is estimated until provider usage is received."
|
|
16164
16262
|
) }) }),
|
|
16165
|
-
/* @__PURE__ */ (0,
|
|
16263
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16166
16264
|
ProgressBar,
|
|
16167
16265
|
{
|
|
16168
16266
|
usedPercentage: Math.min(percentage, 100),
|
|
@@ -16170,9 +16268,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16170
16268
|
width: CONTENT_WIDTH
|
|
16171
16269
|
}
|
|
16172
16270
|
) }),
|
|
16173
|
-
isOverLimit && /* @__PURE__ */ (0,
|
|
16174
|
-
/* @__PURE__ */ (0,
|
|
16175
|
-
/* @__PURE__ */ (0,
|
|
16271
|
+
isOverLimit && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.error, children: t("Context exceeds limit! Use /compress or /clear to reduce.") }) }),
|
|
16272
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16273
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16176
16274
|
CategoryRow,
|
|
16177
16275
|
{
|
|
16178
16276
|
symbol: FILLED,
|
|
@@ -16183,7 +16281,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16183
16281
|
isOverLimit
|
|
16184
16282
|
}
|
|
16185
16283
|
),
|
|
16186
|
-
/* @__PURE__ */ (0,
|
|
16284
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16187
16285
|
CategoryRow,
|
|
16188
16286
|
{
|
|
16189
16287
|
symbol: EMPTY,
|
|
@@ -16193,7 +16291,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16193
16291
|
symbolColor: theme.text.secondary
|
|
16194
16292
|
}
|
|
16195
16293
|
),
|
|
16196
|
-
/* @__PURE__ */ (0,
|
|
16294
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16197
16295
|
CategoryRow,
|
|
16198
16296
|
{
|
|
16199
16297
|
symbol: BUFFER,
|
|
@@ -16203,10 +16301,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16203
16301
|
symbolColor: theme.status.warning
|
|
16204
16302
|
}
|
|
16205
16303
|
),
|
|
16206
|
-
/* @__PURE__ */ (0,
|
|
16207
|
-
/* @__PURE__ */ (0,
|
|
16304
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16305
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Usage by category") })
|
|
16208
16306
|
] }),
|
|
16209
|
-
/* @__PURE__ */ (0,
|
|
16307
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16210
16308
|
CategoryRow,
|
|
16211
16309
|
{
|
|
16212
16310
|
symbol: FILLED,
|
|
@@ -16216,7 +16314,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16216
16314
|
symbolColor: theme.text.accent
|
|
16217
16315
|
}
|
|
16218
16316
|
),
|
|
16219
|
-
/* @__PURE__ */ (0,
|
|
16317
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16220
16318
|
CategoryRow,
|
|
16221
16319
|
{
|
|
16222
16320
|
symbol: FILLED,
|
|
@@ -16226,7 +16324,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16226
16324
|
symbolColor: theme.text.accent
|
|
16227
16325
|
}
|
|
16228
16326
|
),
|
|
16229
|
-
breakdown.mcpTools > 0 && /* @__PURE__ */ (0,
|
|
16327
|
+
breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16230
16328
|
CategoryRow,
|
|
16231
16329
|
{
|
|
16232
16330
|
symbol: FILLED,
|
|
@@ -16236,7 +16334,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16236
16334
|
symbolColor: theme.text.accent
|
|
16237
16335
|
}
|
|
16238
16336
|
),
|
|
16239
|
-
/* @__PURE__ */ (0,
|
|
16337
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16240
16338
|
CategoryRow,
|
|
16241
16339
|
{
|
|
16242
16340
|
symbol: FILLED,
|
|
@@ -16246,7 +16344,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16246
16344
|
symbolColor: theme.text.accent
|
|
16247
16345
|
}
|
|
16248
16346
|
),
|
|
16249
|
-
/* @__PURE__ */ (0,
|
|
16347
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16250
16348
|
CategoryRow,
|
|
16251
16349
|
{
|
|
16252
16350
|
symbol: FILLED,
|
|
@@ -16256,7 +16354,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16256
16354
|
symbolColor: theme.text.accent
|
|
16257
16355
|
}
|
|
16258
16356
|
),
|
|
16259
|
-
hasTokenCount && /* @__PURE__ */ (0,
|
|
16357
|
+
hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16260
16358
|
CategoryRow,
|
|
16261
16359
|
{
|
|
16262
16360
|
symbol: FILLED,
|
|
@@ -16266,17 +16364,17 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16266
16364
|
symbolColor: theme.text.accent
|
|
16267
16365
|
}
|
|
16268
16366
|
),
|
|
16269
|
-
breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0,
|
|
16367
|
+
breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16270
16368
|
CompactionThresholds,
|
|
16271
16369
|
{
|
|
16272
16370
|
thresholds: breakdown.thresholds,
|
|
16273
16371
|
currentTier: breakdown.currentTier
|
|
16274
16372
|
}
|
|
16275
16373
|
),
|
|
16276
|
-
showDetails ? /* @__PURE__ */ (0,
|
|
16277
|
-
sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0,
|
|
16278
|
-
/* @__PURE__ */ (0,
|
|
16279
|
-
sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0,
|
|
16374
|
+
showDetails ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16375
|
+
sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16376
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Built-in tools") }),
|
|
16377
|
+
sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16280
16378
|
DetailRow,
|
|
16281
16379
|
{
|
|
16282
16380
|
name: tool.name,
|
|
@@ -16285,9 +16383,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16285
16383
|
tool.name
|
|
16286
16384
|
))
|
|
16287
16385
|
] }),
|
|
16288
|
-
sortedMcpTools.length > 0 && /* @__PURE__ */ (0,
|
|
16289
|
-
/* @__PURE__ */ (0,
|
|
16290
|
-
sortedMcpTools.map((tool) => /* @__PURE__ */ (0,
|
|
16386
|
+
sortedMcpTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16387
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("MCP tools") }),
|
|
16388
|
+
sortedMcpTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16291
16389
|
DetailRow,
|
|
16292
16390
|
{
|
|
16293
16391
|
name: tool.name,
|
|
@@ -16296,9 +16394,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16296
16394
|
tool.name
|
|
16297
16395
|
))
|
|
16298
16396
|
] }),
|
|
16299
|
-
sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0,
|
|
16300
|
-
/* @__PURE__ */ (0,
|
|
16301
|
-
sortedMemoryFiles.map((file) => /* @__PURE__ */ (0,
|
|
16397
|
+
sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16398
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Memory files") }),
|
|
16399
|
+
sortedMemoryFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16302
16400
|
DetailRow,
|
|
16303
16401
|
{
|
|
16304
16402
|
name: file.path,
|
|
@@ -16307,34 +16405,34 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16307
16405
|
file.path
|
|
16308
16406
|
))
|
|
16309
16407
|
] }),
|
|
16310
|
-
sortedSkills.length > 0 && /* @__PURE__ */ (0,
|
|
16311
|
-
/* @__PURE__ */ (0,
|
|
16312
|
-
sortedSkills.map((skill) => /* @__PURE__ */ (0,
|
|
16313
|
-
/* @__PURE__ */ (0,
|
|
16314
|
-
/* @__PURE__ */ (0,
|
|
16408
|
+
sortedSkills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16409
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skills") }),
|
|
16410
|
+
sortedSkills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16411
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
|
|
16412
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16315
16413
|
"\u2514",
|
|
16316
16414
|
" "
|
|
16317
16415
|
] }),
|
|
16318
|
-
/* @__PURE__ */ (0,
|
|
16319
|
-
/* @__PURE__ */ (0,
|
|
16320
|
-
skill.loaded && /* @__PURE__ */ (0,
|
|
16416
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: 32, children: [
|
|
16417
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(skill.name, DETAIL_NAME_MAX_LEN) }),
|
|
16418
|
+
skill.loaded && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
|
|
16321
16419
|
" ",
|
|
16322
16420
|
t("active")
|
|
16323
16421
|
] })
|
|
16324
16422
|
] }),
|
|
16325
|
-
/* @__PURE__ */ (0,
|
|
16423
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16326
16424
|
formatTokens(skill.tokens),
|
|
16327
16425
|
" ",
|
|
16328
16426
|
t("tokens")
|
|
16329
16427
|
] }) })
|
|
16330
16428
|
] }),
|
|
16331
|
-
skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0,
|
|
16332
|
-
/* @__PURE__ */ (0,
|
|
16429
|
+
skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 4, children: [
|
|
16430
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16333
16431
|
" \u2514",
|
|
16334
16432
|
" "
|
|
16335
16433
|
] }),
|
|
16336
|
-
/* @__PURE__ */ (0,
|
|
16337
|
-
/* @__PURE__ */ (0,
|
|
16434
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 30, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("body loaded") }) }),
|
|
16435
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { flexGrow: 1, justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
|
|
16338
16436
|
"+",
|
|
16339
16437
|
formatTokens(skill.bodyTokens),
|
|
16340
16438
|
" ",
|
|
@@ -16343,7 +16441,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16343
16441
|
] })
|
|
16344
16442
|
] }, skill.name))
|
|
16345
16443
|
] })
|
|
16346
|
-
] }) : /* @__PURE__ */ (0,
|
|
16444
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, italic: true, children: t("Run /context detail for per-item breakdown.") }) })
|
|
16347
16445
|
]
|
|
16348
16446
|
}
|
|
16349
16447
|
);
|
|
@@ -16351,7 +16449,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16351
16449
|
|
|
16352
16450
|
// packages/cli/src/ui/components/views/DoctorReport.tsx
|
|
16353
16451
|
init_esbuild_shims();
|
|
16354
|
-
var
|
|
16452
|
+
var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
|
|
16355
16453
|
var STATUS_ICONS2 = {
|
|
16356
16454
|
pass: "\u2713",
|
|
16357
16455
|
// checkmark
|
|
@@ -16394,7 +16492,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16394
16492
|
const groups = groupByCategory(checks);
|
|
16395
16493
|
const categoryEntries = Array.from(groups.entries());
|
|
16396
16494
|
const nameColWidth = Math.max(20, ...checks.map((c) => c.name.length + 2));
|
|
16397
|
-
return /* @__PURE__ */ (0,
|
|
16495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
16398
16496
|
Box_default,
|
|
16399
16497
|
{
|
|
16400
16498
|
borderStyle: "round",
|
|
@@ -16404,26 +16502,26 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16404
16502
|
paddingX: 2,
|
|
16405
16503
|
width,
|
|
16406
16504
|
children: [
|
|
16407
|
-
/* @__PURE__ */ (0,
|
|
16408
|
-
/* @__PURE__ */ (0,
|
|
16409
|
-
categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0,
|
|
16505
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Doctor Report") }),
|
|
16506
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
|
|
16507
|
+
categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
16410
16508
|
Box_default,
|
|
16411
16509
|
{
|
|
16412
16510
|
flexDirection: "column",
|
|
16413
16511
|
marginTop: groupIdx > 0 ? 1 : 0,
|
|
16414
16512
|
children: [
|
|
16415
|
-
/* @__PURE__ */ (0,
|
|
16416
|
-
items.map((check) => /* @__PURE__ */ (0,
|
|
16417
|
-
/* @__PURE__ */ (0,
|
|
16418
|
-
/* @__PURE__ */ (0,
|
|
16513
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.link, children: category }),
|
|
16514
|
+
items.map((check) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16515
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16516
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: getStatusColor2(check.status), children: [
|
|
16419
16517
|
" ",
|
|
16420
16518
|
STATUS_ICONS2[check.status],
|
|
16421
16519
|
" "
|
|
16422
16520
|
] }),
|
|
16423
|
-
/* @__PURE__ */ (0,
|
|
16424
|
-
/* @__PURE__ */ (0,
|
|
16521
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { width: nameColWidth, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { color: theme.text.primary, children: check.name }) }),
|
|
16522
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: check.message })
|
|
16425
16523
|
] }),
|
|
16426
|
-
check.detail && /* @__PURE__ */ (0,
|
|
16524
|
+
check.detail && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { dimColor: true, children: [
|
|
16427
16525
|
"-> ",
|
|
16428
16526
|
check.detail
|
|
16429
16527
|
] }) })
|
|
@@ -16432,21 +16530,21 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16432
16530
|
},
|
|
16433
16531
|
category
|
|
16434
16532
|
)),
|
|
16435
|
-
/* @__PURE__ */ (0,
|
|
16436
|
-
/* @__PURE__ */ (0,
|
|
16437
|
-
/* @__PURE__ */ (0,
|
|
16533
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginTop: 1, children: [
|
|
16534
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: "-- " }),
|
|
16535
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
|
|
16438
16536
|
summary.pass,
|
|
16439
16537
|
" ",
|
|
16440
16538
|
t("passed")
|
|
16441
16539
|
] }),
|
|
16442
|
-
/* @__PURE__ */ (0,
|
|
16443
|
-
/* @__PURE__ */ (0,
|
|
16540
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
|
|
16541
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.warning, children: [
|
|
16444
16542
|
summary.warn,
|
|
16445
16543
|
" ",
|
|
16446
16544
|
t("warnings")
|
|
16447
16545
|
] }),
|
|
16448
|
-
/* @__PURE__ */ (0,
|
|
16449
|
-
/* @__PURE__ */ (0,
|
|
16546
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
|
|
16547
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
|
|
16450
16548
|
summary.fail,
|
|
16451
16549
|
" ",
|
|
16452
16550
|
t("failures")
|
|
@@ -16459,7 +16557,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16459
16557
|
|
|
16460
16558
|
// packages/cli/src/ui/components/arena/ArenaCards.tsx
|
|
16461
16559
|
init_esbuild_shims();
|
|
16462
|
-
var
|
|
16560
|
+
var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
|
|
16463
16561
|
var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
16464
16562
|
agent,
|
|
16465
16563
|
width
|
|
@@ -16469,8 +16567,8 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16469
16567
|
const tokens = agent.totalTokens.toLocaleString();
|
|
16470
16568
|
const inTokens = agent.inputTokens.toLocaleString();
|
|
16471
16569
|
const outTokens = agent.outputTokens.toLocaleString();
|
|
16472
|
-
return /* @__PURE__ */ (0,
|
|
16473
|
-
/* @__PURE__ */ (0,
|
|
16570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", width, children: [
|
|
16571
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color, children: [
|
|
16474
16572
|
icon,
|
|
16475
16573
|
" ",
|
|
16476
16574
|
agent.label,
|
|
@@ -16479,7 +16577,7 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16479
16577
|
" \xB7 ",
|
|
16480
16578
|
duration
|
|
16481
16579
|
] }) }),
|
|
16482
|
-
/* @__PURE__ */ (0,
|
|
16580
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16483
16581
|
"Tokens: ",
|
|
16484
16582
|
tokens,
|
|
16485
16583
|
" (in ",
|
|
@@ -16488,25 +16586,25 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16488
16586
|
outTokens,
|
|
16489
16587
|
")"
|
|
16490
16588
|
] }) }),
|
|
16491
|
-
/* @__PURE__ */ (0,
|
|
16589
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16492
16590
|
"Tool Calls: ",
|
|
16493
16591
|
agent.toolCalls,
|
|
16494
|
-
agent.failedToolCalls > 0 && /* @__PURE__ */ (0,
|
|
16592
|
+
agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
16495
16593
|
" ",
|
|
16496
16594
|
"(",
|
|
16497
|
-
/* @__PURE__ */ (0,
|
|
16595
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
|
|
16498
16596
|
"\u2713 ",
|
|
16499
16597
|
agent.successfulToolCalls
|
|
16500
16598
|
] }),
|
|
16501
|
-
/* @__PURE__ */ (0,
|
|
16502
|
-
/* @__PURE__ */ (0,
|
|
16599
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
16600
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
|
|
16503
16601
|
"\u2715 ",
|
|
16504
16602
|
agent.failedToolCalls
|
|
16505
16603
|
] }),
|
|
16506
16604
|
")"
|
|
16507
16605
|
] })
|
|
16508
16606
|
] }) }),
|
|
16509
|
-
agent.error && /* @__PURE__ */ (0,
|
|
16607
|
+
agent.error && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.status.error, children: agent.error }) })
|
|
16510
16608
|
] });
|
|
16511
16609
|
}, "ArenaAgentCard");
|
|
16512
16610
|
function getDiffStats(diff, diffSummary) {
|
|
@@ -16573,7 +16671,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16573
16671
|
width
|
|
16574
16672
|
}) => {
|
|
16575
16673
|
const titleLabel = sessionStatus === "idle" || sessionStatus === "completed" ? "Arena Comparison Summary" : sessionStatus === "cancelled" ? "Arena Cancelled" : "Arena Failed";
|
|
16576
|
-
return /* @__PURE__ */ (0,
|
|
16674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
16577
16675
|
Box_default,
|
|
16578
16676
|
{
|
|
16579
16677
|
borderStyle: "round",
|
|
@@ -16583,91 +16681,91 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16583
16681
|
paddingY: 1,
|
|
16584
16682
|
width,
|
|
16585
16683
|
children: [
|
|
16586
|
-
/* @__PURE__ */ (0,
|
|
16587
|
-
/* @__PURE__ */ (0,
|
|
16588
|
-
(sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0,
|
|
16589
|
-
/* @__PURE__ */ (0,
|
|
16590
|
-
/* @__PURE__ */ (0,
|
|
16684
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: titleLabel }) }),
|
|
16685
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16686
|
+
(sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
16687
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16688
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Status Summary:" }),
|
|
16591
16689
|
agents.map((agent, index) => {
|
|
16592
16690
|
const { text: statusText, color } = getArenaStatusLabel(
|
|
16593
16691
|
agent.status
|
|
16594
16692
|
);
|
|
16595
|
-
return /* @__PURE__ */ (0,
|
|
16596
|
-
/* @__PURE__ */ (0,
|
|
16693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16694
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16597
16695
|
index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
|
|
16598
16696
|
" ",
|
|
16599
16697
|
agent.label,
|
|
16600
16698
|
":",
|
|
16601
16699
|
" "
|
|
16602
16700
|
] }),
|
|
16603
|
-
/* @__PURE__ */ (0,
|
|
16701
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color, children: statusText })
|
|
16604
16702
|
] }, agent.label);
|
|
16605
16703
|
})
|
|
16606
16704
|
] }),
|
|
16607
|
-
/* @__PURE__ */ (0,
|
|
16608
|
-
/* @__PURE__ */ (0,
|
|
16609
|
-
/* @__PURE__ */ (0,
|
|
16610
|
-
getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0,
|
|
16611
|
-
/* @__PURE__ */ (0,
|
|
16705
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16706
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16707
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Files Modified:" }),
|
|
16708
|
+
getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16709
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16612
16710
|
getTreeBranch(index, groups.length),
|
|
16613
16711
|
" ",
|
|
16614
16712
|
group.label,
|
|
16615
16713
|
":",
|
|
16616
16714
|
" "
|
|
16617
16715
|
] }),
|
|
16618
|
-
/* @__PURE__ */ (0,
|
|
16716
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
|
|
16619
16717
|
] }, group.label))
|
|
16620
16718
|
] }),
|
|
16621
|
-
/* @__PURE__ */ (0,
|
|
16622
|
-
/* @__PURE__ */ (0,
|
|
16623
|
-
/* @__PURE__ */ (0,
|
|
16719
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16720
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16721
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Approach Summary:" }),
|
|
16624
16722
|
agents.map((agent, index) => {
|
|
16625
16723
|
const diffStats = getDiffStats(agent.diff, agent.diffSummary);
|
|
16626
16724
|
const files = getAgentFiles(agent).length;
|
|
16627
16725
|
const branch = index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500";
|
|
16628
16726
|
const summary = agent.approachSummary ?? "No approach summary available.";
|
|
16629
|
-
return /* @__PURE__ */ (0,
|
|
16630
|
-
/* @__PURE__ */ (0,
|
|
16727
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { children: [
|
|
16728
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16631
16729
|
branch,
|
|
16632
16730
|
" ",
|
|
16633
16731
|
agent.label,
|
|
16634
16732
|
":",
|
|
16635
16733
|
" "
|
|
16636
16734
|
] }),
|
|
16637
|
-
/* @__PURE__ */ (0,
|
|
16735
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
|
|
16638
16736
|
summary,
|
|
16639
16737
|
" "
|
|
16640
16738
|
] }),
|
|
16641
|
-
/* @__PURE__ */ (0,
|
|
16642
|
-
/* @__PURE__ */ (0,
|
|
16643
|
-
/* @__PURE__ */ (0,
|
|
16644
|
-
/* @__PURE__ */ (0,
|
|
16739
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: "(" }),
|
|
16740
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: files }),
|
|
16741
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: files === 1 ? " file, " : " files, " }),
|
|
16742
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
|
|
16645
16743
|
"+",
|
|
16646
16744
|
diffStats.additions
|
|
16647
16745
|
] }),
|
|
16648
|
-
/* @__PURE__ */ (0,
|
|
16649
|
-
/* @__PURE__ */ (0,
|
|
16746
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
16747
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
|
|
16650
16748
|
"-",
|
|
16651
16749
|
diffStats.deletions
|
|
16652
16750
|
] }),
|
|
16653
|
-
/* @__PURE__ */ (0,
|
|
16654
|
-
/* @__PURE__ */ (0,
|
|
16655
|
-
/* @__PURE__ */ (0,
|
|
16751
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " lines, " }),
|
|
16752
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: agent.toolCalls }),
|
|
16753
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: agent.toolCalls === 1 ? " tool call)" : " tool calls)" })
|
|
16656
16754
|
] }) }, agent.label);
|
|
16657
16755
|
})
|
|
16658
16756
|
] }),
|
|
16659
|
-
/* @__PURE__ */ (0,
|
|
16660
|
-
/* @__PURE__ */ (0,
|
|
16661
|
-
/* @__PURE__ */ (0,
|
|
16662
|
-
agents.map((agent, index) => /* @__PURE__ */ (0,
|
|
16663
|
-
/* @__PURE__ */ (0,
|
|
16757
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16758
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16759
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Token Efficiency:" }),
|
|
16760
|
+
agents.map((agent, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16761
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16664
16762
|
index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
|
|
16665
16763
|
" ",
|
|
16666
16764
|
agent.label,
|
|
16667
16765
|
":",
|
|
16668
16766
|
" "
|
|
16669
16767
|
] }),
|
|
16670
|
-
/* @__PURE__ */ (0,
|
|
16768
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
|
|
16671
16769
|
agent.outputTokens.toLocaleString(),
|
|
16672
16770
|
" tokens \xB7 runtime",
|
|
16673
16771
|
" ",
|
|
@@ -16676,15 +16774,15 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16676
16774
|
] }, agent.label))
|
|
16677
16775
|
] })
|
|
16678
16776
|
] }),
|
|
16679
|
-
/* @__PURE__ */ (0,
|
|
16680
|
-
sessionStatus === "idle" && /* @__PURE__ */ (0,
|
|
16777
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16778
|
+
sessionStatus === "idle" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16681
16779
|
"Run ",
|
|
16682
|
-
/* @__PURE__ */ (0,
|
|
16780
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
|
|
16683
16781
|
" to view detailed diff or pick a winner."
|
|
16684
16782
|
] }) }),
|
|
16685
|
-
sessionStatus === "completed" && /* @__PURE__ */ (0,
|
|
16783
|
+
sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16686
16784
|
"Run ",
|
|
16687
|
-
/* @__PURE__ */ (0,
|
|
16785
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
|
|
16688
16786
|
" to pick a winner."
|
|
16689
16787
|
] }) })
|
|
16690
16788
|
]
|
|
@@ -16694,7 +16792,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16694
16792
|
|
|
16695
16793
|
// packages/cli/src/ui/components/messages/InsightProgressMessage.tsx
|
|
16696
16794
|
init_esbuild_shims();
|
|
16697
|
-
var
|
|
16795
|
+
var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
|
|
16698
16796
|
var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
16699
16797
|
progress
|
|
16700
16798
|
}) => {
|
|
@@ -16704,28 +16802,28 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
|
16704
16802
|
const remainingWidth = width - completedWidth;
|
|
16705
16803
|
const bar = "\u2588".repeat(Math.max(0, completedWidth)) + "\u2591".repeat(Math.max(0, remainingWidth));
|
|
16706
16804
|
if (error) {
|
|
16707
|
-
return /* @__PURE__ */ (0,
|
|
16708
|
-
/* @__PURE__ */ (0,
|
|
16805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16806
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.error, children: [
|
|
16709
16807
|
"\u2715 ",
|
|
16710
16808
|
stage
|
|
16711
16809
|
] }),
|
|
16712
|
-
/* @__PURE__ */ (0,
|
|
16810
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.secondary, children: error })
|
|
16713
16811
|
] });
|
|
16714
16812
|
}
|
|
16715
16813
|
if (isComplete) {
|
|
16716
|
-
return /* @__PURE__ */ (0,
|
|
16814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Box_default, { flexDirection: "row", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.success, children: [
|
|
16717
16815
|
"\u2713 ",
|
|
16718
16816
|
stage
|
|
16719
16817
|
] }) });
|
|
16720
16818
|
}
|
|
16721
|
-
return /* @__PURE__ */ (0,
|
|
16722
|
-
/* @__PURE__ */ (0,
|
|
16723
|
-
/* @__PURE__ */ (0,
|
|
16724
|
-
/* @__PURE__ */ (0,
|
|
16819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16820
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(build_default, { type: "dots" }) }),
|
|
16821
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { children: " " }),
|
|
16822
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16725
16823
|
bar,
|
|
16726
16824
|
" "
|
|
16727
16825
|
] }),
|
|
16728
|
-
/* @__PURE__ */ (0,
|
|
16826
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.accent, children: [
|
|
16729
16827
|
stage,
|
|
16730
16828
|
progress.detail ? ` (${progress.detail})` : ""
|
|
16731
16829
|
] })
|
|
@@ -16735,7 +16833,7 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
|
16735
16833
|
// packages/cli/src/ui/components/messages/BtwMessage.tsx
|
|
16736
16834
|
init_esbuild_shims();
|
|
16737
16835
|
var import_react41 = __toESM(require_react(), 1);
|
|
16738
|
-
var
|
|
16836
|
+
var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
|
|
16739
16837
|
var BTW_SELF_CHROME = 4;
|
|
16740
16838
|
function normalizeCodeFences(text) {
|
|
16741
16839
|
return text.replace(/([^\n])(```|~~~)/g, "$1\n$2");
|
|
@@ -16748,7 +16846,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16748
16846
|
const { columns: terminalWidth } = useTerminalSize();
|
|
16749
16847
|
const baseWidth = containerWidth ?? terminalWidth;
|
|
16750
16848
|
const contentWidth = Math.max(2, baseWidth - BTW_SELF_CHROME);
|
|
16751
|
-
return /* @__PURE__ */ (0,
|
|
16849
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
16752
16850
|
Box_default,
|
|
16753
16851
|
{
|
|
16754
16852
|
flexDirection: "column",
|
|
@@ -16757,18 +16855,18 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16757
16855
|
paddingX: 1,
|
|
16758
16856
|
width: "100%",
|
|
16759
16857
|
children: [
|
|
16760
|
-
/* @__PURE__ */ (0,
|
|
16761
|
-
/* @__PURE__ */ (0,
|
|
16762
|
-
/* @__PURE__ */ (0,
|
|
16858
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16859
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, bold: true, children: "/btw " }),
|
|
16860
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { wrap: "wrap", color: Colors.AccentYellow, children: btw.question })
|
|
16763
16861
|
] }),
|
|
16764
|
-
btw.isPending ? /* @__PURE__ */ (0,
|
|
16765
|
-
/* @__PURE__ */ (0,
|
|
16766
|
-
/* @__PURE__ */ (0,
|
|
16767
|
-
/* @__PURE__ */ (0,
|
|
16862
|
+
btw.isPending ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16863
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { children: [
|
|
16864
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: "+ " }),
|
|
16865
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: t("Answering...") })
|
|
16768
16866
|
] }),
|
|
16769
|
-
/* @__PURE__ */ (0,
|
|
16770
|
-
] }) : /* @__PURE__ */ (0,
|
|
16771
|
-
/* @__PURE__ */ (0,
|
|
16867
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { dimColor: true, children: t("Press Escape, Ctrl+C, or Ctrl+D to cancel") }) })
|
|
16868
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16869
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
16772
16870
|
MarkdownDisplay,
|
|
16773
16871
|
{
|
|
16774
16872
|
text: normalizeCodeFences(btw.answer),
|
|
@@ -16776,7 +16874,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16776
16874
|
contentWidth
|
|
16777
16875
|
}
|
|
16778
16876
|
),
|
|
16779
|
-
/* @__PURE__ */ (0,
|
|
16877
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { dimColor: true, children: t("Press Space, Enter, or Escape to dismiss") }) })
|
|
16780
16878
|
] })
|
|
16781
16879
|
]
|
|
16782
16880
|
}
|
|
@@ -16787,7 +16885,7 @@ var BtwMessage = import_react41.default.memo(BtwMessageInternal);
|
|
|
16787
16885
|
// packages/cli/src/ui/components/messages/AdvisorMessage.tsx
|
|
16788
16886
|
init_esbuild_shims();
|
|
16789
16887
|
var import_react42 = __toESM(require_react(), 1);
|
|
16790
|
-
var
|
|
16888
|
+
var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
|
|
16791
16889
|
var ADVISOR_SELF_CHROME = 4;
|
|
16792
16890
|
var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
16793
16891
|
text,
|
|
@@ -16797,7 +16895,7 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16797
16895
|
const { columns: terminalWidth } = useTerminalSize();
|
|
16798
16896
|
const baseWidth = containerWidth ?? terminalWidth;
|
|
16799
16897
|
const contentWidth = Math.max(2, baseWidth - ADVISOR_SELF_CHROME);
|
|
16800
|
-
return /* @__PURE__ */ (0,
|
|
16898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
16801
16899
|
Box_default,
|
|
16802
16900
|
{
|
|
16803
16901
|
flexDirection: "column",
|
|
@@ -16806,11 +16904,11 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16806
16904
|
paddingX: 1,
|
|
16807
16905
|
width: "100%",
|
|
16808
16906
|
children: [
|
|
16809
|
-
/* @__PURE__ */ (0,
|
|
16810
|
-
/* @__PURE__ */ (0,
|
|
16811
|
-
/* @__PURE__ */ (0,
|
|
16907
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16908
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, bold: true, children: "/advisor" }),
|
|
16909
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, children: ` \xB7 ${model}` })
|
|
16812
16910
|
] }),
|
|
16813
|
-
/* @__PURE__ */ (0,
|
|
16911
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
16814
16912
|
MarkdownDisplay,
|
|
16815
16913
|
{
|
|
16816
16914
|
text,
|
|
@@ -16826,16 +16924,16 @@ var AdvisorMessage = import_react42.default.memo(AdvisorMessageInternal);
|
|
|
16826
16924
|
|
|
16827
16925
|
// packages/cli/src/ui/components/messages/MemorySavedMessage.tsx
|
|
16828
16926
|
init_esbuild_shims();
|
|
16829
|
-
var
|
|
16927
|
+
var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
|
|
16830
16928
|
var MemorySavedMessage = /* @__PURE__ */ __name(({
|
|
16831
16929
|
item
|
|
16832
16930
|
}) => {
|
|
16833
16931
|
const verb = item.verb ?? "Saved";
|
|
16834
16932
|
const n = item.writtenCount;
|
|
16835
16933
|
const label = n === 1 ? "memory" : "memories";
|
|
16836
|
-
return /* @__PURE__ */ (0,
|
|
16837
|
-
/* @__PURE__ */ (0,
|
|
16838
|
-
/* @__PURE__ */ (0,
|
|
16934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16935
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
|
|
16936
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { dimColor: true, children: [
|
|
16839
16937
|
verb,
|
|
16840
16938
|
" ",
|
|
16841
16939
|
n,
|
|
@@ -16847,28 +16945,28 @@ var MemorySavedMessage = /* @__PURE__ */ __name(({
|
|
|
16847
16945
|
|
|
16848
16946
|
// packages/cli/src/ui/components/messages/DiffStatsDisplay.tsx
|
|
16849
16947
|
init_esbuild_shims();
|
|
16850
|
-
var
|
|
16948
|
+
var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
|
|
16851
16949
|
var DiffStatsDisplay = /* @__PURE__ */ __name(({
|
|
16852
16950
|
model
|
|
16853
16951
|
}) => {
|
|
16854
16952
|
const { filesCount, linesAdded, linesRemoved, rows, hiddenCount } = model;
|
|
16855
16953
|
const { addWidth, remWidth, statColumnWidth } = computeDiffColumnWidths(rows);
|
|
16856
16954
|
const headerLabel = filesCount === 1 ? t("{{count}} file changed", { count: String(filesCount) }) : t("{{count}} files changed", { count: String(filesCount) });
|
|
16857
|
-
return /* @__PURE__ */ (0,
|
|
16858
|
-
/* @__PURE__ */ (0,
|
|
16859
|
-
/* @__PURE__ */ (0,
|
|
16860
|
-
/* @__PURE__ */ (0,
|
|
16861
|
-
/* @__PURE__ */ (0,
|
|
16955
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16956
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
16957
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: headerLabel }),
|
|
16958
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ", " }),
|
|
16959
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
|
|
16862
16960
|
"+",
|
|
16863
16961
|
linesAdded
|
|
16864
16962
|
] }),
|
|
16865
|
-
/* @__PURE__ */ (0,
|
|
16866
|
-
/* @__PURE__ */ (0,
|
|
16963
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: " / " }),
|
|
16964
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
|
|
16867
16965
|
"-",
|
|
16868
16966
|
linesRemoved
|
|
16869
16967
|
] })
|
|
16870
16968
|
] }),
|
|
16871
|
-
rows.map((row) => /* @__PURE__ */ (0,
|
|
16969
|
+
rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
16872
16970
|
DiffRow,
|
|
16873
16971
|
{
|
|
16874
16972
|
row,
|
|
@@ -16878,7 +16976,7 @@ var DiffStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
16878
16976
|
},
|
|
16879
16977
|
row.filename
|
|
16880
16978
|
)),
|
|
16881
|
-
hiddenCount > 0 && rows.length > 0 && /* @__PURE__ */ (0,
|
|
16979
|
+
hiddenCount > 0 && rows.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16882
16980
|
" ",
|
|
16883
16981
|
t("\u2026and {{hidden}} more (showing first {{shown}})", {
|
|
16884
16982
|
hidden: String(hiddenCount),
|
|
@@ -16898,16 +16996,16 @@ var DiffRow = /* @__PURE__ */ __name(({
|
|
|
16898
16996
|
if (row.isBinary) {
|
|
16899
16997
|
const marker = padRight("~", statColumnWidth);
|
|
16900
16998
|
const suffix2 = row.isUntracked ? t("(binary, new)") : row.isDeleted ? t("(binary, deleted)") : t("(binary)");
|
|
16901
|
-
return /* @__PURE__ */ (0,
|
|
16902
|
-
/* @__PURE__ */ (0,
|
|
16903
|
-
/* @__PURE__ */ (0,
|
|
16904
|
-
/* @__PURE__ */ (0,
|
|
16905
|
-
safeOldPath ? /* @__PURE__ */ (0,
|
|
16999
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
17000
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17001
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: marker }),
|
|
17002
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17003
|
+
safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16906
17004
|
safeOldPath,
|
|
16907
17005
|
" \u2192 "
|
|
16908
17006
|
] }) : null,
|
|
16909
|
-
/* @__PURE__ */ (0,
|
|
16910
|
-
/* @__PURE__ */ (0,
|
|
17007
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
|
|
17008
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16911
17009
|
" ",
|
|
16912
17010
|
suffix2
|
|
16913
17011
|
] })
|
|
@@ -16921,24 +17019,24 @@ var DiffRow = /* @__PURE__ */ __name(({
|
|
|
16921
17019
|
} else if (row.isDeleted) {
|
|
16922
17020
|
suffix = t("(deleted)");
|
|
16923
17021
|
}
|
|
16924
|
-
return /* @__PURE__ */ (0,
|
|
16925
|
-
/* @__PURE__ */ (0,
|
|
16926
|
-
/* @__PURE__ */ (0,
|
|
17022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
17023
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17024
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
|
|
16927
17025
|
"+",
|
|
16928
17026
|
added
|
|
16929
17027
|
] }),
|
|
16930
|
-
/* @__PURE__ */ (0,
|
|
16931
|
-
/* @__PURE__ */ (0,
|
|
17028
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17029
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
|
|
16932
17030
|
"-",
|
|
16933
17031
|
removed
|
|
16934
17032
|
] }),
|
|
16935
|
-
/* @__PURE__ */ (0,
|
|
16936
|
-
safeOldPath ? /* @__PURE__ */ (0,
|
|
17033
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17034
|
+
safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16937
17035
|
safeOldPath,
|
|
16938
17036
|
" \u2192 "
|
|
16939
17037
|
] }) : null,
|
|
16940
|
-
/* @__PURE__ */ (0,
|
|
16941
|
-
suffix && /* @__PURE__ */ (0,
|
|
17038
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
|
|
17039
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16942
17040
|
" ",
|
|
16943
17041
|
suffix
|
|
16944
17042
|
] })
|
|
@@ -16952,7 +17050,7 @@ __name(padRight, "padRight");
|
|
|
16952
17050
|
// packages/cli/src/ui/components/messages/GoalStatusMessage.tsx
|
|
16953
17051
|
init_esbuild_shims();
|
|
16954
17052
|
var import_react43 = __toESM(require_react(), 1);
|
|
16955
|
-
var
|
|
17053
|
+
var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
|
|
16956
17054
|
var pluralTurns = /* @__PURE__ */ __name((n) => n === 1 ? "turn" : "turns", "pluralTurns");
|
|
16957
17055
|
function assertNeverGoalStatusKind(kind) {
|
|
16958
17056
|
throw new Error(`Unexpected goal status kind: ${kind}`);
|
|
@@ -16965,9 +17063,9 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
16965
17063
|
const goal = snapshot.goal;
|
|
16966
17064
|
if (!goal) {
|
|
16967
17065
|
if (cause !== "clear") return null;
|
|
16968
|
-
return /* @__PURE__ */ (0,
|
|
16969
|
-
/* @__PURE__ */ (0,
|
|
16970
|
-
/* @__PURE__ */ (0,
|
|
17066
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17067
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
|
|
17068
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal cleared" })
|
|
16971
17069
|
] });
|
|
16972
17070
|
}
|
|
16973
17071
|
const lifecycle = (() => {
|
|
@@ -17025,21 +17123,21 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
17025
17123
|
}
|
|
17026
17124
|
const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
|
|
17027
17125
|
const reason = goal.status !== "active" || snapshot.activity === "verifying" ? goal.lastReason?.trim() : void 0;
|
|
17028
|
-
return /* @__PURE__ */ (0,
|
|
17029
|
-
/* @__PURE__ */ (0,
|
|
17030
|
-
/* @__PURE__ */ (0,
|
|
17031
|
-
/* @__PURE__ */ (0,
|
|
17126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17127
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: lifecycle.color, children: lifecycle.prefix }) }),
|
|
17128
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17129
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: lifecycle.color, children: [
|
|
17032
17130
|
lifecycle.title,
|
|
17033
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
17131
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17034
17132
|
" \xB7 ",
|
|
17035
17133
|
subtitle
|
|
17036
17134
|
] }) : null
|
|
17037
17135
|
] }),
|
|
17038
|
-
/* @__PURE__ */ (0,
|
|
17039
|
-
/* @__PURE__ */ (0,
|
|
17040
|
-
/* @__PURE__ */ (0,
|
|
17136
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17137
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
|
|
17138
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: goal.objective }) })
|
|
17041
17139
|
] }),
|
|
17042
|
-
reason ? /* @__PURE__ */ (0,
|
|
17140
|
+
reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17043
17141
|
"Reason: ",
|
|
17044
17142
|
reason
|
|
17045
17143
|
] }) : null
|
|
@@ -17047,24 +17145,24 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
17047
17145
|
] });
|
|
17048
17146
|
}, "GoalStateCard");
|
|
17049
17147
|
var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
|
|
17050
|
-
if (props.snapshot) return /* @__PURE__ */ (0,
|
|
17148
|
+
if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(GoalStateCard, { ...props });
|
|
17051
17149
|
const { kind, condition, iterations, durationMs, lastReason } = props;
|
|
17052
17150
|
if (kind === "checking") {
|
|
17053
17151
|
const reason = lastReason?.trim();
|
|
17054
|
-
return /* @__PURE__ */ (0,
|
|
17055
|
-
/* @__PURE__ */ (0,
|
|
17056
|
-
/* @__PURE__ */ (0,
|
|
17057
|
-
/* @__PURE__ */ (0,
|
|
17152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17153
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: ICON.CIRCLE_EMPTY }) }),
|
|
17154
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17155
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17058
17156
|
"Goal check",
|
|
17059
17157
|
typeof iterations === "number" && iterations > 0 ? ` \xB7 turn ${iterations}` : "",
|
|
17060
17158
|
" ",
|
|
17061
17159
|
"\xB7 not yet met"
|
|
17062
17160
|
] }),
|
|
17063
|
-
/* @__PURE__ */ (0,
|
|
17161
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17064
17162
|
"Goal: ",
|
|
17065
17163
|
condition
|
|
17066
17164
|
] }),
|
|
17067
|
-
reason ? /* @__PURE__ */ (0,
|
|
17165
|
+
reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17068
17166
|
"Judge: ",
|
|
17069
17167
|
reason
|
|
17070
17168
|
] }) : null
|
|
@@ -17121,21 +17219,21 @@ var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
|
|
|
17121
17219
|
stats.push(formatDuration(durationMs, { hideTrailingZeros: true }));
|
|
17122
17220
|
}
|
|
17123
17221
|
const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
|
|
17124
|
-
return /* @__PURE__ */ (0,
|
|
17125
|
-
/* @__PURE__ */ (0,
|
|
17126
|
-
/* @__PURE__ */ (0,
|
|
17127
|
-
/* @__PURE__ */ (0,
|
|
17222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17223
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: prefixColor, children: prefix }) }),
|
|
17224
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17225
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: prefixColor, children: [
|
|
17128
17226
|
title,
|
|
17129
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
17227
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17130
17228
|
" \xB7 ",
|
|
17131
17229
|
subtitle
|
|
17132
17230
|
] }) : null
|
|
17133
17231
|
] }),
|
|
17134
|
-
/* @__PURE__ */ (0,
|
|
17135
|
-
/* @__PURE__ */ (0,
|
|
17136
|
-
/* @__PURE__ */ (0,
|
|
17232
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17233
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexShrink: 0, marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal:" }) }),
|
|
17234
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: condition }) })
|
|
17137
17235
|
] }),
|
|
17138
|
-
isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0,
|
|
17236
|
+
isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17139
17237
|
"Last check: ",
|
|
17140
17238
|
lastReason.trim()
|
|
17141
17239
|
] }) : null
|
|
@@ -17158,7 +17256,7 @@ var useThoughtExpanded = /* @__PURE__ */ __name(() => (0, import_react44.useCont
|
|
|
17158
17256
|
var ThoughtExpandedProvider = ThoughtExpandedContext.Provider;
|
|
17159
17257
|
|
|
17160
17258
|
// packages/cli/src/ui/components/HistoryItemDisplay.tsx
|
|
17161
|
-
var
|
|
17259
|
+
var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
|
|
17162
17260
|
var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
17163
17261
|
text,
|
|
17164
17262
|
isPending,
|
|
@@ -17207,7 +17305,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
|
17207
17305
|
),
|
|
17208
17306
|
{ isActive }
|
|
17209
17307
|
);
|
|
17210
|
-
return /* @__PURE__ */ (0,
|
|
17308
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17211
17309
|
ThinkMessage,
|
|
17212
17310
|
{
|
|
17213
17311
|
text,
|
|
@@ -17284,7 +17382,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17284
17382
|
const itemForDisplay = (0, import_react45.useMemo)(() => escapeAnsiCtrlCodes(item), [item]);
|
|
17285
17383
|
const contentWidth = terminalWidth - 4;
|
|
17286
17384
|
const boxWidth = mainAreaWidth || contentWidth;
|
|
17287
|
-
return /* @__PURE__ */ (0,
|
|
17385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
17288
17386
|
Box_default,
|
|
17289
17387
|
{
|
|
17290
17388
|
flexDirection: "column",
|
|
@@ -17292,11 +17390,11 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17292
17390
|
marginLeft: 2,
|
|
17293
17391
|
marginRight: 2,
|
|
17294
17392
|
children: [
|
|
17295
|
-
itemForDisplay.type === "user" && /* @__PURE__ */ (0,
|
|
17296
|
-
itemForDisplay.type === "notification" && /* @__PURE__ */ (0,
|
|
17297
|
-
itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0,
|
|
17298
|
-
itemForDisplay.type === "gemini" && /* @__PURE__ */ (0,
|
|
17299
|
-
showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0,
|
|
17393
|
+
itemForDisplay.type === "user" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserMessage, { text: itemForDisplay.text }),
|
|
17394
|
+
itemForDisplay.type === "notification" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InfoMessage, { text: itemForDisplay.text }),
|
|
17395
|
+
itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserShellMessage, { text: itemForDisplay.text }),
|
|
17396
|
+
itemForDisplay.type === "gemini" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
|
|
17397
|
+
showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Text, { dimColor: true, children: [
|
|
17300
17398
|
"[",
|
|
17301
17399
|
new Date(itemForDisplay.timestamp).toLocaleTimeString("en-US", {
|
|
17302
17400
|
hour12: false,
|
|
@@ -17306,7 +17404,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17306
17404
|
}),
|
|
17307
17405
|
"]"
|
|
17308
17406
|
] }),
|
|
17309
|
-
/* @__PURE__ */ (0,
|
|
17407
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17310
17408
|
AssistantMessage,
|
|
17311
17409
|
{
|
|
17312
17410
|
text: itemForDisplay.text,
|
|
@@ -17319,7 +17417,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17319
17417
|
}
|
|
17320
17418
|
)
|
|
17321
17419
|
] }),
|
|
17322
|
-
itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0,
|
|
17420
|
+
itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17323
17421
|
AssistantMessageContent,
|
|
17324
17422
|
{
|
|
17325
17423
|
text: itemForDisplay.text,
|
|
@@ -17331,7 +17429,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17331
17429
|
sourceCopyIndexOffsets
|
|
17332
17430
|
}
|
|
17333
17431
|
),
|
|
17334
|
-
itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0,
|
|
17432
|
+
itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17335
17433
|
ClickableThinkMessage,
|
|
17336
17434
|
{
|
|
17337
17435
|
text: itemForDisplay.text.trimEnd(),
|
|
@@ -17343,7 +17441,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17343
17441
|
onToggle: () => toggleThought(thoughtGroupHeadId)
|
|
17344
17442
|
}
|
|
17345
17443
|
),
|
|
17346
|
-
itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0,
|
|
17444
|
+
itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17347
17445
|
ThinkMessageContent,
|
|
17348
17446
|
{
|
|
17349
17447
|
text: itemForDisplay.text.trimEnd(),
|
|
@@ -17353,7 +17451,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17353
17451
|
contentWidth
|
|
17354
17452
|
}
|
|
17355
17453
|
),
|
|
17356
|
-
itemForDisplay.type === "info" && /* @__PURE__ */ (0,
|
|
17454
|
+
itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17357
17455
|
InfoMessage,
|
|
17358
17456
|
{
|
|
17359
17457
|
text: itemForDisplay.text,
|
|
@@ -17361,26 +17459,26 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17361
17459
|
linkText: itemForDisplay.linkText
|
|
17362
17460
|
}
|
|
17363
17461
|
),
|
|
17364
|
-
itemForDisplay.type === "success" && /* @__PURE__ */ (0,
|
|
17365
|
-
itemForDisplay.type === "warning" && /* @__PURE__ */ (0,
|
|
17366
|
-
itemForDisplay.type === "error" && /* @__PURE__ */ (0,
|
|
17367
|
-
itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0,
|
|
17368
|
-
itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0,
|
|
17369
|
-
itemForDisplay.type === "about" && /* @__PURE__ */ (0,
|
|
17370
|
-
itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0,
|
|
17371
|
-
itemForDisplay.type === "stats" && /* @__PURE__ */ (0,
|
|
17372
|
-
itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0,
|
|
17373
|
-
itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0,
|
|
17374
|
-
itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0,
|
|
17375
|
-
itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0,
|
|
17376
|
-
itemForDisplay.type === "quit" && /* @__PURE__ */ (0,
|
|
17462
|
+
itemForDisplay.type === "success" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SuccessMessage, { text: itemForDisplay.text }),
|
|
17463
|
+
itemForDisplay.type === "warning" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(WarningMessage, { text: itemForDisplay.text }),
|
|
17464
|
+
itemForDisplay.type === "error" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ErrorMessage, { text: itemForDisplay.text, hint: itemForDisplay.hint }),
|
|
17465
|
+
itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RetryCountdownMessage, { text: itemForDisplay.text }),
|
|
17466
|
+
itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(VisionNoticeMessage, { text: itemForDisplay.text }),
|
|
17467
|
+
itemForDisplay.type === "about" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AboutBox, { ...itemForDisplay.systemInfo, width: boxWidth }),
|
|
17468
|
+
itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Help, { commands, width: boxWidth }),
|
|
17469
|
+
itemForDisplay.type === "stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StatsDisplay, { duration: itemForDisplay.duration, width: boxWidth }),
|
|
17470
|
+
itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DiffStatsDisplay, { model: itemForDisplay.model }),
|
|
17471
|
+
itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModelStatsDisplay, { width: boxWidth }),
|
|
17472
|
+
itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToolStatsDisplay, { width: boxWidth }),
|
|
17473
|
+
itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillStatsDisplay, { width: boxWidth }),
|
|
17474
|
+
itemForDisplay.type === "quit" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17377
17475
|
SessionSummaryDisplay,
|
|
17378
17476
|
{
|
|
17379
17477
|
duration: itemForDisplay.duration,
|
|
17380
17478
|
width: boxWidth
|
|
17381
17479
|
}
|
|
17382
17480
|
),
|
|
17383
|
-
itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0,
|
|
17481
|
+
itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17384
17482
|
ToolGroupMessage,
|
|
17385
17483
|
{
|
|
17386
17484
|
toolCalls: itemForDisplay.tools,
|
|
@@ -17397,14 +17495,14 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17397
17495
|
fullDetail
|
|
17398
17496
|
}
|
|
17399
17497
|
),
|
|
17400
|
-
itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0,
|
|
17401
|
-
/* @__PURE__ */ (0,
|
|
17402
|
-
/* @__PURE__ */ (0,
|
|
17498
|
+
itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17499
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: ICON.CIRCLE_FILLED }) }),
|
|
17500
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: itemForDisplay.summary })
|
|
17403
17501
|
] }),
|
|
17404
|
-
itemForDisplay.type === "compression" && /* @__PURE__ */ (0,
|
|
17405
|
-
itemForDisplay.type === "summary" && /* @__PURE__ */ (0,
|
|
17406
|
-
itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0,
|
|
17407
|
-
itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0,
|
|
17502
|
+
itemForDisplay.type === "compression" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CompressionMessage, { compression: itemForDisplay.compression }),
|
|
17503
|
+
itemForDisplay.type === "summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SummaryMessage, { summary: itemForDisplay.summary }),
|
|
17504
|
+
itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ExtensionsList, {}),
|
|
17505
|
+
itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17408
17506
|
ToolsList,
|
|
17409
17507
|
{
|
|
17410
17508
|
contentWidth,
|
|
@@ -17412,9 +17510,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17412
17510
|
showDescriptions: itemForDisplay.showDescriptions
|
|
17413
17511
|
}
|
|
17414
17512
|
),
|
|
17415
|
-
itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0,
|
|
17416
|
-
itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0,
|
|
17417
|
-
itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0,
|
|
17513
|
+
itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillsList, { skills: itemForDisplay.skills }),
|
|
17514
|
+
itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }),
|
|
17515
|
+
itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17418
17516
|
ContextUsage,
|
|
17419
17517
|
{
|
|
17420
17518
|
modelName: itemForDisplay.modelName,
|
|
@@ -17429,7 +17527,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17429
17527
|
showDetails: itemForDisplay.showDetails
|
|
17430
17528
|
}
|
|
17431
17529
|
),
|
|
17432
|
-
itemForDisplay.type === "doctor" && /* @__PURE__ */ (0,
|
|
17530
|
+
itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17433
17531
|
DoctorReport,
|
|
17434
17532
|
{
|
|
17435
17533
|
checks: itemForDisplay.checks,
|
|
@@ -17437,8 +17535,8 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17437
17535
|
width: boxWidth
|
|
17438
17536
|
}
|
|
17439
17537
|
),
|
|
17440
|
-
itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0,
|
|
17441
|
-
itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0,
|
|
17538
|
+
itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ArenaAgentCard, { agent: itemForDisplay.agent, width: boxWidth }),
|
|
17539
|
+
itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17442
17540
|
ArenaSessionCard,
|
|
17443
17541
|
{
|
|
17444
17542
|
sessionStatus: itemForDisplay.sessionStatus,
|
|
@@ -17448,9 +17546,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17448
17546
|
width: boxWidth
|
|
17449
17547
|
}
|
|
17450
17548
|
),
|
|
17451
|
-
itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0,
|
|
17452
|
-
itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0,
|
|
17453
|
-
itemForDisplay.type === "advisor" && /* @__PURE__ */ (0,
|
|
17549
|
+
itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InsightProgressMessage, { progress: itemForDisplay.progress }),
|
|
17550
|
+
itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BtwMessage, { btw: itemForDisplay.btw, containerWidth: contentWidth }),
|
|
17551
|
+
itemForDisplay.type === "advisor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17454
17552
|
AdvisorMessage,
|
|
17455
17553
|
{
|
|
17456
17554
|
text: itemForDisplay.text,
|
|
@@ -17458,20 +17556,20 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17458
17556
|
containerWidth: contentWidth
|
|
17459
17557
|
}
|
|
17460
17558
|
),
|
|
17461
|
-
itemForDisplay.type === "user_prompt_submit_blocked" && /* @__PURE__ */ (0,
|
|
17559
|
+
itemForDisplay.type === "user_prompt_submit_blocked" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.status.warning, children: `\u2715 UserPromptSubmit operation blocked by hook:
|
|
17462
17560
|
${itemForDisplay.reason}
|
|
17463
17561
|
|
|
17464
17562
|
Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
17465
|
-
itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0,
|
|
17563
|
+
itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17466
17564
|
InfoMessage,
|
|
17467
17565
|
{
|
|
17468
17566
|
text: `Ran ${itemForDisplay.stopHookCount} stop hooks
|
|
17469
17567
|
\u23BF Stop hook error: ${itemForDisplay.reasons[itemForDisplay.reasons.length - 1]}`
|
|
17470
17568
|
}
|
|
17471
17569
|
),
|
|
17472
|
-
itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0,
|
|
17473
|
-
/* @__PURE__ */ (0,
|
|
17474
|
-
/* @__PURE__ */ (0,
|
|
17570
|
+
itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
17571
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.primary, children: " \u23BF Stop says:" }),
|
|
17572
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { marginLeft: 4, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17475
17573
|
MarkdownDisplay,
|
|
17476
17574
|
{
|
|
17477
17575
|
text: itemForDisplay.message,
|
|
@@ -17480,9 +17578,9 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
|
17480
17578
|
}
|
|
17481
17579
|
) })
|
|
17482
17580
|
] }),
|
|
17483
|
-
itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0,
|
|
17484
|
-
itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0,
|
|
17485
|
-
itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0,
|
|
17581
|
+
itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(MemorySavedMessage, { item: itemForDisplay }),
|
|
17582
|
+
itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AwayRecapMessage, { text: itemForDisplay.text }),
|
|
17583
|
+
itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17486
17584
|
GoalStatusMessage,
|
|
17487
17585
|
{
|
|
17488
17586
|
kind: itemForDisplay.kind,
|
|
@@ -17492,7 +17590,7 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
|
17492
17590
|
lastReason: itemForDisplay.lastReason
|
|
17493
17591
|
}
|
|
17494
17592
|
),
|
|
17495
|
-
itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0,
|
|
17593
|
+
itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17496
17594
|
GoalStatusMessage,
|
|
17497
17595
|
{
|
|
17498
17596
|
snapshot: itemForDisplay.snapshot,
|
|
@@ -17508,7 +17606,7 @@ var HistoryItemDisplay = (0, import_react45.memo)(HistoryItemDisplayComponent);
|
|
|
17508
17606
|
HistoryItemDisplay.displayName = "HistoryItemDisplay";
|
|
17509
17607
|
|
|
17510
17608
|
// packages/cli/src/ui/components/SessionPreview.tsx
|
|
17511
|
-
var
|
|
17609
|
+
var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
|
|
17512
17610
|
function SessionPreview(props) {
|
|
17513
17611
|
const {
|
|
17514
17612
|
sessionService,
|
|
@@ -17583,19 +17681,19 @@ function SessionPreview(props) {
|
|
|
17583
17681
|
metaParts.push(gitBranch);
|
|
17584
17682
|
}
|
|
17585
17683
|
const metaLine = metaParts.join(" \xB7 ");
|
|
17586
|
-
const header = /* @__PURE__ */ (0,
|
|
17587
|
-
const topSeparator = /* @__PURE__ */ (0,
|
|
17588
|
-
const footerSeparator = /* @__PURE__ */ (0,
|
|
17589
|
-
const meta = metaLine ? /* @__PURE__ */ (0,
|
|
17590
|
-
const footer = /* @__PURE__ */ (0,
|
|
17684
|
+
const header = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { bold: true, color: theme.text.primary, children: sessionTitle ?? t("Session Preview") }) }, "header");
|
|
17685
|
+
const topSeparator = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "top-separator");
|
|
17686
|
+
const footerSeparator = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(separatorWidth) }) }, "footer-separator");
|
|
17687
|
+
const meta = metaLine ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: metaLine }) }, "meta") : null;
|
|
17688
|
+
const footer = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Enter to resume \xB7 Esc to back") }) }, "footer");
|
|
17591
17689
|
if (data && !error) {
|
|
17592
|
-
return /* @__PURE__ */ (0,
|
|
17690
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
17593
17691
|
Static,
|
|
17594
17692
|
{
|
|
17595
17693
|
items: [
|
|
17596
17694
|
header,
|
|
17597
17695
|
topSeparator,
|
|
17598
|
-
...items.map((item) => /* @__PURE__ */ (0,
|
|
17696
|
+
...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
17599
17697
|
HistoryItemDisplay,
|
|
17600
17698
|
{
|
|
17601
17699
|
item,
|
|
@@ -17614,10 +17712,10 @@ function SessionPreview(props) {
|
|
|
17614
17712
|
sessionId
|
|
17615
17713
|
) });
|
|
17616
17714
|
}
|
|
17617
|
-
return /* @__PURE__ */ (0,
|
|
17715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
|
|
17618
17716
|
header,
|
|
17619
17717
|
topSeparator,
|
|
17620
|
-
error ? /* @__PURE__ */ (0,
|
|
17718
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.status.error, children: error }) }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text, { color: theme.text.secondary, children: t("Loading session preview...") }) }),
|
|
17621
17719
|
footerSeparator,
|
|
17622
17720
|
meta,
|
|
17623
17721
|
footer
|
|
@@ -17626,7 +17724,7 @@ function SessionPreview(props) {
|
|
|
17626
17724
|
__name(SessionPreview, "SessionPreview");
|
|
17627
17725
|
|
|
17628
17726
|
// packages/cli/src/ui/components/SessionPicker.tsx
|
|
17629
|
-
var
|
|
17727
|
+
var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
|
|
17630
17728
|
var PREFIX_CHARS = {
|
|
17631
17729
|
selected: "\u203A ",
|
|
17632
17730
|
scrollUp: "\u2191 ",
|
|
@@ -17659,9 +17757,9 @@ function SessionListItemView({
|
|
|
17659
17757
|
Math.max(1, maxPromptWidth - checkboxWidth)
|
|
17660
17758
|
);
|
|
17661
17759
|
const isAutoTitle = session.titleSource === "auto" && Boolean(session.customTitle);
|
|
17662
|
-
return /* @__PURE__ */ (0,
|
|
17663
|
-
/* @__PURE__ */ (0,
|
|
17664
|
-
/* @__PURE__ */ (0,
|
|
17760
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { flexDirection: "column", marginBottom: isLast ? 0 : 1, children: [
|
|
17761
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { children: [
|
|
17762
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17665
17763
|
Text,
|
|
17666
17764
|
{
|
|
17667
17765
|
color: isSelected ? theme.text.accent : showUpIndicator || showDownIndicator ? theme.text.secondary : void 0,
|
|
@@ -17669,7 +17767,7 @@ function SessionListItemView({
|
|
|
17669
17767
|
children: prefix
|
|
17670
17768
|
}
|
|
17671
17769
|
),
|
|
17672
|
-
isChecked !== void 0 && /* @__PURE__ */ (0,
|
|
17770
|
+
isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17673
17771
|
Text,
|
|
17674
17772
|
{
|
|
17675
17773
|
color: isDisabled ? theme.text.secondary : isChecked ? theme.text.accent : isSelected ? theme.text.accent : theme.text.secondary,
|
|
@@ -17677,7 +17775,7 @@ function SessionListItemView({
|
|
|
17677
17775
|
children: isChecked ? "[x] " : "[ ] "
|
|
17678
17776
|
}
|
|
17679
17777
|
),
|
|
17680
|
-
/* @__PURE__ */ (0,
|
|
17778
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17681
17779
|
Text,
|
|
17682
17780
|
{
|
|
17683
17781
|
color: isDisabled ? theme.text.secondary : isSelected ? theme.text.accent : isAutoTitle ? theme.text.secondary : theme.text.primary,
|
|
@@ -17686,7 +17784,7 @@ function SessionListItemView({
|
|
|
17686
17784
|
}
|
|
17687
17785
|
)
|
|
17688
17786
|
] }),
|
|
17689
|
-
/* @__PURE__ */ (0,
|
|
17787
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17690
17788
|
timeAgo,
|
|
17691
17789
|
messageText !== void 0 && ` \xB7 ${messageText}`,
|
|
17692
17790
|
session.gitBranch && ` \xB7 ${session.gitBranch}`,
|
|
@@ -17735,7 +17833,7 @@ function SessionPicker(props) {
|
|
|
17735
17833
|
const previewed = picker.filteredSessions.find(
|
|
17736
17834
|
(s) => s.sessionId === picker.previewSessionId
|
|
17737
17835
|
);
|
|
17738
|
-
return /* @__PURE__ */ (0,
|
|
17836
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17739
17837
|
SessionPreview,
|
|
17740
17838
|
{
|
|
17741
17839
|
sessionService,
|
|
@@ -17749,14 +17847,14 @@ function SessionPicker(props) {
|
|
|
17749
17847
|
}
|
|
17750
17848
|
);
|
|
17751
17849
|
}
|
|
17752
|
-
return /* @__PURE__ */ (0,
|
|
17850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17753
17851
|
Box_default,
|
|
17754
17852
|
{
|
|
17755
17853
|
flexDirection: "column",
|
|
17756
17854
|
width: boxWidth,
|
|
17757
17855
|
height: height - 1,
|
|
17758
17856
|
overflow: "hidden",
|
|
17759
|
-
children: /* @__PURE__ */ (0,
|
|
17857
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
17760
17858
|
Box_default,
|
|
17761
17859
|
{
|
|
17762
17860
|
flexDirection: "column",
|
|
@@ -17766,38 +17864,38 @@ function SessionPicker(props) {
|
|
|
17766
17864
|
height: height - 1,
|
|
17767
17865
|
overflow: "hidden",
|
|
17768
17866
|
children: [
|
|
17769
|
-
/* @__PURE__ */ (0,
|
|
17770
|
-
/* @__PURE__ */ (0,
|
|
17771
|
-
picker.filterByBranch && currentBranch && /* @__PURE__ */ (0,
|
|
17867
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { paddingX: 1, children: [
|
|
17868
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { bold: true, color: theme.text.primary, children: title ?? t("Resume Session") }),
|
|
17869
|
+
picker.filterByBranch && currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17772
17870
|
" ",
|
|
17773
17871
|
t("(branch: {{branch}})", { branch: currentBranch })
|
|
17774
17872
|
] }),
|
|
17775
|
-
picker.searchQuery !== "" && /* @__PURE__ */ (0,
|
|
17873
|
+
picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17776
17874
|
" ",
|
|
17777
17875
|
t("({{count}} matches)", {
|
|
17778
17876
|
count: String(picker.filteredSessions.length)
|
|
17779
17877
|
})
|
|
17780
17878
|
] })
|
|
17781
17879
|
] }),
|
|
17782
|
-
/* @__PURE__ */ (0,
|
|
17783
|
-
/* @__PURE__ */ (0,
|
|
17784
|
-
/* @__PURE__ */ (0,
|
|
17880
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
17881
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Search: ") }),
|
|
17882
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.primary, children: [
|
|
17785
17883
|
picker.searchQuery,
|
|
17786
|
-
/* @__PURE__ */ (0,
|
|
17884
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
|
|
17787
17885
|
] })
|
|
17788
|
-
] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0,
|
|
17789
|
-
/* @__PURE__ */ (0,
|
|
17790
|
-
/* @__PURE__ */ (0,
|
|
17791
|
-
] }) : /* @__PURE__ */ (0,
|
|
17792
|
-
/* @__PURE__ */ (0,
|
|
17793
|
-
/* @__PURE__ */ (0,
|
|
17886
|
+
] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
17887
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Filter: ") }),
|
|
17888
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.primary, children: picker.searchQuery })
|
|
17889
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Press / to search") }) }),
|
|
17890
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
|
|
17891
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { flexDirection: "column", flexGrow: 1, paddingX: 1, overflow: "hidden", children: !sessionService || picker.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Loading sessions...") }) }) : picker.filteredSessions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingY: 1, justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: picker.searchQuery !== "" ? t('No sessions match "{{query}}"', {
|
|
17794
17892
|
query: picker.searchQuery
|
|
17795
17893
|
}) : picker.filterByBranch ? t('No sessions found for branch "{{branch}}"', {
|
|
17796
17894
|
branch: currentBranch ?? ""
|
|
17797
17895
|
}) : t("No sessions found") }) }) : picker.visibleSessions.map((session, visibleIndex) => {
|
|
17798
17896
|
const actualIndex = picker.scrollOffset + visibleIndex;
|
|
17799
17897
|
const isDisabled = picker.disabledIdSet.has(session.sessionId);
|
|
17800
|
-
return /* @__PURE__ */ (0,
|
|
17898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17801
17899
|
SessionListItemView,
|
|
17802
17900
|
{
|
|
17803
17901
|
session,
|
|
@@ -17816,10 +17914,10 @@ function SessionPicker(props) {
|
|
|
17816
17914
|
session.sessionId
|
|
17817
17915
|
);
|
|
17818
17916
|
}) }),
|
|
17819
|
-
/* @__PURE__ */ (0,
|
|
17820
|
-
/* @__PURE__ */ (0,
|
|
17821
|
-
currentBranch && /* @__PURE__ */ (0,
|
|
17822
|
-
/* @__PURE__ */ (0,
|
|
17917
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.border.default, children: "\u2500".repeat(boxWidth - 2) }) }),
|
|
17918
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { flexDirection: "row", children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Type to search \xB7 Enter to commit \xB7 Esc to clear") }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
17919
|
+
currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17920
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17823
17921
|
Text,
|
|
17824
17922
|
{
|
|
17825
17923
|
bold: picker.filterByBranch,
|
|
@@ -17829,7 +17927,7 @@ function SessionPicker(props) {
|
|
|
17829
17927
|
),
|
|
17830
17928
|
t(" to toggle branch \xB7 ")
|
|
17831
17929
|
] }),
|
|
17832
|
-
enablePreview && /* @__PURE__ */ (0,
|
|
17930
|
+
enablePreview && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
|
|
17833
17931
|
enableMultiSelect && (() => {
|
|
17834
17932
|
let committableCheckedCount = 0;
|
|
17835
17933
|
for (const id of picker.checkedIds) {
|
|
@@ -17837,11 +17935,11 @@ function SessionPicker(props) {
|
|
|
17837
17935
|
committableCheckedCount++;
|
|
17838
17936
|
}
|
|
17839
17937
|
}
|
|
17840
|
-
return /* @__PURE__ */ (0,
|
|
17938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
|
|
17841
17939
|
count: String(committableCheckedCount)
|
|
17842
17940
|
}) : t("Space to select multiple \xB7 ") });
|
|
17843
17941
|
})(),
|
|
17844
|
-
/* @__PURE__ */ (0,
|
|
17942
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("\u2191\u2193 to navigate \xB7 Type to search \xB7 Esc to cancel") })
|
|
17845
17943
|
] }) }) })
|
|
17846
17944
|
]
|
|
17847
17945
|
}
|