@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
@@ -0,0 +1,262 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ appEvents
5
+ } from "./chunk-I4A4K72C.js";
6
+ import {
7
+ require_undici
8
+ } from "./chunk-54YZOP7P.js";
9
+ import {
10
+ getAllProviderBaseUrls
11
+ } from "./chunk-YEGT55NW.js";
12
+ import {
13
+ initializeTelemetry
14
+ } from "./chunk-GMOWQOQQ.js";
15
+ import {
16
+ detectRuntime,
17
+ getOrCreateSharedDispatcher,
18
+ redactProxyCredentials
19
+ } from "./chunk-H6EMK6QK.js";
20
+ import {
21
+ createDebugLogger
22
+ } from "./chunk-22MNNNXE.js";
23
+ import {
24
+ recordStartupEvent
25
+ } from "./chunk-ITOGNELQ.js";
26
+ import {
27
+ init_esbuild_shims
28
+ } from "./chunk-A4BMJM77.js";
29
+ import {
30
+ __name,
31
+ __toESM
32
+ } from "./chunk-J2S4EL5Y.js";
33
+
34
+ // packages/cli/src/startup/startup-prefetch.ts
35
+ init_esbuild_shims();
36
+
37
+ // packages/cli/src/utils/apiPreconnect.ts
38
+ init_esbuild_shims();
39
+ var import_undici = __toESM(require_undici(), 1);
40
+ var debugLogger = createDebugLogger("PRECONNECT");
41
+ var preconnectFired = false;
42
+ var DEFAULT_BASE_URLS = {
43
+ openai: "https://api.openai.com",
44
+ "qwen-oauth": "https://coding.dashscope.aliyuncs.com",
45
+ anthropic: "https://api.anthropic.com",
46
+ dashscope: "https://dashscope.aliyuncs.com"
47
+ };
48
+ var ALL_DEFAULT_URLS = [
49
+ ...Object.values(DEFAULT_BASE_URLS),
50
+ ...getAllProviderBaseUrls()
51
+ ];
52
+ function shouldSkipPreconnect() {
53
+ if (process.env["NODE_EXTRA_CA_CERTS"]) {
54
+ debugLogger.debug("Skipping preconnect: custom CA certificate configured");
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ __name(shouldSkipPreconnect, "shouldSkipPreconnect");
60
+ function isInSandboxMode() {
61
+ return process.env["SANDBOX"] !== void 0;
62
+ }
63
+ __name(isInSandboxMode, "isInSandboxMode");
64
+ function isDefaultBaseUrl(baseUrl) {
65
+ const normalizedInput = baseUrl.toLowerCase().replace(/^https?:\/\//, "").replace(/\/+$/, "");
66
+ return ALL_DEFAULT_URLS.some((defaultUrl) => {
67
+ const normalizedDefault = defaultUrl.toLowerCase().replace(/^https?:\/\//, "").replace(/\/+$/, "");
68
+ return normalizedInput === normalizedDefault || normalizedInput.startsWith(normalizedDefault + "/");
69
+ });
70
+ }
71
+ __name(isDefaultBaseUrl, "isDefaultBaseUrl");
72
+ function getPreconnectTargetUrl(authType, resolvedBaseUrl) {
73
+ if (resolvedBaseUrl && /^https?:\/\//i.test(resolvedBaseUrl)) {
74
+ if (isDefaultBaseUrl(resolvedBaseUrl)) {
75
+ return resolvedBaseUrl;
76
+ }
77
+ debugLogger.debug(
78
+ "Skipping preconnect: resolved baseUrl is not a default URL"
79
+ );
80
+ return void 0;
81
+ }
82
+ if (authType && DEFAULT_BASE_URLS[authType]) {
83
+ return DEFAULT_BASE_URLS[authType];
84
+ }
85
+ return void 0;
86
+ }
87
+ __name(getPreconnectTargetUrl, "getPreconnectTargetUrl");
88
+ function preconnectApi(authType, options = {}) {
89
+ if (preconnectFired) {
90
+ return;
91
+ }
92
+ if (process.env["QWEN_CODE_DISABLE_PRECONNECT"] === "1") {
93
+ debugLogger.debug("Preconnect disabled by environment variable");
94
+ preconnectFired = true;
95
+ return;
96
+ }
97
+ if (isInSandboxMode()) {
98
+ debugLogger.debug("Skipping preconnect: sandbox mode detected");
99
+ preconnectFired = true;
100
+ return;
101
+ }
102
+ if (shouldSkipPreconnect()) {
103
+ preconnectFired = true;
104
+ return;
105
+ }
106
+ if (detectRuntime() !== "node") {
107
+ debugLogger.debug("Skipping preconnect: unsupported runtime");
108
+ preconnectFired = true;
109
+ return;
110
+ }
111
+ if (!options.proxy) {
112
+ debugLogger.debug("Skipping preconnect dispatcher: no proxy configured");
113
+ return;
114
+ }
115
+ const proxy = options.proxy;
116
+ const targetUrl = getPreconnectTargetUrl(authType, options.resolvedBaseUrl);
117
+ if (!targetUrl) {
118
+ debugLogger.debug("No target URL for preconnect");
119
+ return;
120
+ }
121
+ preconnectFired = true;
122
+ debugLogger.debug(`Preconnecting to: ${targetUrl}`);
123
+ try {
124
+ const dispatcher = getOrCreateSharedDispatcher(proxy);
125
+ (0, import_undici.fetch)(targetUrl, {
126
+ method: "HEAD",
127
+ signal: AbortSignal.timeout(5e3),
128
+ headers: {
129
+ "User-Agent": "QwenCode-Preconnect/1.0"
130
+ },
131
+ dispatcher
132
+ }).then(() => {
133
+ debugLogger.debug("Preconnect completed");
134
+ }).catch((error) => {
135
+ const redactedError = redactProxyCredentials(String(error));
136
+ debugLogger.debug(`Preconnect failed (ignored): ${redactedError}`);
137
+ });
138
+ } catch (error) {
139
+ const redactedError = redactProxyCredentials(String(error));
140
+ debugLogger.debug(`Preconnect failed (ignored): ${redactedError}`);
141
+ }
142
+ }
143
+ __name(preconnectApi, "preconnectApi");
144
+
145
+ // packages/cli/src/startup/startup-prefetch.ts
146
+ var debugLogger2 = createDebugLogger("STARTUP_PREFETCH");
147
+ var DEFERRED_IDE_CONNECT_TIMEOUT_MS = 1e4;
148
+ var earlyStarted = /* @__PURE__ */ new WeakSet();
149
+ var postRenderStarted = /* @__PURE__ */ new WeakSet();
150
+ function withTimeout(promise, name, timeoutMs) {
151
+ let timeoutId;
152
+ let timedOut = false;
153
+ const timeout = new Promise((_, reject) => {
154
+ timeoutId = setTimeout(() => {
155
+ timedOut = true;
156
+ reject(new Error(`${name} timed out after ${timeoutMs}ms`));
157
+ }, timeoutMs);
158
+ timeoutId.unref?.();
159
+ });
160
+ promise.catch((err) => {
161
+ if (timedOut) {
162
+ debugLogger2.debug(`${name} underlying error after timeout:`, err);
163
+ }
164
+ });
165
+ return Promise.race([promise, timeout]).finally(() => {
166
+ if (timeoutId) {
167
+ clearTimeout(timeoutId);
168
+ }
169
+ });
170
+ }
171
+ __name(withTimeout, "withTimeout");
172
+ function runDeferredTask(name, task) {
173
+ recordStartupEvent("startup_prefetch_started", { name });
174
+ void Promise.resolve().then(task).then(() => {
175
+ recordStartupEvent("startup_prefetch_completed", { name });
176
+ }).catch((err) => {
177
+ recordStartupEvent("startup_prefetch_failed", { name });
178
+ debugLogger2.warn(`${name} failed:`, err);
179
+ });
180
+ }
181
+ __name(runDeferredTask, "runDeferredTask");
182
+ function startEarlyStartupPrefetches(config) {
183
+ if (earlyStarted.has(config)) return;
184
+ earlyStarted.add(config);
185
+ try {
186
+ const modelsConfig = config.getModelsConfig();
187
+ const authType = modelsConfig.getCurrentAuthType();
188
+ const resolvedBaseUrl = modelsConfig.getGenerationConfig().baseUrl;
189
+ const proxy = config.getProxy();
190
+ preconnectApi(authType, { resolvedBaseUrl, proxy });
191
+ } catch (error) {
192
+ debugLogger2.debug(
193
+ `Preconnect skipped due to error getting authType: ${error}`
194
+ );
195
+ }
196
+ }
197
+ __name(startEarlyStartupPrefetches, "startEarlyStartupPrefetches");
198
+ function startPostRenderPrefetches(config, settings, options = {}) {
199
+ if (postRenderStarted.has(config)) return;
200
+ postRenderStarted.add(config);
201
+ if (settings.merged.general?.enableAutoUpdate !== false) {
202
+ runDeferredTask("update_check", async () => {
203
+ const [{ checkForUpdates }, { handleAutoUpdate }] = await Promise.all([
204
+ import("./updateCheck-E2ZX7RL7.js"),
205
+ import("./handleAutoUpdate-HN7ZOSXY.js")
206
+ ]);
207
+ const info = await checkForUpdates();
208
+ handleAutoUpdate(info, settings, config.getProjectRoot());
209
+ });
210
+ }
211
+ if (options.connectIde && config.getIdeMode()) {
212
+ runDeferredTask("ide_connect", async () => {
213
+ appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
214
+ state: "connecting"
215
+ });
216
+ try {
217
+ const { connectIdeForStartup } = await import("./initializer-SRN3IM42.js");
218
+ await withTimeout(
219
+ connectIdeForStartup(config),
220
+ "ide_connect",
221
+ DEFERRED_IDE_CONNECT_TIMEOUT_MS
222
+ );
223
+ appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
224
+ state: "connected"
225
+ });
226
+ } catch (err) {
227
+ appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
228
+ state: "failed",
229
+ message: err instanceof Error ? err.message : String(err)
230
+ });
231
+ throw err;
232
+ }
233
+ });
234
+ }
235
+ if (options.initializeTelemetry) {
236
+ runDeferredTask("telemetry_init", () => {
237
+ initializeTelemetry(config);
238
+ });
239
+ }
240
+ if (config.isInteractive()) {
241
+ runDeferredTask("background_housekeeping", async () => {
242
+ const { startBackgroundHousekeeping } = await import("./scheduler-ZRW3AIDU.js");
243
+ startBackgroundHousekeeping(config, settings);
244
+ });
245
+ }
246
+ }
247
+ __name(startPostRenderPrefetches, "startPostRenderPrefetches");
248
+
249
+ export {
250
+ startEarlyStartupPrefetches,
251
+ startPostRenderPrefetches
252
+ };
253
+ /**
254
+ * @license
255
+ * Copyright 2026 Qwen Team
256
+ * SPDX-License-Identifier: Apache-2.0
257
+ */
258
+ /**
259
+ * @license
260
+ * Copyright 2026 Qwen Code
261
+ * SPDX-License-Identifier: Apache-2.0
262
+ */
@@ -6,7 +6,7 @@ import {
6
6
  getLanguageNameFromLocale,
7
7
  getLanguageSettingsOptions,
8
8
  t
9
- } from "./chunk-6QVRLKTZ.js";
9
+ } from "./chunk-QAKFYMJI.js";
10
10
  import {
11
11
  DEFAULT_DARK_THEME_NAME,
12
12
  DEFAULT_LIGHT_THEME_NAME
@@ -29,36 +29,37 @@ import {
29
29
  import {
30
30
  isWorkspaceTrusted,
31
31
  updateSettingsFilePreservingFormat
32
- } from "./chunk-V6NH3CUC.js";
32
+ } from "./chunk-MIG5SQNL.js";
33
33
  import {
34
34
  require_strip_json_comments
35
35
  } from "./chunk-QYUE6W3T.js";
36
36
  import {
37
37
  DEFAULT_MAX_SUBAGENT_DEPTH,
38
+ DEFAULT_MAX_TOOL_CALLS_PER_TURN,
38
39
  DEFAULT_STOP_HOOK_BLOCK_CAP,
39
40
  DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
40
41
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
41
42
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
42
43
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
43
44
  stripRuntimeSnapshotPrefix
44
- } from "./chunk-AGZF43UV.js";
45
+ } from "./chunk-YEGT55NW.js";
45
46
  import {
46
47
  require_main
47
48
  } from "./chunk-SKAZWEV5.js";
48
49
  import {
49
50
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
50
- } from "./chunk-TOAUDIS7.js";
51
+ } from "./chunk-TLWA7TPR.js";
51
52
  import {
52
53
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
53
54
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
54
- } from "./chunk-JN2VJ33O.js";
55
+ } from "./chunk-GMOWQOQQ.js";
55
56
  import {
56
57
  FatalConfigError,
57
58
  QWEN_DIR,
58
59
  Storage,
59
60
  createDebugLogger,
60
61
  getErrorMessage
61
- } from "./chunk-AVQDCKNF.js";
62
+ } from "./chunk-22MNNNXE.js";
62
63
  import {
63
64
  init_esbuild_shims
64
65
  } from "./chunk-A4BMJM77.js";
@@ -1092,6 +1093,15 @@ var SETTINGS_SCHEMA = {
1092
1093
  description: "Image-capable model used as the vision bridge: when a text-only main model receives an image, it is transcribed by this model first. Set with /model --vision. Leave empty to auto-pick a same-provider vision model.",
1093
1094
  showInDialog: true
1094
1095
  },
1096
+ modelFallbacks: {
1097
+ type: "string",
1098
+ label: "Model Fallbacks",
1099
+ category: "Model",
1100
+ requiresRestart: true,
1101
+ default: "",
1102
+ description: 'Ordered list of fallback model IDs (comma-separated, max 3) to try when the primary model hits capacity errors (429/503/529). Example: "qwen-plus,qwen-turbo". Set via CLI with --fallback-model.',
1103
+ showInDialog: true
1104
+ },
1095
1105
  voiceModel: {
1096
1106
  type: "string",
1097
1107
  label: "Voice Model",
@@ -1222,7 +1232,16 @@ var SETTINGS_SCHEMA = {
1222
1232
  category: "Model",
1223
1233
  requiresRestart: false,
1224
1234
  default: true,
1225
- description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap) still runs regardless of this setting.",
1235
+ description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap, see model.maxToolCallsPerTurn) still runs regardless of this setting.",
1236
+ showInDialog: false
1237
+ },
1238
+ maxToolCallsPerTurn: {
1239
+ type: "number",
1240
+ label: "Max Tool Calls Per Turn",
1241
+ category: "Model",
1242
+ requiresRestart: false,
1243
+ default: DEFAULT_MAX_TOOL_CALLS_PER_TURN,
1244
+ description: "Hard cap on tool calls within a single turn (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
1226
1245
  showInDialog: false
1227
1246
  },
1228
1247
  skipStartupContext: {
@@ -1886,8 +1905,8 @@ var SETTINGS_SCHEMA = {
1886
1905
  label: "Pager",
1887
1906
  category: "Tools",
1888
1907
  requiresRestart: false,
1889
- default: "cat",
1890
- description: "The pager command to use for shell output. Defaults to `cat`.",
1908
+ default: void 0,
1909
+ description: "The pager command to use for shell output. Defaults to `cat` on non-Windows platforms and unset on Windows. Set to an empty string to disable pager environment variables.",
1891
1910
  showInDialog: false
1892
1911
  },
1893
1912
  showColor: {
@@ -1941,6 +1960,16 @@ var SETTINGS_SCHEMA = {
1941
1960
  showInDialog: false,
1942
1961
  mergeStrategy: "union" /* UNION */
1943
1962
  },
1963
+ visible: {
1964
+ type: "array",
1965
+ label: "Visible Deferred Tools",
1966
+ category: "Tools",
1967
+ requiresRestart: true,
1968
+ default: void 0,
1969
+ description: "Deferred tool names made visible at startup without requiring tool_search. Listed tools appear alongside core tools in the initial session.",
1970
+ showInDialog: false,
1971
+ mergeStrategy: "union" /* UNION */
1972
+ },
1944
1973
  approvalMode: {
1945
1974
  type: "enum",
1946
1975
  label: "Tool Approval Mode",
@@ -2343,6 +2372,20 @@ var SETTINGS_SCHEMA = {
2343
2372
  description: "Settings for multi-agent collaboration features (Arena, Team, Swarm).",
2344
2373
  showInDialog: false,
2345
2374
  properties: {
2375
+ maxParallelAgents: {
2376
+ type: "number",
2377
+ label: "Max Parallel Agents",
2378
+ category: "Advanced",
2379
+ requiresRestart: true,
2380
+ default: void 0,
2381
+ minimum: 1,
2382
+ description: "Global maximum number of background sub-agents that can run concurrently. Additional background agents wait in a queue until a slot is available. Per-model limits are not supported yet.",
2383
+ showInDialog: false,
2384
+ jsonSchemaOverride: {
2385
+ type: "integer",
2386
+ minimum: 1
2387
+ }
2388
+ },
2346
2389
  displayMode: {
2347
2390
  type: "enum",
2348
2391
  label: "Display Mode",
@@ -4148,7 +4191,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
4148
4191
  if (!isQwenScopedEnvFile && excludedVars.includes(key)) {
4149
4192
  continue;
4150
4193
  }
4151
- if (!Object.hasOwn(process.env, key)) {
4194
+ const existingValue = process.env[key];
4195
+ const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4196
+ if (isEffectivelyUnset) {
4152
4197
  process.env[key] = parsedEnv[key];
4153
4198
  dotEnvSourcedKeys.add(key);
4154
4199
  }
@@ -4165,7 +4210,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
4165
4210
  if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
4166
4211
  continue;
4167
4212
  }
4168
- if (!Object.hasOwn(process.env, key) && typeof value === "string") {
4213
+ const existingValue = process.env[key];
4214
+ const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4215
+ if (isEffectivelyUnset && typeof value === "string") {
4169
4216
  process.env[key] = value;
4170
4217
  settingsEnvSourcedKeys.add(key);
4171
4218
  }
@@ -4214,7 +4261,8 @@ function reloadEnvironment(settings, workspaceCwd) {
4214
4261
  if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
4215
4262
  if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
4216
4263
  if (typeof value !== "string") continue;
4217
- if (newDotEnvKeys.has(key)) continue;
4264
+ const dotEnvValue = newDotEnvKeys.get(key);
4265
+ if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
4218
4266
  if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
4219
4267
  newSettingsEnvKeys.set(key, value);
4220
4268
  }
@@ -4239,6 +4287,7 @@ function reloadEnvironment(settings, workspaceCwd) {
4239
4287
  }
4240
4288
  }
4241
4289
  for (const [key, value] of newDotEnvKeys) {
4290
+ if (value === "" && newSettingsEnvKeys.has(key)) continue;
4242
4291
  if (process.env[key] !== value) {
4243
4292
  updatedKeys.push(key);
4244
4293
  }
@@ -4966,6 +5015,7 @@ export {
4966
5015
  resetHomeEnvBootstrapForTesting,
4967
5016
  resetEnvironmentTrackingForTesting,
4968
5017
  getHomeEnvFallbackVars,
5018
+ findEnvFiles,
4969
5019
  setUpCloudShellEnvironment,
4970
5020
  loadEnvironment,
4971
5021
  reloadEnvironment,
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-T42ACHFI.js";
5
+ } from "./chunk-7LTB54MK.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
9
- } from "./chunk-AVQDCKNF.js";
9
+ } from "./chunk-22MNNNXE.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-6BEOH4KK.js";
5
+ } from "./chunk-2NPS2UDH.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isTeamAutoMemPath
5
- } from "./chunk-MOUXUCXQ.js";
5
+ } from "./chunk-4KJ2BPIT.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-AVQDCKNF.js";
8
+ } from "./chunk-22MNNNXE.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-AVQDCKNF.js";
6
+ } from "./chunk-22MNNNXE.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-A4BMJM77.js";
@@ -858,12 +858,16 @@ var QwenIgnoreParser = class {
858
858
  if (filePath.startsWith("\\") || filePath === "/" || filePath.includes("\0")) {
859
859
  return null;
860
860
  }
861
+ const isDir = filePath.endsWith("/");
861
862
  const resolved = path2.resolve(this.projectRoot, filePath);
862
863
  const relativePath = path2.relative(this.projectRoot, resolved);
863
864
  if (relativePath === "" || !isPathWithinRoot(resolved, this.projectRoot)) {
864
865
  return null;
865
866
  }
866
- const normalizedPath = relativePath.replace(/\\/g, "/");
867
+ let normalizedPath = relativePath.replace(/\\/g, "/");
868
+ if (isDir && !normalizedPath.endsWith("/")) {
869
+ normalizedPath += "/";
870
+ }
867
871
  if (normalizedPath.startsWith("/") || normalizedPath === "") {
868
872
  return null;
869
873
  }