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
+4
View File
@@ -15,6 +15,8 @@ const h5Root = path.dirname(fileURLToPath(import.meta.url));
test('lists static-page-publish in platform catalog', () => {
const catalog = listPlatformSkillCatalog(h5Root);
assert.ok(catalog.some((item) => item.name === 'static-page-publish'));
assert.ok(catalog.some((item) => item.name === 'schedule-assistant'));
assert.ok(catalog.some((item) => item.name === 'product-campaign-page'));
});
test('granting publish skill enables static_publish capability', () => {
@@ -44,7 +46,9 @@ test('normalizeSkillPatch ignores unknown skills', () => {
test('DEFAULT_USER_SKILLS enables common platform skills', () => {
assert.equal(DEFAULT_USER_SKILLS.web, true);
assert.equal(DEFAULT_USER_SKILLS.search, true);
assert.equal(DEFAULT_USER_SKILLS['schedule-assistant'], true);
assert.equal(DEFAULT_USER_SKILLS['form-builder'], true);
assert.equal(DEFAULT_USER_SKILLS['table-viewer'], true);
assert.equal(DEFAULT_USER_SKILLS['product-campaign-page'], true);
assert.equal(DEFAULT_USER_SKILLS['static-page-publish'], false);
});