@qwen-code/qwen-code 0.22.3 → 0.23.0

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 (497) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/common-workflow.md +32 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +6 -6
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -2
  7. package/bundled/qc-helper/docs/configuration/settings.md +63 -58
  8. package/bundled/qc-helper/docs/extension/introduction.md +1 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  11. package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
  12. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  13. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  14. package/bundled/qc-helper/docs/features/channels/overview.md +5 -2
  15. package/bundled/qc-helper/docs/features/code-review.md +2 -2
  16. package/bundled/qc-helper/docs/features/commands.md +79 -1
  17. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  18. package/bundled/qc-helper/docs/features/goals.md +9 -3
  19. package/bundled/qc-helper/docs/features/headless.md +16 -1
  20. package/bundled/qc-helper/docs/features/hooks.md +8 -3
  21. package/bundled/qc-helper/docs/features/memory.md +1 -0
  22. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  23. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
  24. package/bundled/qc-helper/docs/qwen-serve.md +74 -55
  25. package/bundled/review/SKILL.md +16 -7
  26. package/bundled/review/references/posting.md +3 -3
  27. package/chunks/MaxSizedBox-B3D7545A.js +111 -0
  28. package/chunks/{StandaloneSessionPicker-2FJAOLGG.js → StandaloneSessionPicker-QUMO4LLQ.js} +88 -86
  29. package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
  30. package/chunks/{acpAgent-2ZMIJAFV.js → acpAgent-2GTFCIEP.js} +2041 -444
  31. package/chunks/{agent-X5WX3L2I.js → agent-XKF5SZWU.js} +46 -46
  32. package/chunks/agent-headless-OC2IB55D.js +85 -0
  33. package/chunks/{anthropicContentGenerator-YVTB6QX7.js → anthropicContentGenerator-L76MR5OR.js} +53 -20
  34. package/chunks/{artifact-tool-XSMPHZBT.js → artifact-tool-MYCL2QCS.js} +3 -4
  35. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-THQZMG44.js} +45 -7
  36. package/chunks/bridge-IHSBI2YJ.js +118 -0
  37. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  38. package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
  39. package/chunks/{channel-management-service-HQ6KDS7C.js → channel-management-service-4MTCEGJB.js} +4 -4
  40. package/chunks/channel-settings-store-BVKWAI2T.js +121 -0
  41. package/chunks/{channel-worker-group-6NA6BBZV.js → channel-worker-group-47F4ISUZ.js} +7 -7
  42. package/chunks/{channel-worker-manager-NEZ2J6RK.js → channel-worker-manager-I5Y44GYR.js} +51 -10
  43. package/chunks/{channel-worker-supervisor-FKU7DIHJ.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  44. package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
  45. package/chunks/chunk-24FVUD5P.js +49 -0
  46. package/chunks/{chunk-MZCJWS5Y.js → chunk-2M3EWQNG.js} +20 -0
  47. package/chunks/{chunk-7T52W4SW.js → chunk-32LU3APX.js} +1 -1
  48. package/chunks/{chunk-42IDLQWS.js → chunk-373DQUVA.js} +48 -13
  49. package/chunks/{chunk-MSBO7X2W.js → chunk-37JFWFCD.js} +1 -1
  50. package/chunks/{chunk-3JXM2CVW.js → chunk-3AKCBZVW.js} +3 -3
  51. package/chunks/{chunk-TVC6HQ2U.js → chunk-3JQZVCBI.js} +2 -2
  52. package/chunks/{chunk-2LNNVAUV.js → chunk-3L724BJ5.js} +246 -15
  53. package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
  54. package/chunks/{chunk-WNPDGUJO.js → chunk-47RYEQW5.js} +2 -3
  55. package/chunks/{chunk-TZBSGJ6C.js → chunk-4BGDFKQE.js} +7 -7
  56. package/chunks/{chunk-PZ66FRIC.js → chunk-4F7GQGXB.js} +11772 -4773
  57. package/chunks/{chunk-DMLVSW7L.js → chunk-4HVH57J3.js} +713 -9
  58. package/chunks/{chunk-CMHFCLBU.js → chunk-4LIFGNI4.js} +1 -1
  59. package/chunks/{chunk-3SZC4VP4.js → chunk-4M24B5J5.js} +88 -49
  60. package/chunks/{chunk-BOWFGCEU.js → chunk-4PSDSCW3.js} +3 -3
  61. package/chunks/chunk-4UANMABT.js +1026 -0
  62. package/chunks/{chunk-M3QRM3DE.js → chunk-54C6PIGT.js} +5 -5
  63. package/chunks/{chunk-HP5LR5HL.js → chunk-5EIOJGCR.js} +4 -4
  64. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  65. package/chunks/chunk-5IENVM7Z.js +35 -0
  66. package/chunks/{chunk-I6LYRJPB.js → chunk-5Q5RC2WE.js} +2 -2
  67. package/chunks/{chunk-WGY3AVGM.js → chunk-5RTTI4GE.js} +79 -5
  68. package/chunks/{chunk-KID24ZFN.js → chunk-64QH2UC6.js} +13 -1
  69. package/chunks/{chunk-MF7HCQWZ.js → chunk-65HWLGA7.js} +3 -3
  70. package/chunks/{chunk-OU5APVWO.js → chunk-6A2D4QSO.js} +13 -7
  71. package/chunks/chunk-6HUXPLB5.js +110 -0
  72. package/chunks/{chunk-VQUGEVGR.js → chunk-7IKXTGZT.js} +1 -1
  73. package/chunks/{chunk-UTLCH2FK.js → chunk-7JMGTOH7.js} +437 -136
  74. package/chunks/{chunk-7LOELM2I.js → chunk-7RB56BRJ.js} +3 -3
  75. package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
  76. package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
  77. package/chunks/chunk-ADJD4LZF.js +210 -0
  78. package/chunks/{chunk-T7KMERIX.js → chunk-ADYN7P2Y.js} +2 -2
  79. package/chunks/{chunk-TPI7O7HR.js → chunk-AHYTURFB.js} +1 -1
  80. package/chunks/{chunk-LUEHOUHM.js → chunk-AI35S34R.js} +3 -3
  81. package/chunks/{chunk-CIZCL2MW.js → chunk-ALUYNJPM.js} +1486 -2172
  82. package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
  83. package/chunks/{chunk-6ZPDLGHN.js → chunk-AZJLY2XZ.js} +5 -5
  84. package/chunks/{chunk-A3LWD5MK.js → chunk-BA4WJC4L.js} +1 -1
  85. package/chunks/{chunk-W3JH33JE.js → chunk-BFY33IB4.js} +18 -10
  86. package/chunks/{chunk-N4X7G4J2.js → chunk-BHTYRHJF.js} +1 -1
  87. package/chunks/{chunk-TEBDFQBZ.js → chunk-BJXCYUGM.js} +11 -6
  88. package/chunks/{chunk-7VMIMAVB.js → chunk-C2VWOXHS.js} +8 -8
  89. package/chunks/{chunk-XHF7WQ6B.js → chunk-C4TIXFDZ.js} +16 -5
  90. package/chunks/chunk-CHEIIBT3.js +40 -0
  91. package/chunks/chunk-CVX63TFJ.js +348 -0
  92. package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
  93. package/chunks/{chunk-EKSCLBBF.js → chunk-DQCKVAF5.js} +23 -5
  94. package/chunks/{chunk-734C6JGI.js → chunk-DSX7KQPM.js} +5195 -666
  95. package/chunks/{chunk-4CMJKUND.js → chunk-DTVQSSNM.js} +67 -2
  96. package/chunks/{chunk-BKWNKLZB.js → chunk-DYTW3QVG.js} +24 -9
  97. package/chunks/{chunk-C2X7KY45.js → chunk-E4JNFXNI.js} +3 -3
  98. package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
  99. package/chunks/{chunk-YLSQLSH7.js → chunk-EBDGRBZX.js} +24 -16
  100. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  101. package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
  102. package/chunks/{chunk-4TT3IVGA.js → chunk-EIY7SUPZ.js} +1 -1
  103. package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
  104. package/chunks/{chunk-ZWJDJ6RU.js → chunk-EVFDRBUM.js} +157 -153
  105. package/chunks/{chunk-4VPCTGH6.js → chunk-EWRW2WQC.js} +15 -9
  106. package/chunks/{chunk-VBCPNIQD.js → chunk-F33GFWPR.js} +47 -184
  107. package/chunks/{chunk-ERFDKH32.js → chunk-F47DITLZ.js} +19 -8
  108. package/chunks/{chunk-73RM4POK.js → chunk-F7NF2IOE.js} +7 -7
  109. package/chunks/{chunk-EB6QRGHM.js → chunk-FD5SJOWT.js} +10 -7
  110. package/chunks/{chunk-SS5SDCD3.js → chunk-FRICLXCZ.js} +7 -7
  111. package/chunks/{chunk-NU7RKEZR.js → chunk-FUO5V5KI.js} +14 -7
  112. package/chunks/{chunk-G6FECKTJ.js → chunk-G5PBOQWI.js} +9 -6
  113. package/chunks/{chunk-CAJTKR6W.js → chunk-G7HBEEX7.js} +15 -9
  114. package/chunks/{chunk-4QHPPXK2.js → chunk-GB4UKWY5.js} +2 -2
  115. package/chunks/{chunk-QYMAKPY5.js → chunk-GH2S4GD5.js} +350 -12
  116. package/chunks/{chunk-LHBUKJG2.js → chunk-GXUTFQXK.js} +28 -25
  117. package/chunks/{chunk-KJO2LBUK.js → chunk-H43PSPYS.js} +5 -5
  118. package/chunks/{chunk-XSG6G3G6.js → chunk-HJBHMANB.js} +12 -14
  119. package/chunks/chunk-HRPFBHW7.js +336 -0
  120. package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
  121. package/chunks/{chunk-HCOBAG2L.js → chunk-HWVUSYSN.js} +3 -8
  122. package/chunks/{chunk-2OUD5T67.js → chunk-I2TMJPCV.js} +213 -185
  123. package/chunks/{chunk-CLWO3B77.js → chunk-I4NRYS6A.js} +11 -11
  124. package/chunks/{chunk-V7EESTJV.js → chunk-I5N4EAS6.js} +1 -1
  125. package/chunks/{chunk-K5KXUXWC.js → chunk-IG4W5SJR.js} +3 -3
  126. package/chunks/{chunk-FROAFEFB.js → chunk-IPATA3T2.js} +3 -3
  127. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  128. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  129. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  130. package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
  131. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  132. package/chunks/{chunk-CQH5KTKC.js → chunk-JR42V4UY.js} +1 -1
  133. package/chunks/chunk-JS73NNWF.js +30 -0
  134. package/chunks/{chunk-NV55WWD6.js → chunk-JUARRUMA.js} +802 -2011
  135. package/chunks/chunk-JX6XHPTX.js +26 -0
  136. package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
  137. package/chunks/{chunk-P2G476QN.js → chunk-KEVYJSI4.js} +13 -13
  138. package/chunks/{chunk-B466ZSHZ.js → chunk-KFN2IZYR.js} +3 -3
  139. package/chunks/{chunk-JWALNCLT.js → chunk-KGV55H53.js} +1 -1
  140. package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
  141. package/chunks/{chunk-2SXSLSQE.js → chunk-KM3XVTMO.js} +12 -6
  142. package/chunks/{chunk-GPGU4S2N.js → chunk-KMU3ZHH4.js} +3 -3
  143. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  144. package/chunks/{chunk-NMOD2FXQ.js → chunk-L26ONV2Y.js} +8 -8
  145. package/chunks/chunk-L34XSHIZ.js +28 -0
  146. package/chunks/{chunk-SEONHUS3.js → chunk-LAUEEBDL.js} +2 -0
  147. package/chunks/{chunk-3WK3QDNV.js → chunk-LB3WQQJK.js} +2 -2
  148. package/chunks/{chunk-URE3QBBB.js → chunk-LEPCWS5A.js} +3 -3
  149. package/chunks/{chunk-36GSQ3MM.js → chunk-LHBNR6EU.js} +2 -2
  150. package/chunks/{chunk-V4264FEG.js → chunk-LKODFJRD.js} +1 -1
  151. package/chunks/{chunk-PADPMMYM.js → chunk-LOBDDFYK.js} +5 -29
  152. package/chunks/{chunk-BXDAPVQU.js → chunk-LU77UT4D.js} +28 -4
  153. package/chunks/{chunk-RFIDDFAL.js → chunk-M4KFODIP.js} +1 -1
  154. package/chunks/{chunk-CFJY4DGX.js → chunk-M4LBBSVP.js} +4 -2
  155. package/chunks/{chunk-KYWTPLBJ.js → chunk-MOF6VZN2.js} +2 -2
  156. package/chunks/{chunk-DJPASAUV.js → chunk-MP6YZ4RK.js} +4829 -3638
  157. package/chunks/{chunk-T26EAKDL.js → chunk-N2TNM3QB.js} +2 -6
  158. package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
  159. package/chunks/{chunk-7S226YTK.js → chunk-NFIDVZND.js} +11 -1
  160. package/chunks/{chunk-ZEYFMJQA.js → chunk-NQ4L2CMD.js} +83 -18
  161. package/chunks/{chunk-ZZUKP7HV.js → chunk-NRL5CUZT.js} +1 -1
  162. package/chunks/{chunk-WXEA74YB.js → chunk-NSUKQ4DN.js} +9 -3
  163. package/chunks/chunk-NUHOLAQ6.js +59 -0
  164. package/chunks/{chunk-DJEZ55D4.js → chunk-NVVJTUSL.js} +336 -140
  165. package/chunks/{chunk-3XKLXHGK.js → chunk-NXKOVOM5.js} +9 -9
  166. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  167. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  168. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  169. package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
  170. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  171. package/chunks/{chunk-36LGBEM6.js → chunk-OHU2H5CS.js} +1 -1
  172. package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
  173. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  174. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  175. package/chunks/chunk-OSSTATJF.js +1310 -0
  176. package/chunks/chunk-P6UIF2OW.js +400 -0
  177. package/chunks/{chunk-U54AYGEC.js → chunk-PB7JBAHF.js} +15 -49
  178. package/chunks/{chunk-Y5S7LBOZ.js → chunk-PCRBLMIN.js} +17 -3
  179. package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
  180. package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
  181. package/chunks/{chunk-ST5MDGH3.js → chunk-QI27MKNQ.js} +27 -19
  182. package/chunks/{chunk-MK2GIB46.js → chunk-QJGYU5PG.js} +1 -1
  183. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  184. package/chunks/{chunk-MQM5PJML.js → chunk-QJVZLILI.js} +1 -1
  185. package/chunks/{chunk-B5PHIJGI.js → chunk-QKDNS6FU.js} +2 -2
  186. package/chunks/{chunk-ZU4UDIWX.js → chunk-QQD2GART.js} +15 -9
  187. package/chunks/{chunk-62GQFYID.js → chunk-RAFQIHN2.js} +3 -3
  188. package/chunks/{chunk-MO3FC2WT.js → chunk-RJUVTJEZ.js} +1 -1
  189. package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
  190. package/chunks/{chunk-GBJBJ4HX.js → chunk-RM4WT2XB.js} +4 -26
  191. package/chunks/{chunk-VGIFXISB.js → chunk-RN3YGDCA.js} +7 -5
  192. package/chunks/{chunk-DYXFD5RO.js → chunk-S2T7H5MI.js} +1 -1
  193. package/chunks/{chunk-FTF2YIZ5.js → chunk-S6H3ELPG.js} +1 -1
  194. package/chunks/{chunk-4NDLQAY2.js → chunk-SI7WDR3U.js} +524 -16
  195. package/chunks/{chunk-2YOHKHYR.js → chunk-SRF4KTAG.js} +6 -6
  196. package/chunks/{chunk-ZZMSC3RG.js → chunk-STCVJXQB.js} +24 -24
  197. package/chunks/{chunk-ST5V3ZOC.js → chunk-SULZPKTA.js} +3 -3
  198. package/chunks/{chunk-6X7EU5TI.js → chunk-SX2QIMJV.js} +9 -7
  199. package/chunks/{chunk-V5J4J5TP.js → chunk-TJYRTS4S.js} +2 -20
  200. package/chunks/{chunk-C3PEFRKD.js → chunk-TMKTOTMQ.js} +5 -5
  201. package/chunks/{chunk-ISKH4QX3.js → chunk-TQHPVKO6.js} +4 -4
  202. package/chunks/{chunk-HVC3PNVC.js → chunk-TSZSGQ3N.js} +1 -1
  203. package/chunks/{chunk-ICURCKIU.js → chunk-U4DJ5XB3.js} +594 -91
  204. package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
  205. package/chunks/{chunk-GVIVASYK.js → chunk-UAKRDON5.js} +4 -4
  206. package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
  207. package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
  208. package/chunks/{chunk-ZYMLPEZQ.js → chunk-UM2FFKXN.js} +3 -3
  209. package/chunks/{chunk-2OBKDPZZ.js → chunk-UPFRILIL.js} +2 -2
  210. package/chunks/{chunk-2HYKTO7V.js → chunk-UUASLXHW.js} +55 -6
  211. package/chunks/chunk-V5U2NZNJ.js +29 -0
  212. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  213. package/chunks/{chunk-Q2MSPKIJ.js → chunk-VBWD6C27.js} +1 -1
  214. package/chunks/chunk-VGHZT6JR.js +51 -0
  215. package/chunks/{chunk-MPNBVAEU.js → chunk-VNAYZAFX.js} +4 -4
  216. package/chunks/chunk-VPSIC437.js +780 -0
  217. package/chunks/{chunk-AIAOIFY4.js → chunk-VWTSRH6C.js} +92 -17
  218. package/chunks/{chunk-4K7KNVWH.js → chunk-VYIUNFEA.js} +3 -3
  219. package/chunks/{chunk-EQSBPBZ3.js → chunk-WP4AX3XD.js} +5 -7
  220. package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
  221. package/chunks/{chunk-RU7BK6B3.js → chunk-XLXAZLDR.js} +3 -3
  222. package/chunks/{chunk-EFWRMA2I.js → chunk-YPWZTR7F.js} +3 -3
  223. package/chunks/{chunk-XF63PKEN.js → chunk-ZDFQGHZH.js} +1 -1
  224. package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
  225. package/chunks/chunk-ZHO2CW6D.js +205 -0
  226. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  227. package/chunks/{chunk-AYFA7MZV.js → chunk-ZKFTS3OV.js} +6 -6
  228. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  229. package/chunks/{chunk-DJECZIJX.js → chunk-ZTPGUFQV.js} +30 -8
  230. package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
  231. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  232. package/chunks/config-utils-LVSYDLHZ.js +114 -0
  233. package/chunks/contextCommand-TZD7UAJK.js +107 -0
  234. package/chunks/{core-runtime-AXB6SK5D.js → core-runtime-B4UKKIAQ.js} +63 -62
  235. package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-LUPWEUHR.js} +3 -3
  236. package/chunks/{create-sub-session-4QNE64MR.js → create-sub-session-NJ24B4US.js} +94 -66
  237. package/chunks/{cron-create-KJ4IY6PP.js → cron-create-CRSPET3H.js} +4 -4
  238. package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-DB77SZTU.js} +4 -4
  239. package/chunks/{cron-list-DWH2PQ47.js → cron-list-U2JNYWV6.js} +4 -4
  240. package/chunks/{daemon-3GNHB3M2.js → daemon-RKDGBFLK.js} +613 -102
  241. package/chunks/{daemon-git-worktree-guard-IVAJJWYK.js → daemon-git-worktree-guard-O2HPOBAB.js} +62 -61
  242. package/chunks/daemon-status-provider-GRRVCJFW.js +117 -0
  243. package/chunks/daemon-trust-policy-YJL442BK.js +113 -0
  244. package/chunks/{daemon-trust-policy-monitor-KGGROSIV.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +68 -67
  245. package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
  246. package/chunks/deferred-core-runtime-S32AYVZI.js +115 -0
  247. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  248. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  249. package/chunks/{display-image-BE7I6ZB6.js → display-image-73C7XNRK.js} +5 -5
  250. package/chunks/{dist-LVZCXVPF.js → dist-62OZ7QXB.js} +44 -26
  251. package/chunks/{dist-GFN5DCBX.js → dist-EDHQIBYD.js} +152 -63
  252. package/chunks/{dist-N6W6E753.js → dist-GT64AAUR.js} +135 -26
  253. package/chunks/{dist-6BPYWHVD.js → dist-JVXT4VUJ.js} +14 -7
  254. package/chunks/{dist-4WXLCBDR.js → dist-L6URO6CK.js} +12 -5
  255. package/chunks/{dist-5VXFRTWU.js → dist-LXFYIJNG.js} +866 -172
  256. package/chunks/{dist-SWQMYP2Q.js → dist-PDGNRVPY.js} +27 -8
  257. package/chunks/{dist-NSV4NBPK.js → dist-QAF5DO3Y.js} +380 -83
  258. package/chunks/{dist-HZNT6GQS.js → dist-ZCJLKQSP.js} +28 -14
  259. package/chunks/earlyInputCapture-BBPCIVZG.js +108 -0
  260. package/chunks/{edit-LEQLAGPZ.js → edit-SUGXY63Y.js} +47 -47
  261. package/chunks/{en-YLXBXM4Z.js → en-2RATMNX7.js} +5 -0
  262. package/chunks/{enter-worktree-35QCAAFP.js → enter-worktree-B6USKSIK.js} +7 -7
  263. package/chunks/{enterPlanMode-ONQN3WHE.js → enterPlanMode-MDX4RVVL.js} +48 -48
  264. package/chunks/{environment-UANTR7A4.js → environment-VN6RXDVN.js} +63 -62
  265. package/chunks/errors-UEY36PIT.js +114 -0
  266. package/chunks/{exit-worktree-XQD6D543.js → exit-worktree-DLQ73SJH.js} +10 -8
  267. package/chunks/exitPlanMode-EPHIEDAA.js +83 -0
  268. package/chunks/{fast-path-WUL7UZ6H.js → fast-path-Y73R42LV.js} +8 -7
  269. package/chunks/{fast-path-settings-XH426LUU.js → fast-path-settings-MFUR3IWK.js} +3 -3
  270. package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
  271. package/chunks/{glob-Y54QUWDY.js → glob-DMGH7EZN.js} +47 -47
  272. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  273. package/chunks/{grep-5GPICQBU.js → grep-AJVLCVXC.js} +9 -7
  274. package/chunks/handleAutoUpdate-HVWQT2AU.js +110 -0
  275. package/chunks/i18n-5OR7NTRZ.js +125 -0
  276. package/chunks/{image-gen-J6FDGUZP.js → image-gen-VOIDOHOB.js} +8 -8
  277. package/chunks/initializer-JE5RQSOE.js +114 -0
  278. package/chunks/installationInfo-KO3CCSCK.js +108 -0
  279. package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
  280. package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
  281. package/chunks/list-3IORSFIY.js +117 -0
  282. package/chunks/list-agents-SBMONIUK.js +128 -0
  283. package/chunks/{llm-NSAVK5V3.js → llm-K26SUDVK.js} +223 -140
  284. package/chunks/{llm-content-generator-AY2QKXHE.js → llm-content-generator-TT6EAUD4.js} +11 -12
  285. package/chunks/loadedSettingsAdapter-KLLFZF3M.js +111 -0
  286. package/chunks/{loggingContentGenerator-DSFQHXIF.js → loggingContentGenerator-EYQBA4M4.js} +66 -65
  287. package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-QA6SHCZT.js} +5 -5
  288. package/chunks/{ls-3VAT2J7A.js → ls-HEJNCEYO.js} +4 -4
  289. package/chunks/{lsp-5W7IRUBH.js → lsp-WOQKNZP6.js} +2 -2
  290. package/chunks/{managed-npm-update-TSWENTK5.js → managed-npm-update-HIJTODQT.js} +61 -60
  291. package/chunks/mcp-A2UEHETW.js +111 -0
  292. package/chunks/{monitor-RW4GWJHB.js → monitor-DKNZQAB2.js} +46 -46
  293. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  294. package/chunks/nonInteractiveCli-YA47F2F4.js +190 -0
  295. package/chunks/{notebook-edit-CQNYS5OR.js → notebook-edit-MGHTRL2D.js} +47 -47
  296. package/chunks/{open-with-auth-YN3QZHVM.js → open-with-auth-D6JD6LDS.js} +3 -3
  297. package/chunks/{openaiContentGenerator-J6QIF7EX.js → openaiContentGenerator-ZJIEQ3ZJ.js} +26 -28
  298. package/chunks/pidfile-ETHAZNMY.js +112 -0
  299. package/chunks/{processUtils-GPHNANKZ.js → processUtils-UY3SAJJZ.js} +2 -2
  300. package/chunks/prompt-terminal-ledger-GZ747VYE.js +106 -0
  301. package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
  302. package/chunks/{qwenContentGenerator-WWDXPYQI.js → qwenContentGenerator-VI4KATRY.js} +58 -58
  303. package/chunks/{qwenOAuth2-OF5WRBQT.js → qwenOAuth2-7AOCKSOQ.js} +7 -7
  304. package/chunks/{read-file-FQUQHC6N.js → read-file-P7F4P7LV.js} +11 -13
  305. package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-GLAGB6R7.js} +2 -2
  306. package/chunks/{record-artifact-VW23GS4F.js → record-artifact-SWVR7NSU.js} +4 -4
  307. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  308. package/chunks/{report-findings-AO5VYFLR.js → report-findings-AL5YW3KI.js} +5 -5
  309. package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-5YK4IZ54.js} +8 -7
  310. package/chunks/resumeHistoryUtils-DPZKFW24.js +119 -0
  311. package/chunks/ripGrep-C7LJKUPZ.js +37 -0
  312. package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
  313. package/chunks/{run-qwen-serve-5X6IDZER.js → run-qwen-serve-OGTEEUR2.js} +589 -251
  314. package/chunks/{runtime-HK27GMPF.js → runtime-LNBLEMZS.js} +73 -72
  315. package/chunks/scheduled-tasks-FLDYZQOF.js +128 -0
  316. package/chunks/{scheduler-WD4MHMO5.js → scheduler-73YXGUGW.js} +62 -61
  317. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  318. package/chunks/{sdk-exporters-http-TTU2CHBU.js → sdk-exporters-http-3JO5TJNU.js} +4 -4
  319. package/chunks/{sdk-impl-UUMVYMAL.js → sdk-impl-HZAUUTHJ.js} +6 -6
  320. package/chunks/{send-message-AJ4OCUBV.js → send-message-JC7NJTY6.js} +166 -35
  321. package/chunks/serve-3UR2H4CV.js +119 -0
  322. package/chunks/{server-GO2N5DH7.js → server-AOYZVVOM.js} +2904 -860
  323. package/chunks/{session-IFNHTUBT.js → session-UAWFNFGI.js} +119 -114
  324. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  325. package/chunks/{session-pr-refresh-I3UBWMVP.js → session-pr-refresh-CT2INROL.js} +157 -88
  326. package/chunks/{settings-L6N54CU6.js → settings-BHRGDASJ.js} +67 -66
  327. package/chunks/{shell-4Y5LLW6N.js → shell-YHOGC7TO.js} +46 -46
  328. package/chunks/{skill-YOWTRAKQ.js → skill-ZGBKNCHQ.js} +131 -97
  329. package/chunks/skill-settings-AKSP665O.js +119 -0
  330. package/chunks/spawnChannel-N25MBB6F.js +112 -0
  331. package/chunks/standalone-update-XGPWJDRN.js +119 -0
  332. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  333. package/chunks/{startInteractiveUI-XDFSHBZD.js → startInteractiveUI-E2WQJUOA.js} +3509 -4706
  334. package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-HJNZSEHN.js} +3 -3
  335. package/chunks/{task-create-QN4LYRSE.js → task-create-6RSD54S5.js} +12 -12
  336. package/chunks/{task-list-JPLGK45U.js → task-list-IQSACPOM.js} +34 -11
  337. package/chunks/{task-stop-CXEH5L2D.js → task-stop-HE2LRQNW.js} +2 -2
  338. package/chunks/{task-update-IWEOJFV2.js → task-update-XAJ2NYOA.js} +13 -14
  339. package/chunks/{team-create-OOPXCDBA.js → team-create-SOKMYSQU.js} +54 -55
  340. package/chunks/{team-delete-RZVVSGCY.js → team-delete-NGNNKGMG.js} +25 -8
  341. package/chunks/{team-plan-approval-DSX5EWAT.js → team-plan-approval-U7ZWXYAY.js} +46 -46
  342. package/chunks/terminal-image-renderer-KKM4OBLO.js +117 -0
  343. package/chunks/theme-manager-GQHF3A7T.js +103 -0
  344. package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-5UTVUXHA.js} +39 -9
  345. package/chunks/{tool-search-J5Q6U7DN.js → tool-search-IAI2RVWT.js} +21 -19
  346. package/chunks/total-session-admission-G4CGCSTG.js +113 -0
  347. package/chunks/trustedFolders-D2I3FDPB.js +123 -0
  348. package/chunks/{update-relaunch-SIKHLHVR.js → update-relaunch-5RWKZAL3.js} +5 -5
  349. package/chunks/updateCheck-ZXOQDFEI.js +119 -0
  350. package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +121 -0
  351. package/chunks/{validateNonInterActiveAuth-JUDQP6V4.js → validateNonInterActiveAuth-QPFEKATS.js} +113 -109
  352. package/chunks/{version-C63GDDWN.js → version-JKNG7YDH.js} +1 -1
  353. package/chunks/{web-fetch-FOQZMNSC.js → web-fetch-X3AHIIHW.js} +16 -19
  354. package/chunks/{web-search-PUJTBFUC.js → web-search-K2FMOGS5.js} +10 -11
  355. package/chunks/{web-shell-static-HNB4FDOE.js → web-shell-static-POZHGGXE.js} +5 -4
  356. package/chunks/{workflow-Y5IPINVH.js → workflow-TOLPAK5G.js} +213 -119
  357. package/chunks/workspace-providers-status-PCJK3RC7.js +115 -0
  358. package/chunks/{workspace-registration-store-SMJWI2AI.js → workspace-registration-store-KQWVVW4Y.js} +2 -1
  359. package/chunks/workspace-registry-YNIOB6HJ.js +122 -0
  360. package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +123 -0
  361. package/chunks/workspace-service-G4ZNBOFH.js +127 -0
  362. package/chunks/workspace-skills-status-FMTPPMWC.js +114 -0
  363. package/chunks/{workspace-trust-reconciler-PLIDLJZX.js → workspace-trust-reconciler-IBDFQBQS.js} +76 -77
  364. package/chunks/wrapper-JH3IFHT2.js +35 -0
  365. package/chunks/write-file-YTLFY2S5.js +88 -0
  366. package/chunks/{zh-UNY63FR3.js → zh-25DF7OGK.js} +5 -0
  367. package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-5EDMZVGK.js} +5 -0
  368. package/chunks/{zoom-image-LYQD7BQA.js → zoom-image-IFXSN74N.js} +11 -13
  369. package/cli.js +131 -90
  370. package/locales/ca.js +6 -0
  371. package/locales/de.js +6 -0
  372. package/locales/en.js +9 -0
  373. package/locales/fr.js +6 -0
  374. package/locales/ja.js +6 -0
  375. package/locales/pt.js +6 -0
  376. package/locales/ru.js +6 -0
  377. package/locales/zh-TW.js +9 -0
  378. package/locales/zh.js +9 -0
  379. package/package.json +3 -3
  380. package/web-shell/assets/{abnfDiagram-VCTEODGH-TRCMSA_6.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  381. package/web-shell/assets/{arc-D9Uls5b3.js → arc-ESi1eNkE.js} +1 -1
  382. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bwb8jPXg.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  383. package/web-shell/assets/{blockDiagram-NRAW4CY4-DHj71TSX.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  384. package/web-shell/assets/{c4Diagram-UCG6FXSJ-uKBBdbyr.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  385. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  386. package/web-shell/assets/{chunk-2Q5K7J3B-BZd0Phrl.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  387. package/web-shell/assets/{chunk-5VM5RSS4-7KNeNBqN.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  388. package/web-shell/assets/{chunk-F27PBJKO-BeboS7Fi.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  389. package/web-shell/assets/{chunk-G27WJ6UU-RV3JONoj.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  390. package/web-shell/assets/{chunk-JWPE2WC7-Yw9FCFsP.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  391. package/web-shell/assets/{chunk-LCL6LL3I-GIMnydDe.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  392. package/web-shell/assets/{chunk-POPQ4Y6H-Cfrux7bL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  393. package/web-shell/assets/{chunk-SVP7TREG-BlvIN0CO.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  394. package/web-shell/assets/{chunk-XXDRQBXY-DMs7Rr4t.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  395. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  396. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  397. package/web-shell/assets/{cose-bilkent-JH36ORCC-DNGqTNwI.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  398. package/web-shell/assets/{cynefin-OW5HDTMX-CojMpaoH.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  399. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DF07YXGo.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  400. package/web-shell/assets/{dagre-3AP2YEHR-17-4WtCH.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  401. package/web-shell/assets/{diagram-S7CK7UJ4-G3Wuyz9m.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  402. package/web-shell/assets/{diagram-UQ7AKVKN-nyWIKZ8P.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  403. package/web-shell/assets/{diagram-VSXAHHWV-tKHhmYSC.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  404. package/web-shell/assets/{diagram-VX7I27RA-CpDf1hYk.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  405. package/web-shell/assets/{diagram-Z3DM3KII-Cah2IFXG.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  406. package/web-shell/assets/{ebnfDiagram-PWID7BFC-DNaCkgxy.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  407. package/web-shell/assets/{erDiagram-SSCWMZ5O-CAdRgcf1.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  408. package/web-shell/assets/{flowDiagram-A5DVABFB-CMUJAShL.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  409. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-o-_MUNey.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  410. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  411. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  412. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  413. package/web-shell/assets/{index-BK_NKxiJ.js → index-zqvnpGHv.js} +1 -1
  414. package/web-shell/assets/{infoDiagram-RXCK75RN-qJPeZbGP.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  415. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-7Om4vNo1.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  416. package/web-shell/assets/{journeyDiagram-EYS64GPL-BNtXqmBW.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  417. package/web-shell/assets/{kanban-definition-3QL26DDD-COgFec8P.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  418. package/web-shell/assets/{layout-B9n81PC9.js → layout-DkqIaFlJ.js} +1 -1
  419. package/web-shell/assets/{linear-Bb6nXZQq.js → linear-Bdkd3mCz.js} +1 -1
  420. package/web-shell/assets/{mermaid.core-Cgrm3JVT.js → mermaid.core-CGw0LkT_.js} +6 -6
  421. package/web-shell/assets/{mindmap-definition-FBJOCRG2-TKwLTjnG.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  422. package/web-shell/assets/{pegDiagram-XKGWAZYB-BJPuvlpi.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  423. package/web-shell/assets/{pieDiagram-E7YTZNPT-D01VkNsW.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  424. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-C4hHsiv-.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  425. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CuEO4xK2.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  426. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D5J_vIo5.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  427. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-DQKY223V.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  428. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D27YV_cm.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  429. package/web-shell/assets/{sizeCapture-X5ZJPWSS-TJg8UcwV.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  430. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CmnPzUIx.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  431. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  432. package/web-shell/assets/{swimlanes-XN3QIQJK-ByeP3_Nu.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  433. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  434. package/web-shell/assets/{timeline-definition-24CTP7MA-BsFA5juR.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  435. package/web-shell/assets/{vennDiagram-4TSXK5OY-DREP2ECo.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  436. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-iyd9lKi2.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  437. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CVr1_j9q.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  438. package/web-shell/index.html +196 -2
  439. package/chunks/MaxSizedBox-X42SXBJH.js +0 -110
  440. package/chunks/agent-headless-IZM25LJA.js +0 -85
  441. package/chunks/bridge-ME6QXZNA.js +0 -119
  442. package/chunks/channel-settings-store-PEOI7XCG.js +0 -120
  443. package/chunks/chunk-7J6OTNGO.js +0 -424
  444. package/chunks/chunk-BWORX6FA.js +0 -135
  445. package/chunks/chunk-CPBF7KYF.js +0 -51
  446. package/chunks/chunk-H72BQNM3.js +0 -645
  447. package/chunks/chunk-JHYH6PYQ.js +0 -3096
  448. package/chunks/chunk-SS4MRMKE.js +0 -3525
  449. package/chunks/chunk-T4EFG2P5.js +0 -113
  450. package/chunks/chunk-XZA32HII.js +0 -19
  451. package/chunks/chunk-ZYNTSXWK.js +0 -32
  452. package/chunks/config-utils-R6M3TA34.js +0 -113
  453. package/chunks/contextCommand-ZCAP23J6.js +0 -106
  454. package/chunks/daemon-status-provider-K3SJ5C2U.js +0 -117
  455. package/chunks/daemon-trust-policy-DOR3YG62.js +0 -112
  456. package/chunks/deferred-core-runtime-WOYLUQQ7.js +0 -114
  457. package/chunks/earlyInputCapture-OHBEVO4K.js +0 -107
  458. package/chunks/errors-WAK6KFBC.js +0 -113
  459. package/chunks/exitPlanMode-UEYBG6P5.js +0 -83
  460. package/chunks/goal-tools-PTD3MBA7.js +0 -411
  461. package/chunks/handleAutoUpdate-FP3NWNSG.js +0 -109
  462. package/chunks/i18n-INIU5X7A.js +0 -124
  463. package/chunks/initializer-TYODV6GE.js +0 -113
  464. package/chunks/installationInfo-AAPKYDSZ.js +0 -107
  465. package/chunks/list-TUODDN6J.js +0 -116
  466. package/chunks/list-agents-DI3YFTDT.js +0 -80
  467. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +0 -110
  468. package/chunks/mcp-MWSAPFOL.js +0 -110
  469. package/chunks/nonInteractiveCli-JXKL343Q.js +0 -185
  470. package/chunks/pidfile-QOIQZFT2.js +0 -111
  471. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +0 -105
  472. package/chunks/resumeHistoryUtils-NSGF3UCB.js +0 -118
  473. package/chunks/ripGrep-4CAT6SKV.js +0 -39
  474. package/chunks/scheduled-tasks-MN2ZZ5P6.js +0 -127
  475. package/chunks/serve-2XCHPPGG.js +0 -118
  476. package/chunks/skill-settings-ZL4JY5UE.js +0 -118
  477. package/chunks/spawnChannel-ZST6XJVJ.js +0 -112
  478. package/chunks/standalone-update-THVU3OKY.js +0 -118
  479. package/chunks/terminal-image-renderer-KS25G33E.js +0 -114
  480. package/chunks/theme-manager-YMZNG45F.js +0 -102
  481. package/chunks/total-session-admission-PVN64JVV.js +0 -114
  482. package/chunks/trustedFolders-FATSC4YI.js +0 -122
  483. package/chunks/updateCheck-D3YG2WCD.js +0 -118
  484. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +0 -120
  485. package/chunks/workspace-providers-status-IJ4VHFMB.js +0 -114
  486. package/chunks/workspace-registry-BTGZIMPK.js +0 -123
  487. package/chunks/workspace-service-SIN67ITC.js +0 -126
  488. package/chunks/workspace-skills-status-F3RKCUIX.js +0 -113
  489. package/chunks/write-file-PAIGB33C.js +0 -88
  490. package/web-shell/assets/channel-CXjVLaBa.js +0 -1
  491. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +0 -1
  492. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +0 -1
  493. package/web-shell/assets/index-Ci-z4zWY.js +0 -1913
  494. package/web-shell/assets/index-LDlXZRHA.css +0 -36
  495. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +0 -1
  496. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +0 -8
  497. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -1,22 +1,22 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ require_lib
5
+ } from "./chunk-ZL4HFSL6.js";
3
6
  import {
4
7
  require_axios,
5
8
  require_ws
6
- } from "./chunk-AVNATYLY.js";
7
- import "./chunk-XIQ5HQ2F.js";
9
+ } from "./chunk-JJKNYRFY.js";
10
+ import "./chunk-OBTWL6ZW.js";
8
11
  import "./chunk-K6KS3LTN.js";
9
- import {
10
- require_lib
11
- } from "./chunk-HMJ2P3SV.js";
12
- import "./chunk-7E7UCJHS.js";
12
+ import "./chunk-OSHQMOBS.js";
13
13
  import {
14
14
  ChannelBase,
15
15
  ChannelProactiveDeliveryError,
16
16
  isChannelProactiveDeliveryError,
17
17
  isTerminalTaskLifecycleType,
18
18
  sanitizeSenderName
19
- } from "./chunk-ICURCKIU.js";
19
+ } from "./chunk-U4DJ5XB3.js";
20
20
  import "./chunk-IW6RQPQB.js";
21
21
  import "./chunk-CQ35AJ4Z.js";
22
22
  import {
@@ -101330,7 +101330,7 @@ import { tmpdir } from "node:os";
101330
101330
 
101331
101331
  // packages/channels/feishu/dist/markdown.js
101332
101332
  init_esbuild_shims();
101333
- var CHUNK_LIMIT = 4e3;
101333
+ var FEISHU_CHUNK_LIMIT = 4e3;
101334
101334
  function splitByTables(text) {
101335
101335
  const lines = text.split("\n");
101336
101336
  const segments = [];
@@ -101471,8 +101471,16 @@ function extractTitle(text) {
101471
101471
  return cleaned || "Qwen Code";
101472
101472
  }
101473
101473
  __name(extractTitle, "extractTitle");
101474
- function splitChunks(text) {
101475
- if (!text || text.length <= CHUNK_LIMIT) {
101474
+ function safeUtf16SliceEnd(value, end) {
101475
+ if (end <= 0 || end >= value.length)
101476
+ return end;
101477
+ const previous = value.charCodeAt(end - 1);
101478
+ const next = value.charCodeAt(end);
101479
+ return previous >= 55296 && previous <= 56319 && next >= 56320 && next <= 57343 ? end - 1 : end;
101480
+ }
101481
+ __name(safeUtf16SliceEnd, "safeUtf16SliceEnd");
101482
+ function splitChunks(text, chunkLimit = FEISHU_CHUNK_LIMIT) {
101483
+ if (!text || text.length <= chunkLimit) {
101476
101484
  return [text];
101477
101485
  }
101478
101486
  const chunks = [];
@@ -101484,7 +101492,7 @@ function splitChunks(text) {
101484
101492
  const fenceCount = (line.match(/```/g) || []).length;
101485
101493
  const willBeInCode = fenceCount % 2 === 1 ? !inCode : inCode;
101486
101494
  const reserve = willBeInCode ? fenceLine.length + 1 : 0;
101487
- if (buf.length + line.length + 1 + reserve > CHUNK_LIMIT && buf.length > 0) {
101495
+ if (buf.length + line.length + 1 + reserve > chunkLimit && buf.length > 0) {
101488
101496
  if (inCode) {
101489
101497
  buf += "\n```";
101490
101498
  }
@@ -101492,11 +101500,15 @@ function splitChunks(text) {
101492
101500
  buf = inCode ? fenceLine : "";
101493
101501
  }
101494
101502
  buf += (buf ? "\n" : "") + line;
101495
- const budget = willBeInCode ? CHUNK_LIMIT - "\n```".length : CHUNK_LIMIT;
101503
+ const budget = willBeInCode ? chunkLimit - "\n```".length : chunkLimit;
101496
101504
  while (buf.length > budget) {
101497
- const maxSlice = inCode ? CHUNK_LIMIT - "\n```".length - 1 : CHUNK_LIMIT;
101498
- let piece = buf.slice(0, maxSlice);
101499
- buf = buf.slice(maxSlice);
101505
+ const maxSlice = inCode ? chunkLimit - "\n```".length - 1 : chunkLimit;
101506
+ const sliceEnd = safeUtf16SliceEnd(buf, maxSlice);
101507
+ if (sliceEnd <= 0) {
101508
+ throw new RangeError("chunk limit cannot contain one Unicode character");
101509
+ }
101510
+ let piece = buf.slice(0, sliceEnd);
101511
+ buf = buf.slice(sliceEnd);
101500
101512
  if (inCode) {
101501
101513
  piece += "\n```";
101502
101514
  buf = fenceLine + "\n" + buf;
@@ -101591,6 +101603,12 @@ var terminalLabels = {
101591
101603
  };
101592
101604
  function buildQuestionCard(context) {
101593
101605
  const elements = [];
101606
+ if (context.sourceLabel) {
101607
+ elements.push({
101608
+ tag: "markdown",
101609
+ content: escapeQuestionMarkdown(context.sourceLabel)
101610
+ });
101611
+ }
101594
101612
  for (const question of context.questions) {
101595
101613
  const descriptions = question.options.map((option) => `> **${option.label}**: ${option.description}`).join("\n");
101596
101614
  elements.push({
@@ -101635,7 +101653,7 @@ ${descriptions}`
101635
101653
  };
101636
101654
  }
101637
101655
  __name(buildQuestionCard, "buildQuestionCard");
101638
- function buildQuestionTerminalCard(questions, state, answers) {
101656
+ function buildQuestionTerminalCard(questions, state, answers, sourceLabel) {
101639
101657
  const details = questions.map((question) => {
101640
101658
  const answer = answers?.[question.answerKey];
101641
101659
  return answer ? `**${question.header}**
@@ -101648,7 +101666,9 @@ ${question.question}`;
101648
101666
  elements: [
101649
101667
  {
101650
101668
  tag: "markdown",
101651
- content: `**${terminalLabels[state]}**
101669
+ content: `${sourceLabel ? `${escapeQuestionMarkdown(sourceLabel)}
101670
+
101671
+ ` : ""}**${terminalLabels[state]}**
101652
101672
 
101653
101673
  ${details}`
101654
101674
  }
@@ -101657,6 +101677,10 @@ ${details}`
101657
101677
  };
101658
101678
  }
101659
101679
  __name(buildQuestionTerminalCard, "buildQuestionTerminalCard");
101680
+ function escapeQuestionMarkdown(value) {
101681
+ return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replace(/([\\`*_[\]{}()#+.!|>~-])/gu, "\\$1");
101682
+ }
101683
+ __name(escapeQuestionMarkdown, "escapeQuestionMarkdown");
101660
101684
  function record(value) {
101661
101685
  if (!value || typeof value !== "object" || Array.isArray(value)) {
101662
101686
  return void 0;
@@ -101810,7 +101834,7 @@ var FeishuQuestionCardController = class {
101810
101834
  this.options.onError?.("question card delivery", error);
101811
101835
  await this.finalize(record2, "cancelled");
101812
101836
  try {
101813
- await this.options.sendFallback(record2.chatId, this.fallbackText(record2.context));
101837
+ await this.sendFallback(record2.chatId, this.fallbackText(record2.context), record2.context.sourceLabel);
101814
101838
  } catch (fallbackError) {
101815
101839
  this.options.onError?.("question fallback delivery", fallbackError);
101816
101840
  }
@@ -101855,7 +101879,7 @@ var FeishuQuestionCardController = class {
101855
101879
  toast: { type: "success", content: "\u7B54\u6848\u5DF2\u63D0\u4EA4\uFF0C\u6B63\u5728\u5904\u7406\u3002" },
101856
101880
  card: {
101857
101881
  type: "raw",
101858
- data: buildQuestionTerminalCard(record2.context.questions, "processing", answers)
101882
+ data: buildQuestionTerminalCard(record2.context.questions, "processing", answers, record2.context.sourceLabel)
101859
101883
  }
101860
101884
  },
101861
101885
  execute: /* @__PURE__ */ __name(() => this.respond(record2, "submitted", answers), "execute")
@@ -101869,7 +101893,7 @@ var FeishuQuestionCardController = class {
101869
101893
  toast: { type: "info", content: "\u5DF2\u53D6\u6D88\u3002" },
101870
101894
  card: {
101871
101895
  type: "raw",
101872
- data: buildQuestionTerminalCard(record2.context.questions, "cancelled")
101896
+ data: buildQuestionTerminalCard(record2.context.questions, "cancelled", void 0, record2.context.sourceLabel)
101873
101897
  }
101874
101898
  },
101875
101899
  execute: /* @__PURE__ */ __name(() => this.respond(record2, "cancelled"), "execute")
@@ -101961,7 +101985,7 @@ var FeishuQuestionCardController = class {
101961
101985
  return Promise.resolve();
101962
101986
  const terminalState = record2.terminalState;
101963
101987
  const answers = record2.terminalAnswers;
101964
- const card = buildQuestionTerminalCard(record2.context.questions, terminalState, answers);
101988
+ const card = buildQuestionTerminalCard(record2.context.questions, terminalState, answers, record2.context.sourceLabel);
101965
101989
  const projection = (record2.projection ?? Promise.resolve()).then(async () => {
101966
101990
  let patched = false;
101967
101991
  try {
@@ -101978,8 +102002,8 @@ var FeishuQuestionCardController = class {
101978
102002
  return `${question.header}: ${answer ?? question.question}`;
101979
102003
  }).join("\n");
101980
102004
  try {
101981
- await this.options.sendFallback(record2.chatId, `${terminalLabels[terminalState]}
101982
- ${details}`);
102005
+ await this.sendFallback(record2.chatId, `${terminalLabels[terminalState]}
102006
+ ${details}`, record2.context.sourceLabel);
101983
102007
  } catch (fallbackError) {
101984
102008
  this.options.onError?.("question terminal fallback delivery", fallbackError);
101985
102009
  }
@@ -102010,6 +102034,9 @@ ${details}`);
102010
102034
  return `\u4E92\u52A8\u95EE\u9898\u5361\u7247\u6295\u9012\u5931\u8D25\uFF0C\u8BE5\u8BF7\u6C42\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u91CD\u8BD5\u3002
102011
102035
  ${questions}`;
102012
102036
  }
102037
+ sendFallback(chatId, text, sourceLabel) {
102038
+ return sourceLabel ? this.options.sendFallback(chatId, text, sourceLabel) : this.options.sendFallback(chatId, text);
102039
+ }
102013
102040
  };
102014
102041
 
102015
102042
  // packages/channels/feishu/dist/FeishuAdapter.js
@@ -102036,8 +102063,10 @@ var FEISHU_STATUS_STRINGS = [
102036
102063
  FEISHU_TRUNCATED_STATUS_LABEL
102037
102064
  ];
102038
102065
  var escapeRegExp = /* @__PURE__ */ __name((value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "escapeRegExp");
102066
+ var escapeFeishuMarkdown = /* @__PURE__ */ __name((value) => value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replace(/([\\`*_[\]{}()#+.!|>~-])/gu, "\\$1"), "escapeFeishuMarkdown");
102039
102067
  var FEISHU_STATUS_LABELS = `(?:${FEISHU_STATUS_STRINGS.map(escapeRegExp).join("|")})`;
102040
102068
  var FEISHU_STATUS_BLOCK_RE = new RegExp(`(?:^|\\n)---\\n\\*${FEISHU_STATUS_LABELS}\\*(?=\\n|$)`, "g");
102069
+ var FEISHU_SOURCE_LABEL_LINE_RE = /^\\\[(?:[A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31}|[^\r\n]+ · [A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31})\\\](?:\n\n?)?/u;
102041
102070
  var BASE_URL2 = "https://open.feishu.cn/open-apis";
102042
102071
  var FEISHU_ID_RE2 = /^[a-zA-Z0-9_.:-]+$/;
102043
102072
  var FeishuCardDeliveryError = class extends Error {
@@ -102099,7 +102128,7 @@ var FeishuChannel = class extends ChannelBase {
102099
102128
  timeoutMs: 27e4,
102100
102129
  sendCard: /* @__PURE__ */ __name((chatId, card) => this.sendInteractiveCard(chatId, card), "sendCard"),
102101
102130
  patchCard: /* @__PURE__ */ __name((messageId, card) => this.patchInteractiveCard(messageId, card), "patchCard"),
102102
- sendFallback: /* @__PURE__ */ __name((chatId, text) => this.sendMessageInternal(chatId, text, true), "sendFallback"),
102131
+ sendFallback: /* @__PURE__ */ __name((chatId, text, sourceLabel) => sourceLabel ? this.sendMessageInternal(chatId, text, true, "chat_id", sourceLabel) : this.sendMessageInternal(chatId, text, true), "sendFallback"),
102103
102132
  onError: /* @__PURE__ */ __name((operation, error) => {
102104
102133
  process.stderr.write(`[Feishu:${this.name}] ${operation} error: ${error instanceof Error ? error.message : error}
102105
102134
  `);
@@ -102352,7 +102381,7 @@ var FeishuChannel = class extends ChannelBase {
102352
102381
  }
102353
102382
  const content = JSON.parse(item.body.content);
102354
102383
  if (item.msg_type === "interactive") {
102355
- return { content: this.extractCardText(content), isFromBot };
102384
+ return { content: this.extractCardText(content, isFromBot), isFromBot };
102356
102385
  } else if (item.msg_type === "text") {
102357
102386
  return { content: content.text || void 0, isFromBot };
102358
102387
  } else if (item.msg_type === "post") {
@@ -102391,7 +102420,7 @@ var FeishuChannel = class extends ChannelBase {
102391
102420
  * Supports both v2 format ({ schema, body: { elements } }) and
102392
102421
  * v1/API-returned format ({ title, elements: [[...]] }).
102393
102422
  */
102394
- extractCardText(card) {
102423
+ extractCardText(card, isFromBot = false) {
102395
102424
  const lines = [];
102396
102425
  const body = card["body"];
102397
102426
  if (body?.elements) {
@@ -102444,6 +102473,9 @@ var FeishuChannel = class extends ChannelBase {
102444
102473
  let text = lines.join("\n").trim();
102445
102474
  text = text.replace(FEISHU_STATUS_BLOCK_RE, "");
102446
102475
  text = text.replace(/^好的,<at[^>]*><\/at>\s*\n*/, "");
102476
+ if (this.config.multiSession && isFromBot) {
102477
+ text = text.replace(FEISHU_SOURCE_LABEL_LINE_RE, "");
102478
+ }
102447
102479
  return text.trim() || void 0;
102448
102480
  }
102449
102481
  async getTenantAccessToken(options) {
@@ -102659,8 +102691,15 @@ var FeishuChannel = class extends ChannelBase {
102659
102691
  async sendMessage(chatId, text) {
102660
102692
  await this.sendMessageInternal(chatId, text, false);
102661
102693
  }
102662
- async pushProactive(target, text) {
102663
- await this.sendMessageInternal(target.chatId, text, true);
102694
+ async sendThreadMessage(chatId, _threadId, text, sourceLabel) {
102695
+ if (sourceLabel) {
102696
+ await this.sendMessageInternal(chatId, text, false, "chat_id", sourceLabel);
102697
+ } else {
102698
+ await this.sendMessage(chatId, text);
102699
+ }
102700
+ }
102701
+ async pushProactive(target, text, sourceLabel) {
102702
+ await this.sendMessageInternal(target.chatId, text, true, "chat_id", sourceLabel);
102664
102703
  }
102665
102704
  async pushProactiveDelivery(target, text) {
102666
102705
  try {
@@ -102672,7 +102711,7 @@ var FeishuChannel = class extends ChannelBase {
102672
102711
  throw new ChannelProactiveDeliveryError("transient", error instanceof Error ? error.message : String(error), { cause: error });
102673
102712
  }
102674
102713
  }
102675
- async sendMessageInternal(chatId, text, throwOnFailure, receiveIdType = "chat_id") {
102714
+ async sendMessageInternal(chatId, text, throwOnFailure, receiveIdType = "chat_id", sourceLabel, leadingPrefix) {
102676
102715
  const token = await this.getTenantAccessToken();
102677
102716
  if (!token) {
102678
102717
  process.stderr.write(`[Feishu:${this.name}] Cannot send: no access token.
@@ -102682,7 +102721,18 @@ var FeishuChannel = class extends ChannelBase {
102682
102721
  }
102683
102722
  return;
102684
102723
  }
102685
- const chunks = splitChunks(text);
102724
+ const hasVisibleContent = text.trim().length > 0 || Boolean(leadingPrefix);
102725
+ const sourcePrefix = sourceLabel && hasVisibleContent ? `${escapeFeishuMarkdown(sourceLabel)}
102726
+
102727
+ ` : "";
102728
+ const firstPrefix = leadingPrefix ? `${leadingPrefix}
102729
+
102730
+ ` : "";
102731
+ const contentLimit = FEISHU_CHUNK_LIMIT - sourcePrefix.length - firstPrefix.length;
102732
+ if (contentLimit <= 0) {
102733
+ throw new Error("Feishu attribution exceeds the message limit.");
102734
+ }
102735
+ const chunks = splitChunks(text, contentLimit).map((chunk, index) => `${index === 0 ? firstPrefix : ""}${sourcePrefix}${chunk}`);
102686
102736
  for (let i = 0; i < chunks.length; i++) {
102687
102737
  const chunk = chunks[i];
102688
102738
  const title = i === 0 ? extractTitle(text) : `${extractTitle(text)} (cont.)`;
@@ -102728,6 +102778,11 @@ var FeishuChannel = class extends ChannelBase {
102728
102778
  }
102729
102779
  }
102730
102780
  }
102781
+ sendFallbackMessage(chatId, text, sourceLabel, leadingPrefix) {
102782
+ return sourceLabel ? this.sendMessageInternal(chatId, text, false, "chat_id", sourceLabel, leadingPrefix) : this.sendMessage(chatId, leadingPrefix ? `${leadingPrefix}
102783
+
102784
+ ${text}` : text);
102785
+ }
102731
102786
  // ----- Interactive Card Streaming -----
102732
102787
  async sendInteractiveCard(chatId, card) {
102733
102788
  const token = await this.getTenantAccessToken();
@@ -102794,11 +102849,15 @@ var FeishuChannel = class extends ChannelBase {
102794
102849
  }
102795
102850
  async createStreamingCard(chatId, text, title, inboundMsgId) {
102796
102851
  const cardTitle = title || inboundMsgId && this.msgToQuestion.get(inboundMsgId) || "Qwen";
102797
- const card = buildCardContent(text, {
102852
+ const statusLabel = this.statusLabelFor();
102853
+ const card = buildCardContent(this.attributedCardText(inboundMsgId, text, `
102854
+
102855
+ ---
102856
+ *${statusLabel}*`.length), {
102798
102857
  title: cardTitle,
102799
102858
  showStopButton: true,
102800
102859
  isStreaming: true,
102801
- statusLabel: this.statusLabelFor(),
102860
+ statusLabel,
102802
102861
  collapsible: this.collapsible,
102803
102862
  collapsibleThreshold: this.collapsibleThreshold
102804
102863
  });
@@ -102818,16 +102877,42 @@ var FeishuChannel = class extends ChannelBase {
102818
102877
  }
102819
102878
  async updateCard(messageId, text, finished = false, inboundMsgId, statusLabel) {
102820
102879
  const cardTitle = inboundMsgId ? this.msgToQuestion.get(inboundMsgId) || "Qwen" : "Qwen";
102821
- const card = buildCardContent(text, {
102880
+ const effectiveStatusLabel = statusLabel ?? (!finished ? this.statusLabelFor() : void 0);
102881
+ const card = buildCardContent(this.attributedCardText(inboundMsgId, text, effectiveStatusLabel ? `
102882
+
102883
+ ---
102884
+ *${effectiveStatusLabel}*`.length : 0), {
102822
102885
  title: cardTitle,
102823
102886
  showStopButton: !finished,
102824
102887
  isStreaming: !finished,
102825
- statusLabel: statusLabel ?? (!finished ? this.statusLabelFor() : void 0),
102888
+ statusLabel: effectiveStatusLabel,
102826
102889
  collapsible: this.collapsible,
102827
102890
  collapsibleThreshold: this.collapsibleThreshold
102828
102891
  });
102829
102892
  return this.patchInteractiveCard(messageId, card);
102830
102893
  }
102894
+ attributedCardText(inboundMsgId, text, reservedChars = 0) {
102895
+ if (!inboundMsgId)
102896
+ return this.truncateCardText(text, reservedChars);
102897
+ const sourceLabel = this.cardSessions.get(inboundMsgId)?.sourceLabel;
102898
+ if (!sourceLabel)
102899
+ return this.truncateCardText(text, reservedChars);
102900
+ const atPrefix = this.msgToSenderName.get(inboundMsgId);
102901
+ let body = text;
102902
+ const prefixes = [];
102903
+ if (atPrefix && (body === atPrefix || body.startsWith(`${atPrefix}
102904
+ `))) {
102905
+ prefixes.push(atPrefix);
102906
+ body = body.slice(atPrefix.length).replace(/^\s{1,2}/u, "");
102907
+ }
102908
+ prefixes.push(escapeFeishuMarkdown(sourceLabel));
102909
+ const prefix = prefixes.join("\n\n");
102910
+ if (!body)
102911
+ return prefix;
102912
+ return `${prefix}
102913
+
102914
+ ${this.truncateCardText(body, reservedChars + prefix.length + 2)}`;
102915
+ }
102831
102916
  async presentUserInputRequest(context) {
102832
102917
  if (!context.precedingSegmentId) {
102833
102918
  const inboundMsgId = this.sessionToInboundMsg.get(context.sessionId);
@@ -102864,7 +102949,7 @@ var FeishuChannel = class extends ChannelBase {
102864
102949
  return false;
102865
102950
  }
102866
102951
  }
102867
- onResponseChunk(chatId, chunk, sessionId) {
102952
+ onResponseChunk(chatId, chunk, sessionId, segment) {
102868
102953
  if (this.config.blockStreaming === "on")
102869
102954
  return;
102870
102955
  const inboundMsgId = this.sessionToInboundMsg.get(sessionId);
@@ -102883,10 +102968,12 @@ var FeishuChannel = class extends ChannelBase {
102883
102968
  creating: false,
102884
102969
  stopped: false,
102885
102970
  accumulatedText: "",
102886
- lastUpdateAt: Date.now()
102971
+ lastUpdateAt: Date.now(),
102972
+ sourceLabel: segment?.sourceLabel ?? this.getResponseSourceLabel(sessionId)
102887
102973
  };
102888
102974
  this.cardSessions.set(inboundMsgId, cardState);
102889
102975
  }
102976
+ cardState.sourceLabel ??= segment?.sourceLabel ?? this.getResponseSourceLabel(sessionId);
102890
102977
  if (cardState.stopped)
102891
102978
  return;
102892
102979
  cardState.boundaryText = void 0;
@@ -103078,8 +103165,9 @@ ${text}` : atPrefix : text;
103078
103165
  }
103079
103166
  if (!updated) {
103080
103167
  await this.deleteCard(cardState.messageId);
103081
- if (displayText)
103082
- await this.sendMessage(chatId, displayText);
103168
+ if (displayText) {
103169
+ await this.sendFallbackMessage(chatId, text, cardState.sourceLabel, atPrefix);
103170
+ }
103083
103171
  }
103084
103172
  } else {
103085
103173
  if (cardState.creating) {
@@ -103087,7 +103175,7 @@ ${text}` : atPrefix : text;
103087
103175
  cardState.abandoned = true;
103088
103176
  }
103089
103177
  if (text) {
103090
- await this.sendMessage(chatId, displayText);
103178
+ await this.sendFallbackMessage(chatId, text, cardState.sourceLabel, atPrefix);
103091
103179
  }
103092
103180
  }
103093
103181
  } finally {
@@ -103127,7 +103215,7 @@ ${contentPart}` : contentPart;
103127
103215
  const updated = await this.updateCard(cardState.messageId, finalText, true, inboundMsgId);
103128
103216
  if (!updated) {
103129
103217
  await this.deleteCard(cardState.messageId);
103130
- await this.sendMessage(chatId, finalText);
103218
+ await this.sendFallbackMessage(chatId, contentPart, cardState.sourceLabel, prefix);
103131
103219
  }
103132
103220
  }
103133
103221
  this.cleanupCard(inboundMsgId);
@@ -103153,15 +103241,18 @@ ${contentPart}` : contentPart;
103153
103241
  }
103154
103242
  cardState.terminalStatus ??= event.type;
103155
103243
  }
103156
- async onResponseComplete(chatId, fullText, sessionId) {
103244
+ async onResponseComplete(chatId, fullText, sessionId, segment) {
103245
+ const sourceLabel = segment?.sourceLabel ?? this.getResponseSourceLabel(sessionId);
103157
103246
  const inboundMsgId = this.sessionToInboundMsg.get(sessionId);
103158
103247
  if (!inboundMsgId) {
103159
103248
  process.stderr.write(`[Feishu:${this.name}] onResponseComplete: no inboundMsgId for session ${sessionId}, fallback to sendMessage
103160
103249
  `);
103161
- await this.sendMessage(chatId, fullText);
103250
+ await this.sendFallbackMessage(chatId, fullText, sourceLabel);
103162
103251
  return;
103163
103252
  }
103164
103253
  const cardState = this.cardSessions.get(inboundMsgId);
103254
+ if (cardState)
103255
+ cardState.sourceLabel ??= sourceLabel;
103165
103256
  if (cardState)
103166
103257
  cardState.completed = true;
103167
103258
  if (cardState?.stopped || this.stoppedMessages.has(inboundMsgId)) {
@@ -103208,7 +103299,7 @@ ${contentPart}` : contentPart;
103208
103299
  cardState.stopped = true;
103209
103300
  cardState.abandoned = true;
103210
103301
  this.cleanupCard(inboundMsgId);
103211
- await this.sendMessage(chatId, fullText);
103302
+ await this.sendFallbackMessage(chatId, fullText, sourceLabel);
103212
103303
  return;
103213
103304
  }
103214
103305
  if (cardState?.created) {
@@ -103233,9 +103324,7 @@ ${contentPart}` : contentPart;
103233
103324
  if (!lastResort) {
103234
103325
  await this.deleteCard(cardState.messageId);
103235
103326
  this.cleanupCard(inboundMsgId);
103236
- await this.sendMessage(chatId, atSender ? `${atSender}
103237
-
103238
- ${fullText}` : fullText);
103327
+ await this.sendFallbackMessage(chatId, fullText, sourceLabel, atSender);
103239
103328
  return;
103240
103329
  }
103241
103330
  }
@@ -103256,13 +103345,12 @@ ${fullText}` : fullText);
103256
103345
  await this.deleteCard(result.messageId);
103257
103346
  }
103258
103347
  this.cleanupCard(inboundMsgId);
103259
- await this.sendMessage(chatId, atSender ? `${atSender}
103260
-
103261
- ${fullText}` : fullText);
103348
+ await this.sendFallbackMessage(chatId, fullText, sourceLabel, atSender);
103262
103349
  }
103263
103350
  onPromptStart(_chatId, sessionId, messageId) {
103264
103351
  const inboundMsgId = messageId && this.isKnownInboundMessageId(messageId) ? messageId : void 0;
103265
103352
  if (inboundMsgId) {
103353
+ const sourceLabel = this.getResponseSourceLabel(sessionId);
103266
103354
  this.sessionToInboundMsg.set(sessionId, inboundMsgId);
103267
103355
  this.addReaction(inboundMsgId, "OnIt").catch(() => {
103268
103356
  });
@@ -103273,8 +103361,13 @@ ${fullText}` : fullText);
103273
103361
  creating: false,
103274
103362
  stopped: false,
103275
103363
  accumulatedText: "",
103276
- lastUpdateAt: Date.now()
103364
+ lastUpdateAt: Date.now(),
103365
+ sourceLabel
103277
103366
  });
103367
+ } else {
103368
+ const cardState = this.cardSessions.get(inboundMsgId);
103369
+ if (cardState)
103370
+ cardState.sourceLabel ??= sourceLabel;
103278
103371
  }
103279
103372
  }
103280
103373
  }
@@ -103309,18 +103402,12 @@ ${cs.accumulatedText}` : cs.accumulatedText : atPrefix || "";
103309
103402
  } else {
103310
103403
  if (cs.accumulatedText) {
103311
103404
  const atPrefix = this.msgToSenderName.get(inboundMsgId) || "";
103312
- const fallbackText = atPrefix ? `${atPrefix}
103313
-
103314
- ${cs.accumulatedText}` : cs.accumulatedText;
103315
- this.sendMessage(_chatId, fallbackText).catch(() => {
103405
+ this.sendFallbackMessage(_chatId, cs.accumulatedText, cs.sourceLabel, atPrefix).catch(() => {
103316
103406
  });
103317
103407
  } else if (cs.terminalStatus !== "completed") {
103318
103408
  const atPrefix = this.msgToSenderName.get(inboundMsgId) || "";
103319
103409
  const fallbackLabel = cs.terminalStatus ? this.statusLabelFor(cs.terminalStatus) : "\u51FA\u9519\u4E86\uFF0C\u8BF7\u91CD\u8BD5";
103320
- const errorText = atPrefix ? `${atPrefix}
103321
-
103322
- *${fallbackLabel}*` : `*${fallbackLabel}*`;
103323
- this.sendMessage(_chatId, errorText).catch(() => {
103410
+ this.sendFallbackMessage(_chatId, `*${fallbackLabel}*`, cs.sourceLabel, atPrefix).catch(() => {
103324
103411
  });
103325
103412
  process.stderr.write(`[Feishu:${this.name}] onPromptEnd: no card and no accumulated text for inbound=${inboundMsgId}, sent error fallback
103326
103413
  `);
@@ -103471,11 +103558,11 @@ ${contentPart}` : prefix : contentPart;
103471
103558
  const updated = await this.updateCard(cardState.messageId, finalText, cancelSucceeded, inboundId, stopLabel);
103472
103559
  if (!updated && cancelSucceeded && chatId) {
103473
103560
  await this.deleteCard(cardState.messageId);
103474
- await this.sendMessage(chatId, finalText ? `${finalText}
103561
+ await this.sendFallbackMessage(chatId, contentPart ? `${contentPart}
103475
103562
 
103476
103563
  ---
103477
103564
  *${stopLabel}*` : `---
103478
- *${stopLabel}*`);
103565
+ *${stopLabel}*`, cardState.sourceLabel, prefix);
103479
103566
  }
103480
103567
  }
103481
103568
  }, "handleStop");
@@ -103574,8 +103661,9 @@ ${contentPart}` : prefix : contentPart;
103574
103661
  if (text.length + reservedChars <= MAX_CARD_CHARS)
103575
103662
  return text;
103576
103663
  const marker = "\n\n_(\u5185\u5BB9\u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\u65E9\u671F\u5185\u5BB9)_";
103664
+ const body = text.endsWith(marker) ? text.slice(0, -marker.length) : text;
103577
103665
  const fenceReserve = 4;
103578
- let truncated = text.slice(-(MAX_CARD_CHARS - marker.length - fenceReserve - reservedChars)) + marker;
103666
+ let truncated = body.slice(-(MAX_CARD_CHARS - marker.length - fenceReserve - reservedChars)) + marker;
103579
103667
  if (this.countFences(truncated) % 2 === 1) {
103580
103668
  truncated = "```\n" + truncated;
103581
103669
  }
@@ -103622,7 +103710,8 @@ ${contentPart}` : prefix : contentPart;
103622
103710
  accumulatedText: "",
103623
103711
  lastUpdateAt: Date.now(),
103624
103712
  userStopped: cardState.userStopped,
103625
- terminalStatus: cardState.terminalStatus
103713
+ terminalStatus: cardState.terminalStatus,
103714
+ sourceLabel: cardState.sourceLabel
103626
103715
  });
103627
103716
  }
103628
103717
  // ----- Message handling -----
@@ -103790,7 +103879,7 @@ ${envelope.text}`;
103790
103879
  });
103791
103880
  this.cleanupCard(msgId);
103792
103881
  } else {
103793
- this.sendMessage(chatId, "\u5904\u7406\u6D88\u606F\u65F6\u51FA\u9519\uFF0C\u8BF7\u91CD\u8BD5\u3002").catch(() => {
103882
+ this.sendFallbackMessage(chatId, "\u5904\u7406\u6D88\u606F\u65F6\u51FA\u9519\uFF0C\u8BF7\u91CD\u8BD5\u3002", existingCard.sourceLabel ?? this.getInboundErrorSourceLabel(envelope)).catch(() => {
103794
103883
  });
103795
103884
  this.cleanupCard(msgId);
103796
103885
  }