@qwen-code/qwen-code 0.21.6 → 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 (288) 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/code-review.md +27 -0
  4. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  5. package/bundled/review/SKILL.md +48 -16
  6. package/chunks/{MaxSizedBox-2HFKP4LI.js → MaxSizedBox-ANWZBPTS.js} +38 -38
  7. package/chunks/{StandaloneSessionPicker-RBV72M5N.js → StandaloneSessionPicker-XKS3VU3A.js} +54 -53
  8. package/chunks/{acpAgent-WO6JFCVQ.js → acpAgent-KUAZ3GCZ.js} +80 -80
  9. package/chunks/{agent-AHGLYNZ4.js → agent-T6PTGX5R.js} +35 -35
  10. package/chunks/{agent-headless-NTXKKGRO.js → agent-headless-PR7YCB7S.js} +35 -35
  11. package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
  12. package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
  13. package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
  14. package/chunks/{bridge-RPAU64CA.js → bridge-NU6YEEHK.js} +39 -39
  15. package/chunks/{channel-management-service-IGEUOVRT.js → channel-management-service-FSQ7SHYI.js} +1 -1
  16. package/chunks/{channel-settings-store-ON64MF7G.js → channel-settings-store-35VQVUVV.js} +41 -41
  17. package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
  18. package/chunks/{chunk-T4JSA7KU.js → chunk-23RZCH76.js} +3 -3
  19. package/chunks/{chunk-PX5DNLSA.js → chunk-2U3WZGZG.js} +18 -10
  20. package/chunks/chunk-2VSTGY6M.js +107 -0
  21. package/chunks/{chunk-QZKYZCN3.js → chunk-33ACCIIY.js} +3 -3
  22. package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
  23. package/chunks/{chunk-ODPXHGLL.js → chunk-3NB7TSE2.js} +2 -2
  24. package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
  25. package/chunks/{chunk-C4CBJQKY.js → chunk-55LYDVPU.js} +1 -1
  26. package/chunks/{chunk-NKSF7HYF.js → chunk-5KH532V7.js} +1 -1
  27. package/chunks/{chunk-BOGOR4HB.js → chunk-6EOI4HOK.js} +7 -7
  28. package/chunks/{chunk-CA4UIDFU.js → chunk-6GONZVLS.js} +1 -1
  29. package/chunks/{chunk-3UOLYNTF.js → chunk-6HVUFDS2.js} +6 -6
  30. package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
  31. package/chunks/{chunk-XA4TMLFN.js → chunk-6UWFTUQL.js} +530 -388
  32. package/chunks/{chunk-W5DXUTXD.js → chunk-6XJMFJ4D.js} +8 -8
  33. package/chunks/{chunk-ACZRB7AD.js → chunk-6XU3PH66.js} +3 -3
  34. package/chunks/{chunk-NGJOAKJY.js → chunk-72LNFGUY.js} +3 -3
  35. package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
  36. package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
  37. package/chunks/{chunk-O7V7N4G7.js → chunk-AE77C5ZU.js} +198 -35
  38. package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
  39. package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
  40. package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
  41. package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
  42. package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
  43. package/chunks/{chunk-GK2H5GRC.js → chunk-CB2464BK.js} +5 -5
  44. package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
  45. package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
  46. package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
  47. package/chunks/{chunk-5MJGUQU5.js → chunk-CSZEXZBE.js} +3 -3
  48. package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
  49. package/chunks/{chunk-HY25ULVN.js → chunk-CXE7E23H.js} +131 -48
  50. package/chunks/{chunk-4WTAQEHV.js → chunk-CYR3HI5X.js} +3 -3
  51. package/chunks/{chunk-KHUA3NQV.js → chunk-DBOFL3LQ.js} +2 -2
  52. package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
  53. package/chunks/{chunk-SQC6K5HI.js → chunk-E33LOKRA.js} +1 -1
  54. package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
  55. package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
  56. package/chunks/{chunk-RHTTKJTP.js → chunk-EORNAQDT.js} +1 -1
  57. package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
  58. package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
  59. package/chunks/{chunk-OWSW7EYP.js → chunk-EUQTXRKZ.js} +6 -6
  60. package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
  61. package/chunks/{chunk-536SWZTA.js → chunk-FPM27XN4.js} +4 -4
  62. package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
  63. package/chunks/{chunk-YMBOEAF4.js → chunk-FZBZSYKU.js} +1 -1
  64. package/chunks/{chunk-YZQTA3ID.js → chunk-GDXET5XU.js} +31 -3396
  65. package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
  66. package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
  67. package/chunks/{chunk-2POQWYM6.js → chunk-GSS34377.js} +3 -3
  68. package/chunks/{chunk-CJ5WLD5Y.js → chunk-H2UQ2M5Z.js} +2 -2
  69. package/chunks/{chunk-SUKEUUAA.js → chunk-HQB2KUAN.js} +1 -1
  70. package/chunks/{chunk-JE44IPH6.js → chunk-HYRDKNUY.js} +2 -2
  71. package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
  72. package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
  73. package/chunks/{chunk-EMYZIABH.js → chunk-IUFV6FYU.js} +1 -1
  74. package/chunks/{chunk-4S4OEQ6U.js → chunk-J6SZID63.js} +2 -2
  75. package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
  76. package/chunks/{chunk-XM2O73NC.js → chunk-KKJJB5X6.js} +2455 -1314
  77. package/chunks/{chunk-SLSWFHDF.js → chunk-KR4ZSC7K.js} +4 -4
  78. package/chunks/{chunk-RFUHDCNF.js → chunk-KXSDEOFU.js} +1 -1
  79. package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
  80. package/chunks/{chunk-OP2OHZ7K.js → chunk-LA7YLSR6.js} +6 -6
  81. package/chunks/{chunk-EXCEQD22.js → chunk-LEMXGVEP.js} +4 -4
  82. package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
  83. package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
  84. package/chunks/{chunk-75QMRMO7.js → chunk-MAJS7AT4.js} +3 -3
  85. package/chunks/{chunk-T5U6IM4C.js → chunk-MVUQRLOH.js} +3 -3
  86. package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
  87. package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
  88. package/chunks/{chunk-UGTWD35F.js → chunk-NLREQJFK.js} +1 -1
  89. package/chunks/{chunk-N2GJU6KI.js → chunk-OFI7IGST.js} +12 -12
  90. package/chunks/{chunk-VGFPFM4U.js → chunk-OH2VKQXH.js} +42 -16
  91. package/chunks/{chunk-G5NNWEYE.js → chunk-OHJLEW5J.js} +4 -4
  92. package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
  93. package/chunks/{chunk-VNQCPBC2.js → chunk-OMKQH5C5.js} +3 -3
  94. package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
  95. package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
  96. package/chunks/{chunk-4JH77A2U.js → chunk-P2AJ7FTI.js} +1 -1
  97. package/chunks/{chunk-WNU7TZTO.js → chunk-P3LEG54R.js} +3 -3
  98. package/chunks/{chunk-VSALQLT7.js → chunk-PJOBIWUG.js} +1 -1
  99. package/chunks/{chunk-PPUOYL77.js → chunk-PQBHU2IA.js} +49 -18
  100. package/chunks/{chunk-WO2B5E5B.js → chunk-Q3JQ7OSU.js} +1 -1
  101. package/chunks/{chunk-IMOQO6YL.js → chunk-QETYKPMG.js} +1 -1
  102. package/chunks/{chunk-DVBEGGLG.js → chunk-RERATVSK.js} +10 -9
  103. package/chunks/chunk-RGSBTHSU.js +3381 -0
  104. package/chunks/{chunk-DIT4V3XH.js → chunk-RMH5OWLD.js} +1 -1
  105. package/chunks/{chunk-TOGZTG4X.js → chunk-RNVQB725.js} +2 -2
  106. package/chunks/{chunk-GESMMPAK.js → chunk-RUL4S3K3.js} +79 -59
  107. package/chunks/{chunk-3LZKY4V4.js → chunk-RZHU3ILK.js} +5 -5
  108. package/chunks/{chunk-SKNE3KQC.js → chunk-SCI7K3GM.js} +4 -4
  109. package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
  110. package/chunks/{chunk-Q5RM32DR.js → chunk-SHZYHGQH.js} +1 -1
  111. package/chunks/chunk-SOORFWKY.js +155 -0
  112. package/chunks/{chunk-K2B3X3E7.js → chunk-SPMY6CX6.js} +4 -4
  113. package/chunks/{chunk-FZFP7RZI.js → chunk-TDXGKHDN.js} +3 -3
  114. package/chunks/{chunk-R5RBXLNC.js → chunk-TLV2IMHR.js} +5 -5
  115. package/chunks/{chunk-U4AF3QLU.js → chunk-TRLYP7OF.js} +8 -8
  116. package/chunks/{chunk-ULPQQSDN.js → chunk-TYKC75AX.js} +3 -3
  117. package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
  118. package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
  119. package/chunks/{chunk-RK2EE3T7.js → chunk-VOARQPTA.js} +2 -2
  120. package/chunks/{chunk-TGGEZINK.js → chunk-W4B7UBUS.js} +7 -7
  121. package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
  122. package/chunks/{chunk-TSERKWCX.js → chunk-XCWO3SMQ.js} +3 -3
  123. package/chunks/{chunk-OXX3FG2N.js → chunk-Y4EWSQF7.js} +3 -3
  124. package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
  125. package/chunks/{chunk-A4VTILZT.js → chunk-Y7E5LNLO.js} +115 -85
  126. package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
  127. package/chunks/{chunk-SQOMTWQT.js → chunk-YJQCUTT2.js} +4 -4
  128. package/chunks/{chunk-GWRHVJY2.js → chunk-ZJ3VGYHK.js} +20 -20
  129. package/chunks/{chunk-LAAFLUQV.js → chunk-ZXU5UHMI.js} +1 -1
  130. package/chunks/{computer-use-5HXJ2P4X.js → computer-use-KEAPATUY.js} +35 -35
  131. package/chunks/{config-utils-VXD4SPVR.js → config-utils-K7SCOWHD.js} +2 -2
  132. package/chunks/{contextCommand-7BEHRX2H.js → contextCommand-ZJA6A5K5.js} +37 -37
  133. package/chunks/{core-runtime-U4VJ5TIV.js → core-runtime-QMJPWHCI.js} +35 -35
  134. package/chunks/{create-sub-session-QZNQY332.js → create-sub-session-DJE6XICH.js} +35 -35
  135. package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
  136. package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
  137. package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
  138. package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
  139. package/chunks/{daemon-YI5RY62O.js → daemon-SCTQMM7Z.js} +50 -2
  140. package/chunks/{daemon-status-provider-UJUGTDTL.js → daemon-status-provider-FSWDPE2G.js} +43 -43
  141. package/chunks/{daemon-trust-policy-ZHDD5VYQ.js → daemon-trust-policy-P5L5VFAY.js} +40 -40
  142. package/chunks/{daemon-trust-policy-monitor-5SHYBDGA.js → daemon-trust-policy-monitor-73JYN6ET.js} +40 -40
  143. package/chunks/{deferred-core-runtime-QWAEBTR5.js → deferred-core-runtime-BWRCCFTE.js} +35 -35
  144. package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
  145. package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
  146. package/chunks/{earlyInputCapture-5BMSGKOI.js → earlyInputCapture-L5ST23A6.js} +36 -36
  147. package/chunks/{edit-IVQQVYYK.js → edit-LHHRFNFK.js} +35 -35
  148. package/chunks/{enter-worktree-P3DF2N6O.js → enter-worktree-6NXCRZPF.js} +35 -35
  149. package/chunks/{enterPlanMode-KKTDVLAD.js → enterPlanMode-ZVQT4U7D.js} +35 -35
  150. package/chunks/{environment-W5TRDM3G.js → environment-GJ2HWJOS.js} +37 -37
  151. package/chunks/{errors-GJJB36IG.js → errors-6RLH3XXC.js} +37 -37
  152. package/chunks/{exit-worktree-LV5RLOCU.js → exit-worktree-I2YLUHHY.js} +35 -35
  153. package/chunks/{exitPlanMode-TUGOB2LL.js → exitPlanMode-7CCWKO7I.js} +35 -35
  154. package/chunks/{fast-path-2FU23PAQ.js → fast-path-DVFD4HQD.js} +2 -2
  155. package/chunks/{gemini-KDULDQPP.js → gemini-7FWGOYD4.js} +72 -72
  156. package/chunks/{geminiContentGenerator-LOCFHNVA.js → geminiContentGenerator-V2WVLIXU.js} +6 -6
  157. package/chunks/{glob-Z4NQFKWS.js → glob-3N6GGI75.js} +35 -35
  158. package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
  159. package/chunks/{grep-Z67Z7EN6.js → grep-V43ILZVX.js} +35 -35
  160. package/chunks/{handleAutoUpdate-DFUZE6I6.js → handleAutoUpdate-A5WFVWIA.js} +39 -39
  161. package/chunks/{i18n-R4FMZ7N2.js → i18n-PLVQ4FBZ.js} +36 -36
  162. package/chunks/{image-gen-4CQJPQP5.js → image-gen-7C6IK6DC.js} +9 -9
  163. package/chunks/{initializer-DK672ZVE.js → initializer-CVAIKZYL.js} +41 -41
  164. package/chunks/{installationInfo-PO4Z3ES7.js → installationInfo-J6QDHNTK.js} +36 -36
  165. package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
  166. package/chunks/{list-QXQF6C53.js → list-ZZ4OUUWV.js} +43 -43
  167. package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
  168. package/chunks/{loadedSettingsAdapter-4D7GUGW6.js → loadedSettingsAdapter-QRYRJSWL.js} +40 -40
  169. package/chunks/{loggingContentGenerator-2P3MNACM.js → loggingContentGenerator-OJCO75HM.js} +17 -17
  170. package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
  171. package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
  172. package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
  173. package/chunks/{managed-npm-update-LWVJQTWO.js → managed-npm-update-PCOSCP2N.js} +36 -36
  174. package/chunks/{mcp-GHETAR6V.js → mcp-M3WKKWKY.js} +40 -40
  175. package/chunks/{monitor-4T7W4M6Q.js → monitor-GN24FH6C.js} +35 -35
  176. package/chunks/{nonInteractiveCli-P4UKCJFM.js → nonInteractiveCli-KPTU3VSQ.js} +72 -72
  177. package/chunks/{notebook-edit-OC2V7U5D.js → notebook-edit-4YM65BBO.js} +35 -35
  178. package/chunks/{openaiContentGenerator-RAJUFWQY.js → openaiContentGenerator-EDQT6GTV.js} +19 -19
  179. package/chunks/{pidfile-HVPYVRLS.js → pidfile-JOIIRN2C.js} +36 -36
  180. package/chunks/{processUtils-VIQ4JHVX.js → processUtils-5SV4MX3Q.js} +2 -2
  181. package/chunks/{qwenContentGenerator-2QLCUFNZ.js → qwenContentGenerator-ODRJSUGR.js} +40 -40
  182. package/chunks/{qwenOAuth2-J2X3EN43.js → qwenOAuth2-NESCMZ47.js} +8 -8
  183. package/chunks/{read-file-ZNAN2B26.js → read-file-HPSODLPK.js} +10 -10
  184. package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
  185. package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
  186. package/chunks/{resumeHistoryUtils-RCY7AL5Y.js → resumeHistoryUtils-TXCOFFMQ.js} +41 -40
  187. package/chunks/{ripGrep-C3KMLZM5.js → ripGrep-ZKQGTQAO.js} +35 -35
  188. package/chunks/{run-qwen-serve-3JN75CIQ.js → run-qwen-serve-ZPKPKECF.js} +65 -43
  189. package/chunks/{runtime-VUA4WQYD.js → runtime-2FLNNM36.js} +43 -43
  190. package/chunks/{scheduler-Z4IBXCOY.js → scheduler-365PJHNR.js} +35 -35
  191. package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
  192. package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
  193. package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
  194. package/chunks/{serve-67T3P7XI.js → serve-QD2RNLKJ.js} +41 -41
  195. package/chunks/{server-46ZO2CLV.js → server-XLJVLTYM.js} +621 -332
  196. package/chunks/{session-B4IFAFC4.js → session-3VTUHH4Q.js} +73 -73
  197. package/chunks/{settings-AI2BTBOZ.js → settings-KULVPCQC.js} +39 -39
  198. package/chunks/{shell-BKII3B6E.js → shell-3SWW22MH.js} +35 -35
  199. package/chunks/{skill-6CFOWVGA.js → skill-KDHWYS7W.js} +14 -14
  200. package/chunks/{skill-settings-6BFQWMW4.js → skill-settings-NMY4JEJC.js} +39 -39
  201. package/chunks/{spawnChannel-FJXW35U7.js → spawnChannel-ZKS4Q5OU.js} +37 -37
  202. package/chunks/{standalone-update-WVINHRNS.js → standalone-update-7CXPGAQ4.js} +37 -37
  203. package/chunks/{startInteractiveUI-YE57CJ57.js → startInteractiveUI-2QQLEKM6.js} +399 -159
  204. package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
  205. package/chunks/{task-create-Q727MXHJ.js → task-create-CQP5UEA3.js} +9 -9
  206. package/chunks/{task-list-G6KPQ5JT.js → task-list-XLEZOJXP.js} +5 -5
  207. package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
  208. package/chunks/{task-update-YB7PXO4R.js → task-update-JA75U2SN.js} +9 -9
  209. package/chunks/{team-create-GNC7NFY6.js → team-create-2WTNGAOX.js} +35 -35
  210. package/chunks/{team-delete-GDO7H2T4.js → team-delete-MHY3UZGY.js} +5 -5
  211. package/chunks/{team-plan-approval-ECALJLIO.js → team-plan-approval-LZTYLEG4.js} +35 -35
  212. package/chunks/{terminal-image-renderer-II74TFVW.js → terminal-image-renderer-R5HHAFJN.js} +41 -36
  213. package/chunks/{theme-manager-2MGEDD22.js → theme-manager-PAUCSJFF.js} +36 -36
  214. package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
  215. package/chunks/{tool-search-S6LRRACA.js → tool-search-2BFCGLI6.js} +13 -13
  216. package/chunks/{total-session-admission-7WVAWQPU.js → total-session-admission-MK4SINFK.js} +39 -39
  217. package/chunks/{trustedFolders-NFS4KHO4.js → trustedFolders-TJ5S26N7.js} +36 -36
  218. package/chunks/{update-relaunch-Q5HLZ6UW.js → update-relaunch-N7AYLARF.js} +5 -5
  219. package/chunks/{updateCheck-UOVZSTP7.js → updateCheck-QRZ3DVT5.js} +38 -38
  220. package/chunks/{useAutoAcceptIndicator-PC6MOJCO.js → useAutoAcceptIndicator-DBJ7Y5AF.js} +42 -42
  221. package/chunks/{validateNonInterActiveAuth-YMQP3ZM7.js → validateNonInterActiveAuth-6ZQWUDS3.js} +69 -69
  222. package/chunks/{version-T4AQFZJH.js → version-AJQGQWXC.js} +1 -1
  223. package/chunks/{web-fetch-JQCJHEEX.js → web-fetch-QWJYRXFL.js} +13 -13
  224. package/chunks/{web-search-QGZ2KY4G.js → web-search-2AOXJGHU.js} +9 -9
  225. package/chunks/web-shell-static-O73YPVVC.js +33 -0
  226. package/chunks/{workflow-YIT27YWZ.js → workflow-ERH3SJG2.js} +36 -36
  227. package/chunks/{workspace-providers-status-FIDZQ2PL.js → workspace-providers-status-HZ474RA4.js} +43 -43
  228. package/chunks/{workspace-registration-store-RCSPE4DU.js → workspace-registration-store-6EUP4JXG.js} +1 -1
  229. package/chunks/{workspace-registry-5PEUCY6E.js → workspace-registry-R4APRRNC.js} +39 -39
  230. package/chunks/{workspace-service-LANDVPL7.js → workspace-service-HFIFDMU7.js} +45 -45
  231. package/chunks/{workspace-skills-status-2IQVJNIN.js → workspace-skills-status-HAHEIHGK.js} +41 -41
  232. package/chunks/{workspace-trust-reconciler-CZPZZCZC.js → workspace-trust-reconciler-65GTAGDK.js} +45 -45
  233. package/chunks/{write-file-G5VNGCOG.js → write-file-B34CDELV.js} +35 -35
  234. package/chunks/{zoom-image-6RBLD7X6.js → zoom-image-HPRBZHSS.js} +10 -10
  235. package/cli.js +12 -12
  236. package/package.json +3 -3
  237. package/web-shell/assets/{arc-B-Vtkp1W.js → arc-Ip-FFDJ0.js} +1 -1
  238. package/web-shell/assets/{architectureDiagram-3BPJPVTR-qmTXIj64.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
  239. package/web-shell/assets/{blockDiagram-GPEHLZMM-ZlnXEtdP.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
  240. package/web-shell/assets/{c4Diagram-AAUBKEIU-Wyoirf6Z.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
  241. package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
  242. package/web-shell/assets/{chunk-2J33WTMH-WQwbq9d8.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
  243. package/web-shell/assets/{chunk-4BX2VUAB-DQKnAXC4.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
  244. package/web-shell/assets/{chunk-55IACEB6-DIdgXNcO.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
  245. package/web-shell/assets/{chunk-727SXJPM-CUwGOLEd.js → chunk-727SXJPM-B27MPznD.js} +1 -1
  246. package/web-shell/assets/{chunk-AQP2D5EJ-CCBGZFZ4.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
  247. package/web-shell/assets/{chunk-FMBD7UC4-DMGXProk.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
  248. package/web-shell/assets/{chunk-ND2GUHAM-yejcFqsh.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
  249. package/web-shell/assets/{chunk-QZHKN3VN-DxCyqTf7.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
  250. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
  251. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
  252. package/web-shell/assets/{cose-bilkent-S5V4N54A-DOrF3cg_.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
  253. package/web-shell/assets/{dagre-BM42HDAG-Be6CdYQ_.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
  254. package/web-shell/assets/{diagram-2AECGRRQ-B_Rjsft2.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
  255. package/web-shell/assets/{diagram-5GNKFQAL-BvQbKSm1.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
  256. package/web-shell/assets/{diagram-KO2AKTUF-BsdmMdpS.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
  257. package/web-shell/assets/{diagram-LMA3HP47-CrQlBaNr.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
  258. package/web-shell/assets/{diagram-OG6HWLK6-aB1MD_DL.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
  259. package/web-shell/assets/{erDiagram-TEJ5UH35-F-eUUn9n.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
  260. package/web-shell/assets/{flowDiagram-I6XJVG4X-DY_d8lUK.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
  261. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dqu7KBPg.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
  262. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-2IkU_VEj.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
  263. package/web-shell/assets/{index-BuSbqggh.js → index-BXqw-nGq.js} +1 -1
  264. package/web-shell/assets/{index-DrfC2e9s.js → index-hcgjV7vS.js} +333 -333
  265. package/web-shell/assets/{infoDiagram-5YYISTIA-C4orwzPw.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
  266. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-fXUEfef_.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
  267. package/web-shell/assets/{journeyDiagram-JHISSGLW-Bs0I1_J5.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
  268. package/web-shell/assets/{kanban-definition-UN3LZRKU-BPRj1dw_.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
  269. package/web-shell/assets/{linear-DFS6ZDpW.js → linear-BMIepYX3.js} +1 -1
  270. package/web-shell/assets/{mermaid.core-CZxjWMaO.js → mermaid.core-zA8pJ9ag.js} +5 -5
  271. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Dsr3PmNs.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
  272. package/web-shell/assets/{pieDiagram-4H26LBE5-D5Ngpz5Y.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
  273. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-WJK9I25z.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
  274. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CmrYcwOH.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
  275. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-7SjCc4Mv.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
  276. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Dl9E0IRM.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
  277. package/web-shell/assets/{stateDiagram-AJRCARHV-CRRio7yV.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
  278. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
  279. package/web-shell/assets/{timeline-definition-PNZ67QCA-DVyXjjfq.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
  280. package/web-shell/assets/{vennDiagram-CIIHVFJN-Nb2Lckzq.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
  281. package/web-shell/assets/{wardley-L42UT6IY-DuL_otIP.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
  282. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
  283. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BNjAm7KD.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
  284. package/web-shell/index.html +1 -1
  285. package/web-shell/assets/channel-DXaHnfjS.js +0 -1
  286. package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +0 -1
  287. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +0 -1
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +0 -1
@@ -20,7 +20,9 @@ function resolveRequestTimeout(timeout) {
20
20
  __name(resolveRequestTimeout, "resolveRequestTimeout");
21
21
  var DEFAULT_STREAM_IDLE_TIMEOUT_MS = 24e4;
22
22
  var QWEN_STREAM_IDLE_TIMEOUT_MS_ENV = "QWEN_STREAM_IDLE_TIMEOUT_MS";
23
- var MAX_STREAM_IDLE_TIMEOUT_MS = 2147483647;
23
+ var MAX_STREAM_GUARD_TIMEOUT_MS = 2147483647;
24
+ var DEFAULT_STREAM_MAX_LIFETIME_MS = 9e5;
25
+ var QWEN_STREAM_MAX_LIFETIME_MS_ENV = "QWEN_STREAM_MAX_LIFETIME_MS";
24
26
  var DEFAULT_MAX_RETRIES = 3;
25
27
  var DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
26
28
  var DEFAULT_DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1";
@@ -30,7 +32,9 @@ export {
30
32
  resolveRequestTimeout,
31
33
  DEFAULT_STREAM_IDLE_TIMEOUT_MS,
32
34
  QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
33
- MAX_STREAM_IDLE_TIMEOUT_MS,
35
+ MAX_STREAM_GUARD_TIMEOUT_MS,
36
+ DEFAULT_STREAM_MAX_LIFETIME_MS,
37
+ QWEN_STREAM_MAX_LIFETIME_MS_ENV,
34
38
  DEFAULT_MAX_RETRIES,
35
39
  DEFAULT_OPENAI_BASE_URL,
36
40
  DEFAULT_DASHSCOPE_BASE_URL,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-46UV252V.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-3RXUYQJI.js";
11
+ } from "./chunk-OIVKILPI.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -11,12 +11,12 @@ import {
11
11
  isQuotaExhaustedError,
12
12
  isQwenQuotaExceededError,
13
13
  isRateLimitError
14
- } from "./chunk-6O5DVH27.js";
14
+ } from "./chunk-M6HMMKVG.js";
15
15
  import {
16
16
  createDebugLogger,
17
17
  getErrorStatus,
18
18
  isAbortError
19
- } from "./chunk-3RXUYQJI.js";
19
+ } from "./chunk-OIVKILPI.js";
20
20
  import {
21
21
  init_esbuild_shims
22
22
  } from "./chunk-5O2XNYP6.js";
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-S6LOFUVP.js";
7
7
  import {
8
8
  isInForkExecution
9
- } from "./chunk-WVAESIM6.js";
9
+ } from "./chunk-LZC3B5N2.js";
10
10
  import {
11
11
  ToolNames
12
- } from "./chunk-D7D7RXIJ.js";
12
+ } from "./chunk-IC4Z6LX6.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-HGCQ5SE7.js";
10
10
  import {
11
11
  DEFAULT_RING_SIZE
12
- } from "./chunk-GLWP3FDB.js";
12
+ } from "./chunk-MZSJ43WV.js";
13
13
  import {
14
14
  DEFAULT_COMPACTED_REPLAY_MAX_BYTES,
15
15
  DEFAULT_MAX_JOURNAL_BYTES,
@@ -23,10 +23,10 @@ import {
23
23
  } from "./chunk-BKHCW2BI.js";
24
24
  import {
25
25
  loadSettings
26
- } from "./chunk-PPUOYL77.js";
26
+ } from "./chunk-PQBHU2IA.js";
27
27
  import {
28
28
  MCP_BUDGET_WARN_FRACTION
29
- } from "./chunk-A4VTILZT.js";
29
+ } from "./chunk-Y7E5LNLO.js";
30
30
  import {
31
31
  parsePositiveIntegerEnv
32
32
  } from "./chunk-6PVPNMXU.js";
@@ -36,7 +36,7 @@ import {
36
36
  } from "./chunk-NAVJD2PQ.js";
37
37
  import {
38
38
  MEMORY_PROJECT_SCOPES
39
- } from "./chunk-E4WHKETF.js";
39
+ } from "./chunk-FVKHVJZQ.js";
40
40
  import {
41
41
  writeStderrLine
42
42
  } from "./chunk-KGJGEEVR.js";
@@ -346,7 +346,7 @@ var serveCommand = {
346
346
  }
347
347
  const externalToolGuardToken = process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV] ?? "";
348
348
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
349
- const { runQwenServe } = await import("./run-qwen-serve-3JN75CIQ.js");
349
+ const { runQwenServe } = await import("./run-qwen-serve-ZPKPKECF.js");
350
350
  try {
351
351
  const handle = await runQwenServe({
352
352
  port: argv.port,
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  isPrivateHost
5
- } from "./chunk-QYPT3QUD.js";
5
+ } from "./chunk-3ULCB3NE.js";
6
6
  import {
7
7
  loadUndici
8
- } from "./chunk-BFHXDAR7.js";
8
+ } from "./chunk-KKBPOU75.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-3RXUYQJI.js";
11
+ } from "./chunk-OIVKILPI.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.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";
@@ -19,15 +19,15 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-MOHAWIAW.js";
22
+ } from "./chunk-GNPNYXJB.js";
23
23
  import {
24
24
  ToolNames
25
- } from "./chunk-D7D7RXIJ.js";
25
+ } from "./chunk-IC4Z6LX6.js";
26
26
  import {
27
27
  Storage,
28
28
  createDebugLogger,
29
29
  getProjectHash
30
- } from "./chunk-3RXUYQJI.js";
30
+ } from "./chunk-OIVKILPI.js";
31
31
  import {
32
32
  init_esbuild_shims
33
33
  } from "./chunk-5O2XNYP6.js";
@@ -3,13 +3,13 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-A4VTILZT.js";
6
+ } from "./chunk-Y7E5LNLO.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-H6XPXXMH.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-DIT4V3XH.js";
12
+ } from "./chunk-RMH5OWLD.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  AuthType,
19
19
  MODEL_GENERATION_CONFIG_FIELDS
20
- } from "./chunk-BOGOR4HB.js";
20
+ } from "./chunk-6EOI4HOK.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-RKUWKYED.js";
7
7
  import {
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";
@@ -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-PX5DNLSA.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-TSERKWCX.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,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveBundleDir
5
- } from "./chunk-A4VTILZT.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
11
  } from "./chunk-KGJGEEVR.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-UGTWD35F.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-QWAEBTR5.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,26 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-G5NNWEYE.js";
5
+ } from "./chunk-OHJLEW5J.js";
6
6
  import {
7
7
  parseChannelConfig
8
- } from "./chunk-LAAFLUQV.js";
8
+ } from "./chunk-ZXU5UHMI.js";
9
9
  import {
10
10
  getPlugin,
11
11
  registerPlugin
12
- } from "./chunk-EMYZIABH.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-PPUOYL77.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
@@ -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";