@qwen-code/qwen-code 0.21.6-preview.0 → 0.21.7

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 (309) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +19 -9
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  3. package/bundled/qc-helper/docs/features/channels/github.md +31 -19
  4. package/bundled/qc-helper/docs/features/code-review.md +30 -1
  5. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  6. package/bundled/review/SKILL.md +59 -22
  7. package/chunks/{MaxSizedBox-A3UYJS6B.js → MaxSizedBox-ANWZBPTS.js} +38 -38
  8. package/chunks/{StandaloneSessionPicker-NGLY26I4.js → StandaloneSessionPicker-XKS3VU3A.js} +56 -55
  9. package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
  10. package/chunks/{acpAgent-V54T2EEL.js → acpAgent-KUAZ3GCZ.js} +1091 -150
  11. package/chunks/{agent-2P53VL2L.js → agent-T6PTGX5R.js} +35 -35
  12. package/chunks/{agent-headless-6X4GCFRD.js → agent-headless-PR7YCB7S.js} +35 -35
  13. package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
  14. package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
  15. package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
  16. package/chunks/{bridge-TCFMLKHR.js → bridge-NU6YEEHK.js} +41 -41
  17. package/chunks/{channel-management-service-5XPPTWUQ.js → channel-management-service-FSQ7SHYI.js} +1 -1
  18. package/chunks/{channel-settings-store-B4HNMNQV.js → channel-settings-store-35VQVUVV.js} +42 -42
  19. package/chunks/{channel-worker-group-SVGPDH2C.js → channel-worker-group-JWQK224X.js} +5 -5
  20. package/chunks/{channel-worker-manager-72ZK2GTS.js → channel-worker-manager-77E3OXRQ.js} +5 -5
  21. package/chunks/{channel-worker-supervisor-NUEDVHX4.js → channel-worker-supervisor-62YWUGP2.js} +3 -3
  22. package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
  23. package/chunks/{chunk-WXS647W5.js → chunk-23RZCH76.js} +3 -3
  24. package/chunks/{chunk-O656RSMC.js → chunk-2U3WZGZG.js} +18 -10
  25. package/chunks/chunk-2VSTGY6M.js +107 -0
  26. package/chunks/{chunk-AU3XNTMV.js → chunk-33ACCIIY.js} +3 -3
  27. package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
  28. package/chunks/{chunk-CJBRIJ7W.js → chunk-3NB7TSE2.js} +3 -3
  29. package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
  30. package/chunks/{chunk-7FUVSN4D.js → chunk-55LYDVPU.js} +1 -1
  31. package/chunks/{chunk-3ZRS2XNY.js → chunk-5KH532V7.js} +1 -1
  32. package/chunks/{chunk-P7LKADIT.js → chunk-6EOI4HOK.js} +7 -7
  33. package/chunks/{chunk-X6DV3WKN.js → chunk-6GONZVLS.js} +1 -1
  34. package/chunks/{chunk-T4XY5CT4.js → chunk-6HVUFDS2.js} +7 -7
  35. package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
  36. package/chunks/{chunk-SPUDIAHX.js → chunk-6UWFTUQL.js} +530 -388
  37. package/chunks/{chunk-EKWNNQQD.js → chunk-6XJMFJ4D.js} +16 -10
  38. package/chunks/{chunk-72DZPDH4.js → chunk-6XU3PH66.js} +10 -5
  39. package/chunks/{chunk-WIPQR44Y.js → chunk-72LNFGUY.js} +3 -3
  40. package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
  41. package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
  42. package/chunks/{chunk-HKNSU4WX.js → chunk-AE77C5ZU.js} +198 -35
  43. package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
  44. package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
  45. package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
  46. package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
  47. package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
  48. package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
  49. package/chunks/{chunk-WPKIU4PA.js → chunk-CB2464BK.js} +6 -6
  50. package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
  51. package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
  52. package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
  53. package/chunks/{chunk-6KEN3RIC.js → chunk-CSZEXZBE.js} +3 -3
  54. package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
  55. package/chunks/{chunk-5CDI4UOY.js → chunk-CXE7E23H.js} +131 -48
  56. package/chunks/{chunk-URJHXOSO.js → chunk-CYR3HI5X.js} +3 -3
  57. package/chunks/{chunk-546CDN6D.js → chunk-DBOFL3LQ.js} +3 -3
  58. package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
  59. package/chunks/{chunk-2U7GPHA6.js → chunk-E33LOKRA.js} +1 -1
  60. package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
  61. package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
  62. package/chunks/{chunk-QG2ACINA.js → chunk-EORNAQDT.js} +1 -1
  63. package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
  64. package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
  65. package/chunks/{chunk-CDHNGCJI.js → chunk-EUQTXRKZ.js} +7 -7
  66. package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
  67. package/chunks/{chunk-BU4BRCPX.js → chunk-FPM27XN4.js} +5 -5
  68. package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
  69. package/chunks/{chunk-NKST54XA.js → chunk-FZBZSYKU.js} +1 -1
  70. package/chunks/{chunk-XZCMQUOF.js → chunk-GDXET5XU.js} +31 -3387
  71. package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
  72. package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
  73. package/chunks/{chunk-AFZTZLFB.js → chunk-GSS34377.js} +3 -3
  74. package/chunks/{chunk-MVLM6PJK.js → chunk-H2UQ2M5Z.js} +6 -2
  75. package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
  76. package/chunks/{chunk-CXYBX4AL.js → chunk-HQB2KUAN.js} +1 -1
  77. package/chunks/{chunk-ZQL73PPE.js → chunk-HYRDKNUY.js} +2 -2
  78. package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
  79. package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
  80. package/chunks/{chunk-DTAPI453.js → chunk-IUFV6FYU.js} +2 -2
  81. package/chunks/{chunk-MISUEWB4.js → chunk-J6SZID63.js} +12 -8
  82. package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
  83. package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
  84. package/chunks/{chunk-XOZ2R6XI.js → chunk-KKJJB5X6.js} +3578 -1487
  85. package/chunks/{chunk-PQTK2FVO.js → chunk-KR4ZSC7K.js} +4 -4
  86. package/chunks/{chunk-NAYPZ72V.js → chunk-KXSDEOFU.js} +1 -1
  87. package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
  88. package/chunks/{chunk-4T6QMNX2.js → chunk-LA7YLSR6.js} +185 -12
  89. package/chunks/{chunk-4E5PO6R7.js → chunk-LEMXGVEP.js} +4 -4
  90. package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
  91. package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
  92. package/chunks/{chunk-Z5S6KH2B.js → chunk-MAJS7AT4.js} +6 -6
  93. package/chunks/{chunk-XNZBXQCG.js → chunk-MKVZE4ZJ.js} +1 -1
  94. package/chunks/{chunk-I7JDGNG6.js → chunk-MVUQRLOH.js} +9 -5
  95. package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
  96. package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
  97. package/chunks/chunk-NKLP3DCK.js +22 -0
  98. package/chunks/{chunk-WIRAPZ62.js → chunk-NLREQJFK.js} +7 -1
  99. package/chunks/{chunk-N47ZM2KI.js → chunk-OFI7IGST.js} +12 -12
  100. package/chunks/{chunk-DBIEZC7T.js → chunk-OH2VKQXH.js} +42 -16
  101. package/chunks/{chunk-C4GRKMUL.js → chunk-OHJLEW5J.js} +5 -5
  102. package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
  103. package/chunks/{chunk-VDLXPEI5.js → chunk-OMKQH5C5.js} +3 -3
  104. package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
  105. package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
  106. package/chunks/{chunk-WAOLM6SQ.js → chunk-P2AJ7FTI.js} +1 -1
  107. package/chunks/{chunk-MFBUJMQ3.js → chunk-P3LEG54R.js} +4 -4
  108. package/chunks/{chunk-WVRJKSIG.js → chunk-PJOBIWUG.js} +1 -1
  109. package/chunks/{chunk-YUVTZ4UH.js → chunk-PQBHU2IA.js} +114 -18
  110. package/chunks/{chunk-GTM6IHBB.js → chunk-Q3JQ7OSU.js} +2 -1
  111. package/chunks/{chunk-IISDPZ5X.js → chunk-QETYKPMG.js} +1 -1
  112. package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
  113. package/chunks/{chunk-DOICUTPO.js → chunk-RERATVSK.js} +11 -10
  114. package/chunks/chunk-RGSBTHSU.js +3381 -0
  115. package/chunks/{chunk-6D6V55ZQ.js → chunk-RMH5OWLD.js} +1 -1
  116. package/chunks/{chunk-AVDEBBMI.js → chunk-RNVQB725.js} +2 -2
  117. package/chunks/{chunk-QWUYFMAR.js → chunk-RUL4S3K3.js} +87 -67
  118. package/chunks/{chunk-RTWF7FF7.js → chunk-RZHU3ILK.js} +5 -5
  119. package/chunks/{chunk-3DTM3RPU.js → chunk-S7CV4KO6.js} +3 -3
  120. package/chunks/{chunk-ZH7G3A4U.js → chunk-SCI7K3GM.js} +4 -4
  121. package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
  122. package/chunks/{chunk-6KZP75GT.js → chunk-SHZYHGQH.js} +1 -1
  123. package/chunks/chunk-SOORFWKY.js +155 -0
  124. package/chunks/{chunk-NYZAL2W2.js → chunk-SPMY6CX6.js} +4 -4
  125. package/chunks/{chunk-EHMN6SEG.js → chunk-TDXGKHDN.js} +4 -4
  126. package/chunks/{chunk-XKTCA6BW.js → chunk-TLV2IMHR.js} +5 -5
  127. package/chunks/{chunk-XSGQKR37.js → chunk-TRLYP7OF.js} +358 -20
  128. package/chunks/{chunk-DG563ZCS.js → chunk-TYKC75AX.js} +3 -3
  129. package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
  130. package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
  131. package/chunks/{chunk-IKXE3AAC.js → chunk-VOARQPTA.js} +2 -2
  132. package/chunks/{chunk-TVFC3XF5.js → chunk-W4B7UBUS.js} +7 -7
  133. package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
  134. package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
  135. package/chunks/{chunk-A6SX5TAH.js → chunk-XCWO3SMQ.js} +9 -5
  136. package/chunks/{chunk-FDV3CXTD.js → chunk-Y4EWSQF7.js} +3 -3
  137. package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
  138. package/chunks/{chunk-DOA7MCDY.js → chunk-Y7E5LNLO.js} +973 -892
  139. package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
  140. package/chunks/{chunk-Y5HIDFKZ.js → chunk-YJQCUTT2.js} +4 -4
  141. package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
  142. package/chunks/{chunk-SQ3ZJOYL.js → chunk-ZJ3VGYHK.js} +20 -20
  143. package/chunks/{chunk-7GYP5COR.js → chunk-ZXU5UHMI.js} +1 -1
  144. package/chunks/{computer-use-GTOP2CVH.js → computer-use-KEAPATUY.js} +35 -35
  145. package/chunks/{config-utils-LIRO7NSU.js → config-utils-K7SCOWHD.js} +2 -2
  146. package/chunks/{contextCommand-K6T6RRF3.js → contextCommand-ZJA6A5K5.js} +38 -38
  147. package/chunks/{core-runtime-D2626QQU.js → core-runtime-QMJPWHCI.js} +35 -35
  148. package/chunks/create-sub-session-DJE6XICH.js +772 -0
  149. package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
  150. package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
  151. package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
  152. package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
  153. package/chunks/{daemon-CCIX4BMG.js → daemon-SCTQMM7Z.js} +165 -5
  154. package/chunks/{daemon-status-provider-2EHRZZVF.js → daemon-status-provider-FSWDPE2G.js} +45 -45
  155. package/chunks/{daemon-trust-policy-B3EPDJDR.js → daemon-trust-policy-P5L5VFAY.js} +41 -41
  156. package/chunks/{daemon-trust-policy-monitor-MFM5X26G.js → daemon-trust-policy-monitor-73JYN6ET.js} +41 -41
  157. package/chunks/{deferred-core-runtime-KXN7HLN7.js → deferred-core-runtime-BWRCCFTE.js} +35 -35
  158. package/chunks/discovery-XLHITE74.js +220 -0
  159. package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
  160. package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
  161. package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
  162. package/chunks/{earlyInputCapture-WUNYYFOS.js → earlyInputCapture-L5ST23A6.js} +36 -36
  163. package/chunks/{edit-DMFCBP2D.js → edit-LHHRFNFK.js} +35 -35
  164. package/chunks/{enter-worktree-5SVBCXFC.js → enter-worktree-6NXCRZPF.js} +35 -35
  165. package/chunks/{enterPlanMode-QUIZFQ4M.js → enterPlanMode-ZVQT4U7D.js} +35 -35
  166. package/chunks/{environment-U6QP23VJ.js → environment-GJ2HWJOS.js} +38 -38
  167. package/chunks/{errors-GZWFA6ON.js → errors-6RLH3XXC.js} +38 -38
  168. package/chunks/{exit-worktree-FUB44KAF.js → exit-worktree-I2YLUHHY.js} +35 -35
  169. package/chunks/{exitPlanMode-XSHHYR73.js → exitPlanMode-7CCWKO7I.js} +35 -35
  170. package/chunks/{fast-path-JHQJSIMZ.js → fast-path-DVFD4HQD.js} +2 -2
  171. package/chunks/{gemini-O44ETOKT.js → gemini-7FWGOYD4.js} +78 -78
  172. package/chunks/{geminiContentGenerator-TTM4TZJM.js → geminiContentGenerator-V2WVLIXU.js} +6 -6
  173. package/chunks/{glob-YECOWTRW.js → glob-3N6GGI75.js} +35 -35
  174. package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
  175. package/chunks/{grep-BZO4LOTA.js → grep-V43ILZVX.js} +35 -35
  176. package/chunks/{handleAutoUpdate-TOO52D6H.js → handleAutoUpdate-A5WFVWIA.js} +40 -40
  177. package/chunks/{i18n-ARJYXZQ5.js → i18n-PLVQ4FBZ.js} +37 -37
  178. package/chunks/{image-gen-J6Q2YBEU.js → image-gen-7C6IK6DC.js} +9 -9
  179. package/chunks/{initializer-CEZ4RPQV.js → initializer-CVAIKZYL.js} +42 -42
  180. package/chunks/{installationInfo-AEGIIQAT.js → installationInfo-J6QDHNTK.js} +36 -36
  181. package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
  182. package/chunks/{list-7XLPV5GC.js → list-ZZ4OUUWV.js} +44 -44
  183. package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
  184. package/chunks/{loadedSettingsAdapter-YK5SBHOT.js → loadedSettingsAdapter-QRYRJSWL.js} +41 -41
  185. package/chunks/{loggingContentGenerator-I7QDXS43.js → loggingContentGenerator-OJCO75HM.js} +17 -17
  186. package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
  187. package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
  188. package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
  189. package/chunks/{managed-npm-update-YSL7PA7G.js → managed-npm-update-PCOSCP2N.js} +48 -39
  190. package/chunks/{mcp-RKFQZXP6.js → mcp-M3WKKWKY.js} +41 -41
  191. package/chunks/{monitor-QHHJIKGL.js → monitor-GN24FH6C.js} +35 -35
  192. package/chunks/{nonInteractiveCli-XEBIE7MG.js → nonInteractiveCli-KPTU3VSQ.js} +75 -75
  193. package/chunks/{notebook-edit-SG7X2EQA.js → notebook-edit-4YM65BBO.js} +35 -35
  194. package/chunks/{openaiContentGenerator-63CVR33K.js → openaiContentGenerator-EDQT6GTV.js} +19 -19
  195. package/chunks/{pidfile-I3CXJGQD.js → pidfile-JOIIRN2C.js} +36 -36
  196. package/chunks/{processUtils-LJ3DSANX.js → processUtils-5SV4MX3Q.js} +2 -2
  197. package/chunks/{qwenContentGenerator-JINBVCH6.js → qwenContentGenerator-ODRJSUGR.js} +40 -40
  198. package/chunks/{qwenOAuth2-SY2O3NRR.js → qwenOAuth2-NESCMZ47.js} +8 -8
  199. package/chunks/{read-file-PGTXF25I.js → read-file-HPSODLPK.js} +10 -10
  200. package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
  201. package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
  202. package/chunks/{resumeHistoryUtils-FB2NFVZ2.js → resumeHistoryUtils-TXCOFFMQ.js} +42 -41
  203. package/chunks/{ripGrep-IY3KGPM6.js → ripGrep-ZKQGTQAO.js} +35 -35
  204. package/chunks/{run-qwen-serve-UYEMGPKA.js → run-qwen-serve-ZPKPKECF.js} +516 -87
  205. package/chunks/{runtime-CG3BKRFE.js → runtime-2FLNNM36.js} +44 -44
  206. package/chunks/{scheduler-VFUVGDE5.js → scheduler-365PJHNR.js} +35 -35
  207. package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
  208. package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
  209. package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
  210. package/chunks/{serve-ZCCQ2G2L.js → serve-QD2RNLKJ.js} +42 -42
  211. package/chunks/{server-WS7LWXPP.js → server-XLJVLTYM.js} +7952 -611
  212. package/chunks/{session-IQLCT32T.js → session-3VTUHH4Q.js} +78 -78
  213. package/chunks/{settings-NX4EUIE6.js → settings-KULVPCQC.js} +40 -40
  214. package/chunks/{shell-THDYM4CS.js → shell-3SWW22MH.js} +35 -35
  215. package/chunks/{skill-OXXZBNQB.js → skill-KDHWYS7W.js} +14 -14
  216. package/chunks/{skill-settings-T3JZ33T2.js → skill-settings-NMY4JEJC.js} +40 -40
  217. package/chunks/{spawnChannel-COLJMSA7.js → spawnChannel-ZKS4Q5OU.js} +37 -37
  218. package/chunks/{standalone-update-ICW7H5IF.js → standalone-update-7CXPGAQ4.js} +38 -38
  219. package/chunks/{startInteractiveUI-6BDRXSMF.js → startInteractiveUI-2QQLEKM6.js} +473 -233
  220. package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
  221. package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
  222. package/chunks/{task-create-2X4UP4F3.js → task-create-CQP5UEA3.js} +9 -9
  223. package/chunks/{task-list-WOLJPZ64.js → task-list-XLEZOJXP.js} +5 -5
  224. package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
  225. package/chunks/{task-update-VDUSN36E.js → task-update-JA75U2SN.js} +9 -9
  226. package/chunks/{team-create-BCSMDK4Z.js → team-create-2WTNGAOX.js} +35 -35
  227. package/chunks/{team-delete-D2VMSDOT.js → team-delete-MHY3UZGY.js} +5 -5
  228. package/chunks/{team-plan-approval-B5YRLJFV.js → team-plan-approval-LZTYLEG4.js} +35 -35
  229. package/chunks/{terminal-image-renderer-PW6Z6VFY.js → terminal-image-renderer-R5HHAFJN.js} +41 -36
  230. package/chunks/{theme-manager-CMVKD2JH.js → theme-manager-PAUCSJFF.js} +36 -36
  231. package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
  232. package/chunks/{tool-search-SQTUSG6P.js → tool-search-2BFCGLI6.js} +13 -13
  233. package/chunks/{total-session-admission-XAXOSE46.js → total-session-admission-MK4SINFK.js} +41 -41
  234. package/chunks/{trustedFolders-Z2UAEG2V.js → trustedFolders-TJ5S26N7.js} +37 -37
  235. package/chunks/{update-relaunch-JBLI6LJF.js → update-relaunch-N7AYLARF.js} +6 -6
  236. package/chunks/{updateCheck-FDAVGOFT.js → updateCheck-QRZ3DVT5.js} +39 -39
  237. package/chunks/{useAutoAcceptIndicator-PDZFIYRM.js → useAutoAcceptIndicator-DBJ7Y5AF.js} +44 -44
  238. package/chunks/{validateNonInterActiveAuth-Q4763ONQ.js → validateNonInterActiveAuth-6ZQWUDS3.js} +72 -72
  239. package/chunks/{version-C7MPCGWD.js → version-AJQGQWXC.js} +1 -1
  240. package/chunks/{web-fetch-L7RAPOJB.js → web-fetch-QWJYRXFL.js} +13 -13
  241. package/chunks/{web-search-IDOYUOWX.js → web-search-2AOXJGHU.js} +9 -9
  242. package/chunks/web-shell-static-O73YPVVC.js +33 -0
  243. package/chunks/{workflow-HXURUJB5.js → workflow-ERH3SJG2.js} +36 -36
  244. package/chunks/{workspace-providers-status-JZ3GPWNU.js → workspace-providers-status-HZ474RA4.js} +44 -44
  245. package/chunks/{workspace-registration-store-SM2PWB6L.js → workspace-registration-store-6EUP4JXG.js} +1 -1
  246. package/chunks/{workspace-registry-6W4ES7BJ.js → workspace-registry-R4APRRNC.js} +41 -41
  247. package/chunks/{workspace-service-V47ZFJRX.js → workspace-service-HFIFDMU7.js} +46 -46
  248. package/chunks/{workspace-skills-status-6ZQ45XKA.js → workspace-skills-status-HAHEIHGK.js} +42 -42
  249. package/chunks/{workspace-trust-reconciler-6V25LMCN.js → workspace-trust-reconciler-65GTAGDK.js} +50 -50
  250. package/chunks/{write-file-H2QOF25K.js → write-file-B34CDELV.js} +35 -35
  251. package/chunks/{zoom-image-JTUSS43N.js → zoom-image-HPRBZHSS.js} +10 -10
  252. package/cli.js +15 -15
  253. package/package.json +3 -3
  254. package/web-shell/assets/{arc-DtI1rZcQ.js → arc-Ip-FFDJ0.js} +1 -1
  255. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BPZwSVct.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
  256. package/web-shell/assets/{blockDiagram-GPEHLZMM-BIQ03j4C.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
  257. package/web-shell/assets/{c4Diagram-AAUBKEIU-CB0RyFGm.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
  258. package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
  259. package/web-shell/assets/{chunk-2J33WTMH-B3WoS-4H.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
  260. package/web-shell/assets/{chunk-4BX2VUAB-C98xYZ1X.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
  261. package/web-shell/assets/{chunk-55IACEB6-CbTIWRwQ.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
  262. package/web-shell/assets/{chunk-727SXJPM-DWGnKTPu.js → chunk-727SXJPM-B27MPznD.js} +1 -1
  263. package/web-shell/assets/{chunk-AQP2D5EJ-4__QyCEX.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
  264. package/web-shell/assets/{chunk-FMBD7UC4-DFtG1YCW.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
  265. package/web-shell/assets/{chunk-ND2GUHAM-rvAhW51N.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
  266. package/web-shell/assets/{chunk-QZHKN3VN-DfiU9pwZ.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
  267. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
  268. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
  269. package/web-shell/assets/{cose-bilkent-S5V4N54A-Cc4EIdxu.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
  270. package/web-shell/assets/{dagre-BM42HDAG-CZNj4dGW.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
  271. package/web-shell/assets/{diagram-2AECGRRQ-D5tiqQCr.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
  272. package/web-shell/assets/{diagram-5GNKFQAL-pwzw0jVO.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
  273. package/web-shell/assets/{diagram-KO2AKTUF-4CWiM00x.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
  274. package/web-shell/assets/{diagram-LMA3HP47-Dd7rc7Qf.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
  275. package/web-shell/assets/{diagram-OG6HWLK6-_vzV52ml.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
  276. package/web-shell/assets/{erDiagram-TEJ5UH35-CqbE2bx_.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
  277. package/web-shell/assets/{flowDiagram-I6XJVG4X-CaxNr7w4.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
  278. package/web-shell/assets/{ganttDiagram-6RSMTGT7-AGjrtfUA.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
  279. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ADG2zSkc.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
  280. package/web-shell/assets/{index-BOryKCqt.js → index-BXqw-nGq.js} +1 -1
  281. package/web-shell/assets/index-QQlUCJGg.css +5 -0
  282. package/web-shell/assets/index-hcgjV7vS.js +1768 -0
  283. package/web-shell/assets/{infoDiagram-5YYISTIA-CE3B_IoZ.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
  284. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CN-Frhoi.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
  285. package/web-shell/assets/{journeyDiagram-JHISSGLW-CGgezS93.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
  286. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqWijky5.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
  287. package/web-shell/assets/{linear-D8sfpZf6.js → linear-BMIepYX3.js} +1 -1
  288. package/web-shell/assets/{mermaid.core-3PA4QrzM.js → mermaid.core-zA8pJ9ag.js} +5 -5
  289. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D9QxwiCY.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
  290. package/web-shell/assets/{pieDiagram-4H26LBE5-Bioaf6uE.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
  291. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DBb2AS73.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
  292. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DXOvZ3KB.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
  293. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D9qg09Dm.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
  294. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DSAUIfpw.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
  295. package/web-shell/assets/{stateDiagram-AJRCARHV-BPZkzfQ3.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
  296. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
  297. package/web-shell/assets/{timeline-definition-PNZ67QCA-UDaQp9sP.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
  298. package/web-shell/assets/{vennDiagram-CIIHVFJN-2ouhAnHO.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
  299. package/web-shell/assets/{wardley-L42UT6IY-Cq_WEvTK.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
  300. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Dt24aXOM.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
  301. package/web-shell/assets/{xychartDiagram-2RQKCTM6-A5Xk2WCH.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
  302. package/web-shell/index.html +2 -2
  303. package/chunks/create-sub-session-MWUWNBM6.js +0 -401
  304. package/web-shell/assets/channel-vfbVFuM1.js +0 -1
  305. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +0 -1
  306. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +0 -1
  307. package/web-shell/assets/index-Cb1LjsCv.css +0 -5
  308. package/web-shell/assets/index-CvJDaIy8.js +0 -1756
  309. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +0 -1
@@ -3,15 +3,17 @@
3
3
  import {
4
4
  DashScopeOpenAICompatibleProvider,
5
5
  DefaultOpenAICompatibleProvider
6
- } from "./chunk-HU5TUALO.js";
6
+ } from "./chunk-IIJEYBNH.js";
7
7
  import {
8
8
  RequestTokenizer
9
- } from "./chunk-H36SETQS.js";
9
+ } from "./chunk-B2GJNDTV.js";
10
10
  import {
11
11
  DEFAULT_STREAM_IDLE_TIMEOUT_MS,
12
- MAX_STREAM_IDLE_TIMEOUT_MS,
13
- QWEN_STREAM_IDLE_TIMEOUT_MS_ENV
14
- } from "./chunk-GLNBDYUX.js";
12
+ DEFAULT_STREAM_MAX_LIFETIME_MS,
13
+ MAX_STREAM_GUARD_TIMEOUT_MS,
14
+ QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
15
+ QWEN_STREAM_MAX_LIFETIME_MS_ENV
16
+ } from "./chunk-AXMWHKXA.js";
15
17
  import {
16
18
  createChildAbortController
17
19
  } from "./chunk-DJ2GSRLV.js";
@@ -19,16 +21,16 @@ import {
19
21
  OpenAIContentConverter,
20
22
  TaggedThinkingParser,
21
23
  openaiRequestCaptureContext
22
- } from "./chunk-4LKVQFHM.js";
24
+ } from "./chunk-DREZZAZM.js";
23
25
  import {
24
26
  InvalidStreamError
25
27
  } from "./chunk-2J3OJGTL.js";
26
28
  import {
27
29
  getRateLimitErrorDetails
28
- } from "./chunk-6O5DVH27.js";
30
+ } from "./chunk-M6HMMKVG.js";
29
31
  import {
30
32
  safeJsonParse
31
- } from "./chunk-WK4TJUEA.js";
33
+ } from "./chunk-CKASRHZI.js";
32
34
  import {
33
35
  getToolCallPreparations,
34
36
  runtimeDiagnostics
@@ -37,11 +39,11 @@ import {
37
39
  reportOpenAiChunk,
38
40
  reportOpenAiRequest,
39
41
  reportOpenAiResponse
40
- } from "./chunk-URN76TKR.js";
42
+ } from "./chunk-WCG5O7IP.js";
41
43
  import {
42
44
  ProtocolTagSanitizedEvent,
43
45
  logProtocolTagSanitized
44
- } from "./chunk-O656RSMC.js";
46
+ } from "./chunk-2U3WZGZG.js";
45
47
  import {
46
48
  isQwenFamilyWireModel,
47
49
  isTieredEffortWireModel
@@ -51,14 +53,14 @@ import {
51
53
  } from "./chunk-ZBVS26BY.js";
52
54
  import {
53
55
  redactProxyError
54
- } from "./chunk-BFHXDAR7.js";
56
+ } from "./chunk-KKBPOU75.js";
55
57
  import {
56
58
  createDebugLogger,
57
59
  getErrorMessage,
58
60
  getErrorStatus,
59
61
  getErrorType,
60
62
  isAbortError
61
- } from "./chunk-3RXUYQJI.js";
63
+ } from "./chunk-OIVKILPI.js";
62
64
  import {
63
65
  GenerateContentResponse
64
66
  } from "./chunk-22C7BQ6D.js";
@@ -940,6 +942,21 @@ var StreamInactivityTimeoutError = class extends Error {
940
942
  }
941
943
  code = "ETIMEDOUT";
942
944
  };
945
+ var StreamLifetimeExceededError = class extends Error {
946
+ constructor(maxLifetimeMs, chunksReceived, streamLifetimeMs) {
947
+ super(
948
+ `Stream exceeded its ${maxLifetimeMs}ms upstream-wait cap after ${chunksReceived} chunks without completing (wall clock: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_MAX_LIFETIME_MS_ENV} to increase this cap (or 0 to disable it).`
949
+ );
950
+ this.maxLifetimeMs = maxLifetimeMs;
951
+ this.chunksReceived = chunksReceived;
952
+ this.streamLifetimeMs = streamLifetimeMs;
953
+ this.name = "StreamLifetimeExceededError";
954
+ }
955
+ static {
956
+ __name(this, "StreamLifetimeExceededError");
957
+ }
958
+ code = "ETIMEDOUT";
959
+ };
943
960
  var NON_SSE_BODY_PREFIX_LIMIT = 512;
944
961
  function isSSECompatibleContentType(contentType) {
945
962
  if (!contentType) return true;
@@ -985,57 +1002,108 @@ function clampProviderOutputBudgetKeys(samplingParams, requestMaxTokens) {
985
1002
  return samplingParams;
986
1003
  }
987
1004
  __name(clampProviderOutputBudgetKeys, "clampProviderOutputBudgetKeys");
988
- function resolveStreamIdleTimeoutMs(config) {
989
- const fromConfig = config.streamIdleTimeoutMs;
1005
+ function resolveStreamGuardMs(fromConfig, configLabel, envName, defaultMs) {
990
1006
  if (typeof fromConfig === "number") {
991
- if (Number.isInteger(fromConfig) && fromConfig <= MAX_STREAM_IDLE_TIMEOUT_MS) {
1007
+ if (Number.isInteger(fromConfig) && fromConfig <= MAX_STREAM_GUARD_TIMEOUT_MS) {
992
1008
  return fromConfig;
993
1009
  }
994
1010
  console.warn(
995
- `[qwen-code] Ignoring out-of-range streamIdleTimeoutMs=${fromConfig} (expected an integer in (-\u221E, ${MAX_STREAM_IDLE_TIMEOUT_MS}]); falling back to ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV}/default.`
1011
+ `[qwen-code] Ignoring out-of-range ${configLabel}=${fromConfig} (expected an integer in (-\u221E, ${MAX_STREAM_GUARD_TIMEOUT_MS}]); falling back to ${envName}/default.`
996
1012
  );
997
1013
  }
998
- const raw = process.env[QWEN_STREAM_IDLE_TIMEOUT_MS_ENV];
1014
+ const raw = process.env[envName];
999
1015
  const trimmed = raw?.trim();
1000
1016
  if (trimmed) {
1001
1017
  if (/^\d+$/.test(trimmed)) {
1002
1018
  const parsed = Number(trimmed);
1003
- if (parsed <= MAX_STREAM_IDLE_TIMEOUT_MS) {
1019
+ if (parsed <= MAX_STREAM_GUARD_TIMEOUT_MS) {
1004
1020
  return parsed;
1005
1021
  }
1006
1022
  }
1007
1023
  console.warn(
1008
- `[qwen-code] Ignoring invalid ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV}="${raw}" (expected an integer of milliseconds in [0, ${MAX_STREAM_IDLE_TIMEOUT_MS}]); using default ${DEFAULT_STREAM_IDLE_TIMEOUT_MS}ms.`
1024
+ `[qwen-code] Ignoring invalid ${envName}="${raw}" (expected an integer of milliseconds in [0, ${MAX_STREAM_GUARD_TIMEOUT_MS}]); using default ${defaultMs}ms.`
1009
1025
  );
1010
1026
  }
1011
- return DEFAULT_STREAM_IDLE_TIMEOUT_MS;
1027
+ return defaultMs;
1028
+ }
1029
+ __name(resolveStreamGuardMs, "resolveStreamGuardMs");
1030
+ function resolveStreamIdleTimeoutMs(config) {
1031
+ return resolveStreamGuardMs(
1032
+ config.streamIdleTimeoutMs,
1033
+ "streamIdleTimeoutMs",
1034
+ QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
1035
+ DEFAULT_STREAM_IDLE_TIMEOUT_MS
1036
+ );
1012
1037
  }
1013
1038
  __name(resolveStreamIdleTimeoutMs, "resolveStreamIdleTimeoutMs");
1014
- async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parentSignal) {
1039
+ function resolveStreamMaxLifetimeMs(config) {
1040
+ return resolveStreamGuardMs(
1041
+ config.streamMaxLifetimeMs,
1042
+ "streamMaxLifetimeMs",
1043
+ QWEN_STREAM_MAX_LIFETIME_MS_ENV,
1044
+ DEFAULT_STREAM_MAX_LIFETIME_MS
1045
+ );
1046
+ }
1047
+ __name(resolveStreamMaxLifetimeMs, "resolveStreamMaxLifetimeMs");
1048
+ async function* withStreamGuards(source, idleMs, maxLifetimeMs, abortRequest, parentSignal) {
1049
+ if (idleMs <= 0 && maxLifetimeMs <= 0) {
1050
+ yield* source;
1051
+ return;
1052
+ }
1015
1053
  const it = source[Symbol.asyncIterator]();
1016
- const streamStartedAt = Date.now();
1054
+ const streamStartedAt = performance.now();
1055
+ let upstreamMs = 0;
1017
1056
  let chunksReceived = 0;
1018
1057
  try {
1019
1058
  while (true) {
1059
+ const remainingMs = maxLifetimeMs > 0 ? maxLifetimeMs - upstreamMs : Number.POSITIVE_INFINITY;
1060
+ if (remainingMs <= 0) {
1061
+ if (parentSignal?.aborted) {
1062
+ const abortErr = new Error("Aborted");
1063
+ abortErr.name = "AbortError";
1064
+ throw abortErr;
1065
+ }
1066
+ abortRequest();
1067
+ throw new StreamLifetimeExceededError(
1068
+ maxLifetimeMs,
1069
+ chunksReceived,
1070
+ performance.now() - streamStartedAt
1071
+ );
1072
+ }
1020
1073
  const nextPromise = it.next();
1074
+ const awaitedAt = performance.now();
1021
1075
  let timer;
1022
1076
  const timeout = new Promise((_resolve, reject) => {
1023
- timer = setTimeout(() => {
1024
- if (parentSignal?.aborted) {
1025
- const abortErr = new Error("Aborted");
1026
- abortErr.name = "AbortError";
1027
- reject(abortErr);
1028
- } else {
1029
- abortRequest();
1030
- reject(
1031
- new StreamInactivityTimeoutError(
1032
- idleMs,
1033
- chunksReceived,
1034
- Date.now() - streamStartedAt
1035
- )
1036
- );
1037
- }
1038
- }, idleMs);
1077
+ const idleIn = idleMs > 0 ? idleMs : Number.POSITIVE_INFINITY;
1078
+ const wait = Math.min(idleIn, remainingMs);
1079
+ timer = setTimeout(
1080
+ () => {
1081
+ if (parentSignal?.aborted) {
1082
+ const abortErr = new Error("Aborted");
1083
+ abortErr.name = "AbortError";
1084
+ reject(abortErr);
1085
+ } else if (remainingMs <= idleIn) {
1086
+ abortRequest();
1087
+ reject(
1088
+ new StreamLifetimeExceededError(
1089
+ maxLifetimeMs,
1090
+ chunksReceived,
1091
+ performance.now() - streamStartedAt
1092
+ )
1093
+ );
1094
+ } else {
1095
+ abortRequest();
1096
+ reject(
1097
+ new StreamInactivityTimeoutError(
1098
+ idleMs,
1099
+ chunksReceived,
1100
+ performance.now() - streamStartedAt
1101
+ )
1102
+ );
1103
+ }
1104
+ },
1105
+ Math.max(wait, 0)
1106
+ );
1039
1107
  timer.unref?.();
1040
1108
  });
1041
1109
  let result;
@@ -1049,6 +1117,7 @@ async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parent
1049
1117
  if (timer !== void 0) clearTimeout(timer);
1050
1118
  }
1051
1119
  if (result.done) return;
1120
+ upstreamMs += performance.now() - awaitedAt;
1052
1121
  chunksReceived += 1;
1053
1122
  yield result.value;
1054
1123
  }
@@ -1060,7 +1129,7 @@ async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parent
1060
1129
  }
1061
1130
  }
1062
1131
  }
1063
- __name(withStreamInactivityTimeout, "withStreamInactivityTimeout");
1132
+ __name(withStreamGuards, "withStreamGuards");
1064
1133
  var ContentGenerationPipeline = class {
1065
1134
  constructor(config) {
1066
1135
  this.config = config;
@@ -1069,6 +1138,9 @@ var ContentGenerationPipeline = class {
1069
1138
  this.streamIdleTimeoutMs = resolveStreamIdleTimeoutMs(
1070
1139
  this.contentGeneratorConfig
1071
1140
  );
1141
+ this.streamMaxLifetimeMs = resolveStreamMaxLifetimeMs(
1142
+ this.contentGeneratorConfig
1143
+ );
1072
1144
  }
1073
1145
  static {
1074
1146
  __name(this, "ContentGenerationPipeline");
@@ -1079,6 +1151,7 @@ var ContentGenerationPipeline = class {
1079
1151
  // Resolved once (config field > env > default) so the env read + any
1080
1152
  // invalid-value warning happen per pipeline, not per streaming request.
1081
1153
  streamIdleTimeoutMs;
1154
+ streamMaxLifetimeMs;
1082
1155
  async execute(request, userPromptId) {
1083
1156
  return this.executeWithErrorHandling(
1084
1157
  request,
@@ -1156,9 +1229,11 @@ var ContentGenerationPipeline = class {
1156
1229
  throw e;
1157
1230
  }
1158
1231
  const idleMs = this.streamIdleTimeoutMs;
1159
- const guarded = idleMs > 0 ? withStreamInactivityTimeout(
1232
+ const maxLifetimeMs = this.streamMaxLifetimeMs;
1233
+ const guarded = idleMs > 0 || maxLifetimeMs > 0 ? withStreamGuards(
1160
1234
  stream,
1161
1235
  idleMs,
1236
+ maxLifetimeMs,
1162
1237
  () => perRequestAc.abort(),
1163
1238
  parentSignal
1164
1239
  ) : stream;
@@ -1305,6 +1380,22 @@ var ContentGenerationPipeline = class {
1305
1380
  if (error instanceof StreamContentError) {
1306
1381
  throw redactProxyError(error);
1307
1382
  }
1383
+ if (error instanceof StreamInactivityTimeoutError || error instanceof StreamLifetimeExceededError) {
1384
+ const isLifetime = error instanceof StreamLifetimeExceededError;
1385
+ debugLogger3.warn(
1386
+ isLifetime ? "OpenAI stream lifetime cap exceeded" : "OpenAI stream inactivity timeout",
1387
+ {
1388
+ chunksReceived: error.chunksReceived,
1389
+ // Wall clock, labelled apart from the cap so the two numbers in
1390
+ // the log reconcile the same way the error message does.
1391
+ wallClockMs: error.streamLifetimeMs,
1392
+ ...isLifetime ? {
1393
+ maxLifetimeMs: error.maxLifetimeMs
1394
+ } : { idleMs: error.idleMs }
1395
+ }
1396
+ );
1397
+ throw redactProxyError(error);
1398
+ }
1308
1399
  if (context.pendingThinkingTagCandidate?.closingTagName && request.config?.abortSignal?.aborted !== true) {
1309
1400
  context.pendingThinkingTagCandidate = void 0;
1310
1401
  context.pendingUntrustedResponseParts = void 0;
@@ -1313,14 +1404,6 @@ var ContentGenerationPipeline = class {
1313
1404
  "PROTOCOL_TAG_LEAK"
1314
1405
  );
1315
1406
  }
1316
- if (error instanceof StreamInactivityTimeoutError) {
1317
- debugLogger3.warn("OpenAI stream inactivity timeout", {
1318
- idleMs: error.idleMs,
1319
- chunksReceived: error.chunksReceived,
1320
- streamLifetimeMs: error.streamLifetimeMs
1321
- });
1322
- throw redactProxyError(error);
1323
- }
1324
1407
  await this.handleError(error, context, request);
1325
1408
  }
1326
1409
  }
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-A6SX5TAH.js";
5
+ } from "./chunk-XCWO3SMQ.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-6WBWIPBF.js";
9
+ } from "./chunk-BVWVWGLE.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-S6LOFUVP.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-D7D7RXIJ.js";
18
+ } from "./chunk-IC4Z6LX6.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveBundleDir
5
- } from "./chunk-DOA7MCDY.js";
5
+ } from "./chunk-Y7E5LNLO.js";
6
6
  import {
7
7
  Storage
8
- } from "./chunk-3RXUYQJI.js";
8
+ } from "./chunk-OIVKILPI.js";
9
9
  import {
10
10
  writeStderrLine
11
- } from "./chunk-OWAK7LMW.js";
11
+ } from "./chunk-KGJGEEVR.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -9,7 +9,7 @@ import {
9
9
  relaxSchemaForFunctionCalling,
10
10
  safeJsonParse,
11
11
  setGenAiUsageProvenance
12
- } from "./chunk-WK4TJUEA.js";
12
+ } from "./chunk-CKASRHZI.js";
13
13
  import {
14
14
  setToolCallPreparations
15
15
  } from "./chunk-GLCZKT5V.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-46UV252V.js";
22
22
  import {
23
23
  createDebugLogger
24
- } from "./chunk-3RXUYQJI.js";
24
+ } from "./chunk-OIVKILPI.js";
25
25
  import {
26
26
  FinishReason,
27
27
  GenerateContentResponse
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-WIRAPZ62.js";
5
+ } from "./chunk-NLREQJFK.js";
6
6
  import {
7
7
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
8
8
  } from "./chunk-BKHCW2BI.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-3RXUYQJI.js";
5
+ } from "./chunk-OIVKILPI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-KKN2IE7Q.js";
5
+ } from "./chunk-CTJLZLB5.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
64
64
  }
65
65
  __name(runExitCleanup, "runExitCleanup");
66
66
  async function cleanupCheckpoints() {
67
- const { Storage } = await import("./deferred-core-runtime-KXN7HLN7.js");
67
+ const { Storage } = await import("./deferred-core-runtime-BWRCCFTE.js");
68
68
  const storage = new Storage(process.cwd());
69
69
  const tempDir = storage.getProjectTempDir();
70
70
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-3RXUYQJI.js";
6
+ } from "./chunk-OIVKILPI.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-UH7Z7Y45.js";
5
+ } from "./chunk-FOGU3LJX.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
9
- } from "./chunk-3RXUYQJI.js";
9
+ } from "./chunk-OIVKILPI.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,30 +2,30 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-C4GRKMUL.js";
5
+ } from "./chunk-OHJLEW5J.js";
6
6
  import {
7
7
  parseChannelConfig
8
- } from "./chunk-7GYP5COR.js";
8
+ } from "./chunk-ZXU5UHMI.js";
9
9
  import {
10
10
  getPlugin,
11
11
  registerPlugin
12
- } from "./chunk-DTAPI453.js";
12
+ } from "./chunk-IUFV6FYU.js";
13
13
  import {
14
14
  sanitizeLogText
15
15
  } from "./chunk-DIEFUBV6.js";
16
16
  import {
17
17
  loadSettings
18
- } from "./chunk-YUVTZ4UH.js";
18
+ } from "./chunk-PQBHU2IA.js";
19
19
  import {
20
20
  hashDaemonWorkspace
21
- } from "./chunk-MGSSJT27.js";
21
+ } from "./chunk-L4N6TIP7.js";
22
22
  import {
23
23
  Storage
24
- } from "./chunk-3RXUYQJI.js";
24
+ } from "./chunk-OIVKILPI.js";
25
25
  import {
26
26
  writeStderrLine,
27
27
  writeStdoutLine
28
- } from "./chunk-OWAK7LMW.js";
28
+ } from "./chunk-KGJGEEVR.js";
29
29
  import {
30
30
  init_esbuild_shims
31
31
  } from "./chunk-5O2XNYP6.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-3RXUYQJI.js";
6
+ } from "./chunk-OIVKILPI.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -2,23 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  getErrorMessage
5
- } from "./chunk-EHMN6SEG.js";
5
+ } from "./chunk-TDXGKHDN.js";
6
6
  import {
7
7
  extensionToOutputString,
8
8
  getExtensionManager
9
- } from "./chunk-C4GRKMUL.js";
9
+ } from "./chunk-OHJLEW5J.js";
10
10
  import {
11
11
  loadSettings
12
- } from "./chunk-YUVTZ4UH.js";
12
+ } from "./chunk-PQBHU2IA.js";
13
13
  import {
14
14
  initializeI18n,
15
15
  resolveLanguageSetting,
16
16
  t
17
- } from "./chunk-546CDN6D.js";
17
+ } from "./chunk-DBOFL3LQ.js";
18
18
  import {
19
19
  writeStderrLine,
20
20
  writeStdoutLine
21
- } from "./chunk-OWAK7LMW.js";
21
+ } from "./chunk-KGJGEEVR.js";
22
22
  import {
23
23
  init_esbuild_shims
24
24
  } from "./chunk-5O2XNYP6.js";
@@ -3,9 +3,10 @@
3
3
  import {
4
4
  QWEN_DIR,
5
5
  Storage,
6
+ realpathNearestExisting,
6
7
  resolvePath,
7
8
  sanitizeCwd
8
- } from "./chunk-3RXUYQJI.js";
9
+ } from "./chunk-OIVKILPI.js";
9
10
  import {
10
11
  init_esbuild_shims
11
12
  } from "./chunk-5O2XNYP6.js";
@@ -186,54 +187,6 @@ function isManagedMemoryPath(filePath, projectRoot, baseDir = projectRoot) {
186
187
  });
187
188
  }
188
189
  __name(isManagedMemoryPath, "isManagedMemoryPath");
189
- function resolveLeafSymlink(inputPath) {
190
- const maxHops = 40;
191
- let current = path.resolve(inputPath);
192
- for (let i = 0; i < maxHops; i++) {
193
- let stat;
194
- try {
195
- stat = fs.lstatSync(current);
196
- } catch {
197
- return current;
198
- }
199
- if (!stat.isSymbolicLink()) {
200
- return current;
201
- }
202
- const target = fs.readlinkSync(current);
203
- if (path.isAbsolute(target)) {
204
- current = target;
205
- } else {
206
- let parent;
207
- try {
208
- parent = fs.realpathSync(path.dirname(current));
209
- } catch {
210
- parent = path.dirname(current);
211
- }
212
- current = path.resolve(parent, target);
213
- }
214
- }
215
- return current;
216
- }
217
- __name(resolveLeafSymlink, "resolveLeafSymlink");
218
- function realpathNearestExisting(inputPath) {
219
- const resolved = resolveLeafSymlink(inputPath);
220
- const missingSegments = [];
221
- let current = resolved;
222
- while (!fs.existsSync(current)) {
223
- const parent = path.dirname(current);
224
- if (parent === current) {
225
- return resolved;
226
- }
227
- missingSegments.unshift(path.basename(current));
228
- current = parent;
229
- }
230
- try {
231
- return path.join(fs.realpathSync(current), ...missingSegments);
232
- } catch {
233
- return resolved;
234
- }
235
- }
236
- __name(realpathNearestExisting, "realpathNearestExisting");
237
190
  function isAnyAutoMemPath(absolutePath, projectRoot) {
238
191
  return isAutoMemPath(absolutePath, projectRoot) || isUserAutoMemPath(absolutePath);
239
192
  }
@@ -14,7 +14,7 @@ import {
14
14
  init_esbuild_shims();
15
15
  async function getCliVersion() {
16
16
  const pkgJson = await getPackageJson();
17
- return "0.21.6-preview.0";
17
+ return "0.21.7";
18
18
  }
19
19
  __name(getCliVersion, "getCliVersion");
20
20