@qwen-code/qwen-code 0.22.2-preview.1 → 0.22.3

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 (437) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/goal-draft/SKILL.md +109 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  4. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  7. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  8. package/bundled/qc-helper/docs/features/commands.md +2 -1
  9. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  10. package/bundled/qc-helper/docs/features/goals.md +58 -0
  11. package/bundled/qc-helper/docs/features/headless.md +13 -11
  12. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  14. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  15. package/bundled/review/SKILL.md +81 -31
  16. package/bundled/review/references/persistence.md +7 -3
  17. package/bundled/review/references/posting.md +10 -4
  18. package/chunks/MaxSizedBox-X42SXBJH.js +110 -0
  19. package/chunks/{StandaloneSessionPicker-5D2L22SF.js → StandaloneSessionPicker-2FJAOLGG.js} +81 -83
  20. package/chunks/{acpAgent-4DCKLA32.js → acpAgent-2ZMIJAFV.js} +1153 -357
  21. package/chunks/{agent-B4AFZL6H.js → agent-X5WX3L2I.js} +44 -46
  22. package/chunks/agent-headless-IZM25LJA.js +85 -0
  23. package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-YVTB6QX7.js} +46 -50
  24. package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
  25. package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
  26. package/chunks/bridge-ME6QXZNA.js +119 -0
  27. package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-HQ6KDS7C.js} +6 -6
  28. package/chunks/channel-settings-store-PEOI7XCG.js +120 -0
  29. package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
  30. package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
  31. package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
  32. package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
  33. package/chunks/{chunk-JLU3FPQR.js → chunk-2HYKTO7V.js} +5 -5
  34. package/chunks/chunk-2LNNVAUV.js +1584 -0
  35. package/chunks/{chunk-FJAITR4L.js → chunk-2OBKDPZZ.js} +2 -2
  36. package/chunks/{chunk-JSY43GMI.js → chunk-2OUD5T67.js} +185 -174
  37. package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
  38. package/chunks/chunk-2TNL5KPM.js +49 -0
  39. package/chunks/{chunk-XMSMTU6H.js → chunk-2YOHKHYR.js} +4 -4
  40. package/chunks/{chunk-MCKJTBZN.js → chunk-36GSQ3MM.js} +2 -2
  41. package/chunks/chunk-36LGBEM6.js +130 -0
  42. package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
  43. package/chunks/{chunk-X3XGCJ32.js → chunk-3SZC4VP4.js} +28 -111
  44. package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
  45. package/chunks/{chunk-IKN3IUJP.js → chunk-3XKLXHGK.js} +17 -9
  46. package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
  47. package/chunks/chunk-4CMJKUND.js +95 -0
  48. package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
  49. package/chunks/{chunk-SQPOJ4ZI.js → chunk-4NDLQAY2.js} +27 -270
  50. package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
  51. package/chunks/{chunk-VBF4KZRQ.js → chunk-4TT3IVGA.js} +1 -1
  52. package/chunks/{chunk-IOGKXPL3.js → chunk-4VPCTGH6.js} +6 -6
  53. package/chunks/chunk-4VQBQLIZ.js +293 -0
  54. package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
  55. package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
  56. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  57. package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
  58. package/chunks/{chunk-WZ3QKPMQ.js → chunk-6X7EU5TI.js} +19 -31
  59. package/chunks/{chunk-KQYW2GB5.js → chunk-6ZPDLGHN.js} +6 -6
  60. package/chunks/{chunk-AKQA3WCH.js → chunk-734C6JGI.js} +723 -3399
  61. package/chunks/{chunk-F7M6ZFGU.js → chunk-73RM4POK.js} +8 -8
  62. package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
  63. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  64. package/chunks/chunk-7J6OTNGO.js +424 -0
  65. package/chunks/{chunk-LWLEPXKK.js → chunk-7LOELM2I.js} +19 -2
  66. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  67. package/chunks/{chunk-AWFZDYSD.js → chunk-7T52W4SW.js} +1 -1
  68. package/chunks/{chunk-3JKUX4PB.js → chunk-7VMIMAVB.js} +9 -9
  69. package/chunks/{chunk-2MHGD7EE.js → chunk-A3LWD5MK.js} +1 -1
  70. package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
  71. package/chunks/{chunk-TDQBVEPK.js → chunk-AIAOIFY4.js} +10 -8
  72. package/chunks/{chunk-NEZZHGEI.js → chunk-AYFA7MZV.js} +6 -6
  73. package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
  74. package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
  75. package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
  76. package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
  77. package/chunks/{chunk-T45CL2NT.js → chunk-BOWFGCEU.js} +3 -3
  78. package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
  79. package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
  80. package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
  81. package/chunks/{chunk-PTQF7WRA.js → chunk-C3PEFRKD.js} +6 -6
  82. package/chunks/{chunk-7OBH4AM2.js → chunk-CAJTKR6W.js} +5 -5
  83. package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
  84. package/chunks/{chunk-SUE2ZMUH.js → chunk-CIZCL2MW.js} +49 -31
  85. package/chunks/{chunk-W2WRNJKX.js → chunk-CLWO3B77.js} +6 -6
  86. package/chunks/{chunk-U45D46O5.js → chunk-CMHFCLBU.js} +1 -1
  87. package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
  88. package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
  89. package/chunks/chunk-DJBQCO2E.js +842 -0
  90. package/chunks/{chunk-BQBUZDDH.js → chunk-DJECZIJX.js} +42 -42
  91. package/chunks/{chunk-GTUZ3R6I.js → chunk-DJEZ55D4.js} +351 -113
  92. package/chunks/{chunk-HPECDZ6X.js → chunk-DJPASAUV.js} +3866 -1077
  93. package/chunks/{chunk-VYWCFWI5.js → chunk-DMLVSW7L.js} +542 -654
  94. package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
  95. package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
  96. package/chunks/{chunk-UWICO5KN.js → chunk-EFWRMA2I.js} +3 -3
  97. package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
  98. package/chunks/{chunk-ALTQLFEG.js → chunk-EQSBPBZ3.js} +5 -194
  99. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  100. package/chunks/{chunk-4K44OMLI.js → chunk-FROAFEFB.js} +3 -3
  101. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  102. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  103. package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
  104. package/chunks/{chunk-TMGAS5TO.js → chunk-GBJBJ4HX.js} +26 -4
  105. package/chunks/{chunk-UCQOSV6A.js → chunk-GPGU4S2N.js} +3 -3
  106. package/chunks/{chunk-BHTJAO36.js → chunk-GVIVASYK.js} +7 -7
  107. package/chunks/chunk-H72BQNM3.js +645 -0
  108. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  109. package/chunks/{chunk-FCSWZAS3.js → chunk-HP5LR5HL.js} +5 -5
  110. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  111. package/chunks/{chunk-OI2DR6QB.js → chunk-I6LYRJPB.js} +3 -3
  112. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  113. package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
  114. package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
  115. package/chunks/{chunk-FN5C6C7G.js → chunk-JHYH6PYQ.js} +192 -478
  116. package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
  117. package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
  118. package/chunks/{chunk-XUX6O2ZT.js → chunk-KID24ZFN.js} +4 -1
  119. package/chunks/{chunk-I6DY753S.js → chunk-KJO2LBUK.js} +944 -18
  120. package/chunks/{chunk-5T4LWWNX.js → chunk-KYWTPLBJ.js} +18 -21
  121. package/chunks/{chunk-CZFQ62RM.js → chunk-LHBUKJG2.js} +4 -4
  122. package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
  123. package/chunks/{chunk-2YDYDDE2.js → chunk-M3QRM3DE.js} +3 -3
  124. package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
  125. package/chunks/{chunk-ZGWDHSUM.js → chunk-MF7HCQWZ.js} +4 -4
  126. package/chunks/{chunk-66GIFJ63.js → chunk-MK2GIB46.js} +1 -1
  127. package/chunks/{chunk-TFV4RXPU.js → chunk-MO3FC2WT.js} +1 -1
  128. package/chunks/{chunk-TR7G7XFQ.js → chunk-MPNBVAEU.js} +5 -5
  129. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  130. package/chunks/{chunk-3WBMPR3S.js → chunk-MSBO7X2W.js} +1 -1
  131. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  132. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  133. package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
  134. package/chunks/{chunk-AP7WZONS.js → chunk-NMOD2FXQ.js} +19 -9
  135. package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
  136. package/chunks/{chunk-5URK47RN.js → chunk-NV55WWD6.js} +11595 -10375
  137. package/chunks/{chunk-HABT2Z7R.js → chunk-OU5APVWO.js} +4 -4
  138. package/chunks/{chunk-QR4AHMGQ.js → chunk-P2G476QN.js} +13 -13
  139. package/chunks/{chunk-5SM2AK65.js → chunk-PADPMMYM.js} +5 -5
  140. package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
  141. package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
  142. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  143. package/chunks/{chunk-XIRDDFRS.js → chunk-PZ66FRIC.js} +2644 -2296
  144. package/chunks/{chunk-H3HZ4AWW.js → chunk-Q2MSPKIJ.js} +1 -1
  145. package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
  146. package/chunks/{chunk-OF2DPXUS.js → chunk-QYMAKPY5.js} +119 -24
  147. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  148. package/chunks/chunk-RKFGE7JH.js +93 -0
  149. package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
  150. package/chunks/chunk-SEONHUS3.js +275 -0
  151. package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
  152. package/chunks/chunk-SS4MRMKE.js +3525 -0
  153. package/chunks/{chunk-BPMVPWBT.js → chunk-SS5SDCD3.js} +6 -6
  154. package/chunks/{chunk-J3CBIEDS.js → chunk-ST5MDGH3.js} +32 -15
  155. package/chunks/{chunk-J5352S3S.js → chunk-ST5V3ZOC.js} +3 -3
  156. package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
  157. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  158. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  159. package/chunks/{chunk-5CMWFBML.js → chunk-TEBDFQBZ.js} +1 -1
  160. package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
  161. package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
  162. package/chunks/{chunk-VOEMVOM4.js → chunk-TVC6HQ2U.js} +2 -2
  163. package/chunks/{chunk-WXDZZFH3.js → chunk-TZBSGJ6C.js} +6 -6
  164. package/chunks/chunk-U54AYGEC.js +337 -0
  165. package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
  166. package/chunks/{chunk-76WGY6LW.js → chunk-URE3QBBB.js} +3 -3
  167. package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
  168. package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
  169. package/chunks/{chunk-FJWICLG7.js → chunk-V4264FEG.js} +9 -9
  170. package/chunks/{chunk-XR7OIAQF.js → chunk-V5J4J5TP.js} +2 -2
  171. package/chunks/{chunk-7UJTY5V3.js → chunk-V7EESTJV.js} +1 -1
  172. package/chunks/{chunk-Z6L3C4VF.js → chunk-VBCPNIQD.js} +39 -39
  173. package/chunks/{chunk-ATLGYSYH.js → chunk-VGIFXISB.js} +4 -4
  174. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  175. package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
  176. package/chunks/{chunk-AA7VBRBG.js → chunk-W3JH33JE.js} +8 -8
  177. package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
  178. package/chunks/{chunk-CDUN63IN.js → chunk-WGY3AVGM.js} +3 -3
  179. package/chunks/{chunk-JLGFGPZJ.js → chunk-WNPDGUJO.js} +22 -3
  180. package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
  181. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  182. package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
  183. package/chunks/{chunk-R7G7GKOX.js → chunk-XHF7WQ6B.js} +3 -3
  184. package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
  185. package/chunks/{chunk-3D6PDLNJ.js → chunk-XSG6G3G6.js} +49 -32
  186. package/chunks/{chunk-5JCZ3UKB.js → chunk-Y5S7LBOZ.js} +44 -7
  187. package/chunks/{chunk-OLS3MAXQ.js → chunk-YLSQLSH7.js} +15 -9
  188. package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
  189. package/chunks/{chunk-KPF2K55D.js → chunk-ZEYFMJQA.js} +39 -8
  190. package/chunks/{chunk-OT4YKUUV.js → chunk-ZU4UDIWX.js} +2 -2
  191. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  192. package/chunks/{chunk-R3T33BG5.js → chunk-ZYMLPEZQ.js} +3 -3
  193. package/chunks/{chunk-DID6IRGC.js → chunk-ZZMSC3RG.js} +56 -39
  194. package/chunks/{chunk-L436XFLJ.js → chunk-ZZUKP7HV.js} +1 -1
  195. package/chunks/config-utils-R6M3TA34.js +113 -0
  196. package/chunks/contextCommand-ZCAP23J6.js +106 -0
  197. package/chunks/{core-runtime-CEJRHCRF.js → core-runtime-AXB6SK5D.js} +59 -61
  198. package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
  199. package/chunks/{create-sub-session-DFZVIG56.js → create-sub-session-4QNE64MR.js} +164 -85
  200. package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
  201. package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
  202. package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
  203. package/chunks/{daemon-NAYK4XXU.js → daemon-3GNHB3M2.js} +523 -8
  204. package/chunks/{daemon-git-worktree-guard-L6ZUFKF7.js → daemon-git-worktree-guard-IVAJJWYK.js} +56 -58
  205. package/chunks/daemon-status-provider-K3SJ5C2U.js +117 -0
  206. package/chunks/daemon-trust-policy-DOR3YG62.js +112 -0
  207. package/chunks/{daemon-trust-policy-monitor-2G3EKQEU.js → daemon-trust-policy-monitor-KGGROSIV.js} +64 -66
  208. package/chunks/deferred-core-runtime-WOYLUQQ7.js +114 -0
  209. package/chunks/{display-image-6KHQNEAE.js → display-image-BE7I6ZB6.js} +5 -5
  210. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  211. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  212. package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
  213. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  214. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  215. package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
  216. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  217. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  218. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  219. package/chunks/earlyInputCapture-OHBEVO4K.js +107 -0
  220. package/chunks/{edit-ZERGX3RV.js → edit-LEQLAGPZ.js} +45 -47
  221. package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
  222. package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
  223. package/chunks/{enterPlanMode-W2RP3P5B.js → enterPlanMode-ONQN3WHE.js} +47 -49
  224. package/chunks/{environment-ZBJ23YVR.js → environment-UANTR7A4.js} +60 -62
  225. package/chunks/errors-WAK6KFBC.js +113 -0
  226. package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
  227. package/chunks/exitPlanMode-UEYBG6P5.js +83 -0
  228. package/chunks/{fast-path-4MWBCEUF.js → fast-path-WUL7UZ6H.js} +7 -7
  229. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  230. package/chunks/{glob-DKTNG32L.js → glob-Y54QUWDY.js} +44 -46
  231. package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-PTD3MBA7.js} +10 -8
  232. package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
  233. package/chunks/handleAutoUpdate-FP3NWNSG.js +109 -0
  234. package/chunks/i18n-INIU5X7A.js +124 -0
  235. package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
  236. package/chunks/initializer-TYODV6GE.js +113 -0
  237. package/chunks/installationInfo-AAPKYDSZ.js +107 -0
  238. package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
  239. package/chunks/list-TUODDN6J.js +116 -0
  240. package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
  241. package/chunks/{gemini-X5GQHQYF.js → llm-NSAVK5V3.js} +117 -114
  242. package/chunks/{geminiContentGenerator-UDSWXZXL.js → llm-content-generator-AY2QKXHE.js} +29 -29
  243. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +110 -0
  244. package/chunks/{loggingContentGenerator-73C7TKDK.js → loggingContentGenerator-DSFQHXIF.js} +328 -37
  245. package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
  246. package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
  247. package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
  248. package/chunks/{managed-npm-update-H2KOLQZU.js → managed-npm-update-TSWENTK5.js} +57 -59
  249. package/chunks/mcp-MWSAPFOL.js +110 -0
  250. package/chunks/{monitor-TGCMNJJH.js → monitor-RW4GWJHB.js} +44 -46
  251. package/chunks/nonInteractiveCli-JXKL343Q.js +185 -0
  252. package/chunks/{notebook-edit-YEUNZYDX.js → notebook-edit-CQNYS5OR.js} +45 -47
  253. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  254. package/chunks/{openaiContentGenerator-J7LD4VSL.js → openaiContentGenerator-J6QIF7EX.js} +26 -28
  255. package/chunks/pidfile-QOIQZFT2.js +111 -0
  256. package/chunks/process-registry-OAEG6WGC.js +662 -0
  257. package/chunks/{processUtils-ZHFC7CSL.js → processUtils-GPHNANKZ.js} +2 -2
  258. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +105 -0
  259. package/chunks/{qwenContentGenerator-YEWWK3JQ.js → qwenContentGenerator-WWDXPYQI.js} +49 -51
  260. package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
  261. package/chunks/{read-file-ZQI3WPVK.js → read-file-FQUQHC6N.js} +13 -13
  262. package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
  263. package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
  264. package/chunks/{report-findings-VFM5DENC.js → report-findings-AO5VYFLR.js} +9 -5
  265. package/chunks/{request-shutdown-6IW46GD7.js → request-shutdown-BCLA3JV2.js} +7 -7
  266. package/chunks/resumeHistoryUtils-NSGF3UCB.js +118 -0
  267. package/chunks/ripGrep-4CAT6SKV.js +39 -0
  268. package/chunks/{run-qwen-serve-WHWU7NZ6.js → run-qwen-serve-5X6IDZER.js} +371 -357
  269. package/chunks/{runtime-E7BSPWQP.js → runtime-HK27GMPF.js} +69 -71
  270. package/chunks/scheduled-tasks-MN2ZZ5P6.js +127 -0
  271. package/chunks/{scheduler-TJPATFOM.js → scheduler-WD4MHMO5.js} +58 -60
  272. package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
  273. package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
  274. package/chunks/{send-message-OXZK6USO.js → send-message-AJ4OCUBV.js} +25 -9
  275. package/chunks/serve-2XCHPPGG.js +118 -0
  276. package/chunks/{server-AXCN7QBJ.js → server-GO2N5DH7.js} +6080 -4964
  277. package/chunks/{session-HO4US3AG.js → session-IFNHTUBT.js} +112 -112
  278. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  279. package/chunks/{settings-B2PFJJN4.js → settings-L6N54CU6.js} +63 -65
  280. package/chunks/{shell-7XMSANI3.js → shell-4Y5LLW6N.js} +44 -46
  281. package/chunks/{skill-NL3VH562.js → skill-YOWTRAKQ.js} +68 -24
  282. package/chunks/skill-settings-ZL4JY5UE.js +118 -0
  283. package/chunks/spawnChannel-ZST6XJVJ.js +112 -0
  284. package/chunks/standalone-update-THVU3OKY.js +118 -0
  285. package/chunks/{startInteractiveUI-G2XKSCQ7.js → startInteractiveUI-XDFSHBZD.js} +3076 -2475
  286. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  287. package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
  288. package/chunks/{task-create-TY7P6UHG.js → task-create-QN4LYRSE.js} +11 -11
  289. package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
  290. package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
  291. package/chunks/{task-update-O4IGDPCK.js → task-update-IWEOJFV2.js} +11 -11
  292. package/chunks/{team-create-IYBUOORE.js → team-create-OOPXCDBA.js} +44 -46
  293. package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
  294. package/chunks/{team-plan-approval-YKU57LBM.js → team-plan-approval-DSX5EWAT.js} +44 -46
  295. package/chunks/terminal-image-renderer-KS25G33E.js +114 -0
  296. package/chunks/theme-manager-YMZNG45F.js +102 -0
  297. package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
  298. package/chunks/{tool-search-4Q3KASIQ.js → tool-search-J5Q6U7DN.js} +22 -22
  299. package/chunks/total-session-admission-PVN64JVV.js +114 -0
  300. package/chunks/trustedFolders-FATSC4YI.js +122 -0
  301. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  302. package/chunks/{update-relaunch-4DC2KKFS.js → update-relaunch-SIKHLHVR.js} +6 -6
  303. package/chunks/updateCheck-D3YG2WCD.js +118 -0
  304. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +120 -0
  305. package/chunks/{validateNonInterActiveAuth-YAE4YPO3.js → validateNonInterActiveAuth-JUDQP6V4.js} +105 -105
  306. package/chunks/{version-QFP7OGWX.js → version-C63GDDWN.js} +1 -1
  307. package/chunks/{web-fetch-6T23IK6Q.js → web-fetch-FOQZMNSC.js} +16 -18
  308. package/chunks/{web-search-WBWTCZK2.js → web-search-PUJTBFUC.js} +9 -11
  309. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  310. package/chunks/{workflow-FMAA3D4R.js → workflow-Y5IPINVH.js} +128 -94
  311. package/chunks/workspace-providers-status-IJ4VHFMB.js +114 -0
  312. package/chunks/{workspace-registration-store-CMMX7EPX.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  313. package/chunks/workspace-registry-BTGZIMPK.js +123 -0
  314. package/chunks/workspace-service-SIN67ITC.js +126 -0
  315. package/chunks/workspace-skills-status-F3RKCUIX.js +113 -0
  316. package/chunks/{workspace-trust-reconciler-PJDQUTJL.js → workspace-trust-reconciler-PLIDLJZX.js} +72 -72
  317. package/chunks/write-file-PAIGB33C.js +88 -0
  318. package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
  319. package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
  320. package/chunks/{zoom-image-WVYVFRXF.js → zoom-image-LYQD7BQA.js} +13 -13
  321. package/cli.js +16 -16
  322. package/locales/en.js +2 -0
  323. package/locales/zh-TW.js +2 -0
  324. package/locales/zh.js +2 -0
  325. package/package.json +3 -3
  326. package/web-shell/assets/{abnfDiagram-VCTEODGH-d-8xa8uz.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  327. package/web-shell/assets/{arc-BhB7CrGK.js → arc-D9Uls5b3.js} +1 -1
  328. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BDCd_IcJ.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  329. package/web-shell/assets/{blockDiagram-NRAW4CY4-C-AHu6mi.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  330. package/web-shell/assets/{c4Diagram-UCG6FXSJ-CFjQt0vl.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  331. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  332. package/web-shell/assets/{chunk-2Q5K7J3B-DRjwqaDq.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  333. package/web-shell/assets/{chunk-5VM5RSS4-eHM9noJE.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  334. package/web-shell/assets/{chunk-F27PBJKO-CcSWUYn1.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  335. package/web-shell/assets/{chunk-G27WJ6UU-DNr-RF5S.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  336. package/web-shell/assets/{chunk-JWPE2WC7-rVJHoNF8.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  337. package/web-shell/assets/{chunk-LCL6LL3I-B2aX0Gzy.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  338. package/web-shell/assets/{chunk-POPQ4Y6H-DVp07n32.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  339. package/web-shell/assets/{chunk-SVP7TREG-C6QB_KUr.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  340. package/web-shell/assets/{chunk-XXDRQBXY-CLVxDNCy.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  341. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  342. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  343. package/web-shell/assets/{cose-bilkent-JH36ORCC-B_aKX3A3.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  344. package/web-shell/assets/{cynefin-OW5HDTMX-BBw2pPUa.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  345. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-WWPiBTwk.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  346. package/web-shell/assets/{dagre-3AP2YEHR-CPtIdka-.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  347. package/web-shell/assets/{diagram-S7CK7UJ4-Dj5og1Xi.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  348. package/web-shell/assets/{diagram-UQ7AKVKN-CC_x70YC.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  349. package/web-shell/assets/{diagram-VSXAHHWV-rXMfsO4n.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  350. package/web-shell/assets/{diagram-VX7I27RA-DEmLYQbh.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  351. package/web-shell/assets/{diagram-Z3DM3KII-B0ys6Vxx.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  352. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq6y6lKH.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  353. package/web-shell/assets/{erDiagram-SSCWMZ5O-l69JeBZ4.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  354. package/web-shell/assets/{flowDiagram-A5DVABFB-Cm-EzGY4.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  355. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BRS9ZOp7.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  356. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DAMRKgLk.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  357. package/web-shell/assets/{index-Bncx8E8M.js → index-BK_NKxiJ.js} +1 -1
  358. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  359. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  360. package/web-shell/assets/{infoDiagram-RXCK75RN-DasffaZp.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  361. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CmRUt3C-.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  362. package/web-shell/assets/{journeyDiagram-EYS64GPL-DzhE_c1Z.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  363. package/web-shell/assets/{kanban-definition-3QL26DDD-BH5b6nn3.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  364. package/web-shell/assets/{layout-BxoLK-LY.js → layout-B9n81PC9.js} +1 -1
  365. package/web-shell/assets/{linear-CqDPvVI7.js → linear-Bb6nXZQq.js} +1 -1
  366. package/web-shell/assets/{mermaid.core-DBoN4plo.js → mermaid.core-Cgrm3JVT.js} +6 -6
  367. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DJJtXPEM.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  368. package/web-shell/assets/{pegDiagram-XKGWAZYB-DmgPXP5l.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  369. package/web-shell/assets/{pieDiagram-E7YTZNPT-1ezjzcI5.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  370. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-ChKARz3k.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  371. package/web-shell/assets/{railroadDiagram-O6MQD6OU-k7mNB_QT.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  372. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-B0XFsii0.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  373. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-repJ2Ukk.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  374. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D0gUSKGu.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  375. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CE463F74.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  376. package/web-shell/assets/{stateDiagram-HBIQ2CUA-003zYtJa.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  377. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  378. package/web-shell/assets/{swimlanes-XN3QIQJK-DBj8MFpu.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  380. package/web-shell/assets/{timeline-definition-24CTP7MA-D2aCh4a9.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  381. package/web-shell/assets/{vennDiagram-4TSXK5OY-BHMfWBpl.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  382. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-RdHAj66j.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  383. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BgJWOvq0.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  384. package/web-shell/index.html +3 -3
  385. package/chunks/MaxSizedBox-BFVLZP2E.js +0 -112
  386. package/chunks/agent-headless-UCBCS4V4.js +0 -87
  387. package/chunks/bridge-FRNYLYY7.js +0 -119
  388. package/chunks/channel-settings-store-IV4KDL7N.js +0 -117
  389. package/chunks/chunk-I6VVOZDK.js +0 -202
  390. package/chunks/chunk-JS73NNWF.js +0 -30
  391. package/chunks/chunk-K2OJUPOE.js +0 -78
  392. package/chunks/chunk-P3QQPMQA.js +0 -19
  393. package/chunks/chunk-SDVF6A42.js +0 -945
  394. package/chunks/chunk-VGHZT6JR.js +0 -51
  395. package/chunks/config-utils-PMX4QZ5Y.js +0 -113
  396. package/chunks/contextCommand-NZRLVAFC.js +0 -108
  397. package/chunks/daemon-status-provider-FTTYZEKN.js +0 -118
  398. package/chunks/daemon-trust-policy-WMGFPA3Z.js +0 -114
  399. package/chunks/deferred-core-runtime-BUFEFYNA.js +0 -116
  400. package/chunks/earlyInputCapture-ROPLMXA7.js +0 -109
  401. package/chunks/errors-U5KNAADB.js +0 -115
  402. package/chunks/exitPlanMode-VFJ5R5DD.js +0 -85
  403. package/chunks/handleAutoUpdate-W4BUYFT7.js +0 -111
  404. package/chunks/i18n-KX7FEKJJ.js +0 -126
  405. package/chunks/initializer-SNVVLS7Y.js +0 -115
  406. package/chunks/installationInfo-D4XGQNHJ.js +0 -109
  407. package/chunks/list-WYECMLXZ.js +0 -118
  408. package/chunks/loadedSettingsAdapter-5WZBXBCR.js +0 -112
  409. package/chunks/mcp-CBWAROY3.js +0 -112
  410. package/chunks/nonInteractiveCli-O232UUV7.js +0 -185
  411. package/chunks/pidfile-MSPQ255Y.js +0 -113
  412. package/chunks/process-registry-PMJOA5CO.js +0 -172
  413. package/chunks/prompt-terminal-ledger-YPGMNDXT.js +0 -107
  414. package/chunks/resumeHistoryUtils-35D4KAVT.js +0 -120
  415. package/chunks/ripGrep-46N4FLOS.js +0 -39
  416. package/chunks/serve-WQ54UIYG.js +0 -120
  417. package/chunks/skill-settings-SKMN5YXC.js +0 -120
  418. package/chunks/spawnChannel-NE43EEO3.js +0 -113
  419. package/chunks/standalone-update-XOCWGXAH.js +0 -120
  420. package/chunks/terminal-image-renderer-NREKYTAD.js +0 -116
  421. package/chunks/theme-manager-IJS6OICX.js +0 -104
  422. package/chunks/total-session-admission-L5RPEFZ2.js +0 -114
  423. package/chunks/trustedFolders-OILZCHRD.js +0 -124
  424. package/chunks/updateCheck-AK4COHNK.js +0 -120
  425. package/chunks/useAutoAcceptIndicator-O2N2Q6KG.js +0 -122
  426. package/chunks/workspace-providers-status-OCFEWIPQ.js +0 -116
  427. package/chunks/workspace-registry-WJLZPRTG.js +0 -123
  428. package/chunks/workspace-service-5ZOBMMIB.js +0 -131
  429. package/chunks/workspace-skills-status-B6NJZD4B.js +0 -115
  430. package/chunks/write-file-B2RNX6SU.js +0 -90
  431. package/web-shell/assets/channel-CU-Zyv0r.js +0 -1
  432. package/web-shell/assets/classDiagram-DTDB5LWJ-C0J2_LKs.js +0 -1
  433. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C0J2_LKs.js +0 -1
  434. package/web-shell/assets/index-C-XlQn24.css +0 -5
  435. package/web-shell/assets/index-gdvMN4J1.js +0 -1860
  436. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-2uACDdJN.js +0 -1
  437. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C4JJkavU.js +0 -8
@@ -2,22 +2,22 @@
2
2
  "use strict";
3
3
  import {
4
4
  isInForkExecution
5
- } from "./chunk-7OBH4AM2.js";
6
- import "./chunk-OT4YKUUV.js";
5
+ } from "./chunk-CAJTKR6W.js";
6
+ import "./chunk-ZU4UDIWX.js";
7
7
  import "./chunk-AQ37AY7B.js";
8
- import "./chunk-RRKNX553.js";
8
+ import "./chunk-PDQGMSZK.js";
9
9
  import {
10
10
  BaseDeclarativeTool,
11
11
  BaseToolInvocation,
12
12
  MAX_TERMINAL_IMAGE_BYTES,
13
13
  ToolDisplayNames,
14
14
  ToolNames
15
- } from "./chunk-KOJ6MHD5.js";
15
+ } from "./chunk-UTLCH2FK.js";
16
16
  import {
17
17
  makeRelative,
18
18
  shortenPath,
19
19
  unescapePath
20
- } from "./chunk-2NNTE2ED.js";
20
+ } from "./chunk-UHQFIS7N.js";
21
21
  import "./chunk-TBWQLLFO.js";
22
22
  import {
23
23
  init_esbuild_shims
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-7E7UCJHS.js";
7
7
  import {
8
8
  PollingChannelBase
9
- } from "./chunk-E55H6BZ7.js";
9
+ } from "./chunk-ICURCKIU.js";
10
10
  import "./chunk-IW6RQPQB.js";
11
11
  import {
12
12
  external_exports
@@ -14,7 +14,7 @@ import {
14
14
  sanitizePromptText,
15
15
  sanitizeSenderName,
16
16
  truncateUtf16Units
17
- } from "./chunk-E55H6BZ7.js";
17
+ } from "./chunk-ICURCKIU.js";
18
18
  import "./chunk-IW6RQPQB.js";
19
19
  import "./chunk-CQ35AJ4Z.js";
20
20
  import "./chunk-DMTGGOSA.js";
@@ -6154,6 +6154,109 @@ async function uploadDingTalkImage(image, accessToken) {
6154
6154
  }
6155
6155
  __name(uploadDingTalkImage, "uploadDingTalkImage");
6156
6156
 
6157
+ // packages/channels/dingtalk/dist/outbound-file.js
6158
+ init_esbuild_shims();
6159
+ var FILE_OPENING = "[FILE:";
6160
+ var MAX_FILE_PATH_CHARS = 4096;
6161
+ var MAX_FILES_PER_RESPONSE = 5;
6162
+ var FILE_UNAVAILABLE_NOTICE = "[File delivery unavailable]";
6163
+ var OutboundFileProjector = class {
6164
+ static {
6165
+ __name(this, "OutboundFileProjector");
6166
+ }
6167
+ candidate = "";
6168
+ reserved = "";
6169
+ reservedAtLineStart = false;
6170
+ reservedTooLong = false;
6171
+ atLineStart = true;
6172
+ paths = [];
6173
+ invalidMarkers = 0;
6174
+ excessMarkers = 0;
6175
+ markerCount = 0;
6176
+ append(chunk) {
6177
+ let safe = "";
6178
+ for (const char of chunk) {
6179
+ if (this.reserved) {
6180
+ if (char === "\n") {
6181
+ this.finishReservedLine();
6182
+ safe += "\n";
6183
+ this.atLineStart = true;
6184
+ } else if (this.reserved.length <= MAX_FILE_PATH_CHARS + 9) {
6185
+ this.reserved += char;
6186
+ } else {
6187
+ this.reservedTooLong = true;
6188
+ }
6189
+ continue;
6190
+ }
6191
+ if (char === "\n") {
6192
+ safe += `${this.candidate}
6193
+ `;
6194
+ this.candidate = "";
6195
+ this.atLineStart = true;
6196
+ continue;
6197
+ }
6198
+ this.candidate += char;
6199
+ while (this.candidate && !FILE_OPENING.startsWith(this.candidate)) {
6200
+ safe += this.candidate[0];
6201
+ this.candidate = this.candidate.slice(1);
6202
+ this.atLineStart = false;
6203
+ }
6204
+ if (this.candidate === FILE_OPENING) {
6205
+ this.reserved = this.candidate;
6206
+ this.reservedAtLineStart = this.atLineStart;
6207
+ this.candidate = "";
6208
+ this.markerCount++;
6209
+ }
6210
+ }
6211
+ return safe;
6212
+ }
6213
+ complete() {
6214
+ if (!this.reserved) {
6215
+ const safe = this.candidate;
6216
+ this.candidate = "";
6217
+ return safe;
6218
+ }
6219
+ this.finishReservedLine();
6220
+ return "";
6221
+ }
6222
+ result(text) {
6223
+ return {
6224
+ text,
6225
+ paths: [...this.paths],
6226
+ invalidMarkers: this.invalidMarkers,
6227
+ excessMarkers: this.excessMarkers,
6228
+ markerCount: this.markerCount
6229
+ };
6230
+ }
6231
+ finishReservedLine() {
6232
+ const match = /^\[FILE: ([^\]\r\n]+)\]\r?$/u.exec(this.reserved);
6233
+ const path = match?.[1];
6234
+ if (!this.reservedTooLong && this.reservedAtLineStart && path && path.length <= MAX_FILE_PATH_CHARS && path === path.trim()) {
6235
+ if (this.paths.length < MAX_FILES_PER_RESPONSE) {
6236
+ this.paths.push(path);
6237
+ } else {
6238
+ this.excessMarkers++;
6239
+ }
6240
+ } else {
6241
+ this.invalidMarkers++;
6242
+ }
6243
+ this.reserved = "";
6244
+ this.reservedAtLineStart = false;
6245
+ this.reservedTooLong = false;
6246
+ }
6247
+ };
6248
+ function projectFileText(text) {
6249
+ const projector = new OutboundFileProjector();
6250
+ const safe = projector.append(text) + projector.complete();
6251
+ return projector.result(safe);
6252
+ }
6253
+ __name(projectFileText, "projectFileText");
6254
+ function withFileUnavailableNotice(text) {
6255
+ const safe = text.trimEnd();
6256
+ return `${safe}${safe ? "\n" : ""}${FILE_UNAVAILABLE_NOTICE}`;
6257
+ }
6258
+ __name(withFileUnavailableNotice, "withFileUnavailableNotice");
6259
+
6157
6260
  // packages/channels/dingtalk/dist/DingtalkConnectionManager.js
6158
6261
  init_esbuild_shims();
6159
6262
  var SOCKET_OPEN = 1;
@@ -7879,6 +7982,7 @@ var DIRECT_MSG_API = "https://api.dingtalk.com/v1.0/robot/oToMessages/batchSend"
7879
7982
  var PROACTIVE_MSG_KEY = "sampleMarkdown";
7880
7983
  var TOKEN_API = "https://oapi.dingtalk.com/gettoken";
7881
7984
  var PROACTIVE_FETCH_TIMEOUT_MS = 15e3;
7985
+ var REPLY_FETCH_TIMEOUT_MS = 15e3;
7882
7986
  var GENERATED_MEDIA_EXT = {
7883
7987
  "image/jpeg": "jpg",
7884
7988
  "image/png": "png",
@@ -7954,6 +8058,18 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
7954
8058
  inboundCardOwners = /* @__PURE__ */ new Map();
7955
8059
  cardRunBySession = /* @__PURE__ */ new Map();
7956
8060
  cardRuns = /* @__PURE__ */ new Map();
8061
+ // Keyed by runId, not segmentId: a mid-turn segment reset (response
8062
+ // boundary, input requested) mints a fresh segment UUID but the projection
8063
+ // state must survive it, or a marker split across the reset leaks.
8064
+ fileProjectors = /* @__PURE__ */ new Map();
8065
+ blockFileProjectors = /* @__PURE__ */ new Map();
8066
+ // Sessions armed for block projection by onPromptStart and disarmed when
8067
+ // the turn settles (or the session dies). A block send that finds NO
8068
+ // projector state is only legitimate as a turn's FIRST block, which always
8069
+ // lands while armed: late sends from an evicted (/clear) or dead session
8070
+ // must be dropped, because recreating state would post the tail of a
8071
+ // force-split [FILE: ...] marker verbatim.
8072
+ blockProjectionArmed = /* @__PURE__ */ new Set();
7957
8073
  constructor(name, config, bridge, options) {
7958
8074
  super(name, config, bridge, options);
7959
8075
  this.atSender = config["atSender"] === true;
@@ -8199,10 +8315,21 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8199
8315
  static isUnroutableGroupMessage(isGroup, conversationId) {
8200
8316
  return isGroup && !conversationId;
8201
8317
  }
8202
- async prepareOutgoingText(text) {
8203
- const markers = findImageMarkers(text);
8318
+ projectOutgoingFileText(text, streamed) {
8319
+ const projection = projectFileText(text);
8320
+ const streamedMarkers = streamed ? streamed.result("").markerCount : 0;
8321
+ if (projection.markerCount === 0 && streamedMarkers === 0) {
8322
+ return projection.text;
8323
+ }
8324
+ process.stderr.write(`[DingTalk:${this.name}] file markers redacted (final=${projection.markerCount}, streamed=${streamedMarkers})
8325
+ `);
8326
+ return withFileUnavailableNotice(projection.text);
8327
+ }
8328
+ async prepareOutgoingText(text, streamed) {
8329
+ const fileSafeText = this.projectOutgoingFileText(text, streamed);
8330
+ const markers = findImageMarkers(fileSafeText);
8204
8331
  if (markers.length === 0)
8205
- return text;
8332
+ return fileSafeText;
8206
8333
  const replacements = [];
8207
8334
  for (const marker of markers) {
8208
8335
  const fileName = basename2(marker.path).replace(/[\r\n[\]]+/g, "_").slice(0, 100) || "image";
@@ -8234,7 +8361,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8234
8361
  replacements.push(`[Image delivery failed: ${fileName}]`);
8235
8362
  }
8236
8363
  }
8237
- return replaceImageMarkers(text, markers, replacements);
8364
+ return replaceImageMarkers(fileSafeText, markers, replacements);
8238
8365
  }
8239
8366
  async sendReply(chatId, text, atUserId) {
8240
8367
  const webhook = this.webhooks.get(chatId);
@@ -8260,11 +8387,19 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8260
8387
  },
8261
8388
  ...isMention ? { at: { atUserIds: [atUserId] } } : {}
8262
8389
  };
8263
- const resp = await fetch(webhook, {
8264
- method: "POST",
8265
- headers: { "Content-Type": "application/json" },
8266
- body: JSON.stringify(body)
8267
- });
8390
+ let resp;
8391
+ try {
8392
+ resp = await fetch(webhook, {
8393
+ method: "POST",
8394
+ headers: { "Content-Type": "application/json" },
8395
+ body: JSON.stringify(body),
8396
+ signal: AbortSignal.timeout(REPLY_FETCH_TIMEOUT_MS)
8397
+ });
8398
+ } catch (err) {
8399
+ process.stderr.write(`[DingTalk:${this.name}] sendMessage failed: ${sanitizeLogText(err instanceof Error ? err.message : String(err), 300)}
8400
+ `);
8401
+ throw err;
8402
+ }
8268
8403
  if (isMention && process.env["QWEN_CHANNEL_DEBUG_MENTIONS"] === "1") {
8269
8404
  const payload = await resp.clone().json().catch(() => void 0);
8270
8405
  const response = payload && typeof payload === "object" ? payload : {};
@@ -8555,6 +8690,12 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8555
8690
  }
8556
8691
  /** Recall reactions left behind when a session dies without terminal lifecycle events. */
8557
8692
  onSessionDied(sessionId) {
8693
+ this.blockProjectionArmed.delete(sessionId);
8694
+ this.blockFileProjectors.delete(sessionId);
8695
+ for (const [runId, state] of this.fileProjectors) {
8696
+ if (state.sessionId === sessionId)
8697
+ this.fileProjectors.delete(runId);
8698
+ }
8558
8699
  const bufferedTargets = this.bufferedMentionTargetsBySession.get(sessionId);
8559
8700
  if (bufferedTargets) {
8560
8701
  this.bufferedMentionTargetsBySession.delete(sessionId);
@@ -8602,6 +8743,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8602
8743
  this.mentionTargets.delete(event.messageId);
8603
8744
  this.stopReaction(event.chatId, event.messageId, event.sessionId);
8604
8745
  if (event.runId) {
8746
+ this.deleteFileProjectorsForRun(event.runId);
8605
8747
  if (event.type === "failed") {
8606
8748
  this.interactionPresenter?.terminalizeRun(event.runId, "failed", event.error);
8607
8749
  } else if (event.type === "cancelled") {
@@ -8644,6 +8786,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8644
8786
  }
8645
8787
  }
8646
8788
  onPromptStart(chatId, sessionId, messageId) {
8789
+ this.blockProjectionArmed.add(sessionId);
8647
8790
  if (messageId) {
8648
8791
  this.bufferedMentionTargets.delete(messageId);
8649
8792
  this.untrackBufferedMentionTarget(sessionId, messageId);
@@ -8658,32 +8801,34 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8658
8801
  async handleInbound(envelope) {
8659
8802
  if (!await this.preflightInbound(envelope))
8660
8803
  return;
8661
- const messageId = envelope.messageId;
8662
- if (messageId && envelope.senderId) {
8663
- this.inboundCardOwners.delete(messageId);
8664
- this.inboundCardOwners.set(messageId, {
8665
- ownerId: envelope.senderId,
8666
- target: {
8667
- chatId: envelope.chatId,
8668
- isGroup: envelope.isGroup
8669
- },
8670
- ...this.atSender && envelope.isGroup ? {
8671
- sender: {
8672
- senderName: envelope.senderName
8673
- }
8674
- } : {}
8675
- });
8676
- if (this.inboundCardOwners.size > 1e3) {
8677
- const oldest = this.inboundCardOwners.keys().next().value;
8678
- if (oldest !== void 0)
8679
- this.inboundCardOwners.delete(oldest);
8804
+ await this.processPreflightedInbound(envelope, async () => {
8805
+ const messageId = envelope.messageId;
8806
+ if (messageId && envelope.senderId) {
8807
+ this.inboundCardOwners.delete(messageId);
8808
+ this.inboundCardOwners.set(messageId, {
8809
+ ownerId: envelope.senderId,
8810
+ target: {
8811
+ chatId: envelope.chatId,
8812
+ isGroup: envelope.isGroup
8813
+ },
8814
+ ...this.atSender && envelope.isGroup ? {
8815
+ sender: {
8816
+ senderName: envelope.senderName
8817
+ }
8818
+ } : {}
8819
+ });
8820
+ if (this.inboundCardOwners.size > 1e3) {
8821
+ const oldest = this.inboundCardOwners.keys().next().value;
8822
+ if (oldest !== void 0)
8823
+ this.inboundCardOwners.delete(oldest);
8824
+ }
8680
8825
  }
8681
- }
8682
- const atUserId = envelope[mentionTarget];
8683
- if (this.atSender && messageId && atUserId) {
8684
- this.mentionTargets.set(messageId, atUserId);
8685
- }
8686
- await this.processInbound(envelope);
8826
+ const atUserId = envelope[mentionTarget];
8827
+ if (this.atSender && messageId && atUserId) {
8828
+ this.mentionTargets.set(messageId, atUserId);
8829
+ }
8830
+ await this.processInbound(envelope);
8831
+ });
8687
8832
  }
8688
8833
  async processInbound(envelope) {
8689
8834
  const messageId = envelope.messageId;
@@ -8704,36 +8849,123 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8704
8849
  this.bufferedMentionTargetsBySession.delete(sessionId);
8705
8850
  }
8706
8851
  onPromptEnd(chatId, sessionId, messageId) {
8852
+ this.settleBlockFileProjector(chatId, sessionId);
8707
8853
  this.sessionMentionTargets.delete(sessionId);
8708
8854
  this.stopReaction(chatId, messageId, sessionId);
8709
8855
  }
8856
+ /**
8857
+ * Turn end is the only point where the block projector's held state can be
8858
+ * settled: ChannelBase drains the turn's queued block sends before calling
8859
+ * onPromptEnd, so everything already appended belongs to this turn. Flush
8860
+ * the held candidate bytes (a trailing `[FILE:` prefix the stream never
8861
+ * completed) before deleting the entry — a later delete-without-settle
8862
+ * would silently drop them from the delivered answer. Also disarm the
8863
+ * session: /clear eviction and session death settle WITHOUT draining the
8864
+ * turn's send chain, and any block that lands afterwards must be dropped
8865
+ * rather than recreating projector state.
8866
+ */
8867
+ settleBlockFileProjector(chatId, sessionId) {
8868
+ this.blockProjectionArmed.delete(sessionId);
8869
+ const state = this.blockFileProjectors.get(sessionId);
8870
+ if (!state)
8871
+ return;
8872
+ this.blockFileProjectors.delete(sessionId);
8873
+ const tail = state.projector.complete();
8874
+ if (!tail.trim())
8875
+ return;
8876
+ void this.sendReply(chatId, tail).catch((err) => {
8877
+ process.stderr.write(`[DingTalk:${this.name}] projector tail delivery failed for session ${sessionId}: ${err instanceof Error ? err.message : String(err)}
8878
+ `);
8879
+ });
8880
+ }
8881
+ /**
8882
+ * Out-of-turn one-shot sends (background responses) must not flow through
8883
+ * the session's block-streaming projector: a second sender interleaving with
8884
+ * mid-projection state can swallow the send or split a held marker.
8885
+ */
8886
+ async deliverBackgroundReply(chatId, text, sessionId) {
8887
+ if (this.config.blockStreaming !== "on") {
8888
+ return super.deliverBackgroundReply(chatId, text, sessionId);
8889
+ }
8890
+ await this.sendReply(chatId, text);
8891
+ }
8710
8892
  async sendResponseMessage(chatId, text, sessionId) {
8711
- const atUserId = this.atSender ? this.sessionMentionTargets.get(sessionId) : void 0;
8893
+ let outgoingText = text;
8894
+ let consumesMention = true;
8895
+ if (this.config.blockStreaming === "on") {
8896
+ const projected = this.projectBlockStreamChunk(text, sessionId);
8897
+ if (!projected.text.trim())
8898
+ return;
8899
+ outgoingText = projected.text;
8900
+ consumesMention = projected.hasContent;
8901
+ }
8902
+ const atUserId = consumesMention && this.atSender ? this.sessionMentionTargets.get(sessionId) : void 0;
8712
8903
  if (atUserId)
8713
8904
  this.sessionMentionTargets.delete(sessionId);
8714
- await this.sendReply(chatId, text, atUserId);
8905
+ await this.sendReply(chatId, outgoingText, atUserId);
8906
+ }
8907
+ projectBlockStreamChunk(text, sessionId) {
8908
+ let state = this.blockFileProjectors.get(sessionId);
8909
+ if (!state) {
8910
+ if (!this.blockProjectionArmed.has(sessionId)) {
8911
+ return { text: "", hasContent: false };
8912
+ }
8913
+ state = { projector: new OutboundFileProjector(), reportedMarkers: 0 };
8914
+ this.blockFileProjectors.set(sessionId, state);
8915
+ }
8916
+ const safe = state.projector.append(text);
8917
+ const hasContent = safe.trim().length > 0;
8918
+ const result = state.projector.result(safe);
8919
+ let outgoingText = safe;
8920
+ if (result.markerCount > state.reportedMarkers) {
8921
+ outgoingText = withFileUnavailableNotice(safe);
8922
+ state.reportedMarkers = result.markerCount;
8923
+ process.stderr.write(`[DingTalk:${this.name}] file markers redacted in block stream (session ${sessionId}, markers=${result.markerCount})
8924
+ `);
8925
+ }
8926
+ return { text: outgoingText, hasContent };
8715
8927
  }
8716
8928
  async sendFallbackReply(chatId, text, sessionId) {
8717
8929
  const atUserId = this.atSender ? this.sessionMentionTargets.get(sessionId) : void 0;
8718
8930
  await this.sendReply(chatId, text, atUserId);
8719
8931
  }
8720
8932
  async onResponseComplete(chatId, text, sessionId, segment) {
8933
+ const streamed = segment ? this.fileProjectors.get(segment.runId)?.projector : void 0;
8934
+ if (segment)
8935
+ this.fileProjectors.delete(segment.runId);
8936
+ const outgoingText = await this.prepareOutgoingText(text, streamed);
8721
8937
  if (segment && this.interactionPresenter) {
8722
- const outgoingText = await this.prepareOutgoingText(text);
8723
8938
  if (await this.interactionPresenter.closeOutput(segment.segmentId, outgoingText, "completed", segment)) {
8724
8939
  return;
8725
8940
  }
8726
8941
  }
8727
- await this.sendResponseMessage(chatId, text, sessionId);
8942
+ await this.sendResponseMessage(chatId, outgoingText, sessionId);
8728
8943
  }
8729
8944
  onOutputSegmentEnd(_chatId, _sessionId, segment, reason) {
8945
+ if (reason === "completed" || reason === "failed" || reason === "cancelled") {
8946
+ this.fileProjectors.delete(segment.runId);
8947
+ }
8730
8948
  if (!this.interactionPresenter)
8731
8949
  return;
8732
8950
  return this.interactionPresenter.closeOutput(segment.segmentId, "", reason, segment).then(() => void 0);
8733
8951
  }
8734
8952
  onResponseChunk(_chatId, chunk, _sessionId, segment) {
8735
- if (segment)
8736
- this.interactionPresenter?.appendOutput(segment, chunk);
8953
+ if (!segment)
8954
+ return;
8955
+ let state = this.fileProjectors.get(segment.runId);
8956
+ if (!state) {
8957
+ state = {
8958
+ sessionId: segment.sessionId,
8959
+ projector: new OutboundFileProjector()
8960
+ };
8961
+ this.fileProjectors.set(segment.runId, state);
8962
+ }
8963
+ const safe = state.projector.append(chunk);
8964
+ if (safe)
8965
+ this.interactionPresenter?.appendOutput(segment, safe);
8966
+ }
8967
+ deleteFileProjectorsForRun(runId) {
8968
+ this.fileProjectors.delete(runId);
8737
8969
  }
8738
8970
  async presentUserInputRequest(context) {
8739
8971
  const run = this.cardRuns.get(context.runId);
@@ -8958,8 +9190,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
8958
9190
  const media = await downloadMedia(downloadCode, robotCode, token);
8959
9191
  if (!media)
8960
9192
  return;
8961
- const inlineImageSlotFree = !(envelope.attachments || []).some((attachment) => attachment.type === "image" && attachment.data);
8962
- if (mediaType === "image" && inlineImageSlotFree) {
9193
+ if (mediaType === "image") {
8963
9194
  const mimeType = media.mimeType.startsWith("image/") ? media.mimeType : "image/jpeg";
8964
9195
  envelope.attachments = [
8965
9196
  ...envelope.attachments || [],
@@ -9069,16 +9300,17 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
9069
9300
  if (this.atSender && isGroup && senderStaffId) {
9070
9301
  envelope[mentionTarget] = senderStaffId;
9071
9302
  }
9072
- const processMessage = /* @__PURE__ */ __name(async () => {
9303
+ const processMessage = content.downloadCodes.length > 0 || quoted.media ? this.prepareThenHandleInbound(envelope, async () => {
9073
9304
  if (content.downloadCodes.length > 0 && content.mediaType) {
9074
- await this.attachMedia(envelope, content.downloadCodes[0], content.mediaType, content.fileName, content.placeholder);
9305
+ for (const downloadCode of content.downloadCodes) {
9306
+ await this.attachMedia(envelope, downloadCode, content.mediaType, content.fileName, content.placeholder);
9307
+ }
9075
9308
  }
9076
9309
  if (quoted.media) {
9077
9310
  await this.attachMedia(envelope, quoted.media.downloadCode, quoted.media.mediaType, quoted.media.fileName);
9078
9311
  }
9079
- await this.handleInbound(envelope);
9080
- }, "processMessage");
9081
- processMessage().catch((err) => {
9312
+ }) : this.handleInbound(envelope);
9313
+ processMessage.catch((err) => {
9082
9314
  process.stderr.write(`[DingTalk:${this.name}] Error handling message: ${err}
9083
9315
  `);
9084
9316
  this.sendMessage(chatId, "Sorry, something went wrong processing your message.").catch(() => {