@xuanyue202/wechat-mp 2026.3.24 → 2026.3.31

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 (43) hide show
  1. package/README.md +251 -35
  2. package/dist/src/api.d.ts +28 -0
  3. package/dist/src/api.d.ts.map +1 -1
  4. package/dist/src/api.js +42 -0
  5. package/dist/src/api.js.map +1 -1
  6. package/dist/src/channel.d.ts +50 -0
  7. package/dist/src/channel.d.ts.map +1 -1
  8. package/dist/src/config.d.ts +6 -1
  9. package/dist/src/config.d.ts.map +1 -1
  10. package/dist/src/config.js +25 -0
  11. package/dist/src/config.js.map +1 -1
  12. package/dist/src/dispatch.d.ts.map +1 -1
  13. package/dist/src/dispatch.js +186 -2
  14. package/dist/src/dispatch.js.map +1 -1
  15. package/dist/src/inbound.d.ts.map +1 -1
  16. package/dist/src/inbound.js +156 -0
  17. package/dist/src/inbound.js.map +1 -1
  18. package/dist/src/outbound.d.ts +85 -1
  19. package/dist/src/outbound.d.ts.map +1 -1
  20. package/dist/src/outbound.js +126 -1
  21. package/dist/src/outbound.js.map +1 -1
  22. package/dist/src/send.d.ts +99 -1
  23. package/dist/src/send.d.ts.map +1 -1
  24. package/dist/src/send.js +380 -16
  25. package/dist/src/send.js.map +1 -1
  26. package/dist/src/state.d.ts +34 -0
  27. package/dist/src/state.d.ts.map +1 -1
  28. package/dist/src/state.js +74 -0
  29. package/dist/src/state.js.map +1 -1
  30. package/dist/src/text.d.ts +9 -0
  31. package/dist/src/text.d.ts.map +1 -1
  32. package/dist/src/text.js +27 -0
  33. package/dist/src/text.js.map +1 -1
  34. package/dist/src/text.test.js +47 -1
  35. package/dist/src/text.test.js.map +1 -1
  36. package/dist/src/types.d.ts +245 -2
  37. package/dist/src/types.d.ts.map +1 -1
  38. package/dist/src/types.js +8 -1
  39. package/dist/src/types.js.map +1 -1
  40. package/dist/src/webhook.d.ts.map +1 -1
  41. package/dist/src/webhook.js +67 -4
  42. package/dist/src/webhook.js.map +1 -1
  43. package/package.json +2 -2
package/README.md CHANGED
@@ -1,31 +1,43 @@
1
- # @xuanyue202/wechat-mp
1
+ # @openclaw-china/wechat-mp
2
2
 
3
3
  `wechat-mp` 是一个独立的微信公众号(订阅号 / 服务号)渠道插件,用于把公众号消息接入 OpenClaw。
4
4
 
5
- ## P0 已实现范围
5
+ ## 功能特性
6
6
 
7
- - 单账号配置
8
- - `GET` / `POST` 回调接入
9
- - `plain / safe / compat` 基础处理边界
10
- - `access_token` 获取、缓存、刷新
11
- - 文本消息入站
12
- - 基础事件(`subscribe / unsubscribe / scan / click / view`)标准化
13
- - 统一 routing / session / buffered reply dispatch 接入
14
- - 5 秒内 passive reply 主路径
15
- - active outbound skeleton
16
- - 超长消息自动分割(2048 字节限制,智能边界分割)
17
- - Markdown 渲染与格式转换
18
- - setup / aggregate / install hint 接线
7
+ ### 入站消息
19
8
 
20
- ## P1 / P2 暂未完成
9
+ | 消息类型 | 支持状态 | 说明 |
10
+ |---------|---------|------|
11
+ | 文本消息 | ✅ | 完整支持,自动处理超长分割 |
12
+ | 图片消息 | ✅ | 返回图片 URL 和 MediaId |
13
+ | 语音消息 | ✅ | 支持 ASR 自动转文字 |
14
+ | 视频消息 | ✅ | 返回视频 MediaId |
15
+ | 短视频消息 | ✅ | 返回短视频 MediaId |
16
+ | 位置消息 | ✅ | 返回经纬度和地址 |
17
+ | 链接消息 | ✅ | 返回标题、描述和 URL |
18
+ | 事件消息 | ✅ | subscribe/unsubscribe/scan/click/view |
21
19
 
22
- - 完整媒体消息收发
23
- - OAuth / JS-SDK / 菜单 / 二维码全量业务能力
24
- - 多账号运行时完善
25
- - 更完整的主动发送能力与运营接口
20
+ ### 主动发送
21
+
22
+ | 发送类型 | 支持状态 | 说明 |
23
+ |---------|---------|------|
24
+ | 文本消息 | ✅ | 支持超长自动分割 |
25
+ | 模板消息 | ✅ | 业务通知消息 |
26
+ | 图片消息 | ✅ | 自动上传并发送 |
27
+ | 语音消息 | ✅ | 自动上传并发送 |
28
+ | 视频消息 | ✅ | 自动上传并发送 |
29
+
30
+ ### 高级功能
31
+
32
+ - **语音转文字 (ASR)**: 集成腾讯云语音识别,自动将语音转为文字
33
+ - **重试机制**: 支持指数退避重试,处理网络波动和限流
34
+ - **时间窗口检查**: 48小时交互窗口检测,发送前权限验证
35
+ - **Markdown 渲染**: 自动转换为公众号友好的纯文本格式
26
36
 
27
37
  ## 配置示例
28
38
 
39
+ ### 基础配置
40
+
29
41
  ```json
30
42
  {
31
43
  "channels": {
@@ -46,29 +58,233 @@
46
58
  }
47
59
  ```
48
60
 
61
+ ### 完整配置(含 ASR)
62
+
63
+ ```json
64
+ {
65
+ "channels": {
66
+ "wechat-mp": {
67
+ "enabled": true,
68
+ "webhookPath": "/wechat-mp",
69
+ "appId": "wx1234567890abcdef",
70
+ "appSecret": "your-app-secret",
71
+ "token": "your-callback-token",
72
+ "encodingAESKey": "your-43-char-encoding-aes-key",
73
+ "messageMode": "safe",
74
+ "replyMode": "active",
75
+ "activeDeliveryMode": "split",
76
+ "renderMarkdown": true,
77
+ "welcomeText": "你好,欢迎关注。",
78
+ "dmPolicy": "open",
79
+ "allowFrom": [],
80
+ "retryConfig": {
81
+ "maxRetries": 3,
82
+ "initialDelay": 1000,
83
+ "maxDelay": 10000,
84
+ "backoffMultiplier": 2
85
+ },
86
+ "asr": {
87
+ "enabled": true,
88
+ "appId": "腾讯云 AppId",
89
+ "secretId": "腾讯云 SecretId",
90
+ "secretKey": "腾讯云 SecretKey",
91
+ "engineType": "16k_zh",
92
+ "timeoutMs": 30000
93
+ }
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
99
+ ### 多账号配置
100
+
101
+ ```json
102
+ {
103
+ "channels": {
104
+ "wechat-mp": {
105
+ "defaultAccount": "main",
106
+ "accounts": {
107
+ "main": {
108
+ "appId": "wx-main-account",
109
+ "appSecret": "main-secret",
110
+ "token": "main-token"
111
+ },
112
+ "sub": {
113
+ "appId": "wx-sub-account",
114
+ "appSecret": "sub-secret",
115
+ "token": "sub-token"
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ ## 配置字段说明
124
+
125
+ ### 基础配置
126
+
127
+ | 字段 | 类型 | 必填 | 说明 |
128
+ |-----|------|-----|------|
129
+ | `enabled` | boolean | 否 | 是否启用,默认 true |
130
+ | `webhookPath` | string | 否 | 回调路径,默认 `/wechat-mp` |
131
+ | `appId` | string | 是 | 公众号 AppId |
132
+ | `appSecret` | string | 条件 | 主动发送必填 |
133
+ | `token` | string | 是 | 回调 Token |
134
+ | `encodingAESKey` | string | 条件 | safe/compat 模式必填 |
135
+ | `messageMode` | string | 否 | 消息模式:`plain` / `safe` / `compat` |
136
+ | `replyMode` | string | 否 | 回复模式:`passive` / `active` |
137
+ | `activeDeliveryMode` | string | 否 | 主动发送模式:`split` / `merged` |
138
+ | `renderMarkdown` | boolean | 否 | 是否渲染 Markdown,默认 true |
139
+ | `welcomeText` | string | 否 | 关注欢迎语 |
140
+ | `dmPolicy` | string | 否 | DM 策略:`open` / `pairing` / `allowlist` / `disabled` |
141
+ | `allowFrom` | string[] | 否 | 允许的用户列表 |
142
+
143
+ ### 重试配置 (`retryConfig`)
144
+
145
+ | 字段 | 类型 | 默认值 | 说明 |
146
+ |-----|------|-------|------|
147
+ | `maxRetries` | number | 3 | 最大重试次数 |
148
+ | `initialDelay` | number | 1000 | 初始延迟(毫秒) |
149
+ | `maxDelay` | number | 10000 | 最大延迟(毫秒) |
150
+ | `backoffMultiplier` | number | 2 | 退避乘数 |
151
+
152
+ ### ASR 配置 (`asr`)
153
+
154
+ | 字段 | 类型 | 必填 | 说明 |
155
+ |-----|------|-----|------|
156
+ | `enabled` | boolean | 否 | 是否启用 ASR |
157
+ | `appId` | string | 是 | 腾讯云 AppId |
158
+ | `secretId` | string | 是 | 腾讯云 SecretId |
159
+ | `secretKey` | string | 是 | 腾讯云 SecretKey |
160
+ | `engineType` | string | 否 | 引擎类型,默认 `16k_zh` |
161
+ | `timeoutMs` | number | 否 | 超时时间,默认 30000 |
162
+
163
+ ## API 使用示例
164
+
165
+ ### 发送文本
166
+
167
+ ```typescript
168
+ import { wechatMpOutbound } from "@openclaw-china/wechat-mp";
169
+
170
+ // 发送文本
171
+ await wechatMpOutbound.sendText({
172
+ cfg,
173
+ to: "user:openid123",
174
+ text: "Hello, World!"
175
+ });
176
+ ```
177
+
178
+ ### 发送模板消息
179
+
180
+ ```typescript
181
+ await wechatMpOutbound.sendTemplate({
182
+ cfg,
183
+ to: "user:openid123",
184
+ templateId: "template_id_here",
185
+ data: {
186
+ first: { value: "您好,您有新的通知" },
187
+ keyword1: { value: "订单号:123456" },
188
+ keyword2: { value: "已发货" },
189
+ remark: { value: "点击查看详情" }
190
+ },
191
+ url: "https://example.com/order/123456"
192
+ });
193
+ ```
194
+
195
+ ### 发送媒体消息
196
+
197
+ ```typescript
198
+ import { readFileSync } from "fs";
199
+
200
+ // 发送图片
201
+ await wechatMpOutbound.sendMedia({
202
+ cfg,
203
+ to: "user:openid123",
204
+ mediaType: "image",
205
+ buffer: readFileSync("./image.jpg"),
206
+ filename: "image.jpg"
207
+ });
208
+
209
+ // 发送语音
210
+ await wechatMpOutbound.sendMedia({
211
+ cfg,
212
+ to: "user:openid123",
213
+ mediaType: "voice",
214
+ buffer: readFileSync("./voice.amr"),
215
+ filename: "voice.amr"
216
+ });
217
+
218
+ // 发送视频
219
+ await wechatMpOutbound.sendMedia({
220
+ cfg,
221
+ to: "user:openid123",
222
+ mediaType: "video",
223
+ buffer: readFileSync("./video.mp4"),
224
+ filename: "video.mp4"
225
+ });
226
+ ```
227
+
228
+ ### 检查发送能力
229
+
230
+ ```typescript
231
+ // 检查用户是否在 48 小时交互窗口内
232
+ const capability = await wechatMpOutbound.checkCapability({
233
+ cfg,
234
+ to: "user:openid123"
235
+ });
236
+
237
+ if (!capability.canSend) {
238
+ console.log(`无法发送:${capability.reason}`);
239
+ }
240
+
241
+ // 检查时间窗口
242
+ const inWindow = wechatMpOutbound.checkTimeWindow({
243
+ config: { mode: "business" } // 工作时间 9:00-18:00
244
+ });
245
+ ```
246
+
247
+ ### 记录用户交互
248
+
249
+ ```typescript
250
+ // 在处理入站消息时调用,用于 48 小时窗口跟踪
251
+ await wechatMpOutbound.recordInteraction({
252
+ cfg,
253
+ openId: "openid123"
254
+ });
255
+ ```
256
+
49
257
  ## 联调要点
50
258
 
51
- 1. 公众号后台把服务器地址指向你的网关回调地址。
52
- 2. `plain` 模式可先做最小链路验证;`safe/compat` 需要 `encodingAESKey`。
53
- 3. 如果需要 active outbound,必须额外配置 `appSecret`。
54
- 4. `replyMode=active` 时可用 `activeDeliveryMode` 控制主动发送行为:
55
- - `split`:每个日志 / chunk 单独发一条消息
56
- - `merged`:等待 reply pipeline 结束后合并成一条消息发送
57
- 5. `replyMode=passive` 时始终单次 HTTP 回包,`activeDeliveryMode` 不生效。
58
- 6. `renderMarkdown` 控制 Markdown 格式渲染:
59
- - `true`(默认):自动将 Markdown 转换为公众号友好的纯文本格式
60
- - `false`:保留原始 Markdown 格式,不做转换
61
- 7. **消息长度限制**:公众号客服消息 API 有 2048 字节限制,超长消息会自动分割:
62
- - 优先在自然边界处分割:段落 `\n\n` → 分割线 `---` → 换行 `\n` → 句末标点 → 空格
63
- - 分割后的消息逐条发送,确保不截断中文字符
64
- 8. 推荐先用:
259
+ 1. **回调配置**:公众号后台服务器地址指向网关回调地址
260
+ 2. **消息模式**:
261
+ - `plain`:明文模式,最小链路验证
262
+ - `safe`:加密模式,需要 `encodingAESKey`
263
+ - `compat`:兼容模式,同时支持明文和加密
264
+ 3. **主动发送**:必须配置 `appSecret`
265
+ 4. **回复模式**:
266
+ - `passive`:5 秒内 HTTP 回包
267
+ - `active`:使用客服消息 API 主动发送
268
+ 5. **消息长度**:2048 字节限制,超长自动分割
269
+ 6. **语音识别**:
270
+ - 方法一:公众号后台开启"语音识别"功能
271
+ - 方法二:配置 `asr` 使用腾讯云 ASR
272
+
273
+ ## 开发测试
65
274
 
66
275
  ```bash
67
- pnpm -F @xuanyue202/wechat-mp build
68
- pnpm -F @xuanyue202/wechat-mp test
276
+ # 构建
277
+ pnpm -F @openclaw-china/wechat-mp build
278
+
279
+ # 测试
280
+ pnpm -F @openclaw-china/wechat-mp test
281
+
282
+ # 类型检查
283
+ pnpm -F @openclaw-china/wechat-mp typecheck
69
284
  ```
70
285
 
71
286
  ## 文档入口
72
287
 
73
288
  - 开发计划:`doc/guides/wechat-mp/doc/开发计划.md`
74
289
  - 配置指南:`doc/guides/wechat-mp/configuration.md`
290
+ - 微信官方文档:`doc/guides/wechat-mp/doc/mp接口文档/`
package/dist/src/api.d.ts CHANGED
@@ -72,6 +72,11 @@ export interface UploadMediaResult {
72
72
  * Upload temporary media
73
73
  */
74
74
  export declare function uploadWechatMpMedia(account: ResolvedWechatMpAccount, type: "image" | "voice" | "video" | "thumb", media: Buffer, filename?: string): Promise<UploadMediaResult>;
75
+ /**
76
+ * Download temporary media (voice, image, video)
77
+ * Returns the media content as Buffer
78
+ */
79
+ export declare function downloadWechatMpMedia(account: ResolvedWechatMpAccount, mediaId: string): Promise<Buffer>;
75
80
  export interface MenuButton {
76
81
  type: "click" | "view" | "scancode_push" | "scancode_waitmsg" | "pic_sysphoto" | "pic_photo_or_album" | "pic_weixin" | "location_select" | "media_id" | "view_limited";
77
82
  name: string;
@@ -97,5 +102,28 @@ export declare function deleteWechatMpMenu(account: ResolvedWechatMpAccount): Pr
97
102
  errcode: number;
98
103
  errmsg: string;
99
104
  }>;
105
+ export interface TemplateMessageParams {
106
+ touser: string;
107
+ template_id: string;
108
+ url?: string;
109
+ miniprogram?: {
110
+ appid: string;
111
+ pagepath?: string;
112
+ };
113
+ data: Record<string, {
114
+ value: string;
115
+ color?: string;
116
+ }>;
117
+ }
118
+ export interface TemplateMessageResult {
119
+ errcode: number;
120
+ errmsg: string;
121
+ msgid?: number;
122
+ }
123
+ /**
124
+ * Send template message
125
+ * https://developers.weixin.qq.com/doc/offiaccount/Message_management/Template_message_interface.html
126
+ */
127
+ export declare function sendTemplateMessage(account: ResolvedWechatMpAccount, params: TemplateMessageParams): Promise<TemplateMessageResult>;
100
128
  export {};
101
129
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
package/dist/src/api.js CHANGED
@@ -112,6 +112,32 @@ export async function uploadWechatMpMedia(account, type, media, filename) {
112
112
  }
113
113
  return data.data;
114
114
  }
115
+ /**
116
+ * Download temporary media (voice, image, video)
117
+ * Returns the media content as Buffer
118
+ */
119
+ export async function downloadWechatMpMedia(account, mediaId) {
120
+ const token = await getAccessToken(account);
121
+ const url = new URL(`${API_BASE}/cgi-bin/media/get`);
122
+ url.searchParams.set("access_token", token);
123
+ url.searchParams.set("media_id", mediaId);
124
+ const response = await fetch(url.toString());
125
+ // Check for JSON error response
126
+ const contentType = response.headers.get("content-type") ?? "";
127
+ if (contentType.includes("application/json")) {
128
+ const data = (await response.json());
129
+ if (data.errcode && isInvalidTokenError(data.errcode)) {
130
+ clearAccessTokenCache(account);
131
+ return downloadWechatMpMedia(account, mediaId);
132
+ }
133
+ if (data.errcode !== undefined && data.errcode !== 0) {
134
+ throw new WechatMpApiErrorImpl(`Download media failed: ${data.errmsg ?? "unknown error"}`, data.errcode, data.errmsg ?? "unknown error", account.accountId);
135
+ }
136
+ }
137
+ // Return binary content as Buffer
138
+ const arrayBuffer = await response.arrayBuffer();
139
+ return Buffer.from(arrayBuffer);
140
+ }
115
141
  /**
116
142
  * Create custom menu
117
143
  */
@@ -139,4 +165,20 @@ export async function deleteWechatMpMenu(account) {
139
165
  errmsg: response.errmsg ?? "ok",
140
166
  };
141
167
  }
168
+ /**
169
+ * Send template message
170
+ * https://developers.weixin.qq.com/doc/offiaccount/Message_management/Template_message_interface.html
171
+ */
172
+ export async function sendTemplateMessage(account, params) {
173
+ const response = await callApi(account, {
174
+ method: "POST",
175
+ path: "/cgi-bin/message/template/send",
176
+ body: params,
177
+ });
178
+ return {
179
+ errcode: response.errcode ?? 0,
180
+ errmsg: response.errmsg ?? "ok",
181
+ msgid: response.data?.msgid,
182
+ };
183
+ }
142
184
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -256,6 +256,56 @@ export declare const wechatMpPlugin: {
256
256
  messageId: string;
257
257
  error: Error | undefined;
258
258
  }>;
259
+ sendTemplate: (params: {
260
+ cfg: PluginConfig;
261
+ accountId?: string;
262
+ to: string;
263
+ templateId: string;
264
+ data: Record<string, {
265
+ value: string;
266
+ color?: string;
267
+ }>;
268
+ url?: string;
269
+ miniprogram?: {
270
+ appid: string;
271
+ pagepath?: string;
272
+ };
273
+ }) => Promise<{
274
+ channel: string;
275
+ ok: boolean;
276
+ messageId: string;
277
+ error: Error | undefined;
278
+ }>;
279
+ sendMedia: (params: {
280
+ cfg: PluginConfig;
281
+ accountId?: string;
282
+ to: string;
283
+ mediaType: import("./types.js").MediaMessageType;
284
+ buffer: Buffer | Uint8Array;
285
+ filename?: string;
286
+ title?: string;
287
+ description?: string;
288
+ }) => Promise<{
289
+ channel: string;
290
+ ok: boolean;
291
+ messageId: string;
292
+ error: Error | undefined;
293
+ }>;
294
+ checkCapability: (params: {
295
+ cfg: PluginConfig;
296
+ accountId?: string;
297
+ to: string;
298
+ timeWindowConfig?: import("./types.js").TimeWindowConfig;
299
+ }) => Promise<import("./types.js").SendCapabilityResult>;
300
+ checkTimeWindow: (params: {
301
+ config?: import("./types.js").TimeWindowConfig;
302
+ }) => boolean;
303
+ recordInteraction: (params: {
304
+ cfg: PluginConfig;
305
+ accountId?: string;
306
+ openId: string;
307
+ timestamp?: number;
308
+ }) => Promise<void>;
259
309
  };
260
310
  gateway: {
261
311
  startAccount: (ctx: {
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAkB,MAAM,YAAY,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAkG1D;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;+BAiBA,MAAM,KAAG,MAAM,GAAG,SAAS;;+BAK7B,MAAM,eAAe,MAAM;;;sCAGlB;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAe5C,YAAY,KAAG,MAAM,EAAE;8BACvB,YAAY,cAAc,MAAM,KAAG,uBAAuB;gCAExD,YAAY,KAAG,MAAM;oCACjB;YAC1B,GAAG,EAAE,YAAY,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC;SAClB,KAAG,YAAY;gCAmCQ;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,YAAY;gCA+BxD,uBAAuB,KAAG,OAAO;mCAC9B,uBAAuB;;;;;;;;mCAQvB;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,MAAM,EAAE;kCAErD;YAAE,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;SAAE,KAAG,MAAM,EAAE;;;mCAO5C;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,MAAM;qCAEhD;YAC3B,GAAG,EAAE,YAAY,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAClC,KAAG,YAAY;;;6BAuCK;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;gCACf;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE;;;;;iCAUpC;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE;qBAC/B,MAAM;wBAAc,MAAM;gBAAM,MAAM;;;;;;;;;qBAxRM,CAAC;;;;;;;;;;;4BAuSrD;YACxB,GAAG,EAAE,YAAY,CAAC;YAClB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,WAAW,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACtD,GAAG,CAAC,EAAE;gBAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;gBAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;aAAE,CAAC;SAC7E,KAAG,OAAO,CAAC,IAAI,CAAC;2BAgEQ;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;SACvD,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;+BAcY;YAAE,GAAG,EAAE,YAAY,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;CAGzE,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PluginConfig, WechatMpAccountConfig } from "./types.js";
1
+ import type { PluginConfig, WechatMpAccountConfig, WechatMpASRCredentials } from "./types.js";
2
2
  /**
3
3
  * Default account identifier for single-account configurations.
4
4
  */
@@ -66,4 +66,9 @@ export declare function parseWechatMpSessionKey(sessionKey: string): {
66
66
  appId: string;
67
67
  openId: string;
68
68
  } | null;
69
+ /**
70
+ * Resolve ASR credentials from account configuration.
71
+ * Returns undefined if ASR is disabled or not fully configured.
72
+ */
73
+ export declare function resolveWechatMpASRCredentials(config: WechatMpAccountConfig): WechatMpASRCredentials | undefined;
69
74
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CAoBlE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAQzE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,uBAAuB,CAiE1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAKxE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0B/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI1C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE9G;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CAoBlE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAQzE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,uBAAuB,CAqE1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAKxE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0B/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI1C;AAMD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,qBAAqB,GAAG,sBAAsB,GAAG,SAAS,CAY/G"}
@@ -62,6 +62,8 @@ export function resolveWechatMpAccount(params) {
62
62
  welcomeText: channelCfg.welcomeText,
63
63
  dmPolicy: channelCfg.dmPolicy,
64
64
  allowFrom: channelCfg.allowFrom,
65
+ retryConfig: channelCfg.retryConfig,
66
+ asr: channelCfg.asr,
65
67
  ...dedicatedAccount,
66
68
  }
67
69
  : {
@@ -79,6 +81,8 @@ export function resolveWechatMpAccount(params) {
79
81
  welcomeText: channelCfg.welcomeText,
80
82
  dmPolicy: channelCfg.dmPolicy,
81
83
  allowFrom: channelCfg.allowFrom,
84
+ retryConfig: channelCfg.retryConfig,
85
+ asr: channelCfg.asr,
82
86
  };
83
87
  const configured = Boolean(merged.appId &&
84
88
  merged.token &&
@@ -164,4 +168,25 @@ export function parseWechatMpSessionKey(sessionKey) {
164
168
  return null;
165
169
  return { appId: parts[1], openId: parts[2] };
166
170
  }
171
+ // ============================================================================
172
+ // ASR CONFIGURATION HELPERS
173
+ // ============================================================================
174
+ /**
175
+ * Resolve ASR credentials from account configuration.
176
+ * Returns undefined if ASR is disabled or not fully configured.
177
+ */
178
+ export function resolveWechatMpASRCredentials(config) {
179
+ const asr = config.asr;
180
+ if (!asr?.enabled)
181
+ return undefined;
182
+ if (!asr.appId || !asr.secretId || !asr.secretKey)
183
+ return undefined;
184
+ return {
185
+ appId: asr.appId,
186
+ secretId: asr.secretId,
187
+ secretKey: asr.secretKey,
188
+ engineType: asr.engineType,
189
+ timeoutMs: asr.timeoutMs,
190
+ };
191
+ }
167
192
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/dispatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AA4CpB,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,wBAAwB,CAAC;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsK5E"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/dispatch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAoPpB,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,EAAE,wBAAwB,CAAC;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgL5E"}