@lemoncat7/dsh-partner 1.0.0 → 1.1.6

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.
package/README.md CHANGED
@@ -15,14 +15,19 @@
15
15
  - 私聊首次联系配对审批
16
16
  - `微信机器人 + 联系人` 独立 Session 路由
17
17
  - DSH Agent 完整回复后回发微信,并保留 iLink `context_token`
18
+ - 微信图片与文档双向收发:图片进入 DSH 原生附件上下文,文档安全保存到伙伴独立工作目录
19
+ - 伙伴可把工作目录内生成的图片、PDF、Office 文档及常用文本文件回发微信
20
+ - DSH 运行中发起选择题或自由提问时同步到微信;联系人回复序号、选项文字或自定义答案后,原 Agent 继续执行
21
+ - 微信在伙伴忙碌时遵循 DSH 全局 `ui-conversation.busyEnter`:`steer` 插入当前轮,`queue` 排入下一轮
18
22
  - 按伙伴和微信联系人双重隔离的完整对话归档、每日回顾与结构化长期记忆
19
- - 对话和心跳前按话题召回画像、偏好、任务、事件、关系与短期情绪信号
20
- - 可配置的低打扰心跳:静默时段、检查间隔、每日上限、失败退避和手动检查
21
- - 心跳只有在模型判断存在实际价值时才发送;`NO_ACTION` 不触发微信通知
23
+ - 对话前按话题召回画像、偏好、任务、事件、关系与短期情绪信号
24
+ - 心跳上下文只注入当前 Agent 作用域的真实工具目录,不注入近期回顾、长期任务、偏好、情绪或其他记忆
25
+ - 心跳会在有限预算内从关注变化、学习新知和整理现状中发现并核实最多三条线索;只有产生可靠且有实际价值的信息才通过渠道通知
26
+ - 可配置静默时段、检查间隔、每日通知上限、失败退避和手动检查
22
27
  - 修改伙伴身份或能力时清理该伙伴的渠道 Session,防止新旧人格串联
23
28
  - Windows、macOS、Linux 兼容的原子状态写入
24
29
 
25
- 心跳默认关闭,升级后不会突然主动发送消息。图片、文件、群聊策略和多渠道适配尚未开放。收到媒体消息时第一版只提供安全的占位说明,不会假装已经读取附件。
30
+ 心跳默认关闭,升级后不会突然主动发送消息。群聊策略和多渠道适配尚未开放。
26
31
 
27
32
  ## 安装
28
33
 
@@ -61,17 +66,20 @@ dsh plugin --profile web add ./lemoncat7-dsh-partner-1.0.0.tgz
61
66
  3. 后台通过 `/ilink/bot/getupdates` 长轮询接收消息。
62
67
  4. 未授权联系人只会创建配对请求。
63
68
  5. 批准后,为该联系人创建或恢复独立 DSH Agent。
64
- 6. Agent 使用伙伴身份和所选 Preset 运行,最终文本通过 `/ilink/bot/sendmessage` 返回微信。
69
+ 6. 收到图片时,插件通过微信 CDN 下载并解密媒体,保存到伙伴工作目录,同时作为 DSH 原生图片附件交给 Agent;文档保存后以安全路径交给 Agent。
70
+ 7. Agent 使用伙伴身份和所选 Preset 运行,最终文本通过 `/ilink/bot/sendmessage` 返回微信;回复中明确引用的工作目录文件会加密上传并作为微信附件发送。
65
71
 
66
72
  渠道身份只决定消息归属,不授予任何工具权限。SSH、知识库和未来 Git 插件仍执行各自的挂载、授权和审批规则。
67
73
 
68
74
  ## 数据与安全
69
75
 
70
76
  - 普通状态:`statePath` 指向的 JSON 文件。
71
- - 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/scopes/`,按联系人隔离保存每日完整对话归档、每日回顾和结构化长期记忆;相关记忆会在对话与心跳前按需召回,默认永久保留。
77
+ - 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/`,按联系人隔离保存每日完整对话归档、每日回顾和结构化长期记忆;相关记忆会在对话与心跳前按需召回,默认永久保留。
72
78
  - 敏感凭据:DSH Credential Store,scope 为 `dsh-partner-weixin`。
73
79
  - 管理 API:默认 `/partner-local/v1`,仅接受同源请求;写操作还要求 `X-DSH-Partner-Request: 1`。
74
80
  - 微信机器人只能绑定一个伙伴;联系人上下文不会跨机器人、伙伴或其他联系人共享。
81
+ - 入站附件上限为 64 MB,保存在 `<伙伴 cwd>/inbound/`,目录权限为 `0700`、文件权限为 `0600`。
82
+ - 出站附件最多 8 个,只允许伙伴工作目录内的真实文件;会解析真实路径并拒绝符号链接越界、未知格式和超限文件。
75
83
 
76
84
  ## 开发
77
85
 
@@ -4,15 +4,18 @@ import type { AgentPresets } from '@deepseek-ai/dsh-agent-presets';
4
4
  import type { SessionId } from '@deepseek-ai/dsh-session';
5
5
  import type { Session, SessionEvent } from '@deepseek-ai/dsh-session';
6
6
  import type { WorkspaceRegistry } from '@deepseek-ai/dsh-workspace';
7
+ import type { ToolRuntime } from '@deepseek-ai/dsh-tools';
7
8
  import type { Companion, ChannelSession } from './domain.js';
8
9
  import { PartnerStore } from './store.js';
9
10
  import type { PartnerMemoryStore } from './memory-store.js';
10
11
  import type { MemoryReflectionService } from './memory-reflection.js';
12
+ import type { PartnerInboundMessage, PartnerOutboundAttachment, PartnerReply } from './channel-message.js';
11
13
  type RuntimeContext = Context & {
12
14
  agents: Context['agents'];
13
15
  agentDefaultModel: AgentDefaultModelConfig;
14
16
  agentPresets: AgentPresets;
15
17
  workspaceRegistry: WorkspaceRegistry;
18
+ tools: ToolRuntime;
16
19
  };
17
20
  export declare class PartnerAgentRuntime {
18
21
  private readonly ctx;
@@ -22,13 +25,18 @@ export declare class PartnerAgentRuntime {
22
25
  private readonly reflection?;
23
26
  private readonly handles;
24
27
  private readonly queues;
28
+ private readonly heartbeatQueues;
29
+ private readonly steeringQueues;
25
30
  private readonly workspaces;
26
31
  constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined);
27
- reply(companion: Companion, channelId: string, userId: string, text: string): Promise<string>;
32
+ reply(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<PartnerReply>;
33
+ steer(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<boolean>;
34
+ private deliverSteering;
28
35
  prepareSession(routeId: string): Promise<ChannelSession>;
29
36
  isArchived(route: ChannelSession): boolean;
30
37
  renewSession(routeId: string): Promise<ChannelSession>;
31
38
  heartbeat(companion: Companion, route: ChannelSession): Promise<string | undefined>;
39
+ private runHeartbeatWhenIdle;
32
40
  observeSessionEvent(session: Session, event: SessionEvent): Promise<void>;
33
41
  private driveHeartbeat;
34
42
  resetCompanion(companionId: string): Promise<void>;
@@ -37,10 +45,12 @@ export declare class PartnerAgentRuntime {
37
45
  resetChannel(channelId: string): Promise<void>;
38
46
  close(): Promise<void>;
39
47
  private drive;
48
+ private persistInbound;
40
49
  private ensureSession;
41
50
  private ensureAgent;
42
51
  private attachSession;
43
52
  }
53
+ export declare function extractOutboundAttachments(text: string, cwd: string): Promise<PartnerOutboundAttachment[]>;
44
54
  export declare function completedTurnEvents(events: readonly SessionEvent[], end: Extract<SessionEvent, {
45
55
  type: 'turn/end';
46
56
  }>): readonly SessionEvent[];
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { mkdir } from 'node:fs/promises';
3
- import { join } from 'node:path';
2
+ import { mkdir, realpath, stat, writeFile } from 'node:fs/promises';
3
+ import { basename, extname, join, relative, resolve } from 'node:path';
4
4
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
5
+ import { heartbeatMessage, heartbeatPrompt, renderHeartbeatContext } from './autonomy.js';
6
+ import { PARTNER_MEDIA_MAX_BYTES, safeMediaName } from './channel-message.js';
7
+ const HEARTBEAT_TIMEOUT_MS = 120_000;
5
8
  export class PartnerAgentRuntime {
6
9
  ctx;
7
10
  store;
@@ -10,6 +13,8 @@ export class PartnerAgentRuntime {
10
13
  reflection;
11
14
  handles = new Map();
12
15
  queues = new Map();
16
+ heartbeatQueues = new Map();
17
+ steeringQueues = new Map();
13
18
  workspaces = new Map();
14
19
  constructor(ctx, store, defaultCwd, memory, reflection) {
15
20
  this.ctx = ctx;
@@ -18,11 +23,11 @@ export class PartnerAgentRuntime {
18
23
  this.memory = memory;
19
24
  this.reflection = reflection;
20
25
  }
21
- async reply(companion, channelId, userId, text) {
26
+ async reply(companion, channelId, userId, message) {
22
27
  const key = `${channelId}:${userId}`;
23
28
  const previous = this.queues.get(key) ?? Promise.resolve();
24
- let output = '';
25
- const current = previous.catch(() => { }).then(async () => { output = await this.drive(companion, channelId, userId, text); });
29
+ let output = { text: '', attachments: [] };
30
+ const current = previous.catch(() => { }).then(async () => { output = await this.drive(companion, channelId, userId, message); });
26
31
  this.queues.set(key, current);
27
32
  try {
28
33
  await current;
@@ -33,6 +38,38 @@ export class PartnerAgentRuntime {
33
38
  this.queues.delete(key);
34
39
  }
35
40
  }
41
+ async steer(companion, channelId, userId, message) {
42
+ const key = `${channelId}:${userId}`;
43
+ const previous = this.steeringQueues.get(key) ?? Promise.resolve();
44
+ let accepted = false;
45
+ const current = previous.catch(() => { }).then(async () => { accepted = await this.deliverSteering(companion, channelId, userId, message); });
46
+ this.steeringQueues.set(key, current);
47
+ try {
48
+ await current;
49
+ return accepted;
50
+ }
51
+ finally {
52
+ if (this.steeringQueues.get(key) === current)
53
+ this.steeringQueues.delete(key);
54
+ }
55
+ }
56
+ async deliverSteering(companion, channelId, userId, message) {
57
+ const route = this.store.snapshot().sessions.find(item => item.channelId === channelId && item.userId === userId && item.companionId === companion.id);
58
+ if (route === undefined)
59
+ return false;
60
+ const agent = this.handles.get(route.sessionId)?.agent ?? this.ctx.agents.get(route.sessionId);
61
+ if (agent === undefined || agent.status !== 'running')
62
+ return false;
63
+ const inbound = await this.persistInbound(route, message);
64
+ const recalled = await this.memory?.recall(companion.id, memoryScope(channelId, userId), inbound.query, 12).catch(() => []);
65
+ if (recalled && recalled.length > 0)
66
+ agent.inject(createUserMessage({
67
+ content: [{ type: 'text', text: renderMemory(recalled) }],
68
+ source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴为插话召回了相关长期记忆' },
69
+ }));
70
+ agent.steer(createUserMessage({ content: inbound.content, source: { kind: 'user' } }));
71
+ return true;
72
+ }
36
73
  async prepareSession(routeId) {
37
74
  const route = this.store.snapshot().sessions.find(item => item.id === routeId);
38
75
  if (route === undefined)
@@ -60,17 +97,30 @@ export class PartnerAgentRuntime {
60
97
  }
61
98
  async heartbeat(companion, route) {
62
99
  const key = `${route.channelId}:${route.userId}`;
63
- const previous = this.queues.get(key) ?? Promise.resolve();
64
- let output;
65
- const current = previous.catch(() => { }).then(async () => { output = await this.driveHeartbeat(companion, route); });
66
- this.queues.set(key, current);
100
+ const queued = this.heartbeatQueues.get(key);
101
+ if (queued !== undefined)
102
+ return queued;
103
+ const current = this.runHeartbeatWhenIdle(key, companion, route);
104
+ this.heartbeatQueues.set(key, current);
67
105
  try {
68
- await current;
69
- return output;
106
+ return await current;
70
107
  }
71
108
  finally {
72
- if (this.queues.get(key) === current)
73
- this.queues.delete(key);
109
+ if (this.heartbeatQueues.get(key) === current)
110
+ this.heartbeatQueues.delete(key);
111
+ }
112
+ }
113
+ async runHeartbeatWhenIdle(key, companion, route) {
114
+ for (;;) {
115
+ await this.queues.get(key)?.catch(() => { });
116
+ const agent = await this.ensureAgent(companion, route);
117
+ if (agent.status !== 'idle')
118
+ await agent.whenIdle();
119
+ const stableSeq = agent.session.seq;
120
+ await delay(2_000);
121
+ if (this.queues.has(key) || agent.status !== 'idle' || agent.session.seq !== stableSeq)
122
+ continue;
123
+ return this.driveHeartbeat(agent);
74
124
  }
75
125
  }
76
126
  async observeSessionEvent(session, event) {
@@ -99,32 +149,32 @@ export class PartnerAgentRuntime {
99
149
  target.lastMessageAt = Date.now();
100
150
  });
101
151
  }
102
- async driveHeartbeat(companion, route) {
103
- const agent = await this.ensureAgent(companion, route);
104
- if (agent.status !== 'idle')
105
- return undefined;
106
- const recalled = await this.memory?.recall(companion.id, memoryScope(route.channelId, route.userId), '未完成任务 承诺 跟进 风险 提醒', 16).catch(() => []);
107
- if (recalled && recalled.length > 0)
108
- agent.inject(createUserMessage({
109
- content: [{ type: 'text', text: renderMemory(recalled) }],
110
- source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '心跳召回相关长期记忆' },
111
- }));
152
+ async driveHeartbeat(agent) {
153
+ const tools = this.ctx.tools.schemas(agent);
154
+ agent.inject(createUserMessage({
155
+ content: [{ type: 'text', text: renderHeartbeatContext({ tools }) }],
156
+ source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: `心跳已注入 ${tools.length} 项可用工具` },
157
+ }));
112
158
  const startSeq = agent.session.seq;
113
159
  agent.followup(createUserMessage({
114
- content: [{ type: 'text', text: [
115
- '执行一次伙伴心跳检查。结合当前会话、召回的结构化记忆、每日回顾和可用工具,判断现在是否确实有一条值得主动告诉用户的信息。',
116
- '检查范围:用户明确交代但尚未完成的事项、承诺过的后续跟进、临近风险,以及通过当前已挂载知识库或工具获得的真正有用的新发现。',
117
- '所有主动报告必须能从当前会话、该联系人的结构化记忆、每日回顾或工具结果中找到依据;不得为了活跃而寒暄,不得虚构进展,不得重复近期提醒。',
118
- '如果没有必要通知,只回复:NO_ACTION',
119
- '如果需要通知,只输出准备发送给用户的简短中文消息,不要解释这是心跳。',
120
- ].join('\n') }],
160
+ content: [{ type: 'text', text: heartbeatPrompt() }],
121
161
  source: { kind: 'plugin', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: '伙伴正在进行低打扰心跳检查' },
122
162
  }));
123
- await agent.whenIdle();
124
- const response = extractAssistantText(agent, startSeq).trim();
125
- if (!response || /^NO_ACTION[。.!!]?$/i.test(response))
126
- return undefined;
127
- return response;
163
+ let timedOut = false;
164
+ const timeout = setTimeout(() => {
165
+ timedOut = true;
166
+ agent.cancel({ kind: 'hook', reason: 'dsh-partner heartbeat exceeded its two-minute budget' }, { keepInbox: true });
167
+ }, HEARTBEAT_TIMEOUT_MS);
168
+ timeout.unref?.();
169
+ try {
170
+ await agent.whenIdle();
171
+ }
172
+ finally {
173
+ clearTimeout(timeout);
174
+ }
175
+ if (timedOut)
176
+ throw new Error('伙伴心跳超过两分钟,已安全终止');
177
+ return heartbeatMessage(extractAssistantText(agent, startSeq));
128
178
  }
129
179
  async resetCompanion(companionId) {
130
180
  await this.releaseCompanion(companionId);
@@ -153,13 +203,16 @@ export class PartnerAgentRuntime {
153
203
  async close() {
154
204
  await Promise.all([...this.handles.values()].map(handle => handle.dispose().catch(() => { })));
155
205
  this.handles.clear();
206
+ this.heartbeatQueues.clear();
207
+ this.steeringQueues.clear();
156
208
  }
157
- async drive(companion, channelId, userId, text) {
209
+ async drive(companion, channelId, userId, message) {
158
210
  const session = await this.ensureSession(companion, channelId, userId);
159
211
  const agent = await this.ensureAgent(companion, session);
160
212
  if (agent.status !== 'idle')
161
213
  await agent.whenIdle();
162
- const recalled = await this.memory?.recall(companion.id, memoryScope(channelId, userId), text, 12).catch(() => []);
214
+ const inbound = await this.persistInbound(session, message);
215
+ const recalled = await this.memory?.recall(companion.id, memoryScope(channelId, userId), inbound.query, 12).catch(() => []);
163
216
  if (recalled && recalled.length > 0)
164
217
  agent.inject(createUserMessage({
165
218
  content: [{ type: 'text', text: renderMemory(recalled) }],
@@ -167,7 +220,7 @@ export class PartnerAgentRuntime {
167
220
  }));
168
221
  const startSeq = agent.session.seq;
169
222
  agent.followup(createUserMessage({
170
- content: [{ type: 'text', text }],
223
+ content: inbound.content,
171
224
  source: { kind: 'user' },
172
225
  }));
173
226
  await agent.whenIdle();
@@ -179,7 +232,33 @@ export class PartnerAgentRuntime {
179
232
  });
180
233
  if (!response)
181
234
  throw new Error('伙伴没有生成可发送的文本回复');
182
- return response;
235
+ return { text: response, attachments: await extractOutboundAttachments(response, session.cwd ?? this.defaultCwd) };
236
+ }
237
+ async persistInbound(session, message) {
238
+ const cwd = session.cwd ?? this.defaultCwd;
239
+ const directory = join(cwd, 'inbound');
240
+ await mkdir(directory, { recursive: true, mode: 0o700 });
241
+ const content = [];
242
+ const notes = [];
243
+ for (const attachment of message.attachments) {
244
+ if (attachment.data.byteLength > PARTNER_MEDIA_MAX_BYTES)
245
+ throw new Error('微信附件超过 64 MB 限制');
246
+ const name = `${Date.now()}-${randomUUID().slice(0, 8)}-${safeMediaName(attachment.name)}`;
247
+ const path = join(directory, name);
248
+ await writeFile(path, attachment.data, { flag: 'wx', mode: 0o600 });
249
+ notes.push(`微信${attachment.kind === 'image' ? '图片' : '文档'}已保存:${path}`);
250
+ if (attachment.kind === 'image') {
251
+ const mediaType = attachment.mediaType;
252
+ const ref = await this.ctx.attachments.saveImage({ data: attachment.data, mediaType, name: attachment.name });
253
+ content.push({ type: 'image', attachment: ref });
254
+ }
255
+ }
256
+ const visibleText = [message.text.trim(), ...notes].filter(Boolean).join('\n\n');
257
+ if (visibleText)
258
+ content.unshift({ type: 'text', text: visibleText });
259
+ if (content.length === 0)
260
+ content.push({ type: 'text', text: '[微信附件消息]' });
261
+ return { content, query: [message.text, ...message.attachments.map(item => item.name)].filter(Boolean).join(' ') };
183
262
  }
184
263
  async ensureSession(companion, channelId, userId) {
185
264
  const existing = this.store.snapshot().sessions.find(item => item.channelId === channelId && item.userId === userId);
@@ -271,6 +350,65 @@ export class PartnerAgentRuntime {
271
350
  await (await workspace).attachSession(route.sessionId);
272
351
  }
273
352
  }
353
+ function delay(milliseconds) {
354
+ return new Promise(resolve => setTimeout(resolve, milliseconds));
355
+ }
356
+ export async function extractOutboundAttachments(text, cwd) {
357
+ const candidates = new Set();
358
+ for (const match of text.matchAll(/\[[^\]]*\]\((?:<)?(file:\/\/)?([^)>]+)(?:>)?\)/g)) {
359
+ const value = decodeURIComponent(match[2] ?? '').trim();
360
+ if (value)
361
+ candidates.add(value);
362
+ }
363
+ for (const match of text.matchAll(/`([^`\n]+)`/g)) {
364
+ const value = match[1]?.trim();
365
+ if (value && mediaTypeFor(value))
366
+ candidates.add(value);
367
+ }
368
+ for (const line of text.split('\n').map(item => item.trim())) {
369
+ const value = line.replace(/^`|`$/g, '');
370
+ if (value.startsWith('/') && !value.includes(' '))
371
+ candidates.add(value);
372
+ }
373
+ const root = await realpath(cwd);
374
+ const result = [];
375
+ const included = new Set();
376
+ for (const candidate of candidates) {
377
+ if (result.length >= 8)
378
+ break;
379
+ const target = resolve(root, candidate);
380
+ let actual;
381
+ try {
382
+ actual = await realpath(target);
383
+ }
384
+ catch {
385
+ continue;
386
+ }
387
+ if (included.has(actual))
388
+ continue;
389
+ const rel = relative(root, actual);
390
+ if (rel.startsWith('..') || rel === '..' || resolve(root, rel) !== actual)
391
+ continue;
392
+ const info = await stat(actual);
393
+ if (!info.isFile() || info.size > PARTNER_MEDIA_MAX_BYTES)
394
+ continue;
395
+ const mediaType = mediaTypeFor(actual);
396
+ if (!mediaType)
397
+ continue;
398
+ included.add(actual);
399
+ result.push({ path: actual, name: basename(actual), mediaType, kind: mediaType.startsWith('image/') ? 'image' : 'file' });
400
+ }
401
+ return result;
402
+ }
403
+ function mediaTypeFor(path) {
404
+ return {
405
+ '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.gif': 'image/gif', '.webp': 'image/webp',
406
+ '.pdf': 'application/pdf', '.doc': 'application/msword', '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
407
+ '.xls': 'application/vnd.ms-excel', '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
408
+ '.ppt': 'application/vnd.ms-powerpoint', '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
409
+ '.txt': 'text/plain', '.md': 'text/markdown', '.csv': 'text/csv', '.json': 'application/json', '.zip': 'application/zip',
410
+ }[extname(path).toLowerCase()];
411
+ }
274
412
  export function completedTurnEvents(events, end) {
275
413
  let startSeq;
276
414
  for (let index = events.length - 1; index >= 0; index -= 1) {
@@ -332,6 +470,7 @@ export function renderToolProtocol() {
332
470
  '`run_code` 的程序只返回完成当前任务所需的精简结果。需要顺序依赖时逐个 `await`,互不依赖的只读调用才可并行。',
333
471
  '若工具结果提示 “only `run_code` is callable directly”,说明路由方式错误;立即在同一轮改用 `run_code` 重试。只有规范重试也失败时,才向用户说明真正的失败原因。',
334
472
  '若当前请求原生暴露了目标工具,则可以直接调用该原生工具;不要臆造未出现在顶层清单或生成 SDK 中的工具。',
473
+ '需要把生成的图片或文档交给用户时,最终回复必须用 Markdown 链接明确引用伙伴工作目录中的文件,例如 `[下载文件](/绝对路径/文件.pdf)`;不要只说“文件在这里”。渠道会在确认真实路径位于伙伴工作目录后发送附件。',
335
474
  ].join('\n');
336
475
  }
337
476
  function extractAssistantText(agent, fromSeq) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ToolSchema } from '@deepseek-ai/dsh-llm';
2
+ export interface HeartbeatContext {
3
+ tools: ToolSchema[];
4
+ }
5
+ export declare function renderHeartbeatContext(context: HeartbeatContext): string;
6
+ export declare function heartbeatPrompt(): string;
7
+ export declare function heartbeatMessage(raw: string): string | undefined;
8
+ //# sourceMappingURL=autonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomy.d.ts","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAExE;AAED,wBAAgB,eAAe,IAAI,MAAM,CAWxC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhE"}
@@ -0,0 +1,32 @@
1
+ export function renderHeartbeatContext(context) {
2
+ return renderTools(context.tools);
3
+ }
4
+ export function heartbeatPrompt() {
5
+ return [
6
+ '执行一次伙伴主动巡察。不要等待固定任务,主动找一件现在值得做的小事,并根据结果判断是否需要通知用户。',
7
+ '把本轮当作一次有边界的小型巡察:先用发现工具广泛寻找候选线索,再从中选择最多三条真正有价值的方向继续检索或核实。方向可以来自关注变化、学习新知和整理现状,不必固定只做一类,也不要为了凑数机械跑满三类。',
8
+ '工具调用应按调查需要连续展开,不限制为一次。通常先发现、再检索、必要时继续读取或交叉核实;总计最多调用六次工具,并在大约两分钟内收束。除非首次发现已经明确没有任何可查线索,否则不得只调用一次工具就结束。',
9
+ '必须实际调用只读发现或检索工具后再作出判断,不允许未经检查直接回复 NO_ACTION。优先从当前挂载知识库开始;知识库没有合适线索时,再使用网页搜索、状态查询或其他只读工具。',
10
+ '巡察只允许发现、读取、核实和分析,不得创建、修改、删除内容,不得执行具有副作用的命令或操作。',
11
+ '只有工具结果中出现可靠、实际有用且值得打扰用户的信息时才主动报告;不得为了活跃而寒暄,不得虚构进展,不得把普通搜索结果包装成重要发现。',
12
+ '如果没有必要通知,只回复:NO_ACTION',
13
+ '如果需要通知,只输出准备发送给用户的简短中文消息,不要解释这是心跳,也不要输出 JSON、决策过程或内部控制字段。',
14
+ ].join('\n');
15
+ }
16
+ export function heartbeatMessage(raw) {
17
+ const text = raw.trim();
18
+ return !text || /^NO_ACTION[。.!!]?$/i.test(text) ? undefined : text;
19
+ }
20
+ function renderTools(tools) {
21
+ if (tools.length === 0)
22
+ return '本轮没有可用工具。不要声称已经查询、读取或核实外部状态。';
23
+ return [
24
+ '以下是系统按当前伙伴 Agent 作用域解析出的真实可用工具。工具能力已随本轮上下文明确注入;只能使用这里列出的名称,并继续遵守系统中的 native / run_code 调用协议。',
25
+ ...tools.map(tool => `- ${tool.name}:${compact(tool.description, 240) || '无补充说明'}`),
26
+ ].join('\n');
27
+ }
28
+ function compact(value, max) {
29
+ const text = value.replace(/\s+/g, ' ').trim();
30
+ return text.length <= max ? text : `${text.slice(0, max - 1)}…`;
31
+ }
32
+ //# sourceMappingURL=autonomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,oDAAoD;QACpD,sGAAsG;QACtG,uGAAuG;QACvG,0FAA0F;QAC1F,gDAAgD;QAChD,qEAAqE;QACrE,wBAAwB;QACxB,2DAA2D;KAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACvB,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,KAAmB;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAA;IAC7D,OAAO;QACL,8FAA8F;QAC9F,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;KACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;AACjE,CAAC"}
@@ -0,0 +1,23 @@
1
+ export declare const PARTNER_MEDIA_MAX_BYTES: number;
2
+ export interface PartnerInboundAttachment {
3
+ kind: 'image' | 'file';
4
+ data: Uint8Array;
5
+ name: string;
6
+ mediaType?: string;
7
+ }
8
+ export interface PartnerInboundMessage {
9
+ text: string;
10
+ attachments: PartnerInboundAttachment[];
11
+ }
12
+ export interface PartnerOutboundAttachment {
13
+ path: string;
14
+ name: string;
15
+ mediaType: string;
16
+ kind: 'image' | 'file';
17
+ }
18
+ export interface PartnerReply {
19
+ text: string;
20
+ attachments: PartnerOutboundAttachment[];
21
+ }
22
+ export declare function safeMediaName(value: string, fallback?: string, defaultExtension?: string): string;
23
+ //# sourceMappingURL=channel-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-message.d.ts","sourceRoot":"","sources":["../src/channel-message.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,QAAmB,CAAA;AAEvD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,wBAAwB,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,EAAE,CAAA;CACzC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAa,EAAE,gBAAgB,SAAK,GAAG,MAAM,CAIjG"}
@@ -0,0 +1,8 @@
1
+ export const PARTNER_MEDIA_MAX_BYTES = 64 * 1024 * 1024;
2
+ export function safeMediaName(value, fallback = '微信附件.bin', defaultExtension = '') {
3
+ const cleaned = value.replace(/[\\/\0-\x1f<>:"|?*]+/g, '_').trim().replace(/^\.+/, '').slice(0, 160);
4
+ if (!cleaned)
5
+ return fallback;
6
+ return defaultExtension && !cleaned.includes('.') ? `${cleaned}${defaultExtension}` : cleaned;
7
+ }
8
+ //# sourceMappingURL=channel-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-message.js","sourceRoot":"","sources":["../src/channel-message.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AA0BvD,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,QAAQ,GAAG,UAAU,EAAE,gBAAgB,GAAG,EAAE;IACvF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpG,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAA;IAC7B,OAAO,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AAC/F,CAAC"}