@amaster.ai/pi-channels 0.1.2-beta.18 → 0.1.2-beta.19

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 (45) hide show
  1. package/README.md +32 -25
  2. package/dist/adapters/wecom/adapter.d.ts +3 -1
  3. package/dist/adapters/wecom/adapter.d.ts.map +1 -1
  4. package/dist/adapters/wecom/adapter.js +194 -157
  5. package/dist/adapters/wecom/adapter.js.map +1 -1
  6. package/dist/adapters/wecom.d.ts +0 -2
  7. package/dist/adapters/wecom.d.ts.map +1 -1
  8. package/dist/adapters/wecom.js +0 -1
  9. package/dist/adapters/wecom.js.map +1 -1
  10. package/dist/bridge.d.ts +1 -0
  11. package/dist/bridge.d.ts.map +1 -1
  12. package/dist/bridge.js +92 -1
  13. package/dist/bridge.js.map +1 -1
  14. package/dist/config.js +5 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +270 -15
  18. package/dist/index.js.map +1 -1
  19. package/dist/registry.d.ts +1 -0
  20. package/dist/registry.d.ts.map +1 -1
  21. package/dist/registry.js +7 -1
  22. package/dist/registry.js.map +1 -1
  23. package/dist/types.d.ts +10 -8
  24. package/dist/types.d.ts.map +1 -1
  25. package/package.json +3 -2
  26. package/dist/adapters/wecom/client.d.ts +0 -13
  27. package/dist/adapters/wecom/client.d.ts.map +0 -1
  28. package/dist/adapters/wecom/client.js +0 -116
  29. package/dist/adapters/wecom/client.js.map +0 -1
  30. package/dist/adapters/wecom/crypto.d.ts +0 -14
  31. package/dist/adapters/wecom/crypto.d.ts.map +0 -1
  32. package/dist/adapters/wecom/crypto.js +0 -37
  33. package/dist/adapters/wecom/crypto.js.map +0 -1
  34. package/dist/adapters/wecom/errors.d.ts +0 -25
  35. package/dist/adapters/wecom/errors.d.ts.map +0 -1
  36. package/dist/adapters/wecom/errors.js +0 -56
  37. package/dist/adapters/wecom/errors.js.map +0 -1
  38. package/dist/adapters/wecom/types.d.ts +0 -52
  39. package/dist/adapters/wecom/types.d.ts.map +0 -1
  40. package/dist/adapters/wecom/types.js +0 -2
  41. package/dist/adapters/wecom/types.js.map +0 -1
  42. package/dist/adapters/wecom/xml.d.ts +0 -4
  43. package/dist/adapters/wecom/xml.d.ts.map +0 -1
  44. package/dist/adapters/wecom/xml.js +0 -16
  45. package/dist/adapters/wecom/xml.js.map +0 -1
package/README.md CHANGED
@@ -19,10 +19,9 @@ Feishu/WeCom adapters.
19
19
  - `feishu` - Native Feishu/Lark app messaging backed by the official
20
20
  `@larksuiteoapi/node-sdk`. Supports outgoing text messages, WebSocket events
21
21
  by default, and HTTP event callbacks as a fallback.
22
- - `wecom` - Native WeCom self-built app messaging. Supports outgoing text
23
- messages, appchat messages, encrypted HTTP callbacks for text messages, token
24
- caching, request timeouts, and actionable API errors such as trusted-IP
25
- failures.
22
+ - `wecom` - Native WeCom intelligent bot messaging backed by the official
23
+ `@wecom/aibot-node-sdk`. Supports WebSocket long connection events and active
24
+ Markdown pushes with Bot ID / Secret credentials.
26
25
  - `webhook` - Generic outgoing HTTP requests.
27
26
 
28
27
  ## Example
@@ -40,17 +39,11 @@ Feishu/WeCom adapters.
40
39
  },
41
40
  "wecom": {
42
41
  "type": "wecom",
43
- "corpId": "${WECOM_CORP_ID}",
44
- "agentId": "${WECOM_AGENT_ID}",
45
- "secret": "${WECOM_SECRET}",
46
- "timeoutMs": 15000,
47
- "token": "${WECOM_CALLBACK_TOKEN}",
48
- "encodingAesKey": "${WECOM_ENCODING_AES_KEY}",
49
- "incoming": {
50
- "enabled": true,
51
- "port": 8788,
52
- "path": "/wecom/events"
53
- }
42
+ "botId": "${WECOM_BOT_ID}",
43
+ "secret": "${WECOM_BOT_SECRET}",
44
+ "eventMode": "websocket",
45
+ "respondToMentionsOnly": true,
46
+ "timeoutMs": 15000
54
47
  }
55
48
  },
56
49
  "routes": {
@@ -104,6 +97,23 @@ payloads:
104
97
 
105
98
  Set `"eventMode": "off"` for outgoing-only usage.
106
99
 
100
+ ### WeCom modes
101
+
102
+ Create an intelligent bot in the WeCom admin console, choose API mode, and select
103
+ the long connection option. Copy the Bot ID and Secret into the adapter config:
104
+
105
+ ```json
106
+ {
107
+ "type": "wecom",
108
+ "botId": "${WECOM_BOT_ID}",
109
+ "secret": "${WECOM_BOT_SECRET}",
110
+ "eventMode": "websocket",
111
+ "allowedChatIds": ["wr_xxx"]
112
+ }
113
+ ```
114
+
115
+ Set `"eventMode": "off"` when the bot should only send messages.
116
+
107
117
  ## Tool
108
118
 
109
119
  ```text
@@ -122,20 +132,17 @@ user_id:abc123
122
132
  email:name@example.com
123
133
  ```
124
134
 
125
- For WeCom, recipients default to `touser`. Prefix the recipient to send to parties
126
- or tags. Prefix with `chat:` or `appchat:` to use the WeCom appchat API:
135
+ For WeCom intelligent bots, recipients are the conversation ids used by the Bot
136
+ API. In a group, send one message to the bot and use route capture to fill the
137
+ group `chatid`; for one-to-one pushes, use the target user's userid:
127
138
 
128
139
  ```text
129
- user:zhangsan
130
- party:2
131
- tag:7
132
- appchat:chat-id
140
+ wr_xxx
141
+ zhangsan
133
142
  ```
134
143
 
135
- If WeCom returns `60020 not allow to access from your ip`, the adapter raises a
136
- typed `WeComApiError` with category `ip_whitelist`. Configure the trusted IP in
137
- the WeCom console, or run pi behind a fixed egress proxy that is allowed by the
138
- enterprise.
144
+ The intelligent bot adapter uses the WebSocket Bot API, so long connection mode
145
+ does not require a public callback URL.
139
146
 
140
147
  ## Events
141
148
 
@@ -1,3 +1,5 @@
1
1
  import type { AdapterConfig, ChannelAdapter } from '../../types.js';
2
- export declare function createWeComAdapter(config: AdapterConfig): ChannelAdapter;
2
+ export declare function createWeComAdapter(config: AdapterConfig, context?: {
3
+ log?: (event: string, data?: Record<string, unknown>, level?: string) => void;
4
+ }): ChannelAdapter;
3
5
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAoHxB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAmHxE"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/adapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAIf,MAAM,gBAAgB,CAAC;AA4IxB,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1E,GACL,cAAc,CAuIhB"}
@@ -1,8 +1,4 @@
1
- import { startHttpEndpoint } from '../../http.js';
2
- import { WeComAgentClient } from './client.js';
3
- import { decryptWeComEnvelope, verifyWeComSignature } from './crypto.js';
4
- import { xmlTag, xmlText } from './xml.js';
5
- const DEFAULT_WECOM_BASE_URL = 'https://qyapi.weixin.qq.com/cgi-bin';
1
+ import { WSClient, } from '@wecom/aibot-node-sdk';
6
2
  function asConfig(config) {
7
3
  return config;
8
4
  }
@@ -13,189 +9,230 @@ function requireString(value, name) {
13
9
  return String(value);
14
10
  throw new Error(`WeCom adapter requires ${name}`);
15
11
  }
16
- function requireNumber(value, name) {
17
- const raw = requireString(value, name);
18
- const parsed = Number(raw);
19
- if (Number.isFinite(parsed))
20
- return parsed;
21
- throw new Error(`WeCom adapter requires numeric ${name}`);
22
- }
23
- function optionalString(value) {
24
- if (typeof value === 'string' && value.trim())
25
- return value.trim();
12
+ function optionalNumber(value) {
26
13
  if (typeof value === 'number' && Number.isFinite(value))
27
- return String(value);
14
+ return value;
15
+ if (typeof value === 'string' && value.trim() && Number.isFinite(Number(value))) {
16
+ return Number(value);
17
+ }
28
18
  return undefined;
29
19
  }
30
20
  function normalizeConfig(config) {
31
21
  const cfg = asConfig(config);
32
22
  return {
33
23
  ...cfg,
34
- corpId: requireString(cfg.corpId, 'corpId'),
35
- agentId: requireNumber(cfg.agentId, 'agentId'),
24
+ botId: requireString(cfg.botId, 'botId'),
36
25
  secret: requireString(cfg.secret, 'secret'),
37
- baseUrl: optionalString(cfg.baseUrl) ?? DEFAULT_WECOM_BASE_URL,
38
- timeoutMs: Number(cfg.timeoutMs ?? 15_000),
39
- tokenRefreshBufferSeconds: Number(cfg.tokenRefreshBufferSeconds ?? 120),
26
+ eventMode: cfg.eventMode === 'off' ? 'off' : 'websocket',
27
+ timeoutMs: optionalNumber(cfg.timeoutMs) ?? 15_000,
40
28
  };
41
29
  }
42
- function resolveTarget(message) {
43
- const match = message.recipient.match(/^(user|party|tag|chat|appchat):(.+)$/);
44
- if (!match)
45
- return { touser: message.recipient };
46
- const id = match[2];
47
- if (match[1] === 'party')
48
- return { toparty: id };
49
- if (match[1] === 'tag')
50
- return { totag: id };
51
- if (match[1] === 'chat' || match[1] === 'appchat')
52
- return { chatid: id };
53
- return { touser: id };
30
+ function createSdkLogger(log) {
31
+ const emit = (level, message, args) => {
32
+ log?.('wecom-sdk', { message: [message, ...args].map(String).join(' ') }, level);
33
+ };
34
+ return {
35
+ debug: (message, ...args) => emit('DEBUG', message, args),
36
+ info: (message, ...args) => emit('INFO', message, args),
37
+ warn: (message, ...args) => emit('WARN', message, args),
38
+ error: (message, ...args) => emit('ERROR', message, args),
39
+ };
54
40
  }
55
- function resolveOutboundMessage(message) {
41
+ function textFromMessage(message) {
56
42
  if (!message.text)
57
43
  throw new Error('WeCom adapter requires text');
58
- return {
59
- raw: message,
60
- target: resolveTarget(message),
61
- text: message.source ? `[${message.source}]\n${message.text}` : message.text,
62
- };
44
+ return message.source ? `[${message.source}]\n${message.text}` : message.text;
45
+ }
46
+ function senderForMessage(body) {
47
+ const senderId = body.from?.userid ?? '';
48
+ return body.chattype === 'group' && body.chatid ? `${body.chatid}:${senderId}` : senderId;
49
+ }
50
+ function shouldAcceptMessage(body, cfg) {
51
+ const allowedChatIds = cfg.allowedChatIds;
52
+ if (body.chattype === 'group' &&
53
+ body.chatid &&
54
+ Array.isArray(allowedChatIds) &&
55
+ allowedChatIds.length > 0 &&
56
+ !allowedChatIds.includes(body.chatid)) {
57
+ return false;
58
+ }
59
+ const senderId = body.from?.userid ?? '';
60
+ const allowedSenderIds = cfg.allowedSenderIds;
61
+ if (senderId &&
62
+ Array.isArray(allowedSenderIds) &&
63
+ allowedSenderIds.length > 0 &&
64
+ !allowedSenderIds.includes(senderId)) {
65
+ return false;
66
+ }
67
+ return true;
63
68
  }
64
- function createAgentAccount(cfg) {
69
+ function frameMetadata(frame, body) {
65
70
  return {
66
- corpId: cfg.corpId,
67
- agentId: cfg.agentId,
68
- secret: cfg.secret,
69
- baseUrl: cfg.baseUrl,
70
- tokenRefreshBufferSeconds: cfg.tokenRefreshBufferSeconds,
71
- network: { timeoutMs: cfg.timeoutMs },
71
+ messageId: body.msgid,
72
+ replyToMessageId: body.msgid,
73
+ botId: body.aibotid,
74
+ chatId: body.chatid,
75
+ groupId: body.chatid,
76
+ chatType: body.chattype,
77
+ senderId: body.from?.userid,
78
+ createTime: body.create_time,
79
+ responseUrl: body.response_url,
80
+ wecomReplyFrame: {
81
+ headers: frame.headers,
82
+ },
83
+ headers: frame.headers,
72
84
  };
73
85
  }
74
- function readSignature(url) {
75
- return (url.searchParams.get('msg_signature') ??
76
- url.searchParams.get('msgsignature') ??
77
- url.searchParams.get('signature'));
86
+ function replyFrameFromMetadata(metadata) {
87
+ const value = metadata?.wecomReplyFrame;
88
+ if (!value || typeof value !== 'object' || Array.isArray(value))
89
+ return undefined;
90
+ const headers = value.headers;
91
+ if (!headers || typeof headers !== 'object' || Array.isArray(headers))
92
+ return undefined;
93
+ return { headers: headers };
78
94
  }
79
- function decryptAndValidate(params) {
80
- if (!verifyWeComSignature({
81
- token: params.token,
82
- timestamp: params.timestamp,
83
- nonce: params.nonce,
84
- encrypted: params.encrypted,
85
- provided: params.signature,
86
- })) {
87
- return null;
88
- }
89
- const decrypted = decryptWeComEnvelope(params.encrypted, params.encodingAesKey);
90
- const expectedReceiveId = optionalString(params.cfg.receiveId) ?? params.cfg.corpId;
91
- if (expectedReceiveId && decrypted.receiveId && decrypted.receiveId !== expectedReceiveId) {
92
- throw new Error(`Unexpected WeCom receiveId: ${decrypted.receiveId}`);
95
+ function replyStreamId(message) {
96
+ const metadata = message.metadata ?? {};
97
+ const messageId = typeof metadata.replyToMessageId === 'string' ? metadata.replyToMessageId : '';
98
+ if (messageId.trim())
99
+ return `amaster-${messageId.trim()}`;
100
+ return `amaster-${Date.now()}-${Math.random().toString(36).slice(2)}`;
101
+ }
102
+ function replyFinishFromMetadata(metadata) {
103
+ return metadata?.wecomReplyFinish !== false;
104
+ }
105
+ function normalizeWeComError(error) {
106
+ if (error.message.includes('853000') || /invalid bot_?id or secret/i.test(error.message)) {
107
+ return new Error('企业微信智能机器人认证失败:请确认 Bot ID Secret 来自同一个“智能机器人 API 模式 / 长连接”配置。Secret 不是回调 Token、EncodingAESKey,也不是自建应用 Secret。');
93
108
  }
94
- return decrypted;
109
+ return error;
95
110
  }
96
- export function createWeComAdapter(config) {
111
+ export function createWeComAdapter(config, context = {}) {
97
112
  const cfg = normalizeConfig(config);
98
- const client = new WeComAgentClient(createAgentAccount(cfg));
99
- let server = null;
113
+ const clientOptions = {
114
+ botId: cfg.botId,
115
+ secret: cfg.secret,
116
+ requestTimeout: cfg.timeoutMs,
117
+ logger: createSdkLogger(context.log),
118
+ };
119
+ const reconnectInterval = optionalNumber(cfg.reconnectInterval);
120
+ if (reconnectInterval !== undefined)
121
+ clientOptions.reconnectInterval = reconnectInterval;
122
+ const maxReconnectAttempts = optionalNumber(cfg.maxReconnectAttempts);
123
+ if (maxReconnectAttempts !== undefined)
124
+ clientOptions.maxReconnectAttempts = maxReconnectAttempts;
125
+ const maxAuthFailureAttempts = optionalNumber(cfg.maxAuthFailureAttempts);
126
+ if (maxAuthFailureAttempts !== undefined) {
127
+ clientOptions.maxAuthFailureAttempts = maxAuthFailureAttempts;
128
+ }
129
+ const heartbeatInterval = optionalNumber(cfg.heartbeatInterval);
130
+ if (heartbeatInterval !== undefined)
131
+ clientOptions.heartbeatInterval = heartbeatInterval;
132
+ if (typeof cfg.wsUrl === 'string' && cfg.wsUrl.trim())
133
+ clientOptions.wsUrl = cfg.wsUrl.trim();
134
+ const client = new WSClient(clientOptions);
135
+ let authenticated = false;
136
+ let connectPromise = null;
137
+ let started = false;
138
+ client.on('authenticated', () => {
139
+ authenticated = true;
140
+ context.log?.('wecom-authenticated', { botId: cfg.botId });
141
+ });
142
+ client.on('disconnected', (reason) => {
143
+ authenticated = false;
144
+ context.log?.('wecom-disconnected', { reason }, 'WARN');
145
+ });
146
+ client.on('event.disconnected_event', () => {
147
+ authenticated = false;
148
+ context.log?.('wecom-server-disconnected', { error: '企业微信长连接已被新的机器人连接顶下线,请停止其他同 Bot ID 的连接后重新连接。' }, 'ERROR');
149
+ });
150
+ client.on('reconnecting', (attempt) => {
151
+ authenticated = false;
152
+ context.log?.('wecom-reconnecting', { attempt }, 'WARN');
153
+ });
154
+ client.on('error', (error) => {
155
+ context.log?.('wecom-client-error', { error: normalizeWeComError(error).message }, 'ERROR');
156
+ });
157
+ async function ensureConnected() {
158
+ if (client.isConnected && authenticated)
159
+ return;
160
+ if (connectPromise)
161
+ return connectPromise;
162
+ connectPromise = new Promise((resolve, reject) => {
163
+ const timer = setTimeout(() => {
164
+ cleanup();
165
+ reject(new Error('WeCom bot authentication timed out'));
166
+ }, cfg.timeoutMs);
167
+ const onAuthenticated = () => {
168
+ cleanup();
169
+ authenticated = true;
170
+ resolve();
171
+ };
172
+ const onError = (error) => {
173
+ cleanup();
174
+ reject(normalizeWeComError(error));
175
+ };
176
+ const cleanup = () => {
177
+ clearTimeout(timer);
178
+ client.off('authenticated', onAuthenticated);
179
+ client.off('error', onError);
180
+ connectPromise = null;
181
+ };
182
+ client.on('authenticated', onAuthenticated);
183
+ client.on('error', onError);
184
+ client.connect();
185
+ });
186
+ return connectPromise;
187
+ }
100
188
  async function sendText(message) {
101
- const resolved = resolveOutboundMessage(message);
102
- await client.sendText({ target: resolved.target, text: resolved.text });
189
+ const text = textFromMessage(message);
190
+ await ensureConnected();
191
+ const replyFrame = replyFrameFromMetadata(message.metadata);
192
+ if (replyFrame) {
193
+ await client.replyStream(replyFrame, replyStreamId(message), text, replyFinishFromMetadata(message.metadata));
194
+ return;
195
+ }
196
+ await client.sendMessage(message.recipient, {
197
+ msgtype: 'markdown',
198
+ markdown: { content: text },
199
+ });
103
200
  }
104
201
  async function start(onMessage) {
105
- if (!cfg.incoming?.enabled || server)
202
+ if (cfg.eventMode === 'off')
203
+ return;
204
+ if (started) {
205
+ await ensureConnected();
106
206
  return;
107
- const token = requireString(cfg.token, 'token when incoming.enabled is true');
108
- const encodingAesKey = requireString(cfg.encodingAesKey, 'encodingAesKey when incoming.enabled is true');
109
- const host = cfg.incoming.host ?? '0.0.0.0';
110
- const port = cfg.incoming.port ?? 8788;
111
- const path = cfg.incoming.path ?? '/wecom/events';
112
- server = await startHttpEndpoint({
113
- host,
114
- port,
115
- path,
116
- handler: (request, response, body) => {
117
- const url = new URL(request.url ?? '/', `http://${request.headers.host ?? 'localhost'}`);
118
- const signature = readSignature(url);
119
- const timestamp = url.searchParams.get('timestamp');
120
- const nonce = url.searchParams.get('nonce');
121
- if (request.method === 'GET') {
122
- const echostr = url.searchParams.get('echostr');
123
- if (!echostr) {
124
- response.writeHead(400).end('missing echostr');
125
- return;
126
- }
127
- const decrypted = decryptAndValidate({
128
- encrypted: echostr,
129
- cfg,
130
- token,
131
- encodingAesKey,
132
- timestamp,
133
- nonce,
134
- signature,
135
- });
136
- if (!decrypted) {
137
- response.writeHead(401).end('invalid signature');
138
- return;
139
- }
140
- response.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
141
- response.end(decrypted.message);
142
- return;
143
- }
144
- if (request.method !== 'POST') {
145
- response.writeHead(405).end('method not allowed');
146
- return;
147
- }
148
- const encrypted = xmlTag(body, 'Encrypt');
149
- if (!encrypted) {
150
- response.writeHead(400).end('missing Encrypt');
151
- return;
152
- }
153
- const decrypted = decryptAndValidate({
154
- encrypted,
155
- cfg,
156
- token,
157
- encodingAesKey,
158
- timestamp,
159
- nonce,
160
- signature,
161
- });
162
- if (!decrypted) {
163
- response.writeHead(401).end('invalid signature');
164
- return;
165
- }
166
- const msgType = xmlText(decrypted.message, 'MsgType');
167
- if (msgType === 'text') {
168
- const sender = xmlText(decrypted.message, 'FromUserName');
169
- const text = xmlText(decrypted.message, 'Content').trim();
170
- if (sender && text) {
171
- void onMessage({
172
- adapter: 'wecom',
173
- sender,
174
- text,
175
- metadata: {
176
- msgType,
177
- toUserName: xmlText(decrypted.message, 'ToUserName'),
178
- agentId: xmlText(decrypted.message, 'AgentID'),
179
- msgId: xmlTag(decrypted.message, 'MsgId'),
180
- receiveId: decrypted.receiveId,
181
- },
182
- });
183
- }
184
- }
185
- response.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
186
- response.end('success');
187
- },
207
+ }
208
+ started = true;
209
+ client.on('message.text', (frame) => {
210
+ const body = frame.body;
211
+ if (!body)
212
+ return;
213
+ if (!shouldAcceptMessage(body, cfg))
214
+ return;
215
+ const text = body.text?.content?.trim();
216
+ if (!text)
217
+ return;
218
+ void onMessage({
219
+ adapter: 'wecom',
220
+ sender: senderForMessage(body),
221
+ text,
222
+ metadata: frameMetadata(frame, body),
223
+ });
188
224
  });
225
+ await ensureConnected();
189
226
  }
190
227
  return {
191
- direction: cfg.incoming?.enabled ? 'bidirectional' : 'outgoing',
228
+ direction: cfg.eventMode === 'off' ? 'outgoing' : 'bidirectional',
192
229
  send: sendText,
193
230
  start,
194
231
  async stop() {
195
- if (!server)
196
- return;
197
- await new Promise((resolve) => server.close(() => resolve()));
198
- server = null;
232
+ started = false;
233
+ authenticated = false;
234
+ connectPromise = null;
235
+ client.disconnect();
199
236
  },
200
237
  };
201
238
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/wecom/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/wecom/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
1
  export { createWeComAdapter } from './wecom/adapter.js';
2
- export { categorizeWeComError, WeComApiError } from './wecom/errors.js';
3
- export type { WeComRecipient, WeComTextTarget } from './wecom/types.js';
4
2
  //# sourceMappingURL=wecom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wecom.d.ts","sourceRoot":"","sources":["../../src/adapters/wecom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"wecom.d.ts","sourceRoot":"","sources":["../../src/adapters/wecom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export { createWeComAdapter } from './wecom/adapter.js';
2
- export { categorizeWeComError, WeComApiError } from './wecom/errors.js';
3
2
  //# sourceMappingURL=wecom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wecom.js","sourceRoot":"","sources":["../../src/adapters/wecom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"wecom.js","sourceRoot":"","sources":["../../src/adapters/wecom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/bridge.d.ts CHANGED
@@ -18,6 +18,7 @@ export declare class ChatBridge {
18
18
  queued: number;
19
19
  };
20
20
  handleMessage(message: IncomingMessage): Promise<void>;
21
+ private sendProcessingAck;
21
22
  private getSession;
22
23
  private handleBuiltInCommand;
23
24
  private processNext;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmChE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAmC;gBAEvC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe;IAMpF,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAOZ,QAAQ,IAAI,OAAO;IAInB,KAAK,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAW/E,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5D,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,oBAAoB;YAqCd,WAAW;IAsDzB,OAAO,CAAC,YAAY;CASrB"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmChE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAmC;gBAEvC,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe;IAMpF,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAOZ,QAAQ,IAAI,OAAO;IAInB,KAAK,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAW/E,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAuC9C,iBAAiB;IAgB/B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,oBAAoB;YAqCd,WAAW;IAsDzB,OAAO,CAAC,YAAY;CASrB"}