@lemoncat7/dsh-partner 2.23.26 → 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 (137) hide show
  1. package/README.md +6 -2
  2. package/docs/releases/2.23.27.md +7 -0
  3. package/docs/releases/2.23.28.md +11 -0
  4. package/docs/releases/2.23.29.md +10 -0
  5. package/docs/releases/2.23.30.md +10 -0
  6. package/docs/releases/2.23.31.md +11 -0
  7. package/docs/releases/2.23.32.md +11 -0
  8. package/docs/releases/2.23.33.md +11 -0
  9. package/docs/releases/2.23.34.md +9 -0
  10. package/docs/releases/2.23.35.md +3 -0
  11. package/docs/releases/2.23.36.md +11 -0
  12. package/docs/releases/2.23.37.md +3 -0
  13. package/docs/releases/2.23.38.md +8 -0
  14. package/docs/releases/2.23.39.md +5 -0
  15. package/docs/releases/2.23.40.md +5 -0
  16. package/docs/tool-entry-compatibility.md +2 -2
  17. package/lib/agent-runtime.d.ts.map +1 -1
  18. package/lib/agent-runtime.js +17 -10
  19. package/lib/agent-runtime.js.map +1 -1
  20. package/lib/api.d.ts.map +1 -1
  21. package/lib/api.js +22 -1
  22. package/lib/api.js.map +1 -1
  23. package/lib/channels/authored-progress.d.ts +2 -1
  24. package/lib/channels/authored-progress.d.ts.map +1 -1
  25. package/lib/channels/authored-progress.js +4 -2
  26. package/lib/channels/authored-progress.js.map +1 -1
  27. package/lib/channels/delivery-policy.js +4 -2
  28. package/lib/channels/delivery-policy.js.map +1 -1
  29. package/lib/channels/manager.js +2 -2
  30. package/lib/channels/manager.js.map +1 -1
  31. package/lib/channels/qq/authority.js +1 -1
  32. package/lib/channels/qq/authority.js.map +1 -1
  33. package/lib/channels/weixin/connect.d.ts.map +1 -1
  34. package/lib/character/affection-tool.d.ts +4 -0
  35. package/lib/character/affection-tool.d.ts.map +1 -0
  36. package/lib/character/affection-tool.js +61 -0
  37. package/lib/character/affection-tool.js.map +1 -0
  38. package/lib/character/affection.d.ts +41 -16
  39. package/lib/character/affection.d.ts.map +1 -1
  40. package/lib/character/affection.js +35 -20
  41. package/lib/character/affection.js.map +1 -1
  42. package/lib/character/conversation-behavior.d.ts.map +1 -1
  43. package/lib/character/conversation-behavior.js +4 -3
  44. package/lib/character/conversation-behavior.js.map +1 -1
  45. package/lib/character/idle-contact.d.ts +15 -3
  46. package/lib/character/idle-contact.d.ts.map +1 -1
  47. package/lib/character/idle-contact.js +42 -7
  48. package/lib/character/idle-contact.js.map +1 -1
  49. package/lib/chat/action-obligation.d.ts +17 -0
  50. package/lib/chat/action-obligation.d.ts.map +1 -0
  51. package/lib/chat/action-obligation.js +109 -0
  52. package/lib/chat/action-obligation.js.map +1 -0
  53. package/lib/chat/agreements.d.ts +21 -0
  54. package/lib/chat/agreements.d.ts.map +1 -0
  55. package/lib/chat/agreements.js +120 -0
  56. package/lib/chat/agreements.js.map +1 -0
  57. package/lib/chat/conversation.d.ts.map +1 -1
  58. package/lib/chat/conversation.js +2 -0
  59. package/lib/chat/conversation.js.map +1 -1
  60. package/lib/chat/live-speech.d.ts +18 -0
  61. package/lib/chat/live-speech.d.ts.map +1 -0
  62. package/lib/chat/live-speech.js +137 -0
  63. package/lib/chat/live-speech.js.map +1 -0
  64. package/lib/chat/protocol.d.ts +6 -0
  65. package/lib/chat/protocol.d.ts.map +1 -1
  66. package/lib/chat/reply-completion.d.ts +1 -1
  67. package/lib/chat/reply-completion.d.ts.map +1 -1
  68. package/lib/chat/reply-completion.js +16 -9
  69. package/lib/chat/reply-completion.js.map +1 -1
  70. package/lib/chat/reply-continuity.js +1 -1
  71. package/lib/chat/reply-continuity.js.map +1 -1
  72. package/lib/chat/short-expression.d.ts +6 -0
  73. package/lib/chat/short-expression.d.ts.map +1 -0
  74. package/lib/chat/short-expression.js +24 -0
  75. package/lib/chat/short-expression.js.map +1 -0
  76. package/lib/chat/tools.d.ts.map +1 -1
  77. package/lib/chat/tools.js +35 -16
  78. package/lib/chat/tools.js.map +1 -1
  79. package/lib/client-api.d.ts +1 -0
  80. package/lib/client-api.d.ts.map +1 -1
  81. package/lib/client-api.js.map +1 -1
  82. package/lib/client.js +1961 -1586
  83. package/lib/client.js.map +4 -4
  84. package/lib/collaboration/composition.d.ts.map +1 -1
  85. package/lib/collaboration/composition.js +2 -0
  86. package/lib/collaboration/composition.js.map +1 -1
  87. package/lib/collaboration/tool-discovery.d.ts +2 -1
  88. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  89. package/lib/collaboration/tool-discovery.js +29 -20
  90. package/lib/collaboration/tool-discovery.js.map +1 -1
  91. package/lib/companions/identity-tool.d.ts +1 -1
  92. package/lib/companions/identity-tool.d.ts.map +1 -1
  93. package/lib/companions/identity-tool.js +32 -6
  94. package/lib/companions/identity-tool.js.map +1 -1
  95. package/lib/companions/identity.d.ts.map +1 -1
  96. package/lib/companions/identity.js +10 -0
  97. package/lib/companions/identity.js.map +1 -1
  98. package/lib/companions/persona-refinement.d.ts +11 -0
  99. package/lib/companions/persona-refinement.d.ts.map +1 -0
  100. package/lib/companions/persona-refinement.js +49 -0
  101. package/lib/companions/persona-refinement.js.map +1 -0
  102. package/lib/domain.d.ts +2 -0
  103. package/lib/domain.d.ts.map +1 -1
  104. package/lib/domain.js.map +1 -1
  105. package/lib/execution/reply-progress.js +2 -2
  106. package/lib/execution/reply-progress.js.map +1 -1
  107. package/lib/execution/task-preamble.d.ts +5 -2
  108. package/lib/execution/task-preamble.d.ts.map +1 -1
  109. package/lib/execution/task-preamble.js +24 -5
  110. package/lib/execution/task-preamble.js.map +1 -1
  111. package/lib/execution/work-tool.js +1 -1
  112. package/lib/execution/work-tool.js.map +1 -1
  113. package/lib/index.d.ts.map +1 -1
  114. package/lib/index.js +2 -1
  115. package/lib/index.js.map +1 -1
  116. package/lib/store.d.ts.map +1 -1
  117. package/lib/store.js +11 -0
  118. package/lib/store.js.map +1 -1
  119. package/lib/ui/affection-panel.d.ts.map +1 -1
  120. package/lib/ui/affection-panel.js +1 -1
  121. package/lib/ui/affection-panel.js.map +1 -1
  122. package/lib/ui/capability-editor.js +1 -1
  123. package/lib/ui/capability-editor.js.map +1 -1
  124. package/lib/ui/character-editor.d.ts +1 -1
  125. package/lib/ui/character-editor.d.ts.map +1 -1
  126. package/lib/ui/character-editor.js +3 -2
  127. package/lib/ui/character-editor.js.map +1 -1
  128. package/lib/ui/companion-vitals.js +1 -1
  129. package/lib/ui/companion-vitals.js.map +1 -1
  130. package/lib/ui/identity-editor.d.ts.map +1 -1
  131. package/lib/ui/identity-editor.js +8 -1
  132. package/lib/ui/identity-editor.js.map +1 -1
  133. package/lib/ui/idle-contact-editor.d.ts.map +1 -1
  134. package/lib/ui/idle-contact-editor.js +1 -1
  135. package/lib/ui/idle-contact-editor.js.map +1 -1
  136. package/lib/ui/push-draft.d.ts +1 -1
  137. package/package.json +15 -1
@@ -0,0 +1,21 @@
1
+ import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
2
+ import type { PromptAssembly } from '@deepseek-ai/dsh-system-prompt';
3
+ import type { SessionEvent } from '@deepseek-ai/dsh-session';
4
+ import type { PartnerStore } from '../store.js';
5
+ import type { PartnerState } from '../domain.js';
6
+ export interface TemporaryAgreement {
7
+ id: string;
8
+ scope: string;
9
+ text: string;
10
+ until: string;
11
+ evidence: string;
12
+ sourceMessageId: string;
13
+ updatedAt: number;
14
+ }
15
+ export declare const AGREEMENT_GUIDANCE = "\u4E34\u65F6\u7EA6\u5B9A\u7528 partner_agreement \u7BA1\u7406\uFF1A\u7528\u6237\u660E\u786E\u63D0\u51FA\u5F53\u524D\u6D3B\u52A8\u671F\u95F4\u6301\u7EED\u751F\u6548\u7684\u8981\u6C42\u65F6\uFF0C\u5F15\u7528\u5176\u539F\u8BDD\u4FDD\u5B58\u7B80\u77ED\u7EA6\u5B9A\u53CA\u7ED3\u675F\u6761\u4EF6\uFF1B\u4E0D\u662F\u6BCF\u6761\u804A\u5929\u90FD\u8981\u8BB0\u5F55\uFF0C\u4E0D\u91CD\u590D\u4EBA\u683C\u6216\u957F\u671F\u8BB0\u5FC6\u3002\u5F53\u524D\u6709\u6548\u7EA6\u5B9A\u5728\u72EC\u7ACB\u56FA\u5B9A\u4E0A\u4E0B\u6587\u4E2D\u63D0\u4F9B\uFF0C\u4E0D\u56E0\u804A\u5929\u6EDA\u52A8\u6D88\u5931\u3002\u6309\u7EA6\u5B9A\u6301\u7EED\u6267\u884C\uFF1B\u5355\u4E2A\u6B65\u9AA4\u6210\u529F\u4E0D\u7B49\u4E8E\u6574\u573A\u6D3B\u52A8\u7ED3\u675F\u3002\u5B8C\u6210\u3001\u53D6\u6D88\u6216\u88AB\u66FF\u4EE3\u65F6\u53CA\u65F6\u5220\u9664/\u66F4\u65B0\uFF0C\u4E0D\u7B49\u5F85\u95F2\u65F6\u6D3B\u52A8\u3002\u7EF4\u62A4\u7EA6\u5B9A\u662F\u5185\u90E8\u8BB0\u5F55\uFF0C\u4E0D\u5FC5\u5411\u7528\u6237\u64AD\u62A5\u3002\u7EA6\u5B9A\u4E0D\u589E\u52A0\u5DE5\u5177\u6743\u9650\uFF0C\u4E0D\u81EA\u52A8\u6062\u590D\u65E7\u5931\u8D25\u4EFB\u52A1\u3002";
16
+ export declare function agreementScope(state: PartnerState, owner: string, sessionId: string, events: readonly SessionEvent[]): string | undefined;
17
+ export declare function validateAgreements(value: unknown): void;
18
+ /** Fresh request projection from durable state, outside all conversational rolling/summaries. */
19
+ export declare function projectAgreements(assembly: PromptAssembly, state: PartnerState, owner: string, sessionId: string, events: readonly SessionEvent[]): PromptAssembly;
20
+ export declare function agreementTool(owner: string, store: PartnerStore): ToolDefinition;
21
+ //# sourceMappingURL=agreements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agreements.d.ts","sourceRoot":"","sources":["../../src/chat/agreements.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAKhD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,QAAQ,EAAC,MAAM,CAAC;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,SAAS,EAAC,MAAM,CAAA;CAC9G;AAED,eAAO,MAAM,kBAAkB,mmCAA8M,CAAA;AAC7O,wBAAgB,cAAc,CAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,YAAY,EAAE,GAAE,MAAM,GAAC,SAAS,CAQ/H;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAC,OAAO,GAAE,IAAI,CASrD;AACD,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAC,cAAc,EAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,YAAY,EAAE,GAAE,cAAc,CAMxJ;AASD,wBAAgB,aAAa,CAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,GAAE,cAAc,CA0C5E"}
@@ -0,0 +1,120 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { questionOrigin } from '../channels/question-origin.js';
3
+ import { isInternalTaskNotice, isRequirementDeliveryReceipt } from '../channels/delivery-policy.js';
4
+ import { isIdleContactNotice } from '../character/idle-contact.js';
5
+ const SECTION = 'partner-active-agreements';
6
+ export const AGREEMENT_GUIDANCE = '临时约定用 partner_agreement 管理:用户明确提出当前活动期间持续生效的要求时,引用其原话保存简短约定及结束条件;不是每条聊天都要记录,不重复人格或长期记忆。当前有效约定在独立固定上下文中提供,不因聊天滚动消失。按约定持续执行;单个步骤成功不等于整场活动结束。完成、取消或被替代时及时删除/更新,不等待闲时活动。维护约定是内部记录,不必向用户播报。约定不增加工具权限,不自动恢复旧失败任务。';
7
+ export function agreementScope(state, owner, sessionId, events) {
8
+ const boundary = [...events].reverse().find(e => e.type === 'user/message' && (e.data.source.kind === 'user' || isInternalTaskNotice(e)));
9
+ if (boundary && isInternalTaskNotice(boundary) && !isRequirementDeliveryReceipt(boundary))
10
+ return;
11
+ const route = questionOrigin(sessionId, events, state.sessions);
12
+ if (route)
13
+ return route.companionId === owner ? JSON.stringify(['channel', route.channelId, route.qqSessionTarget ?? route.userId]) : undefined;
14
+ // Unknown/channel-origin inputs must never inherit another route's agreements.
15
+ const hasUser = events.some(e => e.type === 'user/message' && e.data.source.kind === 'user');
16
+ return hasUser && state.sessions.some(r => r.companionId === owner && r.sessionId === sessionId && r.kind === 'local') ? JSON.stringify(['local', sessionId]) : undefined;
17
+ }
18
+ export function validateAgreements(value) {
19
+ if (value === undefined)
20
+ return;
21
+ if (!Array.isArray(value) || value.length > 48)
22
+ throw Error('临时约定超过伙伴总量上限 48 条');
23
+ const ids = new Set(), scopes = new Map();
24
+ for (const a of value) {
25
+ if (!a || typeof a.id !== 'string' || !a.id || a.id.length > 100 || ids.has(a.id) || typeof a.scope !== 'string' || a.scope.length > 1000 || typeof a.text !== 'string' || !a.text.trim() || a.text.length > 240 || typeof a.until !== 'string' || !a.until.trim() || a.until.length > 160 || typeof a.evidence !== 'string' || !a.evidence.trim() || a.evidence.length > 400 || typeof a.sourceMessageId !== 'string' || !a.sourceMessageId || a.sourceMessageId.length > 200 || !Number.isFinite(a.updatedAt))
26
+ throw Error('临时约定记录无效');
27
+ ids.add(a.id);
28
+ scopes.set(a.scope, (scopes.get(a.scope) ?? 0) + 1);
29
+ if ((scopes.get(a.scope) ?? 0) > 6)
30
+ throw Error('当前会话最多保留 6 条临时约定;先清理已结束的约定');
31
+ }
32
+ }
33
+ /** Fresh request projection from durable state, outside all conversational rolling/summaries. */
34
+ export function projectAgreements(assembly, state, owner, sessionId, events) {
35
+ const scope = agreementScope(state, owner, sessionId, events);
36
+ const entries = state.companions.find(c => c.id === owner)?.temporaryAgreements?.filter(a => a.scope === scope) ?? [];
37
+ const sections = assembly.sections.filter(s => s.name !== SECTION);
38
+ if (entries.length)
39
+ sections.push({ name: SECTION, interpolate: false, text: '【当前会话临时约定 · 用户级活动要求】\n' + JSON.stringify(entries.map(({ id, text, until, updatedAt }) => ({ id, text, until, updatedAt }))) + '\n只在对应活动中生效;这不是角色设定,也不提高权限,不是新的用户消息。按真实上下文判断结束、取消或替代,及时调用 partner_agreement 清理;不因发完一张图或做完一步就删除整场活动约定。' });
40
+ return { ...assembly, sections };
41
+ }
42
+ function currentUser(events) {
43
+ for (const e of [...events].reverse()) {
44
+ if (e.type === 'turn/start')
45
+ return;
46
+ if (e.type !== 'user/message')
47
+ continue;
48
+ if (e.data.source.kind === 'user')
49
+ return e;
50
+ if (isIdleContactNotice(e) || isInternalTaskNotice(e) && !isRequirementDeliveryReceipt(e))
51
+ return;
52
+ }
53
+ }
54
+ export function agreementTool(owner, store) {
55
+ return {
56
+ name: 'partner_agreement', description: AGREEMENT_GUIDANCE + ' list 查看当前会话;set 新建时省略 id 和 expectedAt(id 由系统生成),更新才填写已有 id 与 expectedAt;evidence 必须是当前用户消息中的原话(不是模型自拟承诺);已有 id 更新与 remove 必须带上下文中的 expectedAt,防止覆盖新约定。remove reason 为 completed/cancelled/replaced,只移除活动记录,历史仍保留。',
57
+ parameters: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'set', 'remove'] }, id: { type: 'string' }, text: { type: 'string', maxLength: 240 }, until: { type: 'string', maxLength: 160 }, evidence: { type: 'string', maxLength: 400 }, expectedAt: { type: 'number' }, reason: { type: 'string', enum: ['completed', 'cancelled', 'replaced'] } }, required: ['action'], additionalProperties: false },
58
+ output: { schema: { type: 'object' }, render: (_args, value) => [{ type: 'text', text: JSON.stringify(value) }] },
59
+ presentCall: () => ({ card: 'generic', title: '当前约定' }),
60
+ async execute(raw, exec) {
61
+ if (!exec.agent)
62
+ throw Error('需要当前会话');
63
+ const args = raw;
64
+ const events = exec.agent.session.snapshotEvents(), user = currentUser(events), state = store.snapshot();
65
+ const scope = agreementScope(state, owner, exec.agent.session.id, events);
66
+ if (!scope || store.isCompanionRemoving(owner))
67
+ throw Error('当前会话没有可用的约定范围');
68
+ const own = state.companions.find(c => c.id === owner);
69
+ if (!own)
70
+ throw Error('伙伴不存在');
71
+ if (args.action === 'list')
72
+ return { agreements: (own.temporaryAgreements ?? []).filter(a => a.scope === scope) };
73
+ if (!user)
74
+ throw Error('只能依据当前用户交流维护约定,内部任务和自主活动不能增删');
75
+ if (!['set', 'remove'].includes(args.action))
76
+ throw Error('未知约定操作');
77
+ if (args.action === 'remove' && !['completed', 'cancelled', 'replaced'].includes(args.reason ?? ''))
78
+ throw Error('移除需注明完成、取消或替代');
79
+ if (args.action === 'set') {
80
+ if (!args.text?.trim() || !args.until?.trim() || !args.evidence?.trim() || args.evidence.trim().length < 2)
81
+ throw Error('约定需要内容、结束条件和用户原话依据');
82
+ const text = user.data.content.filter(b => b.type === 'text').map(b => b.text).join('\n');
83
+ const normalize = (s) => s.replace(/\s+/g, '');
84
+ if (!normalize(text).includes(normalize(args.evidence)))
85
+ throw Error('原话依据不在当前用户消息中;不要把自己说的话存成用户约定');
86
+ }
87
+ let result;
88
+ await store.update(draft => {
89
+ exec.signal.throwIfAborted();
90
+ if (currentUser(exec.agent.session.snapshotEvents())?.data.id !== user.data.id || agreementScope(draft, owner, exec.agent.session.id, exec.agent.session.snapshotEvents()) !== scope)
91
+ throw Error('当前输入或会话范围已变化,请重新读取');
92
+ const c = draft.companions.find(c => c.id === owner);
93
+ if (!c)
94
+ throw Error('伙伴不存在');
95
+ const all = c.temporaryAgreements ?? [], existing = args.id ? all.find(a => a.id === args.id && a.scope === scope) : undefined;
96
+ if (args.id && (!existing || existing.updatedAt !== args.expectedAt))
97
+ throw Error('约定已变化或不属于当前会话,请重新读取');
98
+ if (args.action === 'remove') {
99
+ if (!existing)
100
+ throw Error('移除需要当前约定 id 与 expectedAt');
101
+ c.temporaryAgreements = all.filter(a => a.id !== existing.id);
102
+ result = { removed: existing.id, reason: args.reason };
103
+ return;
104
+ }
105
+ const identical = all.find(a => a.scope === scope && a.text === args.text.trim() && a.until === args.until.trim());
106
+ if (!args.id && identical) {
107
+ result = { agreement: identical };
108
+ return;
109
+ }
110
+ const entry = { id: existing?.id ?? randomUUID(), scope, text: args.text.trim(), until: args.until.trim(), evidence: args.evidence.trim(), sourceMessageId: user.data.id, updatedAt: Math.max(Date.now(), (existing?.updatedAt ?? 0) + 1) };
111
+ const next = [...all.filter(a => a.id !== entry.id), entry];
112
+ validateAgreements(next);
113
+ c.temporaryAgreements = next;
114
+ result = { agreement: entry };
115
+ });
116
+ return result;
117
+ },
118
+ };
119
+ }
120
+ //# sourceMappingURL=agreements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agreements.js","sourceRoot":"","sources":["../../src/chat/agreements.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/chat/conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAChG,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAElE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,qBAAiE,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,CAAC,CAI1J;AACD,eAAO,MAAM,mBAAmB,EAAC,0BAA0B,CAAC,SAAS,CAYpE,CAAA;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAC,OAAO,GAAE,IAAI,CAWpD"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/chat/conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAChG,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAElE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,qBAAiE,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,CAAC,CAK1J;AACD,eAAO,MAAM,mBAAmB,EAAC,0BAA0B,CAAC,SAAS,CAYpE,CAAA;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAC,OAAO,GAAE,IAAI,CAWpD"}
@@ -3,6 +3,8 @@ import { chatReplyFromEvent } from './protocol.js';
3
3
  * This is a view only: no synthetic assistant messages or history rewrites.
4
4
  */
5
5
  export function nativeChatBlocks(reply, base = typeof document === 'undefined' ? undefined : document.baseURI) {
6
+ if (reply.deliveryKind === 'text' && reply.delivered)
7
+ return reply.spokenText ? [{ kind: 'text', text: reply.spokenText }] : [];
6
8
  if (reply.delivered === true && !reply.parts.length)
7
9
  return [{ kind: 'text', text: '[语音已发送]' + (typeof reply.spokenText === 'string' ? ' ' + reply.spokenText : '') }];
8
10
  return reply.parts.map(part => ({ kind: 'text', text: part.type === 'text' ? part.text
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/chat/conversation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/chat/conversation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Agent } from '@deepseek-ai/dsh-agent';
2
+ import type { SessionEvent } from '@deepseek-ai/dsh-session';
3
+ /** Successful speech after the latest input permits an explicit, silent end. */
4
+ export declare function hasCurrentSpeech(events: readonly SessionEvent[]): boolean;
5
+ /** Per active channel turn. Serial sends, sticky unknown failures, no background continuation. */
6
+ export declare class LiveSpeech {
7
+ private events;
8
+ private send;
9
+ private active;
10
+ private pending;
11
+ private failed;
12
+ private count;
13
+ private sent;
14
+ constructor(events: () => readonly SessionEvent[], send: (text: string) => Promise<void>, active: () => boolean);
15
+ say(raw: string, signal: AbortSignal, expanded?: boolean, task?: boolean): Promise<void>;
16
+ }
17
+ export declare function installLiveSpeech(agent: Agent, send: (text: string) => Promise<void>, route: () => string | undefined, chatEnabled?: () => boolean, short?: () => boolean): () => void;
18
+ //# sourceMappingURL=live-speech.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-speech.d.ts","sourceRoot":"","sources":["../../src/chat/live-speech.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAc5D,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAC,SAAS,YAAY,EAAE,GAAE,OAAO,CAOvE;AAOD,kGAAkG;AAClG,qBAAa,UAAU;IAKT,OAAO,CAAC,MAAM;IAA6B,OAAO,CAAC,IAAI;IAA8B,OAAO,CAAC,MAAM;IAJ/G,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAE;IACf,OAAO,CAAC,IAAI,CAAgC;gBACxB,MAAM,EAAC,MAAI,SAAS,YAAY,EAAE,EAAS,IAAI,EAAC,CAAC,IAAI,EAAC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,EAAS,MAAM,EAAC,MAAI,OAAO;IAC3H,GAAG,CAAC,GAAG,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,UAAM,EAAC,IAAI,UAAM,GAAE,OAAO,CAAC,IAAI,CAAC;CAkB3E;AACD,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC,IAAI,EAAC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,MAAI,MAAM,GAAC,SAAS,EAAC,WAAW,GAAC,MAAI,OAAgB,EAAC,KAAK,GAAC,MAAI,OAAgB,GAAE,MAAI,IAAI,CA+C/K"}
@@ -0,0 +1,137 @@
1
+ import { checkShortExpression } from './short-expression.js';
2
+ import { hasTaskPreamble } from '../execution/task-preamble.js';
3
+ import { isIdleContactNotice } from '../character/idle-contact.js';
4
+ import { isInternalTaskNotice, isRequirementDeliveryReceipt } from '../channels/delivery-policy.js';
5
+ import { assertChatImageDelivery } from './attachment-reference.js';
6
+ import { chatReplyFromEvent } from './protocol.js';
7
+ function currentInput(events) {
8
+ for (const e of [...events].reverse()) {
9
+ if (e.type === 'turn/start')
10
+ return;
11
+ if (e.type !== 'user/message')
12
+ continue;
13
+ if (e.data.source.kind === 'user')
14
+ return e.data.id;
15
+ if (isIdleContactNotice(e) || isInternalTaskNotice(e) && !isRequirementDeliveryReceipt(e))
16
+ return;
17
+ }
18
+ }
19
+ /** Successful speech after the latest input permits an explicit, silent end. */
20
+ export function hasCurrentSpeech(events) {
21
+ for (const e of [...events].reverse()) {
22
+ if (e.type === 'turn/start' || e.type === 'user/message' && (e.data.source.kind === 'user' || isIdleContactNotice(e) || isInternalTaskNotice(e) && !isRequirementDeliveryReceipt(e)))
23
+ return false;
24
+ const reply = chatReplyFromEvent(e);
25
+ if (reply?.intermediate && reply.delivered && reply.inputMessageId === currentInput(events))
26
+ return !reply.taskPreamble;
27
+ }
28
+ return false;
29
+ }
30
+ function validateSpeechText(raw, expanded) {
31
+ if (typeof raw !== 'string' || !raw.trim() || raw.length > (expanded ? 1200 : 180) || !expanded && /[\r\n]/.test(raw))
32
+ throw Error('这里只发送一条简短的聊天消息(最多 180 字,不换行);详细内容使用最终回复或附件');
33
+ assertChatImageDelivery(raw.trim());
34
+ }
35
+ /** Per active channel turn. Serial sends, sticky unknown failures, no background continuation. */
36
+ export class LiveSpeech {
37
+ events;
38
+ send;
39
+ active;
40
+ pending = Promise.resolve();
41
+ failed = false;
42
+ count = 0;
43
+ sent = new Map();
44
+ constructor(events, send, active) {
45
+ this.events = events;
46
+ this.send = send;
47
+ this.active = active;
48
+ }
49
+ say(raw, signal, expanded = false, task = false) {
50
+ const input = currentInput(this.events());
51
+ if (!input || !this.active())
52
+ return Promise.reject(Error('只能在当前用户聊天中接话;不能用于闲时活动或内部任务'));
53
+ try {
54
+ validateSpeechText(raw, expanded);
55
+ }
56
+ catch (error) {
57
+ return Promise.reject(error);
58
+ }
59
+ const text = raw.trim();
60
+ const key = input + '\0' + text, previous = this.sent.get(key);
61
+ if (previous)
62
+ return previous;
63
+ if (this.count >= (task ? 7 : 6))
64
+ return Promise.reject(Error('本轮中途接话已达上限,请用 partner_chat_reply 结束,不继续自说自话'));
65
+ this.count++;
66
+ const job = this.pending.then(async () => {
67
+ signal.throwIfAborted();
68
+ if (this.failed || !this.active() || currentInput(this.events()) !== input)
69
+ throw Error('输入或发送状态已变化,旧接话未发送;先处理新消息,不重试未知发送');
70
+ await this.send(text);
71
+ });
72
+ this.sent.set(key, job);
73
+ this.pending = job.catch(() => { this.failed = true; });
74
+ return job;
75
+ }
76
+ }
77
+ export function installLiveSpeech(agent, send, route, chatEnabled = () => true, short = () => true) {
78
+ const speech = new LiveSpeech(() => agent.session.snapshotEvents(), send, () => !!route());
79
+ const taskSends = new Map();
80
+ return agent.ctx.tools.register({
81
+ name: 'partner_chat_say',
82
+ description: '当前私聊统一说话入口:立即发送 text,确认送达后继续本轮。每一句都直接按当前角色、关系和聊天节奏写,不展示思考过程,不切换成客服、主持人或任务播报。普通接话省略 beforeTools;实际执行工具或长任务前,用同一入口、beforeTools:true,按人格简短说准备做什么,并用 expectedTools 列出本轮承诺实际调用的具体工具名(必须是当前已注册的真实名称,未知时先查目录,不能猜别名或填目录入口 partner_tools);生图并发送应列实际选择的生图入口(image_gen.imagegen 或 generate_image)及 partner_send_attachment。角色扮演中的叙事动作不需要伪造工具任务;只登记真实外部操作,不为叙事动作额外委派工作。成功后再工作;这句话就是前置回应,不再另外重复。同轮后续新增真实动作时,再用 beforeTools:true 与 expectedTools 登记;程序保留新增动作而不重复发前置回应,普通补话仍可单独发送。尚未执行用将要做的语气,不虚构完成或无权限。自然想补一句、改口或工作后有新话时可再次调用,不强制连发,不把长解释分批倾倒。收到新消息先接新消息。说完用 partner_chat_reply 结束,最终文字也保持同一人物声音;当前输入后已有普通接话送达且没有新话可 messages:[],仅有任务前告知不能代替完成答复。',
83
+ parameters: { type: 'object', properties: { expectedTools: { type: 'array', minItems: 1, maxItems: 8, uniqueItems: true, items: { type: 'string', maxLength: 100, pattern: '^[a-zA-Z0-9_.:-]+$' }, description: 'beforeTools=true 时必填。承诺本轮实际执行的具体工具名,含必要交付;目录查询不算执行。普通接话不填。' }, text: { type: 'string', minLength: 1, maxLength: 1200 }, beforeTools: { type: 'boolean', description: '这句话是在告知即将实际执行的动作时设为 true;普通闲聊不设置。必须等本次发送成功再执行任务。' }, inlineDetails: { type: 'boolean', description: '仅用户明确要求详细内容、原文或完整任务计划时使用;普通接话不借此展开长文。' } }, required: ['text'], additionalProperties: false },
84
+ output: { schema: { type: 'object' }, render: (_args, value) => [{ type: 'text', text: value.actionsAdded ? '新增动作已登记,没有重复发送前置回应;继续执行新增动作,已经完成的操作不要重做。' : value.alreadyAnnounced ? '动作已告知,本次没有重复发送;继续执行任务。' : '这句话已发送。继续按同一人物口吻接话或执行已告知的操作;完成后用 partner_chat_reply 结束,不重复已说内容。仅任务前告知不能代替任务最终答复。' }], presentationMeta: (_args, value) => value },
85
+ presentCall: () => ({ card: 'generic', title: '接话' }),
86
+ async execute(raw, exec) {
87
+ const originRouteId = route();
88
+ if (!originRouteId)
89
+ throw Error('当前聊天目标已失效');
90
+ const inputMessageId = currentInput(agent.session.snapshotEvents());
91
+ const { text, beforeTools, inlineDetails, expectedTools } = raw;
92
+ exec.signal.throwIfAborted();
93
+ if (!beforeTools && !chatEnabled())
94
+ throw Error('连续接话未开启;任务动作告知使用 beforeTools:true,普通内容用最终回复');
95
+ if (beforeTools && (!Array.isArray(expectedTools) || !expectedTools.length || expectedTools.length > 8 || expectedTools.some(n => typeof n !== 'string' || n.length > 100 || !/^[a-zA-Z0-9_.:-]+$/.test(n) || ['partner_tools', 'partner_chat_say', 'partner_chat_reply', 'partner_chat_progress'].includes(n))))
96
+ throw Error('动作告知尚未发送:beforeTools=true 时用 expectedTools 列出准备实际调用的具体工具名;生图并发送填实际生图工具名和 partner_send_attachment,不填 partner_tools。');
97
+ if (beforeTools && inputMessageId) {
98
+ // Validate exact registered names before speaking or recording obligations. No guessed aliases.
99
+ const unknown = expectedTools.filter(name => !agent.ctx.tools.get(name, agent));
100
+ if (unknown.length)
101
+ throw Error('动作告知尚未发送或登记:工具名未在当前上下文注册:' + unknown.join('、') + '。先通过 partner_tools list/describe 核实具体名称,再重新告知;不要猜测别名,也不要把本检查发给用户。');
102
+ const previous = taskSends.get(inputMessageId);
103
+ if (previous)
104
+ await previous.job;
105
+ exec.signal.throwIfAborted();
106
+ if (currentInput(agent.session.snapshotEvents()) !== inputMessageId || route() !== originRouteId)
107
+ throw Error('当前输入或渠道已变化,旧动作未登记');
108
+ const known = new Set(taskSends.get(inputMessageId)?.names ?? []);
109
+ for (const event of agent.session.snapshotEvents()) {
110
+ const receipt = chatReplyFromEvent(event);
111
+ if (receipt?.delivered && receipt.taskPreamble && receipt.inputMessageId === inputMessageId)
112
+ for (const name of receipt.expectedTools ?? [])
113
+ known.add(name);
114
+ }
115
+ const added = [...new Set(expectedTools)].filter(name => !known.has(name));
116
+ if (!added.length)
117
+ return { alreadyAnnounced: true };
118
+ if (previous || hasTaskPreamble(agent.session.snapshotEvents())) {
119
+ taskSends.set(inputMessageId, { names: new Set([...known, ...added]), job: Promise.resolve() });
120
+ return { kind: 'partner-chat-v1', parts: [], delivered: true, deliveryKind: 'text', intermediate: true, taskPreamble: true, expectedTools: added, inputMessageId, originRouteId, alreadyAnnounced: true, actionsAdded: true };
121
+ }
122
+ checkShortExpression(agent, agent.session.snapshotEvents(), [text], 'speech', short(), inlineDetails === true);
123
+ // Local validation has no delivery side effect; do not cache its rejection as a send.
124
+ validateSpeechText(text, !short() || inlineDetails === true);
125
+ const job = speech.say(text, exec.signal, !short() || inlineDetails === true, true);
126
+ taskSends.set(inputMessageId, { names: new Set(added), job });
127
+ await job;
128
+ }
129
+ else {
130
+ checkShortExpression(agent, agent.session.snapshotEvents(), [text], 'speech', short(), inlineDetails === true);
131
+ await speech.say(text, exec.signal, inlineDetails === true);
132
+ }
133
+ return { kind: 'partner-chat-v1', parts: [], delivered: true, deliveryKind: 'text', intermediate: true, ...(beforeTools ? { taskPreamble: true, expectedTools: [...expectedTools] } : {}), inputMessageId, spokenText: text.trim(), originRouteId };
134
+ },
135
+ });
136
+ }
137
+ //# sourceMappingURL=live-speech.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-speech.js","sourceRoot":"","sources":["../../src/chat/live-speech.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface ChatReply {
17
17
  kind: 'partner-chat-v1';
18
18
  parts: ChatPart[];
19
19
  silent?: boolean;
20
+ intermediate?: boolean;
21
+ taskPreamble?: boolean;
22
+ expectedTools?: string[];
23
+ taskDisposition?: 'blocked';
24
+ inputMessageId?: string;
25
+ deliveryKind?: 'text';
20
26
  delivered?: boolean;
21
27
  spokenText?: string;
22
28
  originRouteId?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/chat/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAC,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpF,MAAM,MAAM,QAAQ,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,KAAK,EAAC,WAAW,CAAA;CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAC/K,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,MAAM,CAAC,EAAC,OAAO,CAAC;IAAC,SAAS,CAAC,EAAC,OAAO,CAAC;IAAC,UAAU,CAAC,EAAC,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACjK,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAO7E;AACD,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,UAAU,EAAC,yBAAyB,CAAA;CAAC,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,KAAK,EAAC,WAAW,CAAA;CAAC,CAAC,CAGjL;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAkBtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAsB9L;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAKxF;AASD,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAM9I"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/chat/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,WAAW,EAAC,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpF,MAAM,MAAM,QAAQ,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,KAAK,EAAC,WAAW,CAAA;CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAC/K,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,MAAM,CAAC,EAAC,OAAO,CAAC;IAAC,YAAY,CAAC,EAAC,OAAO,CAAC;IAAC,YAAY,CAAC,EAAC,OAAO,CAAC;IAAC,aAAa,CAAC,EAAC,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAC,SAAS,CAAC;IAAC,cAAc,CAAC,EAAC,MAAM,CAAC;IAAC,YAAY,CAAC,EAAC,MAAM,CAAC;IAAC,SAAS,CAAC,EAAC,OAAO,CAAC;IAAC,UAAU,CAAC,EAAC,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAClT,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAO7E;AACD,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,UAAU,EAAC,yBAAyB,CAAA;CAAC,GAAG;IAAC,IAAI,EAAC,OAAO,CAAC;IAAA,KAAK,EAAC,WAAW,CAAA;CAAC,CAAC,CAGjL;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAkBtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAsB9L;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAKxF;AASD,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;IAAC,IAAI,EAAC,MAAM,CAAA;CAAC,GAAG;IAAC,SAAS,EAAC,MAAM,CAAA;CAAC,CAAC,CAM9I"}
@@ -8,7 +8,7 @@ export interface ReplyCompletionState {
8
8
  }
9
9
  /** Evidence for the latest user input in this turn, never a semantic guess from prose. */
10
10
  export declare function replyCompletionState(events: readonly SessionEvent[], inspectOnly?: boolean): ReplyCompletionState | undefined;
11
- export declare const INCOMPLETE_REPLY = "\u672C\u6B21\u8BF7\u6C42\u672A\u5B8C\u6210\uFF1A\u6A21\u578B\u8FDE\u7EED\u8FD4\u56DE\u7A7A\u7B54\u590D\u3002\u5DF2\u6267\u884C\u7684\u64CD\u4F5C\u4E0D\u4F1A\u81EA\u52A8\u91CD\u505A\uFF0C\u8BF7\u67E5\u770B\u672C\u6B21\u6267\u884C\u8BB0\u5F55\u540E\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002";
11
+ export declare const INCOMPLETE_REPLY = "\u672C\u6B21\u8BF7\u6C42\u672A\u5B8C\u6210\uFF1A\u6A21\u578B\u8FDE\u7EED\u672A\u5B8C\u6210\u7B54\u590D\u6216\u5DF2\u544A\u77E5\u7684\u52A8\u4F5C\u3002\u5DF2\u6267\u884C\u7684\u64CD\u4F5C\u4E0D\u4F1A\u81EA\u52A8\u91CD\u505A\uFF0C\u8BF7\u67E5\u770B\u672C\u6B21\u6267\u884C\u8BB0\u5F55\u540E\u518D\u51B3\u5B9A\u662F\u5426\u91CD\u8BD5\u3002";
12
12
  /** Same-turn recovery with a bounded request budget and a settlement-only tool gate. */
13
13
  export declare class ReplyCompletionGuard {
14
14
  private readonly agent;
@@ -1 +1 @@
1
- {"version":3,"file":"reply-completion.d.ts","sourceRoot":"","sources":["../../src/chat/reply-completion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAiB5D,MAAM,WAAW,oBAAoB;IAAG,MAAM,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,UAAU,GAAC,SAAS,GAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,EAAE,CAAC;IAAC,UAAU,EAAC,MAAM,EAAE,CAAA;CAAE;AACjI,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,MAAM,EAAC,SAAS,YAAY,EAAE,EAAE,WAAW,UAAM,GAAE,oBAAoB,GAAC,SAAS,CA4BrH;AACD,eAAO,MAAM,gBAAgB,2SAAoD,CAAA;AACjF,wFAAwF;AACxF,qBAAa,oBAAoB;IAKnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAO,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJhE,OAAO,CAAC,MAAM,CAAG;IACjB,OAAO,CAAC,QAAQ,CAAE;IAClB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,MAAM,UAAM;gBACiB,KAAK,EAAC,KAAK,EAAkB,MAAM,EAAC,MAAI,OAAO;IAC5E,IAAI,GAAE,mBAAe;QAAC,KAAK,EAAC,KAAK,CAAC;QAAA,MAAM,EAAC,WAAW,CAAA;KAAC,KAAE,IAAI,CAU1D;IACD,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,GAAE,MAAM,GAAC,SAAS;CAWhD"}
1
+ {"version":3,"file":"reply-completion.d.ts","sourceRoot":"","sources":["../../src/chat/reply-completion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAkB5D,MAAM,WAAW,oBAAoB;IAAG,MAAM,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,UAAU,GAAC,SAAS,GAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,EAAE,CAAC;IAAC,UAAU,EAAC,MAAM,EAAE,CAAA;CAAE;AACjI,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,MAAM,EAAC,SAAS,YAAY,EAAE,EAAE,WAAW,UAAM,GAAE,oBAAoB,GAAC,SAAS,CA6BrH;AACD,eAAO,MAAM,gBAAgB,qVAA2D,CAAA;AACxF,wFAAwF;AACxF,qBAAa,oBAAoB;IAKnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAO,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJhE,OAAO,CAAC,MAAM,CAAG;IACjB,OAAO,CAAC,QAAQ,CAAE;IAClB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,MAAM,UAAM;gBACiB,KAAK,EAAC,KAAK,EAAkB,MAAM,EAAC,MAAI,OAAO;IAC5E,IAAI,GAAE,mBAAe;QAAC,KAAK,EAAC,KAAK,CAAC;QAAA,MAAM,EAAC,WAAW,CAAA;KAAC,KAAE,IAAI,CAW1D;IACD,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,GAAE,MAAM,GAAC,SAAS;CAahD"}
@@ -1,3 +1,4 @@
1
+ import { pendingActions, pendingActionNotice } from './action-obligation.js';
1
2
  import { deliveredAttachment } from '../attachments/delivery-receipt.js';
2
3
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
3
4
  import { chatReplyFromEvent } from './protocol.js';
@@ -19,8 +20,9 @@ function call(name, args) {
19
20
  return { name, args: input };
20
21
  }
21
22
  function discovery(name, args) {
22
- return name === 'partner_tools' && ['list', 'describe'].includes(args.action);
23
+ return name === 'partner_tools' && ['list', 'describe', 'load', 'unload'].includes(args.action);
23
24
  }
25
+ const replyControl = new Set(['partner_chat_progress', 'partner_chat_say', 'partner_chat_reply', 'partner_agreement', 'partner_channel_access', 'partner_stickers']);
24
26
  /** Evidence for the latest user input in this turn, never a semantic guess from prose. */
25
27
  export function replyCompletionState(events, inspectOnly = false) {
26
28
  const boundary = [...events].reverse().find(e => e.type === 'turn/start');
@@ -33,17 +35,18 @@ export function replyCompletionState(events, inspectOnly = false) {
33
35
  const tail = turn.slice(turn.indexOf(origin) + 1);
34
36
  const state = { userId: origin.data.id, phase: 'execute', files: [], deliveries: [] };
35
37
  const last = [...tail].reverse().find(e => e.type === 'assistant/message');
36
- if (tail.some(e => chatReplyFromEvent(e) || deliveredAttachment(e)) || last?.type === 'assistant/message' && !last.data.interrupted && !last.data.message.content.some(b => b.type === 'tool-call') && last.data.message.content.some(b => b.type === 'text' && b.text.trim()))
38
+ const pending = pendingActions(events);
39
+ if (!pending.length && (tail.some(e => (chatReplyFromEvent(e) && !chatReplyFromEvent(e).intermediate) || deliveredAttachment(e)) || last?.type === 'assistant/message' && !last.data.interrupted && !last.data.message.content.some(b => b.type === 'tool-call') && last.data.message.content.some(b => b.type === 'text' && b.text.trim())))
37
40
  return { ...state, phase: 'complete' };
38
- // Interrupted/non-final content and unmatched calls are not an empty model stop.
39
- if (!inspectOnly && (last?.type !== 'assistant/message' || last.data.interrupted || last.data.message.content.some(b => b.type !== 'text')))
41
+ // Reasoning blocks are not user-visible answers. Interrupted/tool/media content is not an empty text stop.
42
+ if (!inspectOnly && (last?.type !== 'assistant/message' || last.data.interrupted || last.data.message.content.some(b => b.type !== 'text' && b.type !== 'reasoning')))
40
43
  return;
41
44
  const calls = new Map();
42
45
  for (const e of tail)
43
46
  if (e.type === 'tool/call') {
44
47
  const c = call(e.data.name, e.data.arguments);
45
48
  calls.set(e.data.callId, c);
46
- if (c.name !== 'partner_chat_progress' && !discovery(c.name, c.args))
49
+ if (!replyControl.has(c.name) && !discovery(c.name, c.args))
47
50
  state.phase = 'settle';
48
51
  }
49
52
  for (const e of tail) {
@@ -64,7 +67,7 @@ export function replyCompletionState(events, inspectOnly = false) {
64
67
  }
65
68
  return state;
66
69
  }
67
- export const INCOMPLETE_REPLY = '本次请求未完成:模型连续返回空答复。已执行的操作不会自动重做,请查看本次执行记录后再决定是否重试。';
70
+ export const INCOMPLETE_REPLY = '本次请求未完成:模型连续未完成答复或已告知的动作。已执行的操作不会自动重做,请查看本次执行记录后再决定是否重试。';
68
71
  /** Same-turn recovery with a bounded request budget and a settlement-only tool gate. */
69
72
  export class ReplyCompletionGuard {
70
73
  agent;
@@ -93,9 +96,10 @@ export class ReplyCompletionGuard {
93
96
  throw Error(INCOMPLETE_REPLY);
94
97
  }
95
98
  this.attempts++;
99
+ const pending = pendingActions(agent.session.snapshotEvents());
96
100
  this.settling = state.phase === 'settle' ? state : undefined;
97
- const action = state.phase === 'execute' ? '还没有实际工作提交。继续处理当前用户请求,工具目录与参数说明不等于执行;需要工作就实际调用,不能执行就按事实答复。' : '已提交过实际工作。只根据现有工具回执交付或答复,不重新执行或猜测成功。成功生成的文件可通过附件工具交付;发送失败只能按原 deliveryId 重试。其他失败或状态不明请按事实简短说明。';
98
- agent.steer(createUserMessage({ source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '当前请求答复完整性检查' }, content: [{ type: 'text', text: `当前请求尚无最终答复或已确认交付,不能以空正文结束。${action} 已送达的前置回应不要重复,答复沿用当前人格。此恢复留在当前用户回合,不交给自主活动。` }] }));
101
+ const action = pending.length ? '仅继续尚未调用的承诺动作,已调用的操作不得重做;若已有失败或无法继续,按事实结束。' : state.phase === 'execute' ? '还没有实际工作提交。继续处理当前用户请求,工具目录与参数说明不等于执行;需要工作就实际调用,不能执行就按事实答复。' : '已提交过实际工作。只根据现有工具回执交付或答复,不重新执行或猜测成功。成功生成的文件可通过附件工具交付;发送失败只能按原 deliveryId 重试。其他失败或状态不明请按事实简短说明。';
102
+ agent.steer(createUserMessage({ source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '当前请求答复完整性检查' }, content: [{ type: 'text', text: `${pending.length ? pendingActionNotice(pending) : ''} 当前请求尚无最终答复或已确认交付,不能以空正文结束。${action} 已送达的前置回应不要重复。以上仅是内部执行检查,不是对用户的回复稿;不要向用户复述回执、空答复、恢复或工具目录等内部流程。需要答复时沿用当前人格,只说实际结果或具体阻碍,不用空泛道歉代替尚可执行的工作。此恢复留在当前用户回合,不交给自主活动。` }] }));
99
103
  };
100
104
  deny(name, args) {
101
105
  if (!this.settling || !this.active())
@@ -106,7 +110,10 @@ export class ReplyCompletionGuard {
106
110
  if (user?.type !== 'user/message' || user.data.id !== this.userId)
107
111
  return;
108
112
  const c = call(name, args);
109
- if (discovery(c.name, c.args) || c.name === 'partner_chat_reply')
113
+ const missing = pendingActions(this.agent.session.snapshotEvents());
114
+ if (missing.includes(c.name) && c.name !== 'partner_tools')
115
+ return;
116
+ if (discovery(c.name, c.args) || c.name === 'partner_chat_reply' || c.name === 'partner_chat_say' && c.args.beforeTools !== true)
110
117
  return;
111
118
  if (c.name === 'partner_send_attachment' && ((typeof c.args.path === 'string' && [...this.settling.files, ...(current?.files ?? [])].includes(c.args.path)) || (typeof c.args.deliveryId === 'string' && [...this.settling.deliveries, ...(current?.deliveries ?? [])].includes(c.args.deliveryId))))
112
119
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"reply-completion.js","sourceRoot":"","sources":["../../src/chat/reply-completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reply-completion.js","sourceRoot":"","sources":["../../src/chat/reply-completion.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,6 @@ export function renderReplyContinuity(sessionId, events, sessions) {
92
92
  const context = replyContinuity(sessionId, events, sessions);
93
93
  if (!context.historicalSleep.length && !context.confirmedMessages.length)
94
94
  return '';
95
- return '【近期交流依据 · 程序记录】\n' + JSON.stringify({ historicalSleep: context.historicalSleep, confirmedMessages: context.confirmedMessages }) + '\nhistoricalSleep 是当时的状态,不代替当前状态;confirmedMessages 是已确认送达的前置消息或语音。没有依据时不补写原因。';
95
+ return '【近期交流依据 · 程序记录】\n' + JSON.stringify({ historicalSleep: context.historicalSleep, confirmedMessages: context.confirmedMessages }) + '\nhistoricalSleep 是当时的状态,不代替当前状态;confirmedMessages 是已确认送达的接话、前置消息或语音。没有依据时不补写原因。';
96
96
  }
97
97
  //# sourceMappingURL=reply-continuity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reply-continuity.js","sourceRoot":"","sources":["../../src/chat/reply-continuity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reply-continuity.js","sourceRoot":"","sources":["../../src/chat/reply-continuity.ts"],"names":[],"mappings":"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"}