@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.
- package/README.md +18 -3
- package/docs/architecture.md +2 -0
- package/docs/direct-channels.md +24 -0
- package/docs/releases/1.14.2.md +10 -0
- package/docs/releases/1.15.0.md +20 -0
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +27 -9
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +83 -0
- package/lib/api.js.map +1 -1
- package/lib/channels/direct/discovery.d.ts +5 -0
- package/lib/channels/direct/discovery.d.ts.map +1 -0
- package/lib/channels/direct/discovery.js +70 -0
- package/lib/channels/direct/discovery.js.map +1 -0
- package/lib/channels/direct/login-cache.d.ts +21 -0
- package/lib/channels/direct/login-cache.d.ts.map +1 -0
- package/lib/channels/direct/login-cache.js +42 -0
- package/lib/channels/direct/login-cache.js.map +1 -0
- package/lib/channels/direct/login.d.ts +15 -0
- package/lib/channels/direct/login.d.ts.map +1 -0
- package/lib/channels/direct/login.js +78 -0
- package/lib/channels/direct/login.js.map +1 -0
- package/lib/channels/direct/transport.d.ts +48 -0
- package/lib/channels/direct/transport.d.ts.map +1 -0
- package/lib/channels/direct/transport.js +152 -0
- package/lib/channels/direct/transport.js.map +1 -0
- package/lib/channels/manager.d.ts +6 -0
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +140 -8
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/notification-route.d.ts +8 -0
- package/lib/channels/notification-route.d.ts.map +1 -0
- package/lib/channels/notification-route.js +14 -0
- package/lib/channels/notification-route.js.map +1 -0
- package/lib/client-api.d.ts +13 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client-controller.d.ts.map +1 -1
- package/lib/client-controller.js +3 -3
- package/lib/client-controller.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +681 -311
- package/lib/client.js.map +4 -4
- package/lib/concern-store.d.ts +2 -0
- package/lib/concern-store.d.ts.map +1 -1
- package/lib/concern-store.js +13 -0
- package/lib/concern-store.js.map +1 -1
- package/lib/domain.d.ts +16 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/heartbeat.js +9 -9
- package/lib/heartbeat.js.map +1 -1
- package/lib/main-panel-compat.d.ts +5 -0
- package/lib/main-panel-compat.d.ts.map +1 -0
- package/lib/main-panel-compat.js +38 -0
- package/lib/main-panel-compat.js.map +1 -0
- package/lib/ui/channels-panel.d.ts +9 -0
- package/lib/ui/channels-panel.d.ts.map +1 -0
- package/lib/ui/channels-panel.js +72 -0
- package/lib/ui/channels-panel.js.map +1 -0
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/partner-components.js +1 -1
- package/lib/ui/partner-components.js.map +1 -1
- package/lib/ui/use-channel-status.d.ts +4 -0
- package/lib/ui/use-channel-status.d.ts.map +1 -0
- package/lib/ui/use-channel-status.js +46 -0
- package/lib/ui/use-channel-status.js.map +1 -0
- 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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAA;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/channels/manager.ts"],"names":[],"mappings":"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"}
|
package/lib/channels/manager.js
CHANGED
|
@@ -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
|
-
|
|
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 =
|
|
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
|
|
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.
|
|
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.
|
|
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 =
|
|
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 =
|
|
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
|