@qwen-code/qwen-code 0.22.0 → 0.22.2-nightly.20260828.7357136dd1
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/goal-draft/SKILL.md +109 -0
- 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 +48 -48
- package/bundled/qc-helper/docs/extension/introduction.md +3 -1
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- 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 +37 -6
- package/bundled/qc-helper/docs/features/code-review.md +27 -23
- package/bundled/qc-helper/docs/features/commands.md +4 -3
- package/bundled/qc-helper/docs/features/computer-use.md +57 -51
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/mcp.md +35 -12
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- 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 +185 -435
- package/bundled/review/references/aone.md +18 -0
- package/bundled/review/references/persistence.md +109 -0
- package/bundled/review/references/posting.md +272 -0
- package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
- package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
- package/chunks/agent-RBLGBY65.js +95 -0
- package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
- package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
- package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
- package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-5LR2F2ND.js +119 -0
- package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
- package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
- package/chunks/channel-settings-store-4FOAZW72.js +120 -0
- package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
- package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
- package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
- package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
- package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/chunk-335CJSNF.js +2320 -0
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
- package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
- package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
- package/chunks/chunk-3Y34Q3JV.js +1584 -0
- package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
- package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
- package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
- package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
- package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
- package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
- package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
- package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
- package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
- package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
- package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
- package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
- package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
- package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
- package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
- package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
- package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
- package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
- package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
- package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
- package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
- package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
- package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
- package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
- package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
- package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
- package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
- package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
- package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
- package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
- package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
- package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
- package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
- package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/chunk-EW5VVLJT.js +3525 -0
- package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
- package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
- package/chunks/chunk-FBX2SDQ4.js +48 -0
- package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
- package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
- package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
- package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
- package/chunks/chunk-HOCJDUFY.js +20 -0
- package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
- package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
- package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
- package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
- package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
- package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
- package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
- package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
- package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
- package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
- package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
- package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
- package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
- package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
- package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
- package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
- package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
- package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
- package/chunks/chunk-OI4NY7RA.js +346 -0
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
- package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
- package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/chunk-QHMLYMMS.js +32 -0
- package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
- package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
- package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/chunk-RNVFRIOO.js +275 -0
- package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
- package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
- package/chunks/chunk-RXFQM6FQ.js +42 -0
- package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
- package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
- package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
- package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
- package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
- package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
- package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
- package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
- package/chunks/chunk-T4EFG2P5.js +113 -0
- package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
- package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
- package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
- package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
- package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
- package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
- package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
- package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
- package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
- package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
- package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
- package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
- package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
- package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
- package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
- package/chunks/chunk-ZELCTN6Y.js +29 -0
- package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
- package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
- package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
- package/chunks/chunk-ZYNTSXWK.js +32 -0
- package/chunks/config-utils-JVGAP34H.js +113 -0
- package/chunks/contextCommand-XDB7OSO7.js +106 -0
- package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
- package/chunks/create-sub-session-23ITIELI.js +17 -0
- package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
- package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
- package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
- package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
- package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
- package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
- package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
- package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
- package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
- package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
- package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
- package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
- package/chunks/dist-QDLFKWOL.js +2512 -0
- package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
- package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
- package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
- package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
- package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
- package/chunks/environment-CKWHBC5T.js +129 -0
- package/chunks/errors-XTZPNQ77.js +113 -0
- package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
- package/chunks/exitPlanMode-CY344X5J.js +83 -0
- package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
- 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-VQY2YCPH.js} +137 -129
- package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
- package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
- package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
- package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
- package/chunks/i18n-BZYKOST7.js +124 -0
- package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
- package/chunks/initializer-GO2C5HE3.js +113 -0
- package/chunks/installationInfo-WM2GXQZ6.js +107 -0
- package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
- package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-ERDJB7PQ.js +116 -0
- package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
- package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
- package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
- package/chunks/mcp-2LH3QXR2.js +110 -0
- package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
- package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
- package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
- package/chunks/open-with-auth-4UI3KHUR.js +55 -0
- package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
- package/chunks/pidfile-P25DWA5Q.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
- package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
- package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
- package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
- package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
- package/chunks/read-file-6IIY4RLJ.js +32 -0
- package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
- package/chunks/report-findings-XA3FJG3N.js +33 -0
- package/chunks/request-shutdown-BCLA3JV2.js +133 -0
- package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
- package/chunks/ripGrep-E7ESZ7SS.js +39 -0
- package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
- package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
- package/chunks/runtime-RUSPD35D.js +148 -0
- package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
- package/chunks/scheduler-TDRB2NSY.js +122 -0
- package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
- package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
- package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
- package/chunks/serve-KITOM7OR.js +118 -0
- package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
- package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
- package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
- package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
- package/chunks/shell-5FJ2DZ3W.js +93 -0
- package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
- package/chunks/skill-settings-7SG4YA2W.js +118 -0
- package/chunks/spawnChannel-BPMIXRBI.js +112 -0
- package/chunks/standalone-update-QN5HFRIC.js +118 -0
- package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
- package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
- package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
- package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
- package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
- package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
- package/chunks/theme-manager-TA33UZZX.js +102 -0
- package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
- package/chunks/total-session-admission-PWXZBOVX.js +114 -0
- package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
- package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
- package/chunks/updateCheck-T5O2WGIB.js +118 -0
- package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
- package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
- package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
- package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
- package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
- 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-JBXU3IGA.js} +713 -138
- package/chunks/workspace-providers-status-525ORQBH.js +114 -0
- package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
- package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
- package/chunks/workspace-service-7PXDM6EB.js +129 -0
- package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
- package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
- package/chunks/write-file-BVQRYQQO.js +88 -0
- package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
- package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
- package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
- package/cli.js +13 -13
- package/locales/ca.js +3 -0
- package/locales/de.js +1 -0
- package/locales/en.js +5 -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 +5 -0
- package/locales/zh.js +5 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
- package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
- package/web-shell/assets/channel-D_TyfiTx.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
- package/web-shell/assets/index-BjUg3vPr.css +5 -0
- package/web-shell/assets/index-CFwYYVFU.js +1873 -0
- package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
- package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
- package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
- package/web-shell/index.html +20 -5
- 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-2J3OJGTL.js +0 -98
- package/chunks/chunk-7IV52LTO.js +0 -202
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/chunks/chunk-F6WFNA7U.js +0 -22
- package/chunks/chunk-IO257NUD.js +0 -623
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-SJ4HB27T.js +0 -945
- package/chunks/chunk-VGHZT6JR.js +0 -51
- 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/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
- package/chunks/read-file-2HOD2ATO.js +0 -33
- package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
- package/chunks/ripGrep-E7P6K4QR.js +0 -40
- package/chunks/runtime-J4SPTJRQ.js +0 -148
- package/chunks/scheduler-VRAEZZ4E.js +0 -122
- 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-BN_m_uHJ.css +0 -5
- 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-FALBWZF4.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-ZTP35P4B.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-RVXDXY6I.js";
|
|
31
|
+
import {
|
|
32
|
+
MINIMUM_MAX_HEIGHT,
|
|
33
|
+
MaxSizedBox
|
|
34
|
+
} from "./chunk-NU7RKEZR.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-AJGR6E6Z.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-WAOIHTJS.js";
|
|
59
61
|
import {
|
|
60
62
|
require_jsx_runtime
|
|
61
63
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -77,23 +79,23 @@ import {
|
|
|
77
79
|
renderMermaidImageAsync,
|
|
78
80
|
renderTerminalImage,
|
|
79
81
|
wasKittyImageWritten
|
|
80
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-BXDAPVQU.js";
|
|
81
83
|
import {
|
|
82
84
|
formatInlineImageOverflow
|
|
83
|
-
} from "./chunk-
|
|
84
|
-
import {
|
|
85
|
-
relaunchApp
|
|
86
|
-
} from "./chunk-AVCCKIZ6.js";
|
|
85
|
+
} from "./chunk-TPI7O7HR.js";
|
|
87
86
|
import {
|
|
88
87
|
isTerminalGoalStatusKind
|
|
89
88
|
} from "./chunk-EKTCKZV5.js";
|
|
90
89
|
import {
|
|
91
90
|
resolveColor,
|
|
92
91
|
themeManager
|
|
93
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-QFCDF5PL.js";
|
|
94
93
|
import {
|
|
95
94
|
getErrorMessage
|
|
96
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-JN4IWWMN.js";
|
|
96
|
+
import {
|
|
97
|
+
relaunchApp
|
|
98
|
+
} from "./chunk-YRZX2PHA.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-AY3BNYEQ.js";
|
|
120
122
|
import {
|
|
121
123
|
getPersistScopeForModelSelection
|
|
122
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-HPXV655A.js";
|
|
123
125
|
import {
|
|
124
126
|
getCurrentLanguage,
|
|
125
127
|
localizeToolDisplayName,
|
|
126
128
|
t
|
|
127
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-RWZB422L.js";
|
|
128
130
|
import {
|
|
129
131
|
isWorkspaceTrusted
|
|
130
|
-
} from "./chunk-
|
|
132
|
+
} from "./chunk-CYAUBK46.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-W6DUQ5GA.js";
|
|
144
146
|
import {
|
|
145
147
|
sanitizeForOsc,
|
|
146
148
|
supportsHyperlinks,
|
|
147
149
|
wrapForMultiplexer
|
|
148
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-3JXM2CVW.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-EWIQ3NAE.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-SZLBBZH4.js";
|
|
171
173
|
import {
|
|
172
174
|
ToolDisplayNames,
|
|
173
175
|
ToolNames,
|
|
174
176
|
ToolNamesMigration,
|
|
175
177
|
isTerminalImageDisplay
|
|
176
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-UTLCH2FK.js";
|
|
177
179
|
import {
|
|
178
180
|
createDebugLogger,
|
|
179
181
|
escapePath,
|
|
180
182
|
unescapePath
|
|
181
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-UHQFIS7N.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,13 @@ var useResultDisplayRenderer = /* @__PURE__ */ __name((resultDisplay) => import_
|
|
|
12304
12384
|
}, [resultDisplay]), "useResultDisplayRenderer");
|
|
12305
12385
|
var TodoResultRenderer = /* @__PURE__ */ __name(({
|
|
12306
12386
|
data
|
|
12307
|
-
}) =>
|
|
12308
|
-
|
|
12387
|
+
}) => {
|
|
12388
|
+
if (data.unchanged) {
|
|
12389
|
+
return null;
|
|
12390
|
+
}
|
|
12391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoDisplay, { todos: data.todos });
|
|
12392
|
+
}, "TodoResultRenderer");
|
|
12393
|
+
var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12309
12394
|
PlanSummaryDisplay,
|
|
12310
12395
|
{
|
|
12311
12396
|
data,
|
|
@@ -12317,14 +12402,14 @@ var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? [])
|
|
|
12317
12402
|
var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
|
|
12318
12403
|
const priorCalls = priorApprovalCalls(data);
|
|
12319
12404
|
if (priorCalls.length === 0) return null;
|
|
12320
|
-
return /* @__PURE__ */ (0,
|
|
12405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
|
|
12321
12406
|
const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : ICON.CIRCLE_EMPTY;
|
|
12322
12407
|
const displayName = localizeToolDisplayName(
|
|
12323
12408
|
TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
|
|
12324
12409
|
);
|
|
12325
12410
|
const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
|
|
12326
12411
|
const label = desc ? `${displayName} ${desc}` : displayName;
|
|
12327
|
-
return /* @__PURE__ */ (0,
|
|
12412
|
+
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
12413
|
}) });
|
|
12329
12414
|
}, "SubagentApprovalContext");
|
|
12330
12415
|
var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
|
|
@@ -12336,14 +12421,14 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
|
|
|
12336
12421
|
MINIMUM_MAX_HEIGHT,
|
|
12337
12422
|
availableHeight - contextLines - HEADER_LINES
|
|
12338
12423
|
) : availableHeight;
|
|
12339
|
-
return /* @__PURE__ */ (0,
|
|
12340
|
-
/* @__PURE__ */ (0,
|
|
12341
|
-
/* @__PURE__ */ (0,
|
|
12342
|
-
/* @__PURE__ */ (0,
|
|
12343
|
-
/* @__PURE__ */ (0,
|
|
12424
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
|
|
12425
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { children: [
|
|
12426
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
|
|
12427
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
|
|
12428
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: ":" })
|
|
12344
12429
|
] }),
|
|
12345
|
-
/* @__PURE__ */ (0,
|
|
12346
|
-
/* @__PURE__ */ (0,
|
|
12430
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentApprovalContext, { data }),
|
|
12431
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12347
12432
|
ToolConfirmationMessage,
|
|
12348
12433
|
{
|
|
12349
12434
|
confirmationDetails: data.pendingConfirmation,
|
|
@@ -12358,16 +12443,16 @@ var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight,
|
|
|
12358
12443
|
}
|
|
12359
12444
|
if (data.pendingConfirmation) {
|
|
12360
12445
|
const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
|
|
12361
|
-
return /* @__PURE__ */ (0,
|
|
12362
|
-
/* @__PURE__ */ (0,
|
|
12446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingLeft: 1, children: [
|
|
12447
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.secondary, dimColor: true, children: [
|
|
12363
12448
|
"\u25CC Queued approval:",
|
|
12364
12449
|
" "
|
|
12365
12450
|
] }),
|
|
12366
|
-
/* @__PURE__ */ (0,
|
|
12451
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: agentLabel })
|
|
12367
12452
|
] });
|
|
12368
12453
|
}
|
|
12369
12454
|
if (data.status === "completed" || data.status === "failed" || data.status === "cancelled") {
|
|
12370
|
-
return /* @__PURE__ */ (0,
|
|
12455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(SubagentScrollbackSummary, { data });
|
|
12371
12456
|
}
|
|
12372
12457
|
return null;
|
|
12373
12458
|
}, "SubagentExecutionRenderer");
|
|
@@ -12407,12 +12492,12 @@ var SubagentScrollbackSummary = /* @__PURE__ */ __name(({ data }) => {
|
|
|
12407
12492
|
const typePrefix = data.subagentName ? `${escapeAnsiCtrlCodes(data.subagentName)}: ` : "";
|
|
12408
12493
|
const safeDescription = escapeAnsiCtrlCodes(data.taskDescription ?? "");
|
|
12409
12494
|
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,
|
|
12495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
12496
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color, children: `${glyph} ` }),
|
|
12497
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { bold: true, children: typePrefix }),
|
|
12498
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: safeDescription }),
|
|
12499
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: tail }),
|
|
12500
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: reason })
|
|
12416
12501
|
] }) });
|
|
12417
12502
|
}, "SubagentScrollbackSummary");
|
|
12418
12503
|
var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, availableHeight, childWidth }) => {
|
|
@@ -12421,7 +12506,7 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
|
|
|
12421
12506
|
displayData = "..." + displayData.slice(-MAXIMUM_RESULT_DISPLAY_CHARACTERS);
|
|
12422
12507
|
}
|
|
12423
12508
|
if (renderAsMarkdown) {
|
|
12424
|
-
return /* @__PURE__ */ (0,
|
|
12509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12425
12510
|
MarkdownDisplay,
|
|
12426
12511
|
{
|
|
12427
12512
|
text: displayData,
|
|
@@ -12436,25 +12521,25 @@ var StringResultRenderer = /* @__PURE__ */ __name(({ data, renderAsMarkdown, ava
|
|
|
12436
12521
|
availableHeight,
|
|
12437
12522
|
childWidth
|
|
12438
12523
|
);
|
|
12439
|
-
return /* @__PURE__ */ (0,
|
|
12524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12440
12525
|
MaxSizedBox,
|
|
12441
12526
|
{
|
|
12442
12527
|
maxHeight: availableHeight,
|
|
12443
12528
|
maxWidth: childWidth,
|
|
12444
12529
|
additionalHiddenLinesCount: sliced.hiddenLinesCount,
|
|
12445
12530
|
sourceBoundaries: sliced.sourceBoundaries,
|
|
12446
|
-
children: /* @__PURE__ */ (0,
|
|
12531
|
+
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
12532
|
}
|
|
12448
12533
|
);
|
|
12449
12534
|
}, "StringResultRenderer");
|
|
12450
12535
|
var DiffResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, settings }) => {
|
|
12451
12536
|
const diffHeight = data.truncatedForSession && availableHeight !== void 0 ? Math.max(1, availableHeight - 1) : availableHeight;
|
|
12452
|
-
return /* @__PURE__ */ (0,
|
|
12453
|
-
data.truncatedForSession && /* @__PURE__ */ (0,
|
|
12537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12538
|
+
data.truncatedForSession && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.status.warning, wrap: "wrap", children: [
|
|
12454
12539
|
data.fileDiffTruncated ? "Saved session preview only; full diff omitted from JSONL" : "Saved session preview only; full file contents truncated in JSONL",
|
|
12455
12540
|
data.fileDiffTruncated && typeof data.fileDiffLength === "number" ? ` (${data.fileDiffLength} chars).` : "."
|
|
12456
12541
|
] }),
|
|
12457
|
-
/* @__PURE__ */ (0,
|
|
12542
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12458
12543
|
DiffRenderer,
|
|
12459
12544
|
{
|
|
12460
12545
|
diffContent: data.fileDiff,
|
|
@@ -12556,10 +12641,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12556
12641
|
effectiveResultDisplay
|
|
12557
12642
|
);
|
|
12558
12643
|
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,
|
|
12644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { paddingY: 0, flexDirection: "column", children: [
|
|
12645
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Box_default, { minHeight: 1, children: [
|
|
12646
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ToolStatusIndicator, { status, name }),
|
|
12647
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12563
12648
|
ToolInfo,
|
|
12564
12649
|
{
|
|
12565
12650
|
name,
|
|
@@ -12572,8 +12657,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12572
12657
|
)
|
|
12573
12658
|
}
|
|
12574
12659
|
),
|
|
12575
|
-
shouldShowFocusHint && /* @__PURE__ */ (0,
|
|
12576
|
-
/* @__PURE__ */ (0,
|
|
12660
|
+
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)" }) }),
|
|
12661
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12577
12662
|
ToolElapsedTime,
|
|
12578
12663
|
{
|
|
12579
12664
|
status,
|
|
@@ -12581,9 +12666,9 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12581
12666
|
timeoutMs: shellTimeoutMs
|
|
12582
12667
|
}
|
|
12583
12668
|
),
|
|
12584
|
-
emphasis === "high" && /* @__PURE__ */ (0,
|
|
12669
|
+
emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TrailingIndicator, {})
|
|
12585
12670
|
] }),
|
|
12586
|
-
visionBridgeNoticeText && /* @__PURE__ */ (0,
|
|
12671
|
+
visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12587
12672
|
StringResultRenderer,
|
|
12588
12673
|
{
|
|
12589
12674
|
data: visionBridgeNoticeText,
|
|
@@ -12591,9 +12676,10 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12591
12676
|
childWidth: innerWidth
|
|
12592
12677
|
}
|
|
12593
12678
|
) }),
|
|
12594
|
-
effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0,
|
|
12595
|
-
effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0,
|
|
12596
|
-
effectiveDisplayRenderer.type === "
|
|
12679
|
+
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: [
|
|
12680
|
+
effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
|
|
12681
|
+
effectiveDisplayRenderer.type === "findings" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(FindingsDisplay, { data: effectiveDisplayRenderer.data }),
|
|
12682
|
+
effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12597
12683
|
PlanResultRenderer,
|
|
12598
12684
|
{
|
|
12599
12685
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12601,7 +12687,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12601
12687
|
childWidth: innerWidth
|
|
12602
12688
|
}
|
|
12603
12689
|
),
|
|
12604
|
-
effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0,
|
|
12690
|
+
effectiveDisplayRenderer.type === "task" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12605
12691
|
SubagentExecutionRenderer,
|
|
12606
12692
|
{
|
|
12607
12693
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12612,7 +12698,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12612
12698
|
isPending
|
|
12613
12699
|
}
|
|
12614
12700
|
),
|
|
12615
|
-
effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0,
|
|
12701
|
+
effectiveDisplayRenderer.type === "diff" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12616
12702
|
DiffResultRenderer,
|
|
12617
12703
|
{
|
|
12618
12704
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12621,8 +12707,8 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12621
12707
|
settings
|
|
12622
12708
|
}
|
|
12623
12709
|
),
|
|
12624
|
-
effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0,
|
|
12625
|
-
/* @__PURE__ */ (0,
|
|
12710
|
+
effectiveDisplayRenderer.type === "ansi" && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
12711
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12626
12712
|
AnsiOutputText,
|
|
12627
12713
|
{
|
|
12628
12714
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12630,7 +12716,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12630
12716
|
maxWidth: innerWidth
|
|
12631
12717
|
}
|
|
12632
12718
|
),
|
|
12633
|
-
effectiveDisplayRenderer.stats && /* @__PURE__ */ (0,
|
|
12719
|
+
effectiveDisplayRenderer.stats && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12634
12720
|
ShellStatsBar,
|
|
12635
12721
|
{
|
|
12636
12722
|
...effectiveDisplayRenderer.stats,
|
|
@@ -12638,7 +12724,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12638
12724
|
}
|
|
12639
12725
|
)
|
|
12640
12726
|
] }),
|
|
12641
|
-
effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0,
|
|
12727
|
+
effectiveDisplayRenderer.type === "image" && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12642
12728
|
TerminalImage,
|
|
12643
12729
|
{
|
|
12644
12730
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12647,7 +12733,7 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12647
12733
|
availableTerminalHeight: availableHeight
|
|
12648
12734
|
}
|
|
12649
12735
|
),
|
|
12650
|
-
effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0,
|
|
12736
|
+
effectiveDisplayRenderer.type === "string" && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12651
12737
|
StringResultRenderer,
|
|
12652
12738
|
{
|
|
12653
12739
|
data: effectiveDisplayRenderer.data,
|
|
@@ -12657,14 +12743,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12657
12743
|
}
|
|
12658
12744
|
)
|
|
12659
12745
|
] }) }),
|
|
12660
|
-
((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0,
|
|
12746
|
+
((images?.length ?? 0) > 0 || omittedImageCount !== void 0 && omittedImageCount > 0) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
12661
12747
|
Box_default,
|
|
12662
12748
|
{
|
|
12663
12749
|
paddingLeft: STATUS_INDICATOR_WIDTH,
|
|
12664
12750
|
width: "100%",
|
|
12665
12751
|
flexDirection: "column",
|
|
12666
12752
|
children: [
|
|
12667
|
-
images?.map((image, index) => /* @__PURE__ */ (0,
|
|
12753
|
+
images?.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12668
12754
|
TerminalImage,
|
|
12669
12755
|
{
|
|
12670
12756
|
image,
|
|
@@ -12673,11 +12759,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12673
12759
|
},
|
|
12674
12760
|
index
|
|
12675
12761
|
)),
|
|
12676
|
-
omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0,
|
|
12762
|
+
omittedImageCount !== void 0 && omittedImageCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { dimColor: true, children: formatInlineImageOverflow(omittedImageCount) })
|
|
12677
12763
|
]
|
|
12678
12764
|
}
|
|
12679
12765
|
),
|
|
12680
|
-
isThisShellFocused && config && /* @__PURE__ */ (0,
|
|
12766
|
+
isThisShellFocused && config && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
12681
12767
|
ShellInputPrompt,
|
|
12682
12768
|
{
|
|
12683
12769
|
activeShellPtyId: activeShellPtyId ?? null,
|
|
@@ -12731,15 +12817,15 @@ var ToolInfo = /* @__PURE__ */ __name(({
|
|
|
12731
12817
|
}
|
|
12732
12818
|
}
|
|
12733
12819
|
}, [emphasis]);
|
|
12734
|
-
return /* @__PURE__ */ (0,
|
|
12735
|
-
/* @__PURE__ */ (0,
|
|
12736
|
-
!hideDescription && /* @__PURE__ */ (0,
|
|
12820
|
+
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: [
|
|
12821
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: nameColor, bold: true, children: localizeToolDisplayName(name) }),
|
|
12822
|
+
!hideDescription && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
12737
12823
|
" ",
|
|
12738
|
-
/* @__PURE__ */ (0,
|
|
12824
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { color: theme.text.secondary, children: description })
|
|
12739
12825
|
] })
|
|
12740
12826
|
] }) });
|
|
12741
12827
|
}, "ToolInfo");
|
|
12742
|
-
var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
12828
|
+
var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Text, { color: theme.text.primary, wrap: "truncate", children: [
|
|
12743
12829
|
" ",
|
|
12744
12830
|
"\u2190"
|
|
12745
12831
|
] }), "TrailingIndicator");
|
|
@@ -12747,7 +12833,7 @@ var TrailingIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_
|
|
|
12747
12833
|
// packages/cli/src/ui/components/messages/InlineParallelAgentsDisplay.tsx
|
|
12748
12834
|
init_esbuild_shims();
|
|
12749
12835
|
var import_react29 = __toESM(require_react(), 1);
|
|
12750
|
-
var
|
|
12836
|
+
var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
|
|
12751
12837
|
function deriveAgentId(toolCall, resultDisplay) {
|
|
12752
12838
|
return `${resultDisplay.subagentName}-${toolCall.callId}`;
|
|
12753
12839
|
}
|
|
@@ -12867,15 +12953,15 @@ var InlineParallelAgentsDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWi
|
|
|
12867
12953
|
visibleRows = [];
|
|
12868
12954
|
}
|
|
12869
12955
|
}
|
|
12870
|
-
return /* @__PURE__ */ (0,
|
|
12871
|
-
/* @__PURE__ */ (0,
|
|
12872
|
-
overflowCount > 0 && /* @__PURE__ */ (0,
|
|
12956
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, children: [
|
|
12957
|
+
/* @__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 }) }),
|
|
12958
|
+
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
12959
|
"\u2026 +",
|
|
12874
12960
|
overflowCount,
|
|
12875
12961
|
" more ",
|
|
12876
12962
|
overflowCount === 1 ? "agent" : "agents"
|
|
12877
12963
|
] }) }),
|
|
12878
|
-
visibleRows.map((row) => /* @__PURE__ */ (0,
|
|
12964
|
+
visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AgentRow, { row, now }, row.agentId))
|
|
12879
12965
|
] });
|
|
12880
12966
|
}, "InlineParallelAgentsDisplay");
|
|
12881
12967
|
var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
|
|
@@ -12889,16 +12975,16 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
|
|
|
12889
12975
|
if (elapsed) trailingParts.push(elapsed);
|
|
12890
12976
|
if (tokens) trailingParts.push(`${tokens} tok`);
|
|
12891
12977
|
const trailing = trailingParts.join(" \xB7 ");
|
|
12892
|
-
return /* @__PURE__ */ (0,
|
|
12893
|
-
/* @__PURE__ */ (0,
|
|
12894
|
-
/* @__PURE__ */ (0,
|
|
12895
|
-
/* @__PURE__ */ (0,
|
|
12896
|
-
/* @__PURE__ */ (0,
|
|
12978
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
12979
|
+
/* @__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 }) }),
|
|
12980
|
+
/* @__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 }) }),
|
|
12981
|
+
/* @__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 }) }),
|
|
12982
|
+
/* @__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
12983
|
] });
|
|
12898
12984
|
}, "AgentRow");
|
|
12899
12985
|
|
|
12900
12986
|
// packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
|
|
12901
|
-
var
|
|
12987
|
+
var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
|
|
12902
12988
|
function isAgentWithPendingConfirmation(rd) {
|
|
12903
12989
|
return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution" && rd.pendingConfirmation !== void 0;
|
|
12904
12990
|
}
|
|
@@ -12991,7 +13077,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
12991
13077
|
if (inlineToolCalls.length === 0) {
|
|
12992
13078
|
return null;
|
|
12993
13079
|
}
|
|
12994
|
-
return /* @__PURE__ */ (0,
|
|
13080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12995
13081
|
InlineParallelAgentsDisplay,
|
|
12996
13082
|
{
|
|
12997
13083
|
toolCalls: inlineToolCalls,
|
|
@@ -13008,15 +13094,15 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13008
13094
|
if (allMemOpsComplete) {
|
|
13009
13095
|
const readCount = memoryReadCount ?? 0;
|
|
13010
13096
|
const writeCount = memoryWriteCount ?? 0;
|
|
13011
|
-
return /* @__PURE__ */ (0,
|
|
13012
|
-
readCount > 0 && /* @__PURE__ */ (0,
|
|
13097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
|
|
13098
|
+
readCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
|
|
13013
13099
|
ICON.CIRCLE_FILLED + " ",
|
|
13014
13100
|
"Recalled ",
|
|
13015
13101
|
readCount,
|
|
13016
13102
|
" ",
|
|
13017
13103
|
readCount === 1 ? "memory" : "memories"
|
|
13018
13104
|
] }) }),
|
|
13019
|
-
writeCount > 0 && /* @__PURE__ */ (0,
|
|
13105
|
+
writeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { paddingLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Text, { dimColor: true, children: [
|
|
13020
13106
|
ICON.CIRCLE_FILLED + " ",
|
|
13021
13107
|
"Wrote ",
|
|
13022
13108
|
writeCount,
|
|
@@ -13034,7 +13120,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13034
13120
|
(t2) => !isCollapsibleTool(t2.name) || t2.status === "Canceled" /* Canceled */ || hasInlineImageOutput(t2)
|
|
13035
13121
|
);
|
|
13036
13122
|
const hasMemoryBadge = !isMemoryOnlyGroup && ((memoryWriteCount ?? 0) > 0 || (memoryReadCount ?? 0) > 0);
|
|
13037
|
-
const memoryBadge = hasMemoryBadge ? /* @__PURE__ */ (0,
|
|
13123
|
+
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
13124
|
ICON.CIRCLE_FILLED + " ",
|
|
13039
13125
|
[
|
|
13040
13126
|
(memoryReadCount ?? 0) > 0 && `Recalled ${memoryReadCount} ${memoryReadCount === 1 ? "memory" : "memories"}`,
|
|
@@ -13042,8 +13128,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13042
13128
|
].filter(Boolean).join(", ")
|
|
13043
13129
|
] }) }) : null;
|
|
13044
13130
|
if (collapsibleTools.length > 0 && nonCollapsibleTools.length === 0) {
|
|
13045
|
-
return /* @__PURE__ */ (0,
|
|
13046
|
-
/* @__PURE__ */ (0,
|
|
13131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, children: [
|
|
13132
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13047
13133
|
CompactToolGroupDisplay,
|
|
13048
13134
|
{
|
|
13049
13135
|
toolCalls: collapsibleTools,
|
|
@@ -13076,8 +13162,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13076
13162
|
),
|
|
13077
13163
|
1
|
|
13078
13164
|
) : void 0;
|
|
13079
|
-
return /* @__PURE__ */ (0,
|
|
13080
|
-
collapsibleTools.length > 0 && /* @__PURE__ */ (0,
|
|
13165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", width: contentWidth, gap: 0, children: [
|
|
13166
|
+
collapsibleTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13081
13167
|
CompactToolGroupDisplay,
|
|
13082
13168
|
{
|
|
13083
13169
|
toolCalls: collapsibleTools,
|
|
@@ -13088,8 +13174,8 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13088
13174
|
nonCollapsibleTools.map((tool) => {
|
|
13089
13175
|
const isConfirming = toolAwaitingApproval?.callId === tool.callId;
|
|
13090
13176
|
const isSubagentFocused = isFocused && !toolAwaitingApproval && keyboardFocusedSubagentCallId === tool.callId;
|
|
13091
|
-
return /* @__PURE__ */ (0,
|
|
13092
|
-
/* @__PURE__ */ (0,
|
|
13177
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Box_default, { flexDirection: "column", minHeight: 1, children: [
|
|
13178
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Box_default, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13093
13179
|
ToolMessage,
|
|
13094
13180
|
{
|
|
13095
13181
|
...tool,
|
|
@@ -13105,7 +13191,7 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13105
13191
|
isPending
|
|
13106
13192
|
}
|
|
13107
13193
|
) }),
|
|
13108
|
-
tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0,
|
|
13194
|
+
tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
13109
13195
|
ToolConfirmationMessage,
|
|
13110
13196
|
{
|
|
13111
13197
|
confirmationDetails: tool.confirmationDetails,
|
|
@@ -13122,13 +13208,21 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13122
13208
|
|
|
13123
13209
|
// packages/cli/src/ui/components/messages/CompressionMessage.tsx
|
|
13124
13210
|
init_esbuild_shims();
|
|
13125
|
-
var
|
|
13211
|
+
var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
|
|
13126
13212
|
function CompressionMessage({
|
|
13127
13213
|
compression
|
|
13128
13214
|
}) {
|
|
13129
|
-
const {
|
|
13215
|
+
const {
|
|
13216
|
+
isPending,
|
|
13217
|
+
originalTokenCount,
|
|
13218
|
+
newTokenCount,
|
|
13219
|
+
compressionStatus,
|
|
13220
|
+
originalTokenCountIsEstimated,
|
|
13221
|
+
newTokenCountIsEstimated
|
|
13222
|
+
} = compression;
|
|
13130
13223
|
const originalTokens = originalTokenCount ?? 0;
|
|
13131
13224
|
const newTokens = newTokenCount ?? 0;
|
|
13225
|
+
const formatTokens2 = /* @__PURE__ */ __name((count, isEstimated) => isEstimated ? `~${count}` : String(count), "formatTokens");
|
|
13132
13226
|
const getCompressionText = /* @__PURE__ */ __name(() => {
|
|
13133
13227
|
if (isPending) {
|
|
13134
13228
|
return t("Compressing chat history");
|
|
@@ -13138,8 +13232,11 @@ function CompressionMessage({
|
|
|
13138
13232
|
return t(
|
|
13139
13233
|
"Chat history compressed from {{originalTokens}} to {{newTokens}} tokens.",
|
|
13140
13234
|
{
|
|
13141
|
-
originalTokens:
|
|
13142
|
-
|
|
13235
|
+
originalTokens: formatTokens2(
|
|
13236
|
+
originalTokens,
|
|
13237
|
+
originalTokenCountIsEstimated
|
|
13238
|
+
),
|
|
13239
|
+
newTokens: formatTokens2(newTokens, newTokenCountIsEstimated)
|
|
13143
13240
|
}
|
|
13144
13241
|
);
|
|
13145
13242
|
case 2 /* COMPRESSION_FAILED_INFLATED_TOKEN_COUNT */:
|
|
@@ -13160,9 +13257,9 @@ function CompressionMessage({
|
|
|
13160
13257
|
}
|
|
13161
13258
|
}, "getCompressionText");
|
|
13162
13259
|
const text = getCompressionText();
|
|
13163
|
-
return /* @__PURE__ */ (0,
|
|
13164
|
-
/* @__PURE__ */ (0,
|
|
13165
|
-
/* @__PURE__ */ (0,
|
|
13260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13261
|
+
/* @__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 }) }),
|
|
13262
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
13166
13263
|
Text,
|
|
13167
13264
|
{
|
|
13168
13265
|
color: compression.isPending ? theme.text.accent : theme.status.success,
|
|
@@ -13176,7 +13273,7 @@ __name(CompressionMessage, "CompressionMessage");
|
|
|
13176
13273
|
|
|
13177
13274
|
// packages/cli/src/ui/components/messages/SummaryMessage.tsx
|
|
13178
13275
|
init_esbuild_shims();
|
|
13179
|
-
var
|
|
13276
|
+
var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
|
|
13180
13277
|
var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
|
|
13181
13278
|
const getText = /* @__PURE__ */ __name(() => {
|
|
13182
13279
|
if (summary.isPending) {
|
|
@@ -13199,13 +13296,13 @@ var SummaryMessage = /* @__PURE__ */ __name(({ summary }) => {
|
|
|
13199
13296
|
}, "getText");
|
|
13200
13297
|
const getIcon = /* @__PURE__ */ __name(() => {
|
|
13201
13298
|
if (summary.isPending) {
|
|
13202
|
-
return /* @__PURE__ */ (0,
|
|
13299
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(build_default, { type: "dots" });
|
|
13203
13300
|
}
|
|
13204
|
-
return /* @__PURE__ */ (0,
|
|
13301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text, { color: Colors.AccentGreen, children: "\u2713" });
|
|
13205
13302
|
}, "getIcon");
|
|
13206
|
-
return /* @__PURE__ */ (0,
|
|
13207
|
-
/* @__PURE__ */ (0,
|
|
13208
|
-
/* @__PURE__ */ (0,
|
|
13303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13304
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { width: 2, flexShrink: 0, children: getIcon() }),
|
|
13305
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
13209
13306
|
Text,
|
|
13210
13307
|
{
|
|
13211
13308
|
color: summary.isPending ? Colors.AccentPurple : Colors.AccentGreen,
|
|
@@ -13386,7 +13483,7 @@ Link.propTypes = {
|
|
|
13386
13483
|
var dist_default = Link;
|
|
13387
13484
|
|
|
13388
13485
|
// packages/cli/src/ui/components/messages/StatusMessages.tsx
|
|
13389
|
-
var
|
|
13486
|
+
var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
|
|
13390
13487
|
var StatusMessage = /* @__PURE__ */ __name(({
|
|
13391
13488
|
text,
|
|
13392
13489
|
prefix,
|
|
@@ -13399,11 +13496,11 @@ var StatusMessage = /* @__PURE__ */ __name(({
|
|
|
13399
13496
|
return null;
|
|
13400
13497
|
}
|
|
13401
13498
|
const prefixWidth = stringWidth(prefix) + 1;
|
|
13402
|
-
return /* @__PURE__ */ (0,
|
|
13403
|
-
/* @__PURE__ */ (0,
|
|
13404
|
-
/* @__PURE__ */ (0,
|
|
13405
|
-
text && text.trim() !== "" && /* @__PURE__ */ (0,
|
|
13406
|
-
/* @__PURE__ */ (0,
|
|
13499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13500
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box_default, { width: prefixWidth, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: prefixColor, children: prefix }) }),
|
|
13501
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
13502
|
+
text && text.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", color: textColor, children: [
|
|
13503
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RenderInline, { text }),
|
|
13407
13504
|
children
|
|
13408
13505
|
] }),
|
|
13409
13506
|
footer
|
|
@@ -13414,17 +13511,17 @@ var InfoMessage = /* @__PURE__ */ __name(({
|
|
|
13414
13511
|
text,
|
|
13415
13512
|
linkUrl,
|
|
13416
13513
|
linkText
|
|
13417
|
-
}) => /* @__PURE__ */ (0,
|
|
13514
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13418
13515
|
StatusMessage,
|
|
13419
13516
|
{
|
|
13420
13517
|
text,
|
|
13421
13518
|
prefix: ICON.CIRCLE_FILLED,
|
|
13422
13519
|
prefixColor: theme.text.primary,
|
|
13423
13520
|
textColor: theme.text.primary,
|
|
13424
|
-
footer: linkUrl && /* @__PURE__ */ (0,
|
|
13521
|
+
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
13522
|
}
|
|
13426
13523
|
), "InfoMessage");
|
|
13427
|
-
var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13524
|
+
var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13428
13525
|
StatusMessage,
|
|
13429
13526
|
{
|
|
13430
13527
|
text,
|
|
@@ -13433,7 +13530,7 @@ var SuccessMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
|
|
|
13433
13530
|
textColor: theme.status.success
|
|
13434
13531
|
}
|
|
13435
13532
|
), "SuccessMessage");
|
|
13436
|
-
var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13533
|
+
var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13437
13534
|
StatusMessage,
|
|
13438
13535
|
{
|
|
13439
13536
|
text,
|
|
@@ -13445,21 +13542,21 @@ var WarningMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, im
|
|
|
13445
13542
|
var ErrorMessage = /* @__PURE__ */ __name(({
|
|
13446
13543
|
text,
|
|
13447
13544
|
hint
|
|
13448
|
-
}) => /* @__PURE__ */ (0,
|
|
13545
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13449
13546
|
StatusMessage,
|
|
13450
13547
|
{
|
|
13451
13548
|
text,
|
|
13452
13549
|
prefix: "\u2715",
|
|
13453
13550
|
prefixColor: theme.status.error,
|
|
13454
13551
|
textColor: theme.status.error,
|
|
13455
|
-
children: hint && /* @__PURE__ */ (0,
|
|
13552
|
+
children: hint && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13456
13553
|
" (",
|
|
13457
13554
|
hint,
|
|
13458
13555
|
")"
|
|
13459
13556
|
] })
|
|
13460
13557
|
}
|
|
13461
13558
|
), "ErrorMessage");
|
|
13462
|
-
var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13559
|
+
var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13463
13560
|
StatusMessage,
|
|
13464
13561
|
{
|
|
13465
13562
|
text,
|
|
@@ -13468,7 +13565,7 @@ var RetryCountdownMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */
|
|
|
13468
13565
|
textColor: theme.text.secondary
|
|
13469
13566
|
}
|
|
13470
13567
|
), "RetryCountdownMessage");
|
|
13471
|
-
var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13568
|
+
var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
13472
13569
|
StatusMessage,
|
|
13473
13570
|
{
|
|
13474
13571
|
text,
|
|
@@ -13477,23 +13574,23 @@ var VisionNoticeMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (
|
|
|
13477
13574
|
textColor: theme.text.secondary
|
|
13478
13575
|
}
|
|
13479
13576
|
), "VisionNoticeMessage");
|
|
13480
|
-
var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0,
|
|
13481
|
-
/* @__PURE__ */ (0,
|
|
13482
|
-
/* @__PURE__ */ (0,
|
|
13483
|
-
/* @__PURE__ */ (0,
|
|
13577
|
+
var AwayRecapMessage = /* @__PURE__ */ __name(({ text }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
13578
|
+
/* @__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 }) }),
|
|
13579
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { wrap: "wrap", children: [
|
|
13580
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Text, { color: theme.text.secondary, bold: true, children: [
|
|
13484
13581
|
"recap:",
|
|
13485
13582
|
" "
|
|
13486
13583
|
] }),
|
|
13487
|
-
/* @__PURE__ */ (0,
|
|
13584
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { color: theme.text.secondary, italic: true, children: text })
|
|
13488
13585
|
] })
|
|
13489
13586
|
] }), "AwayRecapMessage");
|
|
13490
13587
|
|
|
13491
13588
|
// packages/cli/src/ui/components/AboutBox.tsx
|
|
13492
13589
|
init_esbuild_shims();
|
|
13493
|
-
var
|
|
13590
|
+
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
|
|
13494
13591
|
var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
|
|
13495
13592
|
const fields = getSystemInfoFields(props);
|
|
13496
|
-
return /* @__PURE__ */ (0,
|
|
13593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
13497
13594
|
Box_default,
|
|
13498
13595
|
{
|
|
13499
13596
|
borderStyle: "round",
|
|
@@ -13502,15 +13599,15 @@ var AboutBox = /* @__PURE__ */ __name(({ width, ...props }) => {
|
|
|
13502
13599
|
padding: 1,
|
|
13503
13600
|
width,
|
|
13504
13601
|
children: [
|
|
13505
|
-
/* @__PURE__ */ (0,
|
|
13506
|
-
fields.map((field) => /* @__PURE__ */ (0,
|
|
13602
|
+
/* @__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") }) }),
|
|
13603
|
+
fields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
13507
13604
|
Box_default,
|
|
13508
13605
|
{
|
|
13509
13606
|
flexDirection: "row",
|
|
13510
13607
|
marginTop: field.label === t("Auth") ? 1 : 0,
|
|
13511
13608
|
children: [
|
|
13512
|
-
/* @__PURE__ */ (0,
|
|
13513
|
-
/* @__PURE__ */ (0,
|
|
13609
|
+
/* @__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 }) }),
|
|
13610
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text, { color: theme.text.primary, children: field.value }) })
|
|
13514
13611
|
]
|
|
13515
13612
|
},
|
|
13516
13613
|
field.label
|
|
@@ -13640,20 +13737,20 @@ function sortSources(sources) {
|
|
|
13640
13737
|
__name(sortSources, "sortSources");
|
|
13641
13738
|
|
|
13642
13739
|
// packages/cli/src/ui/components/StatsDisplay.tsx
|
|
13643
|
-
var
|
|
13644
|
-
var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13645
|
-
/* @__PURE__ */ (0,
|
|
13646
|
-
/* @__PURE__ */ (0,
|
|
13740
|
+
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
|
|
13741
|
+
var StatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13742
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 28, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.link, children: title }) }),
|
|
13743
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
|
|
13647
13744
|
] }), "StatRow");
|
|
13648
|
-
var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13649
|
-
/* @__PURE__ */ (0,
|
|
13745
|
+
var SubStatRow = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { paddingLeft: 2, children: [
|
|
13746
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13650
13747
|
"\xBB ",
|
|
13651
13748
|
title
|
|
13652
13749
|
] }) }),
|
|
13653
|
-
/* @__PURE__ */ (0,
|
|
13750
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { flexGrow: 1, children })
|
|
13654
13751
|
] }), "SubStatRow");
|
|
13655
|
-
var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0,
|
|
13656
|
-
/* @__PURE__ */ (0,
|
|
13752
|
+
var Section = /* @__PURE__ */ __name(({ title, children }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
|
|
13753
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.primary, children: title }),
|
|
13657
13754
|
children
|
|
13658
13755
|
] }), "Section");
|
|
13659
13756
|
var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cacheEfficiency }) => {
|
|
@@ -13662,14 +13759,14 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13662
13759
|
const inputTokensWidth = 15;
|
|
13663
13760
|
const outputTokensWidth = 15;
|
|
13664
13761
|
const entries = flattenModelsBySource(models);
|
|
13665
|
-
return /* @__PURE__ */ (0,
|
|
13666
|
-
/* @__PURE__ */ (0,
|
|
13667
|
-
/* @__PURE__ */ (0,
|
|
13668
|
-
/* @__PURE__ */ (0,
|
|
13669
|
-
/* @__PURE__ */ (0,
|
|
13670
|
-
/* @__PURE__ */ (0,
|
|
13762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
13763
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13764
|
+
/* @__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") }) }),
|
|
13765
|
+
/* @__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") }) }),
|
|
13766
|
+
/* @__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") }) }),
|
|
13767
|
+
/* @__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
13768
|
] }),
|
|
13672
|
-
/* @__PURE__ */ (0,
|
|
13769
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
13673
13770
|
Box_default,
|
|
13674
13771
|
{
|
|
13675
13772
|
borderStyle: "round",
|
|
@@ -13681,15 +13778,15 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13681
13778
|
width: nameWidth + requestsWidth + inputTokensWidth + outputTokensWidth
|
|
13682
13779
|
}
|
|
13683
13780
|
),
|
|
13684
|
-
entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0,
|
|
13685
|
-
/* @__PURE__ */ (0,
|
|
13686
|
-
/* @__PURE__ */ (0,
|
|
13687
|
-
/* @__PURE__ */ (0,
|
|
13688
|
-
/* @__PURE__ */ (0,
|
|
13781
|
+
entries.map(({ key, label, metrics }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { children: [
|
|
13782
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { width: nameWidth, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
13783
|
+
/* @__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 }) }),
|
|
13784
|
+
/* @__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() }) }),
|
|
13785
|
+
/* @__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
13786
|
] }, key)),
|
|
13690
|
-
cacheEfficiency > 0 && /* @__PURE__ */ (0,
|
|
13691
|
-
/* @__PURE__ */ (0,
|
|
13692
|
-
/* @__PURE__ */ (0,
|
|
13787
|
+
cacheEfficiency > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
13788
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.primary, children: [
|
|
13789
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { color: theme.status.success, children: t("Savings Highlight:") }),
|
|
13693
13790
|
" ",
|
|
13694
13791
|
totalCachedTokens.toLocaleString(),
|
|
13695
13792
|
" (",
|
|
@@ -13698,8 +13795,8 @@ var ModelUsageTable = /* @__PURE__ */ __name(({ models, totalCachedTokens, cache
|
|
|
13698
13795
|
" ",
|
|
13699
13796
|
t("of input tokens were served from the cache, reducing costs.")
|
|
13700
13797
|
] }),
|
|
13701
|
-
/* @__PURE__ */ (0,
|
|
13702
|
-
/* @__PURE__ */ (0,
|
|
13798
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
|
|
13799
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13703
13800
|
"\xBB ",
|
|
13704
13801
|
t("Tip: For a full token breakdown, run `/stats model`.")
|
|
13705
13802
|
] })
|
|
@@ -13731,11 +13828,11 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13731
13828
|
const renderTitle = /* @__PURE__ */ __name(() => {
|
|
13732
13829
|
if (title) {
|
|
13733
13830
|
const gradientColors = getRenderableGradientColors(theme.ui.gradient);
|
|
13734
|
-
return gradientColors ? /* @__PURE__ */ (0,
|
|
13831
|
+
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
13832
|
}
|
|
13736
|
-
return /* @__PURE__ */ (0,
|
|
13833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Session Stats") });
|
|
13737
13834
|
}, "renderTitle");
|
|
13738
|
-
return /* @__PURE__ */ (0,
|
|
13835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
13739
13836
|
Box_default,
|
|
13740
13837
|
{
|
|
13741
13838
|
borderStyle: "round",
|
|
@@ -13746,33 +13843,33 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13746
13843
|
width,
|
|
13747
13844
|
children: [
|
|
13748
13845
|
renderTitle(),
|
|
13749
|
-
/* @__PURE__ */ (0,
|
|
13750
|
-
/* @__PURE__ */ (0,
|
|
13751
|
-
/* @__PURE__ */ (0,
|
|
13752
|
-
/* @__PURE__ */ (0,
|
|
13846
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box_default, { height: 1 }),
|
|
13847
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Interaction Summary"), children: [
|
|
13848
|
+
/* @__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 }) }),
|
|
13849
|
+
/* @__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
13850
|
tools.totalCalls,
|
|
13754
13851
|
" (",
|
|
13755
13852
|
" ",
|
|
13756
|
-
/* @__PURE__ */ (0,
|
|
13853
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
|
|
13757
13854
|
"\u2713 ",
|
|
13758
13855
|
tools.totalSuccess
|
|
13759
13856
|
] }),
|
|
13760
13857
|
" ",
|
|
13761
|
-
/* @__PURE__ */ (0,
|
|
13858
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
|
|
13762
13859
|
"x ",
|
|
13763
13860
|
tools.totalFail
|
|
13764
13861
|
] }),
|
|
13765
13862
|
" )"
|
|
13766
13863
|
] }) }),
|
|
13767
|
-
/* @__PURE__ */ (0,
|
|
13864
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StatRow, { title: t("Success Rate:"), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: successColor, children: [
|
|
13768
13865
|
computed.successRate.toFixed(1),
|
|
13769
13866
|
"%"
|
|
13770
13867
|
] }) }),
|
|
13771
|
-
computed.totalDecisions > 0 && /* @__PURE__ */ (0,
|
|
13868
|
+
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
13869
|
computed.agreementRate.toFixed(1),
|
|
13773
13870
|
"%",
|
|
13774
13871
|
" ",
|
|
13775
|
-
/* @__PURE__ */ (0,
|
|
13872
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13776
13873
|
"(",
|
|
13777
13874
|
computed.totalDecisions,
|
|
13778
13875
|
" ",
|
|
@@ -13780,41 +13877,41 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13780
13877
|
")"
|
|
13781
13878
|
] })
|
|
13782
13879
|
] }) }),
|
|
13783
|
-
files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ (0,
|
|
13784
|
-
/* @__PURE__ */ (0,
|
|
13880
|
+
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: [
|
|
13881
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.success, children: [
|
|
13785
13882
|
"+",
|
|
13786
13883
|
files.totalLinesAdded
|
|
13787
13884
|
] }),
|
|
13788
13885
|
" ",
|
|
13789
|
-
/* @__PURE__ */ (0,
|
|
13886
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.status.error, children: [
|
|
13790
13887
|
"-",
|
|
13791
13888
|
files.totalLinesRemoved
|
|
13792
13889
|
] })
|
|
13793
13890
|
] }) })
|
|
13794
13891
|
] }),
|
|
13795
|
-
/* @__PURE__ */ (0,
|
|
13796
|
-
/* @__PURE__ */ (0,
|
|
13797
|
-
/* @__PURE__ */ (0,
|
|
13798
|
-
/* @__PURE__ */ (0,
|
|
13892
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Section, { title: t("Performance"), children: [
|
|
13893
|
+
/* @__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 }) }),
|
|
13894
|
+
/* @__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) }) }),
|
|
13895
|
+
/* @__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
13896
|
formatDuration(computed.totalApiTime),
|
|
13800
13897
|
" ",
|
|
13801
|
-
/* @__PURE__ */ (0,
|
|
13898
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13802
13899
|
"(",
|
|
13803
13900
|
computed.apiTimePercent.toFixed(1),
|
|
13804
13901
|
"%)"
|
|
13805
13902
|
] })
|
|
13806
13903
|
] }) }),
|
|
13807
|
-
/* @__PURE__ */ (0,
|
|
13904
|
+
/* @__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
13905
|
formatDuration(computed.totalToolTime),
|
|
13809
13906
|
" ",
|
|
13810
|
-
/* @__PURE__ */ (0,
|
|
13907
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
13811
13908
|
"(",
|
|
13812
13909
|
computed.toolTimePercent.toFixed(1),
|
|
13813
13910
|
"%)"
|
|
13814
13911
|
] })
|
|
13815
13912
|
] }) })
|
|
13816
13913
|
] }),
|
|
13817
|
-
Object.keys(models).length > 0 && /* @__PURE__ */ (0,
|
|
13914
|
+
Object.keys(models).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
13818
13915
|
ModelUsageTable,
|
|
13819
13916
|
{
|
|
13820
13917
|
models,
|
|
@@ -13829,7 +13926,7 @@ var StatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13829
13926
|
|
|
13830
13927
|
// packages/cli/src/ui/components/ModelStatsDisplay.tsx
|
|
13831
13928
|
init_esbuild_shims();
|
|
13832
|
-
var
|
|
13929
|
+
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
13833
13930
|
var METRIC_COL_WIDTH = 28;
|
|
13834
13931
|
var MODEL_COL_WIDTH = 24;
|
|
13835
13932
|
var PANEL_HORIZONTAL_CHROME_WIDTH = 6;
|
|
@@ -13839,8 +13936,8 @@ var StatRow2 = /* @__PURE__ */ __name(({
|
|
|
13839
13936
|
modelColWidth,
|
|
13840
13937
|
isSubtle = false,
|
|
13841
13938
|
isSection = false
|
|
13842
|
-
}) => /* @__PURE__ */ (0,
|
|
13843
|
-
/* @__PURE__ */ (0,
|
|
13939
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
|
|
13940
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13844
13941
|
Text,
|
|
13845
13942
|
{
|
|
13846
13943
|
bold: isSection,
|
|
@@ -13848,7 +13945,7 @@ var StatRow2 = /* @__PURE__ */ __name(({
|
|
|
13848
13945
|
children: isSubtle ? ` \u21B3 ${title}` : title
|
|
13849
13946
|
}
|
|
13850
13947
|
) }),
|
|
13851
|
-
values.map((value, index) => /* @__PURE__ */ (0,
|
|
13948
|
+
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
13949
|
] }), "StatRow");
|
|
13853
13950
|
var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
13854
13951
|
width
|
|
@@ -13859,7 +13956,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13859
13956
|
const settings = useSettings();
|
|
13860
13957
|
const modelPricing = settings.merged.modelPricing;
|
|
13861
13958
|
if (entries.length === 0) {
|
|
13862
|
-
return /* @__PURE__ */ (0,
|
|
13959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13863
13960
|
Box_default,
|
|
13864
13961
|
{
|
|
13865
13962
|
borderStyle: "round",
|
|
@@ -13867,7 +13964,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13867
13964
|
paddingY: 1,
|
|
13868
13965
|
paddingX: 2,
|
|
13869
13966
|
width,
|
|
13870
|
-
children: /* @__PURE__ */ (0,
|
|
13967
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.text.primary, children: t("No API calls have been made in this session.") })
|
|
13871
13968
|
}
|
|
13872
13969
|
);
|
|
13873
13970
|
}
|
|
@@ -13888,7 +13985,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13888
13985
|
pricing: modelPricing?.[getModelName(key)]
|
|
13889
13986
|
}) != null
|
|
13890
13987
|
);
|
|
13891
|
-
return /* @__PURE__ */ (0,
|
|
13988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
13892
13989
|
Box_default,
|
|
13893
13990
|
{
|
|
13894
13991
|
borderStyle: "round",
|
|
@@ -13898,13 +13995,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13898
13995
|
paddingX: 2,
|
|
13899
13996
|
width,
|
|
13900
13997
|
children: [
|
|
13901
|
-
/* @__PURE__ */ (0,
|
|
13902
|
-
/* @__PURE__ */ (0,
|
|
13903
|
-
/* @__PURE__ */ (0,
|
|
13904
|
-
/* @__PURE__ */ (0,
|
|
13905
|
-
entries.map(({ key, label }) => /* @__PURE__ */ (0,
|
|
13998
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Model Stats For Nerds") }),
|
|
13999
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
14000
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Box_default, { children: [
|
|
14001
|
+
/* @__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") }) }),
|
|
14002
|
+
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
14003
|
] }),
|
|
13907
|
-
/* @__PURE__ */ (0,
|
|
14004
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13908
14005
|
Box_default,
|
|
13909
14006
|
{
|
|
13910
14007
|
borderStyle: "single",
|
|
@@ -13915,7 +14012,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13915
14012
|
borderColor: theme.border.default
|
|
13916
14013
|
}
|
|
13917
14014
|
),
|
|
13918
|
-
/* @__PURE__ */ (0,
|
|
14015
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13919
14016
|
StatRow2,
|
|
13920
14017
|
{
|
|
13921
14018
|
title: t("API"),
|
|
@@ -13924,7 +14021,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13924
14021
|
isSection: true
|
|
13925
14022
|
}
|
|
13926
14023
|
),
|
|
13927
|
-
/* @__PURE__ */ (0,
|
|
14024
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13928
14025
|
StatRow2,
|
|
13929
14026
|
{
|
|
13930
14027
|
title: t("Requests"),
|
|
@@ -13932,13 +14029,13 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13932
14029
|
modelColWidth
|
|
13933
14030
|
}
|
|
13934
14031
|
),
|
|
13935
|
-
/* @__PURE__ */ (0,
|
|
14032
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13936
14033
|
StatRow2,
|
|
13937
14034
|
{
|
|
13938
14035
|
title: t("Errors"),
|
|
13939
14036
|
values: getModelValues((m) => {
|
|
13940
14037
|
const errorRate = calculateErrorRate(m);
|
|
13941
|
-
return /* @__PURE__ */ (0,
|
|
14038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
13942
14039
|
Text,
|
|
13943
14040
|
{
|
|
13944
14041
|
color: m.api.totalErrors > 0 ? theme.status.error : theme.text.primary,
|
|
@@ -13954,7 +14051,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13954
14051
|
modelColWidth
|
|
13955
14052
|
}
|
|
13956
14053
|
),
|
|
13957
|
-
/* @__PURE__ */ (0,
|
|
14054
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13958
14055
|
StatRow2,
|
|
13959
14056
|
{
|
|
13960
14057
|
title: t("Avg Latency"),
|
|
@@ -13965,8 +14062,8 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13965
14062
|
modelColWidth
|
|
13966
14063
|
}
|
|
13967
14064
|
),
|
|
13968
|
-
/* @__PURE__ */ (0,
|
|
13969
|
-
/* @__PURE__ */ (0,
|
|
14065
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
14066
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13970
14067
|
StatRow2,
|
|
13971
14068
|
{
|
|
13972
14069
|
title: t("Tokens"),
|
|
@@ -13975,15 +14072,15 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13975
14072
|
isSection: true
|
|
13976
14073
|
}
|
|
13977
14074
|
),
|
|
13978
|
-
/* @__PURE__ */ (0,
|
|
14075
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13979
14076
|
StatRow2,
|
|
13980
14077
|
{
|
|
13981
14078
|
title: t("Total"),
|
|
13982
|
-
values: getModelValues((m) => /* @__PURE__ */ (0,
|
|
14079
|
+
values: getModelValues((m) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { color: theme.status.warning, children: m.tokens.total.toLocaleString() })),
|
|
13983
14080
|
modelColWidth
|
|
13984
14081
|
}
|
|
13985
14082
|
),
|
|
13986
|
-
/* @__PURE__ */ (0,
|
|
14083
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13987
14084
|
StatRow2,
|
|
13988
14085
|
{
|
|
13989
14086
|
title: t("Prompt"),
|
|
@@ -13992,14 +14089,14 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
13992
14089
|
modelColWidth
|
|
13993
14090
|
}
|
|
13994
14091
|
),
|
|
13995
|
-
hasCached && /* @__PURE__ */ (0,
|
|
14092
|
+
hasCached && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
13996
14093
|
StatRow2,
|
|
13997
14094
|
{
|
|
13998
14095
|
title: t("Cached"),
|
|
13999
14096
|
isSubtle: true,
|
|
14000
14097
|
values: getModelValues((m) => {
|
|
14001
14098
|
const cacheHitRate = calculateCacheHitRate(m);
|
|
14002
|
-
return /* @__PURE__ */ (0,
|
|
14099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text, { color: theme.status.success, children: [
|
|
14003
14100
|
m.tokens.cached.toLocaleString(),
|
|
14004
14101
|
" (",
|
|
14005
14102
|
cacheHitRate.toFixed(1),
|
|
@@ -14009,7 +14106,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14009
14106
|
modelColWidth
|
|
14010
14107
|
}
|
|
14011
14108
|
),
|
|
14012
|
-
hasThoughts && /* @__PURE__ */ (0,
|
|
14109
|
+
hasThoughts && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14013
14110
|
StatRow2,
|
|
14014
14111
|
{
|
|
14015
14112
|
title: t("Thoughts"),
|
|
@@ -14018,7 +14115,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14018
14115
|
modelColWidth
|
|
14019
14116
|
}
|
|
14020
14117
|
),
|
|
14021
|
-
/* @__PURE__ */ (0,
|
|
14118
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14022
14119
|
StatRow2,
|
|
14023
14120
|
{
|
|
14024
14121
|
title: t("Output"),
|
|
@@ -14027,9 +14124,9 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14027
14124
|
modelColWidth
|
|
14028
14125
|
}
|
|
14029
14126
|
),
|
|
14030
|
-
hasPricing && /* @__PURE__ */ (0,
|
|
14031
|
-
/* @__PURE__ */ (0,
|
|
14032
|
-
/* @__PURE__ */ (0,
|
|
14127
|
+
hasPricing && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
14128
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box_default, { height: 1 }),
|
|
14129
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14033
14130
|
StatRow2,
|
|
14034
14131
|
{
|
|
14035
14132
|
title: t("Cost"),
|
|
@@ -14038,7 +14135,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14038
14135
|
isSection: true
|
|
14039
14136
|
}
|
|
14040
14137
|
),
|
|
14041
|
-
/* @__PURE__ */ (0,
|
|
14138
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
14042
14139
|
StatRow2,
|
|
14043
14140
|
{
|
|
14044
14141
|
title: t("Estimated"),
|
|
@@ -14061,7 +14158,7 @@ var ModelStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14061
14158
|
|
|
14062
14159
|
// packages/cli/src/ui/components/ToolStatsDisplay.tsx
|
|
14063
14160
|
init_esbuild_shims();
|
|
14064
|
-
var
|
|
14161
|
+
var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
|
|
14065
14162
|
var TOOL_NAME_COL_WIDTH = 25;
|
|
14066
14163
|
var CALLS_COL_WIDTH = 8;
|
|
14067
14164
|
var SUCCESS_RATE_COL_WIDTH = 15;
|
|
@@ -14073,14 +14170,14 @@ var StatRow3 = /* @__PURE__ */ __name(({ name, stats }) => {
|
|
|
14073
14170
|
green: TOOL_SUCCESS_RATE_HIGH,
|
|
14074
14171
|
yellow: TOOL_SUCCESS_RATE_MEDIUM
|
|
14075
14172
|
});
|
|
14076
|
-
return /* @__PURE__ */ (0,
|
|
14077
|
-
/* @__PURE__ */ (0,
|
|
14078
|
-
/* @__PURE__ */ (0,
|
|
14079
|
-
/* @__PURE__ */ (0,
|
|
14173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14174
|
+
/* @__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 }) }),
|
|
14175
|
+
/* @__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 }) }),
|
|
14176
|
+
/* @__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
14177
|
successRate.toFixed(1),
|
|
14081
14178
|
"%"
|
|
14082
14179
|
] }) }),
|
|
14083
|
-
/* @__PURE__ */ (0,
|
|
14180
|
+
/* @__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
14181
|
] });
|
|
14085
14182
|
}, "StatRow");
|
|
14086
14183
|
var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
@@ -14092,7 +14189,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14092
14189
|
([, metrics]) => metrics.count > 0
|
|
14093
14190
|
);
|
|
14094
14191
|
if (activeTools.length === 0) {
|
|
14095
|
-
return /* @__PURE__ */ (0,
|
|
14192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14096
14193
|
Box_default,
|
|
14097
14194
|
{
|
|
14098
14195
|
borderStyle: "round",
|
|
@@ -14100,7 +14197,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14100
14197
|
paddingY: 1,
|
|
14101
14198
|
paddingX: 2,
|
|
14102
14199
|
width,
|
|
14103
|
-
children: /* @__PURE__ */ (0,
|
|
14200
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t("No tool calls have been made in this session.") })
|
|
14104
14201
|
}
|
|
14105
14202
|
);
|
|
14106
14203
|
}
|
|
@@ -14119,7 +14216,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14119
14216
|
green: USER_AGREEMENT_RATE_HIGH,
|
|
14120
14217
|
yellow: USER_AGREEMENT_RATE_MEDIUM
|
|
14121
14218
|
});
|
|
14122
|
-
return /* @__PURE__ */ (0,
|
|
14219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
14123
14220
|
Box_default,
|
|
14124
14221
|
{
|
|
14125
14222
|
borderStyle: "round",
|
|
@@ -14129,15 +14226,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14129
14226
|
paddingX: 2,
|
|
14130
14227
|
width,
|
|
14131
14228
|
children: [
|
|
14132
|
-
/* @__PURE__ */ (0,
|
|
14133
|
-
/* @__PURE__ */ (0,
|
|
14134
|
-
/* @__PURE__ */ (0,
|
|
14135
|
-
/* @__PURE__ */ (0,
|
|
14136
|
-
/* @__PURE__ */ (0,
|
|
14137
|
-
/* @__PURE__ */ (0,
|
|
14138
|
-
/* @__PURE__ */ (0,
|
|
14229
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Tool Stats For Nerds") }),
|
|
14230
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
|
|
14231
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14232
|
+
/* @__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") }) }),
|
|
14233
|
+
/* @__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") }) }),
|
|
14234
|
+
/* @__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") }) }),
|
|
14235
|
+
/* @__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
14236
|
] }),
|
|
14140
|
-
/* @__PURE__ */ (0,
|
|
14237
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14141
14238
|
Box_default,
|
|
14142
14239
|
{
|
|
14143
14240
|
borderStyle: "single",
|
|
@@ -14149,50 +14246,50 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14149
14246
|
width: "100%"
|
|
14150
14247
|
}
|
|
14151
14248
|
),
|
|
14152
|
-
activeTools.map(([name, stats2]) => /* @__PURE__ */ (0,
|
|
14153
|
-
/* @__PURE__ */ (0,
|
|
14154
|
-
/* @__PURE__ */ (0,
|
|
14155
|
-
/* @__PURE__ */ (0,
|
|
14156
|
-
/* @__PURE__ */ (0,
|
|
14249
|
+
activeTools.map(([name, stats2]) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(StatRow3, { name, stats: stats2 }, name)),
|
|
14250
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box_default, { height: 1 }),
|
|
14251
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { bold: true, color: theme.text.primary, children: t("User Decision Summary") }),
|
|
14252
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14253
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14157
14254
|
Box_default,
|
|
14158
14255
|
{
|
|
14159
14256
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14160
|
-
children: /* @__PURE__ */ (0,
|
|
14257
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.link, children: t("Total Reviewed Suggestions:") })
|
|
14161
14258
|
}
|
|
14162
14259
|
),
|
|
14163
|
-
/* @__PURE__ */ (0,
|
|
14260
|
+
/* @__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
14261
|
] }),
|
|
14165
|
-
/* @__PURE__ */ (0,
|
|
14166
|
-
/* @__PURE__ */ (0,
|
|
14262
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14263
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14167
14264
|
Box_default,
|
|
14168
14265
|
{
|
|
14169
14266
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14170
|
-
children: /* @__PURE__ */ (0,
|
|
14267
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Accepted:") })
|
|
14171
14268
|
}
|
|
14172
14269
|
),
|
|
14173
|
-
/* @__PURE__ */ (0,
|
|
14270
|
+
/* @__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
14271
|
] }),
|
|
14175
|
-
/* @__PURE__ */ (0,
|
|
14176
|
-
/* @__PURE__ */ (0,
|
|
14272
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14273
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14177
14274
|
Box_default,
|
|
14178
14275
|
{
|
|
14179
14276
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14180
|
-
children: /* @__PURE__ */ (0,
|
|
14277
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Rejected:") })
|
|
14181
14278
|
}
|
|
14182
14279
|
),
|
|
14183
|
-
/* @__PURE__ */ (0,
|
|
14280
|
+
/* @__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
14281
|
] }),
|
|
14185
|
-
/* @__PURE__ */ (0,
|
|
14186
|
-
/* @__PURE__ */ (0,
|
|
14282
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14283
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14187
14284
|
Box_default,
|
|
14188
14285
|
{
|
|
14189
14286
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14190
|
-
children: /* @__PURE__ */ (0,
|
|
14287
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" \xBB Modified:") })
|
|
14191
14288
|
}
|
|
14192
14289
|
),
|
|
14193
|
-
/* @__PURE__ */ (0,
|
|
14290
|
+
/* @__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
14291
|
] }),
|
|
14195
|
-
/* @__PURE__ */ (0,
|
|
14292
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14196
14293
|
Box_default,
|
|
14197
14294
|
{
|
|
14198
14295
|
borderStyle: "single",
|
|
@@ -14204,15 +14301,15 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14204
14301
|
width: "100%"
|
|
14205
14302
|
}
|
|
14206
14303
|
),
|
|
14207
|
-
/* @__PURE__ */ (0,
|
|
14208
|
-
/* @__PURE__ */ (0,
|
|
14304
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box_default, { children: [
|
|
14305
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
14209
14306
|
Box_default,
|
|
14210
14307
|
{
|
|
14211
14308
|
width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
|
|
14212
|
-
children: /* @__PURE__ */ (0,
|
|
14309
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { color: theme.text.primary, children: t(" Overall Agreement Rate:") })
|
|
14213
14310
|
}
|
|
14214
14311
|
),
|
|
14215
|
-
/* @__PURE__ */ (0,
|
|
14312
|
+
/* @__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
14313
|
] })
|
|
14217
14314
|
]
|
|
14218
14315
|
}
|
|
@@ -14221,7 +14318,7 @@ var ToolStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14221
14318
|
|
|
14222
14319
|
// packages/cli/src/ui/components/SkillStatsDisplay.tsx
|
|
14223
14320
|
init_esbuild_shims();
|
|
14224
|
-
var
|
|
14321
|
+
var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
|
|
14225
14322
|
var SKILL_NAME_COL_WIDTH = 30;
|
|
14226
14323
|
var CALLS_COL_WIDTH2 = 8;
|
|
14227
14324
|
var SUCCESS_COL_WIDTH = 8;
|
|
@@ -14233,12 +14330,12 @@ var StatRow4 = /* @__PURE__ */ __name(({ name, stats }) => {
|
|
|
14233
14330
|
green: TOOL_SUCCESS_RATE_HIGH,
|
|
14234
14331
|
yellow: TOOL_SUCCESS_RATE_MEDIUM
|
|
14235
14332
|
});
|
|
14236
|
-
return /* @__PURE__ */ (0,
|
|
14237
|
-
/* @__PURE__ */ (0,
|
|
14238
|
-
/* @__PURE__ */ (0,
|
|
14239
|
-
/* @__PURE__ */ (0,
|
|
14240
|
-
/* @__PURE__ */ (0,
|
|
14241
|
-
/* @__PURE__ */ (0,
|
|
14333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
|
|
14334
|
+
/* @__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 }) }),
|
|
14335
|
+
/* @__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 }) }),
|
|
14336
|
+
/* @__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 }) }),
|
|
14337
|
+
/* @__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 }) }),
|
|
14338
|
+
/* @__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
14339
|
successRate.toFixed(1),
|
|
14243
14340
|
"%"
|
|
14244
14341
|
] }) })
|
|
@@ -14259,7 +14356,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14259
14356
|
return countDelta !== 0 ? countDelta : leftName.localeCompare(rightName);
|
|
14260
14357
|
});
|
|
14261
14358
|
if (activeSkills.length === 0) {
|
|
14262
|
-
return /* @__PURE__ */ (0,
|
|
14359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
14263
14360
|
Box_default,
|
|
14264
14361
|
{
|
|
14265
14362
|
borderStyle: "round",
|
|
@@ -14267,11 +14364,11 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14267
14364
|
paddingY: 1,
|
|
14268
14365
|
paddingX: 2,
|
|
14269
14366
|
width,
|
|
14270
|
-
children: /* @__PURE__ */ (0,
|
|
14367
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { color: theme.text.primary, children: t("No skill calls have been made in this session.") })
|
|
14271
14368
|
}
|
|
14272
14369
|
);
|
|
14273
14370
|
}
|
|
14274
|
-
return /* @__PURE__ */ (0,
|
|
14371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
14275
14372
|
Box_default,
|
|
14276
14373
|
{
|
|
14277
14374
|
borderStyle: "round",
|
|
@@ -14281,16 +14378,16 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14281
14378
|
paddingX: 2,
|
|
14282
14379
|
width,
|
|
14283
14380
|
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,
|
|
14381
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Skill Stats For Nerds") }),
|
|
14382
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box_default, { height: 1 }),
|
|
14383
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box_default, { children: [
|
|
14384
|
+
/* @__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") }) }),
|
|
14385
|
+
/* @__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") }) }),
|
|
14386
|
+
/* @__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") }) }),
|
|
14387
|
+
/* @__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") }) }),
|
|
14388
|
+
/* @__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
14389
|
] }),
|
|
14293
|
-
/* @__PURE__ */ (0,
|
|
14390
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
14294
14391
|
Box_default,
|
|
14295
14392
|
{
|
|
14296
14393
|
borderStyle: "single",
|
|
@@ -14302,7 +14399,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14302
14399
|
width: "100%"
|
|
14303
14400
|
}
|
|
14304
14401
|
),
|
|
14305
|
-
activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0,
|
|
14402
|
+
activeSkills.map(([name, skillStats]) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(StatRow4, { name, stats: skillStats }, name))
|
|
14306
14403
|
]
|
|
14307
14404
|
}
|
|
14308
14405
|
);
|
|
@@ -14310,7 +14407,7 @@ var SkillStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
14310
14407
|
|
|
14311
14408
|
// packages/cli/src/ui/components/SessionSummaryDisplay.tsx
|
|
14312
14409
|
init_esbuild_shims();
|
|
14313
|
-
var
|
|
14410
|
+
var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
|
|
14314
14411
|
var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
14315
14412
|
duration,
|
|
14316
14413
|
width
|
|
@@ -14319,8 +14416,8 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14319
14416
|
const { stats } = useSessionStats();
|
|
14320
14417
|
const hasMessages = stats.promptCount > 0;
|
|
14321
14418
|
const canResume = !!config.getChatRecordingService();
|
|
14322
|
-
return /* @__PURE__ */ (0,
|
|
14323
|
-
/* @__PURE__ */ (0,
|
|
14419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
14420
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
14324
14421
|
StatsDisplay,
|
|
14325
14422
|
{
|
|
14326
14423
|
title: t("Agent powering down. Goodbye!"),
|
|
@@ -14328,10 +14425,10 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14328
14425
|
width
|
|
14329
14426
|
}
|
|
14330
14427
|
),
|
|
14331
|
-
hasMessages && canResume && /* @__PURE__ */ (0,
|
|
14428
|
+
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
14429
|
t("To continue this session, run"),
|
|
14333
14430
|
" ",
|
|
14334
|
-
/* @__PURE__ */ (0,
|
|
14431
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Text, { color: theme.text.accent, children: [
|
|
14335
14432
|
"qwen --resume ",
|
|
14336
14433
|
stats.sessionId
|
|
14337
14434
|
] })
|
|
@@ -14342,7 +14439,7 @@ var SessionSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
14342
14439
|
// packages/cli/src/ui/components/Help.tsx
|
|
14343
14440
|
init_esbuild_shims();
|
|
14344
14441
|
var import_react33 = __toESM(require_react(), 1);
|
|
14345
|
-
var
|
|
14442
|
+
var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
|
|
14346
14443
|
var DEFAULT_WIDTH = 100;
|
|
14347
14444
|
var KEY_COL_WIDTH = 20;
|
|
14348
14445
|
var COMMAND_LIST_VISIBLE_LINES = 18;
|
|
@@ -14382,13 +14479,13 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14382
14479
|
},
|
|
14383
14480
|
{ isActive: isInteractive }
|
|
14384
14481
|
);
|
|
14385
|
-
return /* @__PURE__ */ (0,
|
|
14482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: safeWidth, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14386
14483
|
Box_default,
|
|
14387
14484
|
{
|
|
14388
14485
|
borderColor: theme.border.default,
|
|
14389
14486
|
borderStyle: "single",
|
|
14390
14487
|
width: safeWidth,
|
|
14391
|
-
children: /* @__PURE__ */ (0,
|
|
14488
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
14392
14489
|
Box_default,
|
|
14393
14490
|
{
|
|
14394
14491
|
flexDirection: "column",
|
|
@@ -14396,10 +14493,10 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14396
14493
|
paddingY: 1,
|
|
14397
14494
|
width: safeWidth - 2,
|
|
14398
14495
|
children: [
|
|
14399
|
-
/* @__PURE__ */ (0,
|
|
14400
|
-
/* @__PURE__ */ (0,
|
|
14401
|
-
activeTab === "general" && /* @__PURE__ */ (0,
|
|
14402
|
-
activeTab === "commands" && /* @__PURE__ */ (0,
|
|
14496
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(HelpTabs, { activeTab }),
|
|
14497
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { marginTop: 1, children: [
|
|
14498
|
+
activeTab === "general" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GeneralHelp, { width: bodyWidth }),
|
|
14499
|
+
activeTab === "commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14403
14500
|
CommandsHelp,
|
|
14404
14501
|
{
|
|
14405
14502
|
commands,
|
|
@@ -14408,7 +14505,7 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14408
14505
|
isInteractive
|
|
14409
14506
|
}
|
|
14410
14507
|
),
|
|
14411
|
-
activeTab === "custom-commands" && /* @__PURE__ */ (0,
|
|
14508
|
+
activeTab === "custom-commands" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14412
14509
|
CommandsHelp,
|
|
14413
14510
|
{
|
|
14414
14511
|
commands,
|
|
@@ -14418,24 +14515,24 @@ var Help = /* @__PURE__ */ __name(({
|
|
|
14418
14515
|
}
|
|
14419
14516
|
)
|
|
14420
14517
|
] }),
|
|
14421
|
-
/* @__PURE__ */ (0,
|
|
14518
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14422
14519
|
t("For more help:"),
|
|
14423
14520
|
" ",
|
|
14424
|
-
/* @__PURE__ */ (0,
|
|
14521
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { underline: true, children: DOCS_URL })
|
|
14425
14522
|
] }) }),
|
|
14426
|
-
/* @__PURE__ */ (0,
|
|
14523
|
+
/* @__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
14524
|
]
|
|
14428
14525
|
}
|
|
14429
14526
|
)
|
|
14430
14527
|
}
|
|
14431
14528
|
) });
|
|
14432
14529
|
}, "Help");
|
|
14433
|
-
var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0,
|
|
14434
|
-
/* @__PURE__ */ (0,
|
|
14435
|
-
/* @__PURE__ */ (0,
|
|
14530
|
+
var HelpTabs = /* @__PURE__ */ __name(({ activeTab }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
14531
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.accent, children: "Qwen Code" }),
|
|
14532
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
14436
14533
|
TAB_DEFS.map(({ tab, labelKey }) => {
|
|
14437
14534
|
const active = tab === activeTab;
|
|
14438
|
-
return /* @__PURE__ */ (0,
|
|
14535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14439
14536
|
Text,
|
|
14440
14537
|
{
|
|
14441
14538
|
color: active ? theme.background.primary : theme.text.primary,
|
|
@@ -14468,13 +14565,13 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14468
14565
|
const left = shortcuts.slice(0, Math.ceil(shortcuts.length / 2));
|
|
14469
14566
|
const right = shortcuts.slice(Math.ceil(shortcuts.length / 2));
|
|
14470
14567
|
const colWidth = Math.floor((width - 2) / 2);
|
|
14471
|
-
return /* @__PURE__ */ (0,
|
|
14472
|
-
/* @__PURE__ */ (0,
|
|
14568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
14569
|
+
/* @__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
14570
|
"Qwen Code understands your codebase, makes edits with your permission, and executes commands right from your terminal."
|
|
14474
14571
|
) }) }),
|
|
14475
|
-
/* @__PURE__ */ (0,
|
|
14476
|
-
/* @__PURE__ */ (0,
|
|
14477
|
-
/* @__PURE__ */ (0,
|
|
14572
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Shortcuts") }),
|
|
14573
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", gap: 2, children: [
|
|
14574
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: left.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14478
14575
|
ShortcutRow,
|
|
14479
14576
|
{
|
|
14480
14577
|
shortcutKey: key,
|
|
@@ -14483,7 +14580,7 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14483
14580
|
},
|
|
14484
14581
|
key
|
|
14485
14582
|
)) }),
|
|
14486
|
-
/* @__PURE__ */ (0,
|
|
14583
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", width: colWidth, children: right.map(([key, desc]) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
14487
14584
|
ShortcutRow,
|
|
14488
14585
|
{
|
|
14489
14586
|
shortcutKey: key,
|
|
@@ -14495,9 +14592,9 @@ var GeneralHelp = /* @__PURE__ */ __name(({ width }) => {
|
|
|
14495
14592
|
] })
|
|
14496
14593
|
] });
|
|
14497
14594
|
}, "GeneralHelp");
|
|
14498
|
-
var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0,
|
|
14499
|
-
/* @__PURE__ */ (0,
|
|
14500
|
-
/* @__PURE__ */ (0,
|
|
14595
|
+
var ShortcutRow = /* @__PURE__ */ __name(({ shortcutKey, desc, width }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", width, children: [
|
|
14596
|
+
/* @__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 }) }),
|
|
14597
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.primary, wrap: "truncate", children: truncateText2(desc, width - KEY_COL_WIDTH - 1) })
|
|
14501
14598
|
] }), "ShortcutRow");
|
|
14502
14599
|
var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInteractive }) => {
|
|
14503
14600
|
const groups = (0, import_react33.useMemo)(
|
|
@@ -14535,17 +14632,17 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14535
14632
|
{ isActive: isInteractive }
|
|
14536
14633
|
);
|
|
14537
14634
|
if (groups.length === 0) {
|
|
14538
|
-
return /* @__PURE__ */ (0,
|
|
14635
|
+
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
14636
|
}
|
|
14540
14637
|
const visibleLines = lines.slice(
|
|
14541
14638
|
scrollOffset,
|
|
14542
14639
|
scrollOffset + COMMAND_LIST_VISIBLE_LINES
|
|
14543
14640
|
);
|
|
14544
|
-
return /* @__PURE__ */ (0,
|
|
14545
|
-
/* @__PURE__ */ (0,
|
|
14546
|
-
/* @__PURE__ */ (0,
|
|
14641
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
14642
|
+
/* @__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:") }) }),
|
|
14643
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { flexDirection: "column", height: COMMAND_LIST_VISIBLE_LINES, children: visibleLines.map((line, index) => {
|
|
14547
14644
|
const stableKey = line.type === "blank" ? `blank:${index}` : `${line.type}:${line.text}:${index}`;
|
|
14548
|
-
return /* @__PURE__ */ (0,
|
|
14645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CommandLine, { line }, stableKey);
|
|
14549
14646
|
}) }),
|
|
14550
14647
|
maxScroll > 0 && (() => {
|
|
14551
14648
|
const totalCommands = lines.filter(
|
|
@@ -14557,7 +14654,7 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14557
14654
|
const firstCmd = visibleSignatures.length > 0 ? visibleSignatures[0].commandIndex + 1 : 0;
|
|
14558
14655
|
const lastCmd = visibleSignatures.length > 0 ? visibleSignatures[visibleSignatures.length - 1].commandIndex + 1 : 0;
|
|
14559
14656
|
const range = firstCmd === lastCmd ? `${firstCmd}` : `${firstCmd}-${lastCmd}`;
|
|
14560
|
-
return /* @__PURE__ */ (0,
|
|
14657
|
+
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
14658
|
t("Use \u2191/\u2193 to scroll"),
|
|
14562
14659
|
" ",
|
|
14563
14660
|
`(${range}/${totalCommands})`
|
|
@@ -14568,28 +14665,28 @@ var CommandsHelp = /* @__PURE__ */ __name(({ commands, width, customOnly, isInte
|
|
|
14568
14665
|
var CommandLine = /* @__PURE__ */ __name(({ line }) => {
|
|
14569
14666
|
switch (line.type) {
|
|
14570
14667
|
case "group":
|
|
14571
|
-
return /* @__PURE__ */ (0,
|
|
14668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
|
|
14572
14669
|
line.text,
|
|
14573
14670
|
" ",
|
|
14574
|
-
/* @__PURE__ */ (0,
|
|
14671
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { color: theme.text.secondary, children: `(${line.count})` })
|
|
14575
14672
|
] });
|
|
14576
14673
|
case "signature":
|
|
14577
|
-
return /* @__PURE__ */ (0,
|
|
14578
|
-
/* @__PURE__ */ (0,
|
|
14674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
14675
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.accent, children: [
|
|
14579
14676
|
" ",
|
|
14580
14677
|
line.text
|
|
14581
14678
|
] }),
|
|
14582
|
-
line.meta && /* @__PURE__ */ (0,
|
|
14679
|
+
line.meta && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
14583
14680
|
" ",
|
|
14584
14681
|
line.meta
|
|
14585
14682
|
] })
|
|
14586
14683
|
] });
|
|
14587
14684
|
case "description":
|
|
14588
|
-
return /* @__PURE__ */ (0,
|
|
14685
|
+
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
14686
|
case "subcommands":
|
|
14590
|
-
return /* @__PURE__ */ (0,
|
|
14687
|
+
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
14688
|
case "blank":
|
|
14592
|
-
return /* @__PURE__ */ (0,
|
|
14689
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text, { children: " " });
|
|
14593
14690
|
default:
|
|
14594
14691
|
return null;
|
|
14595
14692
|
}
|
|
@@ -14739,6 +14836,11 @@ function useHistory() {
|
|
|
14739
14836
|
`[ADD_ITEM] type=${newItem.type}, textSize=${textSize}, historyLength=${newHistory.length}`
|
|
14740
14837
|
);
|
|
14741
14838
|
}
|
|
14839
|
+
if (newItem.type === "tool_group" && newItem.tools.some(
|
|
14840
|
+
(tool) => isFindingsListDisplay(tool.resultDisplay)
|
|
14841
|
+
)) {
|
|
14842
|
+
return coalesceFindingsHistoryItems(newHistory);
|
|
14843
|
+
}
|
|
14742
14844
|
return newHistory;
|
|
14743
14845
|
});
|
|
14744
14846
|
return id;
|
|
@@ -14858,6 +14960,7 @@ ${UI_COMPACT_CLEARED_IMAGE_MESSAGE}` : UI_COMPACT_CLEARED_IMAGE_MESSAGE,
|
|
|
14858
14960
|
...t2,
|
|
14859
14961
|
resultDisplay: UI_COMPACT_CLEARED_MESSAGE,
|
|
14860
14962
|
detailedDisplay: void 0,
|
|
14963
|
+
supersededFindingsDisplay: void 0,
|
|
14861
14964
|
images: void 0,
|
|
14862
14965
|
omittedImageCount: void 0
|
|
14863
14966
|
};
|
|
@@ -14905,7 +15008,7 @@ var import_react37 = __toESM(require_react(), 1);
|
|
|
14905
15008
|
|
|
14906
15009
|
// packages/cli/src/ui/IdeIntegrationNudge.tsx
|
|
14907
15010
|
init_esbuild_shims();
|
|
14908
|
-
var
|
|
15011
|
+
var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
|
|
14909
15012
|
function IdeIntegrationNudge({
|
|
14910
15013
|
ide,
|
|
14911
15014
|
onComplete
|
|
@@ -14951,7 +15054,7 @@ function IdeIntegrationNudge({
|
|
|
14951
15054
|
}
|
|
14952
15055
|
];
|
|
14953
15056
|
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,
|
|
15057
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
14955
15058
|
Box_default,
|
|
14956
15059
|
{
|
|
14957
15060
|
flexDirection: "column",
|
|
@@ -14961,14 +15064,14 @@ function IdeIntegrationNudge({
|
|
|
14961
15064
|
width: "100%",
|
|
14962
15065
|
marginLeft: 1,
|
|
14963
15066
|
children: [
|
|
14964
|
-
/* @__PURE__ */ (0,
|
|
14965
|
-
/* @__PURE__ */ (0,
|
|
14966
|
-
/* @__PURE__ */ (0,
|
|
15067
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
|
|
15068
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Text, { children: [
|
|
15069
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.status.warning, children: "> " }),
|
|
14967
15070
|
`Do you want to connect ${ideName ?? "your editor"} to Qwen Code?`
|
|
14968
15071
|
] }),
|
|
14969
|
-
/* @__PURE__ */ (0,
|
|
15072
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Text, { color: theme.text.secondary, children: installText })
|
|
14970
15073
|
] }),
|
|
14971
|
-
/* @__PURE__ */ (0,
|
|
15074
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
|
|
14972
15075
|
]
|
|
14973
15076
|
}
|
|
14974
15077
|
);
|
|
@@ -14977,7 +15080,7 @@ __name(IdeIntegrationNudge, "IdeIntegrationNudge");
|
|
|
14977
15080
|
|
|
14978
15081
|
// packages/cli/src/ui/CommandFormatMigrationNudge.tsx
|
|
14979
15082
|
init_esbuild_shims();
|
|
14980
|
-
var
|
|
15083
|
+
var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
|
|
14981
15084
|
function CommandFormatMigrationNudge({
|
|
14982
15085
|
tomlFiles,
|
|
14983
15086
|
onComplete
|
|
@@ -15011,7 +15114,7 @@ function CommandFormatMigrationNudge({
|
|
|
15011
15114
|
const count = tomlFiles.length;
|
|
15012
15115
|
const fileList = count <= 3 ? tomlFiles.map((f) => ` \u2022 ${f}`).join("\n") : ` \u2022 ${tomlFiles.slice(0, 2).join("\n \u2022 ")}
|
|
15013
15116
|
\u2022 ${t("... and {{count}} more", { count: String(count - 2) })}`;
|
|
15014
|
-
return /* @__PURE__ */ (0,
|
|
15117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
15015
15118
|
Box_default,
|
|
15016
15119
|
{
|
|
15017
15120
|
flexDirection: "column",
|
|
@@ -15021,20 +15124,20 @@ function CommandFormatMigrationNudge({
|
|
|
15021
15124
|
width: "100%",
|
|
15022
15125
|
marginLeft: 1,
|
|
15023
15126
|
children: [
|
|
15024
|
-
/* @__PURE__ */ (0,
|
|
15025
|
-
/* @__PURE__ */ (0,
|
|
15026
|
-
/* @__PURE__ */ (0,
|
|
15027
|
-
/* @__PURE__ */ (0,
|
|
15127
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Box_default, { marginBottom: 1, flexDirection: "column", children: [
|
|
15128
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Text, { children: [
|
|
15129
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.status.warning, children: "\u26A0 " }),
|
|
15130
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { bold: true, children: t("Command Format Migration") })
|
|
15028
15131
|
] }),
|
|
15029
|
-
/* @__PURE__ */ (0,
|
|
15030
|
-
/* @__PURE__ */ (0,
|
|
15031
|
-
/* @__PURE__ */ (0,
|
|
15032
|
-
/* @__PURE__ */ (0,
|
|
15132
|
+
/* @__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) }) }),
|
|
15133
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: fileList }),
|
|
15134
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { children: "" }),
|
|
15135
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t(
|
|
15033
15136
|
"The TOML format is deprecated. Would you like to migrate them to Markdown format?"
|
|
15034
15137
|
) }),
|
|
15035
|
-
/* @__PURE__ */ (0,
|
|
15138
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Text, { color: theme.text.secondary, children: t("(Backups will be created and original files will be preserved)") })
|
|
15036
15139
|
] }),
|
|
15037
|
-
/* @__PURE__ */ (0,
|
|
15140
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
|
|
15038
15141
|
]
|
|
15039
15142
|
}
|
|
15040
15143
|
);
|
|
@@ -15046,7 +15149,7 @@ init_esbuild_shims();
|
|
|
15046
15149
|
var import_react35 = __toESM(require_react(), 1);
|
|
15047
15150
|
import * as process3 from "node:process";
|
|
15048
15151
|
import * as path3 from "node:path";
|
|
15049
|
-
var
|
|
15152
|
+
var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
|
|
15050
15153
|
var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
15051
15154
|
onSelect,
|
|
15052
15155
|
isRestarting
|
|
@@ -15088,8 +15191,8 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15088
15191
|
key: "Don't trust (esc)"
|
|
15089
15192
|
}
|
|
15090
15193
|
];
|
|
15091
|
-
return /* @__PURE__ */ (0,
|
|
15092
|
-
/* @__PURE__ */ (0,
|
|
15194
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15195
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
15093
15196
|
Box_default,
|
|
15094
15197
|
{
|
|
15095
15198
|
flexDirection: "column",
|
|
@@ -15099,11 +15202,11 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15099
15202
|
width: "100%",
|
|
15100
15203
|
marginLeft: 1,
|
|
15101
15204
|
children: [
|
|
15102
|
-
/* @__PURE__ */ (0,
|
|
15103
|
-
/* @__PURE__ */ (0,
|
|
15104
|
-
/* @__PURE__ */ (0,
|
|
15205
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15206
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Text, { bold: true, color: theme.text.primary, children: "Do you trust this folder?" }),
|
|
15207
|
+
/* @__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
15208
|
] }),
|
|
15106
|
-
/* @__PURE__ */ (0,
|
|
15209
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
15107
15210
|
RadioButtonSelect,
|
|
15108
15211
|
{
|
|
15109
15212
|
items: options,
|
|
@@ -15114,13 +15217,13 @@ var FolderTrustDialog = /* @__PURE__ */ __name(({
|
|
|
15114
15217
|
]
|
|
15115
15218
|
}
|
|
15116
15219
|
),
|
|
15117
|
-
isRestarting && /* @__PURE__ */ (0,
|
|
15220
|
+
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
15221
|
] });
|
|
15119
15222
|
}, "FolderTrustDialog");
|
|
15120
15223
|
|
|
15121
15224
|
// packages/cli/src/ui/components/mcp/MCPServerApprovalDialog.tsx
|
|
15122
15225
|
init_esbuild_shims();
|
|
15123
|
-
var
|
|
15226
|
+
var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
|
|
15124
15227
|
var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, source, pendingServers, remaining, onSelect }) => {
|
|
15125
15228
|
useKeypress(
|
|
15126
15229
|
(key) => {
|
|
@@ -15147,7 +15250,7 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
|
|
|
15147
15250
|
key: "reject"
|
|
15148
15251
|
}
|
|
15149
15252
|
];
|
|
15150
|
-
return /* @__PURE__ */ (0,
|
|
15253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
15151
15254
|
Box_default,
|
|
15152
15255
|
{
|
|
15153
15256
|
flexDirection: "column",
|
|
@@ -15157,21 +15260,21 @@ var MCPServerApprovalDialog = /* @__PURE__ */ __name(({ serverName, summary, sou
|
|
|
15157
15260
|
width: "100%",
|
|
15158
15261
|
marginLeft: 1,
|
|
15159
15262
|
children: [
|
|
15160
|
-
/* @__PURE__ */ (0,
|
|
15161
|
-
/* @__PURE__ */ (0,
|
|
15162
|
-
/* @__PURE__ */ (0,
|
|
15263
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15264
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, color: theme.text.primary, children: `Untrusted MCP server in ${source}` }),
|
|
15265
|
+
/* @__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
15266
|
] }),
|
|
15164
|
-
/* @__PURE__ */ (0,
|
|
15165
|
-
/* @__PURE__ */ (0,
|
|
15166
|
-
/* @__PURE__ */ (0,
|
|
15267
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15268
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15269
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { bold: true, children: serverName }),
|
|
15167
15270
|
` ${summary}`
|
|
15168
15271
|
] }),
|
|
15169
|
-
remaining > 0 && /* @__PURE__ */ (0,
|
|
15170
|
-
/* @__PURE__ */ (0,
|
|
15171
|
-
pendingServers.map((server) => /* @__PURE__ */ (0,
|
|
15272
|
+
remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
15273
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: "Approve all will trust these servers:" }),
|
|
15274
|
+
pendingServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Text, { color: theme.text.secondary, children: ` ${server.name} ${server.summary}` }, server.name))
|
|
15172
15275
|
] })
|
|
15173
15276
|
] }),
|
|
15174
|
-
/* @__PURE__ */ (0,
|
|
15277
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RadioButtonSelect, { items: options, onSelect, isFocused: true })
|
|
15175
15278
|
]
|
|
15176
15279
|
}
|
|
15177
15280
|
) });
|
|
@@ -15594,17 +15697,17 @@ function extensionUpdatesReducer(state, action) {
|
|
|
15594
15697
|
__name(extensionUpdatesReducer, "extensionUpdatesReducer");
|
|
15595
15698
|
|
|
15596
15699
|
// packages/cli/src/ui/components/views/ExtensionsList.tsx
|
|
15597
|
-
var
|
|
15700
|
+
var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
|
|
15598
15701
|
var debugLogger8 = createDebugLogger("EXTENSIONS_LIST");
|
|
15599
15702
|
var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
15600
15703
|
const { extensionsUpdateState, commandContext } = useUIState();
|
|
15601
15704
|
const extensions = commandContext.services.config?.getExtensions() || [];
|
|
15602
15705
|
if (extensions.length === 0) {
|
|
15603
|
-
return /* @__PURE__ */ (0,
|
|
15706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "No extensions installed." });
|
|
15604
15707
|
}
|
|
15605
|
-
return /* @__PURE__ */ (0,
|
|
15606
|
-
/* @__PURE__ */ (0,
|
|
15607
|
-
/* @__PURE__ */ (0,
|
|
15708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: [
|
|
15709
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "Installed extensions:" }),
|
|
15710
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: extensions.map((ext) => {
|
|
15608
15711
|
const state = extensionsUpdateState.get(ext.name);
|
|
15609
15712
|
const isActive = ext.isActive;
|
|
15610
15713
|
const activeString = isActive ? "active" : "disabled";
|
|
@@ -15633,15 +15736,15 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
15633
15736
|
debugLogger8.error(`Unhandled ExtensionUpdateState ${state}`);
|
|
15634
15737
|
break;
|
|
15635
15738
|
}
|
|
15636
|
-
return /* @__PURE__ */ (0,
|
|
15637
|
-
/* @__PURE__ */ (0,
|
|
15638
|
-
/* @__PURE__ */ (0,
|
|
15639
|
-
/* @__PURE__ */ (0,
|
|
15640
|
-
/* @__PURE__ */ (0,
|
|
15739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15740
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
|
|
15741
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: "cyan", children: `${getExtensionDisplayName(ext, getCurrentLanguage())} (v${ext.version})` }),
|
|
15742
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: activeColor, children: ` - ${activeString}` }),
|
|
15743
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { color: stateColor, children: ` (${stateText})` })
|
|
15641
15744
|
] }),
|
|
15642
|
-
ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0,
|
|
15643
|
-
/* @__PURE__ */ (0,
|
|
15644
|
-
ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0,
|
|
15745
|
+
ext.resolvedSettings && ext.resolvedSettings.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 2, children: [
|
|
15746
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Text, { children: "settings:" }),
|
|
15747
|
+
ext.resolvedSettings.map((setting) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Text, { children: [
|
|
15645
15748
|
"- ",
|
|
15646
15749
|
setting.name,
|
|
15647
15750
|
": ",
|
|
@@ -15655,33 +15758,33 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
15655
15758
|
|
|
15656
15759
|
// packages/cli/src/ui/components/views/SkillsList.tsx
|
|
15657
15760
|
init_esbuild_shims();
|
|
15658
|
-
var
|
|
15761
|
+
var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
|
|
15659
15762
|
var NAME_COLUMN = 24;
|
|
15660
15763
|
function truncate(text, max) {
|
|
15661
15764
|
if (text.length <= max) return text;
|
|
15662
15765
|
return `${text.slice(0, Math.max(0, max - 1))}\u2026`;
|
|
15663
15766
|
}
|
|
15664
15767
|
__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,
|
|
15768
|
+
var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15769
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available skills:") }),
|
|
15770
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Box_default, { height: 1 }),
|
|
15771
|
+
skills.length > 0 ? skills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
15772
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15670
15773
|
" ",
|
|
15671
15774
|
"- "
|
|
15672
15775
|
] }),
|
|
15673
|
-
/* @__PURE__ */ (0,
|
|
15674
|
-
skill.description && /* @__PURE__ */ (0,
|
|
15776
|
+
/* @__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 }),
|
|
15777
|
+
skill.description && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
15675
15778
|
" ",
|
|
15676
15779
|
truncate(skill.description, 80)
|
|
15677
15780
|
] }),
|
|
15678
|
-
skill.level && /* @__PURE__ */ (0,
|
|
15781
|
+
skill.level && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
15679
15782
|
" ",
|
|
15680
15783
|
"(",
|
|
15681
15784
|
levelLabel(skill.level),
|
|
15682
15785
|
")"
|
|
15683
15786
|
] })
|
|
15684
|
-
] }, skill.name)) : /* @__PURE__ */ (0,
|
|
15787
|
+
] }, skill.name)) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15685
15788
|
" ",
|
|
15686
15789
|
t("No skills available")
|
|
15687
15790
|
] })
|
|
@@ -15689,25 +15792,25 @@ var SkillsList = /* @__PURE__ */ __name(({ skills }) => /* @__PURE__ */ (0, impo
|
|
|
15689
15792
|
|
|
15690
15793
|
// packages/cli/src/ui/components/views/ToolsList.tsx
|
|
15691
15794
|
init_esbuild_shims();
|
|
15692
|
-
var
|
|
15795
|
+
var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
|
|
15693
15796
|
var ToolsList = /* @__PURE__ */ __name(({
|
|
15694
15797
|
tools,
|
|
15695
15798
|
showDescriptions,
|
|
15696
15799
|
contentWidth
|
|
15697
|
-
}) => /* @__PURE__ */ (0,
|
|
15698
|
-
/* @__PURE__ */ (0,
|
|
15699
|
-
/* @__PURE__ */ (0,
|
|
15700
|
-
tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0,
|
|
15701
|
-
/* @__PURE__ */ (0,
|
|
15800
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15801
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Available Qwen Code CLI tools:") }),
|
|
15802
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Box_default, { height: 1 }),
|
|
15803
|
+
tools.length > 0 ? tools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
15804
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15702
15805
|
" ",
|
|
15703
15806
|
"- "
|
|
15704
15807
|
] }),
|
|
15705
|
-
/* @__PURE__ */ (0,
|
|
15706
|
-
/* @__PURE__ */ (0,
|
|
15808
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15809
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { bold: true, color: theme.text.accent, children: [
|
|
15707
15810
|
tool.displayName,
|
|
15708
15811
|
showDescriptions ? ` (${tool.name})` : ""
|
|
15709
15812
|
] }),
|
|
15710
|
-
showDescriptions && tool.description && /* @__PURE__ */ (0,
|
|
15813
|
+
showDescriptions && tool.description && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
15711
15814
|
MarkdownDisplay,
|
|
15712
15815
|
{
|
|
15713
15816
|
contentWidth,
|
|
@@ -15716,7 +15819,7 @@ var ToolsList = /* @__PURE__ */ __name(({
|
|
|
15716
15819
|
}
|
|
15717
15820
|
)
|
|
15718
15821
|
] })
|
|
15719
|
-
] }, tool.name)) : /* @__PURE__ */ (0,
|
|
15822
|
+
] }, tool.name)) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(Text, { color: theme.text.primary, children: [
|
|
15720
15823
|
" ",
|
|
15721
15824
|
t("No tools available")
|
|
15722
15825
|
] })
|
|
@@ -15724,7 +15827,7 @@ var ToolsList = /* @__PURE__ */ __name(({
|
|
|
15724
15827
|
|
|
15725
15828
|
// packages/cli/src/ui/components/views/McpStatus.tsx
|
|
15726
15829
|
init_esbuild_shims();
|
|
15727
|
-
var
|
|
15830
|
+
var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
|
|
15728
15831
|
var McpStatus = /* @__PURE__ */ __name(({
|
|
15729
15832
|
servers,
|
|
15730
15833
|
tools,
|
|
@@ -15740,19 +15843,19 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15740
15843
|
}) => {
|
|
15741
15844
|
const serverNames = Object.keys(servers);
|
|
15742
15845
|
if (serverNames.length === 0 && blockedServers.length === 0) {
|
|
15743
|
-
return /* @__PURE__ */ (0,
|
|
15846
|
+
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
15847
|
}
|
|
15745
|
-
return /* @__PURE__ */ (0,
|
|
15746
|
-
discoveryInProgress && /* @__PURE__ */ (0,
|
|
15747
|
-
/* @__PURE__ */ (0,
|
|
15848
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15849
|
+
discoveryInProgress && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15850
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.warning, children: t("\u25CC MCP servers are starting up ({{count}} initializing)...", {
|
|
15748
15851
|
count: String(connectingServers.length)
|
|
15749
15852
|
}) }),
|
|
15750
|
-
/* @__PURE__ */ (0,
|
|
15853
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t(
|
|
15751
15854
|
"Note: First startup may take longer. Tool availability will update automatically."
|
|
15752
15855
|
) })
|
|
15753
15856
|
] }),
|
|
15754
|
-
/* @__PURE__ */ (0,
|
|
15755
|
-
/* @__PURE__ */ (0,
|
|
15857
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: t("Configured MCP servers:") }),
|
|
15858
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Box_default, { height: 1 }),
|
|
15756
15859
|
serverNames.map((serverName) => {
|
|
15757
15860
|
const server = servers[serverName];
|
|
15758
15861
|
const serverTools = tools.filter(
|
|
@@ -15807,140 +15910,140 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15807
15910
|
const serverAuthStatus = authStatus[serverName];
|
|
15808
15911
|
let authStatusNode = null;
|
|
15809
15912
|
if (serverAuthStatus === "authenticated") {
|
|
15810
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15913
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15811
15914
|
" (",
|
|
15812
15915
|
t("OAuth"),
|
|
15813
15916
|
")"
|
|
15814
15917
|
] });
|
|
15815
15918
|
} else if (serverAuthStatus === "expired") {
|
|
15816
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15919
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.error, children: [
|
|
15817
15920
|
" (",
|
|
15818
15921
|
t("OAuth expired"),
|
|
15819
15922
|
")"
|
|
15820
15923
|
] });
|
|
15821
15924
|
} else if (serverAuthStatus === "unauthenticated") {
|
|
15822
|
-
authStatusNode = /* @__PURE__ */ (0,
|
|
15925
|
+
authStatusNode = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: theme.status.warning, children: [
|
|
15823
15926
|
" ",
|
|
15824
15927
|
"(",
|
|
15825
15928
|
t("OAuth not authenticated"),
|
|
15826
15929
|
")"
|
|
15827
15930
|
] });
|
|
15828
15931
|
}
|
|
15829
|
-
return /* @__PURE__ */ (0,
|
|
15830
|
-
/* @__PURE__ */ (0,
|
|
15831
|
-
/* @__PURE__ */ (0,
|
|
15932
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
15933
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { children: [
|
|
15934
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { color: statusColor, children: [
|
|
15832
15935
|
statusIndicator,
|
|
15833
15936
|
" "
|
|
15834
15937
|
] }),
|
|
15835
|
-
/* @__PURE__ */ (0,
|
|
15836
|
-
/* @__PURE__ */ (0,
|
|
15938
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { bold: true, children: serverDisplayName }),
|
|
15939
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15837
15940
|
" - ",
|
|
15838
15941
|
statusText,
|
|
15839
15942
|
status === "connected" /* CONNECTED */ && parts.length > 0 && ` (${parts.join(", ")})`
|
|
15840
15943
|
] }),
|
|
15841
15944
|
authStatusNode
|
|
15842
15945
|
] }),
|
|
15843
|
-
status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0,
|
|
15946
|
+
status === "connecting" /* CONNECTING */ && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15844
15947
|
" (",
|
|
15845
15948
|
t("tools and prompts will appear when ready"),
|
|
15846
15949
|
")"
|
|
15847
15950
|
] }),
|
|
15848
|
-
status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0,
|
|
15951
|
+
status === "disconnected" /* DISCONNECTED */ && toolCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15849
15952
|
"(",
|
|
15850
15953
|
t("{{count}} tools cached", { count: String(toolCount) }),
|
|
15851
15954
|
")"
|
|
15852
15955
|
] }),
|
|
15853
|
-
showDescriptions && server?.description && /* @__PURE__ */ (0,
|
|
15854
|
-
serverTools.length > 0 && /* @__PURE__ */ (0,
|
|
15855
|
-
/* @__PURE__ */ (0,
|
|
15956
|
+
showDescriptions && server?.description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: server.description.trim() }),
|
|
15957
|
+
serverTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
|
|
15958
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Tools:") }),
|
|
15856
15959
|
serverTools.map((tool) => {
|
|
15857
15960
|
const schemaContent = showSchema && tool.schema && (tool.schema.parametersJsonSchema || tool.schema.parameters) ? JSON.stringify(
|
|
15858
15961
|
tool.schema.parametersJsonSchema ?? tool.schema.parameters,
|
|
15859
15962
|
null,
|
|
15860
15963
|
2
|
|
15861
15964
|
) : null;
|
|
15862
|
-
return /* @__PURE__ */ (0,
|
|
15863
|
-
/* @__PURE__ */ (0,
|
|
15965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15966
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15864
15967
|
"- ",
|
|
15865
|
-
/* @__PURE__ */ (0,
|
|
15968
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: tool.name })
|
|
15866
15969
|
] }),
|
|
15867
|
-
showDescriptions && tool.description && /* @__PURE__ */ (0,
|
|
15868
|
-
schemaContent && /* @__PURE__ */ (0,
|
|
15869
|
-
/* @__PURE__ */ (0,
|
|
15870
|
-
/* @__PURE__ */ (0,
|
|
15970
|
+
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() }) }),
|
|
15971
|
+
schemaContent && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 4, children: [
|
|
15972
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: t("Parameters:") }),
|
|
15973
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.secondary, children: schemaContent })
|
|
15871
15974
|
] })
|
|
15872
15975
|
] }, tool.name);
|
|
15873
15976
|
})
|
|
15874
15977
|
] }),
|
|
15875
|
-
serverPrompts.length > 0 && /* @__PURE__ */ (0,
|
|
15876
|
-
/* @__PURE__ */ (0,
|
|
15877
|
-
serverPrompts.map((prompt) => /* @__PURE__ */ (0,
|
|
15878
|
-
/* @__PURE__ */ (0,
|
|
15978
|
+
serverPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginLeft: 2, children: [
|
|
15979
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: t("Prompts:") }),
|
|
15980
|
+
serverPrompts.map((prompt) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
15981
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15879
15982
|
"- ",
|
|
15880
|
-
/* @__PURE__ */ (0,
|
|
15983
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.primary, children: prompt.name })
|
|
15881
15984
|
] }),
|
|
15882
|
-
showDescriptions && prompt.description && /* @__PURE__ */ (0,
|
|
15985
|
+
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
15986
|
] }, prompt.name))
|
|
15884
15987
|
] })
|
|
15885
15988
|
] }, serverName);
|
|
15886
15989
|
}),
|
|
15887
|
-
blockedServers.map((server) => /* @__PURE__ */ (0,
|
|
15888
|
-
/* @__PURE__ */ (0,
|
|
15889
|
-
/* @__PURE__ */ (0,
|
|
15990
|
+
blockedServers.map((server) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { marginBottom: 1, children: [
|
|
15991
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.status.error, children: "\u25CF " }),
|
|
15992
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { bold: true, children: [
|
|
15890
15993
|
server.name,
|
|
15891
15994
|
server.extensionName ? ` ${t("(from {{extensionName}})", {
|
|
15892
15995
|
extensionName: server.extensionName
|
|
15893
15996
|
})}` : ""
|
|
15894
15997
|
] }),
|
|
15895
|
-
/* @__PURE__ */ (0,
|
|
15998
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15896
15999
|
" - ",
|
|
15897
16000
|
t("Blocked")
|
|
15898
16001
|
] })
|
|
15899
16002
|
] }, server.name)),
|
|
15900
|
-
showTips && /* @__PURE__ */ (0,
|
|
15901
|
-
/* @__PURE__ */ (0,
|
|
15902
|
-
/* @__PURE__ */ (0,
|
|
16003
|
+
showTips && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16004
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: t("\u2605 Tips:") }),
|
|
16005
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15903
16006
|
" ",
|
|
15904
16007
|
"- ",
|
|
15905
16008
|
t("Use"),
|
|
15906
16009
|
" ",
|
|
15907
|
-
/* @__PURE__ */ (0,
|
|
16010
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp desc" }),
|
|
15908
16011
|
" ",
|
|
15909
16012
|
t("to show server and tool descriptions")
|
|
15910
16013
|
] }),
|
|
15911
|
-
/* @__PURE__ */ (0,
|
|
16014
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15912
16015
|
" ",
|
|
15913
16016
|
"- ",
|
|
15914
16017
|
t("Use"),
|
|
15915
16018
|
" ",
|
|
15916
|
-
/* @__PURE__ */ (0,
|
|
16019
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp schema" }),
|
|
15917
16020
|
" ",
|
|
15918
16021
|
t("to show tool parameter schemas")
|
|
15919
16022
|
] }),
|
|
15920
|
-
/* @__PURE__ */ (0,
|
|
16023
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15921
16024
|
" ",
|
|
15922
16025
|
"- ",
|
|
15923
16026
|
t("Use"),
|
|
15924
16027
|
" ",
|
|
15925
|
-
/* @__PURE__ */ (0,
|
|
16028
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp nodesc" }),
|
|
15926
16029
|
" ",
|
|
15927
16030
|
t("to hide descriptions")
|
|
15928
16031
|
] }),
|
|
15929
|
-
/* @__PURE__ */ (0,
|
|
16032
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15930
16033
|
" ",
|
|
15931
16034
|
"- ",
|
|
15932
16035
|
t("Use"),
|
|
15933
16036
|
" ",
|
|
15934
|
-
/* @__PURE__ */ (0,
|
|
16037
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "/mcp" }),
|
|
15935
16038
|
" ",
|
|
15936
16039
|
t("to authenticate with OAuth-enabled servers")
|
|
15937
16040
|
] }),
|
|
15938
|
-
/* @__PURE__ */ (0,
|
|
16041
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Text, { children: [
|
|
15939
16042
|
" ",
|
|
15940
16043
|
"- ",
|
|
15941
16044
|
t("Press"),
|
|
15942
16045
|
" ",
|
|
15943
|
-
/* @__PURE__ */ (0,
|
|
16046
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Text, { color: theme.text.accent, children: "Ctrl+T" }),
|
|
15944
16047
|
" ",
|
|
15945
16048
|
t("to toggle tool descriptions on/off")
|
|
15946
16049
|
] })
|
|
@@ -15950,7 +16053,7 @@ var McpStatus = /* @__PURE__ */ __name(({
|
|
|
15950
16053
|
|
|
15951
16054
|
// packages/cli/src/ui/components/views/ContextUsage.tsx
|
|
15952
16055
|
init_esbuild_shims();
|
|
15953
|
-
var
|
|
16056
|
+
var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
|
|
15954
16057
|
var FILLED = "\u2588";
|
|
15955
16058
|
var BUFFER = "\u2592";
|
|
15956
16059
|
var EMPTY = "\u2591";
|
|
@@ -15982,10 +16085,10 @@ var ProgressBar = /* @__PURE__ */ __name(({ usedPercentage, bufferPercentage, wi
|
|
|
15982
16085
|
} else if (usedPercentage > 60) {
|
|
15983
16086
|
usedColor = theme.status.warning;
|
|
15984
16087
|
}
|
|
15985
|
-
return /* @__PURE__ */ (0,
|
|
15986
|
-
/* @__PURE__ */ (0,
|
|
15987
|
-
/* @__PURE__ */ (0,
|
|
15988
|
-
/* @__PURE__ */ (0,
|
|
16088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { children: [
|
|
16089
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: usedColor, children: usedStr }),
|
|
16090
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.secondary, children: freeStr }),
|
|
16091
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.status.warning, children: bufferStr })
|
|
15989
16092
|
] });
|
|
15990
16093
|
}, "ProgressBar");
|
|
15991
16094
|
function formatPercentage(tokens, contextWindowSize) {
|
|
@@ -16007,18 +16110,18 @@ var CategoryRow = /* @__PURE__ */ __name(({
|
|
|
16007
16110
|
}) => {
|
|
16008
16111
|
const percentageStr = formatPercentage(tokens, contextWindowSize);
|
|
16009
16112
|
const tokenStr = `${formatTokens(tokens)} ${t("tokens")} (${percentageStr}%)`;
|
|
16010
|
-
return /* @__PURE__ */ (0,
|
|
16011
|
-
/* @__PURE__ */ (0,
|
|
16012
|
-
/* @__PURE__ */ (0,
|
|
16013
|
-
/* @__PURE__ */ (0,
|
|
16113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16114
|
+
/* @__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 }) }),
|
|
16115
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 24, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
16116
|
+
/* @__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
16117
|
] });
|
|
16015
16118
|
}, "CategoryRow");
|
|
16016
16119
|
var ThresholdRow = /* @__PURE__ */ __name(({ label, tokens, isCurrent, hint }) => {
|
|
16017
16120
|
const tokenStr = `${formatTokens(tokens)} ${t("tokens")}`;
|
|
16018
|
-
return /* @__PURE__ */ (0,
|
|
16019
|
-
/* @__PURE__ */ (0,
|
|
16020
|
-
/* @__PURE__ */ (0,
|
|
16021
|
-
/* @__PURE__ */ (0,
|
|
16121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16122
|
+
/* @__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" : " " }) }),
|
|
16123
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 22, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.primary, children: label }) }),
|
|
16124
|
+
/* @__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
16125
|
tokenStr,
|
|
16023
16126
|
hint ? ` ${hint}` : ""
|
|
16024
16127
|
] }) })
|
|
@@ -16039,16 +16142,16 @@ function tierColor(tier) {
|
|
|
16039
16142
|
}
|
|
16040
16143
|
}
|
|
16041
16144
|
__name(tierColor, "tierColor");
|
|
16042
|
-
var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0,
|
|
16043
|
-
/* @__PURE__ */ (0,
|
|
16044
|
-
/* @__PURE__ */ (0,
|
|
16145
|
+
var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16146
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Compaction thresholds") }),
|
|
16147
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16045
16148
|
ThresholdRow,
|
|
16046
16149
|
{
|
|
16047
16150
|
label: t("Effective window"),
|
|
16048
16151
|
tokens: thresholds.effectiveWindow
|
|
16049
16152
|
}
|
|
16050
16153
|
),
|
|
16051
|
-
/* @__PURE__ */ (0,
|
|
16154
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16052
16155
|
ThresholdRow,
|
|
16053
16156
|
{
|
|
16054
16157
|
label: t("Warn threshold"),
|
|
@@ -16056,7 +16159,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16056
16159
|
isCurrent: currentTier === "warn"
|
|
16057
16160
|
}
|
|
16058
16161
|
),
|
|
16059
|
-
/* @__PURE__ */ (0,
|
|
16162
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16060
16163
|
ThresholdRow,
|
|
16061
16164
|
{
|
|
16062
16165
|
label: t("Auto threshold"),
|
|
@@ -16064,7 +16167,7 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16064
16167
|
isCurrent: currentTier === "auto"
|
|
16065
16168
|
}
|
|
16066
16169
|
),
|
|
16067
|
-
/* @__PURE__ */ (0,
|
|
16170
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16068
16171
|
ThresholdRow,
|
|
16069
16172
|
{
|
|
16070
16173
|
label: t("Hard threshold"),
|
|
@@ -16072,22 +16175,22 @@ var CompactionThresholds = /* @__PURE__ */ __name(({ thresholds, currentTier })
|
|
|
16072
16175
|
isCurrent: currentTier === "hard"
|
|
16073
16176
|
}
|
|
16074
16177
|
),
|
|
16075
|
-
/* @__PURE__ */ (0,
|
|
16076
|
-
/* @__PURE__ */ (0,
|
|
16077
|
-
/* @__PURE__ */ (0,
|
|
16078
|
-
/* @__PURE__ */ (0,
|
|
16178
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, children: [
|
|
16179
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { children: " " }) }),
|
|
16180
|
+
/* @__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") }) }),
|
|
16181
|
+
/* @__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
16182
|
] })
|
|
16080
16183
|
] }), "CompactionThresholds");
|
|
16081
16184
|
var DETAIL_NAME_MAX_LEN = 30;
|
|
16082
16185
|
var DetailRow = /* @__PURE__ */ __name(({ name, tokens }) => {
|
|
16083
16186
|
const tokenStr = tokens > 0 ? `${formatTokens(tokens)} ${t("tokens")}` : `0 ${t("tokens")}`;
|
|
16084
|
-
return /* @__PURE__ */ (0,
|
|
16085
|
-
/* @__PURE__ */ (0,
|
|
16187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
|
|
16188
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16086
16189
|
"\u2514",
|
|
16087
16190
|
" "
|
|
16088
16191
|
] }),
|
|
16089
|
-
/* @__PURE__ */ (0,
|
|
16090
|
-
/* @__PURE__ */ (0,
|
|
16192
|
+
/* @__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) }) }),
|
|
16193
|
+
/* @__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
16194
|
] });
|
|
16092
16195
|
}, "DetailRow");
|
|
16093
16196
|
var ContextUsage = /* @__PURE__ */ __name(({
|
|
@@ -16118,7 +16221,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16118
16221
|
const bTotal = b.tokens + (b.bodyTokens ?? 0);
|
|
16119
16222
|
return bTotal - aTotal;
|
|
16120
16223
|
});
|
|
16121
|
-
return /* @__PURE__ */ (0,
|
|
16224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
16122
16225
|
Box_default,
|
|
16123
16226
|
{
|
|
16124
16227
|
borderStyle: "round",
|
|
@@ -16127,12 +16230,12 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16127
16230
|
paddingY: 1,
|
|
16128
16231
|
paddingX: 2,
|
|
16129
16232
|
children: [
|
|
16130
|
-
/* @__PURE__ */ (0,
|
|
16131
|
-
/* @__PURE__ */ (0,
|
|
16132
|
-
!hasTokenCount ? /* @__PURE__ */ (0,
|
|
16133
|
-
/* @__PURE__ */ (0,
|
|
16134
|
-
/* @__PURE__ */ (0,
|
|
16135
|
-
/* @__PURE__ */ (0,
|
|
16233
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Context Usage") }),
|
|
16234
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16235
|
+
!hasTokenCount ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16236
|
+
/* @__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.") }) }),
|
|
16237
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Estimated pre-conversation overhead") }),
|
|
16238
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16136
16239
|
t("Model"),
|
|
16137
16240
|
": ",
|
|
16138
16241
|
modelName,
|
|
@@ -16143,15 +16246,15 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16143
16246
|
" ",
|
|
16144
16247
|
t("tokens")
|
|
16145
16248
|
] }),
|
|
16146
|
-
/* @__PURE__ */ (0,
|
|
16147
|
-
] }) : /* @__PURE__ */ (0,
|
|
16148
|
-
/* @__PURE__ */ (0,
|
|
16149
|
-
/* @__PURE__ */ (0,
|
|
16249
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 })
|
|
16250
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16251
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, marginBottom: 1, children: [
|
|
16252
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16150
16253
|
t("Model"),
|
|
16151
16254
|
": ",
|
|
16152
16255
|
modelName
|
|
16153
16256
|
] }),
|
|
16154
|
-
/* @__PURE__ */ (0,
|
|
16257
|
+
/* @__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
16258
|
t("Context window"),
|
|
16156
16259
|
": ",
|
|
16157
16260
|
formatTokens(contextWindowSize),
|
|
@@ -16159,10 +16262,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16159
16262
|
t("tokens")
|
|
16160
16263
|
] }) })
|
|
16161
16264
|
] }),
|
|
16162
|
-
isEstimated && /* @__PURE__ */ (0,
|
|
16265
|
+
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
16266
|
"Token usage is estimated until provider usage is received."
|
|
16164
16267
|
) }) }),
|
|
16165
|
-
/* @__PURE__ */ (0,
|
|
16268
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { width: CONTENT_WIDTH, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16166
16269
|
ProgressBar,
|
|
16167
16270
|
{
|
|
16168
16271
|
usedPercentage: Math.min(percentage, 100),
|
|
@@ -16170,9 +16273,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16170
16273
|
width: CONTENT_WIDTH
|
|
16171
16274
|
}
|
|
16172
16275
|
) }),
|
|
16173
|
-
isOverLimit && /* @__PURE__ */ (0,
|
|
16174
|
-
/* @__PURE__ */ (0,
|
|
16175
|
-
/* @__PURE__ */ (0,
|
|
16276
|
+
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.") }) }),
|
|
16277
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16278
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16176
16279
|
CategoryRow,
|
|
16177
16280
|
{
|
|
16178
16281
|
symbol: FILLED,
|
|
@@ -16183,7 +16286,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16183
16286
|
isOverLimit
|
|
16184
16287
|
}
|
|
16185
16288
|
),
|
|
16186
|
-
/* @__PURE__ */ (0,
|
|
16289
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16187
16290
|
CategoryRow,
|
|
16188
16291
|
{
|
|
16189
16292
|
symbol: EMPTY,
|
|
@@ -16193,7 +16296,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16193
16296
|
symbolColor: theme.text.secondary
|
|
16194
16297
|
}
|
|
16195
16298
|
),
|
|
16196
|
-
/* @__PURE__ */ (0,
|
|
16299
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16197
16300
|
CategoryRow,
|
|
16198
16301
|
{
|
|
16199
16302
|
symbol: BUFFER,
|
|
@@ -16203,10 +16306,10 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16203
16306
|
symbolColor: theme.status.warning
|
|
16204
16307
|
}
|
|
16205
16308
|
),
|
|
16206
|
-
/* @__PURE__ */ (0,
|
|
16207
|
-
/* @__PURE__ */ (0,
|
|
16309
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Box_default, { height: 1 }),
|
|
16310
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Usage by category") })
|
|
16208
16311
|
] }),
|
|
16209
|
-
/* @__PURE__ */ (0,
|
|
16312
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16210
16313
|
CategoryRow,
|
|
16211
16314
|
{
|
|
16212
16315
|
symbol: FILLED,
|
|
@@ -16216,7 +16319,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16216
16319
|
symbolColor: theme.text.accent
|
|
16217
16320
|
}
|
|
16218
16321
|
),
|
|
16219
|
-
/* @__PURE__ */ (0,
|
|
16322
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16220
16323
|
CategoryRow,
|
|
16221
16324
|
{
|
|
16222
16325
|
symbol: FILLED,
|
|
@@ -16226,7 +16329,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16226
16329
|
symbolColor: theme.text.accent
|
|
16227
16330
|
}
|
|
16228
16331
|
),
|
|
16229
|
-
breakdown.mcpTools > 0 && /* @__PURE__ */ (0,
|
|
16332
|
+
breakdown.mcpTools > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16230
16333
|
CategoryRow,
|
|
16231
16334
|
{
|
|
16232
16335
|
symbol: FILLED,
|
|
@@ -16236,7 +16339,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16236
16339
|
symbolColor: theme.text.accent
|
|
16237
16340
|
}
|
|
16238
16341
|
),
|
|
16239
|
-
/* @__PURE__ */ (0,
|
|
16342
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16240
16343
|
CategoryRow,
|
|
16241
16344
|
{
|
|
16242
16345
|
symbol: FILLED,
|
|
@@ -16246,7 +16349,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16246
16349
|
symbolColor: theme.text.accent
|
|
16247
16350
|
}
|
|
16248
16351
|
),
|
|
16249
|
-
/* @__PURE__ */ (0,
|
|
16352
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16250
16353
|
CategoryRow,
|
|
16251
16354
|
{
|
|
16252
16355
|
symbol: FILLED,
|
|
@@ -16256,7 +16359,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16256
16359
|
symbolColor: theme.text.accent
|
|
16257
16360
|
}
|
|
16258
16361
|
),
|
|
16259
|
-
hasTokenCount && /* @__PURE__ */ (0,
|
|
16362
|
+
hasTokenCount && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16260
16363
|
CategoryRow,
|
|
16261
16364
|
{
|
|
16262
16365
|
symbol: FILLED,
|
|
@@ -16266,17 +16369,17 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16266
16369
|
symbolColor: theme.text.accent
|
|
16267
16370
|
}
|
|
16268
16371
|
),
|
|
16269
|
-
breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0,
|
|
16372
|
+
breakdown.thresholds && breakdown.currentTier && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16270
16373
|
CompactionThresholds,
|
|
16271
16374
|
{
|
|
16272
16375
|
thresholds: breakdown.thresholds,
|
|
16273
16376
|
currentTier: breakdown.currentTier
|
|
16274
16377
|
}
|
|
16275
16378
|
),
|
|
16276
|
-
showDetails ? /* @__PURE__ */ (0,
|
|
16277
|
-
sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0,
|
|
16278
|
-
/* @__PURE__ */ (0,
|
|
16279
|
-
sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0,
|
|
16379
|
+
showDetails ? /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
|
|
16380
|
+
sortedBuiltinTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16381
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Built-in tools") }),
|
|
16382
|
+
sortedBuiltinTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16280
16383
|
DetailRow,
|
|
16281
16384
|
{
|
|
16282
16385
|
name: tool.name,
|
|
@@ -16285,9 +16388,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16285
16388
|
tool.name
|
|
16286
16389
|
))
|
|
16287
16390
|
] }),
|
|
16288
|
-
sortedMcpTools.length > 0 && /* @__PURE__ */ (0,
|
|
16289
|
-
/* @__PURE__ */ (0,
|
|
16290
|
-
sortedMcpTools.map((tool) => /* @__PURE__ */ (0,
|
|
16391
|
+
sortedMcpTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16392
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("MCP tools") }),
|
|
16393
|
+
sortedMcpTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16291
16394
|
DetailRow,
|
|
16292
16395
|
{
|
|
16293
16396
|
name: tool.name,
|
|
@@ -16296,9 +16399,9 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16296
16399
|
tool.name
|
|
16297
16400
|
))
|
|
16298
16401
|
] }),
|
|
16299
|
-
sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0,
|
|
16300
|
-
/* @__PURE__ */ (0,
|
|
16301
|
-
sortedMemoryFiles.map((file) => /* @__PURE__ */ (0,
|
|
16402
|
+
sortedMemoryFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16403
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Memory files") }),
|
|
16404
|
+
sortedMemoryFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
16302
16405
|
DetailRow,
|
|
16303
16406
|
{
|
|
16304
16407
|
name: file.path,
|
|
@@ -16307,34 +16410,34 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16307
16410
|
file.path
|
|
16308
16411
|
))
|
|
16309
16412
|
] }),
|
|
16310
|
-
sortedSkills.length > 0 && /* @__PURE__ */ (0,
|
|
16311
|
-
/* @__PURE__ */ (0,
|
|
16312
|
-
sortedSkills.map((skill) => /* @__PURE__ */ (0,
|
|
16313
|
-
/* @__PURE__ */ (0,
|
|
16314
|
-
/* @__PURE__ */ (0,
|
|
16413
|
+
sortedSkills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16414
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Skills") }),
|
|
16415
|
+
sortedSkills.map((skill) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16416
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 2, children: [
|
|
16417
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16315
16418
|
"\u2514",
|
|
16316
16419
|
" "
|
|
16317
16420
|
] }),
|
|
16318
|
-
/* @__PURE__ */ (0,
|
|
16319
|
-
/* @__PURE__ */ (0,
|
|
16320
|
-
skill.loaded && /* @__PURE__ */ (0,
|
|
16421
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: 32, children: [
|
|
16422
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Text, { color: theme.text.link, children: truncateName(skill.name, DETAIL_NAME_MAX_LEN) }),
|
|
16423
|
+
skill.loaded && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.status.success, children: [
|
|
16321
16424
|
" ",
|
|
16322
16425
|
t("active")
|
|
16323
16426
|
] })
|
|
16324
16427
|
] }),
|
|
16325
|
-
/* @__PURE__ */ (0,
|
|
16428
|
+
/* @__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
16429
|
formatTokens(skill.tokens),
|
|
16327
16430
|
" ",
|
|
16328
16431
|
t("tokens")
|
|
16329
16432
|
] }) })
|
|
16330
16433
|
] }),
|
|
16331
|
-
skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0,
|
|
16332
|
-
/* @__PURE__ */ (0,
|
|
16434
|
+
skill.loaded && skill.bodyTokens != null && skill.bodyTokens > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Box_default, { width: CONTENT_WIDTH, paddingLeft: 4, children: [
|
|
16435
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16333
16436
|
" \u2514",
|
|
16334
16437
|
" "
|
|
16335
16438
|
] }),
|
|
16336
|
-
/* @__PURE__ */ (0,
|
|
16337
|
-
/* @__PURE__ */ (0,
|
|
16439
|
+
/* @__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") }) }),
|
|
16440
|
+
/* @__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
16441
|
"+",
|
|
16339
16442
|
formatTokens(skill.bodyTokens),
|
|
16340
16443
|
" ",
|
|
@@ -16343,7 +16446,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16343
16446
|
] })
|
|
16344
16447
|
] }, skill.name))
|
|
16345
16448
|
] })
|
|
16346
|
-
] }) : /* @__PURE__ */ (0,
|
|
16449
|
+
] }) : /* @__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
16450
|
]
|
|
16348
16451
|
}
|
|
16349
16452
|
);
|
|
@@ -16351,7 +16454,7 @@ var ContextUsage = /* @__PURE__ */ __name(({
|
|
|
16351
16454
|
|
|
16352
16455
|
// packages/cli/src/ui/components/views/DoctorReport.tsx
|
|
16353
16456
|
init_esbuild_shims();
|
|
16354
|
-
var
|
|
16457
|
+
var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
|
|
16355
16458
|
var STATUS_ICONS2 = {
|
|
16356
16459
|
pass: "\u2713",
|
|
16357
16460
|
// checkmark
|
|
@@ -16394,7 +16497,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16394
16497
|
const groups = groupByCategory(checks);
|
|
16395
16498
|
const categoryEntries = Array.from(groups.entries());
|
|
16396
16499
|
const nameColWidth = Math.max(20, ...checks.map((c) => c.name.length + 2));
|
|
16397
|
-
return /* @__PURE__ */ (0,
|
|
16500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
16398
16501
|
Box_default,
|
|
16399
16502
|
{
|
|
16400
16503
|
borderStyle: "round",
|
|
@@ -16404,26 +16507,26 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16404
16507
|
paddingX: 2,
|
|
16405
16508
|
width,
|
|
16406
16509
|
children: [
|
|
16407
|
-
/* @__PURE__ */ (0,
|
|
16408
|
-
/* @__PURE__ */ (0,
|
|
16409
|
-
categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0,
|
|
16510
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Doctor Report") }),
|
|
16511
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { height: 1 }),
|
|
16512
|
+
categoryEntries.map(([category, items], groupIdx) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
16410
16513
|
Box_default,
|
|
16411
16514
|
{
|
|
16412
16515
|
flexDirection: "column",
|
|
16413
16516
|
marginTop: groupIdx > 0 ? 1 : 0,
|
|
16414
16517
|
children: [
|
|
16415
|
-
/* @__PURE__ */ (0,
|
|
16416
|
-
items.map((check) => /* @__PURE__ */ (0,
|
|
16417
|
-
/* @__PURE__ */ (0,
|
|
16418
|
-
/* @__PURE__ */ (0,
|
|
16518
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { bold: true, color: theme.text.link, children: category }),
|
|
16519
|
+
items.map((check) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16520
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16521
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: getStatusColor2(check.status), children: [
|
|
16419
16522
|
" ",
|
|
16420
16523
|
STATUS_ICONS2[check.status],
|
|
16421
16524
|
" "
|
|
16422
16525
|
] }),
|
|
16423
|
-
/* @__PURE__ */ (0,
|
|
16424
|
-
/* @__PURE__ */ (0,
|
|
16526
|
+
/* @__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 }) }),
|
|
16527
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: check.message })
|
|
16425
16528
|
] }),
|
|
16426
|
-
check.detail && /* @__PURE__ */ (0,
|
|
16529
|
+
check.detail && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box_default, { marginLeft: 6, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { dimColor: true, children: [
|
|
16427
16530
|
"-> ",
|
|
16428
16531
|
check.detail
|
|
16429
16532
|
] }) })
|
|
@@ -16432,21 +16535,21 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16432
16535
|
},
|
|
16433
16536
|
category
|
|
16434
16537
|
)),
|
|
16435
|
-
/* @__PURE__ */ (0,
|
|
16436
|
-
/* @__PURE__ */ (0,
|
|
16437
|
-
/* @__PURE__ */ (0,
|
|
16538
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Box_default, { marginTop: 1, children: [
|
|
16539
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: "-- " }),
|
|
16540
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.success, children: [
|
|
16438
16541
|
summary.pass,
|
|
16439
16542
|
" ",
|
|
16440
16543
|
t("passed")
|
|
16441
16544
|
] }),
|
|
16442
|
-
/* @__PURE__ */ (0,
|
|
16443
|
-
/* @__PURE__ */ (0,
|
|
16545
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
|
|
16546
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.warning, children: [
|
|
16444
16547
|
summary.warn,
|
|
16445
16548
|
" ",
|
|
16446
16549
|
t("warnings")
|
|
16447
16550
|
] }),
|
|
16448
|
-
/* @__PURE__ */ (0,
|
|
16449
|
-
/* @__PURE__ */ (0,
|
|
16551
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text, { dimColor: true, children: ", " }),
|
|
16552
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Text, { color: theme.status.error, children: [
|
|
16450
16553
|
summary.fail,
|
|
16451
16554
|
" ",
|
|
16452
16555
|
t("failures")
|
|
@@ -16459,7 +16562,7 @@ var DoctorReport = /* @__PURE__ */ __name(({
|
|
|
16459
16562
|
|
|
16460
16563
|
// packages/cli/src/ui/components/arena/ArenaCards.tsx
|
|
16461
16564
|
init_esbuild_shims();
|
|
16462
|
-
var
|
|
16565
|
+
var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
|
|
16463
16566
|
var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
16464
16567
|
agent,
|
|
16465
16568
|
width
|
|
@@ -16469,8 +16572,8 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16469
16572
|
const tokens = agent.totalTokens.toLocaleString();
|
|
16470
16573
|
const inTokens = agent.inputTokens.toLocaleString();
|
|
16471
16574
|
const outTokens = agent.outputTokens.toLocaleString();
|
|
16472
|
-
return /* @__PURE__ */ (0,
|
|
16473
|
-
/* @__PURE__ */ (0,
|
|
16575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", width, children: [
|
|
16576
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color, children: [
|
|
16474
16577
|
icon,
|
|
16475
16578
|
" ",
|
|
16476
16579
|
agent.label,
|
|
@@ -16479,7 +16582,7 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16479
16582
|
" \xB7 ",
|
|
16480
16583
|
duration
|
|
16481
16584
|
] }) }),
|
|
16482
|
-
/* @__PURE__ */ (0,
|
|
16585
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16483
16586
|
"Tokens: ",
|
|
16484
16587
|
tokens,
|
|
16485
16588
|
" (in ",
|
|
@@ -16488,25 +16591,25 @@ var ArenaAgentCard = /* @__PURE__ */ __name(({
|
|
|
16488
16591
|
outTokens,
|
|
16489
16592
|
")"
|
|
16490
16593
|
] }) }),
|
|
16491
|
-
/* @__PURE__ */ (0,
|
|
16594
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16492
16595
|
"Tool Calls: ",
|
|
16493
16596
|
agent.toolCalls,
|
|
16494
|
-
agent.failedToolCalls > 0 && /* @__PURE__ */ (0,
|
|
16597
|
+
agent.failedToolCalls > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
16495
16598
|
" ",
|
|
16496
16599
|
"(",
|
|
16497
|
-
/* @__PURE__ */ (0,
|
|
16600
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
|
|
16498
16601
|
"\u2713 ",
|
|
16499
16602
|
agent.successfulToolCalls
|
|
16500
16603
|
] }),
|
|
16501
|
-
/* @__PURE__ */ (0,
|
|
16502
|
-
/* @__PURE__ */ (0,
|
|
16604
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
16605
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
|
|
16503
16606
|
"\u2715 ",
|
|
16504
16607
|
agent.failedToolCalls
|
|
16505
16608
|
] }),
|
|
16506
16609
|
")"
|
|
16507
16610
|
] })
|
|
16508
16611
|
] }) }),
|
|
16509
|
-
agent.error && /* @__PURE__ */ (0,
|
|
16612
|
+
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
16613
|
] });
|
|
16511
16614
|
}, "ArenaAgentCard");
|
|
16512
16615
|
function getDiffStats(diff, diffSummary) {
|
|
@@ -16573,7 +16676,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16573
16676
|
width
|
|
16574
16677
|
}) => {
|
|
16575
16678
|
const titleLabel = sessionStatus === "idle" || sessionStatus === "completed" ? "Arena Comparison Summary" : sessionStatus === "cancelled" ? "Arena Cancelled" : "Arena Failed";
|
|
16576
|
-
return /* @__PURE__ */ (0,
|
|
16679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
16577
16680
|
Box_default,
|
|
16578
16681
|
{
|
|
16579
16682
|
borderStyle: "round",
|
|
@@ -16583,91 +16686,91 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16583
16686
|
paddingY: 1,
|
|
16584
16687
|
width,
|
|
16585
16688
|
children: [
|
|
16586
|
-
/* @__PURE__ */ (0,
|
|
16587
|
-
/* @__PURE__ */ (0,
|
|
16588
|
-
(sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0,
|
|
16589
|
-
/* @__PURE__ */ (0,
|
|
16590
|
-
/* @__PURE__ */ (0,
|
|
16689
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: titleLabel }) }),
|
|
16690
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16691
|
+
(sessionStatus === "idle" || sessionStatus === "completed") && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
|
|
16692
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16693
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Status Summary:" }),
|
|
16591
16694
|
agents.map((agent, index) => {
|
|
16592
16695
|
const { text: statusText, color } = getArenaStatusLabel(
|
|
16593
16696
|
agent.status
|
|
16594
16697
|
);
|
|
16595
|
-
return /* @__PURE__ */ (0,
|
|
16596
|
-
/* @__PURE__ */ (0,
|
|
16698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16699
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16597
16700
|
index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
|
|
16598
16701
|
" ",
|
|
16599
16702
|
agent.label,
|
|
16600
16703
|
":",
|
|
16601
16704
|
" "
|
|
16602
16705
|
] }),
|
|
16603
|
-
/* @__PURE__ */ (0,
|
|
16706
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color, children: statusText })
|
|
16604
16707
|
] }, agent.label);
|
|
16605
16708
|
})
|
|
16606
16709
|
] }),
|
|
16607
|
-
/* @__PURE__ */ (0,
|
|
16608
|
-
/* @__PURE__ */ (0,
|
|
16609
|
-
/* @__PURE__ */ (0,
|
|
16610
|
-
getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0,
|
|
16611
|
-
/* @__PURE__ */ (0,
|
|
16710
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16711
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16712
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Files Modified:" }),
|
|
16713
|
+
getComparisonFileGroups(agents).map((group, index, groups) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16714
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16612
16715
|
getTreeBranch(index, groups.length),
|
|
16613
16716
|
" ",
|
|
16614
16717
|
group.label,
|
|
16615
16718
|
":",
|
|
16616
16719
|
" "
|
|
16617
16720
|
] }),
|
|
16618
|
-
/* @__PURE__ */ (0,
|
|
16721
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.primary, children: formatFileList(group.files) })
|
|
16619
16722
|
] }, group.label))
|
|
16620
16723
|
] }),
|
|
16621
|
-
/* @__PURE__ */ (0,
|
|
16622
|
-
/* @__PURE__ */ (0,
|
|
16623
|
-
/* @__PURE__ */ (0,
|
|
16724
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16725
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16726
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Approach Summary:" }),
|
|
16624
16727
|
agents.map((agent, index) => {
|
|
16625
16728
|
const diffStats = getDiffStats(agent.diff, agent.diffSummary);
|
|
16626
16729
|
const files = getAgentFiles(agent).length;
|
|
16627
16730
|
const branch = index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500";
|
|
16628
16731
|
const summary = agent.approachSummary ?? "No approach summary available.";
|
|
16629
|
-
return /* @__PURE__ */ (0,
|
|
16630
|
-
/* @__PURE__ */ (0,
|
|
16732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { children: [
|
|
16733
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16631
16734
|
branch,
|
|
16632
16735
|
" ",
|
|
16633
16736
|
agent.label,
|
|
16634
16737
|
":",
|
|
16635
16738
|
" "
|
|
16636
16739
|
] }),
|
|
16637
|
-
/* @__PURE__ */ (0,
|
|
16740
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
|
|
16638
16741
|
summary,
|
|
16639
16742
|
" "
|
|
16640
16743
|
] }),
|
|
16641
|
-
/* @__PURE__ */ (0,
|
|
16642
|
-
/* @__PURE__ */ (0,
|
|
16643
|
-
/* @__PURE__ */ (0,
|
|
16644
|
-
/* @__PURE__ */ (0,
|
|
16744
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: "(" }),
|
|
16745
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: files }),
|
|
16746
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: files === 1 ? " file, " : " files, " }),
|
|
16747
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.success, children: [
|
|
16645
16748
|
"+",
|
|
16646
16749
|
diffStats.additions
|
|
16647
16750
|
] }),
|
|
16648
|
-
/* @__PURE__ */ (0,
|
|
16649
|
-
/* @__PURE__ */ (0,
|
|
16751
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " " }),
|
|
16752
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.status.error, children: [
|
|
16650
16753
|
"-",
|
|
16651
16754
|
diffStats.deletions
|
|
16652
16755
|
] }),
|
|
16653
|
-
/* @__PURE__ */ (0,
|
|
16654
|
-
/* @__PURE__ */ (0,
|
|
16655
|
-
/* @__PURE__ */ (0,
|
|
16756
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: " lines, " }),
|
|
16757
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: agent.toolCalls }),
|
|
16758
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.secondary, children: agent.toolCalls === 1 ? " tool call)" : " tool calls)" })
|
|
16656
16759
|
] }) }, agent.label);
|
|
16657
16760
|
})
|
|
16658
16761
|
] }),
|
|
16659
|
-
/* @__PURE__ */ (0,
|
|
16660
|
-
/* @__PURE__ */ (0,
|
|
16661
|
-
/* @__PURE__ */ (0,
|
|
16662
|
-
agents.map((agent, index) => /* @__PURE__ */ (0,
|
|
16663
|
-
/* @__PURE__ */ (0,
|
|
16762
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16763
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16764
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { bold: true, color: theme.text.primary, children: "Token Efficiency:" }),
|
|
16765
|
+
agents.map((agent, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Box_default, { marginLeft: 2, children: [
|
|
16766
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16664
16767
|
index === agents.length - 1 ? "\u2514\u2500" : "\u251C\u2500",
|
|
16665
16768
|
" ",
|
|
16666
16769
|
agent.label,
|
|
16667
16770
|
":",
|
|
16668
16771
|
" "
|
|
16669
16772
|
] }),
|
|
16670
|
-
/* @__PURE__ */ (0,
|
|
16773
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.primary, children: [
|
|
16671
16774
|
agent.outputTokens.toLocaleString(),
|
|
16672
16775
|
" tokens \xB7 runtime",
|
|
16673
16776
|
" ",
|
|
@@ -16676,15 +16779,15 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16676
16779
|
] }, agent.label))
|
|
16677
16780
|
] })
|
|
16678
16781
|
] }),
|
|
16679
|
-
/* @__PURE__ */ (0,
|
|
16680
|
-
sessionStatus === "idle" && /* @__PURE__ */ (0,
|
|
16782
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { height: 1 }),
|
|
16783
|
+
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
16784
|
"Run ",
|
|
16682
|
-
/* @__PURE__ */ (0,
|
|
16785
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
|
|
16683
16786
|
" to view detailed diff or pick a winner."
|
|
16684
16787
|
] }) }),
|
|
16685
|
-
sessionStatus === "completed" && /* @__PURE__ */ (0,
|
|
16788
|
+
sessionStatus === "completed" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16686
16789
|
"Run ",
|
|
16687
|
-
/* @__PURE__ */ (0,
|
|
16790
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text, { color: theme.text.accent, children: "/arena select" }),
|
|
16688
16791
|
" to pick a winner."
|
|
16689
16792
|
] }) })
|
|
16690
16793
|
]
|
|
@@ -16694,7 +16797,7 @@ var ArenaSessionCard = /* @__PURE__ */ __name(({
|
|
|
16694
16797
|
|
|
16695
16798
|
// packages/cli/src/ui/components/messages/InsightProgressMessage.tsx
|
|
16696
16799
|
init_esbuild_shims();
|
|
16697
|
-
var
|
|
16800
|
+
var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
|
|
16698
16801
|
var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
16699
16802
|
progress
|
|
16700
16803
|
}) => {
|
|
@@ -16704,28 +16807,28 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
|
16704
16807
|
const remainingWidth = width - completedWidth;
|
|
16705
16808
|
const bar = "\u2588".repeat(Math.max(0, completedWidth)) + "\u2591".repeat(Math.max(0, remainingWidth));
|
|
16706
16809
|
if (error) {
|
|
16707
|
-
return /* @__PURE__ */ (0,
|
|
16708
|
-
/* @__PURE__ */ (0,
|
|
16810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16811
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.status.error, children: [
|
|
16709
16812
|
"\u2715 ",
|
|
16710
16813
|
stage
|
|
16711
16814
|
] }),
|
|
16712
|
-
/* @__PURE__ */ (0,
|
|
16815
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.secondary, children: error })
|
|
16713
16816
|
] });
|
|
16714
16817
|
}
|
|
16715
16818
|
if (isComplete) {
|
|
16716
|
-
return /* @__PURE__ */ (0,
|
|
16819
|
+
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
16820
|
"\u2713 ",
|
|
16718
16821
|
stage
|
|
16719
16822
|
] }) });
|
|
16720
16823
|
}
|
|
16721
|
-
return /* @__PURE__ */ (0,
|
|
16722
|
-
/* @__PURE__ */ (0,
|
|
16723
|
-
/* @__PURE__ */ (0,
|
|
16724
|
-
/* @__PURE__ */ (0,
|
|
16824
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16825
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(build_default, { type: "dots" }) }),
|
|
16826
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text, { children: " " }),
|
|
16827
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16725
16828
|
bar,
|
|
16726
16829
|
" "
|
|
16727
16830
|
] }),
|
|
16728
|
-
/* @__PURE__ */ (0,
|
|
16831
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Text, { color: theme.text.accent, children: [
|
|
16729
16832
|
stage,
|
|
16730
16833
|
progress.detail ? ` (${progress.detail})` : ""
|
|
16731
16834
|
] })
|
|
@@ -16735,7 +16838,7 @@ var InsightProgressMessage = /* @__PURE__ */ __name(({
|
|
|
16735
16838
|
// packages/cli/src/ui/components/messages/BtwMessage.tsx
|
|
16736
16839
|
init_esbuild_shims();
|
|
16737
16840
|
var import_react41 = __toESM(require_react(), 1);
|
|
16738
|
-
var
|
|
16841
|
+
var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
|
|
16739
16842
|
var BTW_SELF_CHROME = 4;
|
|
16740
16843
|
function normalizeCodeFences(text) {
|
|
16741
16844
|
return text.replace(/([^\n])(```|~~~)/g, "$1\n$2");
|
|
@@ -16748,7 +16851,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16748
16851
|
const { columns: terminalWidth } = useTerminalSize();
|
|
16749
16852
|
const baseWidth = containerWidth ?? terminalWidth;
|
|
16750
16853
|
const contentWidth = Math.max(2, baseWidth - BTW_SELF_CHROME);
|
|
16751
|
-
return /* @__PURE__ */ (0,
|
|
16854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
16752
16855
|
Box_default,
|
|
16753
16856
|
{
|
|
16754
16857
|
flexDirection: "column",
|
|
@@ -16757,18 +16860,18 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16757
16860
|
paddingX: 1,
|
|
16758
16861
|
width: "100%",
|
|
16759
16862
|
children: [
|
|
16760
|
-
/* @__PURE__ */ (0,
|
|
16761
|
-
/* @__PURE__ */ (0,
|
|
16762
|
-
/* @__PURE__ */ (0,
|
|
16863
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16864
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, bold: true, children: "/btw " }),
|
|
16865
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { wrap: "wrap", color: Colors.AccentYellow, children: btw.question })
|
|
16763
16866
|
] }),
|
|
16764
|
-
btw.isPending ? /* @__PURE__ */ (0,
|
|
16765
|
-
/* @__PURE__ */ (0,
|
|
16766
|
-
/* @__PURE__ */ (0,
|
|
16767
|
-
/* @__PURE__ */ (0,
|
|
16867
|
+
btw.isPending ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16868
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { children: [
|
|
16869
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: "+ " }),
|
|
16870
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text, { color: Colors.AccentYellow, children: t("Answering...") })
|
|
16768
16871
|
] }),
|
|
16769
|
-
/* @__PURE__ */ (0,
|
|
16770
|
-
] }) : /* @__PURE__ */ (0,
|
|
16771
|
-
/* @__PURE__ */ (0,
|
|
16872
|
+
/* @__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") }) })
|
|
16873
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
16874
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
16772
16875
|
MarkdownDisplay,
|
|
16773
16876
|
{
|
|
16774
16877
|
text: normalizeCodeFences(btw.answer),
|
|
@@ -16776,7 +16879,7 @@ var BtwMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16776
16879
|
contentWidth
|
|
16777
16880
|
}
|
|
16778
16881
|
),
|
|
16779
|
-
/* @__PURE__ */ (0,
|
|
16882
|
+
/* @__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
16883
|
] })
|
|
16781
16884
|
]
|
|
16782
16885
|
}
|
|
@@ -16787,7 +16890,7 @@ var BtwMessage = import_react41.default.memo(BtwMessageInternal);
|
|
|
16787
16890
|
// packages/cli/src/ui/components/messages/AdvisorMessage.tsx
|
|
16788
16891
|
init_esbuild_shims();
|
|
16789
16892
|
var import_react42 = __toESM(require_react(), 1);
|
|
16790
|
-
var
|
|
16893
|
+
var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
|
|
16791
16894
|
var ADVISOR_SELF_CHROME = 4;
|
|
16792
16895
|
var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
16793
16896
|
text,
|
|
@@ -16797,7 +16900,7 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16797
16900
|
const { columns: terminalWidth } = useTerminalSize();
|
|
16798
16901
|
const baseWidth = containerWidth ?? terminalWidth;
|
|
16799
16902
|
const contentWidth = Math.max(2, baseWidth - ADVISOR_SELF_CHROME);
|
|
16800
|
-
return /* @__PURE__ */ (0,
|
|
16903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
16801
16904
|
Box_default,
|
|
16802
16905
|
{
|
|
16803
16906
|
flexDirection: "column",
|
|
@@ -16806,11 +16909,11 @@ var AdvisorMessageInternal = /* @__PURE__ */ __name(({
|
|
|
16806
16909
|
paddingX: 1,
|
|
16807
16910
|
width: "100%",
|
|
16808
16911
|
children: [
|
|
16809
|
-
/* @__PURE__ */ (0,
|
|
16810
|
-
/* @__PURE__ */ (0,
|
|
16811
|
-
/* @__PURE__ */ (0,
|
|
16912
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16913
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, bold: true, children: "/advisor" }),
|
|
16914
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text, { color: Colors.AccentCyan, children: ` \xB7 ${model}` })
|
|
16812
16915
|
] }),
|
|
16813
|
-
/* @__PURE__ */ (0,
|
|
16916
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Box_default, { flexDirection: "column", marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
16814
16917
|
MarkdownDisplay,
|
|
16815
16918
|
{
|
|
16816
16919
|
text,
|
|
@@ -16826,16 +16929,16 @@ var AdvisorMessage = import_react42.default.memo(AdvisorMessageInternal);
|
|
|
16826
16929
|
|
|
16827
16930
|
// packages/cli/src/ui/components/messages/MemorySavedMessage.tsx
|
|
16828
16931
|
init_esbuild_shims();
|
|
16829
|
-
var
|
|
16932
|
+
var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
|
|
16830
16933
|
var MemorySavedMessage = /* @__PURE__ */ __name(({
|
|
16831
16934
|
item
|
|
16832
16935
|
}) => {
|
|
16833
16936
|
const verb = item.verb ?? "Saved";
|
|
16834
16937
|
const n = item.writtenCount;
|
|
16835
16938
|
const label = n === 1 ? "memory" : "memories";
|
|
16836
|
-
return /* @__PURE__ */ (0,
|
|
16837
|
-
/* @__PURE__ */ (0,
|
|
16838
|
-
/* @__PURE__ */ (0,
|
|
16939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
16940
|
+
/* @__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 }) }),
|
|
16941
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Text, { dimColor: true, children: [
|
|
16839
16942
|
verb,
|
|
16840
16943
|
" ",
|
|
16841
16944
|
n,
|
|
@@ -16847,28 +16950,28 @@ var MemorySavedMessage = /* @__PURE__ */ __name(({
|
|
|
16847
16950
|
|
|
16848
16951
|
// packages/cli/src/ui/components/messages/DiffStatsDisplay.tsx
|
|
16849
16952
|
init_esbuild_shims();
|
|
16850
|
-
var
|
|
16953
|
+
var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
|
|
16851
16954
|
var DiffStatsDisplay = /* @__PURE__ */ __name(({
|
|
16852
16955
|
model
|
|
16853
16956
|
}) => {
|
|
16854
16957
|
const { filesCount, linesAdded, linesRemoved, rows, hiddenCount } = model;
|
|
16855
16958
|
const { addWidth, remWidth, statColumnWidth } = computeDiffColumnWidths(rows);
|
|
16856
16959
|
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,
|
|
16960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16961
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
16962
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: headerLabel }),
|
|
16963
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: ", " }),
|
|
16964
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
|
|
16862
16965
|
"+",
|
|
16863
16966
|
linesAdded
|
|
16864
16967
|
] }),
|
|
16865
|
-
/* @__PURE__ */ (0,
|
|
16866
|
-
/* @__PURE__ */ (0,
|
|
16968
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: " / " }),
|
|
16969
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
|
|
16867
16970
|
"-",
|
|
16868
16971
|
linesRemoved
|
|
16869
16972
|
] })
|
|
16870
16973
|
] }),
|
|
16871
|
-
rows.map((row) => /* @__PURE__ */ (0,
|
|
16974
|
+
rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
16872
16975
|
DiffRow,
|
|
16873
16976
|
{
|
|
16874
16977
|
row,
|
|
@@ -16878,7 +16981,7 @@ var DiffStatsDisplay = /* @__PURE__ */ __name(({
|
|
|
16878
16981
|
},
|
|
16879
16982
|
row.filename
|
|
16880
16983
|
)),
|
|
16881
|
-
hiddenCount > 0 && rows.length > 0 && /* @__PURE__ */ (0,
|
|
16984
|
+
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
16985
|
" ",
|
|
16883
16986
|
t("\u2026and {{hidden}} more (showing first {{shown}})", {
|
|
16884
16987
|
hidden: String(hiddenCount),
|
|
@@ -16898,16 +17001,16 @@ var DiffRow = /* @__PURE__ */ __name(({
|
|
|
16898
17001
|
if (row.isBinary) {
|
|
16899
17002
|
const marker = padRight("~", statColumnWidth);
|
|
16900
17003
|
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,
|
|
17004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
17005
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17006
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.secondary, children: marker }),
|
|
17007
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17008
|
+
safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16906
17009
|
safeOldPath,
|
|
16907
17010
|
" \u2192 "
|
|
16908
17011
|
] }) : null,
|
|
16909
|
-
/* @__PURE__ */ (0,
|
|
16910
|
-
/* @__PURE__ */ (0,
|
|
17012
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
|
|
17013
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16911
17014
|
" ",
|
|
16912
17015
|
suffix2
|
|
16913
17016
|
] })
|
|
@@ -16921,24 +17024,24 @@ var DiffRow = /* @__PURE__ */ __name(({
|
|
|
16921
17024
|
} else if (row.isDeleted) {
|
|
16922
17025
|
suffix = t("(deleted)");
|
|
16923
17026
|
}
|
|
16924
|
-
return /* @__PURE__ */ (0,
|
|
16925
|
-
/* @__PURE__ */ (0,
|
|
16926
|
-
/* @__PURE__ */ (0,
|
|
17027
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { children: [
|
|
17028
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17029
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.success, children: [
|
|
16927
17030
|
"+",
|
|
16928
17031
|
added
|
|
16929
17032
|
] }),
|
|
16930
|
-
/* @__PURE__ */ (0,
|
|
16931
|
-
/* @__PURE__ */ (0,
|
|
17033
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17034
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.status.error, children: [
|
|
16932
17035
|
"-",
|
|
16933
17036
|
removed
|
|
16934
17037
|
] }),
|
|
16935
|
-
/* @__PURE__ */ (0,
|
|
16936
|
-
safeOldPath ? /* @__PURE__ */ (0,
|
|
17038
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: " " }),
|
|
17039
|
+
safeOldPath ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16937
17040
|
safeOldPath,
|
|
16938
17041
|
" \u2192 "
|
|
16939
17042
|
] }) : null,
|
|
16940
|
-
/* @__PURE__ */ (0,
|
|
16941
|
-
suffix && /* @__PURE__ */ (0,
|
|
17043
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Text, { color: theme.text.primary, children: safeName }),
|
|
17044
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
16942
17045
|
" ",
|
|
16943
17046
|
suffix
|
|
16944
17047
|
] })
|
|
@@ -16952,7 +17055,7 @@ __name(padRight, "padRight");
|
|
|
16952
17055
|
// packages/cli/src/ui/components/messages/GoalStatusMessage.tsx
|
|
16953
17056
|
init_esbuild_shims();
|
|
16954
17057
|
var import_react43 = __toESM(require_react(), 1);
|
|
16955
|
-
var
|
|
17058
|
+
var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
|
|
16956
17059
|
var pluralTurns = /* @__PURE__ */ __name((n) => n === 1 ? "turn" : "turns", "pluralTurns");
|
|
16957
17060
|
function assertNeverGoalStatusKind(kind) {
|
|
16958
17061
|
throw new Error(`Unexpected goal status kind: ${kind}`);
|
|
@@ -16965,9 +17068,9 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
16965
17068
|
const goal = snapshot.goal;
|
|
16966
17069
|
if (!goal) {
|
|
16967
17070
|
if (cause !== "clear") return null;
|
|
16968
|
-
return /* @__PURE__ */ (0,
|
|
16969
|
-
/* @__PURE__ */ (0,
|
|
16970
|
-
/* @__PURE__ */ (0,
|
|
17071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17072
|
+
/* @__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 }) }),
|
|
17073
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: theme.text.secondary, children: "Goal cleared" })
|
|
16971
17074
|
] });
|
|
16972
17075
|
}
|
|
16973
17076
|
const lifecycle = (() => {
|
|
@@ -17025,21 +17128,21 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
17025
17128
|
}
|
|
17026
17129
|
const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
|
|
17027
17130
|
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,
|
|
17131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17132
|
+
/* @__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 }) }),
|
|
17133
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17134
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: lifecycle.color, children: [
|
|
17032
17135
|
lifecycle.title,
|
|
17033
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
17136
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17034
17137
|
" \xB7 ",
|
|
17035
17138
|
subtitle
|
|
17036
17139
|
] }) : null
|
|
17037
17140
|
] }),
|
|
17038
|
-
/* @__PURE__ */ (0,
|
|
17039
|
-
/* @__PURE__ */ (0,
|
|
17040
|
-
/* @__PURE__ */ (0,
|
|
17141
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17142
|
+
/* @__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:" }) }),
|
|
17143
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: goal.objective }) })
|
|
17041
17144
|
] }),
|
|
17042
|
-
reason ? /* @__PURE__ */ (0,
|
|
17145
|
+
reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17043
17146
|
"Reason: ",
|
|
17044
17147
|
reason
|
|
17045
17148
|
] }) : null
|
|
@@ -17047,24 +17150,24 @@ var GoalStateCard = /* @__PURE__ */ __name(({
|
|
|
17047
17150
|
] });
|
|
17048
17151
|
}, "GoalStateCard");
|
|
17049
17152
|
var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
|
|
17050
|
-
if (props.snapshot) return /* @__PURE__ */ (0,
|
|
17153
|
+
if (props.snapshot) return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(GoalStateCard, { ...props });
|
|
17051
17154
|
const { kind, condition, iterations, durationMs, lastReason } = props;
|
|
17052
17155
|
if (kind === "checking") {
|
|
17053
17156
|
const reason = lastReason?.trim();
|
|
17054
|
-
return /* @__PURE__ */ (0,
|
|
17055
|
-
/* @__PURE__ */ (0,
|
|
17056
|
-
/* @__PURE__ */ (0,
|
|
17057
|
-
/* @__PURE__ */ (0,
|
|
17157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17158
|
+
/* @__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 }) }),
|
|
17159
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17160
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17058
17161
|
"Goal check",
|
|
17059
17162
|
typeof iterations === "number" && iterations > 0 ? ` \xB7 turn ${iterations}` : "",
|
|
17060
17163
|
" ",
|
|
17061
17164
|
"\xB7 not yet met"
|
|
17062
17165
|
] }),
|
|
17063
|
-
/* @__PURE__ */ (0,
|
|
17166
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17064
17167
|
"Goal: ",
|
|
17065
17168
|
condition
|
|
17066
17169
|
] }),
|
|
17067
|
-
reason ? /* @__PURE__ */ (0,
|
|
17170
|
+
reason ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17068
17171
|
"Judge: ",
|
|
17069
17172
|
reason
|
|
17070
17173
|
] }) : null
|
|
@@ -17121,21 +17224,21 @@ var GoalStatusMessageInternal = /* @__PURE__ */ __name((props) => {
|
|
|
17121
17224
|
stats.push(formatDuration(durationMs, { hideTrailingZeros: true }));
|
|
17122
17225
|
}
|
|
17123
17226
|
const subtitle = stats.length > 0 ? stats.join(" \xB7 ") : null;
|
|
17124
|
-
return /* @__PURE__ */ (0,
|
|
17125
|
-
/* @__PURE__ */ (0,
|
|
17126
|
-
/* @__PURE__ */ (0,
|
|
17127
|
-
/* @__PURE__ */ (0,
|
|
17227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17228
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { width: 2, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { color: prefixColor, children: prefix }) }),
|
|
17229
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexGrow: 1, flexDirection: "column", children: [
|
|
17230
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: prefixColor, children: [
|
|
17128
17231
|
title,
|
|
17129
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
17232
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17130
17233
|
" \xB7 ",
|
|
17131
17234
|
subtitle
|
|
17132
17235
|
] }) : null
|
|
17133
17236
|
] }),
|
|
17134
|
-
/* @__PURE__ */ (0,
|
|
17135
|
-
/* @__PURE__ */ (0,
|
|
17136
|
-
/* @__PURE__ */ (0,
|
|
17237
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17238
|
+
/* @__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:" }) }),
|
|
17239
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { wrap: "wrap", children: condition }) })
|
|
17137
17240
|
] }),
|
|
17138
|
-
isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0,
|
|
17241
|
+
isTerminalGoalStatusKind(kind) && lastReason?.trim() ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Text, { color: theme.text.secondary, wrap: "wrap", children: [
|
|
17139
17242
|
"Last check: ",
|
|
17140
17243
|
lastReason.trim()
|
|
17141
17244
|
] }) : null
|
|
@@ -17158,7 +17261,7 @@ var useThoughtExpanded = /* @__PURE__ */ __name(() => (0, import_react44.useCont
|
|
|
17158
17261
|
var ThoughtExpandedProvider = ThoughtExpandedContext.Provider;
|
|
17159
17262
|
|
|
17160
17263
|
// packages/cli/src/ui/components/HistoryItemDisplay.tsx
|
|
17161
|
-
var
|
|
17264
|
+
var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
|
|
17162
17265
|
var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
17163
17266
|
text,
|
|
17164
17267
|
isPending,
|
|
@@ -17207,7 +17310,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
|
17207
17310
|
),
|
|
17208
17311
|
{ isActive }
|
|
17209
17312
|
);
|
|
17210
|
-
return /* @__PURE__ */ (0,
|
|
17313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { ref: isActive ? ref : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17211
17314
|
ThinkMessage,
|
|
17212
17315
|
{
|
|
17213
17316
|
text,
|
|
@@ -17284,7 +17387,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17284
17387
|
const itemForDisplay = (0, import_react45.useMemo)(() => escapeAnsiCtrlCodes(item), [item]);
|
|
17285
17388
|
const contentWidth = terminalWidth - 4;
|
|
17286
17389
|
const boxWidth = mainAreaWidth || contentWidth;
|
|
17287
|
-
return /* @__PURE__ */ (0,
|
|
17390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
17288
17391
|
Box_default,
|
|
17289
17392
|
{
|
|
17290
17393
|
flexDirection: "column",
|
|
@@ -17292,11 +17395,11 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17292
17395
|
marginLeft: 2,
|
|
17293
17396
|
marginRight: 2,
|
|
17294
17397
|
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,
|
|
17398
|
+
itemForDisplay.type === "user" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserMessage, { text: itemForDisplay.text }),
|
|
17399
|
+
itemForDisplay.type === "notification" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InfoMessage, { text: itemForDisplay.text }),
|
|
17400
|
+
itemForDisplay.type === "user_shell" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(UserShellMessage, { text: itemForDisplay.text }),
|
|
17401
|
+
itemForDisplay.type === "gemini" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
|
|
17402
|
+
showTimestamps && itemForDisplay.timestamp != null && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Text, { dimColor: true, children: [
|
|
17300
17403
|
"[",
|
|
17301
17404
|
new Date(itemForDisplay.timestamp).toLocaleTimeString("en-US", {
|
|
17302
17405
|
hour12: false,
|
|
@@ -17306,7 +17409,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17306
17409
|
}),
|
|
17307
17410
|
"]"
|
|
17308
17411
|
] }),
|
|
17309
|
-
/* @__PURE__ */ (0,
|
|
17412
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17310
17413
|
AssistantMessage,
|
|
17311
17414
|
{
|
|
17312
17415
|
text: itemForDisplay.text,
|
|
@@ -17319,7 +17422,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17319
17422
|
}
|
|
17320
17423
|
)
|
|
17321
17424
|
] }),
|
|
17322
|
-
itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0,
|
|
17425
|
+
itemForDisplay.type === "gemini_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17323
17426
|
AssistantMessageContent,
|
|
17324
17427
|
{
|
|
17325
17428
|
text: itemForDisplay.text,
|
|
@@ -17331,7 +17434,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17331
17434
|
sourceCopyIndexOffsets
|
|
17332
17435
|
}
|
|
17333
17436
|
),
|
|
17334
|
-
itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0,
|
|
17437
|
+
itemForDisplay.type === "gemini_thought" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17335
17438
|
ClickableThinkMessage,
|
|
17336
17439
|
{
|
|
17337
17440
|
text: itemForDisplay.text.trimEnd(),
|
|
@@ -17343,7 +17446,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17343
17446
|
onToggle: () => toggleThought(thoughtGroupHeadId)
|
|
17344
17447
|
}
|
|
17345
17448
|
),
|
|
17346
|
-
itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0,
|
|
17449
|
+
itemForDisplay.type === "gemini_thought_content" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17347
17450
|
ThinkMessageContent,
|
|
17348
17451
|
{
|
|
17349
17452
|
text: itemForDisplay.text.trimEnd(),
|
|
@@ -17353,7 +17456,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17353
17456
|
contentWidth
|
|
17354
17457
|
}
|
|
17355
17458
|
),
|
|
17356
|
-
itemForDisplay.type === "info" && /* @__PURE__ */ (0,
|
|
17459
|
+
itemForDisplay.type === "info" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17357
17460
|
InfoMessage,
|
|
17358
17461
|
{
|
|
17359
17462
|
text: itemForDisplay.text,
|
|
@@ -17361,26 +17464,26 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17361
17464
|
linkText: itemForDisplay.linkText
|
|
17362
17465
|
}
|
|
17363
17466
|
),
|
|
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,
|
|
17467
|
+
itemForDisplay.type === "success" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SuccessMessage, { text: itemForDisplay.text }),
|
|
17468
|
+
itemForDisplay.type === "warning" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(WarningMessage, { text: itemForDisplay.text }),
|
|
17469
|
+
itemForDisplay.type === "error" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ErrorMessage, { text: itemForDisplay.text, hint: itemForDisplay.hint }),
|
|
17470
|
+
itemForDisplay.type === "retry_countdown" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RetryCountdownMessage, { text: itemForDisplay.text }),
|
|
17471
|
+
itemForDisplay.type === "vision_notice" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(VisionNoticeMessage, { text: itemForDisplay.text }),
|
|
17472
|
+
itemForDisplay.type === "about" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AboutBox, { ...itemForDisplay.systemInfo, width: boxWidth }),
|
|
17473
|
+
itemForDisplay.type === "help" && commands && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Help, { commands, width: boxWidth }),
|
|
17474
|
+
itemForDisplay.type === "stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StatsDisplay, { duration: itemForDisplay.duration, width: boxWidth }),
|
|
17475
|
+
itemForDisplay.type === "diff_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DiffStatsDisplay, { model: itemForDisplay.model }),
|
|
17476
|
+
itemForDisplay.type === "model_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModelStatsDisplay, { width: boxWidth }),
|
|
17477
|
+
itemForDisplay.type === "tool_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToolStatsDisplay, { width: boxWidth }),
|
|
17478
|
+
itemForDisplay.type === "skill_stats" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillStatsDisplay, { width: boxWidth }),
|
|
17479
|
+
itemForDisplay.type === "quit" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17377
17480
|
SessionSummaryDisplay,
|
|
17378
17481
|
{
|
|
17379
17482
|
duration: itemForDisplay.duration,
|
|
17380
17483
|
width: boxWidth
|
|
17381
17484
|
}
|
|
17382
17485
|
),
|
|
17383
|
-
itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0,
|
|
17486
|
+
itemForDisplay.type === "tool_group" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17384
17487
|
ToolGroupMessage,
|
|
17385
17488
|
{
|
|
17386
17489
|
toolCalls: itemForDisplay.tools,
|
|
@@ -17397,14 +17500,14 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17397
17500
|
fullDetail
|
|
17398
17501
|
}
|
|
17399
17502
|
),
|
|
17400
|
-
itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0,
|
|
17401
|
-
/* @__PURE__ */ (0,
|
|
17402
|
-
/* @__PURE__ */ (0,
|
|
17503
|
+
itemForDisplay.type === "tool_use_summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
17504
|
+
/* @__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 }) }),
|
|
17505
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { dimColor: true, children: itemForDisplay.summary })
|
|
17403
17506
|
] }),
|
|
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,
|
|
17507
|
+
itemForDisplay.type === "compression" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CompressionMessage, { compression: itemForDisplay.compression }),
|
|
17508
|
+
itemForDisplay.type === "summary" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SummaryMessage, { summary: itemForDisplay.summary }),
|
|
17509
|
+
itemForDisplay.type === "extensions_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ExtensionsList, {}),
|
|
17510
|
+
itemForDisplay.type === "tools_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17408
17511
|
ToolsList,
|
|
17409
17512
|
{
|
|
17410
17513
|
contentWidth,
|
|
@@ -17412,9 +17515,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17412
17515
|
showDescriptions: itemForDisplay.showDescriptions
|
|
17413
17516
|
}
|
|
17414
17517
|
),
|
|
17415
|
-
itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0,
|
|
17416
|
-
itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0,
|
|
17417
|
-
itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0,
|
|
17518
|
+
itemForDisplay.type === "skills_list" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SkillsList, { skills: itemForDisplay.skills }),
|
|
17519
|
+
itemForDisplay.type === "mcp_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }),
|
|
17520
|
+
itemForDisplay.type === "context_usage" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17418
17521
|
ContextUsage,
|
|
17419
17522
|
{
|
|
17420
17523
|
modelName: itemForDisplay.modelName,
|
|
@@ -17429,7 +17532,7 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17429
17532
|
showDetails: itemForDisplay.showDetails
|
|
17430
17533
|
}
|
|
17431
17534
|
),
|
|
17432
|
-
itemForDisplay.type === "doctor" && /* @__PURE__ */ (0,
|
|
17535
|
+
itemForDisplay.type === "doctor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17433
17536
|
DoctorReport,
|
|
17434
17537
|
{
|
|
17435
17538
|
checks: itemForDisplay.checks,
|
|
@@ -17437,8 +17540,8 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17437
17540
|
width: boxWidth
|
|
17438
17541
|
}
|
|
17439
17542
|
),
|
|
17440
|
-
itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0,
|
|
17441
|
-
itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0,
|
|
17543
|
+
itemForDisplay.type === "arena_agent_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ArenaAgentCard, { agent: itemForDisplay.agent, width: boxWidth }),
|
|
17544
|
+
itemForDisplay.type === "arena_session_complete" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17442
17545
|
ArenaSessionCard,
|
|
17443
17546
|
{
|
|
17444
17547
|
sessionStatus: itemForDisplay.sessionStatus,
|
|
@@ -17448,9 +17551,9 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17448
17551
|
width: boxWidth
|
|
17449
17552
|
}
|
|
17450
17553
|
),
|
|
17451
|
-
itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0,
|
|
17452
|
-
itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0,
|
|
17453
|
-
itemForDisplay.type === "advisor" && /* @__PURE__ */ (0,
|
|
17554
|
+
itemForDisplay.type === "insight_progress" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(InsightProgressMessage, { progress: itemForDisplay.progress }),
|
|
17555
|
+
itemForDisplay.type === "btw" && itemForDisplay.btw && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BtwMessage, { btw: itemForDisplay.btw, containerWidth: contentWidth }),
|
|
17556
|
+
itemForDisplay.type === "advisor" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17454
17557
|
AdvisorMessage,
|
|
17455
17558
|
{
|
|
17456
17559
|
text: itemForDisplay.text,
|
|
@@ -17458,20 +17561,20 @@ var HistoryItemDisplayComponent = /* @__PURE__ */ __name(({
|
|
|
17458
17561
|
containerWidth: contentWidth
|
|
17459
17562
|
}
|
|
17460
17563
|
),
|
|
17461
|
-
itemForDisplay.type === "user_prompt_submit_blocked" && /* @__PURE__ */ (0,
|
|
17564
|
+
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
17565
|
${itemForDisplay.reason}
|
|
17463
17566
|
|
|
17464
17567
|
Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
17465
|
-
itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0,
|
|
17568
|
+
itemForDisplay.type === "stop_hook_loop" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17466
17569
|
InfoMessage,
|
|
17467
17570
|
{
|
|
17468
17571
|
text: `Ran ${itemForDisplay.stopHookCount} stop hooks
|
|
17469
17572
|
\u23BF Stop hook error: ${itemForDisplay.reasons[itemForDisplay.reasons.length - 1]}`
|
|
17470
17573
|
}
|
|
17471
17574
|
),
|
|
17472
|
-
itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0,
|
|
17473
|
-
/* @__PURE__ */ (0,
|
|
17474
|
-
/* @__PURE__ */ (0,
|
|
17575
|
+
itemForDisplay.type === "stop_hook_system_message" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
17576
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Text, { color: theme.text.primary, children: " \u23BF Stop says:" }),
|
|
17577
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Box_default, { marginLeft: 4, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17475
17578
|
MarkdownDisplay,
|
|
17476
17579
|
{
|
|
17477
17580
|
text: itemForDisplay.message,
|
|
@@ -17480,9 +17583,9 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
|
17480
17583
|
}
|
|
17481
17584
|
) })
|
|
17482
17585
|
] }),
|
|
17483
|
-
itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0,
|
|
17484
|
-
itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0,
|
|
17485
|
-
itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0,
|
|
17586
|
+
itemForDisplay.type === "memory_saved" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(MemorySavedMessage, { item: itemForDisplay }),
|
|
17587
|
+
itemForDisplay.type === "away_recap" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AwayRecapMessage, { text: itemForDisplay.text }),
|
|
17588
|
+
itemForDisplay.type === "goal_status" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17486
17589
|
GoalStatusMessage,
|
|
17487
17590
|
{
|
|
17488
17591
|
kind: itemForDisplay.kind,
|
|
@@ -17492,7 +17595,7 @@ Original prompt: ${sanitizeSensitiveText(itemForDisplay.originalPrompt)}` }) }),
|
|
|
17492
17595
|
lastReason: itemForDisplay.lastReason
|
|
17493
17596
|
}
|
|
17494
17597
|
),
|
|
17495
|
-
itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0,
|
|
17598
|
+
itemForDisplay.type === "goal_state" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
17496
17599
|
GoalStatusMessage,
|
|
17497
17600
|
{
|
|
17498
17601
|
snapshot: itemForDisplay.snapshot,
|
|
@@ -17508,7 +17611,7 @@ var HistoryItemDisplay = (0, import_react45.memo)(HistoryItemDisplayComponent);
|
|
|
17508
17611
|
HistoryItemDisplay.displayName = "HistoryItemDisplay";
|
|
17509
17612
|
|
|
17510
17613
|
// packages/cli/src/ui/components/SessionPreview.tsx
|
|
17511
|
-
var
|
|
17614
|
+
var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
|
|
17512
17615
|
function SessionPreview(props) {
|
|
17513
17616
|
const {
|
|
17514
17617
|
sessionService,
|
|
@@ -17583,19 +17686,19 @@ function SessionPreview(props) {
|
|
|
17583
17686
|
metaParts.push(gitBranch);
|
|
17584
17687
|
}
|
|
17585
17688
|
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,
|
|
17689
|
+
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");
|
|
17690
|
+
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");
|
|
17691
|
+
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");
|
|
17692
|
+
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;
|
|
17693
|
+
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
17694
|
if (data && !error) {
|
|
17592
|
-
return /* @__PURE__ */ (0,
|
|
17695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Box_default, { flexDirection: "column", width: boxWidth, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
17593
17696
|
Static,
|
|
17594
17697
|
{
|
|
17595
17698
|
items: [
|
|
17596
17699
|
header,
|
|
17597
17700
|
topSeparator,
|
|
17598
|
-
...items.map((item) => /* @__PURE__ */ (0,
|
|
17701
|
+
...items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
17599
17702
|
HistoryItemDisplay,
|
|
17600
17703
|
{
|
|
17601
17704
|
item,
|
|
@@ -17614,10 +17717,10 @@ function SessionPreview(props) {
|
|
|
17614
17717
|
sessionId
|
|
17615
17718
|
) });
|
|
17616
17719
|
}
|
|
17617
|
-
return /* @__PURE__ */ (0,
|
|
17720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Box_default, { flexDirection: "column", width: boxWidth, children: [
|
|
17618
17721
|
header,
|
|
17619
17722
|
topSeparator,
|
|
17620
|
-
error ? /* @__PURE__ */ (0,
|
|
17723
|
+
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
17724
|
footerSeparator,
|
|
17622
17725
|
meta,
|
|
17623
17726
|
footer
|
|
@@ -17626,7 +17729,7 @@ function SessionPreview(props) {
|
|
|
17626
17729
|
__name(SessionPreview, "SessionPreview");
|
|
17627
17730
|
|
|
17628
17731
|
// packages/cli/src/ui/components/SessionPicker.tsx
|
|
17629
|
-
var
|
|
17732
|
+
var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
|
|
17630
17733
|
var PREFIX_CHARS = {
|
|
17631
17734
|
selected: "\u203A ",
|
|
17632
17735
|
scrollUp: "\u2191 ",
|
|
@@ -17659,9 +17762,9 @@ function SessionListItemView({
|
|
|
17659
17762
|
Math.max(1, maxPromptWidth - checkboxWidth)
|
|
17660
17763
|
);
|
|
17661
17764
|
const isAutoTitle = session.titleSource === "auto" && Boolean(session.customTitle);
|
|
17662
|
-
return /* @__PURE__ */ (0,
|
|
17663
|
-
/* @__PURE__ */ (0,
|
|
17664
|
-
/* @__PURE__ */ (0,
|
|
17765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { flexDirection: "column", marginBottom: isLast ? 0 : 1, children: [
|
|
17766
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { children: [
|
|
17767
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17665
17768
|
Text,
|
|
17666
17769
|
{
|
|
17667
17770
|
color: isSelected ? theme.text.accent : showUpIndicator || showDownIndicator ? theme.text.secondary : void 0,
|
|
@@ -17669,7 +17772,7 @@ function SessionListItemView({
|
|
|
17669
17772
|
children: prefix
|
|
17670
17773
|
}
|
|
17671
17774
|
),
|
|
17672
|
-
isChecked !== void 0 && /* @__PURE__ */ (0,
|
|
17775
|
+
isChecked !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17673
17776
|
Text,
|
|
17674
17777
|
{
|
|
17675
17778
|
color: isDisabled ? theme.text.secondary : isChecked ? theme.text.accent : isSelected ? theme.text.accent : theme.text.secondary,
|
|
@@ -17677,7 +17780,7 @@ function SessionListItemView({
|
|
|
17677
17780
|
children: isChecked ? "[x] " : "[ ] "
|
|
17678
17781
|
}
|
|
17679
17782
|
),
|
|
17680
|
-
/* @__PURE__ */ (0,
|
|
17783
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17681
17784
|
Text,
|
|
17682
17785
|
{
|
|
17683
17786
|
color: isDisabled ? theme.text.secondary : isSelected ? theme.text.accent : isAutoTitle ? theme.text.secondary : theme.text.primary,
|
|
@@ -17686,7 +17789,7 @@ function SessionListItemView({
|
|
|
17686
17789
|
}
|
|
17687
17790
|
)
|
|
17688
17791
|
] }),
|
|
17689
|
-
/* @__PURE__ */ (0,
|
|
17792
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17690
17793
|
timeAgo,
|
|
17691
17794
|
messageText !== void 0 && ` \xB7 ${messageText}`,
|
|
17692
17795
|
session.gitBranch && ` \xB7 ${session.gitBranch}`,
|
|
@@ -17735,7 +17838,7 @@ function SessionPicker(props) {
|
|
|
17735
17838
|
const previewed = picker.filteredSessions.find(
|
|
17736
17839
|
(s) => s.sessionId === picker.previewSessionId
|
|
17737
17840
|
);
|
|
17738
|
-
return /* @__PURE__ */ (0,
|
|
17841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17739
17842
|
SessionPreview,
|
|
17740
17843
|
{
|
|
17741
17844
|
sessionService,
|
|
@@ -17749,14 +17852,14 @@ function SessionPicker(props) {
|
|
|
17749
17852
|
}
|
|
17750
17853
|
);
|
|
17751
17854
|
}
|
|
17752
|
-
return /* @__PURE__ */ (0,
|
|
17855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17753
17856
|
Box_default,
|
|
17754
17857
|
{
|
|
17755
17858
|
flexDirection: "column",
|
|
17756
17859
|
width: boxWidth,
|
|
17757
17860
|
height: height - 1,
|
|
17758
17861
|
overflow: "hidden",
|
|
17759
|
-
children: /* @__PURE__ */ (0,
|
|
17862
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
17760
17863
|
Box_default,
|
|
17761
17864
|
{
|
|
17762
17865
|
flexDirection: "column",
|
|
@@ -17766,38 +17869,38 @@ function SessionPicker(props) {
|
|
|
17766
17869
|
height: height - 1,
|
|
17767
17870
|
overflow: "hidden",
|
|
17768
17871
|
children: [
|
|
17769
|
-
/* @__PURE__ */ (0,
|
|
17770
|
-
/* @__PURE__ */ (0,
|
|
17771
|
-
picker.filterByBranch && currentBranch && /* @__PURE__ */ (0,
|
|
17872
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Box_default, { paddingX: 1, children: [
|
|
17873
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { bold: true, color: theme.text.primary, children: title ?? t("Resume Session") }),
|
|
17874
|
+
picker.filterByBranch && currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17772
17875
|
" ",
|
|
17773
17876
|
t("(branch: {{branch}})", { branch: currentBranch })
|
|
17774
17877
|
] }),
|
|
17775
|
-
picker.searchQuery !== "" && /* @__PURE__ */ (0,
|
|
17878
|
+
picker.searchQuery !== "" && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17776
17879
|
" ",
|
|
17777
17880
|
t("({{count}} matches)", {
|
|
17778
17881
|
count: String(picker.filteredSessions.length)
|
|
17779
17882
|
})
|
|
17780
17883
|
] })
|
|
17781
17884
|
] }),
|
|
17782
|
-
/* @__PURE__ */ (0,
|
|
17783
|
-
/* @__PURE__ */ (0,
|
|
17784
|
-
/* @__PURE__ */ (0,
|
|
17885
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Box_default, { paddingX: 1, children: picker.isSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
17886
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Search: ") }),
|
|
17887
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.primary, children: [
|
|
17785
17888
|
picker.searchQuery,
|
|
17786
|
-
/* @__PURE__ */ (0,
|
|
17889
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: "\u258C" })
|
|
17787
17890
|
] })
|
|
17788
|
-
] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0,
|
|
17789
|
-
/* @__PURE__ */ (0,
|
|
17790
|
-
/* @__PURE__ */ (0,
|
|
17791
|
-
] }) : /* @__PURE__ */ (0,
|
|
17792
|
-
/* @__PURE__ */ (0,
|
|
17793
|
-
/* @__PURE__ */ (0,
|
|
17891
|
+
] }) : picker.searchQuery !== "" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
|
|
17892
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Filter: ") }),
|
|
17893
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.primary, children: picker.searchQuery })
|
|
17894
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Press / to search") }) }),
|
|
17895
|
+
/* @__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) }) }),
|
|
17896
|
+
/* @__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
17897
|
query: picker.searchQuery
|
|
17795
17898
|
}) : picker.filterByBranch ? t('No sessions found for branch "{{branch}}"', {
|
|
17796
17899
|
branch: currentBranch ?? ""
|
|
17797
17900
|
}) : t("No sessions found") }) }) : picker.visibleSessions.map((session, visibleIndex) => {
|
|
17798
17901
|
const actualIndex = picker.scrollOffset + visibleIndex;
|
|
17799
17902
|
const isDisabled = picker.disabledIdSet.has(session.sessionId);
|
|
17800
|
-
return /* @__PURE__ */ (0,
|
|
17903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17801
17904
|
SessionListItemView,
|
|
17802
17905
|
{
|
|
17803
17906
|
session,
|
|
@@ -17816,10 +17919,10 @@ function SessionPicker(props) {
|
|
|
17816
17919
|
session.sessionId
|
|
17817
17920
|
);
|
|
17818
17921
|
}) }),
|
|
17819
|
-
/* @__PURE__ */ (0,
|
|
17820
|
-
/* @__PURE__ */ (0,
|
|
17821
|
-
currentBranch && /* @__PURE__ */ (0,
|
|
17822
|
-
/* @__PURE__ */ (0,
|
|
17922
|
+
/* @__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) }) }),
|
|
17923
|
+
/* @__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: [
|
|
17924
|
+
currentBranch && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
17925
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
17823
17926
|
Text,
|
|
17824
17927
|
{
|
|
17825
17928
|
bold: picker.filterByBranch,
|
|
@@ -17829,7 +17932,7 @@ function SessionPicker(props) {
|
|
|
17829
17932
|
),
|
|
17830
17933
|
t(" to toggle branch \xB7 ")
|
|
17831
17934
|
] }),
|
|
17832
|
-
enablePreview && /* @__PURE__ */ (0,
|
|
17935
|
+
enablePreview && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: t("Space to preview \xB7 ") }),
|
|
17833
17936
|
enableMultiSelect && (() => {
|
|
17834
17937
|
let committableCheckedCount = 0;
|
|
17835
17938
|
for (const id of picker.checkedIds) {
|
|
@@ -17837,11 +17940,11 @@ function SessionPicker(props) {
|
|
|
17837
17940
|
committableCheckedCount++;
|
|
17838
17941
|
}
|
|
17839
17942
|
}
|
|
17840
|
-
return /* @__PURE__ */ (0,
|
|
17943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text, { color: theme.text.secondary, children: committableCheckedCount > 0 ? t("Space to toggle \xB7 {{count}} selected \xB7 ", {
|
|
17841
17944
|
count: String(committableCheckedCount)
|
|
17842
17945
|
}) : t("Space to select multiple \xB7 ") });
|
|
17843
17946
|
})(),
|
|
17844
|
-
/* @__PURE__ */ (0,
|
|
17947
|
+
/* @__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
17948
|
] }) }) })
|
|
17846
17949
|
]
|
|
17847
17950
|
}
|