@qwen-code/qwen-code 0.19.8 → 0.19.9

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 (434) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +60 -51
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +9 -2
  7. package/bundled/qc-helper/docs/features/channels/overview.md +71 -4
  8. package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
  9. package/bundled/qc-helper/docs/features/code-review.md +29 -5
  10. package/bundled/qc-helper/docs/features/commands.md +39 -38
  11. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  12. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  13. package/bundled/qc-helper/docs/integration-vscode.md +2 -2
  14. package/bundled/qc-helper/docs/qwen-serve.md +29 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +93 -22
  17. package/bundled/review/SKILL.md +295 -86
  18. package/chunks/MaxSizedBox-6HYJ3ZPJ.js +70 -0
  19. package/chunks/{StandaloneSessionPicker-EYRGH6PJ.js → StandaloneSessionPicker-WS4GXYOG.js} +79 -79
  20. package/chunks/{acpAgent-GRFTTRHW.js → acpAgent-5FWSOZL5.js} +968 -200
  21. package/chunks/agent-HOLHB3RT.js +68 -0
  22. package/chunks/agent-headless-SXL6H56A.js +62 -0
  23. package/chunks/{anthropicContentGenerator-CPF22MA7.js → anthropicContentGenerator-L73TO3DB.js} +187 -31
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
  26. package/chunks/bridge-BCJQ7BBB.js +78 -0
  27. package/chunks/{ca-MKD32FQL.js → ca-UJ6HC4H2.js} +64 -5
  28. package/chunks/{channel-worker-supervisor-NZQUOEFJ.js → channel-worker-supervisor-WSOAAYUO.js} +137 -13
  29. package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
  30. package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
  31. package/chunks/{chunk-DIWVZ3VM.js → chunk-34MW4KTI.js} +5 -5
  32. package/chunks/{chunk-IBY3Q3HG.js → chunk-34Z3U5RQ.js} +508 -126
  33. package/chunks/{chunk-UXEW557D.js → chunk-3AHXV67U.js} +3 -3
  34. package/chunks/{chunk-O2YT7VB4.js → chunk-3BTRNWWD.js} +1 -1
  35. package/chunks/chunk-3G7CIHVV.js +71 -0
  36. package/chunks/{chunk-FBET5XZ2.js → chunk-3SJSQXNS.js} +20 -5
  37. package/chunks/{chunk-BUZ6HGL4.js → chunk-3VAGG5T5.js} +248 -55
  38. package/chunks/{chunk-M7S4GK5Z.js → chunk-4C5BQ2D2.js} +74 -27
  39. package/chunks/{chunk-5MBO76SL.js → chunk-4GORAUCN.js} +3 -3
  40. package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
  41. package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
  42. package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
  43. package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
  44. package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
  45. package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
  46. package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
  47. package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
  48. package/chunks/{chunk-YDOXPLYL.js → chunk-5HOMWMCL.js} +1147 -738
  49. package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
  50. package/chunks/{chunk-ZL5HN75Q.js → chunk-5SFOMFG4.js} +2 -2
  51. package/chunks/{chunk-2EM7ECZD.js → chunk-5U27BZ72.js} +179 -63
  52. package/chunks/{chunk-JRQ7EVGE.js → chunk-5VXNZWGF.js} +2 -2
  53. package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
  54. package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
  55. package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
  56. package/chunks/{chunk-PUVCVELY.js → chunk-6PESIEKJ.js} +4 -4
  57. package/chunks/{chunk-3UP777ZS.js → chunk-6RLROE6G.js} +1 -1
  58. package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
  59. package/chunks/{chunk-RMLZAUWH.js → chunk-77XJ3SWN.js} +10 -12
  60. package/chunks/{chunk-L46XKEGM.js → chunk-7PU4FYLG.js} +5 -8
  61. package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
  62. package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
  63. package/chunks/{chunk-OQXDAMKY.js → chunk-A3XKDTSH.js} +8 -8
  64. package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
  65. package/chunks/{chunk-TSPB77TG.js → chunk-AKIVHSJR.js} +923 -2892
  66. package/chunks/{chunk-FQNC62B2.js → chunk-ATAKVRIF.js} +11 -11
  67. package/chunks/{chunk-GSHQYYIV.js → chunk-AURZZYMD.js} +6 -26
  68. package/chunks/{chunk-CHB5SLZZ.js → chunk-B4G2WOFA.js} +3 -3
  69. package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
  70. package/chunks/chunk-BAPGSC7U.js +239 -0
  71. package/chunks/{chunk-UX6OTBVD.js → chunk-BMGVRZN4.js} +2 -2
  72. package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
  73. package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
  74. package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
  75. package/chunks/chunk-CC2ITGCF.js +176 -0
  76. package/chunks/{chunk-HDOH3QYE.js → chunk-CCDMCZPP.js} +2 -2
  77. package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
  78. package/chunks/{chunk-BOBOCR5H.js → chunk-CLFKOZEK.js} +4 -4
  79. package/chunks/{chunk-P3XEEI3X.js → chunk-CNEIYWSA.js} +38 -9
  80. package/chunks/{chunk-GLE2YUPU.js → chunk-COH43MRJ.js} +1 -1
  81. package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
  82. package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
  83. package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
  84. package/chunks/{chunk-CD6USWHZ.js → chunk-CUMMSHH6.js} +2 -2
  85. package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
  86. package/chunks/{chunk-WQTHLB5T.js → chunk-D2GFWEXB.js} +7 -7
  87. package/chunks/{chunk-I6WGFJJ3.js → chunk-D5SKC4YG.js} +38 -12
  88. package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
  89. package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
  90. package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
  91. package/chunks/{chunk-A5JOJ77H.js → chunk-E2IY465S.js} +38 -15
  92. package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
  93. package/chunks/{chunk-SQ2UATK7.js → chunk-EAXLGSFP.js} +11 -11
  94. package/chunks/{chunk-JCH35JB3.js → chunk-ECNYL4AA.js} +2 -2
  95. package/chunks/{chunk-E7EMCSUG.js → chunk-EGYZ275M.js} +64 -42
  96. package/chunks/{chunk-6VK6FIMQ.js → chunk-EMDMPBJ4.js} +415 -379
  97. package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
  98. package/chunks/{chunk-V35MD7KN.js → chunk-GRC5HGPI.js} +1 -1
  99. package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
  100. package/chunks/{chunk-27BHARDE.js → chunk-GWLSNBG4.js} +2103 -13
  101. package/chunks/chunk-GZRTYZ2R.js +292 -0
  102. package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
  103. package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
  104. package/chunks/{chunk-DICGXFAI.js → chunk-HKMAENAO.js} +8 -8
  105. package/chunks/{chunk-ZE6E424U.js → chunk-HPDUL5MF.js} +2 -2
  106. package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
  107. package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
  108. package/chunks/{chunk-ON3JA3RU.js → chunk-HVY356M2.js} +7 -9
  109. package/chunks/{chunk-GGQQA4JW.js → chunk-IAVB3HM3.js} +2 -2
  110. package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
  111. package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
  112. package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
  113. package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
  114. package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
  115. package/chunks/{chunk-WF4FAXDL.js → chunk-JZETEN3Z.js} +62 -62
  116. package/chunks/{chunk-GN3F6PIU.js → chunk-K434OPES.js} +5 -5
  117. package/chunks/{chunk-YKZIAK7C.js → chunk-KHUQZZJ6.js} +66 -16
  118. package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
  119. package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
  120. package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
  121. package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
  122. package/chunks/{chunk-DHOLNQLC.js → chunk-L6P4KPHR.js} +12 -12
  123. package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
  124. package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
  125. package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
  126. package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
  127. package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
  128. package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
  129. package/chunks/{chunk-BVYU3ZTI.js → chunk-N3EMS75V.js} +73 -30
  130. package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
  131. package/chunks/{chunk-3GNOQZDC.js → chunk-NVYTCB5Z.js} +4797 -2620
  132. package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
  133. package/chunks/chunk-OQ4DRIOA.js +296 -0
  134. package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
  135. package/chunks/{chunk-AYNCLGTW.js → chunk-P67PFTUT.js} +8 -51
  136. package/chunks/{chunk-VGGOPZUL.js → chunk-PDZ7MBDG.js} +12 -5
  137. package/chunks/{chunk-WHJQ3JUS.js → chunk-PODM4SZ4.js} +12 -12
  138. package/chunks/{chunk-JPALE3PA.js → chunk-PVZM22CK.js} +6 -6
  139. package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
  140. package/chunks/{chunk-L4AMBVQG.js → chunk-Q4YQW46J.js} +31 -17
  141. package/chunks/{chunk-XYR5RUA5.js → chunk-Q6I5QHMH.js} +10 -3
  142. package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
  143. package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
  144. package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
  145. package/chunks/{chunk-Z3I3QJK3.js → chunk-QRUIS3DN.js} +1 -1
  146. package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
  147. package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
  148. package/chunks/{chunk-XOHNA2S6.js → chunk-QYMQSECS.js} +3 -3
  149. package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
  150. package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
  151. package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
  152. package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
  153. package/chunks/{chunk-BOBRZZKD.js → chunk-SCGXUJBT.js} +5 -5
  154. package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
  155. package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
  156. package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
  157. package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
  158. package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
  159. package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
  160. package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
  161. package/chunks/chunk-TO6QE22P.js +444 -0
  162. package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
  163. package/chunks/chunk-U2NNEY4R.js +38 -0
  164. package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
  165. package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
  166. package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
  167. package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
  168. package/chunks/{chunk-DCZWC4PF.js → chunk-VA4KQY6V.js} +5 -5
  169. package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
  170. package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
  171. package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
  172. package/chunks/{chunk-J7RCB6N5.js → chunk-VTU57BWZ.js} +2 -2
  173. package/chunks/{chunk-LAXNEOBG.js → chunk-VWPVHAMO.js} +15 -3
  174. package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
  175. package/chunks/{chunk-JZHIQJOE.js → chunk-W3JHSWRP.js} +6 -6
  176. package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
  177. package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
  178. package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
  179. package/chunks/{chunk-PMFULMLX.js → chunk-WQUQVGTF.js} +2057 -266
  180. package/chunks/chunk-X4NKFGFJ.js +81 -0
  181. package/chunks/{chunk-YHKAK72D.js → chunk-X6TJ3YZV.js} +102 -16
  182. package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
  183. package/chunks/{chunk-O7FIRWJV.js → chunk-XLA62MYB.js} +3 -3
  184. package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
  185. package/chunks/{chunk-EEN2TKST.js → chunk-XUOOWUZS.js} +2 -2
  186. package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
  187. package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
  188. package/chunks/{chunk-TI3BWD4D.js → chunk-XYQSMABS.js} +39 -19
  189. package/chunks/chunk-YAF2MQZ6.js +19 -0
  190. package/chunks/{chunk-O33TBKDC.js → chunk-YAUFFXDS.js} +154 -19
  191. package/chunks/{chunk-OACJLMLD.js → chunk-YLV3XXFB.js} +2 -2
  192. package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
  193. package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
  194. package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
  195. package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
  196. package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
  197. package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
  198. package/chunks/{computer-use-WMY3UOBX.js → computer-use-HM37RX6A.js} +50 -50
  199. package/chunks/config-utils-NV2SVGPB.js +23 -0
  200. package/chunks/contextCommand-OF5SFGH2.js +68 -0
  201. package/chunks/create-sub-session-INX7TXJI.js +207 -0
  202. package/chunks/create-sub-session-KPRT7ECJ.js +375 -0
  203. package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
  204. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
  205. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
  206. package/chunks/{daemon-WPAENEBW.js → daemon-ARHTSTXP.js} +478 -6
  207. package/chunks/daemon-status-provider-B2UTZUJ2.js +76 -0
  208. package/chunks/{de-ZFPPQVSF.js → de-EBJN3OVN.js} +64 -5
  209. package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
  210. package/chunks/{dist-Z34QPAQW.js → dist-PNVLTKTL.js} +374 -78
  211. package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
  212. package/chunks/{dist-BEXOZXLQ.js → dist-QYCAEZIT.js} +32 -15
  213. package/chunks/{dist-H2AEJCZ5.js → dist-R7LN5AZE.js} +5 -5
  214. package/chunks/{dist-E6UANPIM.js → dist-VHV4EVHG.js} +1011 -197
  215. package/chunks/{dist-O2IRTRPP.js → dist-WKPOYU7O.js} +10 -10
  216. package/chunks/{dist-SCFLLYMK.js → dist-XKU3ABM5.js} +12 -11
  217. package/chunks/earlyInputCapture-3VTHRC4C.js +69 -0
  218. package/chunks/{edit-OTYWAXGP.js → edit-VNI4NJ73.js} +51 -51
  219. package/chunks/{en-N4EPZAQI.js → en-5A6LA7RK.js} +74 -6
  220. package/chunks/{enter-worktree-HNYBDVCX.js → enter-worktree-IYYBKPZT.js} +50 -50
  221. package/chunks/{enterPlanMode-CJCNGT63.js → enterPlanMode-GMC5FD5A.js} +50 -50
  222. package/chunks/environment-5HSSRMJ7.js +88 -0
  223. package/chunks/errors-HMFCJJ7P.js +75 -0
  224. package/chunks/{exit-worktree-DUUKOE3X.js → exit-worktree-6BHCMP5G.js} +50 -50
  225. package/chunks/{exitPlanMode-AMMSXOAJ.js → exitPlanMode-CJW7G74W.js} +51 -51
  226. package/chunks/{fast-path-OV6NIP3K.js → fast-path-FRDMDVHG.js} +8 -8
  227. package/chunks/{fast-path-settings-7RIFI3PK.js → fast-path-settings-5QZE64HR.js} +6 -6
  228. package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
  229. package/chunks/{fr-5WWMY53B.js → fr-YXRABLYZ.js} +64 -5
  230. package/chunks/{gemini-NQ3WWBKB.js → gemini-QYSEGHAX.js} +119 -111
  231. package/chunks/{geminiContentGenerator-CDUNEJQE.js → geminiContentGenerator-J7YNZDYP.js} +9 -9
  232. package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
  233. package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
  234. package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
  235. package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
  236. package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
  237. package/chunks/{glob-ROV3YS4R.js → glob-BRCSGFOT.js} +95 -74
  238. package/chunks/{grep-NRITKDCD.js → grep-EE2DUOSY.js} +50 -50
  239. package/chunks/handleAutoUpdate-5NWTLR67.js +69 -0
  240. package/chunks/i18n-BASPENNQ.js +84 -0
  241. package/chunks/initializer-UTQ7FB7G.js +71 -0
  242. package/chunks/installationInfo-W6V4DT7W.js +65 -0
  243. package/chunks/{ja-CUHZOLEJ.js → ja-7VQOANVG.js} +64 -5
  244. package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
  245. package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
  246. package/chunks/list-DEICDL65.js +74 -0
  247. package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +68 -0
  248. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
  249. package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
  250. package/chunks/{ls-7MFU2QYW.js → ls-ZB2BDP6T.js} +6 -6
  251. package/chunks/{lsp-XHDTPTGV.js → lsp-V5DN4YUJ.js} +4 -4
  252. package/chunks/mcp-L5JXEEIA.js +68 -0
  253. package/chunks/{monitor-FL2ZO33W.js → monitor-X5Z3H4FY.js} +50 -50
  254. package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
  255. package/chunks/nonInteractiveCli-LS2K4X6A.js +124 -0
  256. package/chunks/{notebook-edit-6PULTHL5.js → notebook-edit-TRM2QIJK.js} +51 -51
  257. package/chunks/openaiContentGenerator-AAYONPMF.js +56 -0
  258. package/chunks/pidfile-D4I4FTVA.js +73 -0
  259. package/chunks/{pt-OLYN42DS.js → pt-2C6YCSHL.js} +64 -5
  260. package/chunks/{qwenContentGenerator-NX2E7PB7.js → qwenContentGenerator-K3HZ2H76.js} +52 -52
  261. package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
  262. package/chunks/read-file-7SZSIZOL.js +30 -0
  263. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
  264. package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
  265. package/chunks/{record-artifact-SQ2OKRJW.js → record-artifact-4XKZX3UW.js} +4 -4
  266. package/chunks/ripGrep-YNPFVCZP.js +60 -0
  267. package/chunks/{ru-LDM3GWVQ.js → ru-6BBHVZZV.js} +64 -5
  268. package/chunks/{run-qwen-serve-JK2DL7PI.js → run-qwen-serve-DMWV5N6L.js} +395 -74
  269. package/chunks/runtime-57WWRVHN.js +94 -0
  270. package/chunks/{scheduler-O4IGVZKK.js → scheduler-YBLGWSIL.js} +51 -51
  271. package/chunks/{send-message-76GT3JMC.js → send-message-F36YD6KQ.js} +7 -7
  272. package/chunks/serve-R63NK3CV.js +74 -0
  273. package/chunks/{server-SGNPKX2O.js → server-Z22GCAXP.js} +3956 -869
  274. package/chunks/{session-5BNM25EZ.js → session-HKAAI7BN.js} +117 -112
  275. package/chunks/settings-3EYN66GK.js +118 -0
  276. package/chunks/shell-6YXINTWJ.js +68 -0
  277. package/chunks/{skill-I22QK5XS.js → skill-OO57P4X6.js} +24 -24
  278. package/chunks/spawnChannel-JD7G4VU6.js +70 -0
  279. package/chunks/{src-BBQSM46M.js → src-G5UPLZSZ.js} +122 -52
  280. package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
  281. package/chunks/standalone-update-OB7F4JPZ.js +79 -0
  282. package/chunks/{startInteractiveUI-JII36UGN.js → startInteractiveUI-73EGLIIH.js} +1775 -1663
  283. package/chunks/stdioHelpers-UMY72QRP.js +14 -0
  284. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
  285. package/chunks/task-create-FRGOEIKY.js +22 -0
  286. package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
  287. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
  288. package/chunks/{task-update-XYWMHJGJ.js → task-update-YRA532MT.js} +12 -12
  289. package/chunks/{team-create-A7NUU5AQ.js → team-create-PECAAPXK.js} +50 -50
  290. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
  291. package/chunks/{team-plan-approval-TOQRJ2KI.js → team-plan-approval-L6F434RY.js} +50 -50
  292. package/chunks/theme-manager-ZG4RY6GU.js +64 -0
  293. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
  294. package/chunks/{tool-search-SZ4EFS2T.js → tool-search-THVIWAPB.js} +24 -24
  295. package/chunks/total-session-admission-JOKNRIIA.js +72 -0
  296. package/chunks/trustedFolders-EOGT3UVS.js +79 -0
  297. package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
  298. package/chunks/updateCheck-2KYEYVSB.js +69 -0
  299. package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
  300. package/chunks/validateNonInterActiveAuth-EN6ZQSR2.js +190 -0
  301. package/chunks/{version-NO2XSNNP.js → version-3UEA6ZIR.js} +3 -3
  302. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
  303. package/chunks/{workflow-WO2H6NRI.js → workflow-QCCCMYP3.js} +51 -51
  304. package/chunks/workspace-providers-status-4KMGETOJ.js +71 -0
  305. package/chunks/workspace-registry-24QFLQYH.js +76 -0
  306. package/chunks/workspace-service-RVLBMSMZ.js +80 -0
  307. package/chunks/workspace-skills-status-DS4ZVFTO.js +70 -0
  308. package/chunks/{write-file-PX2Z7IBE.js → write-file-I3MUDRIE.js} +51 -51
  309. package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
  310. package/chunks/{zh-J4F6QWQV.js → zh-RQE7I22T.js} +74 -6
  311. package/chunks/{zh-TW-XVDWOLSW.js → zh-TW-TBPQGHKH.js} +74 -6
  312. package/cli.js +18 -17
  313. package/locales/ca.js +85 -7
  314. package/locales/de.js +84 -7
  315. package/locales/en.js +101 -7
  316. package/locales/fr.js +85 -7
  317. package/locales/ja.js +86 -6
  318. package/locales/pt.js +84 -7
  319. package/locales/ru.js +84 -7
  320. package/locales/zh-TW.js +97 -6
  321. package/locales/zh.js +97 -6
  322. package/package.json +3 -6
  323. package/web-shell/assets/{arc-BWyoJpY2.js → arc-C15hqnJe.js} +1 -1
  324. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BT0mGrz2.js → architectureDiagram-3BPJPVTR-B-At37J_.js} +1 -1
  325. package/web-shell/assets/{blockDiagram-GPEHLZMM-BLgUWvyf.js → blockDiagram-GPEHLZMM-B51wjcU7.js} +1 -1
  326. package/web-shell/assets/{c4Diagram-AAUBKEIU-DYx9M7oU.js → c4Diagram-AAUBKEIU-xBK7BAwN.js} +1 -1
  327. package/web-shell/assets/channel-CLiQD50f.js +1 -0
  328. package/web-shell/assets/{chunk-2J33WTMH-CfMHWbuZ.js → chunk-2J33WTMH-xKmLg7Yr.js} +1 -1
  329. package/web-shell/assets/{chunk-4BX2VUAB-B1URoqEV.js → chunk-4BX2VUAB-BfkdKZCM.js} +1 -1
  330. package/web-shell/assets/{chunk-55IACEB6-DAIaM4QF.js → chunk-55IACEB6-DT713sZf.js} +1 -1
  331. package/web-shell/assets/{chunk-727SXJPM-B2X34knw.js → chunk-727SXJPM-CYEeAamv.js} +1 -1
  332. package/web-shell/assets/{chunk-AQP2D5EJ-Cif-zLTQ.js → chunk-AQP2D5EJ-DBN-5CFd.js} +1 -1
  333. package/web-shell/assets/{chunk-FMBD7UC4-H18WCXdY.js → chunk-FMBD7UC4-CGZKk4PH.js} +1 -1
  334. package/web-shell/assets/{chunk-ND2GUHAM-YFtetHi0.js → chunk-ND2GUHAM-qQbC2O-y.js} +1 -1
  335. package/web-shell/assets/{chunk-QZHKN3VN-By2hiH3r.js → chunk-QZHKN3VN-B3zeXwsX.js} +1 -1
  336. package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +1 -0
  337. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +1 -0
  338. package/web-shell/assets/{cose-bilkent-S5V4N54A-VrcnnLZu.js → cose-bilkent-S5V4N54A-BKsl1Wvy.js} +1 -1
  339. package/web-shell/assets/{dagre-BM42HDAG-CGo-IaVV.js → dagre-BM42HDAG-CuuuLiBK.js} +1 -1
  340. package/web-shell/assets/{diagram-2AECGRRQ-Dl4QjzIB.js → diagram-2AECGRRQ-CG4_eKiV.js} +1 -1
  341. package/web-shell/assets/{diagram-5GNKFQAL-qMLmsO0u.js → diagram-5GNKFQAL-DSFTmZB1.js} +1 -1
  342. package/web-shell/assets/{diagram-KO2AKTUF-CHlmuxPI.js → diagram-KO2AKTUF-BxwlEHn8.js} +1 -1
  343. package/web-shell/assets/{diagram-LMA3HP47-BUwU3GwT.js → diagram-LMA3HP47-BUAg-jMG.js} +1 -1
  344. package/web-shell/assets/{diagram-OG6HWLK6-HEhwPDUM.js → diagram-OG6HWLK6-BFM2jlO5.js} +1 -1
  345. package/web-shell/assets/{erDiagram-TEJ5UH35-1n0llBmM.js → erDiagram-TEJ5UH35-CerbFPa2.js} +1 -1
  346. package/web-shell/assets/{flowDiagram-I6XJVG4X-BN74uMnt.js → flowDiagram-I6XJVG4X-BNeZz5Zz.js} +1 -1
  347. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BoOq78i3.js → ganttDiagram-6RSMTGT7-CTOogLaM.js} +1 -1
  348. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CN8b00c8.js → gitGraphDiagram-PVQCEYII-yxSFkXPj.js} +1 -1
  349. package/web-shell/assets/index-D5IWFVk1.css +5 -0
  350. package/web-shell/assets/index-KFJRDhX7.js +783 -0
  351. package/web-shell/assets/{infoDiagram-5YYISTIA-CCurnIna.js → infoDiagram-5YYISTIA-DYdAUevm.js} +1 -1
  352. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AwuRqdUP.js → ishikawaDiagram-YF4QCWOH-CNuijZ90.js} +1 -1
  353. package/web-shell/assets/{journeyDiagram-JHISSGLW-B7IICk-E.js → journeyDiagram-JHISSGLW-BTyiuonf.js} +1 -1
  354. package/web-shell/assets/{kanban-definition-UN3LZRKU-BYF0OKhx.js → kanban-definition-UN3LZRKU-DPJo0Uow.js} +1 -1
  355. package/web-shell/assets/{linear-GWWguGfD.js → linear-C8wKCbIC.js} +1 -1
  356. package/web-shell/assets/{mermaid.core-JqtkxvCl.js → mermaid.core-BV5o7nW5.js} +5 -5
  357. package/web-shell/assets/{mindmap-definition-RKZ34NQL-B0MmHsZ6.js → mindmap-definition-RKZ34NQL-BtLcBmSt.js} +1 -1
  358. package/web-shell/assets/{pieDiagram-4H26LBE5-DhImUZLQ.js → pieDiagram-4H26LBE5-C22J7A9Q.js} +1 -1
  359. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DGeSC3DT.js → quadrantDiagram-W4KKPZXB-DSL10wiL.js} +1 -1
  360. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DkspY6Re.js → requirementDiagram-4Y6WPE33-feqh0UpX.js} +1 -1
  361. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CaOofS2x.js → sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js} +1 -1
  362. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DFQ_kFnN.js → sequenceDiagram-3UESZ5HK-DIluIcb1.js} +1 -1
  363. package/web-shell/assets/{stateDiagram-AJRCARHV-D3snw0Tz.js → stateDiagram-AJRCARHV-hlhnuoYH.js} +1 -1
  364. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +1 -0
  365. package/web-shell/assets/{timeline-definition-PNZ67QCA-l4zH8nLM.js → timeline-definition-PNZ67QCA-Dqf_CqgL.js} +1 -1
  366. package/web-shell/assets/{vennDiagram-CIIHVFJN-BnRlA98M.js → vennDiagram-CIIHVFJN-DD2QhaTX.js} +1 -1
  367. package/web-shell/assets/{wardley-L42UT6IY-BS0xUdmd.js → wardley-L42UT6IY-B2uI85U_.js} +1 -1
  368. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKGBUWyQ.js → wardleyDiagram-YWT4CUSO-U1aJX71g.js} +1 -1
  369. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVb2HuOB.js → xychartDiagram-2RQKCTM6-C0ODHUee.js} +1 -1
  370. package/web-shell/index.html +16 -4
  371. package/chunks/MaxSizedBox-5DT2SD7B.js +0 -71
  372. package/chunks/agent-H2DGKS77.js +0 -68
  373. package/chunks/agent-headless-KFMFIT6J.js +0 -62
  374. package/chunks/bridge-NA3ZQQKJ.js +0 -78
  375. package/chunks/chunk-6SHO7WFF.js +0 -79
  376. package/chunks/chunk-IFEWJXFS.js +0 -37
  377. package/chunks/chunk-S6RLAIUR.js +0 -23
  378. package/chunks/chunk-XNXVCNAT.js +0 -88
  379. package/chunks/contextCommand-LXFZRP4L.js +0 -68
  380. package/chunks/daemon-status-provider-GJRXY5EN.js +0 -76
  381. package/chunks/earlyInputCapture-KNOYZ4MJ.js +0 -69
  382. package/chunks/environment-ATFTYMLZ.js +0 -88
  383. package/chunks/errors-A54HAADA.js +0 -75
  384. package/chunks/handleAutoUpdate-CEZJAARW.js +0 -65
  385. package/chunks/initializer-BRFJKRRX.js +0 -71
  386. package/chunks/list-KVHF7O4X.js +0 -73
  387. package/chunks/loadedSettingsAdapter-LL5PSFKX.js +0 -68
  388. package/chunks/mcp-3GCXRTOQ.js +0 -68
  389. package/chunks/nonInteractiveCli-PTQI3DV6.js +0 -119
  390. package/chunks/openaiContentGenerator-YE42PKCY.js +0 -56
  391. package/chunks/pidfile-NZYSCFRK.js +0 -73
  392. package/chunks/read-file-33XGP5HF.js +0 -30
  393. package/chunks/ripGrep-QWZLGTAN.js +0 -60
  394. package/chunks/serve-JTMIGANH.js +0 -74
  395. package/chunks/settings-3MI4XXP6.js +0 -118
  396. package/chunks/shell-YJKBE67T.js +0 -68
  397. package/chunks/spawnChannel-UNV6W4DU.js +0 -70
  398. package/chunks/task-create-WCHTB435.js +0 -22
  399. package/chunks/theme-manager-WZ4RRMMB.js +0 -64
  400. package/chunks/total-session-admission-ULXJWXFV.js +0 -72
  401. package/chunks/trustedFolders-LAZZPZ3D.js +0 -79
  402. package/chunks/updateCheck-KONLM73X.js +0 -65
  403. package/chunks/validateNonInterActiveAuth-MPKSRCXD.js +0 -184
  404. package/chunks/workspace-providers-status-3W7E7DFW.js +0 -71
  405. package/chunks/workspace-registry-SXJZNN3O.js +0 -74
  406. package/chunks/workspace-service-CZRQZ4Q4.js +0 -80
  407. package/chunks/workspace-skills-status-K7WFREPD.js +0 -70
  408. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  409. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  410. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  411. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  412. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  413. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  414. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  415. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  416. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  417. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  418. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  419. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  420. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  421. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  422. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  423. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  424. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  425. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  426. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  427. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  428. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  429. package/web-shell/assets/channel-wmPUGHtg.js +0 -1
  430. package/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +0 -1
  431. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +0 -1
  432. package/web-shell/assets/index-CNwoO1Cn.js +0 -783
  433. package/web-shell/assets/index-CWQ0z6kZ.css +0 -5
  434. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  init_esbuild_shims
5
- } from "./chunk-A4BMJM77.js";
5
+ } from "./chunk-5O2XNYP6.js";
6
6
  import "./chunk-J2S4EL5Y.js";
7
7
 
8
8
  // packages/cli/src/i18n/locales/de.js
@@ -168,6 +168,42 @@ var de_default = {
168
168
  "Delete {{name}}": "{{name}} l\xF6schen",
169
169
  "Unknown Step": "Unbekannter Schritt",
170
170
  "Esc to close": "Esc zum Schlie\xDFen",
171
+ Transcript: "Transkript",
172
+ "to close": "zum Schlie\xDFen",
173
+ "to scroll": "zum Scrollen",
174
+ "Failed to render transcript.": "Transkript konnte nicht gerendert werden.",
175
+ "Read {{count}} file": "{{count}} Datei gelesen",
176
+ "Read {{count}} files": "{{count}} Dateien gelesen",
177
+ "Reading {{count}} file": "Lese {{count}} Datei",
178
+ "Reading {{count}} files": "Lese {{count}} Dateien",
179
+ "Edited {{count}} file": "{{count}} Datei bearbeitet",
180
+ "Edited {{count}} files": "{{count}} Dateien bearbeitet",
181
+ "Editing {{count}} file": "Bearbeite {{count}} Datei",
182
+ "Editing {{count}} files": "Bearbeite {{count}} Dateien",
183
+ "Wrote {{count}} file": "{{count}} Datei geschrieben",
184
+ "Wrote {{count}} files": "{{count}} Dateien geschrieben",
185
+ "Writing {{count}} file": "Schreibe {{count}} Datei",
186
+ "Writing {{count}} files": "Schreibe {{count}} Dateien",
187
+ "Searched {{count}} pattern": "{{count}} Muster durchsucht",
188
+ "Searched {{count}} patterns": "{{count}} Muster durchsucht",
189
+ "Searching {{count}} pattern": "Durchsuche {{count}} Muster",
190
+ "Searching {{count}} patterns": "Durchsuche {{count}} Muster",
191
+ "Listed {{count}} directory": "{{count}} Verzeichnis aufgelistet",
192
+ "Listed {{count}} directories": "{{count}} Verzeichnisse aufgelistet",
193
+ "Listing {{count}} directory": "Liste {{count}} Verzeichnis auf",
194
+ "Listing {{count}} directories": "Liste {{count}} Verzeichnisse auf",
195
+ "Ran {{count}} command": "{{count}} Befehl ausgef\xFChrt",
196
+ "Ran {{count}} commands": "{{count}} Befehle ausgef\xFChrt",
197
+ "Running {{count}} command": "F\xFChre {{count}} Befehl aus",
198
+ "Running {{count}} commands": "F\xFChre {{count}} Befehle aus",
199
+ "Ran {{count}} agent": "{{count}} Agent ausgef\xFChrt",
200
+ "Ran {{count}} agents": "{{count}} Agenten ausgef\xFChrt",
201
+ "Running {{count}} agent": "F\xFChre {{count}} Agent aus",
202
+ "Running {{count}} agents": "F\xFChre {{count}} Agenten aus",
203
+ "Used {{count}} tool": "{{count}} Werkzeug verwendet",
204
+ "Used {{count}} tools": "{{count}} Werkzeuge verwendet",
205
+ "Using {{count}} tool": "Verwende {{count}} Werkzeug",
206
+ "Using {{count}} tools": "Verwende {{count}} Werkzeuge",
171
207
  "Enter to select, \u2191\u2193 to navigate, Esc to close": "Enter zum Ausw\xE4hlen, \u2191\u2193 zum Navigieren, Esc zum Schlie\xDFen",
172
208
  "Esc to go back": "Esc zum Zur\xFCckgehen",
173
209
  "Enter to confirm, Esc to cancel": "Enter zum Best\xE4tigen, Esc zum Abbrechen",
@@ -1277,7 +1313,6 @@ var de_default = {
1277
1313
  "You can switch permission mode quickly with Shift+Tab or /approval-mode.": "Sie k\xF6nnen den Berechtigungsmodus schnell mit Shift+Tab oder /approval-mode wechseln.",
1278
1314
  "You can switch permission mode quickly with Tab or /approval-mode.": "Sie k\xF6nnen den Berechtigungsmodus schnell mit Tab oder /approval-mode wechseln.",
1279
1315
  "Try /insight to generate personalized insights from your chat history.": "Probieren Sie /insight, um personalisierte Erkenntnisse aus Ihrem Chatverlauf zu erstellen.",
1280
- "Press Ctrl+O to toggle compact mode \u2014 hide tool output and thinking for a cleaner view.": "Ctrl+O dr\xFCcken, um den Kompaktmodus umzuschalten \u2014 Tool-Ausgabe und Denkprozess ausblenden.",
1281
1316
  "Add a QWEN.md file to give Qwen Code persistent project context.": "F\xFCgen Sie eine QWEN.md-Datei hinzu, um Qwen Code dauerhaften Projektkontext zu geben.",
1282
1317
  "Use /btw to ask a quick side question without disrupting the conversation.": "Verwenden Sie /btw, um eine kurze Nebenfrage zu stellen, ohne die Unterhaltung zu unterbrechen.",
1283
1318
  "Context is almost full! Run /compress now or start /new to continue.": "Der Kontext ist fast voll! F\xFChren Sie jetzt /compress aus oder starten Sie /new, um fortzufahren.",
@@ -1387,9 +1422,7 @@ var de_default = {
1387
1422
  "Select an option:": "Option ausw\xE4hlen:",
1388
1423
  "Raw mode not available. Please run in an interactive terminal.": "Raw-Modus nicht verf\xFCgbar. Bitte in einem interaktiven Terminal ausf\xFChren.",
1389
1424
  "(Use \u2191 \u2193 arrows to navigate, Enter to select, Ctrl+C to exit)\n": "(\u2191 \u2193 Pfeiltasten zum Navigieren, Enter zum Ausw\xE4hlen, Ctrl+C zum Beenden)\n",
1390
- "to toggle compact mode": "Kompaktmodus umschalten",
1391
- "Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).": "Tool-Ausgabe und Denkprozess ausblenden f\xFCr eine \xFCbersichtlichere Ansicht (mit Ctrl+O umschalten).",
1392
- "Press Ctrl+O to show full tool output": "Ctrl+O f\xFCr vollst\xE4ndige Tool-Ausgabe dr\xFCcken",
1425
+ "to view transcript": "zum Anzeigen des Transkripts",
1393
1426
  "Switch to plan mode or exit plan mode": "In den Plan-Modus wechseln oder den Plan-Modus verlassen",
1394
1427
  "Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.": "Legt fest, wie intensiv schlussfolgerungsf\xE4hige Modelle denken ({{tiers}}); je nach Anbieter zugeordnet und begrenzt.",
1395
1428
  "Exited plan mode. Previous approval mode restored.": "Plan-Modus verlassen. Vorheriger Genehmigungsmodus wiederhergestellt.",
@@ -1557,6 +1590,32 @@ var de_default = {
1557
1590
  in: "ein",
1558
1591
  out: "aus",
1559
1592
  "In/Out": "Ein/Aus",
1593
+ // Update command
1594
+ "Check for Qwen Code updates and install if available": "Auf Qwen Code-Updates pr\xFCfen und installieren, falls verf\xFCgbar",
1595
+ "Qwen Code update available! {{current}} \u2192 {{latest}}": "Qwen Code-Update verf\xFCgbar! {{current}} \u2192 {{latest}}",
1596
+ "A new version of Qwen Code is available! {{current}} \u2192 {{latest}}": "Eine neue Version von Qwen Code ist verf\xFCgbar! {{current}} \u2192 {{latest}}",
1597
+ "Qwen Code {{version}} is up to date!": "Qwen Code {{version}} ist aktuell!",
1598
+ "Failed to check for updates. Please check your network or registry configuration.": "Suche nach Updates fehlgeschlagen. Bitte Netzwerk- oder Registry-Konfiguration pr\xFCfen.",
1599
+ "Unable to check for updates: {{reason}}": "Updates k\xF6nnen nicht gepr\xFCft werden: {{reason}}",
1600
+ "Update successful! The new version will be used on your next run.": "Update erfolgreich! Die neue Version wird beim n\xE4chsten Start verwendet.",
1601
+ "Update downloaded. It will be applied after you exit this session.": "Update heruntergeladen. Es wird nach dem Beenden dieser Sitzung angewendet.",
1602
+ "Update failed: {{error}}": "Update fehlgeschlagen: {{error}}",
1603
+ "Downloading update...": "Update wird heruntergeladen...",
1604
+ "Update successful! Please restart Qwen Code to use the new version. Switching model providers before restarting may not work correctly.": "Update erfolgreich! Bitte starten Sie Qwen Code neu, um die neue Version zu verwenden. Das Wechseln von Modellanbietern vor dem Neustart funktioniert m\xF6glicherweise nicht korrekt.",
1605
+ "Automatic update failed. Please try updating manually.": "Automatisches Update fehlgeschlagen. Bitte versuchen Sie, manuell zu aktualisieren.",
1606
+ "Automatic update failed: {{error}}. Re-run the installer to update manually.": "Automatisches Update fehlgeschlagen: {{error}}. F\xFChren Sie das Installationsprogramm erneut aus, um manuell zu aktualisieren.",
1607
+ 'Running from a local git clone. Please update with "git pull".': 'Wird aus einem lokalen Git-Klon ausgef\xFChrt. Bitte mit "git pull" aktualisieren.',
1608
+ "Running via npx, update not applicable.": "Wird \xFCber npx ausgef\xFChrt, Update nicht anwendbar.",
1609
+ "Running via pnpx, update not applicable.": "Wird \xFCber pnpx ausgef\xFChrt, Update nicht anwendbar.",
1610
+ "Running via bunx, update not applicable.": "Wird \xFCber bunx ausgef\xFChrt, Update nicht anwendbar.",
1611
+ 'Installed via Homebrew. Please update with "brew upgrade".': '\xDCber Homebrew installiert. Bitte mit "brew upgrade" aktualisieren.',
1612
+ "Locally installed. Please update via your project's package.json.": "Lokal installiert. Bitte \xFCber die package.json Ihres Projekts aktualisieren.",
1613
+ "Update requires sudo. Please run:": "Das Update erfordert sudo. Bitte ausf\xFChren:",
1614
+ "Standalone install detected. Attempting to automatically update now...": "Standalone-Installation erkannt. Automatisches Update wird jetzt versucht...",
1615
+ "Standalone install detected. Please rerun the standalone installer to update:": "Standalone-Installation erkannt. Bitte f\xFChren Sie den Standalone-Installer zum Aktualisieren erneut aus:",
1616
+ "Run the following to update:": "F\xFChren Sie Folgendes zum Aktualisieren aus:",
1617
+ "Unable to auto-update this standalone installation. Please reinstall from:": "Diese Standalone-Installation kann nicht automatisch aktualisiert werden. Bitte neu installieren von:",
1618
+ "Manual update required. Please reinstall Qwen Code.": "Manuelles Update erforderlich. Bitte installieren Sie Qwen Code neu.",
1560
1619
  // ============================================================================
1561
1620
  // reload-plugins command
1562
1621
  // ============================================================================
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  wrapper_default
5
- } from "./chunk-H6BD2ELD.js";
6
- import "./chunk-5IFG2VC4.js";
5
+ } from "./chunk-TYAMGABM.js";
6
+ import "./chunk-FCMNKVXT.js";
7
7
  import {
8
8
  init_esbuild_shims
9
- } from "./chunk-A4BMJM77.js";
9
+ } from "./chunk-5O2XNYP6.js";
10
10
  import {
11
11
  __commonJS,
12
12
  __name,
@@ -4,26 +4,26 @@ import {
4
4
  require_follow_redirects,
5
5
  require_form_data,
6
6
  require_proxy_from_env
7
- } from "./chunk-QXPI7FEC.js";
8
- import "./chunk-7RYW5LQV.js";
7
+ } from "./chunk-S3TWXGKA.js";
8
+ import "./chunk-T2NCM2ET.js";
9
9
  import {
10
10
  ChannelBase,
11
11
  isTerminalTaskLifecycleType,
12
12
  sanitizeLogText,
13
13
  sanitizeSenderName
14
- } from "./chunk-IBY3Q3HG.js";
15
- import "./chunk-VRDMOSQS.js";
16
- import "./chunk-K5PGHDBN.js";
17
- import "./chunk-UWCTAVOD.js";
14
+ } from "./chunk-34Z3U5RQ.js";
15
+ import "./chunk-UDXSXLER.js";
16
+ import "./chunk-H6XPXXMH.js";
17
+ import "./chunk-CR3C7WXL.js";
18
18
  import {
19
19
  wrapper_default
20
- } from "./chunk-H6BD2ELD.js";
21
- import "./chunk-5IFG2VC4.js";
22
- import "./chunk-QN5NZ3UQ.js";
23
- import "./chunk-BR4QREVK.js";
20
+ } from "./chunk-TYAMGABM.js";
21
+ import "./chunk-FCMNKVXT.js";
22
+ import "./chunk-DMTGGOSA.js";
23
+ import "./chunk-YQ3U5MUC.js";
24
24
  import {
25
25
  init_esbuild_shims
26
- } from "./chunk-A4BMJM77.js";
26
+ } from "./chunk-5O2XNYP6.js";
27
27
  import {
28
28
  __export,
29
29
  __name,
@@ -4305,57 +4305,6 @@ var DWClient = class extends EventEmitter2 {
4305
4305
  // packages/channels/dingtalk/dist/markdown.js
4306
4306
  init_esbuild_shims();
4307
4307
  var CHUNK_LIMIT = 3800;
4308
- function isTableSeparator(line) {
4309
- const trimmed = line.trim();
4310
- if (!trimmed.includes("-"))
4311
- return false;
4312
- const cells = trimmed.replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim());
4313
- return cells.length > 0 && cells.every((cell) => /^:?-{3,}:?$/.test(cell));
4314
- }
4315
- __name(isTableSeparator, "isTableSeparator");
4316
- function isTableRow(line) {
4317
- const trimmed = line.trim();
4318
- return trimmed.includes("|") && !trimmed.startsWith("```");
4319
- }
4320
- __name(isTableRow, "isTableRow");
4321
- function parseTableRow(line) {
4322
- return line.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim());
4323
- }
4324
- __name(parseTableRow, "parseTableRow");
4325
- function renderTable(lines) {
4326
- const rows = lines.map(parseTableRow).filter((cells) => cells.length > 0);
4327
- return rows.map((cells) => cells.join(" | ")).join(" \n");
4328
- }
4329
- __name(renderTable, "renderTable");
4330
- function convertTables(text) {
4331
- const lines = text.split("\n");
4332
- const output = [];
4333
- let i = 0;
4334
- let inCode = false;
4335
- while (i < lines.length) {
4336
- const line = lines[i] || "";
4337
- if (line.trim().startsWith("```")) {
4338
- inCode = !inCode;
4339
- output.push(line);
4340
- i++;
4341
- continue;
4342
- }
4343
- if (!inCode && i + 1 < lines.length && isTableRow(line) && isTableSeparator(lines[i + 1] || "")) {
4344
- const tableLines = [line];
4345
- i += 2;
4346
- while (i < lines.length && isTableRow(lines[i] || "")) {
4347
- tableLines.push(lines[i] || "");
4348
- i++;
4349
- }
4350
- output.push(renderTable(tableLines));
4351
- continue;
4352
- }
4353
- output.push(line);
4354
- i++;
4355
- }
4356
- return output.join("\n");
4357
- }
4358
- __name(convertTables, "convertTables");
4359
4308
  function splitChunks(text) {
4360
4309
  if (!text || text.length <= CHUNK_LIMIT) {
4361
4310
  return [text];
@@ -4432,7 +4381,7 @@ function extractTitle(text) {
4432
4381
  }
4433
4382
  __name(extractTitle, "extractTitle");
4434
4383
  function normalizeDingTalkMarkdown(text) {
4435
- return splitChunks(convertTables(text));
4384
+ return splitChunks(text);
4436
4385
  }
4437
4386
  __name(normalizeDingTalkMarkdown, "normalizeDingTalkMarkdown");
4438
4387
 
@@ -4482,6 +4431,311 @@ async function downloadMedia(downloadCode, robotCode, accessToken) {
4482
4431
  }
4483
4432
  __name(downloadMedia, "downloadMedia");
4484
4433
 
4434
+ // packages/channels/dingtalk/dist/DingtalkConnectionManager.js
4435
+ init_esbuild_shims();
4436
+ var SOCKET_OPEN = 1;
4437
+ var CONNECT_TIMEOUT_MS = 1e4;
4438
+ var READY_POLL_MS = 100;
4439
+ var HEARTBEAT_INTERVAL_MS = 2e4;
4440
+ var MAX_HEARTBEAT_MISSES = 2;
4441
+ var HEALTH_INTERVAL_MS = 6e4;
4442
+ var MAX_HEALTH_FAILURES = 2;
4443
+ var INITIAL_RECONNECT_DELAY_MS = 1e3;
4444
+ var MAX_RECONNECT_DELAY_MS = 3e4;
4445
+ var DingtalkConnectionManager = class {
4446
+ static {
4447
+ __name(this, "DingtalkConnectionManager");
4448
+ }
4449
+ options;
4450
+ running = false;
4451
+ generation = 0;
4452
+ hasStarted = false;
4453
+ startingGeneration;
4454
+ activeClient;
4455
+ readyTimer;
4456
+ resolveReadyDelay;
4457
+ heartbeatTimer;
4458
+ heartbeatMisses = 0;
4459
+ activitySinceHeartbeat = false;
4460
+ healthTimer;
4461
+ healthFailures = 0;
4462
+ reconnectTask;
4463
+ reconnectGeneration;
4464
+ socketCleanup;
4465
+ retryTimer;
4466
+ resolveRetryDelay;
4467
+ cancelConnectionAttempts = /* @__PURE__ */ new Set();
4468
+ constructor(options) {
4469
+ this.options = options;
4470
+ this.activeClient = options.initialClient;
4471
+ }
4472
+ async start() {
4473
+ if (this.running) {
4474
+ return;
4475
+ }
4476
+ const client = this.hasStarted ? this.options.createClient() : this.activeClient;
4477
+ this.hasStarted = true;
4478
+ this.activeClient = client;
4479
+ this.running = true;
4480
+ const generation = ++this.generation;
4481
+ this.startingGeneration = generation;
4482
+ try {
4483
+ await this.connectClient(client, generation);
4484
+ this.options.onClientChanged(client);
4485
+ this.startMonitoring(client);
4486
+ } catch (error) {
4487
+ if (this.running && generation === this.generation) {
4488
+ this.safeDisconnect(client, "startup client");
4489
+ this.running = false;
4490
+ this.generation++;
4491
+ this.stopMonitoring();
4492
+ this.cancelReadyDelay();
4493
+ this.cancelRetryDelay();
4494
+ }
4495
+ throw error;
4496
+ } finally {
4497
+ if (this.startingGeneration === generation) {
4498
+ this.startingGeneration = void 0;
4499
+ }
4500
+ }
4501
+ }
4502
+ noteActivity(client) {
4503
+ if (!this.running || client !== this.activeClient) {
4504
+ return;
4505
+ }
4506
+ this.activitySinceHeartbeat = true;
4507
+ this.heartbeatMisses = 0;
4508
+ }
4509
+ requestReconnect(client, reason) {
4510
+ const generation = this.generation;
4511
+ if (!this.running || client !== this.activeClient || this.startingGeneration === generation || this.reconnectTask && this.reconnectGeneration === generation) {
4512
+ return;
4513
+ }
4514
+ const task = this.reconnect(reason, generation);
4515
+ this.reconnectTask = task;
4516
+ this.reconnectGeneration = generation;
4517
+ void task.catch((error) => {
4518
+ this.options.log(`reconnect failed: ${String(error)}`);
4519
+ }).finally(() => {
4520
+ if (this.reconnectTask === task) {
4521
+ this.reconnectTask = void 0;
4522
+ this.reconnectGeneration = void 0;
4523
+ }
4524
+ });
4525
+ }
4526
+ stop() {
4527
+ if (!this.running) {
4528
+ return;
4529
+ }
4530
+ this.running = false;
4531
+ this.generation++;
4532
+ this.startingGeneration = void 0;
4533
+ this.reconnectTask = void 0;
4534
+ this.reconnectGeneration = void 0;
4535
+ this.stopMonitoring();
4536
+ this.cancelReadyDelay();
4537
+ this.cancelRetryDelay();
4538
+ for (const cancel of this.cancelConnectionAttempts) {
4539
+ cancel();
4540
+ }
4541
+ this.cancelConnectionAttempts.clear();
4542
+ this.safeDisconnect(this.activeClient, "active client");
4543
+ }
4544
+ startMonitoring(client) {
4545
+ this.stopMonitoring();
4546
+ this.activitySinceHeartbeat = true;
4547
+ this.heartbeatMisses = 0;
4548
+ this.healthFailures = 0;
4549
+ const socket = this.options.getSocket(client);
4550
+ if (socket) {
4551
+ const onPong = /* @__PURE__ */ __name(() => this.noteActivity(client), "onPong");
4552
+ const onClose = /* @__PURE__ */ __name(() => this.requestReconnect(client, "socket closed"), "onClose");
4553
+ const onError = /* @__PURE__ */ __name(() => this.requestReconnect(client, "socket error"), "onError");
4554
+ socket.on("pong", onPong);
4555
+ socket.on("close", onClose);
4556
+ socket.on("error", onError);
4557
+ this.socketCleanup = () => {
4558
+ socket.off("pong", onPong);
4559
+ socket.off("close", onClose);
4560
+ socket.off("error", onError);
4561
+ };
4562
+ }
4563
+ this.heartbeatTimer = setInterval(() => {
4564
+ if (!this.running || client !== this.activeClient) {
4565
+ return;
4566
+ }
4567
+ if (this.activitySinceHeartbeat) {
4568
+ this.activitySinceHeartbeat = false;
4569
+ this.heartbeatMisses = 0;
4570
+ } else {
4571
+ this.heartbeatMisses++;
4572
+ }
4573
+ if (this.heartbeatMisses >= MAX_HEARTBEAT_MISSES) {
4574
+ this.requestReconnect(client, "heartbeat timeout");
4575
+ return;
4576
+ }
4577
+ const socket2 = this.options.getSocket(client);
4578
+ if (!socket2 || socket2.readyState !== SOCKET_OPEN) {
4579
+ this.requestReconnect(client, "socket is not open");
4580
+ return;
4581
+ }
4582
+ try {
4583
+ socket2.ping();
4584
+ } catch (error) {
4585
+ this.requestReconnect(client, `socket ping failed: ${String(error)}`);
4586
+ }
4587
+ }, HEARTBEAT_INTERVAL_MS);
4588
+ this.healthTimer = setInterval(() => {
4589
+ if (!this.running || client !== this.activeClient) {
4590
+ return;
4591
+ }
4592
+ if (client.connected && client.registered && this.options.getSocket(client)?.readyState === SOCKET_OPEN) {
4593
+ this.healthFailures = 0;
4594
+ return;
4595
+ }
4596
+ this.healthFailures++;
4597
+ if (this.healthFailures >= MAX_HEALTH_FAILURES) {
4598
+ this.requestReconnect(client, "unhealthy connection state");
4599
+ }
4600
+ }, HEALTH_INTERVAL_MS);
4601
+ }
4602
+ stopMonitoring() {
4603
+ if (this.heartbeatTimer) {
4604
+ clearInterval(this.heartbeatTimer);
4605
+ this.heartbeatTimer = void 0;
4606
+ }
4607
+ if (this.healthTimer) {
4608
+ clearInterval(this.healthTimer);
4609
+ this.healthTimer = void 0;
4610
+ }
4611
+ this.socketCleanup?.();
4612
+ this.socketCleanup = void 0;
4613
+ }
4614
+ async reconnect(reason, generation) {
4615
+ const previousClient = this.activeClient;
4616
+ let retryDelay = INITIAL_RECONNECT_DELAY_MS;
4617
+ while (this.running && generation === this.generation) {
4618
+ let replacement;
4619
+ try {
4620
+ replacement = this.options.createClient();
4621
+ await this.connectClient(replacement, generation);
4622
+ if (!this.running || generation !== this.generation) {
4623
+ this.safeDisconnect(replacement, "stale replacement client");
4624
+ return;
4625
+ }
4626
+ this.activeClient = replacement;
4627
+ this.stopMonitoring();
4628
+ this.options.onClientChanged(replacement);
4629
+ this.startMonitoring(replacement);
4630
+ this.safeDisconnect(previousClient, "replaced client");
4631
+ return;
4632
+ } catch (error) {
4633
+ if (replacement) {
4634
+ this.safeDisconnect(replacement, "failed replacement client");
4635
+ }
4636
+ if (!this.running || generation !== this.generation) {
4637
+ return;
4638
+ }
4639
+ this.options.log(`${reason}: ${String(error)}`);
4640
+ await this.waitForRetry(retryDelay);
4641
+ retryDelay = Math.min(retryDelay * 2, MAX_RECONNECT_DELAY_MS);
4642
+ }
4643
+ }
4644
+ }
4645
+ async connectClient(client, generation) {
4646
+ const deadline = Date.now() + CONNECT_TIMEOUT_MS;
4647
+ let abortAttempt = false;
4648
+ let timeout;
4649
+ let rejectAttempt;
4650
+ const attemptEnded = new Promise((_resolve, reject) => {
4651
+ rejectAttempt = reject;
4652
+ timeout = setTimeout(() => {
4653
+ abortAttempt = true;
4654
+ reject(new Error("Timed out connecting to DingTalk Stream."));
4655
+ }, CONNECT_TIMEOUT_MS);
4656
+ });
4657
+ const cancel = /* @__PURE__ */ __name(() => {
4658
+ abortAttempt = true;
4659
+ if (timeout) {
4660
+ clearTimeout(timeout);
4661
+ timeout = void 0;
4662
+ }
4663
+ rejectAttempt(new Error("DingTalk connection manager stopped."));
4664
+ }, "cancel");
4665
+ this.cancelConnectionAttempts.add(cancel);
4666
+ const connect = client.connect();
4667
+ try {
4668
+ await Promise.race([connect, attemptEnded]);
4669
+ } catch (error) {
4670
+ if (abortAttempt) {
4671
+ void connect.then(() => this.safeDisconnect(client, "late connection client"), () => void 0);
4672
+ }
4673
+ throw error;
4674
+ } finally {
4675
+ if (timeout) {
4676
+ clearTimeout(timeout);
4677
+ }
4678
+ this.cancelConnectionAttempts.delete(cancel);
4679
+ }
4680
+ await this.waitUntilReady(client, generation, deadline);
4681
+ }
4682
+ safeDisconnect(client, context) {
4683
+ try {
4684
+ client.disconnect();
4685
+ } catch (error) {
4686
+ this.options.log(`failed to disconnect ${context}: ${String(error)}`);
4687
+ }
4688
+ }
4689
+ waitForRetry(delay) {
4690
+ return new Promise((resolve) => {
4691
+ this.resolveRetryDelay = resolve;
4692
+ this.retryTimer = setTimeout(() => {
4693
+ this.retryTimer = void 0;
4694
+ this.resolveRetryDelay = void 0;
4695
+ resolve();
4696
+ }, delay);
4697
+ });
4698
+ }
4699
+ async waitUntilReady(client, generation, deadline) {
4700
+ while (this.running && generation === this.generation) {
4701
+ if (client.connected && client.registered && this.options.getSocket(client)?.readyState === SOCKET_OPEN) {
4702
+ return;
4703
+ }
4704
+ if (Date.now() >= deadline) {
4705
+ throw new Error("Timed out connecting to DingTalk Stream.");
4706
+ }
4707
+ await this.waitForReadyPoll();
4708
+ }
4709
+ throw new Error("DingTalk connection manager stopped.");
4710
+ }
4711
+ waitForReadyPoll() {
4712
+ return new Promise((resolve) => {
4713
+ this.resolveReadyDelay = resolve;
4714
+ this.readyTimer = setTimeout(() => {
4715
+ this.readyTimer = void 0;
4716
+ this.resolveReadyDelay = void 0;
4717
+ resolve();
4718
+ }, READY_POLL_MS);
4719
+ });
4720
+ }
4721
+ cancelReadyDelay() {
4722
+ if (this.readyTimer) {
4723
+ clearTimeout(this.readyTimer);
4724
+ this.readyTimer = void 0;
4725
+ }
4726
+ this.resolveReadyDelay?.();
4727
+ this.resolveReadyDelay = void 0;
4728
+ }
4729
+ cancelRetryDelay() {
4730
+ if (this.retryTimer) {
4731
+ clearTimeout(this.retryTimer);
4732
+ this.retryTimer = void 0;
4733
+ }
4734
+ this.resolveRetryDelay?.();
4735
+ this.resolveRetryDelay = void 0;
4736
+ }
4737
+ };
4738
+
4485
4739
  // packages/channels/dingtalk/dist/DingtalkAdapter.js
4486
4740
  var DEDUP_TTL_MS = 5 * 60 * 1e3;
4487
4741
  var ACK_REACTION_NAME = "\u{1F440}";
@@ -4497,6 +4751,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
4497
4751
  __name(this, "DingtalkChannel");
4498
4752
  }
4499
4753
  client;
4754
+ connectionManager;
4500
4755
  seenMessages = /* @__PURE__ */ new Map();
4501
4756
  dedupTimer;
4502
4757
  /** Map conversationId → latest sessionWebhook URL for sending replies. */
@@ -4520,20 +4775,56 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
4520
4775
  if (!config.clientId || !config.clientSecret) {
4521
4776
  throw new Error(`Channel "${name}" requires clientId and clientSecret for DingTalk.`);
4522
4777
  }
4523
- this.client = new DWClient({
4524
- clientId: config.clientId,
4525
- clientSecret: config.clientSecret
4778
+ const rawUseConnectionManager = config.useConnectionManager;
4779
+ if (rawUseConnectionManager !== void 0 && typeof rawUseConnectionManager !== "boolean") {
4780
+ throw new Error(`Channel "${name}" useConnectionManager must be a boolean.`);
4781
+ }
4782
+ const useConnectionManager = rawUseConnectionManager ?? true;
4783
+ this.client = this.createClient(useConnectionManager);
4784
+ if (useConnectionManager) {
4785
+ this.connectionManager = new DingtalkConnectionManager({
4786
+ initialClient: this.client,
4787
+ createClient: /* @__PURE__ */ __name(() => this.createClient(true), "createClient"),
4788
+ getSocket: /* @__PURE__ */ __name((client) => client.socket, "getSocket"),
4789
+ onClientChanged: /* @__PURE__ */ __name((client) => {
4790
+ this.client = client;
4791
+ }, "onClientChanged"),
4792
+ log: /* @__PURE__ */ __name((message) => {
4793
+ process.stderr.write(`[DingTalk:${this.name}] ${sanitizeLogText(message, 200)}
4794
+ `);
4795
+ }, "log")
4796
+ });
4797
+ }
4798
+ }
4799
+ createClient(useConnectionManager) {
4800
+ const client = new DWClient({
4801
+ clientId: this.config.clientId,
4802
+ clientSecret: this.config.clientSecret,
4803
+ keepAlive: !useConnectionManager
4526
4804
  });
4527
- this.installStructuredDownstreamHandler();
4805
+ client.config.autoReconnect = !useConnectionManager;
4806
+ this.installStructuredDownstreamHandler(client);
4807
+ this.registerMessageHandler(client);
4808
+ return client;
4528
4809
  }
4529
- installStructuredDownstreamHandler() {
4530
- const client = this.client;
4810
+ installStructuredDownstreamHandler(streamClient) {
4811
+ const client = streamClient;
4531
4812
  client.debug = false;
4532
4813
  client.onDownStream = (raw) => {
4533
4814
  this.onDownStream(raw, client);
4534
4815
  };
4535
4816
  }
4817
+ registerMessageHandler(client) {
4818
+ client.registerCallbackListener(TOPIC_ROBOT, (msg) => {
4819
+ client.send(msg.headers.messageId, {
4820
+ status: EventAck.SUCCESS,
4821
+ message: "ok"
4822
+ });
4823
+ this.onMessage(msg);
4824
+ });
4825
+ }
4536
4826
  onDownStream(raw, client) {
4827
+ this.connectionManager?.noteActivity(client);
4537
4828
  const decoded = this.decodeDownStream(raw);
4538
4829
  let msg;
4539
4830
  try {
@@ -4567,6 +4858,9 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
4567
4858
  switch (type) {
4568
4859
  case "SYSTEM":
4569
4860
  this.callDownStreamHandler(client, "onSystem", normalizedMsg);
4861
+ if (topic === "disconnect") {
4862
+ this.connectionManager?.requestReconnect(client, "SYSTEM disconnect");
4863
+ }
4570
4864
  break;
4571
4865
  case "EVENT":
4572
4866
  this.callDownStreamHandler(client, "onEvent", normalizedMsg);
@@ -4606,14 +4900,11 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
4606
4900
  return { text: String(raw), bytes: Buffer2.byteLength(String(raw)) };
4607
4901
  }
4608
4902
  async connect() {
4609
- this.client.registerCallbackListener(TOPIC_ROBOT, (msg) => {
4610
- this.client.send(msg.headers.messageId, {
4611
- status: EventAck.SUCCESS,
4612
- message: "ok"
4613
- });
4614
- this.onMessage(msg);
4615
- });
4616
- await this.client.connect();
4903
+ if (this.connectionManager) {
4904
+ await this.connectionManager.start();
4905
+ } else {
4906
+ await this.client.connect();
4907
+ }
4617
4908
  this.dedupTimer = setInterval(() => {
4618
4909
  const now = Date.now();
4619
4910
  for (const [id, ts] of this.seenMessages) {
@@ -4806,7 +5097,11 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
4806
5097
  }
4807
5098
  this.activeReactionKeys.clear();
4808
5099
  this.sessionReactionKeys.clear();
4809
- this.client.disconnect();
5100
+ if (this.connectionManager) {
5101
+ this.connectionManager.stop();
5102
+ } else {
5103
+ this.client.disconnect();
5104
+ }
4810
5105
  process.stderr.write(`[DingTalk:${this.name}] Disconnected.
4811
5106
  `);
4812
5107
  }
@@ -5081,6 +5376,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
5081
5376
  onMessage(downstream) {
5082
5377
  try {
5083
5378
  const data = typeof downstream.data === "string" ? JSON.parse(downstream.data) : downstream.data;
5379
+ this.logDebugPayload("DingTalk", data);
5084
5380
  const dataMsgId = typeof data.msgId === "string" ? data.msgId : void 0;
5085
5381
  const headerMsgId = typeof downstream.headers.messageId === "string" ? downstream.headers.messageId : void 0;
5086
5382
  const msgId = dataMsgId || headerMsgId;
@@ -2,9 +2,9 @@
2
2
  "use strict";
3
3
  import {
4
4
  require_dist
5
- } from "./chunk-ZERZSAZL.js";
6
- import "./chunk-QN5NZ3UQ.js";
7
- import "./chunk-BR4QREVK.js";
8
- import "./chunk-A4BMJM77.js";
5
+ } from "./chunk-75DOP5OR.js";
6
+ import "./chunk-DMTGGOSA.js";
7
+ import "./chunk-YQ3U5MUC.js";
8
+ import "./chunk-5O2XNYP6.js";
9
9
  import "./chunk-J2S4EL5Y.js";
10
10
  export default require_dist();