@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
  themeManager
5
- } from "./chunk-HTWHAN44.js";
5
+ } from "./chunk-PC4ZXHU2.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -0,0 +1,158 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/serve/daemon-metrics-ring.ts
11
+ init_esbuild_shims();
12
+ var MAX_SAMPLES_PER_WINDOW = 4096;
13
+ var DaemonMetricsRing = class {
14
+ static {
15
+ __name(this, "DaemonMetricsRing");
16
+ }
17
+ capacity;
18
+ buckets = [];
19
+ curRequests = 0;
20
+ curErrors = 0;
21
+ curDurations = [];
22
+ curPromptsCompleted = 0;
23
+ curQueueWaits = [];
24
+ curPromptDurations = [];
25
+ curLlmDurations = [];
26
+ curPipeInBytes = 0;
27
+ curPipeOutBytes = 0;
28
+ curTokensIn = 0;
29
+ curTokensOut = 0;
30
+ constructor(options) {
31
+ this.capacity = Math.max(1, Math.floor(options.capacity));
32
+ }
33
+ /** Fold one completed HTTP request into the open window. */
34
+ recordRequest(durationMs, statusCode) {
35
+ this.curRequests += 1;
36
+ if (statusCode >= 400) this.curErrors += 1;
37
+ pushCapped(this.curDurations, durationMs);
38
+ }
39
+ /** Fold one prompt's queue wait (dispatched from the per-session FIFO). */
40
+ recordPromptQueueWait(durationMs) {
41
+ pushCapped(this.curQueueWaits, durationMs);
42
+ }
43
+ /** Fold one finished prompt's end-to-end duration (also counts throughput). */
44
+ recordPromptDuration(durationMs) {
45
+ this.curPromptsCompleted += 1;
46
+ pushCapped(this.curPromptDurations, durationMs);
47
+ }
48
+ /** Fold one model round's LLM API round-trip time (from the token frame). */
49
+ recordLlmDuration(durationMs) {
50
+ pushCapped(this.curLlmDurations, durationMs);
51
+ }
52
+ /** Fold one ACP-child pipe message's payload size into the open window. */
53
+ recordPipe(direction, bytes) {
54
+ if (!Number.isFinite(bytes) || bytes < 0) return;
55
+ if (direction === "inbound") this.curPipeInBytes += bytes;
56
+ else this.curPipeOutBytes += bytes;
57
+ }
58
+ /** Fold one model turn's token usage into the open window. */
59
+ recordTokens(inputTokens, outputTokens) {
60
+ if (Number.isFinite(inputTokens) && inputTokens > 0) {
61
+ this.curTokensIn += inputTokens;
62
+ }
63
+ if (Number.isFinite(outputTokens) && outputTokens > 0) {
64
+ this.curTokensOut += outputTokens;
65
+ }
66
+ }
67
+ /**
68
+ * Seal the open window into a bucket stamped at `now` (folding in the
69
+ * gauges), append it, evict the oldest past capacity, then reset the
70
+ * accumulators for the next window.
71
+ */
72
+ sample(now, gauges) {
73
+ this.buckets.push({
74
+ t: now,
75
+ activeSessions: finiteGauge(gauges.activeSessions),
76
+ activePrompts: finiteGauge(gauges.activePrompts),
77
+ queuedPrompts: finiteGauge(gauges.queuedPrompts),
78
+ requests: this.curRequests,
79
+ errors: this.curErrors,
80
+ latencyP50Ms: percentile(this.curDurations, 0.5),
81
+ latencyP95Ms: percentile(this.curDurations, 0.95),
82
+ promptsCompleted: this.curPromptsCompleted,
83
+ promptQueueWaitP95Ms: percentile(this.curQueueWaits, 0.95),
84
+ promptDurationP95Ms: percentile(this.curPromptDurations, 0.95),
85
+ llmApiP50Ms: percentile(this.curLlmDurations, 0.5),
86
+ llmApiP95Ms: percentile(this.curLlmDurations, 0.95),
87
+ cpuPercent: finiteGauge(gauges.cpuPercent),
88
+ rssBytes: finiteGauge(gauges.rssBytes),
89
+ heapUsedBytes: finiteGauge(gauges.heapUsedBytes),
90
+ eventLoopLagP99Ms: finiteGauge(gauges.eventLoopLagP99Ms),
91
+ pipeInBytes: this.curPipeInBytes,
92
+ pipeOutBytes: this.curPipeOutBytes,
93
+ sseConnections: finiteGauge(gauges.sseConnections),
94
+ wsConnections: finiteGauge(gauges.wsConnections),
95
+ acpConnections: finiteGauge(gauges.acpConnections),
96
+ rateLimitRejected: finiteGauge(gauges.rateLimitRejected),
97
+ tokensIn: this.curTokensIn,
98
+ tokensOut: this.curTokensOut,
99
+ childCpuPercent: finiteGauge(gauges.childCpuPercent),
100
+ childRssBytes: finiteGauge(gauges.childRssBytes)
101
+ });
102
+ if (this.buckets.length > this.capacity) {
103
+ this.buckets.splice(0, this.buckets.length - this.capacity);
104
+ }
105
+ this.curRequests = 0;
106
+ this.curErrors = 0;
107
+ this.curDurations.length = 0;
108
+ this.curPromptsCompleted = 0;
109
+ this.curQueueWaits.length = 0;
110
+ this.curPromptDurations.length = 0;
111
+ this.curLlmDurations.length = 0;
112
+ this.curPipeInBytes = 0;
113
+ this.curPipeOutBytes = 0;
114
+ this.curTokensIn = 0;
115
+ this.curTokensOut = 0;
116
+ }
117
+ /** Oldest→newest copy of the retained buckets (safe to serialize). */
118
+ snapshot() {
119
+ return this.buckets.slice();
120
+ }
121
+ };
122
+ function computeCpuPercent(prev, cur, elapsedMs, coreCount) {
123
+ if (!prev || !cur || elapsedMs <= 0) return 0;
124
+ const cpuUs = cur.user - prev.user + (cur.system - prev.system);
125
+ return Math.min(
126
+ 100,
127
+ Math.max(0, cpuUs / (elapsedMs * 1e3) * 100 / coreCount)
128
+ );
129
+ }
130
+ __name(computeCpuPercent, "computeCpuPercent");
131
+ function finiteGauge(value) {
132
+ return Number.isFinite(value) ? value : 0;
133
+ }
134
+ __name(finiteGauge, "finiteGauge");
135
+ function pushCapped(target, value) {
136
+ if (Number.isFinite(value) && value >= 0 && target.length < MAX_SAMPLES_PER_WINDOW) {
137
+ target.push(value);
138
+ }
139
+ }
140
+ __name(pushCapped, "pushCapped");
141
+ function percentile(samples, q) {
142
+ if (samples.length === 0) return 0;
143
+ const sorted = samples.slice().sort((a, b) => a - b);
144
+ const rank = Math.ceil(q * sorted.length);
145
+ const idx = Math.min(sorted.length - 1, Math.max(0, rank - 1));
146
+ return sorted[idx];
147
+ }
148
+ __name(percentile, "percentile");
149
+
150
+ export {
151
+ DaemonMetricsRing,
152
+ computeCpuPercent
153
+ };
154
+ /**
155
+ * @license
156
+ * Copyright 2026 Qwen Team
157
+ * SPDX-License-Identifier: Apache-2.0
158
+ */
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  formatFetchErrorForUser
5
- } from "./chunk-GLPV75ES.js";
5
+ } from "./chunk-AHNJGLFV.js";
6
6
  import {
7
7
  openBrowserSecurely
8
8
  } from "./chunk-22IFUCVR.js";
9
9
  import {
10
10
  atomicWriteFile
11
- } from "./chunk-T42ACHFI.js";
11
+ } from "./chunk-7LTB54MK.js";
12
12
  import {
13
13
  combineAbortSignals
14
14
  } from "./chunk-64WXLC72.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-AVQDCKNF.js";
18
+ } from "./chunk-22MNNNXE.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";
@@ -5,17 +5,17 @@ import {
5
5
  } from "./chunk-6IAWPIQ6.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-CEYA7K7C.js";
8
+ } from "./chunk-STAZRKOT.js";
9
9
  import {
10
10
  STATUS_SCHEMA_VERSION
11
- } from "./chunk-7Z6UEJA4.js";
11
+ } from "./chunk-JF7DFPQ5.js";
12
12
  import {
13
13
  writeStderrLine
14
14
  } from "./chunk-Y6Z2O3WR.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-AGZF43UV.js";
18
+ } from "./chunk-YEGT55NW.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";
@@ -6,26 +6,26 @@ import {
6
6
  parseAcpBaseModelId,
7
7
  resolveCliGenerationConfig,
8
8
  sanitizeProviderBaseUrl
9
- } from "./chunk-SOT7OMGL.js";
9
+ } from "./chunk-4ZJIPVPB.js";
10
10
  import {
11
11
  loadSettings
12
- } from "./chunk-CEYA7K7C.js";
12
+ } from "./chunk-STAZRKOT.js";
13
13
  import {
14
14
  STATUS_SCHEMA_VERSION
15
- } from "./chunk-7Z6UEJA4.js";
15
+ } from "./chunk-JF7DFPQ5.js";
16
16
  import {
17
17
  ModelsConfig,
18
18
  resolveProviderProtocol
19
- } from "./chunk-AGZF43UV.js";
19
+ } from "./chunk-YEGT55NW.js";
20
20
  import {
21
21
  APPROVAL_MODES
22
- } from "./chunk-LM3YCCZJ.js";
22
+ } from "./chunk-VEB3NYSO.js";
23
23
  import {
24
24
  tokenLimit
25
- } from "./chunk-KYTQOCDE.js";
25
+ } from "./chunk-HW4N45EE.js";
26
26
  import {
27
27
  createDebugLogger
28
- } from "./chunk-AVQDCKNF.js";
28
+ } from "./chunk-22MNNNXE.js";
29
29
  import {
30
30
  init_esbuild_shims
31
31
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-AGZF43UV.js";
5
+ } from "./chunk-YEGT55NW.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -67,7 +67,10 @@ var SERVE_STATUS_EXT_METHODS = {
67
67
  sessionRewindSnapshots: "qwen/status/session/rewind_snapshots",
68
68
  workspaceHooks: "qwen/status/workspace/hooks",
69
69
  sessionHooks: "qwen/status/session/hooks",
70
- workspaceExtensions: "qwen/status/workspace/extensions"
70
+ workspaceExtensions: "qwen/status/workspace/extensions",
71
+ // Process-wide rss/cpu of this ACP child, self-reported to the daemon for
72
+ // the Daemon Status resource charts (workspace-scoped; no sessionId).
73
+ workspaceResource: "qwen/status/workspace/resource"
71
74
  };
72
75
  var SERVE_CONTROL_EXT_METHODS = {
73
76
  sessionClose: "qwen/control/session/close",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-ZO5EA3XJ.js";
5
+ } from "./chunk-4UCTWSTP.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -0,0 +1,115 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // node_modules/get-east-asian-width/index.js
11
+ init_esbuild_shims();
12
+
13
+ // node_modules/get-east-asian-width/lookup.js
14
+ init_esbuild_shims();
15
+
16
+ // node_modules/get-east-asian-width/lookup-data.js
17
+ init_esbuild_shims();
18
+ var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
19
+ var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
20
+ var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
21
+ var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
22
+ var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
23
+
24
+ // node_modules/get-east-asian-width/utilities.js
25
+ init_esbuild_shims();
26
+ var isInRange = /* @__PURE__ */ __name((ranges, codePoint) => {
27
+ let low = 0;
28
+ let high = Math.floor(ranges.length / 2) - 1;
29
+ while (low <= high) {
30
+ const mid = Math.floor((low + high) / 2);
31
+ const i = mid * 2;
32
+ if (codePoint < ranges[i]) {
33
+ high = mid - 1;
34
+ } else if (codePoint > ranges[i + 1]) {
35
+ low = mid + 1;
36
+ } else {
37
+ return true;
38
+ }
39
+ }
40
+ return false;
41
+ }, "isInRange");
42
+
43
+ // node_modules/get-east-asian-width/lookup.js
44
+ var minimumAmbiguousCodePoint = ambiguousRanges[0];
45
+ var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
46
+ var minimumFullWidthCodePoint = fullwidthRanges[0];
47
+ var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
48
+ var minimumHalfWidthCodePoint = halfwidthRanges[0];
49
+ var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
50
+ var minimumNarrowCodePoint = narrowRanges[0];
51
+ var maximumNarrowCodePoint = narrowRanges.at(-1);
52
+ var minimumWideCodePoint = wideRanges[0];
53
+ var maximumWideCodePoint = wideRanges.at(-1);
54
+ var commonCjkCodePoint = 19968;
55
+ var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
56
+ function findWideFastPathRange(ranges) {
57
+ let fastPathStart = ranges[0];
58
+ let fastPathEnd = ranges[1];
59
+ for (let index = 0; index < ranges.length; index += 2) {
60
+ const start = ranges[index];
61
+ const end = ranges[index + 1];
62
+ if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
63
+ return [start, end];
64
+ }
65
+ if (end - start > fastPathEnd - fastPathStart) {
66
+ fastPathStart = start;
67
+ fastPathEnd = end;
68
+ }
69
+ }
70
+ return [fastPathStart, fastPathEnd];
71
+ }
72
+ __name(findWideFastPathRange, "findWideFastPathRange");
73
+ var isAmbiguous = /* @__PURE__ */ __name((codePoint) => {
74
+ if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
75
+ return false;
76
+ }
77
+ return isInRange(ambiguousRanges, codePoint);
78
+ }, "isAmbiguous");
79
+ var isFullWidth = /* @__PURE__ */ __name((codePoint) => {
80
+ if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
81
+ return false;
82
+ }
83
+ return isInRange(fullwidthRanges, codePoint);
84
+ }, "isFullWidth");
85
+ var isWide = /* @__PURE__ */ __name((codePoint) => {
86
+ if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
87
+ return true;
88
+ }
89
+ if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
90
+ return false;
91
+ }
92
+ return isInRange(wideRanges, codePoint);
93
+ }, "isWide");
94
+
95
+ // node_modules/get-east-asian-width/index.js
96
+ function validate(codePoint) {
97
+ if (!Number.isSafeInteger(codePoint)) {
98
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
99
+ }
100
+ }
101
+ __name(validate, "validate");
102
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
103
+ validate(codePoint);
104
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
105
+ return 2;
106
+ }
107
+ return 1;
108
+ }
109
+ __name(eastAsianWidth, "eastAsianWidth");
110
+
111
+ export {
112
+ isFullWidth,
113
+ isWide,
114
+ eastAsianWidth
115
+ };
@@ -8,17 +8,17 @@ import {
8
8
  } from "./chunk-MX2YXRER.js";
9
9
  import {
10
10
  loadSettings
11
- } from "./chunk-CEYA7K7C.js";
11
+ } from "./chunk-STAZRKOT.js";
12
12
  import {
13
13
  DEFAULT_RING_SIZE
14
- } from "./chunk-ALX6BUYW.js";
14
+ } from "./chunk-G7ZG7CA6.js";
15
15
  import {
16
16
  writeStderrLine
17
17
  } from "./chunk-Y6Z2O3WR.js";
18
18
  import {
19
19
  MCP_BUDGET_WARN_FRACTION,
20
20
  parsePositiveIntegerEnv
21
- } from "./chunk-AGZF43UV.js";
21
+ } from "./chunk-YEGT55NW.js";
22
22
  import {
23
23
  openBrowserSecurely,
24
24
  shouldLaunchBrowser
@@ -66,6 +66,10 @@ async function maybeOpenWebShellBrowser(handle, open) {
66
66
  }
67
67
  }
68
68
  __name(maybeOpenWebShellBrowser, "maybeOpenWebShellBrowser");
69
+ function primaryWorkspaceArg(workspace) {
70
+ return Array.isArray(workspace) ? workspace[0] : workspace;
71
+ }
72
+ __name(primaryWorkspaceArg, "primaryWorkspaceArg");
69
73
  var serveCommand = {
70
74
  command: "serve",
71
75
  describe: "Run Qwen Code as a local HTTP daemon (Stage 1 experimental: --http-bridge)",
@@ -90,6 +94,8 @@ var serveCommand = {
90
94
  description: "Per-session cap on accepted prompts waiting or running. New prompts beyond this return 503. Set to 0 to disable."
91
95
  }).option("workspace", {
92
96
  type: "string",
97
+ array: true,
98
+ requiresArg: true,
93
99
  description: "Absolute workspace path this daemon binds to. POST /session requests with a mismatched cwd return 400 workspace_mismatch. Defaults to process.cwd() when omitted. For multi-workspace deployments, run one `qwen serve` per workspace on separate ports (or behind an external orchestrator)."
94
100
  }).option("max-connections", {
95
101
  type: "number",
@@ -235,7 +241,9 @@ var serveCommand = {
235
241
  );
236
242
  }
237
243
  try {
238
- const loaded = loadSettings(argv.workspace ?? process.cwd());
244
+ const loaded = loadSettings(
245
+ primaryWorkspaceArg(argv.workspace) ?? process.cwd()
246
+ );
239
247
  const merged = loaded.merged;
240
248
  const approvalMode = merged.tools?.approvalMode;
241
249
  const sandbox = merged.tools?.sandbox;
@@ -279,7 +287,7 @@ var serveCommand = {
279
287
  process.exit(1);
280
288
  }
281
289
  }
282
- const { runQwenServe } = await import("./run-qwen-serve-FADLRJUN.js");
290
+ const { runQwenServe } = await import("./run-qwen-serve-5OKADVLE.js");
283
291
  try {
284
292
  const handle = await runQwenServe({
285
293
  port: argv.port,
@@ -11,15 +11,15 @@ import {
11
11
  } from "./chunk-QYUE6W3T.js";
12
12
  import {
13
13
  ideContextStore
14
- } from "./chunk-AGZF43UV.js";
14
+ } from "./chunk-YEGT55NW.js";
15
15
  import {
16
16
  atomicWriteFileSync
17
- } from "./chunk-T42ACHFI.js";
17
+ } from "./chunk-7LTB54MK.js";
18
18
  import {
19
19
  FatalConfigError,
20
20
  Storage,
21
21
  getErrorMessage
22
- } from "./chunk-AVQDCKNF.js";
22
+ } from "./chunk-22MNNNXE.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  registerCleanup
5
- } from "./chunk-ZO5EA3XJ.js";
5
+ } from "./chunk-4UCTWSTP.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  Storage
5
- } from "./chunk-AVQDCKNF.js";
5
+ } from "./chunk-22MNNNXE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -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";
@@ -97,7 +97,33 @@ ${body}
97
97
  `;
98
98
  }
99
99
  __name(buildSkillLlmContent, "buildSkillLlmContent");
100
+ var collectCache = /* @__PURE__ */ new WeakMap();
101
+ var COLLECT_CACHE_TTL_MS = 2e3;
102
+ function clearCollectedSkillEntriesCache(skillManager) {
103
+ if (skillManager) {
104
+ collectCache.delete(skillManager);
105
+ } else {
106
+ collectCache = /* @__PURE__ */ new WeakMap();
107
+ }
108
+ }
109
+ __name(clearCollectedSkillEntriesCache, "clearCollectedSkillEntriesCache");
100
110
  async function collectAvailableSkillEntries(skillManager, config) {
111
+ const cached = collectCache.get(skillManager);
112
+ if (cached && Date.now() - cached.ts < COLLECT_CACHE_TTL_MS) {
113
+ return cached.promise;
114
+ }
115
+ const promise = collectAvailableSkillEntriesUncached(skillManager, config);
116
+ collectCache.set(skillManager, { promise, ts: Date.now() });
117
+ promise.catch(() => {
118
+ const entry = collectCache.get(skillManager);
119
+ if (entry?.promise === promise) {
120
+ collectCache.delete(skillManager);
121
+ }
122
+ });
123
+ return promise;
124
+ }
125
+ __name(collectAvailableSkillEntries, "collectAvailableSkillEntries");
126
+ async function collectAvailableSkillEntriesUncached(skillManager, config) {
101
127
  const allSkills = await skillManager.listSkills();
102
128
  const disabledNames = config.getDisabledSkillNames();
103
129
  const isDisabled = /* @__PURE__ */ __name((name) => disabledNames.has(name.toLowerCase()), "isDisabled");
@@ -136,7 +162,7 @@ async function collectAvailableSkillEntries(skillManager, config) {
136
162
  entries
137
163
  };
138
164
  }
139
- __name(collectAvailableSkillEntries, "collectAvailableSkillEntries");
165
+ __name(collectAvailableSkillEntriesUncached, "collectAvailableSkillEntriesUncached");
140
166
  function compareSkillEntries(a, b) {
141
167
  const aGroup = a.level !== void 0 ? 0 : 1;
142
168
  const bGroup = b.level !== void 0 ? 0 : 1;
@@ -247,6 +273,7 @@ export {
247
273
  escapeXml,
248
274
  escapeSystemReminderTags,
249
275
  buildSkillLlmContent,
276
+ clearCollectedSkillEntriesCache,
250
277
  collectAvailableSkillEntries,
251
278
  renderAvailableSkillsBlock,
252
279
  applySkillAllowedTools,
@@ -5,19 +5,19 @@ import {
5
5
  } from "./chunk-3GONHQOA.js";
6
6
  import {
7
7
  getErrorMessage
8
- } from "./chunk-OIFSBXSP.js";
8
+ } from "./chunk-FRFFNYUY.js";
9
9
  import {
10
10
  loadSettings
11
- } from "./chunk-CEYA7K7C.js";
11
+ } from "./chunk-STAZRKOT.js";
12
12
  import {
13
13
  getCurrentLanguage,
14
14
  initializeI18n,
15
15
  resolveLanguageSetting,
16
16
  t
17
- } from "./chunk-6QVRLKTZ.js";
17
+ } from "./chunk-QAKFYMJI.js";
18
18
  import {
19
19
  isWorkspaceTrusted
20
- } from "./chunk-V6NH3CUC.js";
20
+ } from "./chunk-MIG5SQNL.js";
21
21
  import {
22
22
  writeStderrLine,
23
23
  writeStdoutLine
@@ -29,7 +29,7 @@ import {
29
29
  redactUrlCredentials,
30
30
  require_prompts,
31
31
  stripAnsi
32
- } from "./chunk-AGZF43UV.js";
32
+ } from "./chunk-YEGT55NW.js";
33
33
  import {
34
34
  init_esbuild_shims
35
35
  } from "./chunk-A4BMJM77.js";