@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.
Files changed (483) hide show
  1. package/bundled/computer-use/SKILL.md +229 -0
  2. package/bundled/computer-use/agents/openai.yaml +4 -0
  3. package/bundled/coordinate/SKILL.md +5 -5
  4. package/bundled/goal-draft/SKILL.md +109 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +7 -7
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
  7. package/bundled/qc-helper/docs/configuration/settings.md +48 -48
  8. package/bundled/qc-helper/docs/extension/introduction.md +3 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  11. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
  12. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  13. package/bundled/qc-helper/docs/features/channels/overview.md +37 -6
  14. package/bundled/qc-helper/docs/features/code-review.md +27 -23
  15. package/bundled/qc-helper/docs/features/commands.md +4 -3
  16. package/bundled/qc-helper/docs/features/computer-use.md +57 -51
  17. package/bundled/qc-helper/docs/features/goals.md +58 -0
  18. package/bundled/qc-helper/docs/features/headless.md +13 -11
  19. package/bundled/qc-helper/docs/features/mcp.md +35 -12
  20. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  21. package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
  22. package/bundled/qc-helper/docs/features/worktree.md +1 -1
  23. package/bundled/qc-helper/docs/overview.md +1 -1
  24. package/bundled/qc-helper/docs/quickstart.md +1 -1
  25. package/bundled/qc-helper/docs/qwen-serve.md +29 -6
  26. package/bundled/review/SKILL.md +185 -435
  27. package/bundled/review/references/aone.md +18 -0
  28. package/bundled/review/references/persistence.md +109 -0
  29. package/bundled/review/references/posting.md +272 -0
  30. package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
  31. package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
  32. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  33. package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
  34. package/chunks/agent-RBLGBY65.js +95 -0
  35. package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
  36. package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
  37. package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
  38. package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
  39. package/chunks/bridge-5LR2F2ND.js +119 -0
  40. package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
  41. package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
  42. package/chunks/channel-settings-store-4FOAZW72.js +120 -0
  43. package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
  44. package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
  45. package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
  46. package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
  47. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  48. package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
  49. package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
  50. package/chunks/chunk-2TNL5KPM.js +49 -0
  51. package/chunks/chunk-335CJSNF.js +2320 -0
  52. package/chunks/chunk-36LGBEM6.js +130 -0
  53. package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
  54. package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
  55. package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
  56. package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
  57. package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
  58. package/chunks/chunk-3Y34Q3JV.js +1584 -0
  59. package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
  60. package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
  61. package/chunks/chunk-4CMJKUND.js +95 -0
  62. package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
  63. package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
  64. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  65. package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
  66. package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
  67. package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
  68. package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
  69. package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
  70. package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
  71. package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
  72. package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
  73. package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
  74. package/chunks/chunk-7J6OTNGO.js +424 -0
  75. package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
  76. package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
  77. package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
  78. package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
  79. package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
  80. package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
  81. package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
  82. package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
  83. package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
  84. package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
  85. package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
  86. package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
  87. package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
  88. package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
  89. package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
  90. package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
  91. package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
  92. package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
  93. package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
  94. package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
  95. package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
  96. package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
  97. package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
  98. package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
  99. package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
  100. package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
  101. package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
  102. package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
  103. package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
  104. package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
  105. package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
  106. package/chunks/chunk-DJBQCO2E.js +842 -0
  107. package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
  108. package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
  109. package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
  110. package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
  111. package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
  112. package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
  113. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  114. package/chunks/chunk-EW5VVLJT.js +3525 -0
  115. package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
  116. package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
  117. package/chunks/chunk-FBX2SDQ4.js +48 -0
  118. package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
  119. package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
  120. package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
  121. package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
  122. package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
  123. package/chunks/chunk-GYTKQYDB.js +23 -0
  124. package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
  125. package/chunks/chunk-H72BQNM3.js +645 -0
  126. package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
  127. package/chunks/chunk-HOCJDUFY.js +20 -0
  128. package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
  129. package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
  130. package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
  131. package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
  132. package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
  133. package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
  134. package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
  135. package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
  136. package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
  137. package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
  138. package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
  139. package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
  140. package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
  141. package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
  142. package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
  143. package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
  144. package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
  145. package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
  146. package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
  147. package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
  148. package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
  149. package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
  150. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  151. package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
  152. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  153. package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
  154. package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
  155. package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
  156. package/chunks/chunk-OI4NY7RA.js +346 -0
  157. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  158. package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
  159. package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
  160. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  161. package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
  162. package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
  163. package/chunks/chunk-QHMLYMMS.js +32 -0
  164. package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
  165. package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
  166. package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
  167. package/chunks/chunk-RKFGE7JH.js +93 -0
  168. package/chunks/chunk-RNVFRIOO.js +275 -0
  169. package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
  170. package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
  171. package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
  172. package/chunks/chunk-RXFQM6FQ.js +42 -0
  173. package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
  174. package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
  175. package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
  176. package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
  177. package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
  178. package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
  179. package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
  180. package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
  181. package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
  182. package/chunks/chunk-T4EFG2P5.js +113 -0
  183. package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
  184. package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
  185. package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
  186. package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
  187. package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
  188. package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
  189. package/chunks/chunk-U54AYGEC.js +337 -0
  190. package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
  191. package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
  192. package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
  193. package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
  194. package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
  195. package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
  196. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  197. package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
  198. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  199. package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
  200. package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
  201. package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
  202. package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
  203. package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
  204. package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
  205. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  206. package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
  207. package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
  208. package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
  209. package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
  210. package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
  211. package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
  212. package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
  213. package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
  214. package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
  215. package/chunks/chunk-ZELCTN6Y.js +29 -0
  216. package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
  217. package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
  218. package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
  219. package/chunks/chunk-ZYNTSXWK.js +32 -0
  220. package/chunks/config-utils-JVGAP34H.js +113 -0
  221. package/chunks/contextCommand-XDB7OSO7.js +106 -0
  222. package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
  223. package/chunks/create-sub-session-23ITIELI.js +17 -0
  224. package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
  225. package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
  226. package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
  227. package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
  228. package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
  229. package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
  230. package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
  231. package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
  232. package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
  233. package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
  234. package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
  235. package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
  236. package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
  237. package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
  238. package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
  239. package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
  240. package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
  241. package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
  242. package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
  243. package/chunks/dist-QDLFKWOL.js +2512 -0
  244. package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
  245. package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
  246. package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
  247. package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
  248. package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
  249. package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
  250. package/chunks/environment-CKWHBC5T.js +129 -0
  251. package/chunks/errors-XTZPNQ77.js +113 -0
  252. package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
  253. package/chunks/exitPlanMode-CY344X5J.js +83 -0
  254. package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
  255. package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
  256. package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
  257. package/chunks/{gemini-7PVQWHTH.js → gemini-VQY2YCPH.js} +137 -129
  258. package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
  259. package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
  260. package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
  261. package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
  262. package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
  263. package/chunks/i18n-BZYKOST7.js +124 -0
  264. package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
  265. package/chunks/initializer-GO2C5HE3.js +113 -0
  266. package/chunks/installationInfo-WM2GXQZ6.js +107 -0
  267. package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
  268. package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
  269. package/chunks/list-ERDJB7PQ.js +116 -0
  270. package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
  271. package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
  272. package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
  273. package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
  274. package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
  275. package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
  276. package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
  277. package/chunks/mcp-2LH3QXR2.js +110 -0
  278. package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
  279. package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
  280. package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
  281. package/chunks/open-with-auth-4UI3KHUR.js +55 -0
  282. package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
  283. package/chunks/pidfile-P25DWA5Q.js +111 -0
  284. package/chunks/process-registry-OAEG6WGC.js +662 -0
  285. package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
  286. package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
  287. package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
  288. package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
  289. package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
  290. package/chunks/read-file-6IIY4RLJ.js +32 -0
  291. package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
  292. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  293. package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
  294. package/chunks/report-findings-XA3FJG3N.js +33 -0
  295. package/chunks/request-shutdown-BCLA3JV2.js +133 -0
  296. package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
  297. package/chunks/ripGrep-E7ESZ7SS.js +39 -0
  298. package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
  299. package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
  300. package/chunks/runtime-RUSPD35D.js +148 -0
  301. package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
  302. package/chunks/scheduler-TDRB2NSY.js +122 -0
  303. package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
  304. package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
  305. package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
  306. package/chunks/serve-KITOM7OR.js +118 -0
  307. package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
  308. package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
  309. package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
  310. package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
  311. package/chunks/shell-5FJ2DZ3W.js +93 -0
  312. package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
  313. package/chunks/skill-settings-7SG4YA2W.js +118 -0
  314. package/chunks/spawnChannel-BPMIXRBI.js +112 -0
  315. package/chunks/standalone-update-QN5HFRIC.js +118 -0
  316. package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
  317. package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
  318. package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
  319. package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
  320. package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
  321. package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
  322. package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
  323. package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
  324. package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
  325. package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
  326. package/chunks/theme-manager-TA33UZZX.js +102 -0
  327. package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
  328. package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
  329. package/chunks/total-session-admission-PWXZBOVX.js +114 -0
  330. package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
  331. package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
  332. package/chunks/updateCheck-T5O2WGIB.js +118 -0
  333. package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
  334. package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
  335. package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
  336. package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
  337. package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
  338. package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
  339. package/chunks/webapi-Z5OM224P.js +4118 -0
  340. package/chunks/{workflow-2FCMBTBZ.js → workflow-JBXU3IGA.js} +713 -138
  341. package/chunks/workspace-providers-status-525ORQBH.js +114 -0
  342. package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
  343. package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
  344. package/chunks/workspace-service-7PXDM6EB.js +129 -0
  345. package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
  346. package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
  347. package/chunks/write-file-BVQRYQQO.js +88 -0
  348. package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
  349. package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
  350. package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
  351. package/cli.js +13 -13
  352. package/locales/ca.js +3 -0
  353. package/locales/de.js +1 -0
  354. package/locales/en.js +5 -0
  355. package/locales/fr.js +1 -0
  356. package/locales/ja.js +1 -0
  357. package/locales/pt.js +1 -0
  358. package/locales/ru.js +1 -0
  359. package/locales/zh-TW.js +5 -0
  360. package/locales/zh.js +5 -0
  361. package/package.json +3 -3
  362. package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
  363. package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
  364. package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
  365. package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
  366. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
  367. package/web-shell/assets/channel-D_TyfiTx.js +1 -0
  368. package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
  369. package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
  370. package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
  371. package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
  372. package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
  373. package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
  374. package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
  375. package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
  376. package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
  377. package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
  378. package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
  379. package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
  380. package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
  381. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
  382. package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
  383. package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
  384. package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
  385. package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
  386. package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
  387. package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
  388. package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
  389. package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
  390. package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
  391. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
  392. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
  393. package/web-shell/assets/index-BjUg3vPr.css +5 -0
  394. package/web-shell/assets/index-CFwYYVFU.js +1873 -0
  395. package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
  396. package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
  397. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
  398. package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
  399. package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
  400. package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
  401. package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
  402. package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
  403. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
  404. package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
  405. package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
  406. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
  407. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
  408. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
  409. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
  410. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
  411. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
  412. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
  413. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
  414. package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
  415. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
  416. package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
  417. package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
  418. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
  419. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
  420. package/web-shell/index.html +20 -5
  421. package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
  422. package/chunks/agent-BFE3DQM3.js +0 -93
  423. package/chunks/agent-headless-LLVKZZ4P.js +0 -87
  424. package/chunks/bridge-EBYO4SYM.js +0 -118
  425. package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
  426. package/chunks/chunk-2J3OJGTL.js +0 -98
  427. package/chunks/chunk-7IV52LTO.js +0 -202
  428. package/chunks/chunk-AXMWHKXA.js +0 -42
  429. package/chunks/chunk-F6WFNA7U.js +0 -22
  430. package/chunks/chunk-IO257NUD.js +0 -623
  431. package/chunks/chunk-JS73NNWF.js +0 -30
  432. package/chunks/chunk-SJ4HB27T.js +0 -945
  433. package/chunks/chunk-VGHZT6JR.js +0 -51
  434. package/chunks/chunk-YHC2EYYG.js +0 -125
  435. package/chunks/computer-use-EGPWFEX6.js +0 -2142
  436. package/chunks/config-utils-WZ43VOBS.js +0 -25
  437. package/chunks/contextCommand-5DSEQI6S.js +0 -106
  438. package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
  439. package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
  440. package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
  441. package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
  442. package/chunks/environment-WUPHLPKZ.js +0 -127
  443. package/chunks/errors-WPMPVIAT.js +0 -113
  444. package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
  445. package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
  446. package/chunks/i18n-C562S6KN.js +0 -124
  447. package/chunks/initializer-7YPGOFP4.js +0 -113
  448. package/chunks/installationInfo-ARU5Q2H7.js +0 -107
  449. package/chunks/list-KTSK275C.js +0 -116
  450. package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
  451. package/chunks/mcp-6ONTVPAY.js +0 -110
  452. package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
  453. package/chunks/pidfile-IO7ALSZF.js +0 -111
  454. package/chunks/process-registry-PMJOA5CO.js +0 -172
  455. package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
  456. package/chunks/read-file-2HOD2ATO.js +0 -33
  457. package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
  458. package/chunks/ripGrep-E7P6K4QR.js +0 -40
  459. package/chunks/runtime-J4SPTJRQ.js +0 -148
  460. package/chunks/scheduler-VRAEZZ4E.js +0 -122
  461. package/chunks/serve-KEAWV4TI.js +0 -118
  462. package/chunks/shell-H6K63WG3.js +0 -95
  463. package/chunks/skill-settings-TCKLXIXM.js +0 -118
  464. package/chunks/spawnChannel-2K6NKWM5.js +0 -111
  465. package/chunks/standalone-update-LSCGOEFP.js +0 -118
  466. package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
  467. package/chunks/theme-manager-6B47ZPIF.js +0 -102
  468. package/chunks/total-session-admission-NSCFWGJH.js +0 -113
  469. package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
  470. package/chunks/updateCheck-EOVLHD4T.js +0 -118
  471. package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
  472. package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
  473. package/chunks/workspace-registry-BQISXT6Y.js +0 -122
  474. package/chunks/workspace-service-LLY6HCUC.js +0 -129
  475. package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
  476. package/chunks/write-file-EJHU2Z3E.js +0 -90
  477. package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
  478. package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
  479. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
  480. package/web-shell/assets/index-BN_m_uHJ.css +0 -5
  481. package/web-shell/assets/index-DrlJu79f.js +0 -1792
  482. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
  483. 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-YRLW2MSX.js";
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-IWOWEENB.js";
17
+ } from "./chunk-BKWNKLZB.js";
18
18
  import {
19
19
  isAnyAutoMemPath
20
- } from "./chunk-HIK2OF33.js";
20
+ } from "./chunk-6PJOTWAN.js";
21
21
  import {
22
22
  runSideQuery
23
- } from "./chunk-ZRYQMWEP.js";
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-JGUBDRBC.js";
30
+ } from "./chunk-6DIGWMGT.js";
31
31
  import {
32
32
  atomicWriteFile
33
- } from "./chunk-HDKCKCYO.js";
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-GAHYKJPV.js";
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-XL5K4SVK.js";
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-6NFAEG54.js";
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-A5F2YNO6.js";
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(this.#sessionMetrics.get(sessionId), event);
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
- for (const bucket of [modelMetrics, sourceMetrics]) {
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 += event.input_token_count;
3056
+ bucket.tokens.prompt += prompt;
2931
3057
  bucket.tokens.candidates += event.output_token_count;
2932
- bucket.tokens.total += event.total_token_count;
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
- for (const bucket of [modelMetrics, sourceMetrics]) {
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/utils/truncation.ts
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: getDisplayFromPartsWithPersistedOutput(
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 2000 lines), so it is exempt from the scheduler's
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,