@qwen-code/qwen-code 0.19.6 → 0.19.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 (267) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +5 -1
  2. package/bundled/qc-helper/docs/configuration/settings.md +33 -1
  3. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +37 -31
  5. package/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
  6. package/bundled/qc-helper/docs/features/code-review.md +16 -6
  7. package/bundled/qc-helper/docs/features/commands.md +1 -1
  8. package/bundled/qc-helper/docs/features/hooks.md +6 -0
  9. package/bundled/qc-helper/docs/features/skills.md +5 -3
  10. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  11. package/bundled/review/DESIGN.md +50 -18
  12. package/bundled/review/SKILL.md +102 -12
  13. package/chunks/{MaxSizedBox-SK7CUWZQ.js → MaxSizedBox-XY5LIO5O.js} +31 -29
  14. package/chunks/{StandaloneSessionPicker-G44HGSAP.js → StandaloneSessionPicker-APISIRJZ.js} +44 -41
  15. package/chunks/{acpAgent-PKCTYWJV.js → acpAgent-MMOSC2YA.js} +769 -366
  16. package/chunks/{agent-IYMHUXWB.js → agent-TKIBLLQT.js} +24 -24
  17. package/chunks/{agent-headless-L2DAW6I5.js → agent-headless-VLX4C7KX.js} +24 -24
  18. package/chunks/{anthropicContentGenerator-H5ZOEENQ.js → anthropicContentGenerator-AKYPSZIV.js} +7 -7
  19. package/chunks/{artifact-tool-SLYPWG3C.js → artifact-tool-D233YJFH.js} +27 -8
  20. package/chunks/{askUserQuestion-OKPTECON.js → askUserQuestion-MKL5ZTMC.js} +2 -2
  21. package/chunks/{bridge-DF3IJQ5V.js → bridge-BCU73DZO.js} +34 -32
  22. package/chunks/{channel-worker-supervisor-JUYQ5Z4R.js → channel-worker-supervisor-CRCVYQIE.js} +1 -1
  23. package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
  24. package/chunks/{chunk-OAYOHSGP.js → chunk-24XYI5EI.js} +4 -4
  25. package/chunks/{chunk-6BEOH4KK.js → chunk-2NPS2UDH.js} +767 -122
  26. package/chunks/chunk-332PWN27.js +19 -0
  27. package/chunks/{chunk-CLQPBI4H.js → chunk-3B26UVCX.js} +132 -26
  28. package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
  29. package/chunks/{chunk-SL2P3JUA.js → chunk-43W4YSO6.js} +1 -12
  30. package/chunks/{chunk-JA5KWZTJ.js → chunk-44NROQYV.js} +5 -3
  31. package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
  32. package/chunks/chunk-4O344UEE.js +167 -0
  33. package/chunks/{chunk-ZO5EA3XJ.js → chunk-4UCTWSTP.js} +1 -1
  34. package/chunks/{chunk-SOT7OMGL.js → chunk-4ZJIPVPB.js} +2 -2
  35. package/chunks/{chunk-FPHA7WIZ.js → chunk-65CFHNSE.js} +3 -3
  36. package/chunks/{chunk-FDY3XOTM.js → chunk-6BN7NZ5Z.js} +4 -4
  37. package/chunks/{chunk-DBF3HTLT.js → chunk-7JGISHHZ.js} +4 -4
  38. package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
  39. package/chunks/chunk-A2X3KLC3.js +3807 -0
  40. package/chunks/{chunk-HCFSKO6K.js → chunk-ADZG46HR.js} +1 -1
  41. package/chunks/{chunk-MX7CTJHR.js → chunk-AFOLR6YL.js} +9 -9
  42. package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
  43. package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
  44. package/chunks/{chunk-QOKV6AO4.js → chunk-AIY5UTFI.js} +184 -147
  45. package/chunks/{chunk-57NRQM3P.js → chunk-AJBEAUIS.js} +2 -2
  46. package/chunks/chunk-ALZ75L2X.js +949 -0
  47. package/chunks/{chunk-T22H4V4R.js → chunk-B34OV7K2.js} +1 -1
  48. package/chunks/{chunk-GQBRGBLS.js → chunk-B4U2M63D.js} +9 -9
  49. package/chunks/{chunk-UTL7KABL.js → chunk-BWVQN2HV.js} +7 -7
  50. package/chunks/{chunk-YPCPZSZB.js → chunk-CCGOFQV3.js} +56 -4
  51. package/chunks/{chunk-BOAWGUY6.js → chunk-CISB3IQF.js} +121 -49
  52. package/chunks/{chunk-SRNPMG7J.js → chunk-CNSF3WO5.js} +16 -10
  53. package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
  54. package/chunks/{chunk-YSU33ACT.js → chunk-DGHJTO2K.js} +5 -13
  55. package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
  56. package/chunks/{chunk-SEZC2725.js → chunk-ER3BKOLB.js} +13 -0
  57. package/chunks/{chunk-3VJ7MT3N.js → chunk-EXPMGZZV.js} +14 -3
  58. package/chunks/{chunk-RZORUN6X.js → chunk-FEJ2FZ3U.js} +1 -1
  59. package/chunks/{chunk-OIFSBXSP.js → chunk-FRFFNYUY.js} +3 -3
  60. package/chunks/{chunk-MHQKYQDS.js → chunk-FTFXDZYI.js} +158 -3
  61. package/chunks/{chunk-DMSNJDWG.js → chunk-FV7425LN.js} +38 -3
  62. package/chunks/{chunk-ALX6BUYW.js → chunk-G7ZG7CA6.js} +186 -27
  63. package/chunks/chunk-GD236YPV.js +28 -0
  64. package/chunks/{chunk-XH7H6YG4.js → chunk-GL5TV7B5.js} +4 -107
  65. package/chunks/{chunk-JN2VJ33O.js → chunk-GMOWQOQQ.js} +966 -121
  66. package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
  67. package/chunks/{chunk-MBWLP5OT.js → chunk-HJ3GX3Y3.js} +162 -40
  68. package/chunks/{chunk-KYTQOCDE.js → chunk-HW4N45EE.js} +17 -46
  69. package/chunks/{chunk-DXXNMPJH.js → chunk-I4A4K72C.js} +460 -93
  70. package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
  71. package/chunks/chunk-II73RK2S.js +158 -0
  72. package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
  73. package/chunks/{chunk-C2QKQZEQ.js → chunk-IUE7YWC3.js} +3 -3
  74. package/chunks/{chunk-3UC7ZC43.js → chunk-JD33UY7E.js} +7 -7
  75. package/chunks/{chunk-7Z6UEJA4.js → chunk-JF7DFPQ5.js} +5 -2
  76. package/chunks/{chunk-IUSKVKH5.js → chunk-LEIJKM7Q.js} +1 -1
  77. package/chunks/chunk-LGFAYIKX.js +115 -0
  78. package/chunks/{chunk-N2IJLN2L.js → chunk-ME3YSROJ.js} +13 -5
  79. package/chunks/{chunk-V6NH3CUC.js → chunk-MIG5SQNL.js} +3 -3
  80. package/chunks/{chunk-MJKEQSZI.js → chunk-MJI36HER.js} +1 -1
  81. package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
  82. package/chunks/{chunk-B236XPGF.js → chunk-NQKLOAVJ.js} +29 -2
  83. package/chunks/{chunk-3X76L4UF.js → chunk-NZEGNV4V.js} +5 -5
  84. package/chunks/{chunk-O2RJARYU.js → chunk-OWVIH4HY.js} +1409 -4088
  85. package/chunks/{chunk-YTWX5TT2.js → chunk-P7I3D7FM.js} +1 -1
  86. package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
  87. package/chunks/chunk-PRDFOIZF.js +2477 -0
  88. package/chunks/{chunk-UNXGEDX2.js → chunk-PUQLHSQ2.js} +133 -25
  89. package/chunks/{chunk-5WQF27GW.js → chunk-Q6OEPOOC.js} +1 -1
  90. package/chunks/{chunk-6QVRLKTZ.js → chunk-QAKFYMJI.js} +7 -7
  91. package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
  92. package/chunks/{chunk-2INJBYLJ.js → chunk-QZF5U5KA.js} +6 -6
  93. package/chunks/{chunk-N4YJQTRL.js → chunk-RFIL6REB.js} +71 -2
  94. package/chunks/{chunk-FZ5NVRVK.js → chunk-RYFZCUJO.js} +3 -3
  95. package/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
  96. package/chunks/chunk-SD4N3QJ2.js +262 -0
  97. package/chunks/{chunk-CEYA7K7C.js → chunk-STAZRKOT.js} +62 -12
  98. package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
  99. package/chunks/{chunk-ZI4MGBB5.js → chunk-TBAZMRW3.js} +1 -1
  100. package/chunks/{chunk-J6ABRKAB.js → chunk-TDGF35EN.js} +2 -2
  101. package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
  102. package/chunks/{chunk-LXFCHX4X.js → chunk-U4FRHCLA.js} +312 -25
  103. package/chunks/chunk-UIDXQNMV.js +13 -0
  104. package/chunks/{chunk-LM3YCCZJ.js → chunk-VEB3NYSO.js} +1 -1
  105. package/chunks/chunk-VQWAZSXN.js +8223 -0
  106. package/chunks/{chunk-5ES5YPED.js → chunk-VZ7HY3YU.js} +1 -1
  107. package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
  108. package/chunks/{chunk-NVFJSIAX.js → chunk-WMPVYQ4P.js} +1 -1
  109. package/chunks/{chunk-V5VTULL5.js → chunk-X265R5C6.js} +3 -3
  110. package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
  111. package/chunks/{chunk-MJKMIQMK.js → chunk-X3YGAX7V.js} +1 -1
  112. package/chunks/{chunk-OBVBTAX5.js → chunk-XISQIIT7.js} +2 -2
  113. package/chunks/{chunk-NUK2PFSU.js → chunk-XPJH4PKR.js} +1 -1
  114. package/chunks/{chunk-A34EPIUV.js → chunk-XSAFNANZ.js} +18 -15
  115. package/chunks/{chunk-WXUDZHOJ.js → chunk-YDSYD7UI.js} +10 -2
  116. package/chunks/{chunk-AGZF43UV.js → chunk-YEGT55NW.js} +7153 -4406
  117. package/chunks/{computer-use-5S3NVXRA.js → computer-use-X4KUU3NM.js} +24 -24
  118. package/chunks/{contextCommand-DPBALZFK.js → contextCommand-LAYJZF7H.js} +28 -27
  119. package/chunks/{cron-create-7JYUDTUY.js → cron-create-JSXEIPVS.js} +4 -4
  120. package/chunks/{cron-delete-YPULQQAK.js → cron-delete-OIFVEPGU.js} +4 -4
  121. package/chunks/{cron-list-HJIW5MHP.js → cron-list-D4ZX4IOE.js} +11 -7
  122. package/chunks/{daemon-7XYW4BC3.js → daemon-F3I2RXP6.js} +208 -63
  123. package/chunks/daemon-status-provider-XSAFKVDS.js +74 -0
  124. package/chunks/dist-573HNSVO.js +3217 -0
  125. package/chunks/{dist-ABQ7VWRR.js → dist-FQ5WRJPL.js} +2 -2
  126. package/chunks/{dist-JPSVN367.js → dist-IMFFBMAT.js} +6 -3792
  127. package/chunks/{dist-BV56HW3W.js → dist-OT7G2WNM.js} +250 -1
  128. package/chunks/{dist-AW5ZYMUI.js → dist-PKFTNUHO.js} +10 -11
  129. package/chunks/{dist-AAO65DPC.js → dist-YTRKAVUB.js} +1 -1
  130. package/chunks/{earlyInputCapture-GGPV4IFT.js → earlyInputCapture-AERYYGXE.js} +25 -25
  131. package/chunks/{edit-HJ7ISN4C.js → edit-WZTZDGCI.js} +25 -25
  132. package/chunks/{en-XR3S5VWY.js → en-GA2RMXY5.js} +6 -1
  133. package/chunks/{enter-worktree-2BQT675D.js → enter-worktree-DEPXBJEL.js} +24 -24
  134. package/chunks/{enterPlanMode-SJXHJ3WD.js → enterPlanMode-JFGXZHHJ.js} +24 -24
  135. package/chunks/{errors-EVGER4AZ.js → errors-GMZL4QV7.js} +26 -26
  136. package/chunks/{exit-worktree-RPDDOSPM.js → exit-worktree-Y7XBK3VV.js} +24 -24
  137. package/chunks/{exitPlanMode-BQEROAJ7.js → exitPlanMode-WQQER65F.js} +24 -24
  138. package/chunks/{fast-path-FX2ICJ2O.js → fast-path-W2U6XDNO.js} +5 -2
  139. package/chunks/{fr-MBMNQSQ6.js → fr-GWNQG4XH.js} +4 -0
  140. package/chunks/{gemini-EHUXCOUI.js → gemini-T4WX6SRW.js} +444 -256
  141. package/chunks/{geminiContentGenerator-YDUUKAM2.js → geminiContentGenerator-MKQACXEJ.js} +4 -4
  142. package/chunks/{glob-3VIGV2DL.js → glob-4KKSHZDF.js} +52 -28
  143. package/chunks/{grep-4D3S4NUC.js → grep-GHRYXSLZ.js} +24 -24
  144. package/chunks/handleAutoUpdate-HN7ZOSXY.js +65 -0
  145. package/chunks/{initializer-QZTZSSLW.js → initializer-SRN3IM42.js} +31 -29
  146. package/chunks/{ja-HFV5QCHR.js → ja-2HOTA47X.js} +4 -0
  147. package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
  148. package/chunks/{list-WQ24EAMK.js → list-INTVXUPA.js} +30 -30
  149. package/chunks/{loadedSettingsAdapter-XV74KOSR.js → loadedSettingsAdapter-QVHHQPGM.js} +28 -28
  150. package/chunks/{loop-wakeup-34YK7T7O.js → loop-wakeup-OHWEMFP5.js} +5 -5
  151. package/chunks/{ls-MPD5OJUX.js → ls-L654WOAT.js} +4 -4
  152. package/chunks/{lsp-72PWTDW7.js → lsp-M35KE54Y.js} +2 -2
  153. package/chunks/{mcp-CO3MKM7N.js → mcp-7V4T46RG.js} +28 -28
  154. package/chunks/{monitor-GB56T65A.js → monitor-464OY2UE.js} +32 -27
  155. package/chunks/nonInteractiveCli-LJEEODU2.js +116 -0
  156. package/chunks/{notebook-edit-VMXAAE3R.js → notebook-edit-BLJYCNDO.js} +25 -25
  157. package/chunks/{openaiContentGenerator-GM77FLII.js → openaiContentGenerator-PFF6HYB2.js} +12 -12
  158. package/chunks/{pidfile-HFXSHR64.js → pidfile-LIBUENIV.js} +25 -25
  159. package/chunks/{qwenContentGenerator-QSCXQIKJ.js → qwenContentGenerator-SUUHZ6CR.js} +26 -26
  160. package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
  161. package/chunks/{read-file-SVH6CGQY.js → read-file-L7TBQVX7.js} +8 -8
  162. package/chunks/{read-mcp-resource-OWOBJY72.js → read-mcp-resource-CNQHBSJM.js} +2 -2
  163. package/chunks/{record-artifact-URK3YUDJ.js → record-artifact-PP3LKHTS.js} +2 -2
  164. package/chunks/{ripGrep-JD5O2FLX.js → ripGrep-CKKX3GRB.js} +24 -24
  165. package/chunks/{run-qwen-serve-FADLRJUN.js → run-qwen-serve-5OKADVLE.js} +785 -35
  166. package/chunks/{scheduler-Q65SB7DJ.js → scheduler-ZRW3AIDU.js} +24 -24
  167. package/chunks/{send-message-L7OLQEKH.js → send-message-OA6MV4EU.js} +3 -3
  168. package/chunks/{serve-6ZXAMQ4M.js → serve-36WS32W6.js} +29 -29
  169. package/chunks/{server-WKDQA6XR.js → server-M372UENX.js} +2504 -439
  170. package/chunks/{session-STWOX7RA.js → session-F5KSNP2N.js} +66 -61
  171. package/chunks/{settings-LC4CCWQQ.js → settings-WFLNS3WT.js} +27 -27
  172. package/chunks/{shell-FEG3RLPW.js → shell-DEDSWN56.js} +24 -24
  173. package/chunks/{skill-XTXAMDAP.js → skill-A2TL2NPC.js} +24 -12
  174. package/chunks/{spawnChannel-B6JJPBPV.js → spawnChannel-RQHUWTCL.js} +27 -27
  175. package/chunks/{src-HITDGVRM.js → src-XKZMNHXS.js} +91 -36
  176. package/chunks/{startInteractiveUI-IT423PW4.js → startInteractiveUI-REKSTOHU.js} +6213 -14273
  177. package/chunks/{syntheticOutput-J3MLCQAR.js → syntheticOutput-F7LSDCAR.js} +3 -3
  178. package/chunks/{task-create-ELEBZ7H2.js → task-create-RPFZNB4B.js} +7 -7
  179. package/chunks/{task-list-IEUZLF3Y.js → task-list-TGGJX7EA.js} +5 -5
  180. package/chunks/{task-stop-QEZW3UDY.js → task-stop-W7NGTMYQ.js} +2 -2
  181. package/chunks/{task-update-DW36J5P5.js → task-update-5WUG5MVQ.js} +7 -7
  182. package/chunks/{team-create-DAG6SNHZ.js → team-create-TBQVWAG7.js} +24 -24
  183. package/chunks/{team-delete-SVITIMBO.js → team-delete-UHQQ2QQX.js} +5 -5
  184. package/chunks/{team-plan-approval-DRDY5OPC.js → team-plan-approval-FZPGUSHJ.js} +24 -24
  185. package/chunks/{theme-manager-N67EZC6B.js → theme-manager-DQZVNSOC.js} +25 -25
  186. package/chunks/{todoWrite-SFFQHZYY.js → todoWrite-C4ZAMSR3.js} +4 -4
  187. package/chunks/{tool-search-CMDJ5HGM.js → tool-search-FDQ3SLNJ.js} +11 -28
  188. package/chunks/{trustedFolders-JD4QX6UJ.js → trustedFolders-Z475EIHL.js} +25 -25
  189. package/chunks/updateCheck-E2ZX7RL7.js +65 -0
  190. package/chunks/{validateNonInterActiveAuth-ADDCGZ6A.js → validateNonInterActiveAuth-O4ECBHQL.js} +61 -56
  191. package/chunks/{version-VAONYVE5.js → version-CEDD6ZZR.js} +2 -1
  192. package/chunks/{web-fetch-SXAXJHIO.js → web-fetch-UYGMOHW4.js} +5 -5
  193. package/chunks/{workflow-DG2BR42M.js → workflow-CQQ4J4I6.js} +25 -25
  194. package/chunks/{workspace-providers-status-XGW5OZTD.js → workspace-providers-status-MVYXMYDG.js} +30 -30
  195. package/chunks/{workspace-service-GX3GGZLU.js → workspace-service-OMBR6ZLG.js} +35 -35
  196. package/chunks/{workspace-skills-status-LFK5WV2V.js → workspace-skills-status-IMMQ7CAY.js} +29 -29
  197. package/chunks/{write-file-UR7FXWOU.js → write-file-VWGY7AJP.js} +25 -25
  198. package/chunks/{zh-FSVJTXA4.js → zh-7XVVRTDH.js} +6 -1
  199. package/chunks/{zh-TW-66MG4LWL.js → zh-TW-DPH554OG.js} +6 -1
  200. package/cli.js +19 -11
  201. package/locales/en.js +9 -2
  202. package/locales/fr.js +6 -0
  203. package/locales/ja.js +6 -0
  204. package/locales/zh-TW.js +9 -2
  205. package/locales/zh.js +9 -2
  206. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  207. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  208. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  209. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  210. package/package.json +3 -3
  211. package/web-shell/assets/{arc-CUpe0ibu.js → arc-C7hjaa7g.js} +1 -1
  212. package/web-shell/assets/{architectureDiagram-3BPJPVTR-JvyrY_mK.js → architectureDiagram-3BPJPVTR-pm9KtMZY.js} +1 -1
  213. package/web-shell/assets/{blockDiagram-GPEHLZMM-CK3Y_vom.js → blockDiagram-GPEHLZMM-CApElKsU.js} +1 -1
  214. package/web-shell/assets/{c4Diagram-AAUBKEIU-DprSnyrf.js → c4Diagram-AAUBKEIU-BeDe0-9N.js} +1 -1
  215. package/web-shell/assets/channel-BNf1dW-j.js +1 -0
  216. package/web-shell/assets/{chunk-2J33WTMH-DJtRJPmu.js → chunk-2J33WTMH-DJEkmLdl.js} +1 -1
  217. package/web-shell/assets/{chunk-4BX2VUAB-ON6Q2-BG.js → chunk-4BX2VUAB-DXX8gdpe.js} +1 -1
  218. package/web-shell/assets/{chunk-55IACEB6-c60ou5HZ.js → chunk-55IACEB6-DORmk1kQ.js} +1 -1
  219. package/web-shell/assets/{chunk-727SXJPM-BamtPKxx.js → chunk-727SXJPM-DWmO4mCZ.js} +1 -1
  220. package/web-shell/assets/{chunk-AQP2D5EJ-CsVgpu-T.js → chunk-AQP2D5EJ-C7LRaYw2.js} +1 -1
  221. package/web-shell/assets/{chunk-FMBD7UC4-vZrpjAx4.js → chunk-FMBD7UC4-CCdXgyC5.js} +1 -1
  222. package/web-shell/assets/{chunk-ND2GUHAM-qxyNOd5t.js → chunk-ND2GUHAM-SyL_xvWc.js} +1 -1
  223. package/web-shell/assets/{chunk-QZHKN3VN-BvTJSM_S.js → chunk-QZHKN3VN-BzOuCKxa.js} +1 -1
  224. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +1 -0
  225. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +1 -0
  226. package/web-shell/assets/{cose-bilkent-S5V4N54A-1tXB4pju.js → cose-bilkent-S5V4N54A-BMPWyDKc.js} +1 -1
  227. package/web-shell/assets/{dagre-BM42HDAG-DglBzme8.js → dagre-BM42HDAG-B_GnPWik.js} +1 -1
  228. package/web-shell/assets/{diagram-2AECGRRQ-DEJpqsWz.js → diagram-2AECGRRQ-fJqMc3S_.js} +1 -1
  229. package/web-shell/assets/{diagram-5GNKFQAL-CsQ1NrMG.js → diagram-5GNKFQAL-ximV3O9D.js} +1 -1
  230. package/web-shell/assets/{diagram-KO2AKTUF-Z-3codAi.js → diagram-KO2AKTUF-2vVyjzqw.js} +1 -1
  231. package/web-shell/assets/{diagram-LMA3HP47-mBuPTA2i.js → diagram-LMA3HP47-Dckcx1sT.js} +1 -1
  232. package/web-shell/assets/{diagram-OG6HWLK6-tcA3K3s9.js → diagram-OG6HWLK6-BAVv47ga.js} +1 -1
  233. package/web-shell/assets/{erDiagram-TEJ5UH35-D9bXFRyZ.js → erDiagram-TEJ5UH35-Bn3nf5J0.js} +1 -1
  234. package/web-shell/assets/{flowDiagram-I6XJVG4X-Ck0Py04s.js → flowDiagram-I6XJVG4X-BIbGF9JT.js} +1 -1
  235. package/web-shell/assets/{ganttDiagram-6RSMTGT7-rOevCekE.js → ganttDiagram-6RSMTGT7-CDbhb3AH.js} +1 -1
  236. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CoPQaLj0.js → gitGraphDiagram-PVQCEYII-CbKG1a_w.js} +1 -1
  237. package/web-shell/assets/index-CnE2ur2L.js +779 -0
  238. package/web-shell/assets/index-hSKXrlSE.css +5 -0
  239. package/web-shell/assets/{infoDiagram-5YYISTIA-a77CUKoI.js → infoDiagram-5YYISTIA-DUFxTy8m.js} +1 -1
  240. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DlLgUAO-.js → ishikawaDiagram-YF4QCWOH-D69hrBG8.js} +1 -1
  241. package/web-shell/assets/{journeyDiagram-JHISSGLW-BXR5kVAZ.js → journeyDiagram-JHISSGLW-DsvEw51Y.js} +1 -1
  242. package/web-shell/assets/{kanban-definition-UN3LZRKU-h5CoHZg7.js → kanban-definition-UN3LZRKU-lFFjZEYd.js} +1 -1
  243. package/web-shell/assets/{linear-BkaREbyD.js → linear-Bo5bWzvo.js} +1 -1
  244. package/web-shell/assets/{mermaid.core-Bkagz0ng.js → mermaid.core-C_HKMJx5.js} +5 -5
  245. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D7EMKR_5.js → mindmap-definition-RKZ34NQL-DlV-NUTs.js} +1 -1
  246. package/web-shell/assets/{pieDiagram-4H26LBE5-DAmPOjsL.js → pieDiagram-4H26LBE5-B2e6FH2a.js} +1 -1
  247. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-e4WFQkQu.js → quadrantDiagram-W4KKPZXB-D75kSk-b.js} +1 -1
  248. package/web-shell/assets/{requirementDiagram-4Y6WPE33-v1zo7OiV.js → requirementDiagram-4Y6WPE33-CQ6xakhM.js} +1 -1
  249. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bstm4aW_.js → sankeyDiagram-5OEKKPKP-J_XTKrcY.js} +1 -1
  250. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DzcZy6xN.js → sequenceDiagram-3UESZ5HK-D7jTcBtf.js} +1 -1
  251. package/web-shell/assets/{stateDiagram-AJRCARHV-BEJH6YbH.js → stateDiagram-AJRCARHV-CrlM_OT3.js} +1 -1
  252. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +1 -0
  253. package/web-shell/assets/{timeline-definition-PNZ67QCA-TI1wH-Pm.js → timeline-definition-PNZ67QCA-5oZi76Ef.js} +1 -1
  254. package/web-shell/assets/{vennDiagram-CIIHVFJN-YaH8VDMS.js → vennDiagram-CIIHVFJN-DO5YptPK.js} +1 -1
  255. package/web-shell/assets/{wardley-L42UT6IY-B80co7OP.js → wardley-L42UT6IY-4t1eJDvM.js} +1 -1
  256. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-4fHNDEMl.js → wardleyDiagram-YWT4CUSO-DKZc661S.js} +1 -1
  257. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DT3q4Z3J.js → xychartDiagram-2RQKCTM6-su9hp08G.js} +1 -1
  258. package/web-shell/index.html +2 -2
  259. package/chunks/chunk-L7QPM2YD.js +0 -481
  260. package/chunks/daemon-status-provider-2EWTHT7Y.js +0 -73
  261. package/chunks/nonInteractiveCli-HNZRIM5I.js +0 -111
  262. package/web-shell/assets/channel-BAxQ2-aZ.js +0 -1
  263. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +0 -1
  264. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +0 -1
  265. package/web-shell/assets/index-Cr7MYW6T.css +0 -5
  266. package/web-shell/assets/index-DCHPAUp3.js +0 -730
  267. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MAX_WORKSPACE_PATH_LENGTH
5
- } from "./chunk-SEZC2725.js";
5
+ } from "./chunk-ER3BKOLB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -1,34 +1,34 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- noteInteraction
5
- } from "./chunk-MRO43B25.js";
6
3
  import {
7
4
  require_jsx_runtime,
8
5
  use_stdin_default,
9
6
  use_stdout_default
10
- } from "./chunk-YSU33ACT.js";
7
+ } from "./chunk-DGHJTO2K.js";
11
8
  import {
12
9
  require_react
13
10
  } from "./chunk-KYMBIKIW.js";
11
+ import {
12
+ noteInteraction
13
+ } from "./chunk-MRO43B25.js";
14
14
  import {
15
15
  sanitizeFilenameForDisplay
16
- } from "./chunk-XH7H6YG4.js";
16
+ } from "./chunk-GL5TV7B5.js";
17
17
  import {
18
18
  t
19
- } from "./chunk-6QVRLKTZ.js";
19
+ } from "./chunk-QAKFYMJI.js";
20
20
  import {
21
21
  fetchGitDiff,
22
22
  findProviderByCredentials,
23
23
  resolveMetadataKey
24
- } from "./chunk-AGZF43UV.js";
24
+ } from "./chunk-YEGT55NW.js";
25
25
  import {
26
26
  KittySequenceOverflowEvent,
27
27
  logKittySequenceOverflow
28
- } from "./chunk-JN2VJ33O.js";
28
+ } from "./chunk-GMOWQOQQ.js";
29
29
  import {
30
30
  createDebugLogger
31
- } from "./chunk-AVQDCKNF.js";
31
+ } from "./chunk-22MNNNXE.js";
32
32
  import {
33
33
  init_esbuild_shims
34
34
  } from "./chunk-A4BMJM77.js";
@@ -2,24 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-6QVRLKTZ.js";
5
+ } from "./chunk-QAKFYMJI.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  getCoreSystemPrompt
9
- } from "./chunk-AGZF43UV.js";
9
+ } from "./chunk-YEGT55NW.js";
10
10
  import {
11
11
  buildSkillLlmContent
12
- } from "./chunk-B236XPGF.js";
12
+ } from "./chunk-NQKLOAVJ.js";
13
13
  import {
14
14
  DiscoveredMCPTool,
15
15
  uiTelemetryService
16
- } from "./chunk-JN2VJ33O.js";
16
+ } from "./chunk-GMOWQOQQ.js";
17
17
  import {
18
18
  ToolNames
19
- } from "./chunk-MJKMIQMK.js";
19
+ } from "./chunk-X3YGAX7V.js";
20
20
  import {
21
21
  DEFAULT_TOKEN_LIMIT
22
- } from "./chunk-KYTQOCDE.js";
22
+ } from "./chunk-HW4N45EE.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-A4BMJM77.js";
@@ -90,7 +90,7 @@ async function collectContextData(config, showDetails) {
90
90
  const builtinTools = [];
91
91
  const mcpTools = [];
92
92
  for (const tool of allTools) {
93
- if (tool.shouldDefer && !tool.alwaysLoad && !toolRegistry?.isDeferredToolRevealed(tool.name)) {
93
+ if (toolRegistry?.isDeferredAndHidden(tool.name)) {
94
94
  continue;
95
95
  }
96
96
  const toolJsonStr = JSON.stringify(tool.schema);
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-AVQDCKNF.js";
5
+ } from "./chunk-22MNNNXE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -10,6 +10,53 @@ import {
10
10
  __name
11
11
  } from "./chunk-J2S4EL5Y.js";
12
12
 
13
+ // packages/core/src/utils/request-tokenizer/textTokenizer.ts
14
+ init_esbuild_shims();
15
+ function estimateTextTokens(text) {
16
+ if (!text || text.length === 0) {
17
+ return 0;
18
+ }
19
+ let asciiChars = 0;
20
+ let nonAsciiChars = 0;
21
+ for (let i = 0; i < text.length; i++) {
22
+ const charCode = text.charCodeAt(i);
23
+ if (charCode < 128) {
24
+ asciiChars++;
25
+ } else {
26
+ nonAsciiChars++;
27
+ }
28
+ }
29
+ const tokens = asciiChars / 4 + nonAsciiChars * 1.1;
30
+ return Math.ceil(tokens);
31
+ }
32
+ __name(estimateTextTokens, "estimateTextTokens");
33
+ var TextTokenizer = class {
34
+ static {
35
+ __name(this, "TextTokenizer");
36
+ }
37
+ /**
38
+ * Calculate tokens for text content
39
+ *
40
+ * @param text - The text to estimate tokens for
41
+ * @returns The estimated token count
42
+ */
43
+ async calculateTokens(text) {
44
+ return this.calculateTokensSync(text);
45
+ }
46
+ /**
47
+ * Calculate tokens for multiple text strings
48
+ *
49
+ * @param texts - Array of text strings to estimate tokens for
50
+ * @returns Array of token counts corresponding to each input text
51
+ */
52
+ async calculateTokensBatch(texts) {
53
+ return texts.map((text) => this.calculateTokensSync(text));
54
+ }
55
+ calculateTokensSync(text) {
56
+ return estimateTextTokens(text);
57
+ }
58
+ };
59
+
13
60
  // packages/core/src/utils/runtimeDiagnostics.ts
14
61
  init_esbuild_shims();
15
62
  var RUNTIME_PROFILE_ENV = "QWEN_CODE_PROFILE_RUNTIME";
@@ -1151,7 +1198,10 @@ function toOpenAPI30(schema) {
1151
1198
  target["type"] = types.find((t) => t !== "null");
1152
1199
  target["nullable"] = true;
1153
1200
  } else {
1154
- target["type"] = types[0];
1201
+ target["type"] = types.find((t) => t !== "null") ?? types[0];
1202
+ if (types.includes("null")) {
1203
+ target["nullable"] = true;
1204
+ }
1155
1205
  }
1156
1206
  } else if (source["type"] !== void 0) {
1157
1207
  target["type"] = source["type"];
@@ -1190,6 +1240,8 @@ function toOpenAPI30(schema) {
1190
1240
  __name(toOpenAPI30, "toOpenAPI30");
1191
1241
 
1192
1242
  export {
1243
+ estimateTextTokens,
1244
+ TextTokenizer,
1193
1245
  safeJsonParse,
1194
1246
  convertSchema,
1195
1247
  isRuntimeDiagnosticsEnabled,
@@ -1200,12 +1252,12 @@ export {
1200
1252
  };
1201
1253
  /**
1202
1254
  * @license
1203
- * Copyright 2026 Qwen
1255
+ * Copyright 2025 Qwen
1204
1256
  * SPDX-License-Identifier: Apache-2.0
1205
1257
  */
1206
1258
  /**
1207
1259
  * @license
1208
- * Copyright 2025 Qwen
1260
+ * Copyright 2026 Qwen
1209
1261
  * SPDX-License-Identifier: Apache-2.0
1210
1262
  */
1211
1263
  /**
@@ -3,27 +3,28 @@
3
3
  import {
4
4
  OpenAIContentConverter,
5
5
  TaggedThinkingParser,
6
+ getRateLimitErrorDetails,
6
7
  openaiRequestCaptureContext
7
- } from "./chunk-JN2VJ33O.js";
8
+ } from "./chunk-GMOWQOQQ.js";
8
9
  import {
9
10
  RequestTokenizer
10
- } from "./chunk-JA5KWZTJ.js";
11
+ } from "./chunk-44NROQYV.js";
11
12
  import {
12
13
  DASHSCOPE_PROXY_BASE_URL,
13
14
  DEFAULT_DASHSCOPE_BASE_URL,
14
15
  DEFAULT_MAX_RETRIES,
15
16
  DEFAULT_STREAM_IDLE_TIMEOUT_MS,
16
- DEFAULT_TIMEOUT,
17
17
  MAX_STREAM_IDLE_TIMEOUT_MS,
18
18
  QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
19
19
  hasExplicitOutputLimit,
20
20
  parsePositiveIntegerEnvValue,
21
+ resolveRequestTimeout,
21
22
  tokenLimit
22
- } from "./chunk-KYTQOCDE.js";
23
+ } from "./chunk-HW4N45EE.js";
23
24
  import {
24
25
  runtimeDiagnostics,
25
26
  safeJsonParse
26
- } from "./chunk-YPCPZSZB.js";
27
+ } from "./chunk-CCGOFQV3.js";
27
28
  import {
28
29
  GenerateContentResponse
29
30
  } from "./chunk-55ZMG67I.js";
@@ -33,11 +34,13 @@ import {
33
34
  import {
34
35
  buildRuntimeFetchOptions,
35
36
  redactProxyError
36
- } from "./chunk-D5KISTLW.js";
37
+ } from "./chunk-H6EMK6QK.js";
37
38
  import {
38
39
  createDebugLogger,
40
+ getErrorStatus,
41
+ getErrorType,
39
42
  isAbortError
40
- } from "./chunk-AVQDCKNF.js";
43
+ } from "./chunk-22MNNNXE.js";
41
44
  import {
42
45
  init_esbuild_shims
43
46
  } from "./chunk-A4BMJM77.js";
@@ -6952,9 +6955,9 @@ var DefaultOpenAICompatibleProvider = class {
6952
6955
  const {
6953
6956
  apiKey,
6954
6957
  baseUrl,
6955
- timeout = DEFAULT_TIMEOUT,
6956
6958
  maxRetries = DEFAULT_MAX_RETRIES
6957
6959
  } = this.contentGeneratorConfig;
6960
+ const timeout = resolveRequestTimeout(this.contentGeneratorConfig.timeout);
6958
6961
  const defaultHeaders = this.buildHeaders();
6959
6962
  const runtimeOptions = buildRuntimeFetchOptions(
6960
6963
  "openai",
@@ -7143,9 +7146,9 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
7143
7146
  const {
7144
7147
  apiKey,
7145
7148
  baseUrl = DEFAULT_DASHSCOPE_BASE_URL,
7146
- timeout = DEFAULT_TIMEOUT,
7147
7149
  maxRetries = DEFAULT_MAX_RETRIES
7148
7150
  } = this.contentGeneratorConfig;
7151
+ const timeout = resolveRequestTimeout(this.contentGeneratorConfig.timeout);
7149
7152
  const defaultHeaders = this.buildHeaders();
7150
7153
  const runtimeOptions = buildRuntimeFetchOptions(
7151
7154
  "openai",
@@ -7813,11 +7816,17 @@ var StreamingToolCallParser = class {
7813
7816
  const existingBuffer = this.buffers.get(index);
7814
7817
  const existingDepth = this.depths.get(index);
7815
7818
  const existingMeta = this.toolCallMeta.get(index);
7816
- if (existingBuffer.trim() && existingDepth === 0 && existingMeta?.id && existingMeta.id !== id) {
7817
- try {
7818
- JSON.parse(existingBuffer);
7819
+ if (existingMeta?.name && existingDepth === 0 && existingMeta?.id && existingMeta.id !== id) {
7820
+ let existingComplete = true;
7821
+ if (existingBuffer.trim()) {
7822
+ try {
7823
+ JSON.parse(existingBuffer);
7824
+ } catch {
7825
+ existingComplete = false;
7826
+ }
7827
+ }
7828
+ if (existingComplete) {
7819
7829
  actualIndex = this.findNextAvailableIndex();
7820
- } catch {
7821
7830
  }
7822
7831
  }
7823
7832
  }
@@ -7848,14 +7857,21 @@ var StreamingToolCallParser = class {
7848
7857
  }
7849
7858
  const currentBuffer = this.buffers.get(actualIndex);
7850
7859
  const currentDepth = this.depths.get(actualIndex);
7851
- if (isKnownId && currentBuffer.trim() && currentDepth === 0) {
7852
- try {
7853
- JSON.parse(currentBuffer);
7860
+ if (isKnownId && currentDepth === 0) {
7861
+ if (currentBuffer.trim()) {
7862
+ try {
7863
+ JSON.parse(currentBuffer);
7864
+ debugLogger3.debug(
7865
+ `Ignoring replay chunk for completed toolCall id=${id}`
7866
+ );
7867
+ return { complete: false };
7868
+ } catch {
7869
+ }
7870
+ } else if (this.toolCallMeta.get(actualIndex)?.name && name && !chunk.trim()) {
7854
7871
  debugLogger3.debug(
7855
- `Ignoring replay chunk for completed toolCall id=${id}`
7872
+ `Ignoring replayed opener for no-argument toolCall id=${id}`
7856
7873
  );
7857
7874
  return { complete: false };
7858
- } catch {
7859
7875
  }
7860
7876
  }
7861
7877
  const meta = this.toolCallMeta.get(actualIndex);
@@ -7922,8 +7938,10 @@ var StreamingToolCallParser = class {
7922
7938
  * 2. Auto-close unclosed strings and retry
7923
7939
  * 3. Fallback to safeJsonParse for malformed data
7924
7940
  *
7925
- * Only returns tool calls with both name metadata and non-empty buffers.
7926
- * Should be called when streaming is complete (finish_reason is present).
7941
+ * Only returns tool calls with name metadata. An empty buffer yields
7942
+ * empty arguments ({}), matching the non-streaming path for no-argument
7943
+ * tools. Should be called when streaming is complete (finish_reason is
7944
+ * present).
7927
7945
  *
7928
7946
  * @returns Array of completed tool calls with their metadata and parsed arguments
7929
7947
  */
@@ -7932,7 +7950,7 @@ var StreamingToolCallParser = class {
7932
7950
  const emittedIds = /* @__PURE__ */ new Set();
7933
7951
  for (const [index, buffer] of this.buffers.entries()) {
7934
7952
  const meta = this.toolCallMeta.get(index);
7935
- if (meta?.name && buffer.trim()) {
7953
+ if (meta?.name) {
7936
7954
  if (meta.id) {
7937
7955
  if (emittedIds.has(meta.id)) {
7938
7956
  continue;
@@ -7940,19 +7958,31 @@ var StreamingToolCallParser = class {
7940
7958
  emittedIds.add(meta.id);
7941
7959
  }
7942
7960
  let args = {};
7943
- try {
7944
- args = JSON.parse(buffer);
7945
- } catch {
7946
- const inString = this.inStrings.get(index);
7947
- if (inString) {
7948
- try {
7949
- args = JSON.parse(buffer + '"');
7950
- } catch {
7961
+ if (buffer.trim()) {
7962
+ try {
7963
+ args = JSON.parse(buffer);
7964
+ } catch {
7965
+ const inString = this.inStrings.get(index);
7966
+ if (inString) {
7967
+ try {
7968
+ args = JSON.parse(buffer + '"');
7969
+ } catch {
7970
+ args = safeJsonParse(buffer, {});
7971
+ }
7972
+ } else {
7951
7973
  args = safeJsonParse(buffer, {});
7952
7974
  }
7953
- } else {
7954
- args = safeJsonParse(buffer, {});
7955
7975
  }
7976
+ if (typeof args !== "object" || args === null || Array.isArray(args)) {
7977
+ debugLogger3.debug(
7978
+ `Collapsing non-object arguments for tool call ${meta.name} (id=${meta.id}) at index ${index}; buffer likely polluted by a misrouted fragment`
7979
+ );
7980
+ args = {};
7981
+ }
7982
+ } else {
7983
+ debugLogger3.debug(
7984
+ `Emitting no-argument tool call ${meta.name} (id=${meta.id}) at index ${index} with empty buffer`
7985
+ );
7956
7986
  }
7957
7987
  completed.push({
7958
7988
  id: meta.id,
@@ -7968,8 +7998,9 @@ var StreamingToolCallParser = class {
7968
7998
  * Finds the next available index for a new tool call
7969
7999
  *
7970
8000
  * Scans indices starting from nextAvailableIndex to find one that's safe to use.
7971
- * Reuses indices with empty buffers or incomplete parsing states.
7972
- * Skips indices with complete, parseable tool call data to prevent overwriting.
8001
+ * Reuses indices never claimed by a named tool call or with incomplete
8002
+ * parsing states. Skips indices with complete tool call data including
8003
+ * no-argument calls with empty buffers — to prevent overwriting.
7973
8004
  *
7974
8005
  * @returns The next available index safe for storing a new tool call
7975
8006
  */
@@ -7978,17 +8009,15 @@ var StreamingToolCallParser = class {
7978
8009
  const buffer = this.buffers.get(this.nextAvailableIndex);
7979
8010
  const depth = this.depths.get(this.nextAvailableIndex);
7980
8011
  const meta = this.toolCallMeta.get(this.nextAvailableIndex);
7981
- if (!buffer.trim() || depth > 0 || !meta?.id) {
8012
+ if (!meta?.name || depth > 0 || !meta?.id) {
7982
8013
  return this.nextAvailableIndex;
7983
8014
  }
7984
- try {
7985
- JSON.parse(buffer);
7986
- if (depth === 0) {
7987
- this.nextAvailableIndex++;
7988
- continue;
8015
+ if (buffer.trim()) {
8016
+ try {
8017
+ JSON.parse(buffer);
8018
+ } catch {
8019
+ return this.nextAvailableIndex;
7989
8020
  }
7990
- } catch {
7991
- return this.nextAvailableIndex;
7992
8021
  }
7993
8022
  this.nextAvailableIndex++;
7994
8023
  }
@@ -7998,8 +8027,9 @@ var StreamingToolCallParser = class {
7998
8027
  * Finds the most recent incomplete tool call index
7999
8028
  *
8000
8029
  * Used when continuation chunks arrive without IDs. Scans existing tool calls
8001
- * to find the highest index with incomplete parsing state (depth > 0, empty buffer,
8002
- * or unparseable JSON). Falls back to creating a new index if none found.
8030
+ * to find the highest index with incomplete parsing state (depth > 0, empty
8031
+ * buffer with no name metadata yet, or unparseable JSON). Falls back to
8032
+ * creating a new index if none found.
8003
8033
  *
8004
8034
  * @returns The index of the most recent incomplete tool call, or a new available index
8005
8035
  */
@@ -8008,7 +8038,7 @@ var StreamingToolCallParser = class {
8008
8038
  for (const [index, buffer] of this.buffers.entries()) {
8009
8039
  const depth = this.depths.get(index);
8010
8040
  const meta = this.toolCallMeta.get(index);
8011
- if (meta?.id && (depth > 0 || !buffer.trim())) {
8041
+ if (meta?.id && (depth > 0 || !buffer.trim() && !meta?.name)) {
8012
8042
  maxIndex = Math.max(maxIndex, index);
8013
8043
  } else if (buffer.trim()) {
8014
8044
  try {
@@ -8431,10 +8461,19 @@ var ContentGenerationPipeline = class {
8431
8461
  if (reasoningDisabled) {
8432
8462
  const typed = providerRequest;
8433
8463
  const model = (context.model ?? "").toLowerCase();
8434
- if (DashScopeOpenAICompatibleProvider.isDashScopeProvider(
8435
- this.contentGeneratorConfig
8436
- ) && (model.startsWith("qwen") || model === "coder-model")) {
8437
- typed["enable_thinking"] = false;
8464
+ if (model.startsWith("qwen") || model === "coder-model") {
8465
+ if (DashScopeOpenAICompatibleProvider.isDashScopeProvider(
8466
+ this.contentGeneratorConfig
8467
+ )) {
8468
+ typed["enable_thinking"] = false;
8469
+ } else {
8470
+ delete typed["enable_thinking"];
8471
+ const existing = typed["chat_template_kwargs"] ?? {};
8472
+ typed["chat_template_kwargs"] = {
8473
+ ...existing,
8474
+ enable_thinking: false
8475
+ };
8476
+ }
8438
8477
  }
8439
8478
  if ("reasoning" in typed) {
8440
8479
  delete typed["reasoning"];
@@ -8574,7 +8613,11 @@ var EnhancedErrorHandler = class {
8574
8613
  isTimeoutError
8575
8614
  );
8576
8615
  if (!this.shouldSuppressErrorLogging(redactedError, request)) {
8577
- debugLogger5.error("OpenAI API Error:", errorMessage);
8616
+ debugLogger5.error(
8617
+ "OpenAI API Error:",
8618
+ errorMessage,
8619
+ this.buildDiagnostics(redactedError, context)
8620
+ );
8578
8621
  }
8579
8622
  if (isTimeoutError) {
8580
8623
  throw new Error(
@@ -8602,6 +8645,35 @@ ${this.getTimeoutTroubleshootingTips()}`
8602
8645
  }
8603
8646
  return error instanceof Error ? error.message : String(error);
8604
8647
  }
8648
+ buildDiagnostics(error, context) {
8649
+ const details = getRateLimitErrorDetails(error);
8650
+ const requestId = this.getRequestId(error) ?? details.requestId;
8651
+ const statusCode = getErrorStatus(error);
8652
+ return {
8653
+ model: context.model,
8654
+ durationMs: Date.now() - context.startTime,
8655
+ errorType: getErrorType(error),
8656
+ ...statusCode !== void 0 ? { statusCode } : {},
8657
+ ...details.providerCode !== void 0 ? { providerCode: details.providerCode } : {},
8658
+ ...details.providerMessage !== void 0 ? { providerMessage: details.providerMessage } : {},
8659
+ ...requestId !== void 0 ? { requestId } : {},
8660
+ ...details.transport !== "unknown" ? { transport: details.transport } : {}
8661
+ };
8662
+ }
8663
+ getRequestId(error) {
8664
+ if (!error || typeof error !== "object") return void 0;
8665
+ const source = error;
8666
+ for (const value of [
8667
+ source.requestID,
8668
+ source.request_id,
8669
+ source.response_id
8670
+ ]) {
8671
+ if (typeof value === "string" && value) {
8672
+ return value;
8673
+ }
8674
+ }
8675
+ return void 0;
8676
+ }
8605
8677
  getTimeoutTroubleshootingTips() {
8606
8678
  const tips = [
8607
8679
  "- Reduce input length or complexity",
@@ -3,24 +3,24 @@
3
3
  import {
4
4
  AUTO_THEME_NAME,
5
5
  themeManager
6
- } from "./chunk-HTWHAN44.js";
6
+ } from "./chunk-PC4ZXHU2.js";
7
7
  import {
8
8
  initializeI18n,
9
9
  resolveLanguageSetting,
10
10
  t
11
- } from "./chunk-6QVRLKTZ.js";
11
+ } from "./chunk-QAKFYMJI.js";
12
12
  import {
13
13
  IdeClient
14
- } from "./chunk-AGZF43UV.js";
14
+ } from "./chunk-YEGT55NW.js";
15
15
  import {
16
16
  AuthEvent,
17
17
  IdeConnectionEvent,
18
18
  logAuth,
19
19
  logIdeConnection
20
- } from "./chunk-JN2VJ33O.js";
20
+ } from "./chunk-GMOWQOQQ.js";
21
21
  import {
22
22
  getErrorMessage
23
- } from "./chunk-AVQDCKNF.js";
23
+ } from "./chunk-22MNNNXE.js";
24
24
  import {
25
25
  init_esbuild_shims
26
26
  } from "./chunk-A4BMJM77.js";
@@ -65,7 +65,14 @@ function validateTheme(settings) {
65
65
  __name(validateTheme, "validateTheme");
66
66
 
67
67
  // packages/cli/src/core/initializer.ts
68
- async function initializeApp(config, settings) {
68
+ async function connectIdeForStartup(config) {
69
+ if (!config.getIdeMode()) return;
70
+ const ideClient = await IdeClient.getInstance();
71
+ await ideClient.connect();
72
+ logIdeConnection(config, new IdeConnectionEvent("start" /* START */));
73
+ }
74
+ __name(connectIdeForStartup, "connectIdeForStartup");
75
+ async function initializeApp(config, settings, options = {}) {
69
76
  await initializeI18n(
70
77
  resolveLanguageSetting(settings.merged.general?.language)
71
78
  );
@@ -73,10 +80,8 @@ async function initializeApp(config, settings) {
73
80
  const authError = await performInitialAuth(config, authType);
74
81
  const themeError = validateTheme(settings);
75
82
  const shouldOpenAuthDialog = !config.getModelsConfig().wasAuthTypeExplicitlyProvided() || !!authError;
76
- if (config.getIdeMode()) {
77
- const ideClient = await IdeClient.getInstance();
78
- await ideClient.connect();
79
- logIdeConnection(config, new IdeConnectionEvent("start" /* START */));
83
+ if (!options.deferIdeConnection) {
84
+ await connectIdeForStartup(config);
80
85
  }
81
86
  return {
82
87
  authError,
@@ -88,6 +93,7 @@ async function initializeApp(config, settings) {
88
93
  __name(initializeApp, "initializeApp");
89
94
 
90
95
  export {
96
+ connectIdeForStartup,
91
97
  initializeApp
92
98
  };
93
99
  /**
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-AVQDCKNF.js";
5
+ } from "./chunk-22MNNNXE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ is_in_ci_default
5
+ } from "./chunk-332PWN27.js";
3
6
  import {
4
7
  require_react
5
8
  } from "./chunk-KYMBIKIW.js";
@@ -7,10 +10,10 @@ import {
7
10
  eastAsianWidth,
8
11
  isFullWidth,
9
12
  isWide
10
- } from "./chunk-XH7H6YG4.js";
13
+ } from "./chunk-LGFAYIKX.js";
11
14
  import {
12
15
  stripAnsi
13
- } from "./chunk-AGZF43UV.js";
16
+ } from "./chunk-YEGT55NW.js";
14
17
  import {
15
18
  init_esbuild_shims
16
19
  } from "./chunk-A4BMJM77.js";
@@ -10651,11 +10654,6 @@ var ConEmu = {
10651
10654
  };
10652
10655
  var setCwd = /* @__PURE__ */ __name((cwd2 = cwdFunction()) => iTerm.setCwd(cwd2) + ConEmu.setCwd(cwd2), "setCwd");
10653
10656
 
10654
- // packages/cli/src/patches/is-in-ci.ts
10655
- init_esbuild_shims();
10656
- var isInCi = false;
10657
- var is_in_ci_default = isInCi;
10658
-
10659
10657
  // node_modules/auto-bind/index.js
10660
10658
  init_esbuild_shims();
10661
10659
  var getAllProperties = /* @__PURE__ */ __name((object) => {
@@ -18783,7 +18781,6 @@ var measure_element_default = measureElement;
18783
18781
 
18784
18782
  export {
18785
18783
  base_exports,
18786
- is_in_ci_default,
18787
18784
  Box_default,
18788
18785
  Text,
18789
18786
  render_default,
@@ -18798,11 +18795,6 @@ export {
18798
18795
  measure_element_default,
18799
18796
  require_jsx_runtime
18800
18797
  };
18801
- /**
18802
- * @license
18803
- * Copyright 2025 Google LLC
18804
- * SPDX-License-Identifier: Apache-2.0
18805
- */
18806
18798
  /*! Bundled license information:
18807
18799
 
18808
18800
  react-reconciler/cjs/react-reconciler-constants.production.js:
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  expandHomeDir
5
- } from "./chunk-AVQDCKNF.js";
5
+ } from "./chunk-22MNNNXE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -23,10 +23,23 @@ function canonicalizeWorkspace(p) {
23
23
  }
24
24
  }
25
25
  __name(canonicalizeWorkspace, "canonicalizeWorkspace");
26
+ function canonicalizeWorkspaces(paths) {
27
+ const out = [];
28
+ const seen = /* @__PURE__ */ new Set();
29
+ for (const p of paths) {
30
+ const canonical = canonicalizeWorkspace(p);
31
+ if (seen.has(canonical)) continue;
32
+ seen.add(canonical);
33
+ out.push(canonical);
34
+ }
35
+ return out;
36
+ }
37
+ __name(canonicalizeWorkspaces, "canonicalizeWorkspaces");
26
38
  var MAX_WORKSPACE_PATH_LENGTH = 4096;
27
39
 
28
40
  export {
29
41
  canonicalizeWorkspace,
42
+ canonicalizeWorkspaces,
30
43
  MAX_WORKSPACE_PATH_LENGTH
31
44
  };
32
45
  /**