@lemoncat7/dsh-partner 2.22.2 → 2.23.40

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 (290) hide show
  1. package/README.md +6 -2
  2. package/docs/qq-channel.md +19 -3
  3. package/docs/releases/2.22.3.md +7 -0
  4. package/docs/releases/2.22.4.md +7 -0
  5. package/docs/releases/2.22.5.md +5 -0
  6. package/docs/releases/2.22.6.md +3 -0
  7. package/docs/releases/2.23.0.md +7 -0
  8. package/docs/releases/2.23.1.md +7 -0
  9. package/docs/releases/2.23.11.md +9 -0
  10. package/docs/releases/2.23.12.md +11 -0
  11. package/docs/releases/2.23.13.md +13 -0
  12. package/docs/releases/2.23.14.md +11 -0
  13. package/docs/releases/2.23.15.md +7 -0
  14. package/docs/releases/2.23.16.md +7 -0
  15. package/docs/releases/2.23.17.md +7 -0
  16. package/docs/releases/2.23.18.md +9 -0
  17. package/docs/releases/2.23.19.md +9 -0
  18. package/docs/releases/2.23.20.md +11 -0
  19. package/docs/releases/2.23.21.md +7 -0
  20. package/docs/releases/2.23.22.md +5 -0
  21. package/docs/releases/2.23.23.md +9 -0
  22. package/docs/releases/2.23.24.md +11 -0
  23. package/docs/releases/2.23.25.md +5 -0
  24. package/docs/releases/2.23.26.md +7 -0
  25. package/docs/releases/2.23.27.md +7 -0
  26. package/docs/releases/2.23.28.md +11 -0
  27. package/docs/releases/2.23.29.md +10 -0
  28. package/docs/releases/2.23.30.md +10 -0
  29. package/docs/releases/2.23.31.md +11 -0
  30. package/docs/releases/2.23.32.md +11 -0
  31. package/docs/releases/2.23.33.md +11 -0
  32. package/docs/releases/2.23.34.md +9 -0
  33. package/docs/releases/2.23.35.md +3 -0
  34. package/docs/releases/2.23.36.md +11 -0
  35. package/docs/releases/2.23.37.md +3 -0
  36. package/docs/releases/2.23.38.md +8 -0
  37. package/docs/releases/2.23.39.md +5 -0
  38. package/docs/releases/2.23.40.md +5 -0
  39. package/docs/tool-entry-compatibility.md +2 -2
  40. package/lib/agent-runtime.d.ts +2 -0
  41. package/lib/agent-runtime.d.ts.map +1 -1
  42. package/lib/agent-runtime.js +105 -29
  43. package/lib/agent-runtime.js.map +1 -1
  44. package/lib/api.d.ts.map +1 -1
  45. package/lib/api.js +22 -1
  46. package/lib/api.js.map +1 -1
  47. package/lib/attachments/delivery-receipt.d.ts +7 -0
  48. package/lib/attachments/delivery-receipt.d.ts.map +1 -0
  49. package/lib/attachments/delivery-receipt.js +22 -0
  50. package/lib/attachments/delivery-receipt.js.map +1 -0
  51. package/lib/attachments/reply-document.d.ts +41 -0
  52. package/lib/attachments/reply-document.d.ts.map +1 -0
  53. package/lib/attachments/reply-document.js +32 -0
  54. package/lib/attachments/reply-document.js.map +1 -0
  55. package/lib/attachments/tool.d.ts +1 -1
  56. package/lib/attachments/tool.d.ts.map +1 -1
  57. package/lib/attachments/tool.js +45 -8
  58. package/lib/attachments/tool.js.map +1 -1
  59. package/lib/channel-message.d.ts +2 -0
  60. package/lib/channel-message.d.ts.map +1 -1
  61. package/lib/channel-message.js.map +1 -1
  62. package/lib/channels/authored-progress.d.ts +2 -1
  63. package/lib/channels/authored-progress.d.ts.map +1 -1
  64. package/lib/channels/authored-progress.js +4 -2
  65. package/lib/channels/authored-progress.js.map +1 -1
  66. package/lib/channels/delivery-policy.d.ts +1 -0
  67. package/lib/channels/delivery-policy.d.ts.map +1 -1
  68. package/lib/channels/delivery-policy.js +22 -4
  69. package/lib/channels/delivery-policy.js.map +1 -1
  70. package/lib/channels/direct/transport.d.ts +2 -0
  71. package/lib/channels/direct/transport.d.ts.map +1 -1
  72. package/lib/channels/manager.d.ts.map +1 -1
  73. package/lib/channels/manager.js +54 -9
  74. package/lib/channels/manager.js.map +1 -1
  75. package/lib/channels/outbound-media.js +1 -1
  76. package/lib/channels/outbound-media.js.map +1 -1
  77. package/lib/channels/qq/action-catalog.d.ts.map +1 -1
  78. package/lib/channels/qq/action-catalog.js +111 -0
  79. package/lib/channels/qq/action-catalog.js.map +1 -1
  80. package/lib/channels/qq/actions.d.ts +1 -1
  81. package/lib/channels/qq/actions.d.ts.map +1 -1
  82. package/lib/channels/qq/actions.js +81 -10
  83. package/lib/channels/qq/actions.js.map +1 -1
  84. package/lib/channels/qq/authority.d.ts +1 -1
  85. package/lib/channels/qq/authority.d.ts.map +1 -1
  86. package/lib/channels/qq/authority.js +7 -2
  87. package/lib/channels/qq/authority.js.map +1 -1
  88. package/lib/channels/qq/autonomy.d.ts.map +1 -1
  89. package/lib/channels/qq/autonomy.js +3 -0
  90. package/lib/channels/qq/autonomy.js.map +1 -1
  91. package/lib/channels/qq/chat-actions.d.ts +6 -0
  92. package/lib/channels/qq/chat-actions.d.ts.map +1 -0
  93. package/lib/channels/qq/chat-actions.js +11 -0
  94. package/lib/channels/qq/chat-actions.js.map +1 -0
  95. package/lib/channels/qq/message.js +1 -1
  96. package/lib/channels/qq/message.js.map +1 -1
  97. package/lib/channels/qq/quote.d.ts +14 -0
  98. package/lib/channels/qq/quote.d.ts.map +1 -0
  99. package/lib/channels/qq/quote.js +69 -0
  100. package/lib/channels/qq/quote.js.map +1 -0
  101. package/lib/channels/qq/reply-tool.d.ts.map +1 -1
  102. package/lib/channels/qq/reply-tool.js +8 -4
  103. package/lib/channels/qq/reply-tool.js.map +1 -1
  104. package/lib/channels/qq/sticker-adapter.d.ts.map +1 -1
  105. package/lib/channels/qq/sticker-adapter.js +9 -11
  106. package/lib/channels/qq/sticker-adapter.js.map +1 -1
  107. package/lib/channels/weixin/connect.d.ts.map +1 -1
  108. package/lib/character/activity-tool.d.ts +3 -0
  109. package/lib/character/activity-tool.d.ts.map +1 -1
  110. package/lib/character/activity-tool.js +13 -8
  111. package/lib/character/activity-tool.js.map +1 -1
  112. package/lib/character/affection-tool.d.ts +4 -0
  113. package/lib/character/affection-tool.d.ts.map +1 -0
  114. package/lib/character/affection-tool.js +61 -0
  115. package/lib/character/affection-tool.js.map +1 -0
  116. package/lib/character/affection.d.ts +41 -16
  117. package/lib/character/affection.d.ts.map +1 -1
  118. package/lib/character/affection.js +35 -20
  119. package/lib/character/affection.js.map +1 -1
  120. package/lib/character/conversation-behavior.d.ts +8 -7
  121. package/lib/character/conversation-behavior.d.ts.map +1 -1
  122. package/lib/character/conversation-behavior.js +29 -39
  123. package/lib/character/conversation-behavior.js.map +1 -1
  124. package/lib/character/domain.js +1 -1
  125. package/lib/character/domain.js.map +1 -1
  126. package/lib/character/fatigue.d.ts +1 -1
  127. package/lib/character/fatigue.js +1 -1
  128. package/lib/character/idle-contact.d.ts +22 -1
  129. package/lib/character/idle-contact.d.ts.map +1 -1
  130. package/lib/character/idle-contact.js +72 -21
  131. package/lib/character/idle-contact.js.map +1 -1
  132. package/lib/character/post-reply.d.ts +10 -4
  133. package/lib/character/post-reply.d.ts.map +1 -1
  134. package/lib/character/post-reply.js +56 -12
  135. package/lib/character/post-reply.js.map +1 -1
  136. package/lib/character/prompt-projection.d.ts +10 -0
  137. package/lib/character/prompt-projection.d.ts.map +1 -0
  138. package/lib/character/prompt-projection.js +42 -0
  139. package/lib/character/prompt-projection.js.map +1 -0
  140. package/lib/character/sleep-service.d.ts +1 -1
  141. package/lib/character/sleep-service.d.ts.map +1 -1
  142. package/lib/character/sleep-service.js +5 -3
  143. package/lib/character/sleep-service.js.map +1 -1
  144. package/lib/character/sleep.d.ts +3 -1
  145. package/lib/character/sleep.d.ts.map +1 -1
  146. package/lib/character/sleep.js +4 -2
  147. package/lib/character/sleep.js.map +1 -1
  148. package/lib/character/state-policy.d.ts.map +1 -1
  149. package/lib/character/state-policy.js +1 -0
  150. package/lib/character/state-policy.js.map +1 -1
  151. package/lib/chat/action-obligation.d.ts +17 -0
  152. package/lib/chat/action-obligation.d.ts.map +1 -0
  153. package/lib/chat/action-obligation.js +109 -0
  154. package/lib/chat/action-obligation.js.map +1 -0
  155. package/lib/chat/agreements.d.ts +21 -0
  156. package/lib/chat/agreements.d.ts.map +1 -0
  157. package/lib/chat/agreements.js +120 -0
  158. package/lib/chat/agreements.js.map +1 -0
  159. package/lib/chat/attachment-reference.d.ts +4 -0
  160. package/lib/chat/attachment-reference.d.ts.map +1 -0
  161. package/lib/chat/attachment-reference.js +13 -0
  162. package/lib/chat/attachment-reference.js.map +1 -0
  163. package/lib/chat/context-selection.d.ts +10 -0
  164. package/lib/chat/context-selection.d.ts.map +1 -0
  165. package/lib/chat/context-selection.js +39 -0
  166. package/lib/chat/context-selection.js.map +1 -0
  167. package/lib/chat/conversation.d.ts.map +1 -1
  168. package/lib/chat/conversation.js +4 -0
  169. package/lib/chat/conversation.js.map +1 -1
  170. package/lib/chat/live-speech.d.ts +18 -0
  171. package/lib/chat/live-speech.d.ts.map +1 -0
  172. package/lib/chat/live-speech.js +137 -0
  173. package/lib/chat/live-speech.js.map +1 -0
  174. package/lib/chat/protocol.d.ts +23 -0
  175. package/lib/chat/protocol.d.ts.map +1 -1
  176. package/lib/chat/protocol.js +31 -1
  177. package/lib/chat/protocol.js.map +1 -1
  178. package/lib/chat/reply-completion.d.ts +27 -0
  179. package/lib/chat/reply-completion.d.ts.map +1 -0
  180. package/lib/chat/reply-completion.js +123 -0
  181. package/lib/chat/reply-completion.js.map +1 -0
  182. package/lib/chat/reply-continuity.d.ts +20 -0
  183. package/lib/chat/reply-continuity.d.ts.map +1 -0
  184. package/lib/chat/reply-continuity.js +97 -0
  185. package/lib/chat/reply-continuity.js.map +1 -0
  186. package/lib/chat/short-expression.d.ts +6 -0
  187. package/lib/chat/short-expression.d.ts.map +1 -0
  188. package/lib/chat/short-expression.js +24 -0
  189. package/lib/chat/short-expression.js.map +1 -0
  190. package/lib/chat/sticker-adapter.d.ts +1 -1
  191. package/lib/chat/sticker-adapter.d.ts.map +1 -1
  192. package/lib/chat/tools.d.ts.map +1 -1
  193. package/lib/chat/tools.js +79 -10
  194. package/lib/chat/tools.js.map +1 -1
  195. package/lib/chat/verified-calculation.d.ts +48 -0
  196. package/lib/chat/verified-calculation.d.ts.map +1 -0
  197. package/lib/chat/verified-calculation.js +46 -0
  198. package/lib/chat/verified-calculation.js.map +1 -0
  199. package/lib/chat/work-expression.d.ts +84 -0
  200. package/lib/chat/work-expression.d.ts.map +1 -0
  201. package/lib/chat/work-expression.js +296 -0
  202. package/lib/chat/work-expression.js.map +1 -0
  203. package/lib/client-api.d.ts +2 -1
  204. package/lib/client-api.d.ts.map +1 -1
  205. package/lib/client-api.js.map +1 -1
  206. package/lib/client.js +2243 -1716
  207. package/lib/client.js.map +4 -4
  208. package/lib/collaboration/composition.d.ts.map +1 -1
  209. package/lib/collaboration/composition.js +23 -54
  210. package/lib/collaboration/composition.js.map +1 -1
  211. package/lib/collaboration/tool-discovery.d.ts +4 -2
  212. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  213. package/lib/collaboration/tool-discovery.js +55 -26
  214. package/lib/collaboration/tool-discovery.js.map +1 -1
  215. package/lib/collaboration/workflow-protocols.d.ts +5 -0
  216. package/lib/collaboration/workflow-protocols.d.ts.map +1 -0
  217. package/lib/collaboration/workflow-protocols.js +40 -0
  218. package/lib/collaboration/workflow-protocols.js.map +1 -0
  219. package/lib/companions/identity-tool.d.ts +1 -1
  220. package/lib/companions/identity-tool.d.ts.map +1 -1
  221. package/lib/companions/identity-tool.js +32 -6
  222. package/lib/companions/identity-tool.js.map +1 -1
  223. package/lib/companions/identity.d.ts.map +1 -1
  224. package/lib/companions/identity.js +10 -0
  225. package/lib/companions/identity.js.map +1 -1
  226. package/lib/companions/persona-refinement.d.ts +11 -0
  227. package/lib/companions/persona-refinement.d.ts.map +1 -0
  228. package/lib/companions/persona-refinement.js +49 -0
  229. package/lib/companions/persona-refinement.js.map +1 -0
  230. package/lib/domain.d.ts +2 -0
  231. package/lib/domain.d.ts.map +1 -1
  232. package/lib/domain.js.map +1 -1
  233. package/lib/execution/domain.d.ts +1 -1
  234. package/lib/execution/domain.d.ts.map +1 -1
  235. package/lib/execution/reply-progress.js +2 -2
  236. package/lib/execution/reply-progress.js.map +1 -1
  237. package/lib/execution/service.d.ts +3 -0
  238. package/lib/execution/service.d.ts.map +1 -1
  239. package/lib/execution/service.js +7 -5
  240. package/lib/execution/service.js.map +1 -1
  241. package/lib/execution/task-preamble.d.ts +7 -3
  242. package/lib/execution/task-preamble.d.ts.map +1 -1
  243. package/lib/execution/task-preamble.js +36 -10
  244. package/lib/execution/task-preamble.js.map +1 -1
  245. package/lib/execution/work-tool.d.ts +5 -0
  246. package/lib/execution/work-tool.d.ts.map +1 -0
  247. package/lib/execution/work-tool.js +152 -0
  248. package/lib/execution/work-tool.js.map +1 -0
  249. package/lib/index.d.ts.map +1 -1
  250. package/lib/index.js +5 -2
  251. package/lib/index.js.map +1 -1
  252. package/lib/rolling-context.d.ts.map +1 -1
  253. package/lib/rolling-context.js +4 -2
  254. package/lib/rolling-context.js.map +1 -1
  255. package/lib/scheduler/final-reply.d.ts +1 -0
  256. package/lib/scheduler/final-reply.d.ts.map +1 -1
  257. package/lib/skills/service.js +1 -1
  258. package/lib/skills/service.js.map +1 -1
  259. package/lib/store.d.ts.map +1 -1
  260. package/lib/store.js +11 -0
  261. package/lib/store.js.map +1 -1
  262. package/lib/ui/affection-panel.d.ts.map +1 -1
  263. package/lib/ui/affection-panel.js +1 -1
  264. package/lib/ui/affection-panel.js.map +1 -1
  265. package/lib/ui/capability-editor.js +1 -1
  266. package/lib/ui/capability-editor.js.map +1 -1
  267. package/lib/ui/character-editor.d.ts +1 -1
  268. package/lib/ui/character-editor.d.ts.map +1 -1
  269. package/lib/ui/character-editor.js +6 -5
  270. package/lib/ui/character-editor.js.map +1 -1
  271. package/lib/ui/companion-vitals.js +1 -1
  272. package/lib/ui/companion-vitals.js.map +1 -1
  273. package/lib/ui/identity-editor.d.ts.map +1 -1
  274. package/lib/ui/identity-editor.js +8 -1
  275. package/lib/ui/identity-editor.js.map +1 -1
  276. package/lib/ui/idle-contact-editor.d.ts.map +1 -1
  277. package/lib/ui/idle-contact-editor.js +1 -1
  278. package/lib/ui/idle-contact-editor.js.map +1 -1
  279. package/lib/ui/memory/automation-settings.js +1 -1
  280. package/lib/ui/memory/automation-settings.js.map +1 -1
  281. package/lib/ui/push-draft.d.ts +1 -1
  282. package/lib/ui/qq-capability-settings.d.ts.map +1 -1
  283. package/lib/ui/qq-capability-settings.js +2 -1
  284. package/lib/ui/qq-capability-settings.js.map +1 -1
  285. package/lib/ui/qq-channel-settings.d.ts.map +1 -1
  286. package/lib/ui/qq-channel-settings.js +5 -3
  287. package/lib/ui/qq-channel-settings.js.map +1 -1
  288. package/lib/ui/qq-identity-binding.js +1 -1
  289. package/lib/ui/qq-identity-binding.js.map +1 -1
  290. package/package.json +38 -2
@@ -4,13 +4,15 @@ export class AuthoredProgress {
4
4
  send;
5
5
  allowed;
6
6
  signal;
7
+ limit;
7
8
  pending = Promise.resolve();
8
9
  seen = new Map();
9
10
  closed = false;
10
- constructor(send, allowed, signal) {
11
+ constructor(send, allowed, signal, limit = 3) {
11
12
  this.send = send;
12
13
  this.allowed = allowed;
13
14
  this.signal = signal;
15
+ this.limit = limit;
14
16
  }
15
17
  update = Object.assign((activity) => {
16
18
  if (this.closed || typeof activity === 'string' || activity.kind !== 'text')
@@ -22,7 +24,7 @@ export class AuthoredProgress {
22
24
  const existing = this.seen.get(text);
23
25
  if (existing)
24
26
  return existing;
25
- if (this.closed || !text || text.length > 6000 || this.seen.size >= 3)
27
+ if (this.closed || !text || text.length > 6000 || this.seen.size >= this.limit)
26
28
  throw Error('本轮前置回应已关闭或超出限制');
27
29
  const job = this.pending.then(async () => {
28
30
  if (this.closed || this.signal.aborted || !this.allowed())
@@ -1 +1 @@
1
- {"version":3,"file":"authored-progress.js","sourceRoot":"","sources":["../../src/channels/authored-progress.ts"],"names":[],"mappings":"AAEA;8FAC8F;AAC9F,MAAM,OAAO,gBAAgB;IAIE;IAA2D;IAAyC;IAHzH,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,MAAM,GAAG,KAAK,CAAA;IACtB,YAA6B,IAAwC,EAAmB,OAAsB,EAAmB,MAAmB;QAAvH,SAAI,GAAJ,IAAI,CAAoC;QAAmB,YAAO,GAAP,OAAO,CAAe;QAAmB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IACxJ,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAqC,EAAE,EAAE;QAC9E,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;YAAE,OAAM;QACnF,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAA;IACpD,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC,IAAW,EAAC,EAAE,CAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA;IACvD,KAAK,CAAC,WAAW,CAAC,GAAU;QAC1B,MAAM,IAAI,GAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,MAAM,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAG,QAAQ;YAAC,OAAO,QAAQ,CAAA;QAC3B,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAE,CAAC;YAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC9F,MAAM,GAAG,GAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE;YACnC,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;YACjF,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,OAAO,GAAC,GAAG,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,MAAM,GAAC,IAAI,CAAA,CAAA,CAAC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,KAAK,CAAC,MAAM,KAAoB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,CAAC,CAAC;CACzE"}
1
+ {"version":3,"file":"authored-progress.js","sourceRoot":"","sources":["../../src/channels/authored-progress.ts"],"names":[],"mappings":"AAEA;8FAC8F;AAC9F,MAAM,OAAO,gBAAgB;IAIE;IAA2D;IAAyC;IAAsC;IAH/J,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,MAAM,GAAG,KAAK,CAAA;IACtB,YAA6B,IAAwC,EAAmB,OAAsB,EAAmB,MAAmB,EAAmB,QAAM,CAAC;QAAjJ,SAAI,GAAJ,IAAI,CAAoC;QAAmB,YAAO,GAAP,OAAO,CAAe;QAAmB,WAAM,GAAN,MAAM,CAAa;QAAmB,UAAK,GAAL,KAAK,CAAE;IAAG,CAAC;IAClL,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAqC,EAAE,EAAE;QAC9E,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;YAAE,OAAM;QACnF,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAA;IACpD,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC,IAAW,EAAC,EAAE,CAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA;IACvD,KAAK,CAAC,WAAW,CAAC,GAAU;QAC1B,MAAM,IAAI,GAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,MAAM,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAG,QAAQ;YAAC,OAAO,QAAQ,CAAA;QAC3B,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK;YAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACvG,MAAM,GAAG,GAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE;YACnC,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;YACjF,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,OAAO,GAAC,GAAG,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,MAAM,GAAC,IAAI,CAAA,CAAA,CAAC,CAAC,CAAA;QAC9C,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,KAAK,CAAC,MAAM,KAAoB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,CAAC,CAAC;CACzE"}
@@ -6,6 +6,7 @@ export declare function isRequirementDeliveryReceipt(event: SessionEvent): boole
6
6
  /** Goal completion may share a turn with review; it must not bypass silence. */
7
7
  export declare function isAutonomousDeliveryTurn(events: readonly SessionEvent[], history?: readonly SessionEvent[]): boolean;
8
8
  export interface ChannelReplyParts {
9
+ alreadyDelivered?: boolean;
9
10
  chatParts?: ChatPart[];
10
11
  chatOriginRouteId?: string | null;
11
12
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-policy.d.ts","sourceRoot":"","sources":["../../src/channels/delivery-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAS5D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIjE;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAGzE;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE,SAAS,YAAY,EAAW,GAAG,OAAO,CAY5H;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,iBAAiB,CA0C9H;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9F"}
1
+ {"version":3,"file":"delivery-policy.d.ts","sourceRoot":"","sources":["../../src/channels/delivery-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAS5D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIjE;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAGzE;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,GAAE,SAAS,YAAY,EAAW,GAAG,OAAO,CAY5H;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,iBAAiB,CAmD9H;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9F"}
@@ -1,3 +1,4 @@
1
+ import { deliveredAttachment } from '../attachments/delivery-receipt.js';
1
2
  import { chatReplyFromEvent } from '../chat/protocol.js';
2
3
  import { isPluginSource } from '../message-source.js';
3
4
  const INTERNAL_TASK_NOTICES = new Set([
@@ -38,12 +39,19 @@ export function channelReplyPartsAfter(events, fromSeq, autonomous = false) {
38
39
  let answer = '';
39
40
  let chat;
40
41
  let hasChat = false;
42
+ let alreadyDelivered = false;
43
+ let chatDelivered = false;
41
44
  let chatOriginRouteId;
42
45
  const ordered = [];
43
46
  let references = [];
44
47
  const messages = [], referenceTexts = [];
45
48
  const flush = () => {
46
49
  if (direct) {
50
+ if (chatDelivered) {
51
+ alreadyDelivered = true;
52
+ if (!chat && !answer)
53
+ hasChat = true;
54
+ }
47
55
  if (chat) {
48
56
  ordered.push(...chat);
49
57
  hasChat = true;
@@ -58,6 +66,7 @@ export function channelReplyPartsAfter(events, fromSeq, autonomous = false) {
58
66
  answer = '';
59
67
  references = [];
60
68
  chat = undefined;
69
+ chatDelivered = false;
61
70
  };
62
71
  for (const event of events) {
63
72
  if (event.seq <= fromSeq)
@@ -67,7 +76,7 @@ export function channelReplyPartsAfter(events, fromSeq, autonomous = false) {
67
76
  direct = autonomous;
68
77
  }
69
78
  else if (event.type === 'turn/end') {
70
- if (event.data.reason.kind !== 'completed') {
79
+ if (event.data.reason.kind !== 'completed' && !chatDelivered) {
71
80
  answer = '';
72
81
  references = [];
73
82
  chat = undefined;
@@ -82,12 +91,21 @@ export function channelReplyPartsAfter(events, fromSeq, autonomous = false) {
82
91
  answer = '';
83
92
  references = [];
84
93
  chat = undefined;
94
+ chatDelivered = false;
85
95
  direct = false;
86
96
  }
97
+ else if (direct && deliveredAttachment(event)) {
98
+ chatDelivered = true;
99
+ const route = deliveredAttachment(event);
100
+ chatOriginRouteId = chatOriginRouteId === undefined ? route : chatOriginRouteId === route ? route : null;
101
+ }
87
102
  else if (direct && chatReplyFromEvent(event)) {
88
103
  const reply = chatReplyFromEvent(event);
89
- chat = reply.parts;
90
- answer = '';
104
+ if (!reply.intermediate) {
105
+ chat = reply.parts;
106
+ answer = '';
107
+ }
108
+ chatDelivered = chatDelivered || reply.delivered === true;
91
109
  chatOriginRouteId = chatOriginRouteId === undefined ? reply.originRouteId : chatOriginRouteId === reply.originRouteId ? chatOriginRouteId : null;
92
110
  }
93
111
  else if (direct && event.type === 'tool/result' && !chat)
@@ -103,7 +121,7 @@ export function channelReplyPartsAfter(events, fromSeq, autonomous = false) {
103
121
  }
104
122
  }
105
123
  flush();
106
- return { text: messages.join('\n\n'), referenceTexts, ...(hasChat ? { chatParts: ordered, ...(chatOriginRouteId !== undefined ? { chatOriginRouteId } : {}) } : {}) };
124
+ return { text: messages.join('\n\n'), referenceTexts, ...(alreadyDelivered ? { alreadyDelivered: true } : {}), ...(hasChat ? { chatParts: ordered, ...(chatOriginRouteId !== undefined ? { chatOriginRouteId } : {}) } : {}) };
107
125
  }
108
126
  /** whenIdle may encompass follow-up turns: don't append internal reviews to a user reply. */
109
127
  export function channelReplyTextAfter(events, fromSeq) {
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-policy.js","sourceRoot":"","sources":["../../src/channels/delivery-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-policy.js","sourceRoot":"","sources":["../../src/channels/delivery-policy.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export interface DirectConfig {
11
11
  targetId: string;
12
12
  }
13
13
  export interface DirectMessage {
14
+ qqReplyId?: string;
15
+ qqQuote?: import('../qq/quote.js').QqQuote;
14
16
  senderName?: string;
15
17
  qqGroup?: {
16
18
  groupId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/transport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAA;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAWzD,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAA;AAExE,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAEjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAErE,OAAO,KAAK,EAAgB,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAOjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,KAAK,cAAc,GAAG,OAAO,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAA;AAoB3D,qBAAa,cAAc;IAoBvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAvB7B,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0E;IAChG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IACtE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IACxE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6C;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAC3D,OAAO,CAAC,mBAAmB,CAAC,CAAwD;IAEpF,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;gBAG7D,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,sBAAsB,EACnC,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM;IAGrC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,IAAI;IAI5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;YAC9B,MAAM;IAKd,kBAAkB,CAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC;QAAC,OAAO,EAAC,MAAM,CAAC;QAAA,QAAQ,CAAC,EAAC,MAAM,CAAC;QAAA,QAAQ,EAAC,OAAO,CAAC;QAAA,iBAAiB,EAAC,MAAM,CAAA;KAAC,GAAE,OAAO,CAAC,IAAI,CAAC;YAG5H,gBAAgB;IAqBxB,QAAQ,CAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,iBAAiB,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;YAGvE,cAAc;IAYtB,WAAW,CAAC,SAAS,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,GAAC,SAAS,GAAC,OAAO,GAAC,UAAU,GAAE,OAAO,CAAC,OAAO,CAAC;IAezF,YAAY,CAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,KAAK,EAAC,MAAI,IAAI,GAAE,OAAO,CAAC,OAAO,CAAC;IAQ7H,QAAQ,CAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAAC,OAAO,CAAC;IAS1D,YAAY,CAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC;QAAC,IAAI,CAAC,EAAC,MAAM,CAAC;QAAA,MAAM,CAAC,EAAC,MAAM,CAAC;QAAA,YAAY,CAAC,EAAC,MAAM,CAAA;KAAC,GAAE,OAAO,CAAC,IAAI,CAAC;IAuBnH,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAgBrC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,YAAY,CAA2B;IAEzC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ7B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/F,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvI,kBAAkB,CAAC,KAAK,EAAE,OAAO,wBAAwB,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/F,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAehD,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC9D,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAiErE,cAAc;IAc5B,OAAO,CAAC,eAAe;YAOT,kBAAkB;IAYhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;YACtD,sBAAsB;YAMtB,yBAAyB;IA+CvC,OAAO,CAAC,eAAe;YAOT,aAAa;IAe3B,OAAO,CAAC,iBAAiB;YAQX,kBAAkB;YAiBlB,kBAAkB;YAalB,QAAQ;IAQtB,OAAO,CAAC,eAAe;YAST,aAAa;YAgFb,iBAAiB;YAqEjB,qBAAqB;IAanC,OAAO,CAAC,oBAAoB;YAKd,mBAAmB;YAkBnB,eAAe;YAIf,gBAAgB;IAO9B,OAAO,CAAC,MAAM;IAoBd,kFAAkF;YACpE,UAAU;YA+EV,aAAa;YAeb,YAAY;YA8JZ,WAAW;CAO1B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAI9E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAI5E;AASD,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAO1D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAWxE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAGrG;AAuBD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAGtG"}
@@ -1,3 +1,4 @@
1
+ import { resolveQqQuote, quotedMessageText } from './qq/quote.js';
1
2
  import { AuthoredProgress } from './authored-progress.js';
2
3
  import { activityPolicyCurrent } from '../character/post-reply.js';
3
4
  import { channelReplyAllowed, directReplyTarget } from './reply-access.js';
@@ -9,7 +10,7 @@ import { OneBotError } from './qq/connection.js';
9
10
  import { isSleeping } from '../character/sleep.js';
10
11
  import { isActivitySilenceRequested } from '../character/activity-tool.js';
11
12
  import { isIdleContactNotice, idleContactRouteAllowed, lastIdleContactUser } from '../character/idle-contact.js';
12
- import { replyDeliveryParts } from '../chat/protocol.js';
13
+ import { replyDeliveryParts, segmentIdleChatReply } from '../chat/protocol.js';
13
14
  import { randomBytes } from 'node:crypto';
14
15
  import { WeixinApi } from './weixin/api.js';
15
16
  import { pollWeixin } from './weixin/poll.js';
@@ -163,7 +164,7 @@ export class ChannelManager {
163
164
  return { friends: Array.isArray(result) ? result.filter(g => g && validQqId(String(g.user_id))).slice(0, 2000).map(g => ({ id: String(g.user_id), name: String(g.remark || g.nickname || g.user_id).slice(0, 120) })) : [] };
164
165
  if (kind === 'groups')
165
166
  return { groups: Array.isArray(result) ? result.filter(g => g && validQqId(String(g.group_id))).slice(0, 1000).map(g => ({ id: String(g.group_id), name: String(g.group_name ?? g.group_id).slice(0, 120) })) : [] };
166
- const custom = await api.onebot.connection.call('fetch_custom_face_detail', { count: 100 }).catch(() => []);
167
+ const custom = await api.onebot.connection.call('fetch_custom_face_detail', { count: 200 }).catch(() => []);
167
168
  return { faces: [...qqCustomCatalog(custom), ...qqFaceCatalog(result)] };
168
169
  }
169
170
  finally {
@@ -452,7 +453,8 @@ export class ChannelManager {
452
453
  if (route.kind === 'channel' && valid()) {
453
454
  const parts = channelReplyPartsAfter(events, 0, true);
454
455
  if (parts.text || parts.chatParts?.length) {
455
- const reply = await prepareChannelReply(parts, route.cwd ?? partnerCwd(this.defaultCwd, route.companionId));
456
+ const card = this.store.snapshot().companions.find(c => c.id === route.companionId)?.characterCard;
457
+ const reply = segmentIdleChatReply(await prepareChannelReply(parts, route.cwd ?? partnerCwd(this.defaultCwd, route.companionId)), Boolean(card?.enabled && card.segmentedReplies));
456
458
  const claim = route.idleContactState, state = this.store.snapshot(), channel = state.channels.find(c => c.id === route.channelId);
457
459
  reply.idleContactOrigin = { routeId: route.id, sessionId: session.id, messageId: notice.data.id, userMessageId: claim.userMessageId, policyRevision: claim.policyRevision };
458
460
  if (channel.direct)
@@ -768,7 +770,7 @@ export class ChannelManager {
768
770
  await this.rememberReceipt(receipt);
769
771
  return;
770
772
  }
771
- const authored = new AuthoredProgress(text => api.sendText(userId, text, this.contextTokens.get(tokenKey), signal), () => channelReplyAllowed(this.store.snapshot(), channel.id, userId) && this.store.snapshot().channels.some(c => c.id === channel.id && c.enabled && c.companionId === companion.id), signal);
773
+ const authored = new AuthoredProgress(text => api.sendText(userId, text, this.contextTokens.get(tokenKey), signal), () => channelReplyAllowed(this.store.snapshot(), channel.id, userId) && this.store.snapshot().channels.some(c => c.id === channel.id && c.enabled && c.companionId === companion.id), signal, 8);
772
774
  const reply = await this.agents.reply(companion, channel.id, userId, { text: inboundText, attachments }, authored.update).finally(() => authored.finish());
773
775
  if (reply.chatParts) {
774
776
  // Claim the input before delivery so recovery never executes its tools again.
@@ -1081,9 +1083,6 @@ export class ChannelManager {
1081
1083
  if (events.some(item => item.sender !== event.sender || (item.targetId ?? api.config?.targetId) !== (event.targetId ?? api.config?.targetId)))
1082
1084
  throw new Error('不能合并不同联系人的附件消息');
1083
1085
  const receipts = events.map(item => `${channel.id}:${item.id}`);
1084
- const rawText = events.map(item => item.text).filter(Boolean).join('\n\n');
1085
- let text = event.qqGroup ? `[QQ 群 ${event.qqGroup.groupId} · 发言人 ${event.qqGroup.senderName}(${event.qqGroup.userId})${event.qqGroup.autonomous && !event.qqGroup.mentioned ? ' · 自主接话' : ''}]\n${rawText}` : rawText;
1086
- const mediaCount = events.reduce((sum, item) => sum + (item.media?.length ?? 0), 0);
1087
1086
  const pairing = this.store.snapshot().pairings.find(p => p.channelId === channel.id && p.userId === event.sender);
1088
1087
  const groupAccess = channel.platform === 'qq' && !!event.qqGroup && channelReplyAllowed(this.store.snapshot(), channel.id, event.sender, event.targetId);
1089
1088
  const activeChannel = this.store.snapshot().channels.find(c => c.id === channel.id && c.enabled && c.accountId === channel.accountId && c.companionId === channel.companionId);
@@ -1092,8 +1091,28 @@ export class ChannelManager {
1092
1091
  await this.rememberReceipts(receipts);
1093
1092
  return;
1094
1093
  }
1094
+ if (channel.platform === 'qq' && (groupAccess || pairing?.status === 'approved') && api.onebot) {
1095
+ // Resolve inside this conversation's worker; other sessions continue polling and replying.
1096
+ const cache = new Map();
1097
+ await Promise.all(events.map(item => resolveQqQuote(item, channel.accountId, (id, readSignal) => {
1098
+ let result = cache.get(id);
1099
+ if (!result) {
1100
+ result = api.onebot.connection.call('get_msg', { message_id: id }, readSignal);
1101
+ cache.set(id, result);
1102
+ }
1103
+ return result;
1104
+ }, signal)));
1105
+ }
1106
+ const rawText = events.map(quotedMessageText).filter(Boolean).join('\n\n');
1107
+ let text = event.qqGroup ? `[QQ 群 ${event.qqGroup.groupId} · 发言人 ${event.qqGroup.senderName}(${event.qqGroup.userId})${event.qqGroup.autonomous && !event.qqGroup.mentioned ? ' · 自主接话' : ''}]\n${rawText}` : rawText;
1108
+ const mediaCount = events.reduce((sum, item) => sum + (item.media?.length ?? 0), 0);
1095
1109
  for (const item of events)
1096
1110
  this.groupAutonomy.observe(channel.id, item);
1111
+ if (event.qqGroup && isSleeping(requiredCompanion(this.store, channel.companionId)) && !event.qqGroup.mentioned && event.qqGroup.replyTo !== 'self') {
1112
+ this.groupAutonomy.record(channel.id, event, '伙伴正在睡眠,暂停群聊自主接话');
1113
+ await this.rememberReceipts(receipts);
1114
+ return;
1115
+ }
1097
1116
  if (event.qqGroup?.autonomous && !event.qqGroup.mentioned) {
1098
1117
  // Recheck current access: a queued event may outlive whitelist removal.
1099
1118
  if (!groupAccess) {
@@ -1155,7 +1174,7 @@ export class ChannelManager {
1155
1174
  };
1156
1175
  const progressTransport = api.progress?.(event.sender);
1157
1176
  const progress = progressTransport ? new ReplyProgressController(progressTransport, allowed, signal) : undefined;
1158
- const authored = !event.qqGroup ? new AuthoredProgress(text => api.sendText(event.sender, text, undefined, signal), allowed, signal) : undefined;
1177
+ const authored = !event.qqGroup ? new AuthoredProgress(text => api.sendText(event.sender, text, undefined, signal), allowed, signal, 8) : undefined;
1159
1178
  const progressKey = JSON.stringify([channel.id, event.targetId || api.config?.targetId || '', event.sender]);
1160
1179
  try {
1161
1180
  const attachments = [];
@@ -1181,6 +1200,25 @@ export class ChannelManager {
1181
1200
  await api.sendText(event.sender, '附件接收失败,未交给伙伴执行。请确认附件可下载、单条消息不超过 8 个附件且总大小不超过 64 MB,再重新发送。加密附件暂不支持。', undefined, signal);
1182
1201
  return;
1183
1202
  }
1203
+ for (const item of events)
1204
+ if (item.qqQuote?.media.length) {
1205
+ for (const media of item.qqQuote.media) {
1206
+ if (attachments.length >= 8) {
1207
+ text += '\n[引用附件过多,剩余部分未加载]';
1208
+ break;
1209
+ }
1210
+ try {
1211
+ const remaining = PARTNER_MEDIA_MAX_BYTES - attachments.reduce((sum, a) => sum + a.data.byteLength, 0);
1212
+ const received = await api.receiveAttachments({ ...item, media: [media] }, signal, allowed, remaining);
1213
+ attachments.push(...received);
1214
+ }
1215
+ catch (error) {
1216
+ if (signal.aborted || !allowed())
1217
+ throw error;
1218
+ text += '\n[引用附件读取失败;原消息文字仍保留,可请对方重发原图或文件]';
1219
+ }
1220
+ }
1221
+ }
1184
1222
  if (!allowed())
1185
1223
  throw new Error('渠道或联系人授权已撤销');
1186
1224
  const sessionTitle = channel.platform === 'qq' ? await this.qqSessionName(channel, api, event, signal) : undefined;
@@ -1220,8 +1258,15 @@ export class ChannelManager {
1220
1258
  throw new Error('渠道或联系人授权已撤销,取消回复');
1221
1259
  if (reply.chatParts?.length === 0 && !reply.text.trim() && !reply.attachments.length) {
1222
1260
  await progress?.completeWithoutReply();
1261
+ if (reply.alreadyDelivered) {
1262
+ await this.rememberReceipts(receipts);
1263
+ if (reply.postReplySource)
1264
+ await this.agents.replyDelivered(reply.postReplySource).catch(error => this.ctx.logger.warn(`主动延续登记失败:${String(error)}`));
1265
+ if (event.qqGroup)
1266
+ this.groupAutonomy.replied(channel.id, event, '[语音回复]');
1267
+ }
1223
1268
  if (timing)
1224
- timing.outcome = 'silent';
1269
+ timing.outcome = reply.alreadyDelivered ? 'replied' : 'silent';
1225
1270
  return;
1226
1271
  }
1227
1272
  if (reply.chatParts) {