@zhin.js/adapter-lark 1.0.55 → 1.0.57

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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # @zhin.js/adapter-lark
2
2
 
3
+ ## 1.0.57
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [bb6bfa8]
8
+ - Updated dependencies [bb6bfa8]
9
+ - zhin.js@1.0.52
10
+ - @zhin.js/http@1.0.46
11
+
12
+ ## 1.0.56
13
+
14
+ ### Patch Changes
15
+
16
+ - zhin.js@1.0.51
17
+ - @zhin.js/http@1.0.45
18
+
3
19
  ## 1.0.55
4
20
 
5
21
  ### Patch Changes
package/README.md CHANGED
@@ -9,7 +9,7 @@ Zhin.js 飞书 / Lark 适配器,支持飞书机器人的消息收发和群管
9
9
  - Bearer Token 自动刷新
10
10
  - 消息加密和签名验证(可选)
11
11
  - URL 验证自动处理
12
- - 群管理 AI 工具(通过 declareSkill 暴露给 AI)
12
+ - 群管理 AI 工具(通过包内 `skills/lark/SKILL.md` 与 `addTool` 暴露给 AI)
13
13
 
14
14
  ## 安装
15
15
 
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 飞书/Lark 适配器
3
+ */
4
+ import { Adapter, Plugin } from "zhin.js";
5
+ import { LarkBot } from "./bot.js";
6
+ import type { LarkBotConfig } from "./types.js";
7
+ export declare class LarkAdapter extends Adapter<LarkBot> {
8
+ #private;
9
+ constructor(plugin: Plugin, router: any);
10
+ createBot(config: LarkBotConfig): LarkBot;
11
+ kickMember(botId: string, sceneId: string, userId: string): Promise<boolean>;
12
+ listMembers(botId: string, sceneId: string): Promise<any[]>;
13
+ getGroupInfo(botId: string, sceneId: string): Promise<any>;
14
+ setGroupName(botId: string, sceneId: string, name: string): Promise<boolean>;
15
+ start(): Promise<void>;
16
+ /**
17
+ * 注册飞书平台特有工具(获取用户、设管等)
18
+ */
19
+ private registerLarkPlatformTools;
20
+ }
21
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,EACP,MAAM,EAGP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,WAAY,SAAQ,OAAO,CAAC,OAAO,CAAC;;gBAGjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAKvC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAMnC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM1C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;CA0MpC"}
package/lib/adapter.js ADDED
@@ -0,0 +1,253 @@
1
+ /**
2
+ * 飞书/Lark 适配器
3
+ */
4
+ import { Adapter, createGroupManagementTools, } from "zhin.js";
5
+ import { LarkBot } from "./bot.js";
6
+ export class LarkAdapter extends Adapter {
7
+ #router;
8
+ constructor(plugin, router) {
9
+ super(plugin, 'lark', []);
10
+ this.#router = router;
11
+ }
12
+ createBot(config) {
13
+ return new LarkBot(this, this.#router, config);
14
+ }
15
+ // ── IGroupManagement 标准群管方法 ──────────────────────────────────
16
+ async kickMember(botId, sceneId, userId) {
17
+ const bot = this.bots.get(botId);
18
+ if (!bot)
19
+ throw new Error(`Bot ${botId} 不存在`);
20
+ return bot.removeChatMembers(sceneId, [userId]);
21
+ }
22
+ async listMembers(botId, sceneId) {
23
+ const bot = this.bots.get(botId);
24
+ if (!bot)
25
+ throw new Error(`Bot ${botId} 不存在`);
26
+ return bot.getChatMembers(sceneId);
27
+ }
28
+ async getGroupInfo(botId, sceneId) {
29
+ const bot = this.bots.get(botId);
30
+ if (!bot)
31
+ throw new Error(`Bot ${botId} 不存在`);
32
+ return bot.getChatInfo(sceneId);
33
+ }
34
+ async setGroupName(botId, sceneId, name) {
35
+ const bot = this.bots.get(botId);
36
+ if (!bot)
37
+ throw new Error(`Bot ${botId} 不存在`);
38
+ return bot.updateChatInfo(sceneId, { name });
39
+ }
40
+ // ── 生命周期 ───────────────────────────────────────────────────────
41
+ async start() {
42
+ this.registerLarkPlatformTools();
43
+ const groupTools = createGroupManagementTools(this, this.name);
44
+ groupTools.forEach((t) => this.addTool(t));
45
+ await super.start();
46
+ }
47
+ /**
48
+ * 注册飞书平台特有工具(获取用户、设管等)
49
+ */
50
+ registerLarkPlatformTools() {
51
+ // 获取用户信息工具
52
+ this.addTool({
53
+ name: 'lark_get_user',
54
+ description: '获取飞书用户信息',
55
+ parameters: {
56
+ type: 'object',
57
+ properties: {
58
+ bot: { type: 'string', description: 'Bot 名称' },
59
+ user_id: { type: 'string', description: '用户 ID (open_id)' },
60
+ },
61
+ required: ['bot', 'user_id'],
62
+ },
63
+ platforms: ['lark'],
64
+ scopes: ['group', 'private'],
65
+ permissionLevel: 'user',
66
+ execute: async (args) => {
67
+ const { bot: botId, user_id } = args;
68
+ const bot = this.bots.get(botId);
69
+ if (!bot)
70
+ throw new Error(`Bot ${botId} 不存在`);
71
+ return await bot.getUserInfo(user_id);
72
+ },
73
+ });
74
+ // 创建群聊工具
75
+ this.addTool({
76
+ name: 'lark_create_chat',
77
+ description: '创建飞书群聊',
78
+ parameters: {
79
+ type: 'object',
80
+ properties: {
81
+ bot: { type: 'string', description: 'Bot 名称' },
82
+ name: { type: 'string', description: '群名' },
83
+ members: { type: 'array', items: { type: 'string' }, description: '成员 open_id 列表' },
84
+ owner: { type: 'string', description: '群主 open_id(可选)' },
85
+ },
86
+ required: ['bot', 'name', 'members'],
87
+ },
88
+ platforms: ['lark'],
89
+ scopes: ['group', 'private'],
90
+ permissionLevel: 'group_admin',
91
+ execute: async (args) => {
92
+ const { bot: botId, name, members, owner } = args;
93
+ const bot = this.bots.get(botId);
94
+ if (!bot)
95
+ throw new Error(`Bot ${botId} 不存在`);
96
+ const chatId = await bot.createChat(name, members, owner);
97
+ return { success: !!chatId, chat_id: chatId, message: chatId ? `群聊创建成功: ${chatId}` : '创建失败' };
98
+ },
99
+ });
100
+ // 更新群信息工具
101
+ this.addTool({
102
+ name: 'lark_update_chat',
103
+ description: '更新飞书群聊信息(群名、描述)',
104
+ parameters: {
105
+ type: 'object',
106
+ properties: {
107
+ bot: { type: 'string', description: 'Bot 名称' },
108
+ chat_id: { type: 'string', description: '群聊 ID' },
109
+ name: { type: 'string', description: '新群名(可选)' },
110
+ description: { type: 'string', description: '新描述(可选)' },
111
+ },
112
+ required: ['bot', 'chat_id'],
113
+ },
114
+ platforms: ['lark'],
115
+ scopes: ['group'],
116
+ permissionLevel: 'group_admin',
117
+ execute: async (args) => {
118
+ const { bot: botId, chat_id, name, description } = args;
119
+ const bot = this.bots.get(botId);
120
+ if (!bot)
121
+ throw new Error(`Bot ${botId} 不存在`);
122
+ const success = await bot.updateChatInfo(chat_id, { name, description });
123
+ return { success, message: success ? '群信息更新成功' : '更新失败' };
124
+ },
125
+ });
126
+ // 添加群成员工具
127
+ this.addTool({
128
+ name: 'lark_add_members',
129
+ description: '添加飞书群成员',
130
+ parameters: {
131
+ type: 'object',
132
+ properties: {
133
+ bot: { type: 'string', description: 'Bot 名称' },
134
+ chat_id: { type: 'string', description: '群聊 ID' },
135
+ user_ids: { type: 'array', items: { type: 'string' }, description: '用户 open_id 列表' },
136
+ },
137
+ required: ['bot', 'chat_id', 'user_ids'],
138
+ },
139
+ platforms: ['lark'],
140
+ scopes: ['group'],
141
+ permissionLevel: 'group_admin',
142
+ execute: async (args) => {
143
+ const { bot: botId, chat_id, user_ids } = args;
144
+ const bot = this.bots.get(botId);
145
+ if (!bot)
146
+ throw new Error(`Bot ${botId} 不存在`);
147
+ const success = await bot.addChatMembers(chat_id, user_ids);
148
+ return { success, message: success ? '成员添加成功' : '添加失败' };
149
+ },
150
+ });
151
+ // 设置群管理员工具
152
+ this.addTool({
153
+ name: 'lark_set_managers',
154
+ description: '设置飞书群管理员',
155
+ parameters: {
156
+ type: 'object',
157
+ properties: {
158
+ bot: { type: 'string', description: 'Bot 名称' },
159
+ chat_id: { type: 'string', description: '群聊 ID' },
160
+ user_ids: { type: 'array', items: { type: 'string' }, description: '用户 open_id 列表' },
161
+ },
162
+ required: ['bot', 'chat_id', 'user_ids'],
163
+ },
164
+ platforms: ['lark'],
165
+ scopes: ['group'],
166
+ permissionLevel: 'group_owner',
167
+ execute: async (args) => {
168
+ const { bot: botId, chat_id, user_ids } = args;
169
+ const bot = this.bots.get(botId);
170
+ if (!bot)
171
+ throw new Error(`Bot ${botId} 不存在`);
172
+ const success = await bot.setChatManagers(chat_id, user_ids);
173
+ return { success, message: success ? '管理员设置成功' : '设置失败' };
174
+ },
175
+ });
176
+ // 移除群管理员工具
177
+ this.addTool({
178
+ name: 'lark_remove_managers',
179
+ description: '移除飞书群管理员',
180
+ parameters: {
181
+ type: 'object',
182
+ properties: {
183
+ bot: { type: 'string', description: 'Bot 名称' },
184
+ chat_id: { type: 'string', description: '群聊 ID' },
185
+ user_ids: { type: 'array', items: { type: 'string' }, description: '用户 open_id 列表' },
186
+ },
187
+ required: ['bot', 'chat_id', 'user_ids'],
188
+ },
189
+ platforms: ['lark'],
190
+ scopes: ['group'],
191
+ permissionLevel: 'group_owner',
192
+ execute: async (args) => {
193
+ const { bot: botId, chat_id, user_ids } = args;
194
+ const bot = this.bots.get(botId);
195
+ if (!bot)
196
+ throw new Error(`Bot ${botId} 不存在`);
197
+ const success = await bot.removeChatManagers(chat_id, user_ids);
198
+ return { success, message: success ? '管理员移除成功' : '移除失败' };
199
+ },
200
+ });
201
+ // 解散群聊工具
202
+ this.addTool({
203
+ name: 'lark_dissolve_chat',
204
+ description: '解散飞书群聊(需要群主权限)',
205
+ parameters: {
206
+ type: 'object',
207
+ properties: {
208
+ bot: { type: 'string', description: 'Bot 名称' },
209
+ chat_id: { type: 'string', description: '群聊 ID' },
210
+ },
211
+ required: ['bot', 'chat_id'],
212
+ },
213
+ platforms: ['lark'],
214
+ scopes: ['group'],
215
+ permissionLevel: 'group_owner',
216
+ execute: async (args) => {
217
+ const { bot: botId, chat_id } = args;
218
+ const bot = this.bots.get(botId);
219
+ if (!bot)
220
+ throw new Error(`Bot ${botId} 不存在`);
221
+ const success = await bot.dissolveChat(chat_id);
222
+ return { success, message: success ? '群聊已解散' : '解散失败' };
223
+ },
224
+ });
225
+ // 文件上传
226
+ this.addTool({
227
+ name: 'lark_upload_file',
228
+ description: '上传文件到飞书(图片/文件/视频/音频)',
229
+ parameters: {
230
+ type: 'object',
231
+ properties: {
232
+ bot: { type: 'string', description: 'Bot 名称' },
233
+ file_path: { type: 'string', description: '本地文件路径' },
234
+ file_type: { type: 'string', description: '文件类型:image/file/video/audio', enum: ['image', 'file', 'video', 'audio'] },
235
+ },
236
+ required: ['bot', 'file_path', 'file_type'],
237
+ },
238
+ platforms: ['lark'],
239
+ scopes: ['group', 'private'],
240
+ permissionLevel: 'user',
241
+ execute: async (args) => {
242
+ const { bot: botId, file_path, file_type } = args;
243
+ const bot = this.bots.get(botId);
244
+ if (!bot)
245
+ throw new Error(`Bot ${botId} 不存在`);
246
+ const result = await bot.uploadFile(file_path, file_type);
247
+ return { success: true, file_key: result, message: `文件已上传,file_key: ${result}` };
248
+ },
249
+ });
250
+ this.plugin.logger.debug('已注册飞书平台群组管理工具');
251
+ }
252
+ }
253
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/lib/bot.d.ts ADDED
@@ -0,0 +1,82 @@
1
+ import { Bot, Message, SendOptions } from "zhin.js";
2
+ import type { LarkBotConfig, LarkMessage } from "./types.js";
3
+ import type { LarkAdapter } from "./adapter.js";
4
+ export declare class LarkBot implements Bot<LarkBotConfig, LarkMessage> {
5
+ adapter: LarkAdapter;
6
+ $config: LarkBotConfig;
7
+ $connected: boolean;
8
+ private router;
9
+ private accessToken;
10
+ private axiosInstance;
11
+ get logger(): import("zhin.js").Logger;
12
+ get $id(): string;
13
+ constructor(adapter: LarkAdapter, router: any, $config: LarkBotConfig);
14
+ private setupWebhookRoute;
15
+ private handleWebhook;
16
+ private verifySignature;
17
+ private handleEvent;
18
+ private ensureAccessToken;
19
+ private refreshAccessToken;
20
+ $formatMessage(msg: LarkMessage, event?: any): Message<LarkMessage>;
21
+ private parseMessageContent;
22
+ private parseRichTextContent;
23
+ $sendMessage(options: SendOptions): Promise<string>;
24
+ $recallMessage(id: string): Promise<void>;
25
+ private formatSendContent;
26
+ $connect(): Promise<void>;
27
+ $disconnect(): Promise<void>;
28
+ getUserInfo(userId: string, userIdType?: 'open_id' | 'user_id' | 'union_id'): Promise<any>;
29
+ getChatInfo(chatId: string): Promise<any>;
30
+ uploadFile(filePath: string, fileType?: 'image' | 'file' | 'video' | 'audio'): Promise<string | null>;
31
+ /**
32
+ * 创建群聊
33
+ * @param name 群名
34
+ * @param userIds 成员 open_id 列表
35
+ * @param ownerId 群主 open_id
36
+ */
37
+ createChat(name: string, userIds: string[], ownerId?: string): Promise<string | null>;
38
+ /**
39
+ * 更新群信息
40
+ * @param chatId 群聊 ID
41
+ * @param options 更新选项
42
+ */
43
+ updateChatInfo(chatId: string, options: {
44
+ name?: string;
45
+ description?: string;
46
+ }): Promise<boolean>;
47
+ /**
48
+ * 添加群成员
49
+ * @param chatId 群聊 ID
50
+ * @param userIds 用户 ID 列表
51
+ */
52
+ addChatMembers(chatId: string, userIds: string[]): Promise<boolean>;
53
+ /**
54
+ * 移除群成员
55
+ * @param chatId 群聊 ID
56
+ * @param userIds 用户 ID 列表
57
+ */
58
+ removeChatMembers(chatId: string, userIds: string[]): Promise<boolean>;
59
+ /**
60
+ * 获取群成员列表
61
+ * @param chatId 群聊 ID
62
+ */
63
+ getChatMembers(chatId: string): Promise<any[]>;
64
+ /**
65
+ * 解散群聊
66
+ * @param chatId 群聊 ID
67
+ */
68
+ dissolveChat(chatId: string): Promise<boolean>;
69
+ /**
70
+ * 设置群管理员
71
+ * @param chatId 群聊 ID
72
+ * @param userIds 用户 ID 列表
73
+ */
74
+ setChatManagers(chatId: string, userIds: string[]): Promise<boolean>;
75
+ /**
76
+ * 移除群管理员
77
+ * @param chatId 群聊 ID
78
+ * @param userIds 用户 ID 列表
79
+ */
80
+ removeChatManagers(chatId: string, userIds: string[]): Promise<boolean>;
81
+ }
82
+ //# sourceMappingURL=bot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,GAAG,EACH,OAAO,EACP,WAAW,EAIZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAA0B,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,qBAAa,OAAQ,YAAW,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;IAcxC,OAAO,EAAE,WAAW;IAAsB,OAAO,EAAE,aAAa;IAbnF,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,aAAa,CAAe;IAEpC,IAAI,MAAM,6BAEX;IAED,IAAI,GAAG,WAEJ;gBAEkB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAS,OAAO,EAAE,aAAa;IA+BnF,OAAO,CAAC,iBAAiB;YAMX,aAAa;IAsD3B,OAAO,CAAC,eAAe;YAaT,WAAW;YAaX,iBAAiB;YAUjB,kBAAkB;IAiChC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAoCnE,OAAO,CAAC,mBAAmB;IA0F3B,OAAO,CAAC,oBAAoB;IAyBtB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnD,cAAc,CAAC,EAAE,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAM7C,OAAO,CAAC,iBAAiB;IAsFnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,GAAG,SAAS,GAAG,UAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAcrG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAWzC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4BnH;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmB3F;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;QAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,OAAO,CAAC;IAepB;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBzE;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5E;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAcpD;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAepD;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB1E;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAgBhF"}