@lemoncat7/dsh-partner 2.25.0 → 2.25.11

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 (160) hide show
  1. package/README.md +4 -4
  2. package/docs/compatibility-0.2.2-rc.2.md +18 -0
  3. package/docs/releases/2.25.1.md +11 -0
  4. package/docs/releases/2.25.10.md +5 -0
  5. package/docs/releases/2.25.11.md +7 -0
  6. package/docs/releases/2.25.2.md +8 -0
  7. package/docs/releases/2.25.3.md +11 -0
  8. package/docs/releases/2.25.4.md +10 -0
  9. package/docs/releases/2.25.5.md +10 -0
  10. package/docs/releases/2.25.6.md +7 -0
  11. package/docs/releases/2.25.7.md +9 -0
  12. package/docs/releases/2.25.8.md +7 -0
  13. package/docs/releases/2.25.9.md +9 -0
  14. package/lib/agent-runtime.d.ts +6 -1
  15. package/lib/agent-runtime.d.ts.map +1 -1
  16. package/lib/agent-runtime.js +34 -15
  17. package/lib/agent-runtime.js.map +1 -1
  18. package/lib/attachments/delivery-receipt.d.ts +15 -0
  19. package/lib/attachments/delivery-receipt.d.ts.map +1 -1
  20. package/lib/attachments/delivery-receipt.js +23 -0
  21. package/lib/attachments/delivery-receipt.js.map +1 -1
  22. package/lib/channels/direct/message-format.js +127 -127
  23. package/lib/channels/direct/message-format.js.map +1 -1
  24. package/lib/channels/manager.d.ts +2 -0
  25. package/lib/channels/manager.d.ts.map +1 -1
  26. package/lib/channels/manager.js +43 -8
  27. package/lib/channels/manager.js.map +1 -1
  28. package/lib/channels/qq/inbound-burst.d.ts +17 -0
  29. package/lib/channels/qq/inbound-burst.d.ts.map +1 -0
  30. package/lib/channels/qq/inbound-burst.js +74 -0
  31. package/lib/channels/qq/inbound-burst.js.map +1 -0
  32. package/lib/channels/qq/pending-input.d.ts +6 -0
  33. package/lib/channels/qq/pending-input.d.ts.map +1 -0
  34. package/lib/channels/qq/pending-input.js +8 -0
  35. package/lib/channels/qq/pending-input.js.map +1 -0
  36. package/lib/channels/qq/reply-rules.d.ts +1 -1
  37. package/lib/channels/qq/reply-rules.d.ts.map +1 -1
  38. package/lib/channels/qq/reply-rules.js +10 -15
  39. package/lib/channels/qq/reply-rules.js.map +1 -1
  40. package/lib/channels/qq/reply-tool.d.ts.map +1 -1
  41. package/lib/channels/qq/reply-tool.js +9 -7
  42. package/lib/channels/qq/reply-tool.js.map +1 -1
  43. package/lib/character/activity-tool.js +1 -1
  44. package/lib/character/activity-tool.js.map +1 -1
  45. package/lib/character/conversation-behavior.d.ts +4 -1
  46. package/lib/character/conversation-behavior.d.ts.map +1 -1
  47. package/lib/character/conversation-behavior.js +24 -7
  48. package/lib/character/conversation-behavior.js.map +1 -1
  49. package/lib/character/conversation-time.d.ts +5 -0
  50. package/lib/character/conversation-time.d.ts.map +1 -0
  51. package/lib/character/conversation-time.js +43 -0
  52. package/lib/character/conversation-time.js.map +1 -0
  53. package/lib/character/domain.d.ts +1 -0
  54. package/lib/character/domain.d.ts.map +1 -1
  55. package/lib/character/domain.js +3 -0
  56. package/lib/character/domain.js.map +1 -1
  57. package/lib/character/idle-contact.d.ts +1 -1
  58. package/lib/character/idle-contact.d.ts.map +1 -1
  59. package/lib/character/idle-contact.js +12 -7
  60. package/lib/character/idle-contact.js.map +1 -1
  61. package/lib/character/thought-budget.d.ts +8 -0
  62. package/lib/character/thought-budget.d.ts.map +1 -0
  63. package/lib/character/thought-budget.js +39 -0
  64. package/lib/character/thought-budget.js.map +1 -0
  65. package/lib/character/thought-tool.d.ts.map +1 -1
  66. package/lib/character/thought-tool.js +38 -16
  67. package/lib/character/thought-tool.js.map +1 -1
  68. package/lib/character/thoughts.d.ts +3 -1
  69. package/lib/character/thoughts.d.ts.map +1 -1
  70. package/lib/character/thoughts.js +20 -16
  71. package/lib/character/thoughts.js.map +1 -1
  72. package/lib/chat/conversation.js +1 -1
  73. package/lib/chat/conversation.js.map +1 -1
  74. package/lib/chat/live-speech.d.ts +4 -2
  75. package/lib/chat/live-speech.d.ts.map +1 -1
  76. package/lib/chat/live-speech.js +43 -33
  77. package/lib/chat/live-speech.js.map +1 -1
  78. package/lib/chat/persona-delivery.d.ts.map +1 -1
  79. package/lib/chat/persona-delivery.js +18 -19
  80. package/lib/chat/persona-delivery.js.map +1 -1
  81. package/lib/chat/preferred-voice.d.ts +21 -0
  82. package/lib/chat/preferred-voice.d.ts.map +1 -0
  83. package/lib/chat/preferred-voice.js +75 -0
  84. package/lib/chat/preferred-voice.js.map +1 -0
  85. package/lib/chat/protocol.d.ts +4 -1
  86. package/lib/chat/protocol.d.ts.map +1 -1
  87. package/lib/chat/protocol.js.map +1 -1
  88. package/lib/chat/reply-completion.d.ts +3 -1
  89. package/lib/chat/reply-completion.d.ts.map +1 -1
  90. package/lib/chat/reply-completion.js +13 -5
  91. package/lib/chat/reply-completion.js.map +1 -1
  92. package/lib/chat/sticker-context.d.ts +4 -0
  93. package/lib/chat/sticker-context.d.ts.map +1 -0
  94. package/lib/chat/sticker-context.js +10 -0
  95. package/lib/chat/sticker-context.js.map +1 -0
  96. package/lib/chat/task-followup.d.ts +59 -0
  97. package/lib/chat/task-followup.d.ts.map +1 -0
  98. package/lib/chat/task-followup.js +111 -0
  99. package/lib/chat/task-followup.js.map +1 -0
  100. package/lib/chat/tools.d.ts +2 -1
  101. package/lib/chat/tools.d.ts.map +1 -1
  102. package/lib/chat/tools.js +36 -17
  103. package/lib/chat/tools.js.map +1 -1
  104. package/lib/client.activities.js +55 -1
  105. package/lib/client.js +2187 -2146
  106. package/lib/client.js.map +4 -4
  107. package/lib/collaboration/composition.d.ts.map +1 -1
  108. package/lib/collaboration/composition.js +1 -3
  109. package/lib/collaboration/composition.js.map +1 -1
  110. package/lib/collaboration/tool-discovery.d.ts +1 -1
  111. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  112. package/lib/collaboration/tool-discovery.js +4 -4
  113. package/lib/collaboration/tool-discovery.js.map +1 -1
  114. package/lib/companions/identity-tool.d.ts +3 -0
  115. package/lib/companions/identity-tool.d.ts.map +1 -1
  116. package/lib/companions/identity-tool.js +1 -1
  117. package/lib/companions/identity-tool.js.map +1 -1
  118. package/lib/conversation-history-recall.d.ts +7 -0
  119. package/lib/conversation-history-recall.d.ts.map +1 -1
  120. package/lib/conversation-history-recall.js +15 -7
  121. package/lib/conversation-history-recall.js.map +1 -1
  122. package/lib/execution/task-preamble.d.ts +3 -0
  123. package/lib/execution/task-preamble.d.ts.map +1 -1
  124. package/lib/execution/task-preamble.js +31 -1
  125. package/lib/execution/task-preamble.js.map +1 -1
  126. package/lib/index.d.ts.map +1 -1
  127. package/lib/index.js +20 -2
  128. package/lib/index.js.map +1 -1
  129. package/lib/memory-store.d.ts +1 -1
  130. package/lib/rolling-context.d.ts +1 -1
  131. package/lib/rolling-context.d.ts.map +1 -1
  132. package/lib/rolling-context.js +1 -1
  133. package/lib/rolling-context.js.map +1 -1
  134. package/lib/sidebar-anchor.d.ts +7 -2
  135. package/lib/sidebar-anchor.d.ts.map +1 -1
  136. package/lib/sidebar-anchor.js +44 -25
  137. package/lib/sidebar-anchor.js.map +1 -1
  138. package/lib/store.d.ts.map +1 -1
  139. package/lib/store.js +13 -2
  140. package/lib/store.js.map +1 -1
  141. package/lib/ui/character-editor.js +1 -1
  142. package/lib/ui/character-editor.js.map +1 -1
  143. package/lib/ui/idle-contact-editor.d.ts.map +1 -1
  144. package/lib/ui/idle-contact-editor.js +1 -2
  145. package/lib/ui/idle-contact-editor.js.map +1 -1
  146. package/lib/ui/push-draft.d.ts +3 -3
  147. package/lib/ui/thoughts-panel.d.ts.map +1 -1
  148. package/lib/ui/thoughts-panel.js +24 -9
  149. package/lib/ui/thoughts-panel.js.map +1 -1
  150. package/lib/voice/audio-tail.d.ts +6 -0
  151. package/lib/voice/audio-tail.d.ts.map +1 -0
  152. package/lib/voice/audio-tail.js +72 -0
  153. package/lib/voice/audio-tail.js.map +1 -0
  154. package/lib/voice/synthesize.d.ts.map +1 -1
  155. package/lib/voice/synthesize.js +3 -1
  156. package/lib/voice/synthesize.js.map +1 -1
  157. package/lib/voice/tool.d.ts.map +1 -1
  158. package/lib/voice/tool.js +6 -4
  159. package/lib/voice/tool.js.map +1 -1
  160. package/package.json +19 -5
@@ -0,0 +1,17 @@
1
+ import type { DirectMessage } from '../direct/transport.js';
2
+ import type { DirectDispatcher } from '../direct/dispatcher.js';
3
+ /** Debounce one group speaker in its existing dispatch lane; never delay polling or private chats. */
4
+ export declare class QqGroupBursts {
5
+ private readonly dispatcher;
6
+ private readonly signal;
7
+ private readonly quietMs;
8
+ private readonly maxMs;
9
+ private readonly pending;
10
+ private readonly ids;
11
+ constructor(dispatcher: DirectDispatcher, signal: AbortSignal, quietMs?: number, maxMs?: number);
12
+ has(id: string): boolean;
13
+ enqueue(messages: readonly DirectMessage[], run: (messages: DirectMessage[], prepared: () => void) => Promise<void>): void;
14
+ }
15
+ /** Classify the whole burst, retaining any direct invitation and all original messages for receipt handling. */
16
+ export declare function groupBurstEvent(events: readonly DirectMessage[], text: string): DirectMessage;
17
+ //# sourceMappingURL=inbound-burst.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-burst.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/inbound-burst.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAA;AAG7D,sGAAsG;AACtG,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAkB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAM,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;gBACT,UAAU,EAAC,gBAAgB,EAAkB,MAAM,EAAC,WAAW,EACzE,OAAO,SAAK,EAAkB,KAAK,SAAK;IAG3D,GAAG,CAAC,EAAE,EAAC,MAAM,GAAE,OAAO;IACtB,OAAO,CAAC,QAAQ,EAAC,SAAS,aAAa,EAAE,EAAC,GAAG,EAAC,CAAC,QAAQ,EAAC,aAAa,EAAE,EAAC,QAAQ,EAAC,MAAI,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC,GAAE,IAAI;CA8BhH;AAED,gHAAgH;AAChH,wBAAgB,eAAe,CAAC,MAAM,EAAC,SAAS,aAAa,EAAE,EAAC,IAAI,EAAC,MAAM,GAAE,aAAa,CAKzF"}
@@ -0,0 +1,74 @@
1
+ import { setTimeout as delay } from 'node:timers/promises';
2
+ /** Debounce one group speaker in its existing dispatch lane; never delay polling or private chats. */
3
+ export class QqGroupBursts {
4
+ dispatcher;
5
+ signal;
6
+ quietMs;
7
+ maxMs;
8
+ pending = new Map();
9
+ ids = new Set();
10
+ constructor(dispatcher, signal, quietMs = 1200, maxMs = 4000) {
11
+ this.dispatcher = dispatcher;
12
+ this.signal = signal;
13
+ this.quietMs = quietMs;
14
+ this.maxMs = maxMs;
15
+ signal.addEventListener('abort', () => { this.pending.clear(); this.ids.clear(); }, { once: true });
16
+ }
17
+ has(id) { return this.ids.has(id); }
18
+ enqueue(messages, run) {
19
+ this.signal.throwIfAborted();
20
+ const fresh = messages.filter(m => !this.ids.has(m.id));
21
+ if (!fresh.length)
22
+ return;
23
+ const first = fresh[0];
24
+ if (!first.qqGroup || fresh.some(m => !m.qqGroup || m.sender !== first.sender || m.targetId !== first.targetId))
25
+ throw Error('群聊合并只能包含同一群的同一发言人');
26
+ // Keep references to another person separate from a direct exchange.
27
+ const key = JSON.stringify([first.targetId, first.sender, first.qqGroup.otherMention === true, first.qqGroup.replyToId ?? '']);
28
+ const previous = this.pending.get(key), now = Date.now();
29
+ if (previous && previous.messages.length + fresh.length <= 16 && now - previous.first < this.maxMs) {
30
+ previous.messages.push(...fresh);
31
+ previous.last = now;
32
+ fresh.forEach(m => this.ids.add(m.id));
33
+ return;
34
+ }
35
+ const burst = { messages: [...fresh], first: now, last: now };
36
+ this.pending.set(key, burst);
37
+ fresh.forEach(m => this.ids.add(m.id));
38
+ try {
39
+ this.dispatcher.enqueue(fresh.map(m => m.id), 'steer', async (prepared) => {
40
+ try {
41
+ for (;;) {
42
+ const remaining = Math.min(burst.last + this.quietMs, burst.first + this.maxMs) - Date.now();
43
+ if (remaining <= 0)
44
+ break;
45
+ await delay(remaining, undefined, { signal: this.signal });
46
+ }
47
+ if (this.pending.get(key) === burst)
48
+ this.pending.delete(key);
49
+ await run(burst.messages, prepared);
50
+ }
51
+ finally {
52
+ if (this.pending.get(key) === burst)
53
+ this.pending.delete(key);
54
+ burst.messages.forEach(m => this.ids.delete(m.id));
55
+ }
56
+ }, first.targetId || first.sender);
57
+ }
58
+ catch (error) {
59
+ if (this.pending.get(key) === burst)
60
+ this.pending.delete(key);
61
+ fresh.forEach(m => this.ids.delete(m.id));
62
+ throw error;
63
+ }
64
+ }
65
+ }
66
+ /** Classify the whole burst, retaining any direct invitation and all original messages for receipt handling. */
67
+ export function groupBurstEvent(events, text) {
68
+ const first = events[0];
69
+ if (!first.qqGroup)
70
+ return first;
71
+ const self = events.find(e => e.qqGroup?.replyTo === 'self');
72
+ return { ...first, text, qqGroup: { ...first.qqGroup, mentioned: events.some(e => e.qqGroup?.mentioned), ...(self ? { replyTo: 'self', hasReply: true } : {}) } };
73
+ }
74
+ //# sourceMappingURL=inbound-burst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-burst.js","sourceRoot":"","sources":["../../../src/channels/qq/inbound-burst.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Agent } from '@deepseek-ai/dsh-agent';
2
+ import type { PartnerState } from '../../domain.js';
3
+ /** Only verified steering from this speaker can hold an old step's not-yet-executed calls. */
4
+ export declare function pendingGroupInput(state: PartnerState, agent: Agent, routeId: string): boolean;
5
+ export declare const GROUP_INPUT_PENDING = "\u540C\u4E00\u4F4D\u7FA4\u6210\u5458\u53C8\u8865\u5145\u4E86\u6D88\u606F\uFF0C\u672C\u6B65\u9AA4\u5C1A\u672A\u6267\u884C\u3002\u5148\u5728\u4E0B\u4E00\u6B65\u5408\u5E76\u7406\u89E3\u65B0\u8F93\u5165\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u56DE\u5E94\uFF1B\u4E0D\u8981\u9010\u6761\u56DE\u65E7\u6D88\u606F\uFF0C\u5DF2\u5B8C\u6210\u7684\u64CD\u4F5C\u548C\u5DF2\u53D1\u9001\u5185\u5BB9\u4E0D\u8981\u91CD\u505A\u6216\u91CD\u53D1\u3002";
6
+ //# sourceMappingURL=pending-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-input.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/pending-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAGjD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAGvF;AACD,eAAO,MAAM,mBAAmB,+aAA0E,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { qqGroupRoute } from './settings.js';
2
+ /** Only verified steering from this speaker can hold an old step's not-yet-executed calls. */
3
+ export function pendingGroupInput(state, agent, routeId) {
4
+ const route = state.sessions.find(r => r.id === routeId && r.sessionId === agent.session.id);
5
+ return !!route && qqGroupRoute(route, state.channels) && Boolean(agent.inbox?.nextStep.some(m => m.source.kind === 'user' && route.inboundMessageIds?.includes(m.id)));
6
+ }
7
+ export const GROUP_INPUT_PENDING = '同一位群成员又补充了消息,本步骤尚未执行。先在下一步合并理解新输入,再决定是否回应;不要逐条回旧消息,已完成的操作和已发送内容不要重做或重发。';
8
+ //# sourceMappingURL=pending-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-input.js","sourceRoot":"","sources":["../../../src/channels/qq/pending-input.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAA;AAE1C,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAAC,KAAkB,EAAC,KAAW,EAAC,OAAc;IAC7E,MAAM,KAAK,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,IAAE,CAAC,CAAC,SAAS,KAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClF,OAAO,CAAC,CAAC,KAAK,IAAE,YAAY,CAAC,KAAK,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,IAAI,KAAG,MAAM,IAAE,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7J,CAAC;AACD,MAAM,CAAC,MAAM,mBAAmB,GAAC,yEAAyE,CAAA"}
@@ -24,7 +24,7 @@ export declare function topicSimilarity(left: string, right: string): number;
24
24
  export declare const CONVERSATION_WINDOW_MS: number;
25
25
  export declare function activeConversation(context: ReplyScoreContext): boolean;
26
26
  export declare function conversationEnded(text: string): boolean;
27
- /** Strong routing facts run before semantics. No random draw in a live conversation. */
27
+ /** Strong routing facts run before semantics; recent conversation is context, not a promise to answer every line. */
28
28
  export declare function routeGroupReply(event: DirectMessage, context: ReplyScoreContext): ReplyScore | undefined;
29
29
  export declare function scoreGroupReply(event: DirectMessage, context: ReplyScoreContext): ReplyScore;
30
30
  //# sourceMappingURL=reply-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reply-rules.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/reply-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,MAAM,WAAW,UAAU;IAAG,KAAK,EAAC,OAAO,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAC,OAAO,EAAC,MAAM,EAAE,CAAC;IAAC,KAAK,EAAC,QAAQ,GAAC,cAAc,GAAC,UAAU,GAAC,UAAU,GAAC,OAAO,GAAC,SAAS,CAAA;CAAE;AACxK,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,OAAO,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAC;QAAC,EAAE,EAAC,MAAM,CAAC;QAAA,IAAI,EAAC,MAAM,CAAA;KAAC,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,SAAS,CAAC,EAAC,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAC,mBAAmB,CAAA;CAAE;AAE1M,wBAAgB,eAAe,CAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAK/D;AACD,eAAO,MAAM,sBAAsB,QAAS,CAAA;AAC5C,wBAAgB,kBAAkB,CAAC,OAAO,EAAC,iBAAiB,GAAE,OAAO,CAGpE;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAC,MAAM,GAAE,OAAO,CAErD;AAMD,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,iBAAiB,GAAE,UAAU,GAAC,SAAS,CAYlG;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,iBAAiB,GAAE,UAAU,CAexF"}
1
+ {"version":3,"file":"reply-rules.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/reply-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,MAAM,WAAW,UAAU;IAAG,KAAK,EAAC,OAAO,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,WAAW,EAAC,MAAM,CAAC;IAAC,OAAO,EAAC,MAAM,EAAE,CAAC;IAAC,KAAK,EAAC,QAAQ,GAAC,cAAc,GAAC,UAAU,GAAC,UAAU,GAAC,OAAO,GAAC,SAAS,CAAA;CAAE;AACxK,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,OAAO,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAC;QAAC,EAAE,EAAC,MAAM,CAAC;QAAA,IAAI,EAAC,MAAM,CAAA;KAAC,CAAC;IAAC,GAAG,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,SAAS,CAAC,EAAC,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAC,mBAAmB,CAAA;CAAE;AAE1M,wBAAgB,eAAe,CAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAK/D;AACD,eAAO,MAAM,sBAAsB,QAAS,CAAA;AAC5C,wBAAgB,kBAAkB,CAAC,OAAO,EAAC,iBAAiB,GAAE,OAAO,CAGpE;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAC,MAAM,GAAE,OAAO,CAErD;AAMD,qHAAqH;AACrH,wBAAgB,eAAe,CAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,iBAAiB,GAAE,UAAU,GAAC,SAAS,CAWlG;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,iBAAiB,GAAE,UAAU,CAYxF"}
@@ -25,25 +25,24 @@ function directAddress(text, name) {
25
25
  const tail = text.slice(name.length);
26
26
  return !tail || /^[\s,,::!!??、]/u.test(tail) || /^(?:你|人呢|在吗|在不在|出来|来一下|帮我|帮忙|能不能|可以|会不会)/u.test(tail);
27
27
  }
28
- /** Strong routing facts run before semantics. No random draw in a live conversation. */
28
+ /** Strong routing facts run before semantics; recent conversation is context, not a promise to answer every line. */
29
29
  export function routeGroupReply(event, context) {
30
30
  const text = event.text.trim(), group = event.qqGroup;
31
31
  const decide = (reply, route, reason) => ({ reply, route, score: reply ? 100 : 0, probability: reply ? 1 : 0, reasons: [reason] });
32
+ if (conversationEnded(text))
33
+ return decide(false, 'closing', '用户明确结束或暂停接话');
32
34
  if (group?.mentioned)
33
35
  return decide(true, 'direct', '明确 @ 伙伴');
34
36
  if (group?.replyTo === 'self')
35
37
  return decide(true, 'direct', '引用伙伴已确认发送的消息');
36
38
  if (group?.otherMention || group?.replyTo === 'other')
37
39
  return decide(false, 'other', '消息明确发给其他成员');
38
- if (conversationEnded(text))
39
- return decide(false, 'closing', '用户明确结束或暂停接话');
40
40
  if (!group?.hasReply && directAddress(text, context.name.trim()))
41
41
  return decide(true, 'direct', '直接叫到角色名字');
42
42
  if (context.owner && !group?.hasReply && (context.addresses ?? []).some(name => directAddress(text, name)))
43
43
  return decide(true, 'direct', '归属账号使用关系称呼呼唤');
44
- // A successful delivered reply establishes one speaker's thread; another speaker does not erase it.
45
- if (activeConversation(context))
46
- return decide(true, 'continuation', '接续与此人的对话,不逐条抽签');
44
+ if (!event.media?.length && /^(?:嗯{1,3}|好|好的|收到|ok|知道了|了解|谢谢|谢了)[\s。.!!~~]*$/iu.test(text))
45
+ return decide(false, 'closing', '确认或收尾语,无需逐条回应');
47
46
  return undefined;
48
47
  }
49
48
  export function scoreGroupReply(event, context) {
@@ -52,21 +51,17 @@ export function scoreGroupReply(event, context) {
52
51
  return routed;
53
52
  const text = event.text.trim(), semantic = context.semantic;
54
53
  const decide = (reply, route, reason, score = reply ? 100 : 0) => ({ reply, route, score, probability: reply ? 1 : 0, reasons: [reason] });
55
- // Closing acknowledgements only suppress a NEW conversation, never an ongoing exchange.
56
- if (!event.media?.length && /^(?:嗯{1,3}|好|好的|收到|ok|知道了|了解)[\s。.!!~~]*$/iu.test(text))
57
- return decide(false, 'closing', '独立确认语,没有正在接续的对话');
58
54
  if (semantic) {
59
55
  const score = Math.round(semantic.confidence * 100);
60
- if (['address', 'engage'].includes(semantic.label) && semantic.confidence >= .38)
56
+ if (['address', 'engage'].includes(semantic.label) && semantic.confidence >= .65 && semantic.margin >= .15)
61
57
  return decide(true, 'semantic', '本地语义识别为呼唤或交流', score);
62
- // An uncertain classification must never become a hard rejection. Guests also get this fallback.
63
58
  if (semantic.confidence >= .72 && semantic.margin >= .35 && ['other', 'close', 'background'].includes(semantic.label))
64
59
  return decide(false, 'semantic', `本地语义明确识别为 ${semantic.label}`, score);
65
60
  }
66
- if (event.media?.length)
67
- return decide(true, 'fallback', '附件交给回复模型结合上下文判断');
68
- if (text)
69
- return decide(true, 'fallback', semantic ? '语义归属不确定,交给回复模型判断' : '本地语义暂不可用,保留消息进入回复流程');
61
+ if (activeConversation(context) && (text || event.media?.length))
62
+ return decide(true, 'continuation', '结合正在进行的对话判断是否需要接话,不强制逐条回答');
63
+ if (text || event.media?.length)
64
+ return decide(false, 'fallback', semantic ? '没有明确接话依据,继续旁听' : '本地语义暂不可用且未被呼唤,继续旁听');
70
65
  return decide(false, 'fallback', '空消息');
71
66
  }
72
67
  //# sourceMappingURL=reply-rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reply-rules.js","sourceRoot":"","sources":["../../../src/channels/qq/reply-rules.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAC,CAAC,IAAW,EAAC,EAAE,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;AAClH,MAAM,UAAU,eAAe,CAAC,IAAW,EAAC,KAAY;IACvD,MAAM,KAAK,GAAC,CAAC,IAAW,EAAC,EAAE,GAAC,MAAM,KAAK,GAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,GAAG,GAAC,IAAI,GAAG,EAAU,CAAC,CAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE;QAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAE,GAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA,OAAO,GAAG,CAAA,CAAA,CAAC,CAAA;IACpK,MAAM,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAAA,IAAG,CAAC,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,CAAC,IAAI;QAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAC,CAAC,CAAC;IAAA,KAAI,MAAM,IAAI,IAAI,CAAC;QAAC,IAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAC,MAAM,EAAE,CAAA;IACxD,OAAO,CAAC,GAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAC,CAAC,GAAC,MAAM,CAAA;AAC5C,MAAM,UAAU,kBAAkB,CAAC,OAAyB;IAC3D,MAAM,GAAG,GAAC,OAAO,CAAC,MAAM,CAAA,CAAC,CAAA,OAAO,CAAC,GAAG,GAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA,CAAC,CAAA,QAAQ,CAAA;IAC/D,OAAO,GAAG,IAAE,CAAC,IAAE,GAAG,GAAC,sBAAsB,CAAA;AAC1C,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,IAAW;IAC5C,OAAO,8IAA8I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACjK,CAAC;AACD,SAAS,aAAa,CAAC,IAAW,EAAC,IAAW;IAC7C,IAAG,CAAC,IAAI,IAAE,IAAI,CAAC,MAAM,GAAC,CAAC,IAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAC,OAAO,KAAK,CAAA;IAC5D,MAAM,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,IAAI,IAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnG,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAC,OAAyB;IAC5E,MAAM,IAAI,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,KAAK,GAAC,KAAK,CAAC,OAAO,CAAA;IAChD,MAAM,MAAM,GAAC,CAAC,KAAa,EAAC,KAAyB,EAAC,MAAa,EAAY,EAAE,CAAA,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,CAAC,EAAC,WAAW,EAAC,KAAK,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,OAAO,EAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;IACzJ,IAAG,KAAK,EAAE,SAAS;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAA;IAC1D,IAAG,KAAK,EAAE,OAAO,KAAG,MAAM;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAA;IACtE,IAAG,KAAK,EAAE,YAAY,IAAE,KAAK,EAAE,OAAO,KAAG,OAAO;QAAC,OAAO,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,YAAY,CAAC,CAAA;IAC1F,IAAG,iBAAiB,CAAC,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,EAAC,SAAS,EAAC,aAAa,CAAC,CAAA;IACvE,IAAG,CAAC,KAAK,EAAE,QAAQ,IAAE,aAAa,CAAC,IAAI,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,CAAC,CAAA;IACpG,IAAG,OAAO,CAAC,KAAK,IAAE,CAAC,KAAK,EAAE,QAAQ,IAAE,CAAC,OAAO,CAAC,SAAS,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,aAAa,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAA;IAC5I,oGAAoG;IACpG,IAAG,kBAAkB,CAAC,OAAO,CAAC;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,cAAc,EAAC,gBAAgB,CAAC,CAAA;IAClF,OAAO,SAAS,CAAA;AACjB,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAC,OAAyB;IAC5E,MAAM,MAAM,GAAC,eAAe,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC;IAAA,IAAG,MAAM;QAAC,OAAO,MAAM,CAAA;IACnE,MAAM,IAAI,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,QAAQ,GAAC,OAAO,CAAC,QAAQ,CAAA;IACtD,MAAM,MAAM,GAAC,CAAC,KAAa,EAAC,KAAyB,EAAC,MAAa,EAAC,KAAK,GAAC,KAAK,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,CAAC,EAAY,EAAE,CAAA,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,OAAO,EAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAA;IAC/J,wFAAwF;IACxF,IAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAE,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,KAAK,EAAC,SAAS,EAAC,iBAAiB,CAAC,CAAA;IAClI,IAAG,QAAQ,EAAC,CAAC;QACZ,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAC,GAAG,CAAC,CAAA;QAC/C,IAAG,CAAC,SAAS,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAE,QAAQ,CAAC,UAAU,IAAE,GAAG;YAAC,OAAO,MAAM,CAAC,IAAI,EAAC,UAAU,EAAC,cAAc,EAAC,KAAK,CAAC,CAAA;QAC9H,iGAAiG;QACjG,IAAG,QAAQ,CAAC,UAAU,IAAE,GAAG,IAAE,QAAQ,CAAC,MAAM,IAAE,GAAG,IAAE,CAAC,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAC,OAAO,MAAM,CAAC,KAAK,EAAC,UAAU,EAAC,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAC,KAAK,CAAC,CAAA;IAC/K,CAAC;IACD,IAAG,KAAK,CAAC,KAAK,EAAE,MAAM;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,UAAU,EAAC,iBAAiB,CAAC,CAAA;IACvE,IAAG,IAAI;QAAC,OAAO,MAAM,CAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,CAAA,CAAC,CAAA,kBAAkB,CAAA,CAAC,CAAA,qBAAqB,CAAC,CAAA;IACxF,OAAO,MAAM,CAAC,KAAK,EAAC,UAAU,EAAC,KAAK,CAAC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"reply-rules.js","sourceRoot":"","sources":["../../../src/channels/qq/reply-rules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reply-tool.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/reply-tool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAC,cAAc,GAAG,cAAc,CAqI5H"}
1
+ {"version":3,"file":"reply-tool.d.ts","sourceRoot":"","sources":["../../../src/channels/qq/reply-tool.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAC,cAAc,GAAG,cAAc,CAsI5H"}
@@ -1,3 +1,4 @@
1
+ import { taskFollowup, checkTaskReview, TASK_REVIEW_SCHEMA } from '../../chat/task-followup.js';
1
2
  import { OneBotApiError } from './connection.js';
2
3
  import { channelReplyAllowed } from '../reply-access.js';
3
4
  import { createHash } from 'node:crypto';
@@ -9,21 +10,21 @@ import { qqMediaUrl } from './transport.js';
9
10
  export function qqReplyTool(owner, store, call, external) {
10
11
  return {
11
12
  name: 'partner_qq_reply',
12
- description: '真正群 @ 用 mention(userId 为当前群成员 QQ 号,text 可附带短句),不能用文字 @昵称 冒充提及;戳一戳用 poke(默认当前发言人,可指定当前群成员 userId,需已开启 send_poke)。这两项发送后可以继续说话,只能作用于当前聊天。向当前 QQ 聊天对象回复语音,属于公开聊天能力,不需要归属账号或私有能力总开关。按人格与场景可自行选择语音,不必等用户点名索要。渠道启用外部语音 TTS 时自动使用该服务;voices 查询当前可用音色;voice 把 text 转成语音并发送,成功后结束回合,不重复发文字。脚本生成的音频通过 partner_tools 调用 partner_voice_reply 的 send_file(path)发送,不用 voice 重新合成。无需填写接收人;不能转发到其他联系人或使用 QQ 空间/管理能力。语音是否可用由渠道的聊天回复设置控制。普通文字和表情仍使用 partner_chat_reply 或最终正文。',
13
+ description: '真正群 @ 用 mention(userId 为当前群成员 QQ 号,text 可附带短句),不能用文字 @昵称 冒充提及;戳一戳用 poke(默认当前发言人,可指定当前群成员 userId,需已开启 send_poke)。这两项发送后可以继续说话,只能作用于当前聊天。向当前 QQ 聊天对象回复语音,属于公开聊天能力,不需要归属账号或私有能力总开关。按人格与场景可自行选择语音,不必等用户点名索要。渠道启用外部语音 TTS 时自动使用该服务;voices 查询当前可用音色;voice 把 text 转成语音并发送,有任务接续上下文时先提交 taskReview(与 partner_chat_reply 相同);成功后结束回合,不重复发文字。脚本生成的音频通过 partner_tools 调用 partner_voice_reply 的 send_file(path)发送,不用 voice 重新合成。无需填写接收人;不能转发到其他联系人或使用 QQ 空间/管理能力。语音是否可用由渠道的聊天回复设置控制。普通文字和表情仍使用 partner_chat_reply 或最终正文。',
13
14
  parameters: { type: 'object', additionalProperties: false, required: ['action'], properties: {
14
- action: { type: 'string', enum: ['voices', 'voice', 'mention', 'poke'] }, text: { type: 'string', minLength: 1, maxLength: 2000 }, character: { type: 'string', minLength: 1, maxLength: 200 }, userId: { type: 'string', pattern: '^[0-9]{5,12}$' },
15
+ taskReview: TASK_REVIEW_SCHEMA, action: { type: 'string', enum: ['voices', 'voice', 'mention', 'poke'] }, text: { type: 'string', minLength: 1, maxLength: 2000 }, character: { type: 'string', minLength: 1, maxLength: 200 }, userId: { type: 'string', pattern: '^[0-9]{5,12}$' },
15
16
  } },
16
17
  output: { schema: { type: 'object' }, render: (_args, value) => [{ type: 'text', text: JSON.stringify(value) }],
17
18
  presentationMeta: (_args, value) => {
18
19
  const result = value;
19
20
  if (result.status === 'confirmed' && result.interactionText && result.originRouteId)
20
21
  return { kind: 'partner-chat-v1', parts: [{ type: 'text', text: result.interactionText }], intermediate: true, delivered: true, ...(result.inputMessageId ? { inputMessageId: result.inputMessageId } : {}), originRouteId: result.originRouteId };
21
- return result.status === 'confirmed' && result.originRouteId ? { kind: 'partner-chat-v1', parts: [], delivered: true, originRouteId: result.originRouteId, ...(result.spokenText ? { spokenText: result.spokenText } : {}) } : null;
22
+ return result.status === 'confirmed' && result.originRouteId ? { kind: 'partner-chat-v1', parts: [], delivered: true, originRouteId: result.originRouteId, ...(result.taskReview ? { taskReview: result.taskReview } : {}), ...(result.spokenText ? { spokenText: result.spokenText } : {}) } : null;
22
23
  } },
23
24
  presentCall: () => ({ card: 'generic', title: 'QQ 聊天互动' }),
24
25
  async execute(raw, exec) {
25
26
  const args = raw;
26
- if (!args || Object.keys(args).some(k => !['action', 'text', 'character', 'userId'].includes(k)) || !['voices', 'voice', 'mention', 'poke'].includes(args.action))
27
+ if (!args || Object.keys(args).some(k => !['action', 'text', 'character', 'userId', 'taskReview'].includes(k)) || !['voices', 'voice', 'mention', 'poke'].includes(args.action))
27
28
  throw Error('语音回复参数无效');
28
29
  if (args.action === 'voice' && (typeof args.text !== 'string' || !args.text.trim() || args.text.length > 2000))
29
30
  throw Error('请提供 1–2000 字的语音内容');
@@ -47,7 +48,7 @@ export function qqReplyTool(owner, store, call, external) {
47
48
  if (channel.tts?.enabled && external && ['voices', 'voice'].includes(args.action)) {
48
49
  if (args.userId !== undefined)
49
50
  throw Error('语音回复不能指定其他对象');
50
- return external.execute({ action: args.action === 'voices' ? 'status' : 'speak', ...(args.text !== undefined ? { text: args.text } : {}), ...(args.character !== undefined ? { voice: args.character } : {}) }, exec);
51
+ return external.execute({ action: args.action === 'voices' ? 'status' : 'speak', ...(args.text !== undefined ? { text: args.text } : {}), ...(args.character !== undefined ? { voice: args.character } : {}), ...(args.taskReview ? { taskReview: args.taskReview } : {}) }, exec);
51
52
  }
52
53
  const group = qqGroupPeer(route.userId);
53
54
  const guard = () => {
@@ -126,6 +127,7 @@ export function qqReplyTool(owner, store, call, external) {
126
127
  };
127
128
  if (args.action === 'voices')
128
129
  return { voices: await voices() };
130
+ const taskReview = checkTaskReview(taskFollowup(store.snapshot(), owner, agent.session.id, agent.session.snapshotEvents()), args.taskReview);
129
131
  if (typeof exec.concludeTurn !== 'function' || !exec.callId)
130
132
  throw Error('当前宿主不支持语音回复终结');
131
133
  const character = args.character?.trim() || settings.voiceCharacter || (await voices())[0]?.id;
@@ -144,7 +146,7 @@ export function qqReplyTool(owner, store, call, external) {
144
146
  if (previous) {
145
147
  if (previous === 'confirmed')
146
148
  exec.concludeTurn();
147
- return { status: previous, resent: false, originRouteId: route.id };
149
+ return { status: previous, resent: false, originRouteId: route.id, ...(taskReview ? { taskReview } : {}) };
148
150
  }
149
151
  let sendAttempted = false;
150
152
  try {
@@ -169,7 +171,7 @@ export function qqReplyTool(owner, store, call, external) {
169
171
  await store.update(state => { const receipt = state.channels.find(c => c.id === channel.id)?.qqActivity?.find(r => r.id === receiptId); if (receipt)
170
172
  receipt.status = 'confirmed'; });
171
173
  exec.concludeTurn();
172
- return { status: 'confirmed', originRouteId: route.id, spokenText: args.text.trim(), messageId: String(result.message_id) };
174
+ return { status: 'confirmed', ...(taskReview ? { taskReview } : {}), originRouteId: route.id, spokenText: args.text.trim(), messageId: String(result.message_id) };
173
175
  }
174
176
  catch {
175
177
  await store.update(state => {
@@ -1 +1 @@
1
- {"version":3,"file":"reply-tool.js","sourceRoot":"","sources":["../../../src/channels/qq/reply-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reply-tool.js","sourceRoot":"","sources":["../../../src/channels/qq/reply-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,eAAe,EAAC,kBAAkB,EAAwB,MAAM,6BAA6B,CAAA;AAClH,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG3C,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAmB,EAAE,IAAkB,EAAE,QAAwB;IAC1G,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8eAA8e;QAC3f,UAAU,EAAE,EAAE,IAAI,EAAC,QAAQ,EAAE,oBAAoB,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAC;gBACvF,UAAU,EAAC,kBAAkB,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,CAAC,EAAC,EAAE,IAAI,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,SAAS,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,SAAS,EAAC,GAAG,EAAC,EAAE,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,eAAe,EAAC;aACpP,EAAC;QACF,MAAM,EAAC,EAAC,MAAM,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAC,CAAC;YAC/F,gBAAgB,EAAC,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBAC9B,MAAM,MAAM,GAAC,KAA+I,CAAA;gBAC5J,IAAG,MAAM,CAAC,MAAM,KAAG,WAAW,IAAE,MAAM,CAAC,eAAe,IAAE,MAAM,CAAC,aAAa;oBAAC,OAAO,EAAC,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,CAAC,eAAe,EAAC,CAAC,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA,CAAC,CAAA,EAAC,cAAc,EAAC,MAAM,CAAC,cAAc,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,aAAa,EAAC,MAAM,CAAC,aAAa,EAAC,CAAA;gBACvS,OAAO,MAAM,CAAC,MAAM,KAAG,WAAW,IAAE,MAAM,CAAC,aAAa,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,MAAM,CAAC,aAAa,EAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,MAAM,CAAC,UAAU,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,MAAM,CAAC,UAAU,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAA,CAAC,CAAA,IAAI,CAAA;YACrQ,CAAC,EAAC;QACF,WAAW,EAAC,GAAE,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,EAAC,CAAC;QAClD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI;YACrB,MAAM,IAAI,GAAC,GAAkG,CAAA;YAC7G,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;YAC/L,IAAG,IAAI,CAAC,MAAM,KAAG,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACpI,IAAG,IAAI,CAAC,SAAS,KAAG,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,KAAG,QAAQ,IAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAC,GAAG,CAAC;gBAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC5I,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAA;YACtB,IAAG,CAAC,KAAK;gBAAC,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;YACnC,MAAM,MAAM,GAAC,GAAE,EAAE;gBACf,MAAM,KAAK,GAAC,KAAK,CAAC,QAAQ,EAAE,EAAC,MAAM,GAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;gBAClE,MAAM,MAAM,GAAC,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAI,KAAG,cAAc,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAG,MAAM,IAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1H,MAAM,KAAK,GAAC,MAAM,IAAE,mBAAmB,CAAC,MAAM,CAAC;oBAC7C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,SAAS,KAAG,KAAK,CAAC,OAAO,CAAC,EAAE,IAAE,MAAM,CAAC,IAAI,KAAG,cAAc,IAAE,CAAC,CAAC,gBAAgB,EAAE,SAAS,KAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,MAAM,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1D,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,MAAM,EAAE,IAAI,KAAG,cAAc,CAAA,CAAC,CAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA,CAAC,CAAA,SAAS,EAAC,CAAA;YACvF,CAAC,CAAA;YACD,MAAM,OAAO,GAAC,MAAM,EAAE,EAAC,KAAK,GAAC,OAAO,CAAC,KAAK,CAAA;YAC1C,MAAM,OAAO,GAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,KAAK,EAAE,SAAS,IAAE,CAAC,CAAC,WAAW,KAAG,KAAK,IAAE,CAAC,CAAC,QAAQ,KAAG,IAAI,CAAC,CAAA;YAC/G,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,WAAW,KAAG,KAAK,IAAE,CAAC,OAAO;gBAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC/E,IAAG,OAAO,CAAC,GAAG,EAAE,OAAO,IAAE,QAAQ,IAAE,CAAC,QAAQ,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;gBAC3E,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS;oBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;gBACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,OAAO,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAG,SAAS,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAG,SAAS,CAAA,CAAC,CAAA,EAAC,KAAK,EAAC,IAAI,CAAC,SAAS,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,IAAI,CAAC,UAAU,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAC,IAAI,CAAC,CAAA;YAC9O,CAAC;YACD,MAAM,KAAK,GAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACrC,MAAM,KAAK,GAAC,GAAE,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;gBAC5B,MAAM,GAAG,GAAC,MAAM,EAAE,EAAC,OAAO,GAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAC,EAAC,QAAQ,GAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gBACzG,IAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAG,KAAK,CAAC,EAAE,IAAE,GAAG,CAAC,SAAS,KAAG,OAAO,CAAC,SAAS,IAAE,CAAC,OAAO,EAAE,OAAO,IAAE,OAAO,CAAC,SAAS,KAAG,OAAO,CAAC,SAAS,IAAE,CAAC,CAAC,QAAQ,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;oBAAC,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAA;gBACxQ,IAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,CAAC,EAAE,EAAC,KAAK,CAAC,MAAM,EAAC,KAAK,CAAA,CAAC,CAAA,QAAQ,GAAC,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,KAAK,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;gBAChI,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc;oBAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;gBACjI,OAAO,QAAQ,CAAA;YACjB,CAAC,CAAA;YACD,MAAM,QAAQ,GAAC,KAAK,EAAE,CAAA;YACtB,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS,IAAE,IAAI,CAAC,MAAM,KAAG,MAAM,EAAE,CAAC;gBACjD,IAAG,CAAC,IAAI,CAAC,MAAM;oBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;gBAC3C,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS,IAAE,CAAC,OAAO,IAAI,CAAC,MAAM,KAAG,QAAQ,IAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBAC3H,IAAG,IAAI,CAAC,IAAI,KAAG,SAAS,IAAE,CAAC,OAAO,IAAI,CAAC,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;oBAAC,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC3G,IAAG,IAAI,CAAC,SAAS,KAAG,SAAS,IAAE,IAAI,CAAC,MAAM,KAAG,MAAM,IAAE,IAAI,CAAC,IAAI,KAAG,SAAS;oBAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;gBACjG,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS,IAAE,CAAC,CAAC,KAAK,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAA;gBAC3F,MAAM,MAAM,GAAC,IAAI,CAAC,MAAM,IAAE,KAAK,EAAE,MAAM,IAAE,KAAK,CAAC,MAAM,CAAA;gBACrD,IAAG,CAAC,KAAK,IAAE,MAAM,KAAG,KAAK,CAAC,MAAM;oBAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;gBACzD,MAAM,gBAAgB,GAAC,GAAE,EAAE,GAAC,MAAM,OAAO,GAAC,KAAK,EAAE,CAAC,CAAA,IAAG,IAAI,CAAC,MAAM,KAAG,MAAM,IAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAAC,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAA,CAAA,CAAC,CAAA;gBAC7J,gBAAgB,EAAE,CAAA;gBAClB,MAAM,MAAM,GAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACtE,IAAG,KAAK,EAAC,CAAC;oBACR,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,uBAAuB,EAAC,EAAC,QAAQ,EAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAC,OAAO,EAAC,MAAM,CAAC,MAAM,CAAC,EAAC,EAAC,MAAM,EAAC,gBAAgB,CAAQ,CAAA;oBAClJ,IAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,IAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAG,KAAK,CAAC,OAAO;wBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;gBAC3G,CAAC;gBACD,MAAM,SAAS,GAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mBAAmB,EAAC,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACnI,IAAI,QAAyB,CAAA;gBAC7B,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE,GAAC,gBAAgB,EAAE,CAAC,CAAA,MAAM,GAAG,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAE,CAAC,UAAU,KAAG,EAAE,CAAC,CAAA,QAAQ,GAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA,IAAG,CAAC,QAAQ;oBAAC,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;gBACpQ,MAAM,eAAe,GAAC,IAAI,CAAC,MAAM,KAAG,SAAS,CAAA,CAAC,CAAA,GAAG,GAAC,MAAM,GAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA,CAAC,CAAA,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,CAAC,CAAA,EAAE,CAAC,CAAA,CAAC,CAAA,OAAO,GAAC,MAAM,GAAC,GAAG,CAAA;gBACvH,MAAM,MAAM,GAAC,CAAC,MAAa,EAAC,EAAE,CAAA,CAAC,EAAC,MAAM,EAAC,aAAa,EAAC,KAAK,CAAC,EAAE,EAAC,cAAc,EAAC,OAAO,CAAC,SAAS,EAAC,eAAe,EAAC,CAAC,CAAA;gBAChH,IAAG,QAAQ;oBAAC,OAAO,EAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,CAAA;gBACrD,IAAI,CAAC;oBACH,gBAAgB,EAAE,CAAA;oBAClB,MAAM,IAAI,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,IAAI,CAAC,MAAM,KAAG,SAAS,CAAA,CAAC,CAAA,gBAAgB,CAAA,CAAC,CAAA,WAAW,EAAC,IAAI,CAAC,MAAM,KAAG,SAAS;wBAC3G,CAAC,CAAA,EAAC,QAAQ,EAAC,MAAM,CAAC,KAAM,CAAC,OAAO,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAE,EAAC,MAAM,EAAC,EAAC,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA,CAAC,CAAA,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,EAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,EAAC;wBACpJ,CAAC,CAAA,EAAC,OAAO,EAAC,MAAM,CAAC,MAAM,CAAC,EAAC,GAAG,CAAC,KAAK,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAC,MAAM,EAAC,gBAAgB,CAAQ,CAAA;oBAC1G,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS,IAAE,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAG,CAAC,CAAC;wBAAC,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;oBAC3K,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE,GAAC,MAAM,CAAC,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAC,CAAA,IAAG,CAAC;wBAAC,CAAC,CAAC,MAAM,GAAC,WAAW,CAAA,CAAA,CAAC,CAAC,CAAA;oBAC/I,OAAO,MAAM,CAAC,WAAW,CAAC,CAAA;gBAC5B,CAAC;gBAAA,OAAM,KAAK,EAAC,CAAC;oBACZ,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE,GAAC,MAAM,CAAC,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAC,CAAA,IAAG,CAAC,EAAC,CAAC;wBAAA,CAAC,CAAC,MAAM,GAAC,KAAK,YAAY,cAAc,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,SAAS,CAAC;wBAAA,IAAG,KAAK,YAAY,cAAc;4BAAC,CAAC,CAAC,KAAK,GAAC,KAAK,CAAC,OAAO,CAAA;oBAAA,CAAC,CAAA,CAAC,CAAC,CAAA;oBACjP,MAAM,KAAK,CAAC,CAAC,KAAK,YAAY,cAAc,CAAA,CAAC,CAAA,sBAAsB,CAAA,CAAC,CAAA,oBAAoB,CAAC,GAAC,CAAC,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAA;gBAC1I,CAAC;YACH,CAAC;YACD,IAAG,IAAI,CAAC,MAAM,KAAG,SAAS;gBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;YACtD,MAAM,WAAW,GAAC,KAAK,EAAE,OAAO,IAAE,QAAQ,CAAC,iBAAiB,IAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAClF,IAAG,CAAC,WAAW,IAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAC,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAA;YAC9F,MAAM,MAAM,GAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,MAAM,GAAC,KAAK,IAAE,EAAE;gBACpB,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,mBAAmB,EAAC,EAAC,QAAQ,EAAC,MAAM,CAAC,WAAW,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,MAAM,EAAC,GAAE,EAAE,GAAC,KAAK,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA;gBACvH,KAAK,EAAE,CAAA;gBACP,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAA,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,OAAO,CAAC,CAAC,YAAY,KAAG,QAAQ,IAAE,OAAO,CAAC,CAAC,cAAc,KAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,YAAY,EAAC,IAAI,EAAC,CAAC,CAAC,cAAc,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA;YACpQ,CAAC,CAAA;YACD,IAAG,IAAI,CAAC,MAAM,KAAG,QAAQ;gBAAC,OAAO,EAAC,MAAM,EAAC,MAAM,MAAM,EAAE,EAAC,CAAA;YACxD,MAAM,UAAU,GAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACtI,IAAG,OAAO,IAAI,CAAC,YAAY,KAAG,UAAU,IAAE,CAAC,IAAI,CAAC,MAAM;gBAAC,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;YACnF,MAAM,SAAS,GAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAE,QAAQ,CAAC,cAAc,IAAE,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;YACxF,IAAG,CAAC,SAAS;gBAAC,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAChD,MAAM,SAAS,GAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAC,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7H,IAAI,QAAyB,CAAA;YAC7B,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE;gBACxB,KAAK,EAAE,CAAA;gBACP,MAAM,OAAO,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAE,CAAA;gBACxD,MAAM,GAAG,GAAC,OAAO,CAAC,UAAU,KAAG,EAAE,CAAA;gBACjC,QAAQ,GAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,EAAE,MAAM,CAAA;gBAC9C,IAAG,CAAC,QAAQ;oBAAC,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,SAAS,EAAC,MAAM,EAAC,aAAa,EAAC,EAAE,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,CAAC,CAAA;YAC3F,CAAC,CAAC,CAAA;YACF,IAAG,QAAQ,EAAC,CAAC;gBAAA,IAAG,QAAQ,KAAG,WAAW;oBAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAAA,OAAO,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,aAAa,EAAC,KAAK,CAAC,EAAE,EAAC,GAAG,CAAC,UAAU,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAA;YAAA,CAAC;YACxJ,IAAI,aAAa,GAAC,KAAK,CAAA;YACvB,IAAI,CAAC;gBACH,KAAK,EAAE,CAAA;gBACP,IAAI,MAAU,CAAA;gBACd,IAAG,KAAK,EAAC,CAAC;oBAAA,aAAa,GAAC,IAAI,CAAC;oBAAA,MAAM,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,sBAAsB,EAAC,EAAC,QAAQ,EAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,CAAC,IAAK,CAAC,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,MAAM,EAAC,GAAE,EAAE,GAAC,KAAK,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA;gBAAA,CAAC;qBAChL,CAAC;oBACJ,MAAM,SAAS,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,eAAe,EAAC,EAAC,QAAQ,EAAC,MAAM,CAAC,WAAW,CAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,CAAC,IAAK,CAAC,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,EAAC,MAAM,EAAC,GAAE,EAAE,GAAC,KAAK,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA;oBACvJ,IAAG,OAAO,SAAS,KAAG,QAAQ;wBAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;oBACrD,2EAA2E;oBAC3E,MAAM,GAAG,GAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;oBACpC,KAAK,EAAE,CAAA;oBACP,aAAa,GAAC,IAAI,CAAA;oBAClB,MAAM,GAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,kBAAkB,EAAC,EAAC,OAAO,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,CAAC,EAAC,EAAC,MAAM,EAAC,GAAE,EAAE,GAAC,KAAK,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA;gBAChJ,CAAC;gBACD,IAAG,CAAC,MAAM,IAAE,CAAC,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAG,CAAC;oBAAC,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;gBACxJ,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE,GAAC,MAAM,OAAO,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAC,CAAA,IAAG,OAAO;oBAAC,OAAO,CAAC,MAAM,GAAC,WAAW,CAAA,CAAA,CAAC,CAAC,CAAA;gBACjK,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,OAAO,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,CAAC,UAAU,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,aAAa,EAAC,KAAK,CAAC,EAAE,EAAC,UAAU,EAAC,IAAI,CAAC,IAAK,CAAC,IAAI,EAAE,EAAC,SAAS,EAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAC,CAAA;YACrJ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAE;oBACxB,MAAM,OAAO,GAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,EAAE,CAAC,EAAC,OAAO,GAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAA;oBAC9G,IAAG,OAAO,IAAE,OAAO,CAAC,MAAM,KAAG,WAAW,EAAC,CAAC;wBACxC,IAAG,aAAa;4BAAC,OAAO,CAAC,MAAM,GAAC,SAAS,CAAA;;4BACpC,OAAQ,CAAC,UAAU,GAAC,OAAQ,CAAC,UAAW,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAA;oBAC3E,CAAC;gBACH,CAAC,CAAC,CAAA;gBACF,MAAM,KAAK,CAAC,aAAa,CAAA,CAAC,CAAA,+BAA+B,CAAA,CAAC,CAAA,yDAAyD,CAAC,CAAA;YACtH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -51,7 +51,7 @@ export function idleActivityFinishTool(owner, store) {
51
51
  if (!canFinishIdleActivity(owner, draft, agent.session.id, agent.session.snapshotEvents()))
52
52
  throw Error('自主活动已变化,未保存念头');
53
53
  const route = draft.sessions.find(r => r.companionId === owner && r.sessionId === agent.session.id && notice.type === 'user/message' && r.idleContactState?.messageId === notice.data.id);
54
- const c = draft.companions.find(c => c.id === owner), thoughts = c.thoughts ??= [], now = Date.now(), text = nextThought.trim();
54
+ const c = draft.companions.find(c => c.id === owner), thoughts = (c.thoughts ??= []), now = Date.now(), text = nextThought.trim();
55
55
  const id = 'thought-' + createHash('sha256').update(owner + ':' + (notice.type === 'user/message' ? notice.data.id : '') + ':' + text).digest('hex').slice(0, 24);
56
56
  if (thoughts.some(t => t.id === id || t.status === 'open' && t.text === text && t.targetRouteId === route.id))
57
57
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"activity-tool.js","sourceRoot":"","sources":["../../src/character/activity-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-tool.js","sourceRoot":"","sources":["../../src/character/activity-tool.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CharacterCard } from './domain.js';
2
- export declare const SEGMENTED_CHAT_GUIDANCE = "\u77ED\u53E5\u63A5\u8BDD\u5F00\u542F\u5206\u6BB5\u65F6\uFF0C\u666E\u901A\u804A\u5929\u6BCF\u6761\u6D88\u606F\u53EA\u8BF4\u534A\u53E5\u5230\u4E24\u53E5\uFF0C\u53EA\u63A5\u4E00\u4E2A\u610F\u601D\uFF1B\u4E0D\u9760\u5220\u6807\u70B9\u3001\u6362\u884C\u6216\u8FDE\u7EED\u9017\u53F7\u628A\u539F\u56E0\u3001\u8BC4\u4EF7\u3001\u611F\u53D7\u585E\u6210\u4E00\u6761\uFF0C\u4E5F\u4E0D\u628A\u672C\u53EF\u4E00\u53E5\u8BF4\u5B8C\u7684\u610F\u601D\u6269\u6210\u591A\u6761\uFF0C\u6240\u6709\u4E2D\u82F1\u6587\u6807\u70B9\u7B26\u53F7\u5408\u8BA1\u6700\u591A\u4E09\u4E2A\uFF0C\u4E0D\u4EC5\u9650\u4E8E\u9017\u53F7\u548C\u53E5\u53F7\uFF1B\u95EE\u53F7\u3001\u611F\u53F9\u53F7\u3001\u987F\u53F7\u3001\u5192\u53F7\u3001\u5206\u53F7\u3001\u5F15\u53F7\u3001\u62EC\u53F7\u3001\u7834\u6298\u53F7\u3001\u7701\u7565\u53F7\u7B49\u90FD\u8BA1\u5165\uFF0C\u6BCF\u4E2A\u6807\u70B9\u5B57\u7B26\u8BA1\u4E00\u4E2A\uFF0C\u8FDE\u7EED\u6807\u70B9\u9010\u4E2A\u8BA1\u6570\uFF1B\u5185\u5BB9\u591A\u65F6\u7EE7\u7EED\u5206\u6761\uFF0C\u5141\u8BB8\u8D85\u8FC7\u4E09\u6761\u6D88\u606F\uFF08\u5355\u6B21\u5DE5\u5177\u63D0\u4EA4\u6700\u591A\u516B\u6761\uFF09\uFF0C\u4E0D\u4E3A\u51D1\u6761\u6570\u52A0\u8BDD\uFF0C\u4E0D\u628A\u957F\u7BC7\u89E3\u91CA\u62C6\u6210\u5F88\u591A\u77ED\u6D88\u606F\u503E\u5012\u3002\u4EE3\u7801\u3001\u9010\u5B57\u5F15\u7528\u3001\u5217\u8868\u3001\u5B8C\u6574\u6587\u6863\u53CA\u7528\u6237\u660E\u786E\u8981\u6C42\u7684\u7279\u6B8A\u683C\u5F0F\u4FDD\u7559\u7ED3\u6784\uFF0C\u4E0D\u5957\u7528\u8FD9\u9879\u77ED\u53E5\u9650\u5236\u3002\u8BED\u6C14\u4ECD\u6309\u5F53\u524D\u4EBA\u7269\u4E0E\u5173\u7CFB\u8BBE\u5B9A\u3002";
2
+ export declare const SEGMENTED_CHAT_GUIDANCE = "\u77ED\u53E5\u63A5\u8BDD\u5F00\u542F\u5206\u6BB5\u65F6\uFF0C\u666E\u901A\u804A\u5929\u6BCF\u6761\u6D88\u606F\u53EA\u8BF4\u534A\u53E5\u5230\u4E24\u53E5\uFF0C\u53EA\u63A5\u4E00\u4E2A\u610F\u601D\uFF1B\u8FD9\u662F\u6BCF\u6761\u7684\u957F\u5EA6\uFF0C\u4E0D\u662F\u6574\u8F6E\u53EA\u80FD\u56DE\u4E00\u53E5\u3002\u4E00\u6B21\u56DE\u5E94\u53EF\u4EE5\u8FDE\u7EED\u8BF4\u51E0\u6761\uFF1A\u5148\u63A5\u8BDD\uFF0C\u518D\u81EA\u7136\u8865\u81EA\u5DF1\u7684\u53CD\u5E94\u3001\u8054\u60F3\u6216\u60F3\u505A\u7684\u5C0F\u4E8B\uFF1B\u8FD9\u4E9B\u5C5E\u4E8E\u5F53\u524D\u4E00\u8F6E\uFF0C\u4E0D\u9700\u8981\u7B49\u5F85\u7528\u6237\u8FFD\u95EE\u6216\u632A\u5230\u81EA\u4E3B\u6D3B\u52A8\u3002\u4E0D\u9760\u5220\u6807\u70B9\u3001\u6362\u884C\u6216\u8FDE\u7EED\u9017\u53F7\u628A\u539F\u56E0\u3001\u8BC4\u4EF7\u3001\u611F\u53D7\u585E\u6210\u4E00\u6761\uFF0C\u4E5F\u4E0D\u628A\u672C\u53EF\u4E00\u53E5\u8BF4\u5B8C\u7684\u610F\u601D\u6269\u6210\u591A\u6761\uFF0C\u6240\u6709\u4E2D\u82F1\u6587\u6807\u70B9\u7B26\u53F7\u5408\u8BA1\u6700\u591A\u4E09\u4E2A\uFF0C\u4E0D\u4EC5\u9650\u4E8E\u9017\u53F7\u548C\u53E5\u53F7\uFF1B\u95EE\u53F7\u3001\u611F\u53F9\u53F7\u3001\u987F\u53F7\u3001\u5192\u53F7\u3001\u5206\u53F7\u3001\u5F15\u53F7\u3001\u62EC\u53F7\u3001\u7834\u6298\u53F7\u3001\u7701\u7565\u53F7\u7B49\u90FD\u8BA1\u5165\uFF0C\u6BCF\u4E2A\u6807\u70B9\u5B57\u7B26\u8BA1\u4E00\u4E2A\uFF0C\u8FDE\u7EED\u6807\u70B9\u9010\u4E2A\u8BA1\u6570\uFF1B\u5185\u5BB9\u591A\u65F6\u7EE7\u7EED\u5206\u6761\uFF0C\u5141\u8BB8\u8D85\u8FC7\u4E09\u6761\u6D88\u606F\uFF08\u5355\u6B21\u5DE5\u5177\u63D0\u4EA4\u6700\u591A\u516B\u6761\uFF09\uFF0C\u4E0D\u4E3A\u51D1\u6761\u6570\u52A0\u8BDD\uFF0C\u4E0D\u628A\u957F\u7BC7\u89E3\u91CA\u62C6\u6210\u5F88\u591A\u77ED\u6D88\u606F\u503E\u5012\u3002\u4EE3\u7801\u3001\u9010\u5B57\u5F15\u7528\u3001\u5217\u8868\u3001\u5B8C\u6574\u6587\u6863\u53CA\u7528\u6237\u660E\u786E\u8981\u6C42\u7684\u7279\u6B8A\u683C\u5F0F\u4FDD\u7559\u7ED3\u6784\uFF0C\u4E0D\u5957\u7528\u8FD9\u9879\u77ED\u53E5\u9650\u5236\u3002\u8BED\u6C14\u4ECD\u6309\u5F53\u524D\u4EBA\u7269\u4E0E\u5173\u7CFB\u8BBE\u5B9A\u3002";
3
3
  /** User-selected delivery size is independent of persona composition. */
4
4
  export declare function usesShortDeliveryPolicy(card?: CharacterCard): boolean;
5
5
  /** Stable settings and delivery contracts; expression belongs to the configured persona. */
@@ -8,6 +8,9 @@ export declare function renderExpressionPreferences(card?: CharacterCard): strin
8
8
  /** Per-request expression options and input origin; persona and protocols stay in the system context. */
9
9
  export declare function renderConversationTurn(card: CharacterCard | undefined, consecutiveUserMessages: number, autonomous?: boolean): string;
10
10
  /** Stable transport settings, without selecting emotions, jokes, verbosity or sticker frequency. */
11
+ export declare function renderVoicePreference(card?: CharacterCard): string;
12
+ /** Keep enabled media operations available in exclusive-persona mode, without prescribing a persona or frequency. */
13
+ export declare function renderStickerDeliveryPreference(card?: CharacterCard): string;
11
14
  export declare function renderChatDeliveryGuidance(card?: CharacterCard): string;
12
15
  /** The user-requested before/after workflow, independent of response style. */
13
16
  export declare function renderTaskConversationGuidance(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-behavior.d.ts","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,eAAO,MAAM,uBAAuB,ikDAA+Q,CAAA;AAEnT,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAErE;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAQvE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAOxE;AAED,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAQnI;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAavE;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAO9D"}
1
+ {"version":3,"file":"conversation-behavior.d.ts","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,eAAO,MAAM,uBAAuB,2hEAA8V,CAAA;AAElY,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAErE;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CASvE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAOxE;AAED,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAUnI;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAIlE;AAED,qHAAqH;AACrH,wBAAgB,+BAA+B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAI5E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAevE;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAO9D"}
@@ -1,4 +1,4 @@
1
- export const SEGMENTED_CHAT_GUIDANCE = '短句接话开启分段时,普通聊天每条消息只说半句到两句,只接一个意思;不靠删标点、换行或连续逗号把原因、评价、感受塞成一条,也不把本可一句说完的意思扩成多条,所有中英文标点符号合计最多三个,不仅限于逗号和句号;问号、感叹号、顿号、冒号、分号、引号、括号、破折号、省略号等都计入,每个标点字符计一个,连续标点逐个计数;内容多时继续分条,允许超过三条消息(单次工具提交最多八条),不为凑条数加话,不把长篇解释拆成很多短消息倾倒。代码、逐字引用、列表、完整文档及用户明确要求的特殊格式保留结构,不套用这项短句限制。语气仍按当前人物与关系设定。';
1
+ export const SEGMENTED_CHAT_GUIDANCE = '短句接话开启分段时,普通聊天每条消息只说半句到两句,只接一个意思;这是每条的长度,不是整轮只能回一句。一次回应可以连续说几条:先接话,再自然补自己的反应、联想或想做的小事;这些属于当前一轮,不需要等待用户追问或挪到自主活动。不靠删标点、换行或连续逗号把原因、评价、感受塞成一条,也不把本可一句说完的意思扩成多条,所有中英文标点符号合计最多三个,不仅限于逗号和句号;问号、感叹号、顿号、冒号、分号、引号、括号、破折号、省略号等都计入,每个标点字符计一个,连续标点逐个计数;内容多时继续分条,允许超过三条消息(单次工具提交最多八条),不为凑条数加话,不把长篇解释拆成很多短消息倾倒。代码、逐字引用、列表、完整文档及用户明确要求的特殊格式保留结构,不套用这项短句限制。语气仍按当前人物与关系设定。';
2
2
  /** User-selected delivery size is independent of persona composition. */
3
3
  export function usesShortDeliveryPolicy(card) {
4
4
  return card?.length === 'short';
@@ -8,6 +8,7 @@ export function renderConversationBehavior(card) {
8
8
  return [
9
9
  card?.enabled ? '【聊天表达】正文是这个角色正在对眼前的人说的话。按人物设定自然接话,语气可以有停顿、残句和态度;不用把每句话补成完整解答,不复述对方或总结这一轮。需要认真解释时照样说清楚。说话方式由人格和关系决定,不固定语气词、条数或字数,不预设具体情绪。' : '',
10
10
  '【工具权限与结果】只使用当前已授权工具,操作结果以实际执行为准;角色设定不增加权限。',
11
+ '【接话与主动性】先回应眼前的话,有自然联想、具体兴趣或还想说的内容时,可以自己接着说、分享或做相关的小事,不必总等对方下一问,也不必用提问结尾。中途用 partner_chat_say 或 partner_chat_reply continueTurn:true,仍保持人物语气和短句节奏;没有新内容就结束,不拆成流水汇报。若明确想稍后继续,可通过 partner_tools 查询 partner_thoughts 的 plan 安排一次后续,先确认自主活动已开启;只说以后再聊不算安排。用户新消息优先,不能用自主活动逃避当前任务。',
11
12
  renderTaskConversationGuidance(),
12
13
  renderChatDeliveryGuidance(card),
13
14
  '【渠道回传】私聊用户消息需要可见回复;已确认送达的文字、图片或语音不重复发送。最终内容由渠道适配器投递,不输出内部发送指令或 [SILENT]。',
@@ -17,7 +18,7 @@ export function renderExpressionPreferences(card) {
17
18
  return [
18
19
  '【用户配置的表达选项】具体角色说明和本轮用户要求优先。',
19
20
  card?.segmentedReplies && usesShortDeliveryPolicy(card) ? SEGMENTED_CHAT_GUIDANCE : '',
20
- card?.length === 'short' ? '篇幅偏好:简短。像平时打字一样先接眼前这一点,通常一两句;有必要再补,不为凑条数延长,也不为字数省掉事实。本轮要求详细或原文时按请求展开,具体语气由角色决定。' : card?.length === 'rich' ? '篇幅偏好:愿意展开聊,随话题和对方意愿。' : '篇幅偏好:随话题自然调整。',
21
+ card?.length === 'short' ? '篇幅偏好:短句接话。每条简短,整轮可连续多条;有自己的反应或联想就顺着接下去,不把一次聊天压成一条答案。已想好几条时一次放入 messages,想边说边继续时先用 partner_chat_say 或 continueTurn:true,最后再收尾。不为凑条数延长,也不为字数省掉事实。本轮要求详细或原文时按请求展开,具体语气由角色决定。' : card?.length === 'rich' ? '篇幅偏好:愿意展开聊,随话题和对方意愿。' : '篇幅偏好:随话题自然调整。',
21
22
  card?.narration ? '动作描写偏好:允许。' : '动作描写偏好:不主动添加。',
22
23
  ].join('\n');
23
24
  }
@@ -29,34 +30,50 @@ export function renderConversationTurn(card, consecutiveUserMessages, autonomous
29
30
  autonomous ? '【本轮来源】系统自主活动,不是用户新消息;无需发送消息时可调用 partner_activity_finish 安静结束。' : '',
30
31
  !autonomous && consecutiveUserMessages > 1 ? `【本轮输入】对方连续发了 ${consecutiveUserMessages} 条消息,合并为本轮输入。` : '',
31
32
  card.exclusivePrompt ? '' : renderExpressionPreferences(card),
33
+ card.exclusivePrompt ? renderVoicePreference(card) : '',
34
+ card.exclusivePrompt ? renderStickerDeliveryPreference(card) : '',
32
35
  !card.exclusivePrompt && card.chatStyle?.trim() ? `【此伙伴的聊天偏好】\n${card.chatStyle.trim()}` : '',
33
36
  ].filter(Boolean).join('\n');
34
37
  }
35
38
  /** Stable transport settings, without selecting emotions, jokes, verbosity or sticker frequency. */
39
+ export function renderVoicePreference(card) {
40
+ return card?.length === 'short' && card.shortVoiceReplies === true
41
+ ? '【用户选择的语音偏好】先按人物与场景选择表达形式;这项偏好只决定口语用语音还是文字,不要求每次都说话或取代表情包。仅私聊短句优先语音,长句用文字。群聊不应用“尽量语音”偏好,默认文字,不因这项设置自行改用语音;群聊明确需要语音时仍可调用已授权语音能力。已选择用话表达且每条是半句到两句的简短口语时,尽量使用当前渠道已配置且已授权的语音工具,直接合成当前人物写好的台词;较长解释、链接、代码、清单和需要回看的内容用文字或附件,不为凑语音把长内容拆成许多语音条。partner_chat_say 和 partner_chat_reply 默认 delivery=auto,自动按此偏好使用当前渠道已选音色,无需先发文字再另找语音工具;不猜音色。当前明确要求文字、安静或需要回看的内容设 delivery=text;原文使用 preserveText。语音未配置或明确失败可改文字,发送结果未知则先核对,不能重复发送。messages 已分好的多条短句会依次发成独立语音,不拼成一条;仍想继续说时用 continueTurn:true 或 partner_chat_say。成功语音不再复述同义文字。任务前需要登记动作时仍先按任务工具约定处理,不绕过前置回执。'
42
+ : '';
43
+ }
44
+ /** Keep enabled media operations available in exclusive-persona mode, without prescribing a persona or frequency. */
45
+ export function renderStickerDeliveryPreference(card) {
46
+ return card?.enabled && card.stickersEnabled
47
+ ? '【图片表情投递】表情包已开启。先按当前人物与场景决定用话还是图片表情,短句语音偏好只转换已经选择说出口的话,不取代图片表达。无需等对方索要表情;是否使用仍由当前人物决定,不设每轮或每隔几轮必发。通过 partner_tools 的 activity 目录查询/调用 partner_stickers,list 取真实 ID,inspect 看图,partner_chat_reply 的 messages 用独立 {stickerId} 条目发送;可只发图,不必配同义文字或语音。关键词无结果可省略 query 浏览收藏,不能把没搜到当成库里没有。想用语音再配图时,先用 continueTurn:true 接话再发图,勿提前结束。'
48
+ : '';
49
+ }
36
50
  export function renderChatDeliveryGuidance(card) {
37
- if (!card?.enabled || (!card.segmentedReplies && !card.stickersEnabled))
51
+ if (!card?.enabled)
38
52
  return '';
53
+ if (!card.segmentedReplies && !card.stickersEnabled)
54
+ return renderVoicePreference(card);
39
55
  return [
40
- '【聊天投递】先按当前人物、对方明确要求和语境选择文字、图片表情或语音,再组织内容,不默认先写一段文字。对方明确想听语音或想看表情时,先核实并使用对应已开启能力;能力可用时不以文字解释代替实际发送,不因人物性格声称不能使用。已表达清楚就结束,不强制轮流使用或凑次数。选择文字或图片表情且分段回复或表情包开启时,聊天最终回复用 partner_chat_reply 发送并结束本轮,不用工具外普通最终文本代替;文字写入 messages 的 text 条目,图片表情写独立 stickerId 条目,不把配文留在工具外。想先说一句再继续时可用 partner_chat_say;中途文字或表情可用 partner_chat_reply continueTurn:true,确认送达后继续执行、不重复;已送达且无需补充时可用 partner_chat_reply messages:[] 结束。任务仍按任务回应流程执行。',
56
+ '【聊天投递】先按当前人物、对方明确要求和语境选择文字、图片表情或语音,再组织内容,不默认先写一段文字。对方明确想听语音或想看表情时,先核实并使用对应已开启能力;能力可用时不以文字解释代替实际发送,不因人物性格声称不能使用。已表达清楚就结束,不强制轮流使用或凑次数。选择文字或图片表情且分段回复或表情包开启时,聊天最终回复用 partner_chat_reply 发送并结束本轮,不用工具外普通最终文本代替;文字写入 messages 的 text 条目,图片表情写独立 stickerId 条目,不把配文留在工具外。partner_chat_say 与 partner_chat_reply 的 delivery 默认 auto,仅私聊开启短句优先语音时会自动发送合适的短句语音,群聊默认文字;明确需要文字时用 delivery=text,不先发同义文字。想先说一句再继续时可用 partner_chat_say;中途文字或表情可用 partner_chat_reply continueTurn:true,确认送达后继续执行、不重复;已送达且无需补充时可用 partner_chat_reply messages:[] 结束。任务仍按任务回应流程执行。',
41
57
  '语音与文字是并列的聊天方式:经 partner_tools 的 activity(自主活动)目录查询和调用 partner_voice_reply;status 查询当前渠道 TTS,speak 合成发送按人物写好的短台词;脚本已生成的音频用 send_file 和 path 直接发送,不需要选择 TTS 服务;成功后不再用文字复述。未配置外部 TTS 时可查询 partner_qq_reply 的原生语音。闲聊、随口反应或有声表达更贴切时可自行选择;路径、代码、需要回看的数据适合文字。不可用时如实简短说明,不捏造调用成功。',
58
+ renderVoicePreference(card),
42
59
  card.segmentedReplies
43
60
  ? '分段回复已开启:messages 的每个 text 条目是一条独立消息;换行不等于独立投递。' + (usesShortDeliveryPolicy(card) ? SEGMENTED_CHAT_GUIDANCE : '条数由内容决定,无最低条数要求。')
44
61
  : '分段回复未开启:文字只用一条,表情可独立一条。',
45
62
  card.stickersEnabled
46
- ? '表情包已开启:partner_stickers 通过 partner_tools 的 activity(自主活动)目录查询和调用,list 默认查图片表情包,省略 query 浏览收藏,inspect 预览;partner_chat_reply 使用查询返回的 stickerId 发送,每次最多两张。QQ 收藏管理通过 partner_qq 的 stickers 分类调用;收藏、备注、排序、删除与当前会话语音 partner_qq_reply 是公开聊天能力,仍受当前渠道开关和操作权限校验。收藏与发送是不同操作,文字承诺不代表执行成功。人格里的图片表情包偏好对应真实图片,颜文字和 QQ 小黄脸是另外的表达方式;按人格和当前场景选择;人物偏好图片表情时,把贴切的收藏图当作实际接话方式,而不只在自主活动里翻看。一个表情能表达时可只发图,不先写一段同义解释;查询失败或没合适的再用文字。'
63
+ ? renderStickerDeliveryPreference(card) + ' 每次最多两张;人物里的图片表情包偏好对应真实图片,不用颜文字或 QQ 小黄脸代替。收藏、备注、排序和删除通过 partner_qq 的 stickers 分类,属于公开聊天能力,仍受当前渠道开关和权限校验;收藏与发送是不同操作,承诺不算执行。'
47
64
  : '表情包未开启:不查找或提交表情。',
48
65
  '内部任务和心跳使用各自任务协议,不调用聊天终结工具。',
49
66
  ].join('\n');
50
67
  }
51
68
  /** The user-requested before/after workflow, independent of response style. */
52
69
  export function renderTaskConversationGuidance() {
53
- return '【任务回应流程】私聊执行工具任务前,用 partner_chat_say(beforeTools:true,expectedTools 为真实工具名)用 text 按当前人物说准备做的动作;需要根据资料另行生成时可用 expression.intent。确认送达后继续做事,不重复开场;新增工具通过 expectedTools 登记。执行中与结果可用 expression 引用本轮 sourceCalls 或 workReply 引用工作事实,让表达器只依据近期聊天和必要结果说话;不把执行分析当回复稿。直接成稿仍按当前人物。流程只规定操作与投递,不规定道歉、汇报或解释的语气。具体参数与交付方式按需查看工具说明。';
70
+ return '【任务回应流程】私聊执行工具任务前,用 partner_chat_say(beforeTools:true,expectedTools 为真实工具名)用 text 按当前人物说准备做的动作;直接写要对用户说的正文。确认送达后继续做事,不重复开场;新增工具通过 expectedTools 登记。调查和操作直接在当前会话执行,不为改口吻另开工作会话;执行中有需要可用 partner_chat_say 接话,完成后自己根据真实结果写 messages,沿用当前人格。流程只规定操作与投递,不规定道歉、汇报或解释的语气。具体参数与交付方式按需查看工具说明。';
54
71
  }
55
72
  /** Delivery policy, not a replacement persona. Explicit requests override defaults. */
56
73
  export function renderReplyRhythm(card) {
57
74
  return [
58
75
  '一轮可以有多个执行目标。过程中可用 partner_chat_say 接话,或 partner_chat_reply continueTurn:true 穿插文字、表情,随后继续执行;没有新话不必播报。',
59
- '长任务的过程、结论、未确认事项和依据用 partner_send_attachment 交付报告;workReport 可合并本轮多个 runId,name 按实际主题命名,例如“视频接口核验.md”;不要固定叫工作结果。其他长文可用 document。',
76
+ '需要保留的长任务过程、结论、未确认事项和依据用 partner_send_attachment 的 document 保存并交付,name 按实际主题命名;已有文件可直接交付,不为简短答复另造报告。',
60
77
  usesShortDeliveryPolicy(card) ? '短句已开启:日常聊天正文一轮最终提交最多 180 字,多个意思按自然停顿分别写进 messages;详细结果放报告,不截断、不为分段凑话。用户明确要展开或附件失败时可用 inlineDetails 正文交付。' : '',
61
78
  '报告确认送达后按当前人物与关系设定自然收尾,先回应用户最关心的结果,可补一个具体发现;正文不再重复报告提纲、验证过程和完整限制清单。会影响用户判断的失败、未完成或不确定性须简短说明,不能因有附件就藏起来;追问细节时再展开。已送达的同一结论无新内容不重发。所有开场和穿插也保持同一人格,不套用汇报话术。',
62
79
  ].filter(Boolean).join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-behavior.js","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-behavior.js","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { SessionEvent } from '@deepseek-ai/dsh-session';
2
+ import type { ChannelSession } from '../domain.js';
3
+ /** Bounded factual projection of native events, never a second transcript or a shared-route lastMessageAt. */
4
+ export declare function renderConversationTime(sessionId: string, events: readonly SessionEvent[], routes: readonly ChannelSession[], timeZone?: string, now?: number): string;
5
+ //# sourceMappingURL=conversation-time.d.ts.map