@zhin.js/adapter-lark 4.0.0 → 4.0.2
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/CHANGELOG.md +26 -0
- package/README.md +7 -3
- package/{skills/lark → agent}/PERMITS.md +1 -1
- package/agent/tools/add_members.ts +22 -0
- package/agent/tools/create_chat.ts +20 -0
- package/agent/tools/dissolve_chat.ts +18 -0
- package/agent/tools/get_user.ts +18 -0
- package/agent/tools/remove_managers.ts +22 -0
- package/agent/tools/set_managers.ts +22 -0
- package/agent/tools/update_chat.ts +23 -0
- package/agent/tools/upload_file.ts +27 -0
- package/lib/agent/tools/add_members.js +21 -0
- package/lib/agent/tools/add_members.js.map +1 -0
- package/lib/agent/tools/create_chat.js +20 -0
- package/lib/agent/tools/create_chat.js.map +1 -0
- package/lib/agent/tools/dissolve_chat.js +18 -0
- package/lib/agent/tools/dissolve_chat.js.map +1 -0
- package/lib/agent/tools/get_user.js +17 -0
- package/lib/agent/tools/get_user.js.map +1 -0
- package/lib/agent/tools/remove_managers.js +21 -0
- package/lib/agent/tools/remove_managers.js.map +1 -0
- package/lib/agent/tools/set_managers.js +21 -0
- package/lib/agent/tools/set_managers.js.map +1 -0
- package/lib/agent/tools/update_chat.js +22 -0
- package/lib/agent/tools/update_chat.js.map +1 -0
- package/lib/agent/tools/upload_file.js +19 -0
- package/lib/agent/tools/upload_file.js.map +1 -0
- package/lib/{adapter.js → src/adapter.js} +5 -4
- package/lib/src/adapter.js.map +1 -0
- package/lib/{endpoint.js → src/endpoint.js} +10 -6
- package/lib/src/endpoint.js.map +1 -0
- package/lib/src/index.js +43 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/lark-agent-deps.js +10 -0
- package/lib/src/lark-agent-deps.js.map +1 -0
- package/lib/{platform-permit.js → src/platform-permit.js} +5 -2
- package/lib/src/platform-permit.js.map +1 -0
- package/lib/src/segment-mapper.js +2 -0
- package/lib/src/segment-mapper.js.map +1 -0
- package/lib/src/types.js.map +1 -0
- package/package.json +17 -7
- package/src/adapter.ts +5 -4
- package/src/endpoint.ts +10 -6
- package/src/index.ts +13 -189
- package/src/lark-agent-deps.ts +18 -0
- package/src/platform-permit.ts +3 -4
- package/src/segment-mapper.ts +1 -0
- package/lib/adapter.d.ts +0 -19
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js.map +0 -1
- package/lib/endpoint.d.ts +0 -84
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/index.d.ts +0 -15
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -216
- package/lib/index.js.map +0 -1
- package/lib/platform-permit.d.ts +0 -16
- package/lib/platform-permit.d.ts.map +0 -1
- package/lib/platform-permit.js.map +0 -1
- package/lib/types.d.ts +0 -63
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- /package/{skills/lark/SKILL.md → agent/skills/lark.md} +0 -0
- /package/lib/{types.js → src/types.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @zhin.js/adapter-lark
|
|
2
2
|
|
|
3
|
+
## 4.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 872c583: Slack 适配器 Phase 1/2:mrkdwn 出站、长消息切分、斜杠/按钮 ephemeral 反馈、入站 mrkdwn→Markdown、editMessage 对齐 core。
|
|
8
|
+
|
|
9
|
+
Logger 表格日志与 string-width 列宽;Agent AI Handler 框线表格与 introspection/MCP 导出;Core side-event 归一化;Schedule 时区规划;多适配器 side-event 与 API surface 更新。
|
|
10
|
+
|
|
11
|
+
- 872c583: fix: 代码格式优化
|
|
12
|
+
- Updated dependencies [872c583]
|
|
13
|
+
- Updated dependencies [872c583]
|
|
14
|
+
- @zhin.js/agent@1.0.3
|
|
15
|
+
- @zhin.js/host-router@2.0.3
|
|
16
|
+
- zhin.js@4.1.2
|
|
17
|
+
|
|
18
|
+
## 4.0.1
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 5cc9c03: fix: ai 优化
|
|
23
|
+
- b9b3881: fix: 增加游戏引擎以及部分游戏
|
|
24
|
+
- Updated dependencies [5cc9c03]
|
|
25
|
+
- Updated dependencies [7700903]
|
|
26
|
+
- @zhin.js/host-router@2.0.2
|
|
27
|
+
- zhin.js@4.1.1
|
|
28
|
+
|
|
3
29
|
## 4.0.0
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Zhin.js 飞书 / Lark 适配器,支持飞书机器人的消息收发和群管
|
|
|
9
9
|
- Bearer Token 自动刷新
|
|
10
10
|
- 消息加密和签名验证(可选)
|
|
11
11
|
- URL 验证自动处理
|
|
12
|
-
- 群管理 AI
|
|
12
|
+
- 群管理 AI 工具(`agent/tools/` 平台工具 + `agent/skills/lark.md`;群管标准工具由 `createSceneManagementTools` 注册)
|
|
13
13
|
|
|
14
14
|
## 安装
|
|
15
15
|
|
|
@@ -96,9 +96,13 @@ root.addMiddleware(async (message, next) => {
|
|
|
96
96
|
|
|
97
97
|
## AI 工具(Skill)
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
| 类别 | 路径 |
|
|
100
|
+
|------|------|
|
|
101
|
+
| Permit 词汇 | `agent/PERMITS.md` |
|
|
102
|
+
| 平台工具(8 个) | `agent/tools/`(`lark_*`:群聊、成员、文件等) |
|
|
103
|
+
| 技能说明 | `agent/skills/lark.md` |
|
|
104
|
+
| 群管标准工具 | `createSceneManagementTools()` |
|
|
100
105
|
|
|
101
|
-
- 群聊管理(成员管理、群信息修改等)
|
|
102
106
|
|
|
103
107
|
> 工具使用飞书的 `open_id` 和 `chat_id` 格式标识用户和群聊。
|
|
104
108
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; user_ids: string }>({
|
|
7
|
+
description: '添加飞书群成员',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
11
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['lark'],
|
|
14
|
+
tags: ['lark'],
|
|
15
|
+
permissions: [platformPermit('chat_admin')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, user_ids }: { endpoint_id: string; chat_id: string; user_ids: string }) {
|
|
17
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.addChatMembers(chat_id, user_ids.split(','));
|
|
19
|
+
return { success, message: success ? '成员添加成功' : '添加失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; name: string; members: string; owner?: string }>({
|
|
5
|
+
description: '创建飞书群聊',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
name: z.string().describe('群名'),
|
|
9
|
+
members: z.string().describe('成员 open_id 列表,逗号分隔'),
|
|
10
|
+
owner: z.string().optional().describe('群主 open_id(可选)'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['lark'],
|
|
13
|
+
tags: ['lark'],
|
|
14
|
+
async execute({ endpoint_id, name, members, owner }: { endpoint_id: string; name: string; members: string; owner?: string }) {
|
|
15
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const chatId = await endpoint.createChat(name, members.split(','), owner);
|
|
17
|
+
return { success: !!chatId, chat_id: chatId, message: chatId ? `群聊创建成功: ${chatId}` : '创建失败' };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool<{ endpoint_id: string; chat_id: string }>({
|
|
5
|
+
description: '解散飞书群聊(需要群主权限)',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['lark'],
|
|
11
|
+
tags: ['lark'],
|
|
12
|
+
async execute({ endpoint_id, chat_id }: { endpoint_id: string; chat_id: string }) {
|
|
13
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
14
|
+
const success = await endpoint.dissolveChat(chat_id);
|
|
15
|
+
return { success, message: success ? '群聊已解散' : '解散失败' };
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; user_id: string }>({
|
|
6
|
+
description: '获取飞书用户信息',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
user_id: z.string().describe('用户 ID (open_id)'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['lark'],
|
|
12
|
+
tags: ['lark'],
|
|
13
|
+
async execute({ endpoint_id, user_id }: { endpoint_id: string; user_id: string }) {
|
|
14
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
return await endpoint.getUserInfo(user_id);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; user_ids: string }>({
|
|
7
|
+
description: '移除飞书群管理员',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
11
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['lark'],
|
|
14
|
+
tags: ['lark'],
|
|
15
|
+
permissions: [platformPermit('manage_managers')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, user_ids }: { endpoint_id: string; chat_id: string; user_ids: string }) {
|
|
17
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.removeChatManagers(chat_id, user_ids.split(','));
|
|
19
|
+
return { success, message: success ? '管理员移除成功' : '移除失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; user_ids: string }>({
|
|
7
|
+
description: '设置飞书群管理员',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
11
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['lark'],
|
|
14
|
+
tags: ['lark'],
|
|
15
|
+
permissions: [platformPermit('manage_managers')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, user_ids }: { endpoint_id: string; chat_id: string; user_ids: string }) {
|
|
17
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.setChatManagers(chat_id, user_ids.split(','));
|
|
19
|
+
return { success, message: success ? '管理员设置成功' : '设置失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; name?: string; description?: string }>({
|
|
7
|
+
description: '更新飞书群聊信息(群名、描述)',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
11
|
+
name: z.string().optional().describe('新群名(可选)'),
|
|
12
|
+
description: z.string().optional().describe('新描述(可选)'),
|
|
13
|
+
}),
|
|
14
|
+
platforms: ['lark'],
|
|
15
|
+
tags: ['lark'],
|
|
16
|
+
permissions: [platformPermit('chat_admin')],
|
|
17
|
+
async execute({ endpoint_id, chat_id, name, description }: { endpoint_id: string; chat_id: string; name?: string; description?: string }) {
|
|
18
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
19
|
+
const success = await endpoint.updateChatInfo(chat_id, { name, description });
|
|
20
|
+
return { success, message: success ? '群信息更新成功' : '更新失败' };
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{
|
|
6
|
+
endpoint_id: string;
|
|
7
|
+
file_path: string;
|
|
8
|
+
file_type: 'image' | 'file' | 'video' | 'audio';
|
|
9
|
+
}>({
|
|
10
|
+
description: '上传文件到飞书(image/file/video/audio)',
|
|
11
|
+
inputSchema: z.object({
|
|
12
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
13
|
+
file_path: z.string().describe('本地文件路径'),
|
|
14
|
+
file_type: z.enum(['image', 'file', 'video', 'audio']).default('file').describe('飞书文件类型'),
|
|
15
|
+
}),
|
|
16
|
+
platforms: ['lark'],
|
|
17
|
+
tags: ['lark'],
|
|
18
|
+
async execute({ endpoint_id, file_path, file_type }: {
|
|
19
|
+
endpoint_id: string;
|
|
20
|
+
file_path: string;
|
|
21
|
+
file_type: 'image' | 'file' | 'video' | 'audio';
|
|
22
|
+
}) {
|
|
23
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
24
|
+
const result = await endpoint.uploadFile(file_path, file_type);
|
|
25
|
+
return { success: true, file_key: result, message: `文件已上传,file_key: ${result}` };
|
|
26
|
+
},
|
|
27
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '添加飞书群成员',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
10
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['lark'],
|
|
13
|
+
tags: ['lark'],
|
|
14
|
+
permissions: [platformPermit('chat_admin')],
|
|
15
|
+
async execute({ endpoint_id, chat_id, user_ids }) {
|
|
16
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.addChatMembers(chat_id, user_ids.split(','));
|
|
18
|
+
return { success, message: success ? '成员添加成功' : '添加失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=add_members.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add_members.js","sourceRoot":"","sources":["../../../agent/tools/add_members.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAgE;QAC5G,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '创建飞书群聊',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
name: z.string().describe('群名'),
|
|
9
|
+
members: z.string().describe('成员 open_id 列表,逗号分隔'),
|
|
10
|
+
owner: z.string().optional().describe('群主 open_id(可选)'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['lark'],
|
|
13
|
+
tags: ['lark'],
|
|
14
|
+
async execute({ endpoint_id, name, members, owner }) {
|
|
15
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const chatId = await endpoint.createChat(name, members.split(','), owner);
|
|
17
|
+
return { success: !!chatId, chat_id: chatId, message: chatId ? `群聊创建成功: ${chatId}` : '创建失败' };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=create_chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_chat.js","sourceRoot":"","sources":["../../../agent/tools/create_chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAAyE;IAChG,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KACxD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAA4E;QAC3H,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChG,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '解散飞书群聊(需要群主权限)',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['lark'],
|
|
11
|
+
tags: ['lark'],
|
|
12
|
+
async execute({ endpoint_id, chat_id }) {
|
|
13
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
14
|
+
const success = await endpoint.dissolveChat(chat_id);
|
|
15
|
+
return { success, message: success ? '群聊已解散' : '解散失败' };
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=dissolve_chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dissolve_chat.js","sourceRoot":"","sources":["../../../agent/tools/dissolve_chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA8C;QAChF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取飞书用户信息',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
user_id: z.string().describe('用户 ID (open_id)'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['lark'],
|
|
11
|
+
tags: ['lark'],
|
|
12
|
+
async execute({ endpoint_id, user_id }) {
|
|
13
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
14
|
+
return await endpoint.getUserInfo(user_id);
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=get_user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_user.js","sourceRoot":"","sources":["../../../agent/tools/get_user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KAChD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA8C;QAChF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '移除飞书群管理员',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
10
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['lark'],
|
|
13
|
+
tags: ['lark'],
|
|
14
|
+
permissions: [platformPermit('manage_managers')],
|
|
15
|
+
async execute({ endpoint_id, chat_id, user_ids }) {
|
|
16
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.removeChatManagers(chat_id, user_ids.split(','));
|
|
18
|
+
return { success, message: success ? '管理员移除成功' : '移除失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=remove_managers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove_managers.js","sourceRoot":"","sources":["../../../agent/tools/remove_managers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAgE;QAC5G,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '设置飞书群管理员',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
10
|
+
user_ids: z.string().describe('用户 open_id 列表,逗号分隔'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['lark'],
|
|
13
|
+
tags: ['lark'],
|
|
14
|
+
permissions: [platformPermit('manage_managers')],
|
|
15
|
+
async execute({ endpoint_id, chat_id, user_ids }) {
|
|
16
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.setChatManagers(chat_id, user_ids.split(','));
|
|
18
|
+
return { success, message: success ? '管理员设置成功' : '设置失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=set_managers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set_managers.js","sourceRoot":"","sources":["../../../agent/tools/set_managers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAChD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAgE;QAC5G,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '更新飞书群聊信息(群名、描述)',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('群聊 ID'),
|
|
10
|
+
name: z.string().optional().describe('新群名(可选)'),
|
|
11
|
+
description: z.string().optional().describe('新描述(可选)'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['lark'],
|
|
14
|
+
tags: ['lark'],
|
|
15
|
+
permissions: [platformPermit('chat_admin')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, name, description }) {
|
|
17
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.updateChatInfo(chat_id, { name, description });
|
|
19
|
+
return { success, message: success ? '群信息更新成功' : '更新失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=update_chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update_chat.js","sourceRoot":"","sources":["../../../agent/tools/update_chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAe,UAAU,CAAgF;IACvG,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACvD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAmF;QACxI,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getLarkAgentDeps } from '../../src/lark-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '上传文件到飞书(image/file/video/audio)',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
file_path: z.string().describe('本地文件路径'),
|
|
9
|
+
file_type: z.enum(['image', 'file', 'video', 'audio']).default('file').describe('飞书文件类型'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['lark'],
|
|
12
|
+
tags: ['lark'],
|
|
13
|
+
async execute({ endpoint_id, file_path, file_type }) {
|
|
14
|
+
const endpoint = getLarkAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const result = await endpoint.uploadFile(file_path, file_type);
|
|
16
|
+
return { success: true, file_key: result, message: `文件已上传,file_key: ${result}` };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=upload_file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload_file.js","sourceRoot":"","sources":["../../../agent/tools/upload_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,eAAe,UAAU,CAItB;IACD,WAAW,EAAE,iCAAiC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC1F,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAIhD;QACC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC;IACnF,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { LarkEndpoint } from "./endpoint.js";
|
|
|
6
6
|
export class LarkAdapter extends Adapter {
|
|
7
7
|
static capabilities = ['inbound', 'outbound'];
|
|
8
8
|
static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
|
|
9
|
+
static interactivePolicy = 'native';
|
|
9
10
|
#router;
|
|
10
11
|
constructor(plugin, router) {
|
|
11
12
|
super(plugin, 'lark', []);
|
|
@@ -14,8 +15,8 @@ export class LarkAdapter extends Adapter {
|
|
|
14
15
|
createEndpoint(config) {
|
|
15
16
|
return new LarkEndpoint(this, this.#router, config);
|
|
16
17
|
}
|
|
17
|
-
// ──
|
|
18
|
-
async
|
|
18
|
+
// ── ISceneManagement 标准群管方法 ──────────────────────────────────
|
|
19
|
+
async removeMember(endpointId, sceneId, userId) {
|
|
19
20
|
const endpoint = this.endpoints.get(endpointId);
|
|
20
21
|
if (!endpoint)
|
|
21
22
|
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
@@ -27,13 +28,13 @@ export class LarkAdapter extends Adapter {
|
|
|
27
28
|
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
28
29
|
return endpoint.getChatMembers(sceneId);
|
|
29
30
|
}
|
|
30
|
-
async
|
|
31
|
+
async getSceneInfo(endpointId, sceneId) {
|
|
31
32
|
const endpoint = this.endpoints.get(endpointId);
|
|
32
33
|
if (!endpoint)
|
|
33
34
|
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
34
35
|
return endpoint.getChatInfo(sceneId);
|
|
35
36
|
}
|
|
36
|
-
async
|
|
37
|
+
async renameScene(endpointId, sceneId, name) {
|
|
37
38
|
const endpoint = this.endpoints.get(endpointId);
|
|
38
39
|
if (!endpoint)
|
|
39
40
|
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EACN,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,OAAO,WAAY,SAAQ,OAAqB;IACpD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IACzE,MAAM,CAAU,yBAAyB,GAAG,oCAAoC,CAAC;IACjF,MAAM,CAAU,iBAAiB,GAAG,QAAiB,CAAC;IAEpD,OAAO,CAAM;IAEb,YAAY,MAAc,EAAE,MAAW;QACnC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,MAA0B;QACrC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe,EAAE,IAAY;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,KAAK;QACP,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC"}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
import { registerFetchRoute } from "@zhin.js/host-router/router";
|
|
5
5
|
import axios from "axios";
|
|
6
6
|
import { createHash } from "crypto";
|
|
7
|
-
import { formatCompact, Message, segment, } from 'zhin.js';
|
|
7
|
+
import { formatCompact, Message, segment, expandInteractiveSegmentsInContent, } from 'zhin.js';
|
|
8
8
|
import { normalizeLarkSenderForPermit } from "./platform-permit.js";
|
|
9
|
+
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
9
10
|
export class LarkEndpoint {
|
|
10
11
|
adapter;
|
|
11
12
|
$config;
|
|
@@ -197,7 +198,8 @@ export class LarkEndpoint {
|
|
|
197
198
|
// 消息格式化
|
|
198
199
|
// ================================================================================================
|
|
199
200
|
$formatMessage(msg, event) {
|
|
200
|
-
const
|
|
201
|
+
const wire = this.parseMessageContent(msg);
|
|
202
|
+
const content = toCanonicalSegments(wire);
|
|
201
203
|
// 确定聊天类型
|
|
202
204
|
const chatType = msg.chat_id?.startsWith('oc_') ? 'group' : 'private';
|
|
203
205
|
return Message.from(msg, {
|
|
@@ -333,7 +335,9 @@ export class LarkEndpoint {
|
|
|
333
335
|
// ================================================================================================
|
|
334
336
|
async $sendMessage(options) {
|
|
335
337
|
const chatId = options.id;
|
|
336
|
-
const
|
|
338
|
+
const canonical = expandInteractiveSegmentsInContent(options.content);
|
|
339
|
+
const wire = fromCanonicalSegments(canonical);
|
|
340
|
+
const content = this.formatSendContent(wire);
|
|
337
341
|
try {
|
|
338
342
|
const response = await this.axiosInstance.post('/im/v1/messages', {
|
|
339
343
|
receive_id: chatId,
|
|
@@ -438,8 +442,8 @@ export class LarkEndpoint {
|
|
|
438
442
|
// 获取 access token
|
|
439
443
|
await this.refreshAccessToken();
|
|
440
444
|
this.$connected = true;
|
|
441
|
-
this.logger.
|
|
442
|
-
this.logger.
|
|
445
|
+
this.logger.debug(formatCompact({ endpoint: this.$config.name }));
|
|
446
|
+
this.logger.debug(formatCompact({ op: 'webhook', path: this.$config.webhookPath }));
|
|
443
447
|
}
|
|
444
448
|
catch (error) {
|
|
445
449
|
this.logger.error('Failed to connect Lark bot:', error);
|
|
@@ -449,7 +453,7 @@ export class LarkEndpoint {
|
|
|
449
453
|
async $disconnect() {
|
|
450
454
|
try {
|
|
451
455
|
this.$connected = false;
|
|
452
|
-
this.logger.
|
|
456
|
+
this.logger.debug(formatCompact({ op: 'disconnect', endpoint: this.$config.name }));
|
|
453
457
|
}
|
|
454
458
|
catch (error) {
|
|
455
459
|
this.logger.error('Error disconnecting Lark bot:', error);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/endpoint.ts"],"names":[],"mappings":"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"}
|