@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260718.767a32484

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 (307) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +11 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +15 -14
  3. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  4. package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
  5. package/bundled/qc-helper/docs/features/channels/overview.md +66 -17
  6. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  7. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  8. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  9. package/bundled/qc-helper/docs/qwen-serve.md +77 -46
  10. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  11. package/bundled/review/SKILL.md +163 -403
  12. package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-ZFHA4QEQ.js} +30 -30
  13. package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-YRWOQVQA.js} +44 -44
  14. package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-U2P2IESZ.js} +1423 -487
  15. package/chunks/{agent-Z7NWL6XL.js → agent-GQXX6X5Y.js} +26 -26
  16. package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-3572NBCK.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-Y65DMM64.js} +103 -18
  18. package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-WR7I2XON.js} +2 -2
  19. package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-B4FUTPHD.js} +2 -44
  20. package/chunks/{bridge-XFKW6S7Q.js → bridge-N5RMGD7G.js} +31 -33
  21. package/chunks/{ca-C2JTT2N5.js → ca-M3GQQ26D.js} +7 -2
  22. package/chunks/channel-worker-group-HZVJKLGX.js +21 -0
  23. package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-3WDK4HNS.js} +34 -10
  24. package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-U2W6Q5F7.js} +6 -4
  25. package/chunks/{chunk-YYPXHMWO.js → chunk-2XRGFF5K.js} +6 -6
  26. package/chunks/{chunk-ZKMGAFYV.js → chunk-2YSZE74N.js} +2 -2
  27. package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
  28. package/chunks/{chunk-5EBKKSBX.js → chunk-336KPNNV.js} +2 -2
  29. package/chunks/{chunk-Q5GLXH5Q.js → chunk-3CL5SEDT.js} +6 -6
  30. package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
  31. package/chunks/{chunk-CJFNEBYB.js → chunk-3NWYQ7FX.js} +2 -2
  32. package/chunks/{chunk-WIASPMLX.js → chunk-3X2CFOUM.js} +358 -298
  33. package/chunks/{chunk-K7CRWKOE.js → chunk-3YJZ6WNY.js} +5812 -4520
  34. package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
  35. package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
  36. package/chunks/{chunk-TISZXPAX.js → chunk-4HCYNDMG.js} +1 -1
  37. package/chunks/chunk-4JBTZBCW.js +140 -0
  38. package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
  39. package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
  40. package/chunks/{chunk-N6FXRR6P.js → chunk-57RWF6R7.js} +1 -1
  41. package/chunks/chunk-5O34IMY5.js +59 -0
  42. package/chunks/{chunk-5LROA5W4.js → chunk-5QRK2VZG.js} +8 -8
  43. package/chunks/{chunk-7L4XBYVW.js → chunk-632KROVU.js} +10 -3
  44. package/chunks/{chunk-65N2J6V2.js → chunk-64XGKNSI.js} +3 -3
  45. package/chunks/{chunk-P6LART6G.js → chunk-66IT3EY2.js} +1059 -129
  46. package/chunks/{chunk-FXMC7SL2.js → chunk-6ITLKEOZ.js} +3 -3
  47. package/chunks/{chunk-F7NXQH4Y.js → chunk-6YIRYY3P.js} +1 -1
  48. package/chunks/{chunk-GGJII3FM.js → chunk-6Z5NRZVU.js} +92 -3
  49. package/chunks/{chunk-DPFBNG72.js → chunk-AEKYFMYE.js} +1 -1
  50. package/chunks/{chunk-2UUAIFQO.js → chunk-ANRANWVE.js} +9 -1
  51. package/chunks/{chunk-SXU3KKNI.js → chunk-ATJ7H5AS.js} +419 -76
  52. package/chunks/{chunk-6GETGQWP.js → chunk-C5NSOSF4.js} +64 -18
  53. package/chunks/{chunk-TQBODCFD.js → chunk-CMVFTMRD.js} +251 -3
  54. package/chunks/{chunk-DK33QJ3V.js → chunk-CZSAIBUB.js} +733 -14
  55. package/chunks/{chunk-3MX7D6QN.js → chunk-DASWPKXR.js} +32 -4
  56. package/chunks/{chunk-JSJFKYWT.js → chunk-DPSHAB47.js} +2 -2
  57. package/chunks/{chunk-7MJAZMXK.js → chunk-ECZFTRTP.js} +29 -78
  58. package/chunks/{chunk-H3FQOPPS.js → chunk-EKG3BHQY.js} +4 -4
  59. package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
  60. package/chunks/{chunk-EQY6POVO.js → chunk-F5XYN5VF.js} +2 -2
  61. package/chunks/chunk-FEOZBUMT.js +77 -0
  62. package/chunks/{chunk-L62SEJWY.js → chunk-FHUXCRAF.js} +4 -4
  63. package/chunks/{chunk-OFEVHGVU.js → chunk-FSJGBUQI.js} +818 -31
  64. package/chunks/{chunk-FBU7WRZI.js → chunk-FUTHTZVV.js} +1 -1
  65. package/chunks/{chunk-ZRKBI3DP.js → chunk-FZRES4GK.js} +1 -1
  66. package/chunks/{chunk-OKAIGAYW.js → chunk-G274ETR6.js} +3 -3
  67. package/chunks/{chunk-6GKMJPOC.js → chunk-GA3WUOO7.js} +5 -5
  68. package/chunks/{chunk-X362TMXZ.js → chunk-GAQOQMHY.js} +8 -6
  69. package/chunks/{chunk-WLXYAKV7.js → chunk-GG6RSNWS.js} +9 -4
  70. package/chunks/{chunk-CEW4HDPK.js → chunk-GUNTLALV.js} +2484 -362
  71. package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
  72. package/chunks/{chunk-RDRVMDWV.js → chunk-HIMIG6PI.js} +11 -11
  73. package/chunks/{chunk-MO7O5722.js → chunk-HQXQCIT2.js} +45 -5
  74. package/chunks/{chunk-LTNI523B.js → chunk-HT7L5FCZ.js} +28 -5
  75. package/chunks/{chunk-7NAWTFVY.js → chunk-IENO2YAT.js} +3 -3
  76. package/chunks/{chunk-3XJFUTNM.js → chunk-IK5TYYVR.js} +59 -12
  77. package/chunks/{chunk-AAR5SGMD.js → chunk-IVKLDHU6.js} +7 -5
  78. package/chunks/{chunk-6W6DI34P.js → chunk-IX7O5WI3.js} +180 -8
  79. package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
  80. package/chunks/{chunk-SPUYQB4T.js → chunk-JBAQ5BYX.js} +1 -1
  81. package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
  82. package/chunks/chunk-JDIUK2Y3.js +226 -0
  83. package/chunks/{chunk-L37RC7MQ.js → chunk-JUVTV4NF.js} +1 -1
  84. package/chunks/{chunk-WDWJ4OQJ.js → chunk-K2GBHL73.js} +4 -4
  85. package/chunks/{chunk-HHEFI4RP.js → chunk-KEVDWH3U.js} +857 -137
  86. package/chunks/{chunk-YU56QGXX.js → chunk-KTKETHMY.js} +1 -1
  87. package/chunks/{chunk-WDW64OW3.js → chunk-LGY7PG7Q.js} +5 -5
  88. package/chunks/{chunk-E67NFMF4.js → chunk-LKR7QQ63.js} +37 -3
  89. package/chunks/{chunk-4YWLED2A.js → chunk-LSFVUGXT.js} +9 -6
  90. package/chunks/{chunk-W34A5MJH.js → chunk-LTD3CHGS.js} +1 -1
  91. package/chunks/chunk-LXXMOYPL.js +22 -0
  92. package/chunks/{chunk-BBNVFRGD.js → chunk-MI2V6IWU.js} +1 -1
  93. package/chunks/{chunk-UFOKA4PR.js → chunk-O2K6BLPZ.js} +114 -4
  94. package/chunks/{chunk-B5I2IIWY.js → chunk-OBYAX5QZ.js} +6 -6
  95. package/chunks/{chunk-V7EQTZYR.js → chunk-OCQ2QTFJ.js} +203 -47
  96. package/chunks/{chunk-VBRRNQB7.js → chunk-OPVIKLKK.js} +112 -25
  97. package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
  98. package/chunks/{chunk-TTUO4DNG.js → chunk-OXOEOOQU.js} +126 -734
  99. package/chunks/{chunk-4FMG7EDJ.js → chunk-PWYLF7SS.js} +79 -16
  100. package/chunks/chunk-QFEY6OXH.js +45 -0
  101. package/chunks/{chunk-YX4LLZ3D.js → chunk-QPRDXJIC.js} +115 -40
  102. package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
  103. package/chunks/{chunk-XLIRF7IK.js → chunk-S4N3G4BB.js} +1 -1
  104. package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
  105. package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
  106. package/chunks/{chunk-PZL23GTM.js → chunk-T3W4SDRB.js} +2 -0
  107. package/chunks/chunk-T4TZQJ7W.js +48 -0
  108. package/chunks/{chunk-K4PZ5F5T.js → chunk-TVYM3Q3J.js} +101 -8
  109. package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
  110. package/chunks/{chunk-6OATMEYN.js → chunk-U2LNTX56.js} +12 -4
  111. package/chunks/{chunk-422XAKCK.js → chunk-U2XBPBO3.js} +4 -3
  112. package/chunks/{chunk-LNUXFLLJ.js → chunk-U4FJ26D2.js} +54 -6
  113. package/chunks/{chunk-ZQTZXVHP.js → chunk-U6OPT4H2.js} +4 -18
  114. package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
  115. package/chunks/{chunk-CUUXANEQ.js → chunk-URP6O2PP.js} +6 -1
  116. package/chunks/{chunk-GDQQRV43.js → chunk-V2FRLYHN.js} +3 -3
  117. package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
  118. package/chunks/{chunk-TXY2C3D2.js → chunk-VNN3JNYT.js} +1 -1
  119. package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
  120. package/chunks/{chunk-WX6SD4IQ.js → chunk-WEPXQKGP.js} +1 -1
  121. package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
  122. package/chunks/{chunk-URU5UEK6.js → chunk-XA7OKDWM.js} +135 -68
  123. package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
  124. package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
  125. package/chunks/{chunk-OATTJGPJ.js → chunk-Y72B36CP.js} +7 -7
  126. package/chunks/{chunk-ZPAHLFZU.js → chunk-Z2LBNX3R.js} +2 -2
  127. package/chunks/{chunk-XXJKGHZV.js → chunk-ZTSDZQZO.js} +131 -4
  128. package/chunks/{computer-use-IYTX45WA.js → computer-use-UIFBH25Y.js} +26 -26
  129. package/chunks/{config-utils-CFT33LTP.js → config-utils-2LHI7JXU.js} +3 -3
  130. package/chunks/{contextCommand-272V77WU.js → contextCommand-VGZHKEH2.js} +28 -28
  131. package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-DIJOV6HV.js} +2 -2
  132. package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-OFVI4H6I.js} +26 -26
  133. package/chunks/{cron-create-36TIFKRT.js → cron-create-34GVLSW5.js} +4 -4
  134. package/chunks/{cron-delete-OQD3WULU.js → cron-delete-NMVKUL45.js} +4 -4
  135. package/chunks/{cron-list-4533T2FH.js → cron-list-277ZOR7L.js} +4 -4
  136. package/chunks/{daemon-RNGFPMAB.js → daemon-72MEV3TY.js} +361 -84
  137. package/chunks/daemon-status-provider-ZJJ6AOG2.js +75 -0
  138. package/chunks/{de-2VCDRDGU.js → de-56TMDIKS.js} +7 -2
  139. package/chunks/{dist-3V3ZV6ML.js → dist-4W3UGU2A.js} +1 -1
  140. package/chunks/{dist-HNN7DR2L.js → dist-G6QCGO2K.js} +58 -30
  141. package/chunks/{dist-ERCPDVA6.js → dist-ILVRL322.js} +4 -51
  142. package/chunks/{dist-PHEPJLXD.js → dist-KEZ5JWH4.js} +2 -2
  143. package/chunks/{dist-JZE7F6YR.js → dist-LQHDHBPP.js} +1 -1
  144. package/chunks/{dist-MOEC47TR.js → dist-SVHAGOLN.js} +1 -1
  145. package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-NPF4PVUE.js} +27 -27
  146. package/chunks/{edit-OMAF2QDR.js → edit-F7CT6NZH.js} +27 -27
  147. package/chunks/{en-NJCA3TAA.js → en-AXS2N62H.js} +12 -3
  148. package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-Z4ET3MZL.js} +26 -26
  149. package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-VYR7T5NX.js} +27 -29
  150. package/chunks/{environment-7TEWMJYN.js → environment-MBTXL57Q.js} +28 -28
  151. package/chunks/{errors-I4VKVX3F.js → errors-HN36J4FR.js} +28 -28
  152. package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-RU7JYFMF.js} +26 -26
  153. package/chunks/exitPlanMode-LUBAWMZQ.js +390 -0
  154. package/chunks/{fast-path-ZA57TOH4.js → fast-path-RFT3CDNZ.js} +2 -2
  155. package/chunks/{fr-5F3E7WKD.js → fr-ZJPE5OVN.js} +7 -2
  156. package/chunks/{gemini-UOAKVXBG.js → gemini-37NTNKZF.js} +215 -231
  157. package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-76HNOYNQ.js} +5 -5
  158. package/chunks/{glob-4GJQ2UFF.js → glob-DWD7JCZE.js} +32 -27
  159. package/chunks/{grep-5QSYXF2E.js → grep-NJRXFV5C.js} +32 -27
  160. package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-7GBDXW6U.js} +30 -30
  161. package/chunks/{i18n-CYDUTF6F.js → i18n-MYD5VGED.js} +27 -27
  162. package/chunks/{initializer-NRFKUGIO.js → initializer-4DHPNAZG.js} +32 -32
  163. package/chunks/{installationInfo-WELKRHHE.js → installationInfo-RWOW6BZO.js} +27 -27
  164. package/chunks/{ja-66J6B53L.js → ja-57GG4QSL.js} +7 -2
  165. package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
  166. package/chunks/{list-JVDXEG2E.js → list-MMCNNHE7.js} +34 -34
  167. package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-UK4JWPYU.js} +31 -31
  168. package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-KCLY4XQM.js} +5 -5
  169. package/chunks/{ls-RXNIAQDE.js → ls-UNI4LAJ3.js} +4 -4
  170. package/chunks/{lsp-HB5LM5IL.js → lsp-HPACPJAN.js} +2 -2
  171. package/chunks/{mcp-YHOZN3ZM.js → mcp-AFCVA4UV.js} +31 -31
  172. package/chunks/{monitor-R7XZPJHQ.js → monitor-RK637BNO.js} +28 -27
  173. package/chunks/nonInteractiveCli-OUGWLHNV.js +129 -0
  174. package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-LY2X3CMF.js} +27 -27
  175. package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-MDYDW7IA.js} +14 -14
  176. package/chunks/{pidfile-XE4RRR2P.js → pidfile-2NUYRLKB.js} +27 -27
  177. package/chunks/processUtils-7QH3VBVN.js +29 -0
  178. package/chunks/{pt-TFZO5Y6T.js → pt-MCGZ3RZ4.js} +7 -2
  179. package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-3HT4TVDL.js} +28 -28
  180. package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-3A4TJVZT.js} +5 -5
  181. package/chunks/{read-file-XSUWXSR7.js → read-file-NE4FREFR.js} +10 -10
  182. package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-C6NT52T6.js} +2 -2
  183. package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-ENCU7QCL.js} +2 -2
  184. package/chunks/{ripGrep-APB3CDMU.js → ripGrep-DBLXWQCJ.js} +26 -26
  185. package/chunks/{ru-4L4LFHIT.js → ru-GA3NZW5Q.js} +7 -2
  186. package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-3NOCI6IL.js} +63 -39
  187. package/chunks/{runtime-EIO3NQKR.js → runtime-ZI7DSZSS.js} +35 -35
  188. package/chunks/{scheduler-JJDZBDRN.js → scheduler-SOVEP5K7.js} +26 -26
  189. package/chunks/{send-message-SR4WSXP2.js → send-message-5IFPZTPE.js} +3 -3
  190. package/chunks/{serve-WTIPB3EI.js → serve-DB6OCXIA.js} +31 -31
  191. package/chunks/{server-NJPHQHLH.js → server-LDY4YVU4.js} +2257 -648
  192. package/chunks/{session-O4AO7FTS.js → session-D6OG5SKX.js} +99 -72
  193. package/chunks/{settings-HQNDK7TG.js → settings-L52ZV5LO.js} +30 -30
  194. package/chunks/{shell-UIXM6PWG.js → shell-IU27OY3Q.js} +28 -26
  195. package/chunks/{skill-3XMB4ULV.js → skill-BSOJT7LE.js} +12 -12
  196. package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-HQAM25DD.js} +28 -29
  197. package/chunks/{src-USZKPUOC.js → src-7ZBIMTJZ.js} +130 -51
  198. package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-77457VVK.js} +28 -28
  199. package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-S7WC6EZG.js} +2310 -1835
  200. package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-ULOVVLY4.js} +3 -3
  201. package/chunks/{task-create-NUFOHU53.js → task-create-V2DCDSET.js} +7 -7
  202. package/chunks/{task-list-Z2IKQY3S.js → task-list-DPL5ZN55.js} +5 -5
  203. package/chunks/{task-stop-KQFIVQTJ.js → task-stop-CPEQWOT6.js} +2 -2
  204. package/chunks/{task-update-HKADXSTD.js → task-update-ZR45M5Q7.js} +7 -7
  205. package/chunks/{team-create-XXPRF3IQ.js → team-create-CO7HSUON.js} +26 -26
  206. package/chunks/{team-delete-SDNTGZLG.js → team-delete-HIWXCWJU.js} +5 -5
  207. package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-QDZF5YZY.js} +26 -26
  208. package/chunks/{theme-manager-P6UITO2L.js → theme-manager-UTUT3I4P.js} +27 -27
  209. package/chunks/todoWrite-HK6B3RHJ.js +358 -0
  210. package/chunks/{tool-search-DDNGK2LR.js → tool-search-2UUORA35.js} +11 -11
  211. package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-NTWG6G3F.js} +32 -34
  212. package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-YF37ZCN5.js} +27 -27
  213. package/chunks/update-relaunch-QFNHPMZZ.js +87 -0
  214. package/chunks/{updateCheck-QTVVISH7.js → updateCheck-B6O42VMD.js} +30 -28
  215. package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-SCIWJ4CX.js} +65 -65
  216. package/chunks/{version-U45RYOSD.js → version-7DA6LAI3.js} +1 -1
  217. package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-B62SJXM2.js} +5 -6
  218. package/chunks/{workflow-TCIAQYOA.js → workflow-Q5WG4THP.js} +27 -27
  219. package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-WWLAGWQW.js} +34 -34
  220. package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-BVYQVY2H.js} +1 -1
  221. package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-OD7ACADD.js} +32 -34
  222. package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-4LYJWS63.js} +37 -38
  223. package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-P2AQLZZS.js} +32 -32
  224. package/chunks/{write-file-JGRQR5VM.js → write-file-TEPGXNM3.js} +60 -27
  225. package/chunks/{zh-FSAH32JB.js → zh-E34DZ2S3.js} +12 -3
  226. package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-PEI2ZWUR.js} +12 -3
  227. package/cli-entry.js +92 -8
  228. package/cli.js +11 -11
  229. package/locales/ca.js +12 -2
  230. package/locales/de.js +12 -2
  231. package/locales/en.js +20 -5
  232. package/locales/fr.js +12 -2
  233. package/locales/ja.js +12 -2
  234. package/locales/pt.js +12 -2
  235. package/locales/ru.js +12 -2
  236. package/locales/zh-TW.js +19 -3
  237. package/locales/zh.js +19 -3
  238. package/package.json +3 -3
  239. package/web-shell/assets/{arc-CUeDlxvE.js → arc-Dh-N5oEG.js} +1 -1
  240. package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-DBOQgtfF.js} +1 -1
  241. package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-Dyxbuyju.js} +1 -1
  242. package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-DCJR5HPT.js} +1 -1
  243. package/web-shell/assets/channel-DY0fkcKT.js +1 -0
  244. package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-BkMUcy3O.js} +1 -1
  245. package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-BSm4pLQk.js} +1 -1
  246. package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-CuRr-XgW.js} +1 -1
  247. package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-CLv7-w3t.js} +1 -1
  248. package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-Cz_n3-JW.js} +1 -1
  249. package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-CFT_62Hq.js} +1 -1
  250. package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DWz6DOZ6.js} +1 -1
  251. package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-C-mRhUzw.js} +1 -1
  252. package/web-shell/assets/classDiagram-4FO5ZUOK-DBvJ6PZo.js +1 -0
  253. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBvJ6PZo.js +1 -0
  254. package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-BqCZS3i1.js} +1 -1
  255. package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-BGasdP8i.js} +1 -1
  256. package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-BSyLDkMy.js} +1 -1
  257. package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-CM-ZJxWC.js} +1 -1
  258. package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-wJdzt_C5.js} +1 -1
  259. package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DiH2fhpL.js} +1 -1
  260. package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-BZ9z1ZBl.js} +1 -1
  261. package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-BsyWDziR.js} +1 -1
  262. package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-CzdkxIrq.js} +1 -1
  263. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-javIv2r2.js} +1 -1
  264. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-CjHstylC.js} +1 -1
  265. package/web-shell/assets/{index-DzHwQkQq.js → index-BnJGxpah.js} +1 -1
  266. package/web-shell/assets/index-DhXB9nTa.js +1161 -0
  267. package/web-shell/assets/index-vYHgZ7bL.css +5 -0
  268. package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-yXuQsomo.js} +1 -1
  269. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-a85JhE6F.js} +1 -1
  270. package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-Dak_4BVj.js} +1 -1
  271. package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-COA-LuCV.js} +1 -1
  272. package/web-shell/assets/{linear-atZRE_L2.js → linear-DNAAAQWq.js} +1 -1
  273. package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-7Ff3aIUD.js} +5 -5
  274. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-_rCOIODU.js} +1 -1
  275. package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-C9QCQ8EW.js} +1 -1
  276. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CsaE4FA8.js} +1 -1
  277. package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-tV78naTg.js} +1 -1
  278. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Dk3Rw7BZ.js} +1 -1
  279. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-BGsAWcMX.js} +1 -1
  280. package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-zSxdtdoB.js} +1 -1
  281. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-vLEEtDpO.js +1 -0
  282. package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-j0BQh9Go.js} +1 -1
  283. package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-CRaUFFIu.js} +1 -1
  284. package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-D7Py_ofm.js} +1 -1
  285. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-BrDIAZcp.js} +1 -1
  286. package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-Cecdw-w2.js} +1 -1
  287. package/web-shell/index.html +2 -2
  288. package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
  289. package/chunks/chunk-2HRYPZT5.js +0 -25
  290. package/chunks/chunk-B7NUUEXC.js +0 -311
  291. package/chunks/chunk-CARU2RR2.js +0 -24
  292. package/chunks/chunk-GYTKQYDB.js +0 -23
  293. package/chunks/chunk-LQU7EVFA.js +0 -30
  294. package/chunks/chunk-OCPBI7J5.js +0 -18
  295. package/chunks/chunk-OJAMDVF5.js +0 -66
  296. package/chunks/chunk-QAW7PIHT.js +0 -168
  297. package/chunks/chunk-TEGEBB2I.js +0 -122
  298. package/chunks/daemon-status-provider-L4STG5VO.js +0 -76
  299. package/chunks/exitPlanMode-IHCJ5EEI.js +0 -909
  300. package/chunks/nonInteractiveCli-NSOB6D74.js +0 -129
  301. package/chunks/todoWrite-YNXB27GB.js +0 -531
  302. package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
  303. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
  304. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
  305. package/web-shell/assets/index-Cnvv4VcI.css +0 -5
  306. package/web-shell/assets/index-D1Uyklxa.js +0 -1088
  307. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
@@ -0,0 +1,75 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ createDaemonStatusProvider
5
+ } from "./chunk-U6OPT4H2.js";
6
+ import "./chunk-LXXMOYPL.js";
7
+ import "./chunk-K2GBHL73.js";
8
+ import "./chunk-E5Z2AVNV.js";
9
+ import "./chunk-2YSZE74N.js";
10
+ import "./chunk-KEVDWH3U.js";
11
+ import "./chunk-T3W4SDRB.js";
12
+ import "./chunk-6RLROE6G.js";
13
+ import "./chunk-COH43MRJ.js";
14
+ import "./chunk-X6YQWCIJ.js";
15
+ import "./chunk-O2K6BLPZ.js";
16
+ import "./chunk-URP6O2PP.js";
17
+ import "./chunk-W7FJ3N32.js";
18
+ import "./chunk-M5GB774H.js";
19
+ import "./chunk-UDXSXLER.js";
20
+ import "./chunk-KTKETHMY.js";
21
+ import "./chunk-VJNBRRZG.js";
22
+ import "./chunk-3YJZ6WNY.js";
23
+ import "./chunk-T4TZQJ7W.js";
24
+ import "./chunk-H6XPXXMH.js";
25
+ import "./chunk-5M6IDOMF.js";
26
+ import "./chunk-LKR7QQ63.js";
27
+ import "./chunk-4XCVGEEX.js";
28
+ import "./chunk-XSPFQQRE.js";
29
+ import "./chunk-4RPARQ5D.js";
30
+ import "./chunk-E2UVIFI2.js";
31
+ import "./chunk-XU457J4V.js";
32
+ import "./chunk-VDDGDZMA.js";
33
+ import "./chunk-J2MKYJKZ.js";
34
+ import "./chunk-SZRN75WQ.js";
35
+ import "./chunk-HTO4JFDZ.js";
36
+ import "./chunk-CPBF7KYF.js";
37
+ import "./chunk-VNN3JNYT.js";
38
+ import "./chunk-6AM5D4ME.js";
39
+ import "./chunk-OSSDHJDU.js";
40
+ import "./chunk-SGPFJMRP.js";
41
+ import "./chunk-335ECZTA.js";
42
+ import "./chunk-JCJPZMJV.js";
43
+ import "./chunk-66IT3EY2.js";
44
+ import "./chunk-4WKAA4KS.js";
45
+ import "./chunk-CR3C7WXL.js";
46
+ import "./chunk-U2LNTX56.js";
47
+ import "./chunk-VGC4I5JJ.js";
48
+ import "./chunk-FUTHTZVV.js";
49
+ import "./chunk-4CA4WUMS.js";
50
+ import "./chunk-WEPXQKGP.js";
51
+ import "./chunk-ANRANWVE.js";
52
+ import "./chunk-G274ETR6.js";
53
+ import "./chunk-Z2LBNX3R.js";
54
+ import "./chunk-JESCGQM3.js";
55
+ import "./chunk-VAJS2E2D.js";
56
+ import "./chunk-XVNQMZ2I.js";
57
+ import "./chunk-FEOZBUMT.js";
58
+ import "./chunk-CMVFTMRD.js";
59
+ import "./chunk-A4UCTEB5.js";
60
+ import "./chunk-XWRJCPHC.js";
61
+ import "./chunk-TYQMGACW.js";
62
+ import "./chunk-TYAMGABM.js";
63
+ import "./chunk-FCMNKVXT.js";
64
+ import "./chunk-DJ2GSRLV.js";
65
+ import "./chunk-4CHDYDG3.js";
66
+ import "./chunk-UE5TZ55T.js";
67
+ import "./chunk-75DOP5OR.js";
68
+ import "./chunk-DMTGGOSA.js";
69
+ import "./chunk-YQ3U5MUC.js";
70
+ import "./chunk-TB6UDU4T.js";
71
+ import "./chunk-5O2XNYP6.js";
72
+ import "./chunk-J2S4EL5Y.js";
73
+ export {
74
+ createDaemonStatusProvider
75
+ };
@@ -443,13 +443,13 @@ var de_default = {
443
443
  "Please include the name of the extension to uninstall as a positional argument.": "Bitte geben Sie den Namen der zu deinstallierenden Erweiterung als Positionsargument an.",
444
444
  "Enables an extension.": "Aktiviert eine Erweiterung.",
445
445
  "The name of the extension to enable.": "Der Name der zu aktivierenden Erweiterung.",
446
- "The scope to enable the extenison in. If not set, will be enabled in all scopes.": "Der Bereich, in dem die Erweiterung aktiviert werden soll. Wenn nicht gesetzt, wird sie in allen Bereichen aktiviert.",
446
+ "The scope to enable the extension in. If not set, will be enabled in all scopes.": "Der Bereich, in dem die Erweiterung aktiviert werden soll. Wenn nicht gesetzt, wird sie in allen Bereichen aktiviert.",
447
447
  'Extension "{{name}}" successfully enabled for scope "{{scope}}".': 'Erweiterung "{{name}}" erfolgreich f\xFCr Bereich "{{scope}}" aktiviert.',
448
448
  'Extension "{{name}}" successfully enabled in all scopes.': 'Erweiterung "{{name}}" erfolgreich in allen Bereichen aktiviert.',
449
449
  "Invalid scope: {{scope}}. Please use one of {{scopes}}.": "Ung\xFCltiger Bereich: {{scope}}. Bitte verwenden Sie einen von {{scopes}}.",
450
450
  "Disables an extension.": "Deaktiviert eine Erweiterung.",
451
451
  "The name of the extension to disable.": "Der Name der zu deaktivierenden Erweiterung.",
452
- "The scope to disable the extenison in.": "Der Bereich, in dem die Erweiterung deaktiviert werden soll.",
452
+ "The scope to disable the extension in.": "Der Bereich, in dem die Erweiterung deaktiviert werden soll.",
453
453
  'Extension "{{name}}" successfully disabled for scope "{{scope}}".': 'Erweiterung "{{name}}" erfolgreich f\xFCr Bereich "{{scope}}" deaktiviert.',
454
454
  'Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.': 'Erweiterung "{{name}}" erfolgreich aktualisiert: {{oldVersion}} \u2192 {{newVersion}}.',
455
455
  'Unable to install extension "{{name}}" due to missing install metadata': 'Erweiterung "{{name}}" kann aufgrund fehlender Installationsmetadaten nicht installiert werden',
@@ -1617,6 +1617,11 @@ var de_default = {
1617
1617
  "Run the following to update:": "F\xFChren Sie Folgendes zum Aktualisieren aus:",
1618
1618
  "Unable to auto-update this standalone installation. Please reinstall from:": "Diese Standalone-Installation kann nicht automatisch aktualisiert werden. Bitte neu installieren von:",
1619
1619
  "Manual update required. Please reinstall Qwen Code.": "Manuelles Update erforderlich. Bitte installieren Sie Qwen Code neu.",
1620
+ "This session uses the custom sandbox image {{image}}. Update that image and restart Qwen Code.": "Diese Sitzung verwendet das benutzerdefinierte Sandbox-Image {{image}}. Aktualisieren Sie das Image und starten Sie Qwen Code neu.",
1621
+ "Update Qwen Code on the host, then restart the sandbox.": "Aktualisieren Sie Qwen Code auf dem Host und starten Sie anschlie\xDFend die Sandbox neu.",
1622
+ "The update will be installed after you exit this session.": "Das Update wird nach dem Beenden dieser Sitzung installiert.",
1623
+ "Run /update to install the update on the host.": "F\xFChren Sie /update aus, um das Update auf dem Host zu installieren.",
1624
+ "Run /update to install the update.": "F\xFChren Sie /update aus, um das Update zu installieren.",
1620
1625
  // ============================================================================
1621
1626
  // reload-plugins command
1622
1627
  // ============================================================================
@@ -7,7 +7,7 @@ import {
7
7
  sanitizeLogText,
8
8
  sanitizePromptText,
9
9
  sanitizeSenderName
10
- } from "./chunk-SXU3KKNI.js";
10
+ } from "./chunk-ATJ7H5AS.js";
11
11
  import "./chunk-UDXSXLER.js";
12
12
  import "./chunk-H6XPXXMH.js";
13
13
  import {
@@ -11,7 +11,7 @@ import {
11
11
  isTerminalTaskLifecycleType,
12
12
  sanitizeLogText,
13
13
  sanitizeSenderName
14
- } from "./chunk-SXU3KKNI.js";
14
+ } from "./chunk-ATJ7H5AS.js";
15
15
  import "./chunk-UDXSXLER.js";
16
16
  import "./chunk-H6XPXXMH.js";
17
17
  import "./chunk-CR3C7WXL.js";
@@ -4743,7 +4743,8 @@ var ACK_EMOTION_ID = "2659900";
4743
4743
  var ACK_EMOTION_BG_ID = "im_bg_1";
4744
4744
  var EMOTION_API = "https://api.dingtalk.com/v1.0/robot/emotion";
4745
4745
  var GROUP_MSG_API = "https://api.dingtalk.com/v1.0/robot/groupMessages/send";
4746
- var GROUP_MSG_KEY = "sampleMarkdown";
4746
+ var DIRECT_MSG_API = "https://api.dingtalk.com/v1.0/robot/oToMessages/batchSend";
4747
+ var PROACTIVE_MSG_KEY = "sampleMarkdown";
4747
4748
  var TOKEN_API = "https://oapi.dingtalk.com/gettoken";
4748
4749
  var PROACTIVE_FETCH_TIMEOUT_MS = 15e3;
4749
4750
  var TEXT_MESSAGE_LIMIT = 3800;
@@ -5019,12 +5020,13 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5019
5020
  supportsProactiveSend() {
5020
5021
  return true;
5021
5022
  }
5022
- /**
5023
- * The group-message API needs a real openConversationId — reject DMs
5024
- * (a different API) and webhook-URL fallback chatIds.
5025
- */
5023
+ // Regular proactive paths accept only group targets; webhook tasks may use
5024
+ // DMs through the one-to-one API.
5026
5025
  supportsProactiveTarget(target) {
5027
- return target.isGroup === true && target.threadId === void 0 && this.isConversationId(target.chatId);
5026
+ return target.isGroup === true && target.threadId === void 0 && this.isStableTargetId(target.chatId);
5027
+ }
5028
+ supportsProactiveWebhookTarget(target) {
5029
+ return typeof target.isGroup === "boolean" && target.threadId === void 0 && this.isStableTargetId(target.chatId);
5028
5030
  }
5029
5031
  /**
5030
5032
  * Single-shot cold send: a failed chunk aborts the remainder (already-sent
@@ -5036,7 +5038,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5036
5038
  const chunks = normalizeDingTalkMarkdown(text);
5037
5039
  const title = extractTitle(text);
5038
5040
  for (let i = 0; i < chunks.length; i++) {
5039
- await this.sendProactiveChunk(target.chatId, i === 0 ? title : `${title} (cont.)`, chunks[i], `chunk ${i + 1}/${chunks.length}`);
5041
+ await this.sendProactiveChunk(target, i === 0 ? title : `${title} (cont.)`, chunks[i], `chunk ${i + 1}/${chunks.length}`);
5040
5042
  }
5041
5043
  }
5042
5044
  async getProactiveToken() {
@@ -5050,16 +5052,16 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5050
5052
  signal: AbortSignal.timeout(PROACTIVE_FETCH_TIMEOUT_MS)
5051
5053
  });
5052
5054
  data = await resp.json();
5053
- } catch (err) {
5054
- process.stderr.write(`[DingTalk:${this.name}] proactive send failed: token fetch error ${err}
5055
+ } catch {
5056
+ process.stderr.write(`[DingTalk:${this.name}] access token fetch failed.
5055
5057
  `);
5056
- throw new Error("DingTalk proactive send failed: could not fetch access token");
5058
+ throw new Error("DingTalk access token fetch failed");
5057
5059
  }
5058
5060
  if (!data.access_token) {
5059
5061
  const errmsg = sanitizeLogText(String(data.errmsg ?? ""), 200);
5060
- process.stderr.write(`[DingTalk:${this.name}] proactive send failed: gettoken errcode=${data.errcode} ${errmsg}
5062
+ process.stderr.write(`[DingTalk:${this.name}] access token request failed: gettoken errcode=${data.errcode} ${errmsg}
5061
5063
  `);
5062
- throw new Error(`DingTalk proactive send failed: gettoken errcode=${data.errcode}${errmsg ? ` ${errmsg}` : ""}`);
5064
+ throw new Error(`DingTalk access token request failed: gettoken errcode=${data.errcode}${errmsg ? ` ${errmsg}` : ""}`);
5063
5065
  }
5064
5066
  this.proactiveToken = {
5065
5067
  token: data.access_token,
@@ -5068,12 +5070,14 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5068
5070
  };
5069
5071
  return data.access_token;
5070
5072
  }
5071
- async sendProactiveChunk(conversationId, title, text, chunkLabel) {
5073
+ async sendProactiveChunk(target, title, text, chunkLabel) {
5074
+ const targetKind = target.isGroup === true ? "group" : "dm";
5072
5075
  for (let attempt = 0; ; attempt++) {
5073
5076
  const token = await this.getProactiveToken();
5074
5077
  let resp;
5075
5078
  try {
5076
- resp = await fetch(GROUP_MSG_API, {
5079
+ const targetBody = target.isGroup === true ? { openConversationId: target.chatId } : { userIds: [target.chatId] };
5080
+ resp = await fetch(target.isGroup === true ? GROUP_MSG_API : DIRECT_MSG_API, {
5077
5081
  method: "POST",
5078
5082
  headers: {
5079
5083
  "x-acs-dingtalk-access-token": token,
@@ -5081,15 +5085,15 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5081
5085
  },
5082
5086
  body: JSON.stringify({
5083
5087
  robotCode: this.config.clientId,
5084
- openConversationId: conversationId,
5085
- msgKey: GROUP_MSG_KEY,
5088
+ ...targetBody,
5089
+ msgKey: PROACTIVE_MSG_KEY,
5086
5090
  msgParam: JSON.stringify({ title, text })
5087
5091
  }),
5088
5092
  signal: AbortSignal.timeout(PROACTIVE_FETCH_TIMEOUT_MS)
5089
5093
  });
5090
5094
  } catch (err) {
5091
5095
  const cause = err.cause;
5092
- process.stderr.write(`[DingTalk:${this.name}] proactive send error (${chunkLabel}): ${err}${cause ? ` (${cause})` : ""}
5096
+ process.stderr.write(`[DingTalk:${this.name}] proactive send error (${targetKind}, ${chunkLabel}): ${err}${cause ? ` (${cause})` : ""}
5093
5097
  `);
5094
5098
  throw new Error(`DingTalk proactive send failed: ${err instanceof Error ? err.message : String(err)}`);
5095
5099
  }
@@ -5100,10 +5104,31 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5100
5104
  }
5101
5105
  if (!resp.ok) {
5102
5106
  const detail = sanitizeLogText(await resp.text().catch(() => ""), 300);
5103
- process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${chunkLabel}): HTTP ${resp.status} ${detail}
5107
+ process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${targetKind}, ${chunkLabel}): HTTP ${resp.status} ${detail}
5104
5108
  `);
5105
5109
  throw new Error(`DingTalk proactive send failed: HTTP ${resp.status}${detail ? ` ${detail}` : ""}`);
5106
5110
  }
5111
+ if (target.isGroup === false) {
5112
+ let data;
5113
+ try {
5114
+ data = await resp.json();
5115
+ } catch {
5116
+ process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${targetKind}, ${chunkLabel}): invalid JSON response
5117
+ `);
5118
+ throw new Error("DingTalk proactive send failed: invalid JSON response");
5119
+ }
5120
+ if (data.invalidStaffIdList?.includes(target.chatId)) {
5121
+ process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${targetKind}, ${chunkLabel}): invalid direct recipient
5122
+ `);
5123
+ throw new Error("DingTalk proactive send failed: invalid direct recipient");
5124
+ }
5125
+ if (data.flowControlledStaffIdList?.includes(target.chatId)) {
5126
+ process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${targetKind}, ${chunkLabel}): direct recipient rate limited
5127
+ `);
5128
+ throw new Error("DingTalk proactive send failed: direct recipient rate limited");
5129
+ }
5130
+ return;
5131
+ }
5107
5132
  await resp.body?.cancel();
5108
5133
  return;
5109
5134
  }
@@ -5167,12 +5192,8 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5167
5192
  process.stderr.write(`[DingTalk:${this.name}] Disconnected.
5168
5193
  `);
5169
5194
  }
5170
- /**
5171
- * The chatId passed to onPromptStart/onPromptEnd is `conversationId ||
5172
- * sessionWebhook` (see message handler below). Reactions and proactive
5173
- * sends require a real conversation ID — skip the webhook-URL fallback case.
5174
- */
5175
- isConversationId(chatId) {
5195
+ /** Stable API targets are conversation or user IDs, never webhook URLs. */
5196
+ isStableTargetId(chatId) {
5176
5197
  return !!chatId && !/^https?:\/\//i.test(chatId);
5177
5198
  }
5178
5199
  reactionKey(messageId, conversationId) {
@@ -5192,7 +5213,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5192
5213
  `);
5193
5214
  }
5194
5215
  startReaction(chatId, messageId, sessionId) {
5195
- if (!messageId || !this.isConversationId(chatId))
5216
+ if (!messageId || !this.isStableTargetId(chatId))
5196
5217
  return;
5197
5218
  if (!this.inboundMessageIds.has(messageId))
5198
5219
  return;
@@ -5220,7 +5241,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5220
5241
  });
5221
5242
  }
5222
5243
  stopReaction(chatId, messageId, sessionId) {
5223
- if (!messageId || !this.isConversationId(chatId))
5244
+ if (!messageId || !this.isStableTargetId(chatId))
5224
5245
  return;
5225
5246
  const key = this.reactionKey(messageId, chatId);
5226
5247
  if (sessionId) {
@@ -5484,10 +5505,17 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5484
5505
  * Images → base64 in envelope; files → saved to temp dir with path in text.
5485
5506
  */
5486
5507
  async attachMedia(envelope, downloadCode, mediaType, fileName) {
5487
- const token = this.getAccessToken();
5508
+ let token;
5509
+ try {
5510
+ token = await this.getProactiveToken();
5511
+ } catch {
5512
+ process.stderr.write(`[DingTalk:${this.name}] Cannot download media: access token refresh failed.
5513
+ `);
5514
+ return;
5515
+ }
5488
5516
  const robotCode = this.config.clientId;
5489
- if (!token || !robotCode) {
5490
- process.stderr.write(`[DingTalk:${this.name}] Cannot download media: missing token or robotCode.
5517
+ if (!robotCode) {
5518
+ process.stderr.write(`[DingTalk:${this.name}] Cannot download media: missing robotCode.
5491
5519
  `);
5492
5520
  return;
5493
5521
  }
@@ -9,7 +9,7 @@ import "./chunk-T2NCM2ET.js";
9
9
  import {
10
10
  ChannelBase,
11
11
  sanitizeLogText
12
- } from "./chunk-SXU3KKNI.js";
12
+ } from "./chunk-ATJ7H5AS.js";
13
13
  import "./chunk-UDXSXLER.js";
14
14
  import "./chunk-H6XPXXMH.js";
15
15
  import "./chunk-CR3C7WXL.js";
@@ -1843,7 +1843,6 @@ var WeComChannel = class extends ChannelBase {
1843
1843
  this.inFlightMessages.add(rawMessageId);
1844
1844
  }
1845
1845
  const text = extractText(body);
1846
- const explicitMention = getExplicitMention(body, this.wecom.botId);
1847
1846
  const quote = getRecord(body, "quote");
1848
1847
  const envelope = {
1849
1848
  channelName: this.name,
@@ -1853,7 +1852,9 @@ var WeComChannel = class extends ChannelBase {
1853
1852
  text,
1854
1853
  messageId: rawMessageId ?? messageId,
1855
1854
  isGroup,
1856
- isMentioned: !isGroup || (explicitMention ?? false),
1855
+ // WeCom only delivers group callbacks when the intelligent robot is
1856
+ // mentioned, so each delivered group message is already mention-scoped.
1857
+ isMentioned: true,
1857
1858
  isReplyToBot: getString(getRecord(quote, "from"), "userid") === this.wecom.botId,
1858
1859
  referencedText: extractQuoteText(quote)
1859
1860
  };
@@ -3155,54 +3156,6 @@ function getString(value, key) {
3155
3156
  return typeof raw === "string" ? raw : "";
3156
3157
  }
3157
3158
  __name(getString, "getString");
3158
- function getBoolean(value, key) {
3159
- const raw = value?.[key];
3160
- return typeof raw === "boolean" ? raw : void 0;
3161
- }
3162
- __name(getBoolean, "getBoolean");
3163
- function getExplicitMention(body, botId) {
3164
- const botSpecificMention = getBoolean(body, "isInAtList") ?? getBoolean(body, "is_in_at_list");
3165
- if (botSpecificMention !== void 0)
3166
- return botSpecificMention;
3167
- const mentions = collectMentionValues(body);
3168
- if (!mentions.present)
3169
- return getBoolean(body, "isMentioned");
3170
- return mentions.values.some((mention) => mention === botId || mention === "@all" || mention === "all");
3171
- }
3172
- __name(getExplicitMention, "getExplicitMention");
3173
- function collectMentionValues(body) {
3174
- const values = [];
3175
- let present = false;
3176
- for (const key of [
3177
- "mentions",
3178
- "mentioned_list",
3179
- "mentionedList",
3180
- "at_list",
3181
- "atList",
3182
- "at_userids",
3183
- "atUserIds"
3184
- ]) {
3185
- if (Object.prototype.hasOwnProperty.call(body, key)) {
3186
- present = true;
3187
- }
3188
- for (const item of getArray(body, key)) {
3189
- if (typeof item === "string") {
3190
- values.push(item);
3191
- continue;
3192
- }
3193
- const record = asRecord(item);
3194
- if (!record)
3195
- continue;
3196
- for (const itemKey of ["userid", "userId", "id", "open_id", "openId"]) {
3197
- const value = getString(record, itemKey);
3198
- if (value)
3199
- values.push(value);
3200
- }
3201
- }
3202
- }
3203
- return { present, values };
3204
- }
3205
- __name(collectMentionValues, "collectMentionValues");
3206
3159
 
3207
3160
  // packages/channels/wecom/dist/index.js
3208
3161
  var plugin = {
@@ -11,11 +11,11 @@ import {
11
11
  sendMessage,
12
12
  sendTyping,
13
13
  uploadToCdn
14
- } from "./chunk-BBNVFRGD.js";
14
+ } from "./chunk-MI2V6IWU.js";
15
15
  import {
16
16
  ChannelBase,
17
17
  isTerminalTaskLifecycleType
18
- } from "./chunk-SXU3KKNI.js";
18
+ } from "./chunk-ATJ7H5AS.js";
19
19
  import "./chunk-UDXSXLER.js";
20
20
  import "./chunk-H6XPXXMH.js";
21
21
  import {
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  ChannelBase,
5
5
  isTerminalTaskLifecycleType
6
- } from "./chunk-SXU3KKNI.js";
6
+ } from "./chunk-ATJ7H5AS.js";
7
7
  import "./chunk-UDXSXLER.js";
8
8
  import "./chunk-H6XPXXMH.js";
9
9
  import {
@@ -12,7 +12,7 @@ import "./chunk-T2NCM2ET.js";
12
12
  import {
13
13
  ChannelBase,
14
14
  isTerminalTaskLifecycleType
15
- } from "./chunk-SXU3KKNI.js";
15
+ } from "./chunk-ATJ7H5AS.js";
16
16
  import "./chunk-UDXSXLER.js";
17
17
  import "./chunk-H6XPXXMH.js";
18
18
  import {
@@ -7,52 +7,52 @@ import {
7
7
  startEarlyInputCapture,
8
8
  stopAndGetCapturedInput,
9
9
  stopEarlyInputCapture
10
- } from "./chunk-2FO5GFKZ.js";
11
- import "./chunk-K7CRWKOE.js";
10
+ } from "./chunk-3DJY4IFO.js";
11
+ import "./chunk-3YJZ6WNY.js";
12
+ import "./chunk-T4TZQJ7W.js";
12
13
  import "./chunk-H6XPXXMH.js";
13
14
  import "./chunk-5M6IDOMF.js";
14
- import "./chunk-E67NFMF4.js";
15
- import "./chunk-RCEEXIOO.js";
16
- import "./chunk-KKRTYONM.js";
17
- import "./chunk-TV6K2FB4.js";
15
+ import "./chunk-LKR7QQ63.js";
16
+ import "./chunk-4XCVGEEX.js";
17
+ import "./chunk-XSPFQQRE.js";
18
+ import "./chunk-4RPARQ5D.js";
18
19
  import "./chunk-E2UVIFI2.js";
19
- import "./chunk-6OATMEYN.js";
20
20
  import "./chunk-XU457J4V.js";
21
21
  import "./chunk-VDDGDZMA.js";
22
- import "./chunk-SPJQO2CE.js";
22
+ import "./chunk-J2MKYJKZ.js";
23
23
  import "./chunk-SZRN75WQ.js";
24
24
  import "./chunk-HTO4JFDZ.js";
25
25
  import "./chunk-CPBF7KYF.js";
26
- import "./chunk-TXY2C3D2.js";
26
+ import "./chunk-VNN3JNYT.js";
27
27
  import "./chunk-6AM5D4ME.js";
28
- import "./chunk-2Z5UX4KI.js";
29
- import "./chunk-ARKANCNX.js";
30
- import "./chunk-L5U3ELZX.js";
31
- import "./chunk-TYLOFD2U.js";
32
- import "./chunk-P6LART6G.js";
28
+ import "./chunk-OSSDHJDU.js";
29
+ import "./chunk-SGPFJMRP.js";
30
+ import "./chunk-335ECZTA.js";
31
+ import "./chunk-JCJPZMJV.js";
32
+ import "./chunk-66IT3EY2.js";
33
33
  import "./chunk-4WKAA4KS.js";
34
34
  import "./chunk-CR3C7WXL.js";
35
- import "./chunk-CARU2RR2.js";
35
+ import "./chunk-U2LNTX56.js";
36
36
  import "./chunk-VGC4I5JJ.js";
37
- import "./chunk-FBU7WRZI.js";
38
- import "./chunk-Y66VOBRP.js";
39
- import "./chunk-WX6SD4IQ.js";
40
- import "./chunk-2UUAIFQO.js";
41
- import "./chunk-OKAIGAYW.js";
42
- import "./chunk-ZPAHLFZU.js";
37
+ import "./chunk-FUTHTZVV.js";
38
+ import "./chunk-4CA4WUMS.js";
39
+ import "./chunk-WEPXQKGP.js";
40
+ import "./chunk-ANRANWVE.js";
41
+ import "./chunk-G274ETR6.js";
42
+ import "./chunk-Z2LBNX3R.js";
43
43
  import "./chunk-JESCGQM3.js";
44
- import "./chunk-WIEO4CWB.js";
44
+ import "./chunk-VAJS2E2D.js";
45
45
  import "./chunk-XVNQMZ2I.js";
46
- import "./chunk-B7NUUEXC.js";
47
- import "./chunk-TQBODCFD.js";
46
+ import "./chunk-FEOZBUMT.js";
47
+ import "./chunk-CMVFTMRD.js";
48
48
  import "./chunk-A4UCTEB5.js";
49
49
  import "./chunk-XWRJCPHC.js";
50
- import "./chunk-4LD5APFL.js";
50
+ import "./chunk-TYQMGACW.js";
51
51
  import "./chunk-TYAMGABM.js";
52
52
  import "./chunk-FCMNKVXT.js";
53
53
  import "./chunk-DJ2GSRLV.js";
54
- import "./chunk-LQIDP6K5.js";
55
- import "./chunk-7NFB7LBQ.js";
54
+ import "./chunk-4CHDYDG3.js";
55
+ import "./chunk-UE5TZ55T.js";
56
56
  import "./chunk-75DOP5OR.js";
57
57
  import "./chunk-DMTGGOSA.js";
58
58
  import "./chunk-YQ3U5MUC.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  checkTeamMemorySecrets
5
- } from "./chunk-QAW7PIHT.js";
5
+ } from "./chunk-QFEY6OXH.js";
6
6
  import {
7
7
  CommitAttributionService,
8
8
  FileEncoding,
@@ -13,27 +13,27 @@ import {
13
13
  getDiffStat,
14
14
  needsUtf8Bom,
15
15
  safeLiteralReplace
16
- } from "./chunk-K7CRWKOE.js";
16
+ } from "./chunk-3YJZ6WNY.js";
17
+ import "./chunk-T4TZQJ7W.js";
17
18
  import "./chunk-H6XPXXMH.js";
18
19
  import "./chunk-5M6IDOMF.js";
19
- import "./chunk-E67NFMF4.js";
20
- import "./chunk-RCEEXIOO.js";
21
- import "./chunk-KKRTYONM.js";
22
- import "./chunk-TV6K2FB4.js";
20
+ import "./chunk-LKR7QQ63.js";
21
+ import "./chunk-4XCVGEEX.js";
22
+ import "./chunk-XSPFQQRE.js";
23
+ import "./chunk-4RPARQ5D.js";
23
24
  import "./chunk-E2UVIFI2.js";
24
- import "./chunk-6OATMEYN.js";
25
25
  import "./chunk-XU457J4V.js";
26
26
  import "./chunk-VDDGDZMA.js";
27
- import "./chunk-SPJQO2CE.js";
27
+ import "./chunk-J2MKYJKZ.js";
28
28
  import "./chunk-SZRN75WQ.js";
29
29
  import "./chunk-HTO4JFDZ.js";
30
30
  import "./chunk-CPBF7KYF.js";
31
- import "./chunk-TXY2C3D2.js";
31
+ import "./chunk-VNN3JNYT.js";
32
32
  import "./chunk-6AM5D4ME.js";
33
- import "./chunk-2Z5UX4KI.js";
34
- import "./chunk-ARKANCNX.js";
35
- import "./chunk-L5U3ELZX.js";
36
- import "./chunk-TYLOFD2U.js";
33
+ import "./chunk-OSSDHJDU.js";
34
+ import "./chunk-SGPFJMRP.js";
35
+ import "./chunk-335ECZTA.js";
36
+ import "./chunk-JCJPZMJV.js";
37
37
  import {
38
38
  FileOperationEvent,
39
39
  ReadFileTool,
@@ -41,36 +41,36 @@ import {
41
41
  getLanguageFromFilePath,
42
42
  getSpecificMimeType,
43
43
  logFileOperation
44
- } from "./chunk-P6LART6G.js";
44
+ } from "./chunk-66IT3EY2.js";
45
45
  import "./chunk-4WKAA4KS.js";
46
46
  import "./chunk-CR3C7WXL.js";
47
- import "./chunk-CARU2RR2.js";
47
+ import "./chunk-U2LNTX56.js";
48
48
  import "./chunk-VGC4I5JJ.js";
49
49
  import {
50
50
  isAnyAutoMemPath,
51
51
  isTeamAutoMemPath
52
- } from "./chunk-FBU7WRZI.js";
53
- import "./chunk-Y66VOBRP.js";
54
- import "./chunk-WX6SD4IQ.js";
52
+ } from "./chunk-FUTHTZVV.js";
53
+ import "./chunk-4CA4WUMS.js";
54
+ import "./chunk-WEPXQKGP.js";
55
55
  import {
56
56
  BaseDeclarativeTool,
57
57
  ToolDisplayNames,
58
58
  ToolNames
59
- } from "./chunk-2UUAIFQO.js";
60
- import "./chunk-OKAIGAYW.js";
61
- import "./chunk-ZPAHLFZU.js";
59
+ } from "./chunk-ANRANWVE.js";
60
+ import "./chunk-G274ETR6.js";
61
+ import "./chunk-Z2LBNX3R.js";
62
62
  import "./chunk-JESCGQM3.js";
63
- import "./chunk-WIEO4CWB.js";
63
+ import "./chunk-VAJS2E2D.js";
64
64
  import "./chunk-XVNQMZ2I.js";
65
- import "./chunk-B7NUUEXC.js";
66
- import "./chunk-TQBODCFD.js";
65
+ import "./chunk-FEOZBUMT.js";
66
+ import "./chunk-CMVFTMRD.js";
67
67
  import "./chunk-A4UCTEB5.js";
68
68
  import "./chunk-XWRJCPHC.js";
69
- import "./chunk-4LD5APFL.js";
69
+ import "./chunk-TYQMGACW.js";
70
70
  import "./chunk-TYAMGABM.js";
71
71
  import "./chunk-FCMNKVXT.js";
72
72
  import "./chunk-DJ2GSRLV.js";
73
- import "./chunk-LQIDP6K5.js";
73
+ import "./chunk-4CHDYDG3.js";
74
74
  import {
75
75
  createDebugLogger,
76
76
  getErrorMessage,
@@ -78,7 +78,7 @@ import {
78
78
  makeRelative,
79
79
  shortenPath,
80
80
  unescapePath
81
- } from "./chunk-7NFB7LBQ.js";
81
+ } from "./chunk-UE5TZ55T.js";
82
82
  import "./chunk-75DOP5OR.js";
83
83
  import "./chunk-DMTGGOSA.js";
84
84
  import "./chunk-YQ3U5MUC.js";