@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260717.f8e6e8931

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 (275) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +7 -6
  2. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +53 -17
  5. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  6. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  7. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  8. package/bundled/qc-helper/docs/qwen-serve.md +53 -46
  9. package/bundled/review/SKILL.md +163 -403
  10. package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-JGTP7YJQ.js} +13 -13
  11. package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-2XQDOYZ5.js} +27 -27
  12. package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-RXRJA7GD.js} +1135 -373
  13. package/chunks/{agent-Z7NWL6XL.js → agent-UQP53UWQ.js} +10 -10
  14. package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-I52OXDCK.js} +10 -10
  15. package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-HBRXJSP4.js} +76 -14
  16. package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-MIZLXBLF.js} +1 -1
  17. package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-XMJVPNWM.js} +1 -1
  18. package/chunks/{bridge-XFKW6S7Q.js → bridge-3DVRNBSF.js} +14 -16
  19. package/chunks/{ca-C2JTT2N5.js → ca-CODEN7TD.js} +5 -0
  20. package/chunks/channel-worker-group-SOUWTFHC.js +21 -0
  21. package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-LOVSV3WW.js} +34 -10
  22. package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-XW6MHJBQ.js} +6 -4
  23. package/chunks/{chunk-BBNVFRGD.js → chunk-3DWIFU7L.js} +1 -1
  24. package/chunks/{chunk-ZQTZXVHP.js → chunk-3KSHYS4T.js} +4 -18
  25. package/chunks/{chunk-ZKMGAFYV.js → chunk-3LS57JZI.js} +1 -1
  26. package/chunks/{chunk-B5I2IIWY.js → chunk-46Y6SSQ7.js} +5 -5
  27. package/chunks/{chunk-GDQQRV43.js → chunk-4BJVSIS3.js} +2 -2
  28. package/chunks/{chunk-L37RC7MQ.js → chunk-4HTHLSIH.js} +1 -1
  29. package/chunks/{chunk-DPFBNG72.js → chunk-4UBEB74N.js} +1 -1
  30. package/chunks/{chunk-AAR5SGMD.js → chunk-4YR7FSAM.js} +7 -5
  31. package/chunks/{chunk-OATTJGPJ.js → chunk-5CNYZ7TN.js} +7 -7
  32. package/chunks/{chunk-JSJFKYWT.js → chunk-5VWYKIMW.js} +1 -1
  33. package/chunks/{chunk-6GETGQWP.js → chunk-5WWYHNAH.js} +39 -10
  34. package/chunks/{chunk-65N2J6V2.js → chunk-6ANLV27M.js} +2 -2
  35. package/chunks/{chunk-L62SEJWY.js → chunk-6RV42SFP.js} +4 -4
  36. package/chunks/{chunk-XXJKGHZV.js → chunk-6VMOP2Z7.js} +4 -4
  37. package/chunks/{chunk-URU5UEK6.js → chunk-6WGZDD67.js} +135 -68
  38. package/chunks/{chunk-7NAWTFVY.js → chunk-6WPJRYLZ.js} +2 -2
  39. package/chunks/chunk-6WVLHULT.js +59 -0
  40. package/chunks/{chunk-N6FXRR6P.js → chunk-7ZFXHKKZ.js} +1 -1
  41. package/chunks/{chunk-E67NFMF4.js → chunk-A2HWMJVO.js} +35 -1
  42. package/chunks/{chunk-4FMG7EDJ.js → chunk-AEKHQ3E5.js} +77 -11
  43. package/chunks/{chunk-WIASPMLX.js → chunk-AH3YAJU6.js} +22 -33
  44. package/chunks/{chunk-6GKMJPOC.js → chunk-AHAH5H6D.js} +3 -3
  45. package/chunks/{chunk-3XJFUTNM.js → chunk-AVAU67KP.js} +57 -10
  46. package/chunks/{chunk-LNUXFLLJ.js → chunk-BDHYJ2MM.js} +53 -5
  47. package/chunks/{chunk-P6LART6G.js → chunk-BTSE2DUP.js} +957 -122
  48. package/chunks/{chunk-7MJAZMXK.js → chunk-BZ5D7OVV.js} +28 -77
  49. package/chunks/{chunk-WDWJ4OQJ.js → chunk-CC2UASQ4.js} +3 -3
  50. package/chunks/{chunk-WLXYAKV7.js → chunk-D7KYA6EY.js} +3 -3
  51. package/chunks/{chunk-5LROA5W4.js → chunk-DD45XVOQ.js} +3 -3
  52. package/chunks/{chunk-H3FQOPPS.js → chunk-DOPUYNXO.js} +2 -2
  53. package/chunks/{chunk-SPUYQB4T.js → chunk-DPXB3XRN.js} +1 -1
  54. package/chunks/{chunk-XLIRF7IK.js → chunk-E7ECGLZW.js} +1 -1
  55. package/chunks/{chunk-RDRVMDWV.js → chunk-EMJJBXS7.js} +10 -10
  56. package/chunks/{chunk-TXY2C3D2.js → chunk-F333XEAU.js} +1 -1
  57. package/chunks/chunk-FEOZBUMT.js +77 -0
  58. package/chunks/{chunk-YYPXHMWO.js → chunk-FEYHXPZG.js} +4 -4
  59. package/chunks/{chunk-ZRKBI3DP.js → chunk-FNX3LGAK.js} +1 -1
  60. package/chunks/chunk-FXK3QMRD.js +140 -0
  61. package/chunks/{chunk-422XAKCK.js → chunk-G5ZKRK2E.js} +2 -2
  62. package/chunks/{chunk-DK33QJ3V.js → chunk-GCRFH57X.js} +732 -13
  63. package/chunks/{chunk-EQY6POVO.js → chunk-GLEJW7T2.js} +1 -1
  64. package/chunks/{chunk-FXMC7SL2.js → chunk-I6NOSIVF.js} +1 -1
  65. package/chunks/{chunk-VBRRNQB7.js → chunk-IHJRUIWN.js} +109 -22
  66. package/chunks/{chunk-F7NXQH4Y.js → chunk-IIXEI2VE.js} +1 -1
  67. package/chunks/{chunk-2UUAIFQO.js → chunk-JGUT3LWZ.js} +5 -0
  68. package/chunks/{chunk-5EBKKSBX.js → chunk-JY74T7PW.js} +1 -1
  69. package/chunks/chunk-KSZKSE23.js +226 -0
  70. package/chunks/{chunk-MO7O5722.js → chunk-KW46DBFM.js} +35 -2
  71. package/chunks/{chunk-TISZXPAX.js → chunk-L263ROM6.js} +1 -1
  72. package/chunks/chunk-LXXMOYPL.js +22 -0
  73. package/chunks/{chunk-YX4LLZ3D.js → chunk-NABT4VOY.js} +109 -35
  74. package/chunks/{chunk-W34A5MJH.js → chunk-NROLDLP4.js} +1 -1
  75. package/chunks/{chunk-V7EQTZYR.js → chunk-O3WCEZEN.js} +191 -44
  76. package/chunks/{chunk-K4PZ5F5T.js → chunk-OWT2CAEQ.js} +1 -1
  77. package/chunks/{chunk-4YWLED2A.js → chunk-PNCWEDF6.js} +7 -4
  78. package/chunks/{chunk-WDW64OW3.js → chunk-PSDTLRAV.js} +5 -5
  79. package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
  80. package/chunks/{chunk-K7CRWKOE.js → chunk-R6AO7HBQ.js} +4617 -4012
  81. package/chunks/{chunk-6OATMEYN.js → chunk-RTV5TUYB.js} +12 -4
  82. package/chunks/{chunk-6W6DI34P.js → chunk-SE6GSFAO.js} +159 -2
  83. package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
  84. package/chunks/chunk-T4TZQJ7W.js +48 -0
  85. package/chunks/{chunk-LTNI523B.js → chunk-T7CZYIAU.js} +28 -5
  86. package/chunks/{chunk-3MX7D6QN.js → chunk-TIOE2OPE.js} +32 -4
  87. package/chunks/{chunk-TTUO4DNG.js → chunk-UF6ZTWU5.js} +75 -710
  88. package/chunks/{chunk-Q5GLXH5Q.js → chunk-UJG4VV2O.js} +5 -5
  89. package/chunks/{chunk-CJFNEBYB.js → chunk-VFEZWI6F.js} +1 -1
  90. package/chunks/{chunk-UFOKA4PR.js → chunk-VHCSIMTF.js} +114 -4
  91. package/chunks/{chunk-TQBODCFD.js → chunk-VRR65QYW.js} +250 -2
  92. package/chunks/{chunk-CUUXANEQ.js → chunk-W6J7RSCK.js} +6 -1
  93. package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
  94. package/chunks/{chunk-WX6SD4IQ.js → chunk-WTNZ6DXB.js} +1 -1
  95. package/chunks/{chunk-GGJII3FM.js → chunk-WZJELXEU.js} +92 -3
  96. package/chunks/{chunk-OFEVHGVU.js → chunk-X5HZX4EP.js} +9 -11
  97. package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
  98. package/chunks/{chunk-7L4XBYVW.js → chunk-XK42MWWO.js} +9 -2
  99. package/chunks/{chunk-X362TMXZ.js → chunk-XQDPCQ3A.js} +7 -5
  100. package/chunks/{chunk-YU56QGXX.js → chunk-Y3TNSHKF.js} +1 -1
  101. package/chunks/{chunk-HHEFI4RP.js → chunk-YOJGIRTD.js} +714 -109
  102. package/chunks/{chunk-CEW4HDPK.js → chunk-ZK4AMPKI.js} +2459 -350
  103. package/chunks/{chunk-SXU3KKNI.js → chunk-ZQIYGQCG.js} +251 -54
  104. package/chunks/{computer-use-IYTX45WA.js → computer-use-LTW3VB6L.js} +10 -10
  105. package/chunks/{config-utils-CFT33LTP.js → config-utils-IQQT3GCI.js} +3 -3
  106. package/chunks/{contextCommand-272V77WU.js → contextCommand-GLMC6CTP.js} +12 -12
  107. package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-EAB2U5XW.js} +1 -1
  108. package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-YMWQAWSN.js} +10 -10
  109. package/chunks/{cron-create-36TIFKRT.js → cron-create-GMVKSXZT.js} +1 -1
  110. package/chunks/{cron-delete-OQD3WULU.js → cron-delete-VDZKUAVK.js} +1 -1
  111. package/chunks/{cron-list-4533T2FH.js → cron-list-UG7C7RAR.js} +1 -1
  112. package/chunks/{daemon-RNGFPMAB.js → daemon-PRB64RP5.js} +303 -71
  113. package/chunks/{daemon-status-provider-L4STG5VO.js → daemon-status-provider-5OMM5JHF.js} +19 -20
  114. package/chunks/{de-2VCDRDGU.js → de-NOXPCSYN.js} +5 -0
  115. package/chunks/{dist-ERCPDVA6.js → dist-4WCQEZIN.js} +4 -51
  116. package/chunks/{dist-MOEC47TR.js → dist-DOPL5LSQ.js} +1 -1
  117. package/chunks/{dist-JZE7F6YR.js → dist-GXJVCOS7.js} +1 -1
  118. package/chunks/{dist-PHEPJLXD.js → dist-PX2ERZ6I.js} +2 -2
  119. package/chunks/{dist-HNN7DR2L.js → dist-V2YVLYOW.js} +58 -30
  120. package/chunks/{dist-3V3ZV6ML.js → dist-VYWUKURL.js} +1 -1
  121. package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-A3WSRN4T.js} +10 -10
  122. package/chunks/{edit-OMAF2QDR.js → edit-7PG4AH27.js} +10 -10
  123. package/chunks/{en-NJCA3TAA.js → en-JFVULHTB.js} +6 -0
  124. package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-QUSB44RE.js} +10 -10
  125. package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-NVSIEL7X.js} +10 -10
  126. package/chunks/{environment-7TEWMJYN.js → environment-AHHXHQTI.js} +12 -12
  127. package/chunks/{errors-I4VKVX3F.js → errors-NSWSRXC7.js} +12 -12
  128. package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-FXYEYHPL.js} +10 -10
  129. package/chunks/{exitPlanMode-IHCJ5EEI.js → exitPlanMode-JI5GK3F6.js} +10 -10
  130. package/chunks/{fast-path-ZA57TOH4.js → fast-path-X7EVDLKZ.js} +2 -2
  131. package/chunks/{fr-5F3E7WKD.js → fr-HVFNU42H.js} +5 -0
  132. package/chunks/{gemini-UOAKVXBG.js → gemini-YRLHY5KS.js} +162 -206
  133. package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-SPLFPV5E.js} +1 -1
  134. package/chunks/{glob-4GJQ2UFF.js → glob-WASUBCSA.js} +10 -10
  135. package/chunks/{grep-5QSYXF2E.js → grep-DUVG3NGA.js} +10 -10
  136. package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-NGE5AQ2N.js} +14 -14
  137. package/chunks/{i18n-CYDUTF6F.js → i18n-QNVR36NB.js} +11 -11
  138. package/chunks/{initializer-NRFKUGIO.js → initializer-ZY7ORPMH.js} +15 -15
  139. package/chunks/{installationInfo-WELKRHHE.js → installationInfo-4R75MFTB.js} +11 -11
  140. package/chunks/{ja-66J6B53L.js → ja-PY5AF544.js} +5 -0
  141. package/chunks/{list-JVDXEG2E.js → list-36JCMZRS.js} +18 -18
  142. package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-PQIOJUSJ.js} +15 -15
  143. package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-QXWZSCYM.js} +2 -2
  144. package/chunks/{ls-RXNIAQDE.js → ls-2OUTG3IZ.js} +1 -1
  145. package/chunks/{lsp-HB5LM5IL.js → lsp-4VMNXZW6.js} +1 -1
  146. package/chunks/{mcp-YHOZN3ZM.js → mcp-QXY6XA6H.js} +15 -15
  147. package/chunks/{monitor-R7XZPJHQ.js → monitor-AVEKRSY3.js} +12 -11
  148. package/chunks/{nonInteractiveCli-NSOB6D74.js → nonInteractiveCli-YWIBKX4M.js} +50 -50
  149. package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-4SBTJX72.js} +10 -10
  150. package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-4EBAO7LR.js} +8 -8
  151. package/chunks/{pidfile-XE4RRR2P.js → pidfile-JMIUPXSU.js} +10 -10
  152. package/chunks/processUtils-EOINMEIH.js +29 -0
  153. package/chunks/{pt-TFZO5Y6T.js → pt-A3PRQXMU.js} +5 -0
  154. package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-M7UBL3JS.js} +12 -12
  155. package/chunks/{read-file-XSUWXSR7.js → read-file-DXSEFHCV.js} +5 -5
  156. package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-JUFHCKSC.js} +1 -1
  157. package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-DWSMBXYY.js} +1 -1
  158. package/chunks/{ripGrep-APB3CDMU.js → ripGrep-VTRVFMDJ.js} +10 -10
  159. package/chunks/{ru-4L4LFHIT.js → ru-IBCWUTOC.js} +5 -0
  160. package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-P7WQDZAS.js} +59 -38
  161. package/chunks/{runtime-EIO3NQKR.js → runtime-UHYO6JGN.js} +19 -19
  162. package/chunks/{scheduler-JJDZBDRN.js → scheduler-WTK7ZLV5.js} +10 -10
  163. package/chunks/{send-message-SR4WSXP2.js → send-message-JZ752NWD.js} +2 -2
  164. package/chunks/{serve-WTIPB3EI.js → serve-AG2AOG56.js} +15 -15
  165. package/chunks/{server-NJPHQHLH.js → server-G5MM2BRI.js} +1157 -225
  166. package/chunks/{session-O4AO7FTS.js → session-NUAGEMVS.js} +51 -51
  167. package/chunks/{settings-HQNDK7TG.js → settings-VQA5PR2M.js} +14 -14
  168. package/chunks/{shell-UIXM6PWG.js → shell-X33RWGLP.js} +12 -10
  169. package/chunks/{skill-3XMB4ULV.js → skill-PHSU2OPP.js} +5 -5
  170. package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-D6TZN4W7.js} +12 -13
  171. package/chunks/{src-USZKPUOC.js → src-6OJFUPTL.js} +95 -34
  172. package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-ZARRW44Y.js} +12 -12
  173. package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-C6IZRTF3.js} +176 -158
  174. package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-LELY6HAI.js} +2 -2
  175. package/chunks/{task-create-NUFOHU53.js → task-create-QY3BIMNM.js} +3 -3
  176. package/chunks/{task-list-Z2IKQY3S.js → task-list-D2U47WBJ.js} +1 -1
  177. package/chunks/{task-stop-KQFIVQTJ.js → task-stop-N6E5IYLH.js} +1 -1
  178. package/chunks/{task-update-HKADXSTD.js → task-update-HJCQILLB.js} +3 -3
  179. package/chunks/{team-create-XXPRF3IQ.js → team-create-H434NQP2.js} +10 -10
  180. package/chunks/{team-delete-SDNTGZLG.js → team-delete-RCWYDRF4.js} +1 -1
  181. package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-IIOHXZU6.js} +10 -10
  182. package/chunks/{theme-manager-P6UITO2L.js → theme-manager-IEOPHMX6.js} +10 -10
  183. package/chunks/{todoWrite-YNXB27GB.js → todoWrite-FKCGATPJ.js} +1 -1
  184. package/chunks/{tool-search-DDNGK2LR.js → tool-search-WIIEDALL.js} +6 -6
  185. package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-WU3DORRW.js} +15 -17
  186. package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-JVUTUAJ3.js} +11 -11
  187. package/chunks/update-relaunch-X5EQKCH5.js +87 -0
  188. package/chunks/{updateCheck-QTVVISH7.js → updateCheck-TGO2X735.js} +14 -12
  189. package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-2MEUL2ME.js} +46 -46
  190. package/chunks/{version-U45RYOSD.js → version-KBGQKZWV.js} +1 -1
  191. package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-CFCWTCAP.js} +2 -3
  192. package/chunks/{workflow-TCIAQYOA.js → workflow-PAOSF4CG.js} +11 -11
  193. package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-AYHJYSVO.js} +18 -18
  194. package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-GZMR53QL.js} +1 -1
  195. package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-C2IXZWPF.js} +15 -17
  196. package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-KDDAW33F.js} +20 -21
  197. package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-WWEZBZXY.js} +16 -16
  198. package/chunks/{write-file-JGRQR5VM.js → write-file-ACN3TAIX.js} +10 -10
  199. package/chunks/{zh-FSAH32JB.js → zh-PAUNIMHQ.js} +6 -0
  200. package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-GNEUIUFF.js} +6 -0
  201. package/cli-entry.js +92 -8
  202. package/cli.js +11 -11
  203. package/locales/ca.js +10 -0
  204. package/locales/de.js +10 -0
  205. package/locales/en.js +11 -0
  206. package/locales/fr.js +10 -0
  207. package/locales/ja.js +10 -0
  208. package/locales/pt.js +10 -0
  209. package/locales/ru.js +10 -0
  210. package/locales/zh-TW.js +11 -0
  211. package/locales/zh.js +11 -0
  212. package/package.json +3 -3
  213. package/web-shell/assets/{arc-CUeDlxvE.js → arc-Blc5_CnD.js} +1 -1
  214. package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-Dyv1BvGP.js} +1 -1
  215. package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-CVAb8DyB.js} +1 -1
  216. package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-ClHPb_6S.js} +1 -1
  217. package/web-shell/assets/channel-DkPTtnGS.js +1 -0
  218. package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-Dad9g3ZA.js} +1 -1
  219. package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-IJJSSdDs.js} +1 -1
  220. package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-DRcc-Hl9.js} +1 -1
  221. package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-DOCFB-6a.js} +1 -1
  222. package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-CRZnSjHp.js} +1 -1
  223. package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-BwUI4Yes.js} +1 -1
  224. package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DLy8doxd.js} +1 -1
  225. package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-Bhz7iysj.js} +1 -1
  226. package/web-shell/assets/classDiagram-4FO5ZUOK-DBdPU8ix.js +1 -0
  227. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBdPU8ix.js +1 -0
  228. package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-jT1e8KzN.js} +1 -1
  229. package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-C1veApQk.js} +1 -1
  230. package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-C_NOwKeT.js} +1 -1
  231. package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-Bigfuz1r.js} +1 -1
  232. package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-CpXltPpU.js} +1 -1
  233. package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DYawbYbH.js} +1 -1
  234. package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-D2t-ttd1.js} +1 -1
  235. package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-Buc53PB5.js} +1 -1
  236. package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-DwdFsCN7.js} +1 -1
  237. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-XhiEKGoP.js} +1 -1
  238. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-D6We014a.js} +1 -1
  239. package/web-shell/assets/index-BctAmeF3.js +1143 -0
  240. package/web-shell/assets/{index-DzHwQkQq.js → index-CAWqS-bZ.js} +1 -1
  241. package/web-shell/assets/index-DLyhlZZO.css +5 -0
  242. package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-C_iugRHQ.js} +1 -1
  243. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-CAn9Kaix.js} +1 -1
  244. package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-BjDYOkEB.js} +1 -1
  245. package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-Br_oI3Ob.js} +1 -1
  246. package/web-shell/assets/{linear-atZRE_L2.js → linear-BqnWHE9E.js} +1 -1
  247. package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-CT-sofSb.js} +5 -5
  248. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-BbvrZR4B.js} +1 -1
  249. package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-gAwi3h_Q.js} +1 -1
  250. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CONvBIuO.js} +1 -1
  251. package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-lpkrcy1e.js} +1 -1
  252. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Bk6FJHqb.js} +1 -1
  253. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-B9b9bBzt.js} +1 -1
  254. package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-JqBGC-S3.js} +1 -1
  255. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B_w4fDnm.js +1 -0
  256. package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-CCCceXDP.js} +1 -1
  257. package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-EHRnmZ09.js} +1 -1
  258. package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-CYIcHx3_.js} +1 -1
  259. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-B81AuYRl.js} +1 -1
  260. package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-DOQ6E3z7.js} +1 -1
  261. package/web-shell/index.html +2 -2
  262. package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
  263. package/chunks/chunk-B7NUUEXC.js +0 -311
  264. package/chunks/chunk-CARU2RR2.js +0 -24
  265. package/chunks/chunk-GYTKQYDB.js +0 -23
  266. package/chunks/chunk-LQU7EVFA.js +0 -30
  267. package/chunks/chunk-OCPBI7J5.js +0 -18
  268. package/chunks/chunk-OJAMDVF5.js +0 -66
  269. package/chunks/chunk-TEGEBB2I.js +0 -122
  270. package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
  271. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
  272. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
  273. package/web-shell/assets/index-Cnvv4VcI.css +0 -5
  274. package/web-shell/assets/index-D1Uyklxa.js +0 -1088
  275. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  isGitRepository
5
- } from "./chunk-K7CRWKOE.js";
5
+ } from "./chunk-R6AO7HBQ.js";
6
6
  import {
7
7
  createDebugLogger
8
8
  } from "./chunk-7NFB7LBQ.js";
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-DPFBNG72.js";
8
+ } from "./chunk-4UBEB74N.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-FSA7ERJ2.js";
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  settleChatRecording,
5
5
  subscribeToHeadlessChatRecordingFailures
6
- } from "./chunk-CJFNEBYB.js";
6
+ } from "./chunk-VFEZWI6F.js";
7
+ import {
8
+ handleAtCommand
9
+ } from "./chunk-XQDPCQ3A.js";
7
10
  import {
8
11
  JsonOutputAdapter
9
- } from "./chunk-F7NXQH4Y.js";
12
+ } from "./chunk-IIXEI2VE.js";
10
13
  import {
11
14
  StreamJsonOutputAdapter
12
- } from "./chunk-LTNI523B.js";
13
- import {
14
- handleAtCommand
15
- } from "./chunk-X362TMXZ.js";
15
+ } from "./chunk-T7CZYIAU.js";
16
16
  import {
17
17
  buildInitialSystemReminders,
18
18
  buildSystemMessage,
@@ -24,10 +24,10 @@ import {
24
24
  insertAfterFunctionResponses,
25
25
  isSlashCommand,
26
26
  normalizePartList
27
- } from "./chunk-YX4LLZ3D.js";
27
+ } from "./chunk-NABT4VOY.js";
28
28
  import {
29
29
  RunBudgetEnforcer
30
- } from "./chunk-CEW4HDPK.js";
30
+ } from "./chunk-ZK4AMPKI.js";
31
31
  import {
32
32
  AlreadyReportedError,
33
33
  handleBudgetExceededError,
@@ -35,31 +35,35 @@ import {
35
35
  handleError,
36
36
  handleMaxTurnsExceededError,
37
37
  handleToolError
38
- } from "./chunk-65N2J6V2.js";
38
+ } from "./chunk-6ANLV27M.js";
39
39
  import {
40
40
  isInlineModelOverrideAllowed
41
- } from "./chunk-GGJII3FM.js";
41
+ } from "./chunk-WZJELXEU.js";
42
42
  import {
43
43
  buildSessionRecoveryPlanFromApiHistory,
44
+ canonicalToolName,
44
45
  createDuplicateProviderToolCallResponse,
45
46
  detectAutonomousSentinel,
46
47
  detectLoopSentinel,
47
48
  executeToolCall,
48
49
  findRepeatedDuplicateProviderToolCall,
49
50
  isSystemReminderContent,
51
+ isToolCallConcurrencySafe,
50
52
  markDuplicateProviderToolCallResponseSent,
51
53
  parseAndFormatApiError,
54
+ parsePositiveIntegerEnv,
55
+ partitionByConcurrencySafety,
52
56
  promptIdContext,
53
57
  restoreWorktreeContext
54
- } from "./chunk-K7CRWKOE.js";
58
+ } from "./chunk-R6AO7HBQ.js";
55
59
  import {
56
60
  isTelemetrySdkInitialized,
57
61
  shutdownTelemetry,
58
62
  uiTelemetryService
59
- } from "./chunk-P6LART6G.js";
63
+ } from "./chunk-BTSE2DUP.js";
60
64
  import {
61
65
  ToolNames
62
- } from "./chunk-2UUAIFQO.js";
66
+ } from "./chunk-JGUT3LWZ.js";
63
67
  import {
64
68
  FatalInputError,
65
69
  createDebugLogger
@@ -155,6 +159,18 @@ async function emitNonInteractiveFinalMessage(params) {
155
159
  });
156
160
  }
157
161
  __name(emitNonInteractiveFinalMessage, "emitNonInteractiveFinalMessage");
162
+ function partitionHeadlessToolCalls(requests, config) {
163
+ const registry = config.getToolRegistry();
164
+ return partitionByConcurrencySafety(
165
+ requests,
166
+ (request) => isToolCallConcurrencySafe(
167
+ request.name,
168
+ registry.getTool(canonicalToolName(request.name))?.kind,
169
+ request.args
170
+ )
171
+ );
172
+ }
173
+ __name(partitionHeadlessToolCalls, "partitionHeadlessToolCalls");
158
174
  async function runNonInteractive(config, settings, input, prompt_id, options = {}) {
159
175
  return promptIdContext.run(prompt_id, async () => {
160
176
  let adapter;
@@ -676,8 +692,15 @@ ${text}
676
692
  const executedRequests = new Set(
677
693
  respondedRequests
678
694
  );
679
- for (const requestInfo of requestsToExecute) {
680
- executedRequests.add(requestInfo);
695
+ const toolBatches = partitionHeadlessToolCalls(
696
+ requestsToExecute,
697
+ config
698
+ );
699
+ const isBudgetExempt = /* @__PURE__ */ __name((requestInfo) => requestInfo.name === ToolNames.STRUCTURED_OUTPUT && config.getJsonSchema?.() !== void 0, "isBudgetExempt");
700
+ const launchToolCall = /* @__PURE__ */ __name(async (requestInfo) => {
701
+ debugLogger.debug(
702
+ `[runNonInteractive] launching tool call ${requestInfo.callId} (${requestInfo.name})`
703
+ );
681
704
  const inputFormat = typeof config.getInputFormat === "function" ? config.getInputFormat() : "text" /* TEXT */;
682
705
  const toolCallUpdateCallback = inputFormat === "stream-json" /* STREAM_JSON */ && options.controlService ? options.controlService.permission.getToolCallUpdateCallback() : void 0;
683
706
  const isAgentTool = requestInfo.name === "agent";
@@ -686,12 +709,7 @@ ${text}
686
709
  requestInfo.callId,
687
710
  adapter
688
711
  ) : createToolProgressHandler(requestInfo, adapter);
689
- const isStructuredOutputExempt = requestInfo.name === ToolNames.STRUCTURED_OUTPUT && config.getJsonSchema?.() !== void 0;
690
- if (!isStructuredOutputExempt) {
691
- budgetEnforcer.tickToolCall();
692
- }
693
- if (abortController.signal.aborted) await routeAbort();
694
- const toolResponse = await executeToolCall(
712
+ const response = await executeToolCall(
695
713
  config,
696
714
  requestInfo,
697
715
  abortController.signal,
@@ -702,6 +720,12 @@ ${text}
702
720
  }
703
721
  }
704
722
  );
723
+ debugLogger.debug(
724
+ `[runNonInteractive] tool call ${requestInfo.callId} (${requestInfo.name}) settled${response.error ? " with error" : ""}`
725
+ );
726
+ return response;
727
+ }, "launchToolCall");
728
+ const finalizeToolCall = /* @__PURE__ */ __name((requestInfo, toolResponse) => {
705
729
  if (toolResponse.error) {
706
730
  handleToolError(
707
731
  requestInfo.name,
@@ -724,7 +748,70 @@ ${text}
724
748
  }
725
749
  if (requestInfo.name === ToolNames.STRUCTURED_OUTPUT && !toolResponse.error) {
726
750
  structuredSubmission = requestInfo.args;
727
- break;
751
+ return true;
752
+ }
753
+ return false;
754
+ }, "finalizeToolCall");
755
+ const maxToolConcurrency = parsePositiveIntegerEnv(
756
+ process.env["QWEN_CODE_MAX_TOOL_CONCURRENCY"],
757
+ 10
758
+ );
759
+ let sessionEnded = false;
760
+ for (const batch of toolBatches) {
761
+ if (sessionEnded) break;
762
+ if (batch.concurrent && batch.calls.length > 1) {
763
+ const launched = [];
764
+ const inFlight = /* @__PURE__ */ new Set();
765
+ for (const requestInfo of batch.calls) {
766
+ if (!isBudgetExempt(requestInfo)) {
767
+ budgetEnforcer.tickToolCall();
768
+ }
769
+ if (abortController.signal.aborted) break;
770
+ executedRequests.add(requestInfo);
771
+ const promise = launchToolCall(requestInfo);
772
+ launched.push({ requestInfo, promise });
773
+ const marker = promise.then(
774
+ () => {
775
+ },
776
+ () => {
777
+ }
778
+ ).finally(() => {
779
+ inFlight.delete(marker);
780
+ });
781
+ inFlight.add(marker);
782
+ if (inFlight.size >= maxToolConcurrency) {
783
+ await Promise.race(inFlight);
784
+ }
785
+ }
786
+ const settled = await Promise.allSettled(
787
+ launched.map((l) => l.promise)
788
+ );
789
+ for (let i = 0; i < launched.length; i++) {
790
+ const outcome = settled[i];
791
+ if (outcome.status === "rejected") {
792
+ throw outcome.reason;
793
+ }
794
+ if (finalizeToolCall(launched[i].requestInfo, outcome.value)) {
795
+ sessionEnded = true;
796
+ break;
797
+ }
798
+ }
799
+ if (!sessionEnded && abortController.signal.aborted) {
800
+ await routeAbort();
801
+ }
802
+ } else {
803
+ for (const requestInfo of batch.calls) {
804
+ if (!isBudgetExempt(requestInfo)) {
805
+ budgetEnforcer.tickToolCall();
806
+ }
807
+ if (abortController.signal.aborted) await routeAbort();
808
+ executedRequests.add(requestInfo);
809
+ const toolResponse = await launchToolCall(requestInfo);
810
+ if (finalizeToolCall(requestInfo, toolResponse)) {
811
+ sessionEnded = true;
812
+ break;
813
+ }
814
+ }
728
815
  }
729
816
  }
730
817
  const unexecutedCalls = executableBatchRequests.filter(
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-LTNI523B.js";
5
+ } from "./chunk-T7CZYIAU.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -15562,6 +15562,10 @@ function hasCycleInSchema(schema) {
15562
15562
  return traverse(schema, /* @__PURE__ */ new Set(), /* @__PURE__ */ new Set());
15563
15563
  }
15564
15564
  __name(hasCycleInSchema, "hasCycleInSchema");
15565
+ function isShellProgressData(display) {
15566
+ return typeof display === "object" && display !== null && "type" in display && display.type === "shell_progress";
15567
+ }
15568
+ __name(isShellProgressData, "isShellProgressData");
15565
15569
  var ToolConfirmationOutcome = /* @__PURE__ */ ((ToolConfirmationOutcome2) => {
15566
15570
  ToolConfirmationOutcome2["ProceedOnce"] = "proceed_once";
15567
15571
  ToolConfirmationOutcome2["ProceedAlways"] = "proceed_always";
@@ -15723,6 +15727,7 @@ export {
15723
15727
  BaseDeclarativeTool,
15724
15728
  isTool,
15725
15729
  hasCycleInSchema,
15730
+ isShellProgressData,
15726
15731
  ToolConfirmationOutcome,
15727
15732
  Kind,
15728
15733
  MUTATOR_KINDS,
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-QRUIS3DN.js";
8
8
  import {
9
9
  isWorkspaceTrusted
10
- } from "./chunk-4YWLED2A.js";
10
+ } from "./chunk-PNCWEDF6.js";
11
11
  import {
12
12
  require_main
13
13
  } from "./chunk-5M6IDOMF.js";
@@ -0,0 +1,226 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ redactLogCredentials
5
+ } from "./chunk-M5GB774H.js";
6
+ import {
7
+ sanitizeLogText
8
+ } from "./chunk-ZQIYGQCG.js";
9
+ import {
10
+ stripAnsi
11
+ } from "./chunk-T4TZQJ7W.js";
12
+ import {
13
+ init_esbuild_shims
14
+ } from "./chunk-5O2XNYP6.js";
15
+ import {
16
+ __name
17
+ } from "./chunk-J2S4EL5Y.js";
18
+
19
+ // packages/cli/src/serve/channel-worker-env.ts
20
+ init_esbuild_shims();
21
+ var CHANNEL_DAEMON_WORKER_SENTINEL = "QWEN_CHANNEL_DAEMON_WORKER";
22
+ var CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS = 15e3;
23
+ var QWEN_DAEMON_TOKEN_ENV = "QWEN_DAEMON_TOKEN";
24
+ var QWEN_DAEMON_URL_ENV = "QWEN_DAEMON_URL";
25
+ var QWEN_DAEMON_WORKSPACE_ENV = "QWEN_DAEMON_WORKSPACE";
26
+ var QWEN_SERVER_TOKEN_ENV = "QWEN_SERVER_TOKEN";
27
+
28
+ // packages/cli/src/serve/channel-webhook-ipc.ts
29
+ init_esbuild_shims();
30
+ import { randomUUID } from "node:crypto";
31
+ var CHANNEL_WEBHOOK_ENQUEUE_ERROR_CODES = /* @__PURE__ */ new Set([
32
+ "channel_worker_unavailable",
33
+ "channel_webhook_enqueue_timeout",
34
+ "channel_webhook_queue_full",
35
+ "channel_webhook_target_unavailable",
36
+ "channel_webhook_invalid_task",
37
+ "channel_webhook_enqueue_failed"
38
+ ]);
39
+ var ChannelWebhookEnqueueError = class extends Error {
40
+ constructor(code, message) {
41
+ super(message);
42
+ this.code = code;
43
+ this.name = "ChannelWebhookEnqueueError";
44
+ }
45
+ static {
46
+ __name(this, "ChannelWebhookEnqueueError");
47
+ }
48
+ };
49
+ function isChannelWebhookEnqueueErrorCode(value) {
50
+ return typeof value === "string" && CHANNEL_WEBHOOK_ENQUEUE_ERROR_CODES.has(value);
51
+ }
52
+ __name(isChannelWebhookEnqueueErrorCode, "isChannelWebhookEnqueueErrorCode");
53
+ function isChannelWebhookEnqueueError(value) {
54
+ return value instanceof ChannelWebhookEnqueueError || typeof value === "object" && value !== null && isChannelWebhookEnqueueErrorCode(value.code) && typeof value.message === "string";
55
+ }
56
+ __name(isChannelWebhookEnqueueError, "isChannelWebhookEnqueueError");
57
+ var CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS = 3e4;
58
+ function createChannelWebhookTaskMessage(task) {
59
+ return {
60
+ type: "webhook_task",
61
+ id: randomUUID(),
62
+ expiresAt: Date.now() + CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
63
+ task
64
+ };
65
+ }
66
+ __name(createChannelWebhookTaskMessage, "createChannelWebhookTaskMessage");
67
+ function isChannelWebhookTaskMessage(value) {
68
+ return typeof value === "object" && value !== null && value.type === "webhook_task" && typeof value.id === "string" && typeof value.expiresAt === "number" && typeof value.task === "object" && value.task !== null;
69
+ }
70
+ __name(isChannelWebhookTaskMessage, "isChannelWebhookTaskMessage");
71
+ function isChannelWebhookTaskResultMessage(value) {
72
+ return typeof value === "object" && value !== null && value.type === "webhook_task_result" && typeof value.id === "string" && typeof value.ok === "boolean";
73
+ }
74
+ __name(isChannelWebhookTaskResultMessage, "isChannelWebhookTaskResultMessage");
75
+
76
+ // packages/cli/src/serve/channel-worker-diagnostics.ts
77
+ init_esbuild_shims();
78
+ var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
79
+ var WORKER_LOG_CONTROL_RE = /[\x00-\x1f\x7f-\x9f]/g;
80
+ function escapeRegExp(value) {
81
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
82
+ }
83
+ __name(escapeRegExp, "escapeRegExp");
84
+ function sensitiveEnvValues(env) {
85
+ const sensitiveKey = /(^|_)(TOKEN|SECRET|API_KEY|ACCESS_KEY|PRIVATE_KEY|CREDENTIAL|PASSWORD|PASSWD|PASSPHRASE|BASIC_AUTH|AUTH_TOKEN|AUTHORIZATION|SESSION_SECRET|SESSION_TOKEN|SESSION_KEY|SESSION_COOKIE|DSN|CONNECTION_STRING)($|_)/i;
86
+ return Object.entries(env).filter(([key, value]) => sensitiveKey.test(key) && value !== void 0).flatMap(([, value]) => {
87
+ const lines = value.split("\n").filter((line) => line.length >= 4);
88
+ return lines.length > 0 ? [value, ...lines] : [value];
89
+ }).filter((value) => value.length >= 4);
90
+ }
91
+ __name(sensitiveEnvValues, "sensitiveEnvValues");
92
+ function normalizeWorkerDiagnostic(value) {
93
+ return stripAnsi(value).replace(WORKER_LOG_INVISIBLE_RE, "").replace(WORKER_LOG_CONTROL_RE, "");
94
+ }
95
+ __name(normalizeWorkerDiagnostic, "normalizeWorkerDiagnostic");
96
+ function createWorkerDiagnosticRedactor(opts) {
97
+ const secretPatterns = [
98
+ ...new Set(
99
+ [
100
+ ...opts.daemonToken ? [opts.daemonToken] : [],
101
+ ...sensitiveEnvValues(opts.workerEnv)
102
+ ].flatMap((secret) => [
103
+ normalizeWorkerDiagnostic(secret),
104
+ normalizeWorkerDiagnostic(secret.replace(/\t/gu, " "))
105
+ ]).filter((secret) => secret.length >= 4)
106
+ )
107
+ ].sort((left, right) => right.length - left.length).map((secret) => new RegExp(escapeRegExp(secret), "g"));
108
+ return (value) => {
109
+ let redacted = value;
110
+ for (const secretPattern of secretPatterns) {
111
+ redacted = redacted.replace(secretPattern, "<redacted>");
112
+ }
113
+ return redactLogCredentials(redacted);
114
+ };
115
+ }
116
+ __name(createWorkerDiagnosticRedactor, "createWorkerDiagnosticRedactor");
117
+ function sanitizeWorkerDiagnostic(value, maxLength, opts) {
118
+ const normalized = normalizeWorkerDiagnostic(value);
119
+ const redacted = createWorkerDiagnosticRedactor(opts)(normalized);
120
+ return sanitizeLogText(redacted, maxLength);
121
+ }
122
+ __name(sanitizeWorkerDiagnostic, "sanitizeWorkerDiagnostic");
123
+
124
+ // packages/cli/src/serve/channel-worker-startup-ipc.ts
125
+ init_esbuild_shims();
126
+ var MAX_CHANNEL_STARTUP_FAILURES = 64;
127
+ var MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH = 128;
128
+ var MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH = 64;
129
+ var MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH = 512;
130
+ function isBoundedNonEmptyString(value, maxLength) {
131
+ if (typeof value !== "string" || value.length === 0) return false;
132
+ let length = 0;
133
+ for (const _codePoint of value) {
134
+ length += 1;
135
+ if (length > maxLength) return false;
136
+ }
137
+ return true;
138
+ }
139
+ __name(isBoundedNonEmptyString, "isBoundedNonEmptyString");
140
+ function isChannelStartupFailure(value) {
141
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
142
+ return false;
143
+ }
144
+ try {
145
+ const failure = value;
146
+ return isBoundedNonEmptyString(
147
+ failure["channel"],
148
+ MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH
149
+ ) && failure["phase"] === "connect" && (failure["code"] === void 0 || isBoundedNonEmptyString(
150
+ failure["code"],
151
+ MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH
152
+ )) && isBoundedNonEmptyString(
153
+ failure["message"],
154
+ MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH
155
+ );
156
+ } catch {
157
+ return false;
158
+ }
159
+ }
160
+ __name(isChannelStartupFailure, "isChannelStartupFailure");
161
+ function isChannelStartupReportMessage(value) {
162
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
163
+ return false;
164
+ }
165
+ try {
166
+ const message = value;
167
+ if (message["type"] === "channel_startup_failures_truncated") {
168
+ return true;
169
+ }
170
+ return message["type"] === "channel_startup_failure" && isChannelStartupFailure(message["failure"]);
171
+ } catch {
172
+ return false;
173
+ }
174
+ }
175
+ __name(isChannelStartupReportMessage, "isChannelStartupReportMessage");
176
+ function isChannelStartupReportAckMessage(value) {
177
+ try {
178
+ return typeof value === "object" && value !== null && !Array.isArray(value) && value.type === "channel_startup_report_ack";
179
+ } catch {
180
+ return false;
181
+ }
182
+ }
183
+ __name(isChannelStartupReportAckMessage, "isChannelStartupReportAckMessage");
184
+ function isChannelStartupReportType(value) {
185
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
186
+ return false;
187
+ }
188
+ try {
189
+ const type = value.type;
190
+ return type === "channel_startup_failure" || type === "channel_startup_failures_truncated";
191
+ } catch {
192
+ return false;
193
+ }
194
+ }
195
+ __name(isChannelStartupReportType, "isChannelStartupReportType");
196
+
197
+ export {
198
+ CHANNEL_DAEMON_WORKER_SENTINEL,
199
+ CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
200
+ QWEN_DAEMON_TOKEN_ENV,
201
+ QWEN_DAEMON_URL_ENV,
202
+ QWEN_DAEMON_WORKSPACE_ENV,
203
+ QWEN_SERVER_TOKEN_ENV,
204
+ ChannelWebhookEnqueueError,
205
+ isChannelWebhookEnqueueErrorCode,
206
+ isChannelWebhookEnqueueError,
207
+ CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
208
+ createChannelWebhookTaskMessage,
209
+ isChannelWebhookTaskMessage,
210
+ isChannelWebhookTaskResultMessage,
211
+ normalizeWorkerDiagnostic,
212
+ createWorkerDiagnosticRedactor,
213
+ sanitizeWorkerDiagnostic,
214
+ MAX_CHANNEL_STARTUP_FAILURES,
215
+ MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
216
+ MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
217
+ MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
218
+ isChannelStartupReportMessage,
219
+ isChannelStartupReportAckMessage,
220
+ isChannelStartupReportType
221
+ };
222
+ /**
223
+ * @license
224
+ * Copyright 2026 Qwen Team
225
+ * SPDX-License-Identifier: Apache-2.0
226
+ */
@@ -16213,6 +16213,13 @@ var PathMutexRegistry = class {
16213
16213
  }
16214
16214
  };
16215
16215
 
16216
+ // packages/cli/src/serve/health-query.ts
16217
+ init_esbuild_shims();
16218
+ function isDeepHealthQuery(raw) {
16219
+ return raw === "1" || raw === "true" || raw === "";
16220
+ }
16221
+ __name(isDeepHealthQuery, "isDeepHealthQuery");
16222
+
16216
16223
  // packages/cli/src/serve/web-shell-resolver.ts
16217
16224
  init_esbuild_shims();
16218
16225
  import { existsSync } from "node:fs";
@@ -16528,6 +16535,7 @@ var SERVE_CAPABILITY_REGISTRY = {
16528
16535
  // the underlying ACP method from unstable_resumeSession to resumeSession.
16529
16536
  unstable_session_resume: { since: "v1" },
16530
16537
  session_list: { since: "v1" },
16538
+ session_source_metadata: { since: "v1" },
16531
16539
  session_prompt: { since: "v1" },
16532
16540
  session_cancel: { since: "v1" },
16533
16541
  session_events: { since: "v1" },
@@ -16676,6 +16684,9 @@ var SERVE_CAPABILITY_REGISTRY = {
16676
16684
  // may be `null` for too-short histories or transient model failures
16677
16685
  // (best-effort, never throws). SDK helper: `DaemonClient.recapSession`.
16678
16686
  session_recap: { since: "v1" },
16687
+ // `POST /session/:id/generate` streams a stateless, tool-free model call.
16688
+ // The ACP child prefers fastModel and falls back to the main session model.
16689
+ session_generation: { since: "v1" },
16679
16690
  // Side question (/btw) against the session's conversation context.
16680
16691
  // Single-turn, tool-free LLM call via runForkedAgent (cache path).
16681
16692
  session_btw: { since: "v1" },
@@ -16758,8 +16769,8 @@ var SERVE_CAPABILITY_REGISTRY = {
16758
16769
  // Runtime GET/PUT/DELETE control for daemon-managed channel selection.
16759
16770
  // The route exists even when no selection was supplied at daemon boot.
16760
16771
  channel_control: { since: "v1" },
16761
- // Multi-workspace sessions closed loop (issue #6378 Phase 2a). Advertised
16762
- // only when one daemon hosts more than one registered workspace runtime.
16772
+ // Multi-workspace session routing. Advertised only when one daemon hosts
16773
+ // more than one registered workspace runtime.
16763
16774
  multi_workspace_sessions: { since: "v1" },
16764
16775
  // Singular session rewind routes resolve the owning live workspace runtime.
16765
16776
  multi_workspace_session_rewind: { since: "v1" },
@@ -16793,6 +16804,10 @@ var SERVE_CAPABILITY_REGISTRY = {
16793
16804
  // This is separate from `session_export` so clients do not infer the plural
16794
16805
  // route from the legacy primary-workspace export capability.
16795
16806
  workspace_session_export: { since: "v1" },
16807
+ // Workspace-qualified full session export from archived persisted storage.
16808
+ // This remains independent from active export so older daemons cannot ignore
16809
+ // archive intent and return an active transcript with the same session id.
16810
+ workspace_archived_session_export: { since: "v1" },
16796
16811
  // Workspace-qualified ACP transport (issue #6378 Phase 4):
16797
16812
  // `/workspaces/:workspace/acp` mounts a per-runtime ACP dispatcher (HTTP +
16798
16813
  // WebSocket) for each registered workspace, with per-runtime device-flow and
@@ -16859,6 +16874,10 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
16859
16874
  "session_artifacts_persistence",
16860
16875
  (toggles) => toggles.sessionArtifactsPersistenceAvailable === true
16861
16876
  ],
16877
+ [
16878
+ "session_generation",
16879
+ (toggles) => toggles.sessionGenerationAvailable === true
16880
+ ],
16862
16881
  ["rate_limit", (toggles) => toggles.rateLimit === true],
16863
16882
  ["workspace_reload", (toggles) => toggles.reloadAvailable === true],
16864
16883
  ["channel_reload", (toggles) => toggles.channelReloadAvailable === true],
@@ -16972,6 +16991,17 @@ var MAX_SKILL_NAME_LENGTH = 256;
16972
16991
  var MAX_SERVER_NAME_LENGTH = 256;
16973
16992
  var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
16974
16993
  var INVALID_PERMISSION_OUTCOME_ERROR = '`outcome` must be `{ outcome: "cancelled" }` or `{ outcome: "selected", optionId: string }`';
16994
+ var deferredRuntimeTimingKey = Symbol(
16995
+ "deferredRuntimeRequestTiming"
16996
+ );
16997
+ function setDeferredRuntimeRequestTiming(req, timing) {
16998
+ req[deferredRuntimeTimingKey] = timing;
16999
+ }
17000
+ __name(setDeferredRuntimeRequestTiming, "setDeferredRuntimeRequestTiming");
17001
+ function getDeferredRuntimeRequestTiming(req) {
17002
+ return req[deferredRuntimeTimingKey];
17003
+ }
17004
+ __name(getDeferredRuntimeRequestTiming, "getDeferredRuntimeRequestTiming");
16975
17005
  function safeBody(req) {
16976
17006
  const raw = req.body;
16977
17007
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
@@ -18222,6 +18252,7 @@ export {
18222
18252
  DeviceFlowRegistry,
18223
18253
  createBridgeFileSystemAdapter,
18224
18254
  PathMutexRegistry,
18255
+ isDeepHealthQuery,
18225
18256
  resolveWebShellDir,
18226
18257
  denyBrowserOriginCors,
18227
18258
  parseAllowOriginPatterns,
@@ -18242,6 +18273,8 @@ export {
18242
18273
  MAX_SKILL_NAME_LENGTH,
18243
18274
  MAX_SERVER_NAME_LENGTH,
18244
18275
  CLIENT_ID_RE,
18276
+ setDeferredRuntimeRequestTiming,
18277
+ getDeferredRuntimeRequestTiming,
18245
18278
  safeBody,
18246
18279
  parseOptionalWorkspaceCwd,
18247
18280
  requireSessionId,
@@ -60,7 +60,7 @@ async function runExitCleanup(options = {}) {
60
60
  }
61
61
  __name(runExitCleanup, "runExitCleanup");
62
62
  async function cleanupCheckpoints() {
63
- const { Storage } = await import("./src-USZKPUOC.js");
63
+ const { Storage } = await import("./src-6OJFUPTL.js");
64
64
  const storage = new Storage(process.cwd());
65
65
  const tempDir = storage.getProjectTempDir();
66
66
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -0,0 +1,22 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+
7
+ // packages/acp-bridge/src/index.ts
8
+ init_esbuild_shims();
9
+
10
+ // packages/acp-bridge/src/inMemoryChannel.ts
11
+ init_esbuild_shims();
12
+
13
+ // packages/acp-bridge/src/channel.ts
14
+ init_esbuild_shims();
15
+
16
+ // packages/acp-bridge/src/bridgeFileSystem.ts
17
+ init_esbuild_shims();
18
+ /**
19
+ * @license
20
+ * Copyright 2025 Qwen Team
21
+ * SPDX-License-Identifier: Apache-2.0
22
+ */