@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
@@ -5,14 +5,14 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-6GETGQWP.js";
8
+ } from "./chunk-5WWYHNAH.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-RDRVMDWV.js";
12
+ } from "./chunk-EMJJBXS7.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-4YWLED2A.js";
15
+ } from "./chunk-PNCWEDF6.js";
16
16
  import {
17
17
  writeStdoutLine
18
18
  } from "./chunk-YUZI3WAC.js";
@@ -21,9 +21,11 @@ import {
21
21
  getExtensionDescription,
22
22
  getExtensionDisplayName,
23
23
  redactUrlCredentials,
24
- require_prompts,
24
+ require_prompts
25
+ } from "./chunk-R6AO7HBQ.js";
26
+ import {
25
27
  stripAnsi
26
- } from "./chunk-K7CRWKOE.js";
28
+ } from "./chunk-T4TZQJ7W.js";
27
29
  import {
28
30
  init_esbuild_shims
29
31
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveChannelCwd
5
- } from "./chunk-ZRKBI3DP.js";
5
+ } from "./chunk-FNX3LGAK.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -21,12 +21,12 @@ function ensureBuiltins() {
21
21
  if (!builtinsPromise) {
22
22
  builtinsPromise = (async () => {
23
23
  const labelled = [
24
- { name: "telegram", promise: import("./dist-JZE7F6YR.js") },
25
- { name: "weixin", promise: import("./dist-PHEPJLXD.js") },
26
- { name: "dingtalk", promise: import("./dist-HNN7DR2L.js") },
27
- { name: "wecom", promise: import("./dist-ERCPDVA6.js") },
28
- { name: "feishu", promise: import("./dist-MOEC47TR.js") },
29
- { name: "qqbot", promise: import("./dist-3V3ZV6ML.js") }
24
+ { name: "telegram", promise: import("./dist-GXJVCOS7.js") },
25
+ { name: "weixin", promise: import("./dist-PX2ERZ6I.js") },
26
+ { name: "dingtalk", promise: import("./dist-V2YVLYOW.js") },
27
+ { name: "wecom", promise: import("./dist-4WCQEZIN.js") },
28
+ { name: "feishu", promise: import("./dist-DOPL5LSQ.js") },
29
+ { name: "qqbot", promise: import("./dist-VYWUKURL.js") }
30
30
  ];
31
31
  const results = await Promise.allSettled(labelled.map((l) => l.promise));
32
32
  for (let i = 0; i < results.length; i++) {
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  escapeAnsiCtrlCodes
5
- } from "./chunk-WTSXKLG5.js";
5
+ } from "./chunk-SUARMD4Q.js";
6
6
  import {
7
7
  wrapper_default
8
8
  } from "./chunk-TYAMGABM.js";
@@ -10,12 +10,12 @@ import {
10
10
  getLanguageNameFromLocale,
11
11
  getLanguageSettingsOptions,
12
12
  t
13
- } from "./chunk-RDRVMDWV.js";
13
+ } from "./chunk-EMJJBXS7.js";
14
14
  import {
15
15
  getHomeEnvFallbackVars,
16
16
  loadEnvironment,
17
17
  preResolveHomeEnvOverrides
18
- } from "./chunk-5EBKKSBX.js";
18
+ } from "./chunk-JY74T7PW.js";
19
19
  import {
20
20
  CONSOLIDATED_DISABLE_KEYS,
21
21
  V1_INDICATOR_KEYS,
@@ -35,7 +35,7 @@ import {
35
35
  import {
36
36
  isWorkspaceTrusted,
37
37
  updateSettingsFilePreservingFormat
38
- } from "./chunk-4YWLED2A.js";
38
+ } from "./chunk-PNCWEDF6.js";
39
39
  import {
40
40
  require_strip_json_comments
41
41
  } from "./chunk-ALGGS7UH.js";
@@ -48,14 +48,14 @@ import {
48
48
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
49
49
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
50
50
  stripRuntimeSnapshotPrefix
51
- } from "./chunk-K7CRWKOE.js";
51
+ } from "./chunk-R6AO7HBQ.js";
52
52
  import {
53
53
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
54
54
  } from "./chunk-L5U3ELZX.js";
55
55
  import {
56
56
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
57
57
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
58
- } from "./chunk-P6LART6G.js";
58
+ } from "./chunk-BTSE2DUP.js";
59
59
  import {
60
60
  FatalConfigError,
61
61
  Storage,
@@ -500,6 +500,19 @@ var SETTINGS_SCHEMA = {
500
500
  description: "Play terminal bell sound when response completes or needs approval.",
501
501
  showInDialog: true
502
502
  },
503
+ notificationMode: {
504
+ type: "enum",
505
+ label: "Notification Mode",
506
+ category: "General",
507
+ requiresRestart: false,
508
+ default: "all",
509
+ description: 'Which unfocused-terminal events fire a bell/OS notification. "all" fires on every tool approval prompt AND on task completion (current behavior). "task-complete" suppresses the per-approval notification and only fires when a long task returns to idle. Requires `terminalBell` to be enabled; otherwise no notifications fire regardless of mode.',
510
+ showInDialog: true,
511
+ options: [
512
+ { value: "all", label: "All (approvals + task completion)" },
513
+ { value: "task-complete", label: "Task completion only" }
514
+ ]
515
+ },
503
516
  preventSystemSleep: {
504
517
  type: "boolean",
505
518
  label: "Prevent System Sleep While Running",
@@ -1187,12 +1200,12 @@ var SETTINGS_SCHEMA = {
1187
1200
  ]
1188
1201
  },
1189
1202
  maxSessionTurns: {
1190
- type: "number",
1203
+ type: "integer",
1191
1204
  label: "Max Session Turns",
1192
1205
  category: "Model",
1193
1206
  requiresRestart: false,
1194
1207
  default: -1,
1195
- description: "Maximum number of user/model/tool turns to keep in a session. -1 means unlimited.",
1208
+ description: "Maximum number of user/model/tool turns to keep in a session. Must be an integer; -1 means unlimited.",
1196
1209
  showInDialog: false
1197
1210
  },
1198
1211
  maxWallTimeSeconds: {
@@ -1268,7 +1281,7 @@ var SETTINGS_SCHEMA = {
1268
1281
  showInDialog: false
1269
1282
  },
1270
1283
  maxToolCallsPerTurn: {
1271
- type: "number",
1284
+ type: "integer",
1272
1285
  label: "Max Tool Calls Per Turn",
1273
1286
  category: "Model",
1274
1287
  requiresRestart: false,
@@ -1617,7 +1630,7 @@ var SETTINGS_SCHEMA = {
1617
1630
  label: "Enable Auto Skill",
1618
1631
  category: "Memory",
1619
1632
  requiresRestart: false,
1620
- default: true,
1633
+ default: false,
1621
1634
  description: "Enable background review for reusable project skills after tool-heavy sessions.",
1622
1635
  showInDialog: false
1623
1636
  },
@@ -1980,6 +1993,17 @@ var SETTINGS_SCHEMA = {
1980
1993
  default: void 0,
1981
1994
  description: "Default timeout, in milliseconds, for foreground shell commands started by the agent. A per-call timeout on the shell tool overrides this. When unset, foreground commands time out after 120000 ms (2 minutes). Set to 0 to disable the timeout.",
1982
1995
  showInDialog: false
1996
+ },
1997
+ heartbeatIntervalMs: {
1998
+ type: "integer",
1999
+ minimum: 0,
2000
+ maximum: 6e5,
2001
+ label: "Silent Command Heartbeat Interval (ms)",
2002
+ category: "Tools",
2003
+ requiresRestart: true,
2004
+ default: void 0,
2005
+ description: "Interval, in milliseconds, between liveness heartbeats emitted while a foreground shell command produces no output. Heartbeats are forwarded to ACP clients and stream-json consumers so they can tell a silent command from a dead session. When unset, heartbeats fire every 10000 ms (10 seconds). Set to 0 to disable heartbeats.",
2006
+ showInDialog: false
1983
2007
  }
1984
2008
  }
1985
2009
  },
@@ -2038,7 +2062,7 @@ var SETTINGS_SCHEMA = {
2038
2062
  label: "Tool Approval Mode",
2039
2063
  category: "Tools",
2040
2064
  requiresRestart: false,
2041
- default: "default" /* DEFAULT */,
2065
+ default: "auto" /* AUTO */,
2042
2066
  description: "Approval mode for tool usage. Controls how tools are approved before execution.",
2043
2067
  showInDialog: true,
2044
2068
  options: [
@@ -3244,6 +3268,11 @@ function validateSettingValue(def, value) {
3244
3268
  return `Value must be one of: ${allowed}`;
3245
3269
  }
3246
3270
  break;
3271
+ case "object":
3272
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
3273
+ return "Value must be an object";
3274
+ }
3275
+ break;
3247
3276
  default:
3248
3277
  return `Settings of type '${def.type}' cannot be modified via this API`;
3249
3278
  }
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  JsonFormatter,
8
8
  parseAndFormatApiError
9
- } from "./chunk-K7CRWKOE.js";
9
+ } from "./chunk-R6AO7HBQ.js";
10
10
  import {
11
11
  FatalBudgetExceededError,
12
12
  FatalCancellationError,
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-7NFB7LBQ.js";
16
16
  import {
17
17
  runExitCleanup
18
- } from "./chunk-TISZXPAX.js";
18
+ } from "./chunk-L263ROM6.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getErrorMessage
5
- } from "./chunk-65N2J6V2.js";
5
+ } from "./chunk-6ANLV27M.js";
6
6
  import {
7
7
  extensionToOutputString,
8
8
  getExtensionManager
9
- } from "./chunk-AAR5SGMD.js";
9
+ } from "./chunk-4YR7FSAM.js";
10
10
  import {
11
11
  loadSettings
12
- } from "./chunk-6GETGQWP.js";
12
+ } from "./chunk-5WWYHNAH.js";
13
13
  import {
14
14
  initializeI18n,
15
15
  resolveLanguageSetting,
16
16
  t
17
- } from "./chunk-RDRVMDWV.js";
17
+ } from "./chunk-EMJJBXS7.js";
18
18
  import {
19
19
  writeStderrLine,
20
20
  writeStdoutLine
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-DK33QJ3V.js";
5
+ } from "./chunk-GCRFH57X.js";
6
6
  import {
7
7
  require_jsx_runtime
8
- } from "./chunk-K4PZ5F5T.js";
8
+ } from "./chunk-OWT2CAEQ.js";
9
9
  import {
10
10
  require_react
11
11
  } from "./chunk-HTHUX2T5.js";
12
12
  import {
13
13
  getCachedStringWidth
14
- } from "./chunk-WTSXKLG5.js";
14
+ } from "./chunk-SUARMD4Q.js";
15
15
  import {
16
16
  uiTelemetryService
17
- } from "./chunk-P6LART6G.js";
17
+ } from "./chunk-BTSE2DUP.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,33 +2,37 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_DAEMON_WORKER_SENTINEL,
5
+ CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
5
6
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
7
+ ChannelWebhookEnqueueError,
8
+ MAX_CHANNEL_STARTUP_FAILURES,
9
+ MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
10
+ MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
11
+ MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
6
12
  QWEN_DAEMON_TOKEN_ENV,
7
13
  QWEN_DAEMON_URL_ENV,
8
14
  QWEN_DAEMON_WORKSPACE_ENV,
9
- QWEN_SERVER_TOKEN_ENV
10
- } from "./chunk-GYTKQYDB.js";
15
+ QWEN_SERVER_TOKEN_ENV,
16
+ createChannelWebhookTaskMessage,
17
+ createWorkerDiagnosticRedactor,
18
+ isChannelStartupReportMessage,
19
+ isChannelStartupReportType,
20
+ isChannelWebhookEnqueueErrorCode,
21
+ isChannelWebhookTaskResultMessage,
22
+ normalizeWorkerDiagnostic,
23
+ sanitizeWorkerDiagnostic
24
+ } from "./chunk-KSZKSE23.js";
11
25
  import {
12
26
  channelSelectionNames
13
27
  } from "./chunk-TJTKSVIV.js";
14
- import {
15
- redactLogCredentials
16
- } from "./chunk-M5GB774H.js";
17
28
  import {
18
29
  CHANNEL_WORKER_KILL_GRACE_MS,
19
30
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
20
31
  CHANNEL_WORKER_STOP_GRACE_MS
21
32
  } from "./chunk-5HBA2Z7V.js";
22
- import {
23
- CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
24
- ChannelWebhookEnqueueError,
25
- createChannelWebhookTaskMessage,
26
- isChannelWebhookEnqueueErrorCode,
27
- isChannelWebhookTaskResultMessage
28
- } from "./chunk-OJAMDVF5.js";
29
33
  import {
30
34
  sanitizeLogText
31
- } from "./chunk-SXU3KKNI.js";
35
+ } from "./chunk-ZQIYGQCG.js";
32
36
  import {
33
37
  init_esbuild_shims
34
38
  } from "./chunk-5O2XNYP6.js";
@@ -44,12 +48,6 @@ var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
44
48
  var MAX_WORKER_LOG_LINE_LENGTH = 4096;
45
49
  var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
46
50
  var MAX_WORKER_LOG_DISCARDED_REMAINDER_LENGTH = MAX_WORKER_LOG_BUFFER_LENGTH;
47
- var ANSI_CSI_SEQUENCE_RE = new RegExp(
48
- `${String.fromCharCode(27)}\\[[0-?]*[ -/]*[@-~]`,
49
- "g"
50
- );
51
- var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
52
- var WORKER_LOG_CONTROL_RE = /[\x00-\x08\x0a-\x1f\x7f]/g;
53
51
  var ChannelWorkerStopError = class extends Error {
54
52
  static {
55
53
  __name(this, "ChannelWorkerStopError");
@@ -59,6 +57,22 @@ var ChannelWorkerStopError = class extends Error {
59
57
  this.name = "ChannelWorkerStopError";
60
58
  }
61
59
  };
60
+ var ChannelWorkerStartupError = class extends Error {
61
+ static {
62
+ __name(this, "ChannelWorkerStartupError");
63
+ }
64
+ startupFailures;
65
+ startupFailuresTruncated;
66
+ constructor(message, details) {
67
+ super(message);
68
+ this.name = "ChannelWorkerStartupError";
69
+ this.startupFailures = details.startupFailures.map((failure) => ({
70
+ ...failure,
71
+ workspaceCwd: details.workspaceCwd
72
+ }));
73
+ this.startupFailuresTruncated = details.startupFailuresTruncated === true;
74
+ }
75
+ };
62
76
  var DEFAULT_RESTART_POLICY = {
63
77
  maxRestarts: 3,
64
78
  windowMs: 5 * 6e4,
@@ -101,9 +115,7 @@ function workerLogRedactionOptions(daemonToken, workerEnv) {
101
115
  }
102
116
  __name(workerLogRedactionOptions, "workerLogRedactionOptions");
103
117
  function sanitizeWorkerError(error, redaction) {
104
- const normalized = normalizeWorkerLogLineForRedaction(error);
105
- const redacted = redaction ? redactWorkerLogLine(normalized, redaction) : normalized;
106
- return Array.from(sanitizeLogText(redacted, 512)).slice(0, 512).join("");
118
+ return redaction ? sanitizeWorkerDiagnostic(error, 512, redaction) : sanitizeLogText(normalizeWorkerDiagnostic(error), 512);
107
119
  }
108
120
  __name(sanitizeWorkerError, "sanitizeWorkerError");
109
121
  function notifyExit(onExit, snapshot) {
@@ -162,58 +174,20 @@ function createWorkerEnv(opts) {
162
174
  return env;
163
175
  }
164
176
  __name(createWorkerEnv, "createWorkerEnv");
165
- function escapeRegExp(value) {
166
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
167
- }
168
- __name(escapeRegExp, "escapeRegExp");
169
- function sensitiveEnvValues(env) {
170
- 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;
171
- return Object.entries(env).filter(([key, value]) => sensitiveKey.test(key) && value !== void 0).flatMap(([, value]) => {
172
- const lines = value.split("\n").filter((l) => l.length >= 4);
173
- return lines.length > 0 ? [value, ...lines] : [value];
174
- }).filter((value) => value.length >= 4);
175
- }
176
- __name(sensitiveEnvValues, "sensitiveEnvValues");
177
- function redactWorkerLogLine(line, opts) {
178
- return createWorkerLogRedactor(opts)(line);
179
- }
180
- __name(redactWorkerLogLine, "redactWorkerLogLine");
181
- function createWorkerLogRedactor(opts) {
182
- const secretPatterns = [
183
- .../* @__PURE__ */ new Set([
184
- ...opts.daemonToken && opts.daemonToken.length >= 4 ? [opts.daemonToken] : [],
185
- ...sensitiveEnvValues(opts.workerEnv)
186
- ])
187
- ].sort((a, b) => b.length - a.length).map((secret) => new RegExp(escapeRegExp(secret), "g"));
188
- return (line) => {
189
- let redacted = line.replace(
190
- /\b([a-z][a-z0-9+.-]{0,31}:\/\/)([^\s/]*@)([^\s/]+)([^\s]*)/gi,
191
- "$1<redacted>@$3$4"
192
- );
193
- for (const secretPattern of secretPatterns) {
194
- redacted = redacted.replace(secretPattern, "<redacted>");
195
- }
196
- return redactLogCredentials(redacted);
197
- };
198
- }
199
- __name(createWorkerLogRedactor, "createWorkerLogRedactor");
200
- function normalizeWorkerLogLineForRedaction(line) {
201
- return line.replace(ANSI_CSI_SEQUENCE_RE, "").replace(WORKER_LOG_INVISIBLE_RE, "").replace(WORKER_LOG_CONTROL_RE, "");
202
- }
203
- __name(normalizeWorkerLogLineForRedaction, "normalizeWorkerLogLineForRedaction");
204
177
  function attachWorkerLogStream(stream, streamName, opts) {
205
178
  if (!stream) return () => {
206
179
  };
207
180
  let buffer = "";
208
181
  let discardingOversizedLineRemainder = false;
209
182
  let discardedOversizedLineRemainderLength = 0;
210
- const redactWorkerLogLineForStream = createWorkerLogRedactor({
183
+ const redactWorkerLogLineForStream = createWorkerDiagnosticRedactor({
211
184
  ...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
212
185
  workerEnv: opts.workerEnv
213
186
  });
214
187
  const flushLine = /* @__PURE__ */ __name((line) => {
188
+ const displayLine = line.replace(/\t/gu, " ");
215
189
  const redacted = redactWorkerLogLineForStream(
216
- normalizeWorkerLogLineForRedaction(line)
190
+ normalizeWorkerDiagnostic(displayLine)
217
191
  );
218
192
  notifyLog(opts.onLog, {
219
193
  stream: streamName,
@@ -294,7 +268,12 @@ function createChannelWorkerSupervisor(opts) {
294
268
  const snapshotCopy = /* @__PURE__ */ __name(() => ({
295
269
  ...snapshot,
296
270
  channels: [...snapshot.channels],
297
- ...snapshot.requestedChannels ? { requestedChannels: [...snapshot.requestedChannels] } : {}
271
+ ...snapshot.requestedChannels ? { requestedChannels: [...snapshot.requestedChannels] } : {},
272
+ ...snapshot.startupFailures ? {
273
+ startupFailures: snapshot.startupFailures.map((failure) => ({
274
+ ...failure
275
+ }))
276
+ } : {}
298
277
  }), "snapshotCopy");
299
278
  const clearRestartTimer = /* @__PURE__ */ __name(() => {
300
279
  if (restartTimer) {
@@ -557,6 +536,89 @@ function createChannelWorkerSupervisor(opts) {
557
536
  resolve();
558
537
  }
559
538
  }, "failBeforeReady");
539
+ const startupError = /* @__PURE__ */ __name((message) => {
540
+ const failures = snapshot.startupFailures;
541
+ return failures && failures.length > 0 ? new ChannelWorkerStartupError(message, {
542
+ workspaceCwd: opts.workspace,
543
+ startupFailures: failures,
544
+ ...snapshot.startupFailuresTruncated ? { startupFailuresTruncated: true } : {}
545
+ }) : new Error(message);
546
+ }, "startupError");
547
+ const failStartupProtocol = /* @__PURE__ */ __name((detail) => {
548
+ if (settled || ready || child !== startedChild) return;
549
+ const error = sanitizeWorkerError(
550
+ `Channel worker startup IPC protocol error: ${detail}`,
551
+ redaction
552
+ );
553
+ snapshot = { ...snapshot, state: "failed", error };
554
+ failBeforeReady(startupError(error));
555
+ terminateBeforeReady();
556
+ }, "failStartupProtocol");
557
+ const acknowledgeStartupReport = /* @__PURE__ */ __name(() => {
558
+ const send = startedChild.send;
559
+ if (!send) {
560
+ failStartupProtocol("acknowledgement is unavailable.");
561
+ return;
562
+ }
563
+ try {
564
+ send.call(
565
+ startedChild,
566
+ { type: "channel_startup_report_ack" },
567
+ (err) => {
568
+ if (err) {
569
+ failStartupProtocol("acknowledgement failed.");
570
+ }
571
+ }
572
+ );
573
+ } catch {
574
+ failStartupProtocol("acknowledgement failed.");
575
+ }
576
+ }, "acknowledgeStartupReport");
577
+ const handleStartupReport = /* @__PURE__ */ __name((message) => {
578
+ if (!isChannelStartupReportMessage(message)) {
579
+ failStartupProtocol("invalid startup report.");
580
+ return;
581
+ }
582
+ if (message.type === "channel_startup_failures_truncated") {
583
+ if (snapshot.startupFailuresTruncated || snapshot.startupFailures?.length !== MAX_CHANNEL_STARTUP_FAILURES) {
584
+ failStartupProtocol("invalid truncation marker.");
585
+ return;
586
+ }
587
+ snapshot = { ...snapshot, startupFailuresTruncated: true };
588
+ acknowledgeStartupReport();
589
+ return;
590
+ }
591
+ if (snapshot.startupFailuresTruncated || (snapshot.startupFailures?.length ?? 0) >= MAX_CHANNEL_STARTUP_FAILURES) {
592
+ failStartupProtocol("too many startup failures.");
593
+ return;
594
+ }
595
+ const safeChannel = sanitizeWorkerDiagnostic(
596
+ message.failure.channel,
597
+ MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
598
+ redaction
599
+ ) || "<unnamed>";
600
+ const safeMessage = sanitizeWorkerDiagnostic(
601
+ message.failure.message,
602
+ MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
603
+ redaction
604
+ ) || "Channel connection failed.";
605
+ const safeCode = message.failure.code ? sanitizeWorkerDiagnostic(
606
+ message.failure.code,
607
+ MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
608
+ redaction
609
+ ) : void 0;
610
+ const failure = {
611
+ channel: safeChannel,
612
+ phase: "connect",
613
+ ...safeCode ? { code: safeCode } : {},
614
+ message: safeMessage
615
+ };
616
+ snapshot = {
617
+ ...snapshot,
618
+ startupFailures: [...snapshot.startupFailures ?? [], failure]
619
+ };
620
+ acknowledgeStartupReport();
621
+ }, "handleStartupReport");
560
622
  const completeReady = /* @__PURE__ */ __name((message) => {
561
623
  if (settled || child !== startedChild) return;
562
624
  settled = true;
@@ -597,7 +659,9 @@ function createChannelWorkerSupervisor(opts) {
597
659
  if (settleWebhookTask(message)) {
598
660
  return;
599
661
  }
600
- if (!ready && isReadyMessage(message)) {
662
+ if (!ready && isChannelStartupReportType(message)) {
663
+ handleStartupReport(message);
664
+ } else if (!ready && isReadyMessage(message)) {
601
665
  completeReady(message);
602
666
  } else if (isHeartbeatMessage(message)) {
603
667
  handleHeartbeat(message);
@@ -626,7 +690,7 @@ function createChannelWorkerSupervisor(opts) {
626
690
  notifyExit(opts.onExit, snapshotCopy());
627
691
  }
628
692
  if (!settled) {
629
- failBeforeReady(new Error(snapshot.error ?? message));
693
+ failBeforeReady(startupError(snapshot.error ?? message));
630
694
  }
631
695
  }
632
696
  __name(settleExit, "settleExit");
@@ -647,7 +711,9 @@ function createChannelWorkerSupervisor(opts) {
647
711
  };
648
712
  terminateBeforeReady();
649
713
  if (!settled) {
650
- failBeforeReady(new Error(snapshot.error));
714
+ failBeforeReady(
715
+ startupError(snapshot.error ?? "Channel worker failed to start.")
716
+ );
651
717
  }
652
718
  }
653
719
  __name(settleError, "settleError");
@@ -659,7 +725,7 @@ function createChannelWorkerSupervisor(opts) {
659
725
  state: "failed",
660
726
  error: sanitizeWorkerError(error, redaction)
661
727
  };
662
- failBeforeReady(new Error(error));
728
+ failBeforeReady(startupError(error));
663
729
  if (child === startedChild) {
664
730
  terminateBeforeReady();
665
731
  }
@@ -817,5 +883,6 @@ __name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
817
883
 
818
884
  export {
819
885
  ChannelWorkerStopError,
886
+ ChannelWorkerStartupError,
820
887
  createChannelWorkerSupervisor
821
888
  };
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-TXY2C3D2.js";
9
+ } from "./chunk-F333XEAU.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-6AM5D4ME.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-2UUAIFQO.js";
18
+ } from "./chunk-JGUT3LWZ.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,59 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ runExitCleanup
5
+ } from "./chunk-L263ROM6.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/cli/src/utils/processUtils.ts
14
+ init_esbuild_shims();
15
+ var RELAUNCH_EXIT_CODE = 42;
16
+ var UPDATE_RELAUNCH_EXIT_CODE = 43;
17
+ var UPDATE_COMPLETE_EXIT_CODE = 44;
18
+ var SKIP_UPDATE_CHECK_ENV_VAR = "QWEN_CODE_SKIP_UPDATE_CHECK_ONCE";
19
+ var CUSTOM_SANDBOX_IMAGE_ENV_VAR = "QWEN_CODE_CUSTOM_SANDBOX_IMAGE";
20
+ var HOST_UPDATE_RELAUNCH_ENV_VAR = "QWEN_CODE_HOST_UPDATE_RELAUNCH";
21
+ var UPDATE_ON_EXIT_MESSAGE = "qwen-code:update-on-exit";
22
+ async function relaunchApp() {
23
+ await runExitCleanup();
24
+ process.exit(RELAUNCH_EXIT_CODE);
25
+ }
26
+ __name(relaunchApp, "relaunchApp");
27
+ async function relaunchForUpdate() {
28
+ await runExitCleanup();
29
+ process.exit(UPDATE_RELAUNCH_EXIT_CODE);
30
+ }
31
+ __name(relaunchForUpdate, "relaunchForUpdate");
32
+ function requestUpdateOnExit() {
33
+ if (!process.send) return false;
34
+ try {
35
+ process.send({ type: UPDATE_ON_EXIT_MESSAGE });
36
+ return true;
37
+ } catch {
38
+ return false;
39
+ }
40
+ }
41
+ __name(requestUpdateOnExit, "requestUpdateOnExit");
42
+
43
+ export {
44
+ RELAUNCH_EXIT_CODE,
45
+ UPDATE_RELAUNCH_EXIT_CODE,
46
+ UPDATE_COMPLETE_EXIT_CODE,
47
+ SKIP_UPDATE_CHECK_ENV_VAR,
48
+ CUSTOM_SANDBOX_IMAGE_ENV_VAR,
49
+ HOST_UPDATE_RELAUNCH_ENV_VAR,
50
+ UPDATE_ON_EXIT_MESSAGE,
51
+ relaunchApp,
52
+ relaunchForUpdate,
53
+ requestUpdateOnExit
54
+ };
55
+ /**
56
+ * @license
57
+ * Copyright 2025 Google LLC
58
+ * SPDX-License-Identifier: Apache-2.0
59
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-K7CRWKOE.js";
5
+ } from "./chunk-R6AO7HBQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";