Add smart ACK provider for WeChat MP replies

Replace fixed ackText with a rule-based AckProvider that picks
response templates by message type and intent (translate, summary,
rewrite, poster, ppt, mindmap, code, search, schedule). Pure sync,
zero I/O, auto-falls back to config.ackText on any error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
john
2026-06-26 15:19:03 +08:00
parent 9ed4fd48d7
commit 9b4a25799f
162 changed files with 17276 additions and 2054 deletions
+12 -8
View File
@@ -14,17 +14,17 @@ const MENU = {
button: [
{
type: 'view',
name: 'TKMind智取',
url: 'https://g2.tkmind.cn',
name: 'MeMind',
url: 'https://m.tkmind.cn',
},
{
type: 'view',
name: 'MiSpace',
url: 'https://g2.tkmind.cn/space',
name: 'M空间',
url: 'https://m.tkmind.cn/space',
},
{
type: 'view',
name: 'MiWorld',
name: 'M广场',
url: 'https://plaza.tkmind.cn',
},
],
@@ -51,10 +51,14 @@ async function readJson(response) {
}
async function getAccessToken() {
const appid = process.env.H5_WECHAT_MP_APP_ID?.trim();
const secret = process.env.H5_WECHAT_MP_APP_SECRET?.trim();
const appid =
process.env.H5_WECHAT_MP_APP_ID?.trim() ?? process.env.H5_WECHAT_APP_ID?.trim() ?? '';
const secret =
process.env.H5_WECHAT_MP_APP_SECRET?.trim() ?? process.env.H5_WECHAT_APP_SECRET?.trim() ?? '';
if (!appid || !secret) {
throw new Error('缺少 H5_WECHAT_MP_APP_ID / H5_WECHAT_MP_APP_SECRET');
throw new Error(
'缺少 H5_WECHAT_MP_APP_ID / H5_WECHAT_MP_APP_SECRET(或 H5_WECHAT_APP_ID / H5_WECHAT_APP_SECRET',
);
}
const tokenUrl = process.env.H5_WECHAT_MP_TOKEN_URL?.trim() || DEFAULT_TOKEN_URL;