@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
defaultModalities
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XBVNNDPK.js";
|
|
6
6
|
import {
|
|
7
7
|
Mutex
|
|
8
8
|
} from "./chunk-VGC4I5JJ.js";
|
|
@@ -14,23 +14,23 @@ import {
|
|
|
14
14
|
isCacheableReadResult,
|
|
15
15
|
parsePDFPageRange,
|
|
16
16
|
processSingleFileContent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BKWNKLZB.js";
|
|
18
18
|
import {
|
|
19
19
|
isAnyAutoMemPath
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-6PJOTWAN.js";
|
|
21
21
|
import {
|
|
22
22
|
runSideQuery
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-BWORX6FA.js";
|
|
24
24
|
import {
|
|
25
25
|
generateLegacyMcpToolName,
|
|
26
26
|
normalizeToolNameForProvider
|
|
27
27
|
} from "./chunk-WZAD4ZNJ.js";
|
|
28
28
|
import {
|
|
29
29
|
InstallationManager
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-6DIGWMGT.js";
|
|
31
31
|
import {
|
|
32
32
|
atomicWriteFile
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-23RFD54N.js";
|
|
34
34
|
import {
|
|
35
35
|
safeJsonStringify
|
|
36
36
|
} from "./chunk-HHJLM3WQ.js";
|
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
recordTokenUsageMetrics,
|
|
103
103
|
recordToolCallMetrics,
|
|
104
104
|
recordToolExecutionMetrics
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-B5PHIJGI.js";
|
|
106
106
|
import {
|
|
107
107
|
SemanticAttributes,
|
|
108
108
|
init_esm,
|
|
@@ -110,14 +110,14 @@ import {
|
|
|
110
110
|
} from "./chunk-74TONY4F.js";
|
|
111
111
|
import {
|
|
112
112
|
STRUCTURED_OUTPUT_REDACTED_ARGS
|
|
113
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-XF63PKEN.js";
|
|
114
114
|
import {
|
|
115
115
|
BaseDeclarativeTool,
|
|
116
116
|
BaseToolInvocation,
|
|
117
117
|
StructuredToolError,
|
|
118
118
|
ToolDisplayNames,
|
|
119
119
|
ToolNames
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-UTLCH2FK.js";
|
|
121
121
|
import {
|
|
122
122
|
Storage,
|
|
123
123
|
createDebugLogger,
|
|
@@ -128,7 +128,7 @@ import {
|
|
|
128
128
|
realpathNearestExisting,
|
|
129
129
|
shortenPath,
|
|
130
130
|
unescapePath
|
|
131
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-UHQFIS7N.js";
|
|
132
132
|
import {
|
|
133
133
|
require_dist
|
|
134
134
|
} from "./chunk-75DOP5OR.js";
|
|
@@ -2757,6 +2757,7 @@ init_esbuild_shims();
|
|
|
2757
2757
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2758
2758
|
var MAIN_SOURCE = "main";
|
|
2759
2759
|
var subagentNameContext = new AsyncLocalStorage();
|
|
2760
|
+
var subagentIdentityContext = new AsyncLocalStorage();
|
|
2760
2761
|
|
|
2761
2762
|
// packages/core/src/telemetry/uiTelemetry.ts
|
|
2762
2763
|
var createInitialModelMetricsCore = /* @__PURE__ */ __name(() => ({
|
|
@@ -2777,6 +2778,34 @@ var createInitialModelMetrics = /* @__PURE__ */ __name(() => ({
|
|
|
2777
2778
|
...createInitialModelMetricsCore(),
|
|
2778
2779
|
bySource: /* @__PURE__ */ Object.create(null)
|
|
2779
2780
|
}), "createInitialModelMetrics");
|
|
2781
|
+
var cloneSessionMetrics = /* @__PURE__ */ __name((metrics) => {
|
|
2782
|
+
const clone = structuredClone(metrics);
|
|
2783
|
+
for (const model of Object.values(clone.models)) {
|
|
2784
|
+
model.bySource = Object.assign(
|
|
2785
|
+
/* @__PURE__ */ Object.create(null),
|
|
2786
|
+
model.bySource
|
|
2787
|
+
);
|
|
2788
|
+
}
|
|
2789
|
+
if (clone.sourceMeta) {
|
|
2790
|
+
clone.sourceMeta = Object.assign(
|
|
2791
|
+
/* @__PURE__ */ Object.create(null),
|
|
2792
|
+
clone.sourceMeta
|
|
2793
|
+
);
|
|
2794
|
+
}
|
|
2795
|
+
if (clone.sourceMetrics) {
|
|
2796
|
+
clone.sourceMetrics = Object.assign(
|
|
2797
|
+
/* @__PURE__ */ Object.create(null),
|
|
2798
|
+
clone.sourceMetrics
|
|
2799
|
+
);
|
|
2800
|
+
}
|
|
2801
|
+
if (clone.statsModels) {
|
|
2802
|
+
clone.statsModels = Object.assign(
|
|
2803
|
+
/* @__PURE__ */ Object.create(null),
|
|
2804
|
+
clone.statsModels
|
|
2805
|
+
);
|
|
2806
|
+
}
|
|
2807
|
+
return clone;
|
|
2808
|
+
}, "cloneSessionMetrics");
|
|
2780
2809
|
var createInitialSkillMetrics = /* @__PURE__ */ __name(() => ({
|
|
2781
2810
|
totalCalls: 0,
|
|
2782
2811
|
totalSuccess: 0,
|
|
@@ -2789,6 +2818,21 @@ var createInitialGenerationMetrics = /* @__PURE__ */ __name(() => ({
|
|
|
2789
2818
|
totalGenerationDurationMs: 0,
|
|
2790
2819
|
totalThroughputOutputTokens: 0
|
|
2791
2820
|
}), "createInitialGenerationMetrics");
|
|
2821
|
+
var getEventTotalTokenCount = /* @__PURE__ */ __name((event) => {
|
|
2822
|
+
if (event.total_token_count > 0) return event.total_token_count;
|
|
2823
|
+
const input = event.input_token_count > 0 ? event.input_token_count : event.cached_content_token_count;
|
|
2824
|
+
const thoughtsIncludedInOutput = event.auth_type === "openai" || event.auth_type === "qwen-oauth";
|
|
2825
|
+
return input + event.output_token_count + (thoughtsIncludedInOutput ? 0 : event.thoughts_token_count);
|
|
2826
|
+
}, "getEventTotalTokenCount");
|
|
2827
|
+
var getLegacySubagentId = /* @__PURE__ */ __name((event, sessionId) => {
|
|
2828
|
+
if (!sessionId || !event.subagent_name || !event.prompt_id || isInternalPromptId(event.prompt_id)) {
|
|
2829
|
+
return void 0;
|
|
2830
|
+
}
|
|
2831
|
+
const parts = event.prompt_id.split("#");
|
|
2832
|
+
if (parts.length !== 3) return void 0;
|
|
2833
|
+
const [promptSessionId, subagentId, round] = parts;
|
|
2834
|
+
return promptSessionId === sessionId && subagentId && /^\d+$/.test(round) ? subagentId : void 0;
|
|
2835
|
+
}, "getLegacySubagentId");
|
|
2792
2836
|
var createInitialMetrics = /* @__PURE__ */ __name(() => ({
|
|
2793
2837
|
models: {},
|
|
2794
2838
|
tools: {
|
|
@@ -2827,7 +2871,11 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2827
2871
|
if (!this.#sessionMetrics.has(sessionId)) {
|
|
2828
2872
|
this.#sessionMetrics.set(sessionId, createInitialMetrics());
|
|
2829
2873
|
}
|
|
2830
|
-
this.#accumulateEvent(
|
|
2874
|
+
this.#accumulateEvent(
|
|
2875
|
+
this.#sessionMetrics.get(sessionId),
|
|
2876
|
+
event,
|
|
2877
|
+
sessionId
|
|
2878
|
+
);
|
|
2831
2879
|
}
|
|
2832
2880
|
this.emit("update", {
|
|
2833
2881
|
metrics: this.#metrics,
|
|
@@ -2876,6 +2924,80 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2876
2924
|
setLastCachedContentTokenCount(count) {
|
|
2877
2925
|
this.#lastCachedContentTokenCount = count;
|
|
2878
2926
|
}
|
|
2927
|
+
/**
|
|
2928
|
+
* Captures everything a session replay is about to overwrite, so a session
|
|
2929
|
+
* swap that fails after replaying can put the state back. See
|
|
2930
|
+
* {@link UiTelemetryReplaySnapshot} for why a snapshot is the only
|
|
2931
|
+
* compensation available (no subtraction API).
|
|
2932
|
+
*
|
|
2933
|
+
* `outgoingSessionId` is the session the process was on when the replay
|
|
2934
|
+
* begins — the swap transaction's begin-time `outgoingHint`, falling back
|
|
2935
|
+
* to `GeminiClient.initializedSessionId`. An earlier failed swap's abort
|
|
2936
|
+
* clears `initializedSessionId`, so keying on it alone would capture no
|
|
2937
|
+
* outgoing session and lose the live bucket (#9844 review). Its bucket and
|
|
2938
|
+
* closed flag are captured too: the `/branch` rollback re-initializes that
|
|
2939
|
+
* session, and the re-initialize's `resetSession` wipes its live bucket —
|
|
2940
|
+
* only what the transcript persists comes back (skill invocations never
|
|
2941
|
+
* do), so restore must put the captured bucket back.
|
|
2942
|
+
*/
|
|
2943
|
+
snapshotForReplay(sessionId, outgoingSessionId) {
|
|
2944
|
+
const outgoing = outgoingSessionId && outgoingSessionId !== sessionId ? outgoingSessionId : void 0;
|
|
2945
|
+
const sessionMetrics = this.#sessionMetrics.get(sessionId);
|
|
2946
|
+
const outgoingSessionMetrics = outgoing ? this.#sessionMetrics.get(outgoing) : void 0;
|
|
2947
|
+
return {
|
|
2948
|
+
metrics: cloneSessionMetrics(this.#metrics),
|
|
2949
|
+
sessionId,
|
|
2950
|
+
sessionMetrics: sessionMetrics ? cloneSessionMetrics(sessionMetrics) : void 0,
|
|
2951
|
+
sessionWasClosed: this.#closedSessions.has(sessionId),
|
|
2952
|
+
outgoingSessionId: outgoing,
|
|
2953
|
+
outgoingSessionMetrics: outgoingSessionMetrics ? cloneSessionMetrics(outgoingSessionMetrics) : void 0,
|
|
2954
|
+
outgoingSessionWasClosed: outgoing ? this.#closedSessions.has(outgoing) : void 0,
|
|
2955
|
+
lastPromptTokenCount: this.#lastPromptTokenCount,
|
|
2956
|
+
lastCachedContentTokenCount: this.#lastCachedContentTokenCount
|
|
2957
|
+
};
|
|
2958
|
+
}
|
|
2959
|
+
/**
|
|
2960
|
+
* Puts back the state {@link snapshotForReplay} captured, undoing the
|
|
2961
|
+
* replay of an abandoned session swap. Overwrites rather than subtracts,
|
|
2962
|
+
* so it stays correct when applied after the rollback's own re-initialize
|
|
2963
|
+
* replayed something else on top. Only the snapshotted sessions' buckets
|
|
2964
|
+
* are touched — every other session's live data survives, which is what
|
|
2965
|
+
* makes this usable on a rollback path where the old session is still
|
|
2966
|
+
* live. Emits `update` so keyed displays re-render the restored state.
|
|
2967
|
+
*/
|
|
2968
|
+
restoreFromReplaySnapshot(snapshot) {
|
|
2969
|
+
this.#metrics = cloneSessionMetrics(snapshot.metrics);
|
|
2970
|
+
this.#restoreSessionState(
|
|
2971
|
+
snapshot.sessionId,
|
|
2972
|
+
snapshot.sessionMetrics,
|
|
2973
|
+
snapshot.sessionWasClosed
|
|
2974
|
+
);
|
|
2975
|
+
if (snapshot.outgoingSessionId) {
|
|
2976
|
+
this.#restoreSessionState(
|
|
2977
|
+
snapshot.outgoingSessionId,
|
|
2978
|
+
snapshot.outgoingSessionMetrics,
|
|
2979
|
+
snapshot.outgoingSessionWasClosed
|
|
2980
|
+
);
|
|
2981
|
+
}
|
|
2982
|
+
this.#lastPromptTokenCount = snapshot.lastPromptTokenCount;
|
|
2983
|
+
this.#lastCachedContentTokenCount = snapshot.lastCachedContentTokenCount;
|
|
2984
|
+
this.emit("update", {
|
|
2985
|
+
metrics: this.#metrics,
|
|
2986
|
+
lastPromptTokenCount: this.#lastPromptTokenCount
|
|
2987
|
+
});
|
|
2988
|
+
}
|
|
2989
|
+
#restoreSessionState(sessionId, metrics, wasClosed) {
|
|
2990
|
+
if (metrics) {
|
|
2991
|
+
this.#sessionMetrics.set(sessionId, cloneSessionMetrics(metrics));
|
|
2992
|
+
} else {
|
|
2993
|
+
this.#sessionMetrics.delete(sessionId);
|
|
2994
|
+
}
|
|
2995
|
+
if (wasClosed) {
|
|
2996
|
+
this.#closedSessions.add(sessionId);
|
|
2997
|
+
} else {
|
|
2998
|
+
this.#closedSessions.delete(sessionId);
|
|
2999
|
+
}
|
|
3000
|
+
}
|
|
2879
3001
|
/**
|
|
2880
3002
|
* Resets metrics to the initial state (used when resuming a session).
|
|
2881
3003
|
*/
|
|
@@ -2903,13 +3025,13 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2903
3025
|
if (oldest) this.#closedSessions.delete(oldest);
|
|
2904
3026
|
}
|
|
2905
3027
|
}
|
|
2906
|
-
#accumulateEvent(metrics, event) {
|
|
3028
|
+
#accumulateEvent(metrics, event, sessionId) {
|
|
2907
3029
|
switch (event["event.name"]) {
|
|
2908
3030
|
case EVENT_API_RESPONSE:
|
|
2909
|
-
this.#accumulateApiResponse(metrics, event);
|
|
3031
|
+
this.#accumulateApiResponse(metrics, event, sessionId);
|
|
2910
3032
|
return true;
|
|
2911
3033
|
case EVENT_API_ERROR:
|
|
2912
|
-
this.#accumulateApiError(metrics, event);
|
|
3034
|
+
this.#accumulateApiError(metrics, event, sessionId);
|
|
2913
3035
|
return true;
|
|
2914
3036
|
case EVENT_TOOL_CALL:
|
|
2915
3037
|
this.#accumulateToolCall(metrics, event);
|
|
@@ -2918,20 +3040,40 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2918
3040
|
return false;
|
|
2919
3041
|
}
|
|
2920
3042
|
}
|
|
2921
|
-
#accumulateApiResponse(metrics, event) {
|
|
3043
|
+
#accumulateApiResponse(metrics, event, sessionId) {
|
|
2922
3044
|
const modelMetrics = this.#getOrCreateModelMetrics(metrics, event.model);
|
|
3045
|
+
const statsModelMetrics = sessionId ? this.#getOrCreateStatsModelMetrics(metrics, event.model) : void 0;
|
|
2923
3046
|
const sourceMetrics = this.#getOrCreateSourceMetrics(
|
|
2924
3047
|
modelMetrics,
|
|
2925
3048
|
event.subagent_name ?? MAIN_SOURCE
|
|
2926
3049
|
);
|
|
2927
|
-
|
|
3050
|
+
const invocationMetrics = sessionId ? this.#getOrCreateInvocationMetrics(metrics, event, sessionId) : void 0;
|
|
3051
|
+
const normalizedPromptTokens = event.input_token_count > 0 ? event.input_token_count : event.cached_content_token_count;
|
|
3052
|
+
const normalizedTotalTokens = getEventTotalTokenCount(event);
|
|
3053
|
+
const accumulate = /* @__PURE__ */ __name((bucket, prompt, total) => {
|
|
2928
3054
|
bucket.api.totalRequests++;
|
|
2929
3055
|
bucket.api.totalLatencyMs += event.duration_ms;
|
|
2930
|
-
bucket.tokens.prompt +=
|
|
3056
|
+
bucket.tokens.prompt += prompt;
|
|
2931
3057
|
bucket.tokens.candidates += event.output_token_count;
|
|
2932
|
-
bucket.tokens.total +=
|
|
3058
|
+
bucket.tokens.total += total;
|
|
2933
3059
|
bucket.tokens.cached += event.cached_content_token_count;
|
|
2934
3060
|
bucket.tokens.thoughts += event.thoughts_token_count;
|
|
3061
|
+
}, "accumulate");
|
|
3062
|
+
accumulate(modelMetrics, event.input_token_count, event.total_token_count);
|
|
3063
|
+
accumulate(sourceMetrics, event.input_token_count, event.total_token_count);
|
|
3064
|
+
if (statsModelMetrics) {
|
|
3065
|
+
accumulate(
|
|
3066
|
+
statsModelMetrics,
|
|
3067
|
+
normalizedPromptTokens,
|
|
3068
|
+
normalizedTotalTokens
|
|
3069
|
+
);
|
|
3070
|
+
}
|
|
3071
|
+
if (invocationMetrics) {
|
|
3072
|
+
accumulate(
|
|
3073
|
+
invocationMetrics,
|
|
3074
|
+
normalizedPromptTokens,
|
|
3075
|
+
normalizedTotalTokens
|
|
3076
|
+
);
|
|
2935
3077
|
}
|
|
2936
3078
|
if (event.ttft_ms === void 0 || !Number.isFinite(event.ttft_ms) || event.ttft_ms < 0 || isInternalPromptId(event.prompt_id)) {
|
|
2937
3079
|
return;
|
|
@@ -2951,18 +3093,40 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
2951
3093
|
outputTokens: event.output_token_count
|
|
2952
3094
|
};
|
|
2953
3095
|
}
|
|
2954
|
-
#accumulateApiError(metrics, event) {
|
|
3096
|
+
#accumulateApiError(metrics, event, sessionId) {
|
|
2955
3097
|
const modelMetrics = this.#getOrCreateModelMetrics(metrics, event.model);
|
|
3098
|
+
const statsModelMetrics = sessionId ? this.#getOrCreateStatsModelMetrics(metrics, event.model) : void 0;
|
|
2956
3099
|
const sourceMetrics = this.#getOrCreateSourceMetrics(
|
|
2957
3100
|
modelMetrics,
|
|
2958
3101
|
event.subagent_name ?? MAIN_SOURCE
|
|
2959
3102
|
);
|
|
2960
|
-
|
|
3103
|
+
const invocationMetrics = sessionId ? this.#getOrCreateInvocationMetrics(metrics, event, sessionId) : void 0;
|
|
3104
|
+
const buckets = [
|
|
3105
|
+
modelMetrics,
|
|
3106
|
+
...statsModelMetrics ? [statsModelMetrics] : [],
|
|
3107
|
+
sourceMetrics,
|
|
3108
|
+
...invocationMetrics ? [invocationMetrics] : []
|
|
3109
|
+
];
|
|
3110
|
+
for (const bucket of buckets) {
|
|
2961
3111
|
bucket.api.totalRequests++;
|
|
2962
3112
|
bucket.api.totalErrors++;
|
|
2963
3113
|
bucket.api.totalLatencyMs += event.duration_ms;
|
|
2964
3114
|
}
|
|
2965
3115
|
}
|
|
3116
|
+
#getOrCreateInvocationMetrics(metrics, event, sessionId) {
|
|
3117
|
+
const id = event.subagent_id ?? getLegacySubagentId(event, sessionId);
|
|
3118
|
+
if (!id) return void 0;
|
|
3119
|
+
const meta = metrics.sourceMeta ??= /* @__PURE__ */ Object.create(null);
|
|
3120
|
+
const existingMeta = meta[id];
|
|
3121
|
+
meta[id] = {
|
|
3122
|
+
name: event.subagent_task_name ?? existingMeta?.name ?? event.subagent_name ?? id,
|
|
3123
|
+
type: event.subagent_type ?? existingMeta?.type ?? event.subagent_name ?? ""
|
|
3124
|
+
};
|
|
3125
|
+
const sourceMetrics = metrics.sourceMetrics ??= /* @__PURE__ */ Object.create(
|
|
3126
|
+
null
|
|
3127
|
+
);
|
|
3128
|
+
return sourceMetrics[id] ??= createInitialModelMetricsCore();
|
|
3129
|
+
}
|
|
2966
3130
|
#accumulateToolCall(metrics, event) {
|
|
2967
3131
|
const { tools, files } = metrics;
|
|
2968
3132
|
tools.totalCalls++;
|
|
@@ -3045,6 +3209,10 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
3045
3209
|
}
|
|
3046
3210
|
return metrics.models[modelName];
|
|
3047
3211
|
}
|
|
3212
|
+
#getOrCreateStatsModelMetrics(metrics, modelName) {
|
|
3213
|
+
const statsModels = metrics.statsModels ??= /* @__PURE__ */ Object.create(null);
|
|
3214
|
+
return statsModels[modelName] ??= createInitialModelMetricsCore();
|
|
3215
|
+
}
|
|
3048
3216
|
#getOrCreateSourceMetrics(modelMetrics, source) {
|
|
3049
3217
|
if (!modelMetrics.bySource[source]) {
|
|
3050
3218
|
modelMetrics.bySource[source] = createInitialModelMetricsCore();
|
|
@@ -4003,9 +4171,14 @@ function logRipgrepRuntimeRecovery(config, event) {
|
|
|
4003
4171
|
logger.emit(logRecord);
|
|
4004
4172
|
}
|
|
4005
4173
|
__name(logRipgrepRuntimeRecovery, "logRipgrepRuntimeRecovery");
|
|
4006
|
-
function logApiError(config, event, sessionId) {
|
|
4174
|
+
function logApiError(config, event, sessionId, uiSubagentIdentity) {
|
|
4007
4175
|
const uiEvent = {
|
|
4008
4176
|
...event,
|
|
4177
|
+
...uiSubagentIdentity ? {
|
|
4178
|
+
subagent_id: uiSubagentIdentity.id,
|
|
4179
|
+
subagent_type: uiSubagentIdentity.type,
|
|
4180
|
+
subagent_task_name: uiSubagentIdentity.taskName
|
|
4181
|
+
} : {},
|
|
4009
4182
|
"event.name": EVENT_API_ERROR,
|
|
4010
4183
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
4011
4184
|
};
|
|
@@ -4069,9 +4242,14 @@ function logApiCancel(config, event) {
|
|
|
4069
4242
|
logger.emit(logRecord);
|
|
4070
4243
|
}
|
|
4071
4244
|
__name(logApiCancel, "logApiCancel");
|
|
4072
|
-
function logApiResponse(config, event, sessionId) {
|
|
4245
|
+
function logApiResponse(config, event, sessionId, uiSubagentIdentity) {
|
|
4073
4246
|
const uiEvent = {
|
|
4074
4247
|
...event,
|
|
4248
|
+
...uiSubagentIdentity ? {
|
|
4249
|
+
subagent_id: uiSubagentIdentity.id,
|
|
4250
|
+
subagent_type: uiSubagentIdentity.type,
|
|
4251
|
+
subagent_task_name: uiSubagentIdentity.taskName
|
|
4252
|
+
} : {},
|
|
4075
4253
|
"event.name": EVENT_API_RESPONSE,
|
|
4076
4254
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
4077
4255
|
};
|
|
@@ -4827,7 +5005,7 @@ init_esbuild_shims();
|
|
|
4827
5005
|
// packages/core/src/tools/mcp-tool.ts
|
|
4828
5006
|
init_esbuild_shims();
|
|
4829
5007
|
|
|
4830
|
-
// packages/core/src/
|
|
5008
|
+
// packages/core/src/tools/truncation.ts
|
|
4831
5009
|
init_esbuild_shims();
|
|
4832
5010
|
import * as fs3 from "node:fs/promises";
|
|
4833
5011
|
import * as path5 from "node:path";
|
|
@@ -5131,6 +5309,15 @@ __name(buildStub, "buildStub");
|
|
|
5131
5309
|
// packages/core/src/tools/mcp-status.ts
|
|
5132
5310
|
init_esbuild_shims();
|
|
5133
5311
|
var serverStatuses = /* @__PURE__ */ new Map();
|
|
5312
|
+
var serverLastErrors = /* @__PURE__ */ new Map();
|
|
5313
|
+
function recordMCPServerLastError(serverName, message) {
|
|
5314
|
+
serverLastErrors.set(serverName, message);
|
|
5315
|
+
}
|
|
5316
|
+
__name(recordMCPServerLastError, "recordMCPServerLastError");
|
|
5317
|
+
function getMCPServerLastError(serverName) {
|
|
5318
|
+
return serverLastErrors.get(serverName);
|
|
5319
|
+
}
|
|
5320
|
+
__name(getMCPServerLastError, "getMCPServerLastError");
|
|
5134
5321
|
var statusChangeListeners = [];
|
|
5135
5322
|
function addMCPStatusChangeListener(listener) {
|
|
5136
5323
|
statusChangeListeners.push(listener);
|
|
@@ -5145,12 +5332,16 @@ function removeMCPStatusChangeListener(listener) {
|
|
|
5145
5332
|
__name(removeMCPStatusChangeListener, "removeMCPStatusChangeListener");
|
|
5146
5333
|
function updateMCPServerStatus(serverName, status) {
|
|
5147
5334
|
serverStatuses.set(serverName, status);
|
|
5335
|
+
if (status === "connected" /* CONNECTED */) {
|
|
5336
|
+
serverLastErrors.delete(serverName);
|
|
5337
|
+
}
|
|
5148
5338
|
for (const listener of [...statusChangeListeners]) {
|
|
5149
5339
|
listener(serverName, status);
|
|
5150
5340
|
}
|
|
5151
5341
|
}
|
|
5152
5342
|
__name(updateMCPServerStatus, "updateMCPServerStatus");
|
|
5153
5343
|
function removeMCPServerStatus(serverName) {
|
|
5344
|
+
serverLastErrors.delete(serverName);
|
|
5154
5345
|
if (!serverStatuses.has(serverName)) {
|
|
5155
5346
|
return;
|
|
5156
5347
|
}
|
|
@@ -5292,6 +5483,7 @@ __name(collectText, "collectText");
|
|
|
5292
5483
|
|
|
5293
5484
|
// packages/core/src/tools/mcp-tool.ts
|
|
5294
5485
|
var debugLogger5 = createDebugLogger("MCP_TOOL");
|
|
5486
|
+
var MCP_DEAD_SESSION_ERROR_PATTERN = /session (not found|terminated|expired)/i;
|
|
5295
5487
|
var MCP_CONNECTION_ERROR_PATTERNS = [
|
|
5296
5488
|
/ECONNREFUSED/i,
|
|
5297
5489
|
/ENOTFOUND/i,
|
|
@@ -5300,16 +5492,28 @@ var MCP_CONNECTION_ERROR_PATTERNS = [
|
|
|
5300
5492
|
/connection (closed|lost)/i,
|
|
5301
5493
|
/not connected/i,
|
|
5302
5494
|
/disconnected/i,
|
|
5303
|
-
/transport closed/i
|
|
5495
|
+
/transport closed/i,
|
|
5496
|
+
// The server no longer knows our session id (see
|
|
5497
|
+
// `MCP_DEAD_SESSION_ERROR_PATTERN`) — the canonical failure right after an
|
|
5498
|
+
// HTTP server restart. Reconnect (a fresh `initialize`) is the remedy.
|
|
5499
|
+
MCP_DEAD_SESSION_ERROR_PATTERN
|
|
5304
5500
|
];
|
|
5305
5501
|
var MCP_REQUEST_TIMEOUT_CODE = -32001;
|
|
5502
|
+
var MCP_DEAD_SESSION_HTTP_CODE = 404;
|
|
5306
5503
|
function isMcpRequestTimeout(error) {
|
|
5307
5504
|
return typeof error === "object" && error !== null && "code" in error && error.code === MCP_REQUEST_TIMEOUT_CODE;
|
|
5308
5505
|
}
|
|
5309
5506
|
__name(isMcpRequestTimeout, "isMcpRequestTimeout");
|
|
5507
|
+
function isMcpDeadSessionHttpError(error) {
|
|
5508
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === MCP_DEAD_SESSION_HTTP_CODE;
|
|
5509
|
+
}
|
|
5510
|
+
__name(isMcpDeadSessionHttpError, "isMcpDeadSessionHttpError");
|
|
5310
5511
|
function isExecutionTimeoutFailure(error, serverName, signal) {
|
|
5311
5512
|
if (signal.aborted) return false;
|
|
5312
5513
|
if (!isMcpRequestTimeout(error)) return false;
|
|
5514
|
+
if (MCP_DEAD_SESSION_ERROR_PATTERN.test(getErrorMessage(error))) {
|
|
5515
|
+
return false;
|
|
5516
|
+
}
|
|
5313
5517
|
const statuses = getAllMCPServerStatuses();
|
|
5314
5518
|
return !(statuses.has(serverName) && statuses.get(serverName) === "disconnected" /* DISCONNECTED */);
|
|
5315
5519
|
}
|
|
@@ -5347,8 +5551,11 @@ function createParentAbortRace(signal, forwardAbort) {
|
|
|
5347
5551
|
};
|
|
5348
5552
|
}
|
|
5349
5553
|
__name(createParentAbortRace, "createParentAbortRace");
|
|
5554
|
+
var MCP_APP_RESOURCE_MIME_TYPE = "text/html;profile=mcp-app";
|
|
5555
|
+
var MCP_APP_RESOURCE_MAX_BYTES = 1024 * 1024;
|
|
5556
|
+
var MCP_APP_RESOURCE_TIMEOUT_MS = 1e4;
|
|
5350
5557
|
var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends BaseToolInvocation {
|
|
5351
|
-
constructor(mcpTool, serverName, serverToolName, displayName, registeredToolName, permissionAliases, trust, params = {}, cliConfig, mcpClient, mcpTimeout, mcpToolIdleTimeoutMs, annotations, allowInvocationContext = false, retryCount = 0) {
|
|
5558
|
+
constructor(mcpTool, serverName, serverToolName, displayName, registeredToolName, permissionAliases, trust, params = {}, cliConfig, mcpClient, mcpTimeout, mcpToolIdleTimeoutMs, annotations, allowInvocationContext = false, appResourceUri, appResourceUi, retryCount = 0) {
|
|
5352
5559
|
super(params);
|
|
5353
5560
|
this.mcpTool = mcpTool;
|
|
5354
5561
|
this.serverName = serverName;
|
|
@@ -5363,6 +5570,8 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5363
5570
|
this.mcpToolIdleTimeoutMs = mcpToolIdleTimeoutMs;
|
|
5364
5571
|
this.annotations = annotations;
|
|
5365
5572
|
this.allowInvocationContext = allowInvocationContext;
|
|
5573
|
+
this.appResourceUri = appResourceUri;
|
|
5574
|
+
this.appResourceUi = appResourceUi;
|
|
5366
5575
|
this.retryCount = retryCount;
|
|
5367
5576
|
}
|
|
5368
5577
|
static {
|
|
@@ -5449,6 +5658,7 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5449
5658
|
throw error;
|
|
5450
5659
|
}
|
|
5451
5660
|
if (!this.canSafelyReplay()) {
|
|
5661
|
+
await this.attemptReconnect();
|
|
5452
5662
|
throw new Error(_DiscoveredMCPToolInvocation.UNSAFE_REPLAY_ERROR_MESSAGE);
|
|
5453
5663
|
}
|
|
5454
5664
|
if (this.retryCount < _DiscoveredMCPToolInvocation.MAX_RECONNECT_RETRIES) {
|
|
@@ -5472,6 +5682,8 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5472
5682
|
this.mcpToolIdleTimeoutMs,
|
|
5473
5683
|
newTool.annotations,
|
|
5474
5684
|
newTool["allowInvocationContext"] === true,
|
|
5685
|
+
newTool["appResourceUri"],
|
|
5686
|
+
newTool.appResourceUi,
|
|
5475
5687
|
this.retryCount + 1
|
|
5476
5688
|
);
|
|
5477
5689
|
if (!newInvocation.canSafelyReplay()) {
|
|
@@ -5507,6 +5719,9 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5507
5719
|
if (getMCPServerStatus(this.serverName) === "disconnected" /* DISCONNECTED */) {
|
|
5508
5720
|
return true;
|
|
5509
5721
|
}
|
|
5722
|
+
if (isMcpDeadSessionHttpError(error)) {
|
|
5723
|
+
return true;
|
|
5724
|
+
}
|
|
5510
5725
|
const message = getErrorMessage(error);
|
|
5511
5726
|
return MCP_CONNECTION_ERROR_PATTERNS.some(
|
|
5512
5727
|
(pattern) => pattern.test(message)
|
|
@@ -5572,7 +5787,6 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5572
5787
|
}
|
|
5573
5788
|
} : {}
|
|
5574
5789
|
},
|
|
5575
|
-
void 0,
|
|
5576
5790
|
{
|
|
5577
5791
|
onprogress: /* @__PURE__ */ __name((progress) => {
|
|
5578
5792
|
resetIdleTimeout();
|
|
@@ -5598,6 +5812,10 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5598
5812
|
throw outcome.reason;
|
|
5599
5813
|
}
|
|
5600
5814
|
const callToolResult = outcome;
|
|
5815
|
+
if (idleTimeoutId) {
|
|
5816
|
+
clearTimeout(idleTimeoutId);
|
|
5817
|
+
idleTimeoutId = void 0;
|
|
5818
|
+
}
|
|
5601
5819
|
const rawResponseParts = wrapMcpCallToolResultAsParts(
|
|
5602
5820
|
this.serverToolName,
|
|
5603
5821
|
callToolResult
|
|
@@ -5610,12 +5828,18 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5610
5828
|
}
|
|
5611
5829
|
const transformedParts = transformMcpContentToParts(rawResponseParts);
|
|
5612
5830
|
const truncated = await this.truncateTextParts(transformedParts);
|
|
5831
|
+
const fallbackText = getDisplayFromPartsWithPersistedOutput(
|
|
5832
|
+
transformedParts,
|
|
5833
|
+
truncated.persistedOutputFiles
|
|
5834
|
+
);
|
|
5835
|
+
const appDisplay = await this.loadMcpAppDisplay(
|
|
5836
|
+
callToolResult,
|
|
5837
|
+
fallbackText,
|
|
5838
|
+
signal
|
|
5839
|
+
);
|
|
5613
5840
|
return {
|
|
5614
5841
|
llmContent: truncated.parts,
|
|
5615
|
-
returnDisplay:
|
|
5616
|
-
transformedParts,
|
|
5617
|
-
truncated.persistedOutputFiles
|
|
5618
|
-
),
|
|
5842
|
+
returnDisplay: appDisplay ?? fallbackText,
|
|
5619
5843
|
persistedOutputFiles: truncated.persistedOutputFiles
|
|
5620
5844
|
};
|
|
5621
5845
|
} catch (error) {
|
|
@@ -5633,6 +5857,57 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5633
5857
|
parentAbortRace.dispose();
|
|
5634
5858
|
}
|
|
5635
5859
|
}
|
|
5860
|
+
async loadMcpAppDisplay(toolResult, fallbackText, signal) {
|
|
5861
|
+
if (!this.appResourceUri || !this.mcpClient?.readResource) return void 0;
|
|
5862
|
+
try {
|
|
5863
|
+
const resource = await this.mcpClient.readResource(
|
|
5864
|
+
{ uri: this.appResourceUri },
|
|
5865
|
+
{
|
|
5866
|
+
timeout: Math.min(
|
|
5867
|
+
this.mcpTimeout ?? MCP_APP_RESOURCE_TIMEOUT_MS,
|
|
5868
|
+
MCP_APP_RESOURCE_TIMEOUT_MS
|
|
5869
|
+
),
|
|
5870
|
+
signal: AbortSignal.any([
|
|
5871
|
+
signal,
|
|
5872
|
+
AbortSignal.timeout(MCP_APP_RESOURCE_TIMEOUT_MS)
|
|
5873
|
+
])
|
|
5874
|
+
}
|
|
5875
|
+
);
|
|
5876
|
+
const content = resource.contents.find(
|
|
5877
|
+
(entry) => entry.uri === this.appResourceUri
|
|
5878
|
+
);
|
|
5879
|
+
if (!content || content.mimeType !== MCP_APP_RESOURCE_MIME_TYPE) {
|
|
5880
|
+
throw new Error(
|
|
5881
|
+
`resource must return ${MCP_APP_RESOURCE_MIME_TYPE} for ${this.appResourceUri}`
|
|
5882
|
+
);
|
|
5883
|
+
}
|
|
5884
|
+
const html = typeof content.text === "string" ? content.text : typeof content.blob === "string" ? Buffer.from(content.blob, "base64").toString("utf8") : void 0;
|
|
5885
|
+
if (!html) throw new Error("resource did not return HTML content");
|
|
5886
|
+
if (Buffer.byteLength(html, "utf8") > MCP_APP_RESOURCE_MAX_BYTES) {
|
|
5887
|
+
throw new Error("resource HTML exceeds the 1 MiB host limit");
|
|
5888
|
+
}
|
|
5889
|
+
const metadata = getMcpAppResourceMetadata(
|
|
5890
|
+
content._meta,
|
|
5891
|
+
this.appResourceUi
|
|
5892
|
+
);
|
|
5893
|
+
return {
|
|
5894
|
+
type: "mcp_app",
|
|
5895
|
+
serverName: this.serverName,
|
|
5896
|
+
resourceUri: this.appResourceUri,
|
|
5897
|
+
html,
|
|
5898
|
+
toolResult,
|
|
5899
|
+
toolArguments: this.params,
|
|
5900
|
+
fallbackText,
|
|
5901
|
+
...metadata
|
|
5902
|
+
};
|
|
5903
|
+
} catch (error) {
|
|
5904
|
+
if (signal.aborted) return void 0;
|
|
5905
|
+
debugLogger5.warn(
|
|
5906
|
+
`Failed to load MCP App '${this.appResourceUri}' from '${this.serverName}': ${getErrorMessage(error)}`
|
|
5907
|
+
);
|
|
5908
|
+
return void 0;
|
|
5909
|
+
}
|
|
5910
|
+
}
|
|
5636
5911
|
/**
|
|
5637
5912
|
* Fallback: execute using the @google/genai CallableTool wrapper.
|
|
5638
5913
|
* This path does NOT support progress notifications.
|
|
@@ -5759,7 +6034,7 @@ var DiscoveredMCPToolInvocation = class _DiscoveredMCPToolInvocation extends Bas
|
|
|
5759
6034
|
}
|
|
5760
6035
|
};
|
|
5761
6036
|
var DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool {
|
|
5762
|
-
constructor(mcpTool, serverName, serverToolName, description, parameterSchema, trust, nameOverride, cliConfig, mcpClient, mcpTimeout, mcpToolIdleTimeoutMs, annotations, alwaysLoad = false, allowInvocationContext = false) {
|
|
6037
|
+
constructor(mcpTool, serverName, serverToolName, description, parameterSchema, trust, nameOverride, cliConfig, mcpClient, mcpTimeout, mcpToolIdleTimeoutMs, annotations, alwaysLoad = false, allowInvocationContext = false, appResourceUri, appResourceUi) {
|
|
5763
6038
|
super(
|
|
5764
6039
|
nameOverride ?? generateValidName(`mcp__${serverName}__${serverToolName}`),
|
|
5765
6040
|
`${serverToolName} (${serverName} MCP Server)`,
|
|
@@ -5789,6 +6064,8 @@ var DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool {
|
|
|
5789
6064
|
this.mcpToolIdleTimeoutMs = mcpToolIdleTimeoutMs;
|
|
5790
6065
|
this.annotations = annotations;
|
|
5791
6066
|
this.allowInvocationContext = allowInvocationContext;
|
|
6067
|
+
this.appResourceUri = appResourceUri;
|
|
6068
|
+
this.appResourceUi = appResourceUi;
|
|
5792
6069
|
}
|
|
5793
6070
|
static {
|
|
5794
6071
|
__name(this, "DiscoveredMCPTool");
|
|
@@ -5821,7 +6098,30 @@ var DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool {
|
|
|
5821
6098
|
this.mcpToolIdleTimeoutMs,
|
|
5822
6099
|
this.annotations,
|
|
5823
6100
|
this.alwaysLoad,
|
|
5824
|
-
this.allowInvocationContext
|
|
6101
|
+
this.allowInvocationContext,
|
|
6102
|
+
this.appResourceUri,
|
|
6103
|
+
this.appResourceUi
|
|
6104
|
+
);
|
|
6105
|
+
}
|
|
6106
|
+
withAppResourceUi(appResourceUi) {
|
|
6107
|
+
if (appResourceUi === this.appResourceUi) return this;
|
|
6108
|
+
return new _DiscoveredMCPTool(
|
|
6109
|
+
this.mcpTool,
|
|
6110
|
+
this.serverName,
|
|
6111
|
+
this.serverToolName,
|
|
6112
|
+
this.description,
|
|
6113
|
+
this.parameterSchema,
|
|
6114
|
+
this.trust,
|
|
6115
|
+
this.name,
|
|
6116
|
+
this.cliConfig,
|
|
6117
|
+
this.mcpClient,
|
|
6118
|
+
this.mcpTimeout,
|
|
6119
|
+
this.mcpToolIdleTimeoutMs,
|
|
6120
|
+
this.annotations,
|
|
6121
|
+
this.alwaysLoad,
|
|
6122
|
+
this.allowInvocationContext,
|
|
6123
|
+
this.appResourceUri,
|
|
6124
|
+
appResourceUi
|
|
5825
6125
|
);
|
|
5826
6126
|
}
|
|
5827
6127
|
/**
|
|
@@ -5862,7 +6162,9 @@ var DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool {
|
|
|
5862
6162
|
this.mcpToolIdleTimeoutMs,
|
|
5863
6163
|
this.annotations,
|
|
5864
6164
|
alwaysLoad,
|
|
5865
|
-
this.allowInvocationContext
|
|
6165
|
+
this.allowInvocationContext,
|
|
6166
|
+
this.appResourceUri,
|
|
6167
|
+
this.appResourceUi
|
|
5866
6168
|
);
|
|
5867
6169
|
}
|
|
5868
6170
|
createInvocation(params) {
|
|
@@ -5880,10 +6182,40 @@ var DiscoveredMCPTool = class _DiscoveredMCPTool extends BaseDeclarativeTool {
|
|
|
5880
6182
|
this.mcpTimeout,
|
|
5881
6183
|
this.mcpToolIdleTimeoutMs,
|
|
5882
6184
|
this.annotations,
|
|
5883
|
-
this.allowInvocationContext
|
|
6185
|
+
this.allowInvocationContext,
|
|
6186
|
+
this.appResourceUri,
|
|
6187
|
+
this.appResourceUi
|
|
5884
6188
|
);
|
|
5885
6189
|
}
|
|
5886
6190
|
};
|
|
6191
|
+
function getMcpAppResourceMetadata(meta, listingUi) {
|
|
6192
|
+
const ui = getRecord(meta?.["ui"]) ?? listingUi;
|
|
6193
|
+
const rawCsp = getRecord(ui?.["csp"]);
|
|
6194
|
+
const rawPermissions = getRecord(ui?.["permissions"]);
|
|
6195
|
+
const csp = rawCsp ? {
|
|
6196
|
+
...readStringArray(rawCsp, "connectDomains"),
|
|
6197
|
+
...readStringArray(rawCsp, "resourceDomains"),
|
|
6198
|
+
...readStringArray(rawCsp, "frameDomains"),
|
|
6199
|
+
...readStringArray(rawCsp, "baseUriDomains")
|
|
6200
|
+
} : void 0;
|
|
6201
|
+
const permissions = rawPermissions ? Object.fromEntries(
|
|
6202
|
+
["camera", "microphone", "geolocation", "clipboardWrite"].filter((key) => getRecord(rawPermissions[key])).map((key) => [key, {}])
|
|
6203
|
+
) : void 0;
|
|
6204
|
+
return {
|
|
6205
|
+
...csp && Object.keys(csp).length > 0 ? { csp } : {},
|
|
6206
|
+
...permissions && Object.keys(permissions).length > 0 ? { permissions } : {}
|
|
6207
|
+
};
|
|
6208
|
+
}
|
|
6209
|
+
__name(getMcpAppResourceMetadata, "getMcpAppResourceMetadata");
|
|
6210
|
+
function getRecord(value) {
|
|
6211
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
6212
|
+
}
|
|
6213
|
+
__name(getRecord, "getRecord");
|
|
6214
|
+
function readStringArray(value, key) {
|
|
6215
|
+
const entry = value[key];
|
|
6216
|
+
return Array.isArray(entry) && entry.every((item) => typeof item === "string") ? { [key]: entry } : {};
|
|
6217
|
+
}
|
|
6218
|
+
__name(readStringArray, "readStringArray");
|
|
5887
6219
|
function wrapMcpCallToolResultAsParts(toolName, result) {
|
|
5888
6220
|
const response = result.isError ? { error: result, content: result.content } : result;
|
|
5889
6221
|
return [
|
|
@@ -7876,7 +8208,7 @@ var ReadFileTool = class _ReadFileTool extends BaseDeclarativeTool {
|
|
|
7876
8208
|
}
|
|
7877
8209
|
static Name = ToolNames.READ_FILE;
|
|
7878
8210
|
// Self-managed: ReadFile controls its own size via line-based paging
|
|
7879
|
-
// (offset/limit, default
|
|
8211
|
+
// (offset/limit, default truncateToolOutputLines setting), so it is exempt from the scheduler's
|
|
7880
8212
|
// char-based truncation. Oversized reads are bounded by the per-message
|
|
7881
8213
|
// batch budget instead.
|
|
7882
8214
|
get maxOutputChars() {
|
|
@@ -7951,6 +8283,7 @@ export {
|
|
|
7951
8283
|
runVisionBridge,
|
|
7952
8284
|
MAIN_SOURCE,
|
|
7953
8285
|
subagentNameContext,
|
|
8286
|
+
subagentIdentityContext,
|
|
7954
8287
|
isInternalPromptId,
|
|
7955
8288
|
UiTelemetryService,
|
|
7956
8289
|
uiTelemetryService,
|
|
@@ -8030,6 +8363,8 @@ export {
|
|
|
8030
8363
|
isAlreadyTruncated,
|
|
8031
8364
|
normalizeToolResultCallId,
|
|
8032
8365
|
persistAndTruncateToolResult,
|
|
8366
|
+
recordMCPServerLastError,
|
|
8367
|
+
getMCPServerLastError,
|
|
8033
8368
|
addMCPStatusChangeListener,
|
|
8034
8369
|
removeMCPStatusChangeListener,
|
|
8035
8370
|
updateMCPServerStatus,
|