@lemoncat7/dsh-partner 1.14.1 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +18 -3
  2. package/docs/architecture.md +2 -0
  3. package/docs/direct-channels.md +24 -0
  4. package/docs/releases/1.14.2.md +10 -0
  5. package/docs/releases/1.15.0.md +20 -0
  6. package/lib/agent-runtime.d.ts.map +1 -1
  7. package/lib/agent-runtime.js +27 -9
  8. package/lib/agent-runtime.js.map +1 -1
  9. package/lib/api.d.ts.map +1 -1
  10. package/lib/api.js +83 -0
  11. package/lib/api.js.map +1 -1
  12. package/lib/channels/direct/discovery.d.ts +5 -0
  13. package/lib/channels/direct/discovery.d.ts.map +1 -0
  14. package/lib/channels/direct/discovery.js +70 -0
  15. package/lib/channels/direct/discovery.js.map +1 -0
  16. package/lib/channels/direct/login-cache.d.ts +21 -0
  17. package/lib/channels/direct/login-cache.d.ts.map +1 -0
  18. package/lib/channels/direct/login-cache.js +42 -0
  19. package/lib/channels/direct/login-cache.js.map +1 -0
  20. package/lib/channels/direct/login.d.ts +15 -0
  21. package/lib/channels/direct/login.d.ts.map +1 -0
  22. package/lib/channels/direct/login.js +78 -0
  23. package/lib/channels/direct/login.js.map +1 -0
  24. package/lib/channels/direct/transport.d.ts +48 -0
  25. package/lib/channels/direct/transport.d.ts.map +1 -0
  26. package/lib/channels/direct/transport.js +152 -0
  27. package/lib/channels/direct/transport.js.map +1 -0
  28. package/lib/channels/manager.d.ts +6 -0
  29. package/lib/channels/manager.d.ts.map +1 -1
  30. package/lib/channels/manager.js +140 -8
  31. package/lib/channels/manager.js.map +1 -1
  32. package/lib/channels/notification-route.d.ts +8 -0
  33. package/lib/channels/notification-route.d.ts.map +1 -0
  34. package/lib/channels/notification-route.js +14 -0
  35. package/lib/channels/notification-route.js.map +1 -0
  36. package/lib/client-api.d.ts +13 -0
  37. package/lib/client-api.d.ts.map +1 -1
  38. package/lib/client-api.js.map +1 -1
  39. package/lib/client-controller.d.ts.map +1 -1
  40. package/lib/client-controller.js +3 -3
  41. package/lib/client-controller.js.map +1 -1
  42. package/lib/client.d.ts.map +1 -1
  43. package/lib/client.js +681 -311
  44. package/lib/client.js.map +4 -4
  45. package/lib/concern-store.d.ts +2 -0
  46. package/lib/concern-store.d.ts.map +1 -1
  47. package/lib/concern-store.js +13 -0
  48. package/lib/concern-store.js.map +1 -1
  49. package/lib/domain.d.ts +16 -0
  50. package/lib/domain.d.ts.map +1 -1
  51. package/lib/domain.js.map +1 -1
  52. package/lib/heartbeat.js +9 -9
  53. package/lib/heartbeat.js.map +1 -1
  54. package/lib/main-panel-compat.d.ts +5 -0
  55. package/lib/main-panel-compat.d.ts.map +1 -0
  56. package/lib/main-panel-compat.js +38 -0
  57. package/lib/main-panel-compat.js.map +1 -0
  58. package/lib/ui/channels-panel.d.ts +9 -0
  59. package/lib/ui/channels-panel.d.ts.map +1 -0
  60. package/lib/ui/channels-panel.js +72 -0
  61. package/lib/ui/channels-panel.js.map +1 -0
  62. package/lib/ui/identity-editor.js +1 -1
  63. package/lib/ui/identity-editor.js.map +1 -1
  64. package/lib/ui/partner-components.js +1 -1
  65. package/lib/ui/partner-components.js.map +1 -1
  66. package/lib/ui/use-channel-status.d.ts +4 -0
  67. package/lib/ui/use-channel-status.d.ts.map +1 -0
  68. package/lib/ui/use-channel-status.js +46 -0
  69. package/lib/ui/use-channel-status.js.map +1 -0
  70. package/package.json +18 -15
@@ -0,0 +1,152 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { pollDiscovered } from './discovery.js';
3
+ export class ChannelHttpError extends Error {
4
+ status;
5
+ retryAfterMs;
6
+ constructor(status, retryAfterMs = 0) {
7
+ super(`渠道请求失败(HTTP ${status})`);
8
+ this.status = status;
9
+ this.retryAfterMs = retryAfterMs;
10
+ }
11
+ }
12
+ export function directConfig(value) {
13
+ if (value.platform !== 'matrix' && value.platform !== 'mattermost')
14
+ throw new Error('请选择 Matrix 或 Mattermost');
15
+ if (typeof value.baseUrl !== 'string' || (value.targetId !== undefined && (typeof value.targetId !== 'string' || value.targetId.length > 512)))
16
+ throw new Error('服务器地址或会话 ID 无效');
17
+ const url = new URL(value.baseUrl);
18
+ if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password || url.search || url.hash)
19
+ throw new Error('服务器地址只能包含 HTTP(S) 地址和路径,不得带凭据或查询参数');
20
+ return { platform: value.platform, baseUrl: url.toString().replace(/\/$/, ''), targetId: value.targetId?.trim() ?? '' };
21
+ }
22
+ /** Explicit, two-member conversations only. No group inference from display names. */
23
+ export class DirectTransport {
24
+ config;
25
+ token;
26
+ expected;
27
+ botId = '';
28
+ peerId = '';
29
+ constructor(config, token, expected) {
30
+ this.config = config;
31
+ this.token = token;
32
+ this.expected = expected;
33
+ }
34
+ async request(path, signal, body, method = body === undefined ? 'GET' : 'POST') {
35
+ const response = await fetch(this.config.baseUrl + path, {
36
+ method, redirect: 'error', headers: { Authorization: `Bearer ${this.token}`, ...(body === undefined ? {} : { 'Content-Type': 'application/json' }) },
37
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
38
+ signal: signal ? AbortSignal.any([signal, AbortSignal.timeout(35_000)]) : AbortSignal.timeout(35_000),
39
+ });
40
+ if (!response.ok) {
41
+ const header = response.headers.get('retry-after');
42
+ const retry = header ? (/^\d+$/.test(header) ? Number(header) * 1000 : Date.parse(header) - Date.now()) : 0;
43
+ throw new ChannelHttpError(response.status, Number.isFinite(retry) ? Math.max(0, Math.min(900_000, retry)) : 0);
44
+ }
45
+ if (!response.body)
46
+ throw new Error('渠道返回空响应');
47
+ let size = 0;
48
+ const chunks = [];
49
+ for await (const chunk of response.body) {
50
+ size += chunk.byteLength;
51
+ if (size > 4 * 1024 * 1024)
52
+ throw new Error('渠道响应超过大小限制');
53
+ chunks.push(chunk);
54
+ }
55
+ return JSON.parse(Buffer.concat(chunks).toString('utf8'));
56
+ }
57
+ async validate(signal) {
58
+ if (!this.config.targetId) {
59
+ const who = await this.request(this.config.platform === 'matrix' ? '/_matrix/client/v3/account/whoami' : '/api/v4/users/me', signal);
60
+ const id = this.config.platform === 'matrix' ? who.user_id : who.id;
61
+ if (typeof id !== 'string' || !id || this.expected && this.expected.accountId !== id)
62
+ throw new Error('渠道账号身份无效或已变化');
63
+ this.botId = id;
64
+ return { accountId: id, peerId: '' };
65
+ }
66
+ const target = encodeURIComponent(this.config.targetId);
67
+ if (this.config.platform === 'matrix') {
68
+ const who = await this.request('/_matrix/client/v3/account/whoami', signal);
69
+ if (typeof who.user_id !== 'string')
70
+ throw new Error('Matrix 用户身份无效');
71
+ const state = await this.request(`/_matrix/client/v3/rooms/${target}/state`, signal);
72
+ if (!Array.isArray(state))
73
+ throw new Error('Matrix 房间状态无效');
74
+ if (state.some(e => e.type === 'm.room.encryption'))
75
+ throw new Error('首版不支持 Matrix 加密房间,请使用未加密双人房间');
76
+ const members = state.filter(e => e.type === 'm.room.member' && e.content?.membership === 'join').map(e => e.state_key);
77
+ if (members.length !== 2 || !members.includes(who.user_id) || members.some(id => typeof id !== 'string'))
78
+ throw new Error('Matrix 房间必须只有机器人和一位已加入的联系人');
79
+ this.botId = who.user_id;
80
+ this.peerId = members.find(id => id !== this.botId);
81
+ }
82
+ else {
83
+ const who = await this.request('/api/v4/users/me', signal);
84
+ const room = await this.request(`/api/v4/channels/${target}`, signal);
85
+ const members = await this.request(`/api/v4/channels/${target}/members?page=0&per_page=3`, signal);
86
+ if (typeof who.id !== 'string' || room.type !== 'D' || !Array.isArray(members) || members.length !== 2 || !members.some(m => m.user_id === who.id))
87
+ throw new Error('Mattermost 目标必须是机器人已加入的双人 DM,不能是群组或公开频道');
88
+ const peer = members.find(m => m.user_id !== who.id)?.user_id;
89
+ if (typeof peer !== 'string')
90
+ throw new Error('Mattermost 联系人无效');
91
+ this.botId = who.id;
92
+ this.peerId = peer;
93
+ }
94
+ if (this.expected && (this.expected.accountId !== this.botId || this.expected.peerId !== this.peerId))
95
+ throw new Error('机器人或会话成员已变化,请重新配置,禁止沿用旧会话权限');
96
+ return { accountId: this.botId, peerId: this.peerId };
97
+ }
98
+ async poll(cursor, signal) {
99
+ await this.validate(signal);
100
+ if (!this.config.targetId)
101
+ return pollDiscovered(this.config.platform, this.botId, cursor, signal, (path, body) => this.request(path, signal, body), targetId => new DirectTransport({ ...this.config, targetId }, this.token));
102
+ if (this.config.platform === 'matrix') {
103
+ const filter = JSON.stringify({ room: { rooms: [this.config.targetId], timeline: { limit: 100 } }, presence: { types: [] } });
104
+ const data = await this.request('/_matrix/client/v3/sync?timeout=20000&filter=' + encodeURIComponent(filter) + (cursor ? '&since=' + encodeURIComponent(cursor) : ''), signal);
105
+ if (typeof data.next_batch !== 'string')
106
+ throw new Error('Matrix 同步游标缺失');
107
+ const room = data.rooms?.join?.[this.config.targetId];
108
+ if (cursor && room?.timeline?.limited)
109
+ throw new Error('Matrix 消息出现缺口,已暂停以免跳过未处理消息');
110
+ const messages = [];
111
+ // First sync establishes a watermark, never executes historical messages.
112
+ for (const event of cursor ? room?.timeline?.events ?? [] : []) {
113
+ if (event.sender !== this.peerId || event.type !== 'm.room.message' || event.content?.['m.relates_to']?.rel_type === 'm.replace')
114
+ continue;
115
+ if (typeof event.event_id !== 'string')
116
+ continue;
117
+ if (event.content?.msgtype !== 'm.text' || typeof event.content.body !== 'string') {
118
+ messages.push({ id: event.event_id, sender: this.peerId, text: '' });
119
+ continue;
120
+ }
121
+ messages.push({ id: event.event_id, sender: this.peerId, text: event.content.body });
122
+ }
123
+ return { cursor: data.next_batch, messages };
124
+ }
125
+ const data = await this.request(`/api/v4/channels/${encodeURIComponent(this.config.targetId)}/posts?per_page=200` + (cursor ? '&since=' + encodeURIComponent(cursor) : ''), signal);
126
+ if (!Array.isArray(data.order) || !data.posts)
127
+ throw new Error('Mattermost 消息响应无效');
128
+ if (cursor && data.order.length >= 200)
129
+ throw new Error('Mattermost 消息积压超出单批上限,已暂停以免遗漏');
130
+ const posts = data.order.map((id) => data.posts[id]).filter((p) => p && Number.isFinite(p.create_at)).sort((a, b) => a.create_at - b.create_at);
131
+ const next = Math.max(Number(cursor ?? 0), ...posts.map((p) => p.create_at));
132
+ return { cursor: String(next), messages: cursor ? posts.filter((p) => p.user_id === this.peerId && !p.type && !p.delete_at && !p.root_id).map((p) => ({ id: p.id, sender: this.peerId, text: Array.isArray(p.file_ids) && p.file_ids.length ? '' : p.message ?? '' })) : [] };
133
+ }
134
+ async sendText(userId, text, _context, signal) {
135
+ if (!this.config.targetId)
136
+ throw new Error('联系人尚未配对,不能投递');
137
+ await this.validate(signal);
138
+ if (userId !== this.peerId)
139
+ throw new Error('目标联系人与当前双人会话不匹配,拒绝投递');
140
+ for (let offset = 0; offset < text.length; offset += 4000) {
141
+ const content = text.slice(offset, offset + 4000);
142
+ if (this.config.platform === 'matrix')
143
+ await this.request(`/_matrix/client/v3/rooms/${encodeURIComponent(this.config.targetId)}/send/m.room.message/${randomUUID()}`, signal, { msgtype: 'm.text', body: content }, 'PUT');
144
+ else
145
+ await this.request('/api/v4/posts', signal, { channel_id: this.config.targetId, message: content });
146
+ }
147
+ }
148
+ async sendAttachment(_userId, _file, _context, _signal) {
149
+ throw new Error('Matrix / Mattermost 首版仅支持文本,附件尚未交付;请在 DSH 工作区查看文件');
150
+ }
151
+ }
152
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/channels/direct/transport.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare class ChannelManager {
41
41
  notifyRequirementResult(item: BoardRequirement): Promise<void>;
42
42
  observeAutonomousResult(session: Session, event: SessionEvent): Promise<void>;
43
43
  private queueProactive;
44
+ private routeForSession;
44
45
  private sendProactiveReply;
45
46
  private pollLoop;
46
47
  private scheduleInbound;
@@ -49,6 +50,11 @@ export declare class ChannelManager {
49
50
  private answerPendingQuestion;
50
51
  private clearPendingQuestion;
51
52
  private rememberReceipt;
53
+ private sender;
54
+ /** Independent connector loop. Cursor is persisted only after receipt handoff. */
55
+ private directLoop;
56
+ private handleDirect;
57
+ private markInbound;
52
58
  }
53
59
  export declare function requiredChannel(store: PartnerStore, id: string): WeixinChannel;
54
60
  export declare function requiredCompanion(store: PartnerStore, id: string): Companion;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import { WeixinApi } from './weixin/api.js';
3
+ import { DirectTransport, ChannelHttpError } from './direct/transport.js';
4
+ import { notificationRoute } from './notification-route.js';
3
5
  import { receiveWeixinMedia } from './weixin/media.js';
4
6
  import { completedTurnEvents, extractOutboundAttachments, partnerCwd, selectTaskNotificationRoute } from '../agent-runtime.js';
5
7
  import { concernCreatedNoticeFromEvent } from '../concern-notification.js';
@@ -8,6 +10,9 @@ import { requirementIsIdle, requirementProgressKey } from '../requirements/progr
8
10
  import { channelReplyPartsAfter, isAutonomousDeliveryTurn } from './delivery-policy.js';
9
11
  import { prepareChannelReply } from './outbound-media.js';
10
12
  export { isAutonomousDeliveryTurn } from './delivery-policy.js';
13
+ class DirectDeliveryError extends Error {
14
+ constructor() { super('消息处理或发送未完成,渠道已暂停。请在 DSH 查看执行结果后重连;同一消息不会自动重复执行。'); }
15
+ }
11
16
  export class ChannelManager {
12
17
  ctx;
13
18
  store;
@@ -43,8 +48,14 @@ export class ChannelManager {
43
48
  }
44
49
  async startEnabled() {
45
50
  for (const channel of this.store.snapshot().channels)
46
- if (channel.enabled)
47
- await this.start(channel.id);
51
+ if (channel.enabled) {
52
+ try {
53
+ await this.start(channel.id);
54
+ }
55
+ catch {
56
+ this.runtime.set(channel.id, { status: 'error', lastError: '渠道启动失败,请检查凭据和配置' });
57
+ }
58
+ }
48
59
  }
49
60
  async start(channelId) {
50
61
  if (this.tasks.has(channelId))
@@ -53,7 +64,9 @@ export class ChannelManager {
53
64
  const credential = await this.credentials.read(channelId);
54
65
  const controller = new AbortController();
55
66
  this.runtime.set(channelId, { status: 'starting' });
56
- const task = this.pollLoop(channel, new WeixinApi(credential.baseUrl, credential.botToken), controller.signal)
67
+ const task = (channel.platform && channel.platform !== 'weixin'
68
+ ? this.directLoop(channel, controller.signal)
69
+ : this.pollLoop(channel, new WeixinApi(credential.baseUrl, credential.botToken), controller.signal))
57
70
  .catch(error => {
58
71
  if (!controller.signal.aborted) {
59
72
  const message = error instanceof Error ? error.message : String(error);
@@ -116,7 +129,7 @@ export class ChannelManager {
116
129
  if (this.store.snapshot().pairings.find(p => p.channelId === route.channelId && p.userId === route.userId)?.status !== 'approved')
117
130
  throw new Error('渠道联系人尚未批准');
118
131
  const credential = await this.credentials.read(route.channelId);
119
- await new WeixinApi(credential.baseUrl, credential.botToken).sendAttachment(route.userId, file, this.contextTokens.get(`${route.channelId}:${route.userId}`), signal);
132
+ await this.sender(channel, credential, route.userId).sendAttachment(route.userId, file, this.contextTokens.get(`${route.channelId}:${route.userId}`), signal);
120
133
  }
121
134
  async notifyTaskResult(task) {
122
135
  if (task.requirementId)
@@ -140,7 +153,7 @@ export class ChannelManager {
140
153
  if (!summary || !item.creatorSessionId)
141
154
  return;
142
155
  // A manually created board requirement must not leak into an unrelated chat.
143
- const route = this.store.snapshot().sessions.find(route => route.sessionId === item.creatorSessionId);
156
+ const route = this.routeForSession(item.creatorSessionId);
144
157
  if (!route || route.kind === 'local')
145
158
  return;
146
159
  const cwd = route.cwd ?? partnerCwd(this.defaultCwd, route.companionId);
@@ -159,7 +172,7 @@ export class ChannelManager {
159
172
  });
160
173
  }
161
174
  async observeAutonomousResult(session, event) {
162
- const route = this.store.snapshot().sessions.find(item => item.sessionId === session.id);
175
+ const route = this.routeForSession(session.id);
163
176
  if (route === undefined || route.kind === 'local')
164
177
  return;
165
178
  const concernNotice = concernCreatedNoticeFromEvent(event);
@@ -201,7 +214,16 @@ export class ChannelManager {
201
214
  this.outboundQueues.delete(key);
202
215
  }
203
216
  }
217
+ routeForSession(sessionId) {
218
+ const state = this.store.snapshot();
219
+ const candidates = state.sessions.filter(item => item.sessionId === sessionId);
220
+ const inbound = (route) => state.pairings.find(p => p.channelId === route.channelId && p.userId === route.userId)?.lastInboundAt ?? 0;
221
+ return candidates.filter(item => item.kind === 'channel').sort((a, b) => inbound(b) - inbound(a))[0] ?? candidates[0];
222
+ }
204
223
  async sendProactiveReply(channelId, userId, reply) {
224
+ const target = notificationRoute(this.store.snapshot(), channelId, userId);
225
+ channelId = target.channelId;
226
+ userId = target.userId;
205
227
  const channel = requiredChannel(this.store, channelId);
206
228
  if (!channel.enabled)
207
229
  throw new Error('微信渠道已停用');
@@ -210,7 +232,7 @@ export class ChannelManager {
210
232
  throw new Error('微信联系人尚未批准');
211
233
  const credential = await this.credentials.read(channelId);
212
234
  const token = this.contextTokens.get(`${channelId}:${userId}`);
213
- const api = new WeixinApi(credential.baseUrl, credential.botToken);
235
+ const api = this.sender(channel, credential, userId);
214
236
  const signal = AbortSignal.timeout(30_000);
215
237
  await api.sendText(userId, reply.text, token, signal);
216
238
  for (const attachment of reply.attachments)
@@ -288,6 +310,7 @@ export class ChannelManager {
288
310
  return;
289
311
  }
290
312
  const route = this.store.snapshot().sessions.find(item => item.channelId === channel.id && item.userId === userId);
313
+ await this.markInbound(channel.id, userId);
291
314
  if (route !== undefined && text && await this.answerPendingQuestion(route.sessionId, text, channel, api, userId, signal)) {
292
315
  await this.rememberReceipt(receipt);
293
316
  return;
@@ -335,6 +358,10 @@ export class ChannelManager {
335
358
  const state = this.store.snapshot();
336
359
  const current = state.sessions.find(item => item.id === route.id && item.sessionId === route.sessionId);
337
360
  const channel = state.channels.find(item => item.id === route.channelId);
361
+ // Direct connectors currently serialize reads with replies; interactive questions
362
+ // stay in DSH rather than waiting for an answer on a blocked receive loop.
363
+ if (channel?.platform && channel.platform !== 'weixin')
364
+ return next();
338
365
  const pairing = state.pairings.find(item => item.channelId === route.channelId && item.userId === route.userId);
339
366
  if (current === undefined || channel === undefined || !channel.enabled || pairing?.status !== 'approved')
340
367
  return next();
@@ -359,7 +386,7 @@ export class ChannelManager {
359
386
  this.pendingQuestions.set(route.sessionId, pending);
360
387
  try {
361
388
  const credential = await this.credentials.read(channel.id);
362
- const api = new WeixinApi(credential.baseUrl, credential.botToken);
389
+ const api = this.sender(channel, credential, route.userId);
363
390
  await api.sendText(route.userId, renderQuestions(request.questions), this.contextTokens.get(`${channel.id}:${route.userId}`), request.signal ?? AbortSignal.timeout(30_000));
364
391
  }
365
392
  catch (error) {
@@ -397,6 +424,111 @@ export class ChannelManager {
397
424
  state.recentReceipts.splice(0, state.recentReceipts.length - 800);
398
425
  });
399
426
  }
427
+ sender(channel, credential, userId) {
428
+ if (!channel.platform || channel.platform === 'weixin')
429
+ return new WeixinApi(credential.baseUrl, credential.botToken);
430
+ if (!channel.direct)
431
+ throw new Error('渠道会话配置缺失');
432
+ const pairing = this.store.snapshot().pairings.find(p => p.channelId === channel.id && p.userId === userId && p.status === 'approved');
433
+ const targetId = channel.direct.targetId || pairing?.directTargetId;
434
+ if (!targetId)
435
+ throw new Error('联系人尚未绑定私聊会话');
436
+ return new DirectTransport({ platform: channel.platform, baseUrl: credential.baseUrl, targetId }, credential.botToken, { accountId: channel.accountId, peerId: channel.direct.peerId || userId });
437
+ }
438
+ /** Independent connector loop. Cursor is persisted only after receipt handoff. */
439
+ async directLoop(channel, signal) {
440
+ if (!channel.direct || !channel.platform || channel.platform === 'weixin')
441
+ throw new Error('渠道配置无效');
442
+ const credential = await this.credentials.read(channel.id);
443
+ const api = new DirectTransport({ platform: channel.platform, baseUrl: credential.baseUrl, targetId: channel.direct.targetId }, credential.botToken, { accountId: channel.accountId, peerId: channel.direct.peerId });
444
+ let cursor = channel.direct.cursor;
445
+ let failures = 0;
446
+ while (!signal.aborted) {
447
+ try {
448
+ const batch = await api.poll(cursor, signal);
449
+ if (signal.aborted)
450
+ break;
451
+ this.runtime.set(channel.id, { status: 'running' });
452
+ for (const message of batch.messages) {
453
+ if (signal.aborted)
454
+ break;
455
+ try {
456
+ const targetApi = message.targetId ? new DirectTransport({ platform: channel.platform, baseUrl: credential.baseUrl, targetId: message.targetId }, credential.botToken, { accountId: channel.accountId, peerId: message.sender }) : api;
457
+ await targetApi.validate(signal);
458
+ await this.handleDirect(channel, targetApi, message, signal);
459
+ }
460
+ catch {
461
+ throw new DirectDeliveryError();
462
+ }
463
+ }
464
+ if (signal.aborted)
465
+ break;
466
+ await this.store.update(state => {
467
+ const current = state.channels.find(c => c.id === channel.id && c.enabled);
468
+ if (current?.direct)
469
+ current.direct.cursor = batch.cursor;
470
+ });
471
+ cursor = batch.cursor;
472
+ failures = 0;
473
+ await delay(channel.platform === 'mattermost' ? 10_000 : 1000, signal);
474
+ }
475
+ catch (error) {
476
+ if (signal.aborted)
477
+ break;
478
+ if (error instanceof DirectDeliveryError || (error instanceof ChannelHttpError && [401, 403].includes(error.status)))
479
+ throw error;
480
+ if (++failures >= 6)
481
+ throw error;
482
+ const reason = error instanceof ChannelHttpError ? `HTTP ${error.status}` : error instanceof Error && error.message === 'fetch failed' ? '网络连接失败,请检查地址、端口和容器 DNS' : error instanceof Error && error.name === 'TimeoutError' ? '服务器请求超时' : error instanceof Error ? error.message : '连接异常';
483
+ this.runtime.set(channel.id, { status: 'starting', lastError: `${reason}(重试 ${failures}/6)` });
484
+ await delay(Math.max(error instanceof ChannelHttpError ? error.retryAfterMs : 0, Math.min(60_000, 2000 * 2 ** failures)), signal);
485
+ }
486
+ }
487
+ }
488
+ async handleDirect(channel, api, event, signal) {
489
+ const receipt = `${channel.id}:${event.id}`;
490
+ if (this.store.snapshot().recentReceipts.includes(receipt))
491
+ return;
492
+ const pairing = this.store.snapshot().pairings.find(p => p.channelId === channel.id && p.userId === event.sender);
493
+ // A different room must not silently inherit the contact's existing grant.
494
+ if (pairing?.directTargetId && event.targetId && pairing.directTargetId !== event.targetId) {
495
+ await this.rememberReceipt(receipt);
496
+ return;
497
+ }
498
+ if (!pairing) {
499
+ const now = Date.now();
500
+ const pairingCode = randomBytes(4).toString('hex').toUpperCase();
501
+ await this.store.update(state => {
502
+ if (state.pairings.filter(p => p.channelId === channel.id).length >= 100)
503
+ throw new Error('配对请求已达上限,请在面板清理');
504
+ if (!state.pairings.some(p => p.channelId === channel.id && p.userId === event.sender))
505
+ state.pairings.push({ id: `pairing-${randomBytes(10).toString('hex')}`, channelId: channel.id, userId: event.sender, displayName: event.sender, directTargetId: event.targetId || channel.direct?.targetId || '', pairingCode, status: 'pending', createdAt: now, updatedAt: now });
506
+ });
507
+ await api.sendText(event.sender, `配对码:${pairingCode}\n请在「伙伴 → 渠道 → 配置」核对该码并批准联系人,然后重新发送消息。未批准前不会交给伙伴处理。`, undefined, signal);
508
+ }
509
+ else if (pairing.status === 'approved') {
510
+ await this.markInbound(channel.id, event.sender);
511
+ if (!event.text)
512
+ await api.sendText(event.sender, '此渠道首版仅支持文本;附件未交给伙伴处理。', undefined, signal);
513
+ else {
514
+ // Claim before starting tools. A delivery failure must not execute the same
515
+ // user command twice on reconnect; its result remains in the DSH session.
516
+ await this.rememberReceipt(receipt);
517
+ const companion = requiredCompanion(this.store, channel.companionId);
518
+ const reply = await this.agents.reply(companion, channel.id, event.sender, { text: event.text, attachments: [] });
519
+ signal.throwIfAborted();
520
+ const current = this.store.snapshot();
521
+ if (!current.channels.some(c => c.id === channel.id && c.enabled && c.companionId === channel.companionId) || !current.pairings.some(p => p.channelId === channel.id && p.userId === event.sender && p.status === 'approved'))
522
+ throw new Error('渠道或联系人授权已撤销,取消回复');
523
+ await api.sendText(event.sender, reply.text + (reply.attachments.length ? '\n\n附件未交付:此渠道首版只发送文本,请在 DSH 工作区查看文件。' : ''), undefined, signal);
524
+ }
525
+ }
526
+ await this.rememberReceipt(receipt);
527
+ }
528
+ async markInbound(channelId, userId) {
529
+ await this.store.update(state => { const p = state.pairings.find(p => p.channelId === channelId && p.userId === userId && p.status === 'approved'); if (p)
530
+ p.lastInboundAt = Date.now(); });
531
+ }
400
532
  }
401
533
  export function requiredChannel(store, id) {
402
534
  const channel = store.snapshot().channels.find(item => item.id === id);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { PartnerState } from '../domain.js';
2
+ /** The companion has one shared conversation. Explicit delivery targets win;
3
+ * otherwise use the latest inbound channel, never background session activity. */
4
+ export declare function notificationRoute(state: PartnerState, channelId: string, userId: string): {
5
+ channelId: string;
6
+ userId: string;
7
+ };
8
+ //# sourceMappingURL=notification-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-route.d.ts","sourceRoot":"","sources":["../../src/channels/notification-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD;kFACkF;AAClF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAQ7H"}
@@ -0,0 +1,14 @@
1
+ /** The companion has one shared conversation. Explicit delivery targets win;
2
+ * otherwise use the latest inbound channel, never background session activity. */
3
+ export function notificationRoute(state, channelId, userId) {
4
+ const source = state.channels.find(c => c.id === channelId);
5
+ const pairing = state.pairings.find(p => p.channelId === channelId && p.userId === userId);
6
+ if (!source?.enabled || pairing?.status !== 'approved')
7
+ throw new Error('通知来源渠道停用或联系人尚未授权');
8
+ const target = pairing.deliveryTarget ?? state.pairings.filter(p => p.lastInboundAt !== undefined && state.channels.some(c => c.id === p.channelId && c.companionId === source.companionId)).sort((a, b) => (b.lastInboundAt ?? 0) - (a.lastInboundAt ?? 0))[0] ?? { channelId, userId };
9
+ // Deliberately do not pick an older enabled channel when the latest is stopped.
10
+ if (!state.channels.some(c => c.id === target.channelId && c.companionId === source.companionId && c.enabled) || !state.pairings.some(p => p.channelId === target.channelId && p.userId === target.userId && p.status === 'approved'))
11
+ throw new Error('指定或最近通知渠道不可用,保留待投递,不自动切换渠道');
12
+ return { channelId: target.channelId, userId: target.userId };
13
+ }
14
+ //# sourceMappingURL=notification-route.js.map