@zhin.js/adapter-telegram 5.0.1 → 5.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 +15 -0
- package/README.md +9 -0
- package/agent/tools/create_invite.ts +20 -0
- package/agent/tools/list_admins.ts +26 -0
- package/agent/tools/member_count.ts +18 -0
- package/agent/tools/pin_message.ts +21 -0
- package/agent/tools/react.ts +20 -0
- package/agent/tools/send_poll.ts +34 -0
- package/agent/tools/send_sticker.ts +19 -0
- package/agent/tools/set_description.ts +19 -0
- package/agent/tools/set_permissions.ts +33 -0
- package/agent/tools/unpin_message.ts +21 -0
- package/lib/agent/tools/create_invite.js +20 -0
- package/lib/agent/tools/create_invite.js.map +1 -0
- package/lib/agent/tools/list_admins.js +26 -0
- package/lib/agent/tools/list_admins.js.map +1 -0
- package/lib/agent/tools/member_count.js +18 -0
- package/lib/agent/tools/member_count.js.map +1 -0
- package/lib/agent/tools/pin_message.js +21 -0
- package/lib/agent/tools/pin_message.js.map +1 -0
- package/lib/agent/tools/react.js +20 -0
- package/lib/agent/tools/react.js.map +1 -0
- package/lib/agent/tools/send_poll.js +32 -0
- package/lib/agent/tools/send_poll.js.map +1 -0
- package/lib/agent/tools/send_sticker.js +19 -0
- package/lib/agent/tools/send_sticker.js.map +1 -0
- package/lib/agent/tools/set_description.js +19 -0
- package/lib/agent/tools/set_description.js.map +1 -0
- package/lib/agent/tools/set_permissions.js +34 -0
- package/lib/agent/tools/set_permissions.js.map +1 -0
- package/lib/agent/tools/unpin_message.js +21 -0
- package/lib/agent/tools/unpin_message.js.map +1 -0
- package/lib/src/adapter.js.map +1 -0
- package/lib/src/endpoint.js.map +1 -0
- package/lib/src/index.js +215 -0
- package/lib/src/index.js.map +1 -0
- package/lib/{platform-permit.js → src/platform-permit.js} +3 -0
- package/lib/src/platform-permit.js.map +1 -0
- package/lib/src/segment-mapper.js.map +1 -0
- package/lib/src/telegram-agent-deps.js +10 -0
- package/lib/src/telegram-agent-deps.js.map +1 -0
- package/lib/src/types.js.map +1 -0
- package/package.json +25 -15
- package/src/index.ts +9 -259
- package/src/platform-permit.ts +1 -2
- package/src/telegram-agent-deps.ts +22 -0
- package/lib/adapter.d.ts +0 -21
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js.map +0 -1
- package/lib/endpoint.d.ts +0 -155
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/index.d.ts +0 -18
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -462
- package/lib/index.js.map +0 -1
- package/lib/platform-permit.d.ts +0 -19
- package/lib/platform-permit.d.ts.map +0 -1
- package/lib/platform-permit.js.map +0 -1
- package/lib/segment-mapper.d.ts +0 -2
- package/lib/segment-mapper.d.ts.map +0 -1
- package/lib/segment-mapper.js.map +0 -1
- package/lib/types.d.ts +0 -29
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- /package/{skills/telegram → agent}/PERMITS.md +0 -0
- /package/{skills/telegram/SKILL.md → agent/skills/telegram.md} +0 -0
- /package/lib/{adapter.js → src/adapter.js} +0 -0
- /package/lib/{endpoint.js → src/endpoint.js} +0 -0
- /package/lib/{segment-mapper.js → src/segment-mapper.js} +0 -0
- /package/lib/{types.js → src/types.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 872c583: fix: 代码格式优化
|
|
8
|
+
- Updated dependencies [872c583]
|
|
9
|
+
- Updated dependencies [872c583]
|
|
10
|
+
- @zhin.js/agent@1.0.3
|
|
11
|
+
- @zhin.js/client@2.0.5
|
|
12
|
+
- @zhin.js/contract@1.0.3
|
|
13
|
+
- @zhin.js/host-api@2.0.5
|
|
14
|
+
- @zhin.js/host-router@2.0.3
|
|
15
|
+
- @zhin.js/logger@1.0.74
|
|
16
|
+
- zhin.js@4.1.2
|
|
17
|
+
|
|
3
18
|
## 5.0.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -166,6 +166,15 @@ You can send files using:
|
|
|
166
166
|
- URL
|
|
167
167
|
- Local file path
|
|
168
168
|
|
|
169
|
+
## AI tools
|
|
170
|
+
|
|
171
|
+
| Kind | Path |
|
|
172
|
+
|------|------|
|
|
173
|
+
| Platform tools (10) | `agent/tools/` (`telegram_*`: invites, pins, admins, stickers, etc.) |
|
|
174
|
+
| Skill doc | `agent/skills/telegram.md` |
|
|
175
|
+
| Scene management | `createSceneManagementTools()` |
|
|
176
|
+
|
|
177
|
+
|
|
169
178
|
## Troubleshooting
|
|
170
179
|
|
|
171
180
|
| 现象 | 排查 |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string }>({
|
|
7
|
+
description: '创建 Telegram 群组邀请链接',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
permissions: [platformPermit('chat_administrator')],
|
|
15
|
+
async execute({ endpoint_id, chat_id }: { endpoint_id: string; chat_id: string }) {
|
|
16
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const link = await endpoint.createInviteLink(Number(chat_id));
|
|
18
|
+
return { invite_link: link, message: `邀请链接: ${link}` };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string }>({
|
|
6
|
+
description: '获取 Telegram 群组管理员列表',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['telegram'],
|
|
12
|
+
tags: ['telegram'],
|
|
13
|
+
async execute({ endpoint_id, chat_id }: { endpoint_id: string; chat_id: string }) {
|
|
14
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const admins = await endpoint.getChatAdmins(Number(chat_id));
|
|
16
|
+
return {
|
|
17
|
+
admins: admins.map((a: { user: { id: number; username?: string; first_name?: string }; status: string }) => ({
|
|
18
|
+
user_id: a.user.id,
|
|
19
|
+
username: a.user.username,
|
|
20
|
+
first_name: a.user.first_name,
|
|
21
|
+
status: a.status,
|
|
22
|
+
})),
|
|
23
|
+
count: admins.length,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string }>({
|
|
6
|
+
description: '获取 Telegram 群组成员数量',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['telegram'],
|
|
12
|
+
tags: ['telegram'],
|
|
13
|
+
async execute({ endpoint_id, chat_id }: { endpoint_id: string; chat_id: string }) {
|
|
14
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const count = await endpoint.getChatMemberCount(Number(chat_id));
|
|
16
|
+
return { count, message: `群组共有 ${count} 名成员` };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; message_id: string }>({
|
|
7
|
+
description: '置顶 Telegram 群组消息',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
11
|
+
message_id: z.string().describe('消息 ID'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['telegram'],
|
|
14
|
+
tags: ['telegram'],
|
|
15
|
+
permissions: [platformPermit('pin_messages')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, message_id }: { endpoint_id: string; chat_id: string; message_id: string }) {
|
|
17
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.pinMessage(Number(chat_id), Number(message_id));
|
|
19
|
+
return { success, message: success ? '消息已置顶' : '操作失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; message_id: string; reaction: string }>({
|
|
6
|
+
description: '对 Telegram 消息添加表情反应',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
message_id: z.string().describe('消息 ID'),
|
|
11
|
+
reaction: z.string().describe('反应表情(如 👍、❤️、🔥)'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['telegram'],
|
|
14
|
+
tags: ['telegram'],
|
|
15
|
+
async execute({ endpoint_id, chat_id, message_id, reaction }: { endpoint_id: string; chat_id: string; message_id: string; reaction: string }) {
|
|
16
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.setMessageReaction(Number(chat_id), Number(message_id), reaction);
|
|
18
|
+
return { success, message: success ? `已添加反应 ${reaction}` : '操作失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; question: string; options: string; is_anonymous?: boolean; allows_multiple?: boolean }>({
|
|
6
|
+
description: '在 Telegram 群组中发起投票',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
question: z.string().describe('投票问题'),
|
|
11
|
+
options: z.string().describe('选项 JSON 数组,如 ["A","B","C"]'),
|
|
12
|
+
is_anonymous: z.boolean().optional().describe('是否匿名投票,默认 true'),
|
|
13
|
+
allows_multiple: z.boolean().optional().describe('是否允许多选,默认 false'),
|
|
14
|
+
}),
|
|
15
|
+
platforms: ['telegram'],
|
|
16
|
+
tags: ['telegram'],
|
|
17
|
+
async execute({ endpoint_id, chat_id, question, options, is_anonymous, allows_multiple }: { endpoint_id: string; chat_id: string; question: string; options: string; is_anonymous?: boolean; allows_multiple?: boolean }) {
|
|
18
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
19
|
+
let optList: string[];
|
|
20
|
+
try {
|
|
21
|
+
optList = JSON.parse(options);
|
|
22
|
+
} catch {
|
|
23
|
+
return { success: false, message: 'options 格式错误,应为 JSON 数组' };
|
|
24
|
+
}
|
|
25
|
+
if (!Array.isArray(optList) || optList.length < 2) {
|
|
26
|
+
return { success: false, message: '至少需要 2 个选项' };
|
|
27
|
+
}
|
|
28
|
+
const result = await endpoint.sendPoll(
|
|
29
|
+
Number(chat_id), question, optList,
|
|
30
|
+
is_anonymous ?? true, allows_multiple ?? false,
|
|
31
|
+
);
|
|
32
|
+
return { success: true, message_id: result.message_id, message: '投票已发送' };
|
|
33
|
+
},
|
|
34
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; sticker: string }>({
|
|
6
|
+
description: '发送 Telegram 贴纸',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
sticker: z.string().describe('贴纸 file_id 或 URL'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
async execute({ endpoint_id, chat_id, sticker }: { endpoint_id: string; chat_id: string; sticker: string }) {
|
|
15
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const result = await endpoint.sendStickerMessage(Number(chat_id), sticker);
|
|
17
|
+
return { success: true, message_id: result.message_id, message: '贴纸已发送' };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
|
|
5
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; description: string }>({
|
|
6
|
+
description: '设置 Telegram 群组描述',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
description: z.string().describe('群描述文字'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
async execute({ endpoint_id, chat_id, description }: { endpoint_id: string; chat_id: string; description: string }) {
|
|
15
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const success = await endpoint.setChatDescription(Number(chat_id), description);
|
|
17
|
+
return { success, message: success ? '群描述已更新' : '操作失败' };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; can_send_messages?: boolean; can_send_photos?: boolean; can_send_videos?: boolean; can_send_polls?: boolean; can_send_other_messages?: boolean; can_add_web_page_previews?: boolean; can_change_info?: boolean; can_invite_users?: boolean; can_pin_messages?: boolean }>({
|
|
7
|
+
description: '设置 Telegram 群组的默认成员权限',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
11
|
+
can_send_messages: z.boolean().optional().describe('是否可以发消息'),
|
|
12
|
+
can_send_photos: z.boolean().optional().describe('是否可以发图片'),
|
|
13
|
+
can_send_videos: z.boolean().optional().describe('是否可以发视频'),
|
|
14
|
+
can_send_polls: z.boolean().optional().describe('是否可以发投票'),
|
|
15
|
+
can_send_other_messages: z.boolean().optional().describe('是否可以发贴纸/GIF等'),
|
|
16
|
+
can_add_web_page_previews: z.boolean().optional().describe('是否可以添加网页预览'),
|
|
17
|
+
can_change_info: z.boolean().optional().describe('是否可以改群信息'),
|
|
18
|
+
can_invite_users: z.boolean().optional().describe('是否可以邀请用户'),
|
|
19
|
+
can_pin_messages: z.boolean().optional().describe('是否可以置顶消息'),
|
|
20
|
+
}),
|
|
21
|
+
platforms: ['telegram'],
|
|
22
|
+
tags: ['telegram'],
|
|
23
|
+
permissions: [platformPermit('manage_chat')],
|
|
24
|
+
async execute({ endpoint_id, chat_id, ...perms }: { endpoint_id: string; chat_id: string; can_send_messages?: boolean; can_send_photos?: boolean; can_send_videos?: boolean; can_send_polls?: boolean; can_send_other_messages?: boolean; can_add_web_page_previews?: boolean; can_change_info?: boolean; can_invite_users?: boolean; can_pin_messages?: boolean }) {
|
|
25
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
26
|
+
const permissions: Record<string, boolean> = {};
|
|
27
|
+
for (const [k, v] of Object.entries(perms)) {
|
|
28
|
+
if (typeof v === 'boolean') permissions[k] = v;
|
|
29
|
+
}
|
|
30
|
+
const success = await endpoint.setChatPermissionsAll(Number(chat_id), permissions);
|
|
31
|
+
return { success, message: success ? '群权限已更新' : '操作失败' };
|
|
32
|
+
},
|
|
33
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
|
|
6
|
+
export default defineTool<{ endpoint_id: string; chat_id: string; message_id?: string }>({
|
|
7
|
+
description: '取消置顶 Telegram 群组消息',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
10
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
11
|
+
message_id: z.string().optional().describe('消息 ID(可选,不提供则取消所有置顶)'),
|
|
12
|
+
}),
|
|
13
|
+
platforms: ['telegram'],
|
|
14
|
+
tags: ['telegram'],
|
|
15
|
+
permissions: [platformPermit('pin_messages')],
|
|
16
|
+
async execute({ endpoint_id, chat_id, message_id }: { endpoint_id: string; chat_id: string; message_id?: string }) {
|
|
17
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
const success = await endpoint.unpinMessage(Number(chat_id), message_id ? Number(message_id) : undefined);
|
|
19
|
+
return { success, message: success ? '已取消置顶' : '操作失败' };
|
|
20
|
+
},
|
|
21
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '创建 Telegram 群组邀请链接',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['telegram'],
|
|
12
|
+
tags: ['telegram'],
|
|
13
|
+
permissions: [platformPermit('chat_administrator')],
|
|
14
|
+
async execute({ endpoint_id, chat_id }) {
|
|
15
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const link = await endpoint.createInviteLink(Number(chat_id));
|
|
17
|
+
return { invite_link: link, message: `邀请链接: ${link}` };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=create_invite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_invite.js","sourceRoot":"","sources":["../../../agent/tools/create_invite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,oBAAoB;IACjC,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,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,WAAW,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACnD,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA6C;QAC/E,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;IACzD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取 Telegram 群组管理员列表',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['telegram'],
|
|
11
|
+
tags: ['telegram'],
|
|
12
|
+
async execute({ endpoint_id, chat_id }) {
|
|
13
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
14
|
+
const admins = await endpoint.getChatAdmins(Number(chat_id));
|
|
15
|
+
return {
|
|
16
|
+
admins: admins.map((a) => ({
|
|
17
|
+
user_id: a.user.id,
|
|
18
|
+
username: a.user.username,
|
|
19
|
+
first_name: a.user.first_name,
|
|
20
|
+
status: a.status,
|
|
21
|
+
})),
|
|
22
|
+
count: admins.length,
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=list_admins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_admins.js","sourceRoot":"","sources":["../../../agent/tools/list_admins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,qBAAqB;IAClC,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,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA6C;QAC/E,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAmF,EAAE,EAAE,CAAC,CAAC;gBAC3G,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;gBAC7B,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;YACH,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '获取 Telegram 群组成员数量',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
}),
|
|
10
|
+
platforms: ['telegram'],
|
|
11
|
+
tags: ['telegram'],
|
|
12
|
+
async execute({ endpoint_id, chat_id }) {
|
|
13
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
14
|
+
const count = await endpoint.getChatMemberCount(Number(chat_id));
|
|
15
|
+
return { count, message: `群组共有 ${count} 名成员` };
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=member_count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member_count.js","sourceRoot":"","sources":["../../../agent/tools/member_count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,oBAAoB;IACjC,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,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA6C;QAC/E,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;IACjD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '置顶 Telegram 群组消息',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
message_id: z.string().describe('消息 ID'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
permissions: [platformPermit('pin_messages')],
|
|
15
|
+
async execute({ endpoint_id, chat_id, message_id }) {
|
|
16
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.pinMessage(Number(chat_id), Number(message_id));
|
|
18
|
+
return { success, message: success ? '消息已置顶' : '操作失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=pin_message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pin_message.js","sourceRoot":"","sources":["../../../agent/tools/pin_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAA+D;IACtF,WAAW,EAAE,kBAAkB;IAC/B,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,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACzC,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,WAAW,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAiE;QAC/G,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/E,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,20 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '对 Telegram 消息添加表情反应',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
message_id: z.string().describe('消息 ID'),
|
|
10
|
+
reaction: z.string().describe('反应表情(如 👍、❤️、🔥)'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
async execute({ endpoint_id, chat_id, message_id, reaction }) {
|
|
15
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
16
|
+
const success = await endpoint.setMessageReaction(Number(chat_id), Number(message_id), reaction);
|
|
17
|
+
return { success, message: success ? `已添加反应 ${reaction}` : '操作失败' };
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../agent/tools/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAAiF;IACxG,WAAW,EAAE,qBAAqB;IAClC,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,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAClD,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAmF;QAC3I,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '在 Telegram 群组中发起投票',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
question: z.string().describe('投票问题'),
|
|
10
|
+
options: z.string().describe('选项 JSON 数组,如 ["A","B","C"]'),
|
|
11
|
+
is_anonymous: z.boolean().optional().describe('是否匿名投票,默认 true'),
|
|
12
|
+
allows_multiple: z.boolean().optional().describe('是否允许多选,默认 false'),
|
|
13
|
+
}),
|
|
14
|
+
platforms: ['telegram'],
|
|
15
|
+
tags: ['telegram'],
|
|
16
|
+
async execute({ endpoint_id, chat_id, question, options, is_anonymous, allows_multiple }) {
|
|
17
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
18
|
+
let optList;
|
|
19
|
+
try {
|
|
20
|
+
optList = JSON.parse(options);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return { success: false, message: 'options 格式错误,应为 JSON 数组' };
|
|
24
|
+
}
|
|
25
|
+
if (!Array.isArray(optList) || optList.length < 2) {
|
|
26
|
+
return { success: false, message: '至少需要 2 个选项' };
|
|
27
|
+
}
|
|
28
|
+
const result = await endpoint.sendPoll(Number(chat_id), question, optList, is_anonymous ?? true, allows_multiple ?? false);
|
|
29
|
+
return { success: true, message_id: result.message_id, message: '投票已发送' };
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=send_poll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send_poll.js","sourceRoot":"","sources":["../../../agent/tools/send_poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAAiI;IACxJ,WAAW,EAAE,oBAAoB;IACjC,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,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1D,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KACpE,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAmI;QACvN,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CACpC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAClC,YAAY,IAAI,IAAI,EAAE,eAAe,IAAI,KAAK,CAC/C,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5E,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '发送 Telegram 贴纸',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
sticker: z.string().describe('贴纸 file_id 或 URL'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['telegram'],
|
|
12
|
+
tags: ['telegram'],
|
|
13
|
+
async execute({ endpoint_id, chat_id, sticker }) {
|
|
14
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const result = await endpoint.sendStickerMessage(Number(chat_id), sticker);
|
|
16
|
+
return { success: true, message_id: result.message_id, message: '贴纸已发送' };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=send_sticker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send_sticker.js","sourceRoot":"","sources":["../../../agent/tools/send_sticker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAA4D;IACnF,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;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACjD,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAA8D;QACzG,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5E,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
4
|
+
export default defineTool({
|
|
5
|
+
description: '设置 Telegram 群组描述',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
8
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
9
|
+
description: z.string().describe('群描述文字'),
|
|
10
|
+
}),
|
|
11
|
+
platforms: ['telegram'],
|
|
12
|
+
tags: ['telegram'],
|
|
13
|
+
async execute({ endpoint_id, chat_id, description }) {
|
|
14
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
15
|
+
const success = await endpoint.setChatDescription(Number(chat_id), description);
|
|
16
|
+
return { success, message: success ? '群描述已更新' : '操作失败' };
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=set_description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set_description.js","sourceRoot":"","sources":["../../../agent/tools/set_description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAAgE;IACvF,WAAW,EAAE,kBAAkB;IAC/B,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,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAkE;QACjH,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QAChF,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,34 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '设置 Telegram 群组的默认成员权限',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
can_send_messages: z.boolean().optional().describe('是否可以发消息'),
|
|
11
|
+
can_send_photos: z.boolean().optional().describe('是否可以发图片'),
|
|
12
|
+
can_send_videos: z.boolean().optional().describe('是否可以发视频'),
|
|
13
|
+
can_send_polls: z.boolean().optional().describe('是否可以发投票'),
|
|
14
|
+
can_send_other_messages: z.boolean().optional().describe('是否可以发贴纸/GIF等'),
|
|
15
|
+
can_add_web_page_previews: z.boolean().optional().describe('是否可以添加网页预览'),
|
|
16
|
+
can_change_info: z.boolean().optional().describe('是否可以改群信息'),
|
|
17
|
+
can_invite_users: z.boolean().optional().describe('是否可以邀请用户'),
|
|
18
|
+
can_pin_messages: z.boolean().optional().describe('是否可以置顶消息'),
|
|
19
|
+
}),
|
|
20
|
+
platforms: ['telegram'],
|
|
21
|
+
tags: ['telegram'],
|
|
22
|
+
permissions: [platformPermit('manage_chat')],
|
|
23
|
+
async execute({ endpoint_id, chat_id, ...perms }) {
|
|
24
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
25
|
+
const permissions = {};
|
|
26
|
+
for (const [k, v] of Object.entries(perms)) {
|
|
27
|
+
if (typeof v === 'boolean')
|
|
28
|
+
permissions[k] = v;
|
|
29
|
+
}
|
|
30
|
+
const success = await endpoint.setChatPermissionsAll(Number(chat_id), permissions);
|
|
31
|
+
return { success, message: success ? '群权限已更新' : '操作失败' };
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=set_permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set_permissions.js","sourceRoot":"","sources":["../../../agent/tools/set_permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAAmT;IAC1U,WAAW,EAAE,uBAAuB;IACpC,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,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3D,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxE,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC7D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC9D,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,WAAW,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC5C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,EAAqT;QACjW,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,KAAK,SAAS;gBAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACnF,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,21 @@
|
|
|
1
|
+
import { defineTool } from '@zhin.js/agent/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { platformPermit } from '../../src/platform-permit.js';
|
|
4
|
+
import { getTelegramAgentDeps } from '../../src/telegram-agent-deps.js';
|
|
5
|
+
export default defineTool({
|
|
6
|
+
description: '取消置顶 Telegram 群组消息',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
endpoint_id: z.string().describe('Endpoint 名称'),
|
|
9
|
+
chat_id: z.string().describe('聊天 ID'),
|
|
10
|
+
message_id: z.string().optional().describe('消息 ID(可选,不提供则取消所有置顶)'),
|
|
11
|
+
}),
|
|
12
|
+
platforms: ['telegram'],
|
|
13
|
+
tags: ['telegram'],
|
|
14
|
+
permissions: [platformPermit('pin_messages')],
|
|
15
|
+
async execute({ endpoint_id, chat_id, message_id }) {
|
|
16
|
+
const endpoint = getTelegramAgentDeps().getEndpoint(endpoint_id);
|
|
17
|
+
const success = await endpoint.unpinMessage(Number(chat_id), message_id ? Number(message_id) : undefined);
|
|
18
|
+
return { success, message: success ? '已取消置顶' : '操作失败' };
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=unpin_message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpin_message.js","sourceRoot":"","sources":["../../../agent/tools/unpin_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAe,UAAU,CAAgE;IACvF,WAAW,EAAE,oBAAoB;IACjC,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,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACnE,CAAC;IACF,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,WAAW,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAkE;QAChH,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1G,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 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|