@zhin.js/adapter-telegram 5.0.0 → 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.
Files changed (72) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +9 -0
  3. package/{skills/telegram → agent}/PERMITS.md +1 -1
  4. package/agent/tools/create_invite.ts +20 -0
  5. package/agent/tools/list_admins.ts +26 -0
  6. package/agent/tools/member_count.ts +18 -0
  7. package/agent/tools/pin_message.ts +21 -0
  8. package/agent/tools/react.ts +20 -0
  9. package/agent/tools/send_poll.ts +34 -0
  10. package/agent/tools/send_sticker.ts +19 -0
  11. package/agent/tools/set_description.ts +19 -0
  12. package/agent/tools/set_permissions.ts +33 -0
  13. package/agent/tools/unpin_message.ts +21 -0
  14. package/dist/index.js +2 -2
  15. package/lib/agent/tools/create_invite.js +20 -0
  16. package/lib/agent/tools/create_invite.js.map +1 -0
  17. package/lib/agent/tools/list_admins.js +26 -0
  18. package/lib/agent/tools/list_admins.js.map +1 -0
  19. package/lib/agent/tools/member_count.js +18 -0
  20. package/lib/agent/tools/member_count.js.map +1 -0
  21. package/lib/agent/tools/pin_message.js +21 -0
  22. package/lib/agent/tools/pin_message.js.map +1 -0
  23. package/lib/agent/tools/react.js +20 -0
  24. package/lib/agent/tools/react.js.map +1 -0
  25. package/lib/agent/tools/send_poll.js +32 -0
  26. package/lib/agent/tools/send_poll.js.map +1 -0
  27. package/lib/agent/tools/send_sticker.js +19 -0
  28. package/lib/agent/tools/send_sticker.js.map +1 -0
  29. package/lib/agent/tools/set_description.js +19 -0
  30. package/lib/agent/tools/set_description.js.map +1 -0
  31. package/lib/agent/tools/set_permissions.js +34 -0
  32. package/lib/agent/tools/set_permissions.js.map +1 -0
  33. package/lib/agent/tools/unpin_message.js +21 -0
  34. package/lib/agent/tools/unpin_message.js.map +1 -0
  35. package/lib/{adapter.js → src/adapter.js} +6 -5
  36. package/lib/src/adapter.js.map +1 -0
  37. package/lib/{endpoint.js → src/endpoint.js} +57 -8
  38. package/lib/src/endpoint.js.map +1 -0
  39. package/lib/src/index.js +215 -0
  40. package/lib/src/index.js.map +1 -0
  41. package/lib/{platform-permit.js → src/platform-permit.js} +5 -2
  42. package/lib/src/platform-permit.js.map +1 -0
  43. package/lib/src/segment-mapper.js +2 -0
  44. package/lib/src/segment-mapper.js.map +1 -0
  45. package/lib/src/telegram-agent-deps.js +10 -0
  46. package/lib/src/telegram-agent-deps.js.map +1 -0
  47. package/lib/src/types.js.map +1 -0
  48. package/package.json +27 -17
  49. package/src/adapter.ts +6 -5
  50. package/src/endpoint.ts +68 -7
  51. package/src/index.ts +13 -263
  52. package/src/platform-permit.ts +3 -4
  53. package/src/segment-mapper.ts +1 -0
  54. package/src/telegram-agent-deps.ts +22 -0
  55. package/lib/adapter.d.ts +0 -20
  56. package/lib/adapter.d.ts.map +0 -1
  57. package/lib/adapter.js.map +0 -1
  58. package/lib/endpoint.d.ts +0 -154
  59. package/lib/endpoint.d.ts.map +0 -1
  60. package/lib/endpoint.js.map +0 -1
  61. package/lib/index.d.ts +0 -18
  62. package/lib/index.d.ts.map +0 -1
  63. package/lib/index.js +0 -462
  64. package/lib/index.js.map +0 -1
  65. package/lib/platform-permit.d.ts +0 -19
  66. package/lib/platform-permit.d.ts.map +0 -1
  67. package/lib/platform-permit.js.map +0 -1
  68. package/lib/types.d.ts +0 -29
  69. package/lib/types.d.ts.map +0 -1
  70. package/lib/types.js.map +0 -1
  71. /package/{skills/telegram/SKILL.md → agent/skills/telegram.md} +0 -0
  72. /package/lib/{types.js → src/types.js} +0 -0
@@ -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"}
@@ -6,14 +6,15 @@ import { TelegramEndpoint } from "./endpoint.js";
6
6
  export class TelegramAdapter extends Adapter {
7
7
  static capabilities = ['inbound', 'outbound'];
8
8
  static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
9
+ static interactivePolicy = 'native';
9
10
  constructor(plugin) {
10
11
  super(plugin, "telegram", []);
11
12
  }
12
13
  createEndpoint(config) {
13
14
  return new TelegramEndpoint(this, config);
14
15
  }
15
- // ── IGroupManagement 标准群管方法 ──────────────────────────────────
16
- async kickMember(endpointId, sceneId, userId) {
16
+ // ── ISceneManagement 标准群管方法 ──────────────────────────────────
17
+ async removeMember(endpointId, sceneId, userId) {
17
18
  const endpoint = this.endpoints.get(endpointId);
18
19
  if (!endpoint)
19
20
  throw new Error(`Endpoint ${endpointId} 不存在`);
@@ -31,19 +32,19 @@ export class TelegramAdapter extends Adapter {
31
32
  throw new Error(`Endpoint ${endpointId} 不存在`);
32
33
  return endpoint.muteMember(Number(sceneId), Number(userId), duration);
33
34
  }
34
- async setAdmin(endpointId, sceneId, userId, enable = true) {
35
+ async setModerator(endpointId, sceneId, userId, enable = true) {
35
36
  const endpoint = this.endpoints.get(endpointId);
36
37
  if (!endpoint)
37
38
  throw new Error(`Endpoint ${endpointId} 不存在`);
38
39
  return endpoint.setAdmin(Number(sceneId), Number(userId), enable);
39
40
  }
40
- async setGroupName(endpointId, sceneId, name) {
41
+ async renameScene(endpointId, sceneId, name) {
41
42
  const endpoint = this.endpoints.get(endpointId);
42
43
  if (!endpoint)
43
44
  throw new Error(`Endpoint ${endpointId} 不存在`);
44
45
  return endpoint.setChatTitle(Number(sceneId), name);
45
46
  }
46
- async getGroupInfo(endpointId, sceneId) {
47
+ async getSceneInfo(endpointId, sceneId) {
47
48
  const endpoint = this.endpoints.get(endpointId);
48
49
  if (!endpoint)
49
50
  throw new Error(`Endpoint ${endpointId} 不存在`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
  * Telegram Endpoint 实现
3
3
  */
4
4
  import { Telegraf } from "telegraf";
5
- import { Message, segment, } from 'zhin.js';
5
+ import { Message, segment, expandInteractiveSegmentsInContent, } from 'zhin.js';
6
6
  import { normalizeTelegramChatMember } from "./platform-permit.js";
7
+ import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
7
8
  export class TelegramEndpoint extends Telegraf {
8
9
  adapter;
9
10
  $config;
@@ -31,8 +32,13 @@ export class TelegramEndpoint extends Telegraf {
31
32
  });
32
33
  // Set up callback query handler (for inline buttons)
33
34
  this.on("callback_query", async (ctx) => {
34
- // Handle callback queries as special messages
35
35
  if (ctx.callbackQuery && "data" in ctx.callbackQuery) {
36
+ try {
37
+ await ctx.answerCbQuery();
38
+ }
39
+ catch {
40
+ // already answered
41
+ }
36
42
  const message = this.$formatCallbackQuery(ctx);
37
43
  this.adapter.emit("message.receive", message);
38
44
  this.pluginLogger.debug(`${this.$config.name} recv callback ${message.$channel.type}(${message.$channel.id}): ${segment.raw(message.$content)}`);
@@ -141,9 +147,10 @@ export class TelegramEndpoint extends Telegraf {
141
147
  const channelType = msg.chat.type === "private" ? "private" : "group";
142
148
  const channelId = msg.chat.id.toString();
143
149
  // Parse message content
144
- const content = this.parseMessageContent(msg);
145
- const quoteId = Message.quoteIdFromContent(content);
146
- Message.alignReplySegments(content, quoteId);
150
+ const wire = this.parseMessageContent(msg);
151
+ const quoteId = Message.quoteIdFromContent(wire);
152
+ Message.alignReplySegments(wire, quoteId);
153
+ const content = toCanonicalSegments(wire);
147
154
  const result = Message.from(msg, {
148
155
  $id: msg.message_id.toString(),
149
156
  $adapter: "telegram",
@@ -232,7 +239,14 @@ export class TelegramEndpoint extends Telegraf {
232
239
  id: channelId,
233
240
  type: channelType,
234
241
  },
235
- $content: [{ type: "text", data: { text: query.data } }],
242
+ $content: [{
243
+ type: "action",
244
+ data: {
245
+ id: query.id,
246
+ payload: query.data,
247
+ sourceMessageId: msg && "message_id" in msg ? String(msg.message_id) : undefined,
248
+ },
249
+ }],
236
250
  $raw: query.data,
237
251
  $timestamp: Date.now(),
238
252
  $recall: async () => {
@@ -438,7 +452,9 @@ export class TelegramEndpoint extends Telegraf {
438
452
  async $sendMessage(options) {
439
453
  try {
440
454
  const chatId = parseInt(options.id);
441
- const result = await this.sendContentToChat(chatId, options.content);
455
+ const canonical = expandInteractiveSegmentsInContent(options.content);
456
+ const wire = fromCanonicalSegments(canonical);
457
+ const result = await this.sendContentToChat(chatId, wire);
442
458
  this.messageChatMap.set(result.message_id.toString(), options.id);
443
459
  this.pluginLogger.debug(`${this.$config.name} send ${options.type}(${options.id}): ${segment.raw(options.content)}`);
444
460
  return result.message_id.toString();
@@ -448,6 +464,30 @@ export class TelegramEndpoint extends Telegraf {
448
464
  throw error;
449
465
  }
450
466
  }
467
+ async $editMessage(options) {
468
+ const chatId = parseInt(options.id);
469
+ const messageId = parseInt(options.messageId);
470
+ const content = Array.isArray(options.content) ? options.content : [options.content];
471
+ let textContent = "";
472
+ let keyboard;
473
+ for (const seg of content) {
474
+ if (typeof seg === "string") {
475
+ textContent += seg;
476
+ continue;
477
+ }
478
+ if (seg.type === "text")
479
+ textContent += seg.data.text || "";
480
+ if (seg.type === "keyboard") {
481
+ keyboard = {
482
+ inline_keyboard: (seg.data.rows ?? []).map((row) => row.map((btn) => ({
483
+ text: btn.label,
484
+ callback_data: String(btn.payload).slice(0, 64),
485
+ }))),
486
+ };
487
+ }
488
+ }
489
+ await this.telegram.editMessageText(chatId, messageId, undefined, textContent.trim() || " ", keyboard ? { reply_markup: keyboard } : {});
490
+ }
451
491
  async sendContentToChat(chatId, content, extraOptions = {}) {
452
492
  if (!Array.isArray(content))
453
493
  content = [content];
@@ -589,6 +629,16 @@ export class TelegramEndpoint extends Telegraf {
589
629
  reply_parameters: { message_id: parseInt(data.id) },
590
630
  ...extraOptions,
591
631
  });
632
+ case "keyboard": {
633
+ const rows = (data.rows ?? []).map((row) => row.map((btn) => ({
634
+ text: btn.label,
635
+ callback_data: String(btn.payload).slice(0, 64),
636
+ })));
637
+ return await this.telegram.sendMessage(chatId, textContent.trim() || " ", {
638
+ reply_markup: { inline_keyboard: rows },
639
+ ...extraOptions,
640
+ });
641
+ }
592
642
  default:
593
643
  // Unknown segment type, add as text
594
644
  textContent += data.text || `[${type}]`;
@@ -602,7 +652,6 @@ export class TelegramEndpoint extends Telegraf {
602
652
  throw new Error("TelegramEndpoint.$sendMessage: No media or text content to send.");
603
653
  }
604
654
  async $recallMessage(id) {
605
- // Telegram requires both chat_id and message_id to delete a message
606
655
  // The Endpoint interface only provides message_id, making recall impossible
607
656
  // Users should use message.$recall() instead, which has the full context
608
657
  throw new Error("TelegramEndpoint.$recallMessage: Message recall not supported without chat_id. " +
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Telegram 适配器入口:类型扩展、导出、注册
3
+ */
4
+ import path from "node:path";
5
+ import { usePlugin, createSceneManagementTools } from "zhin.js";
6
+ import { TelegramAdapter } from "./adapter.js";
7
+ import { registerTelegramPlatformPermitChecker, telegramGroupPermitResolver, } from "./platform-permit.js";
8
+ import { setTelegramAgentDeps } from "./telegram-agent-deps.js";
9
+ export * from "./types.js";
10
+ export { TelegramEndpoint } from "./endpoint.js";
11
+ export { TelegramAdapter } from "./adapter.js";
12
+ const plugin = usePlugin();
13
+ const { provide, useContext } = plugin;
14
+ provide({
15
+ name: "telegram",
16
+ description: "Telegram Endpoint Adapter",
17
+ mounted: async (p) => {
18
+ const adapter = new TelegramAdapter(p);
19
+ await adapter.start();
20
+ return adapter;
21
+ },
22
+ dispose: async (adapter) => {
23
+ await adapter.stop();
24
+ },
25
+ });
26
+ useContext('tool', 'telegram', (toolService, telegram) => {
27
+ const disposers = [];
28
+ disposers.push(registerTelegramPlatformPermitChecker());
29
+ setTelegramAgentDeps({
30
+ getEndpoint: (endpointId) => {
31
+ const endpoint = telegram.endpoints.get(endpointId);
32
+ if (!endpoint)
33
+ throw new Error(`Endpoint ${endpointId} 不存在`);
34
+ return endpoint;
35
+ },
36
+ getAdapter: () => telegram,
37
+ });
38
+ const sceneTools = createSceneManagementTools(telegram, 'telegram', { permitResolver: telegramGroupPermitResolver, registerChecker: false });
39
+ disposers.push(...sceneTools.map(t => toolService.addTool(t, plugin.name)));
40
+ return () => disposers.forEach(d => d());
41
+ });
42
+ // ── Web 控制台 ─────────────────────────────────────────────────────────
43
+ useContext("web", (pageManager) => {
44
+ pageManager.addEntry({
45
+ id: "telegram",
46
+ development: path.resolve(import.meta.dirname, "../client/index.tsx"),
47
+ production: path.resolve(import.meta.dirname, "../dist/index.js"),
48
+ meta: { name: "Telegram" },
49
+ });
50
+ });
51
+ useContext("router", "telegram", (router, telegram) => {
52
+ router.get("/api/telegram/endpoints", async (ctx) => {
53
+ try {
54
+ const endpoints = Array.from(telegram.endpoints.values());
55
+ const result = endpoints.map((endpoint) => {
56
+ try {
57
+ return {
58
+ name: endpoint.$config.name,
59
+ connected: endpoint.$connected || false,
60
+ mode: endpoint.$config.polling !== false ? "polling" : "webhook",
61
+ status: endpoint.$connected ? "online" : "offline",
62
+ botInfo: endpoint.botInfo ? { username: endpoint.botInfo.username, firstName: endpoint.botInfo.first_name } : null,
63
+ };
64
+ }
65
+ catch {
66
+ return { name: endpoint.$config.name, connected: false, mode: "unknown", status: "error", botInfo: null };
67
+ }
68
+ });
69
+ ctx.body = { success: true, data: result };
70
+ }
71
+ catch {
72
+ ctx.status = 500;
73
+ ctx.body = { success: false, error: "获取 Endpoint 数据失败" };
74
+ }
75
+ });
76
+ // Endpoint 连接/断开
77
+ router.post("/api/telegram/endpoints/:name/connect", async (ctx) => {
78
+ try {
79
+ const endpoint = telegram.endpoints.get(ctx.params.name);
80
+ if (!endpoint) {
81
+ ctx.status = 404;
82
+ ctx.body = { success: false, error: "Endpoint 不存在" };
83
+ return;
84
+ }
85
+ if (endpoint.$connected) {
86
+ ctx.body = { success: true, message: "已经在线" };
87
+ return;
88
+ }
89
+ await endpoint.$connect();
90
+ ctx.body = { success: true, message: "连接成功" };
91
+ }
92
+ catch (e) {
93
+ ctx.status = 500;
94
+ ctx.body = { success: false, error: e instanceof Error ? e.message : "连接失败" };
95
+ }
96
+ });
97
+ router.post("/api/telegram/endpoints/:name/disconnect", async (ctx) => {
98
+ try {
99
+ const endpoint = telegram.endpoints.get(ctx.params.name);
100
+ if (!endpoint) {
101
+ ctx.status = 404;
102
+ ctx.body = { success: false, error: "Endpoint 不存在" };
103
+ return;
104
+ }
105
+ if (!endpoint.$connected) {
106
+ ctx.body = { success: true, message: "已经离线" };
107
+ return;
108
+ }
109
+ await endpoint.$disconnect();
110
+ ctx.body = { success: true, message: "已断开" };
111
+ }
112
+ catch (e) {
113
+ ctx.status = 500;
114
+ ctx.body = { success: false, error: e instanceof Error ? e.message : "断开失败" };
115
+ }
116
+ });
117
+ // 快捷操作:创建邀请链接
118
+ router.post("/api/telegram/endpoints/:name/invite", async (ctx) => {
119
+ try {
120
+ const endpoint = telegram.endpoints.get(ctx.params.name);
121
+ if (!endpoint) {
122
+ ctx.status = 404;
123
+ ctx.body = { success: false, error: "Endpoint 不存在" };
124
+ return;
125
+ }
126
+ if (!endpoint.$connected) {
127
+ ctx.status = 400;
128
+ ctx.body = { success: false, error: "Endpoint 未连接" };
129
+ return;
130
+ }
131
+ const { chat_id } = ctx.request.body || {};
132
+ if (!chat_id) {
133
+ ctx.status = 400;
134
+ ctx.body = { success: false, error: "缺少 chat_id" };
135
+ return;
136
+ }
137
+ const link = await endpoint.createInviteLink(Number(chat_id));
138
+ ctx.body = { success: true, data: { invite_link: link } };
139
+ }
140
+ catch (e) {
141
+ ctx.status = 500;
142
+ ctx.body = { success: false, error: e instanceof Error ? e.message : "创建邀请链接失败" };
143
+ }
144
+ });
145
+ // 快捷操作:发起投票
146
+ router.post("/api/telegram/endpoints/:name/poll", async (ctx) => {
147
+ try {
148
+ const endpoint = telegram.endpoints.get(ctx.params.name);
149
+ if (!endpoint) {
150
+ ctx.status = 404;
151
+ ctx.body = { success: false, error: "Endpoint 不存在" };
152
+ return;
153
+ }
154
+ if (!endpoint.$connected) {
155
+ ctx.status = 400;
156
+ ctx.body = { success: false, error: "Endpoint 未连接" };
157
+ return;
158
+ }
159
+ const { chat_id, question, options, is_anonymous, allows_multiple } = ctx.request.body || {};
160
+ if (!chat_id || !question || !options?.length) {
161
+ ctx.status = 400;
162
+ ctx.body = { success: false, error: "缺少 chat_id, question 或 options" };
163
+ return;
164
+ }
165
+ if (options.length < 2) {
166
+ ctx.status = 400;
167
+ ctx.body = { success: false, error: "至少需要 2 个选项" };
168
+ return;
169
+ }
170
+ const result = await endpoint.sendPoll(Number(chat_id), question, options, is_anonymous ?? true, allows_multiple ?? false);
171
+ ctx.body = { success: true, data: { message_id: result.message_id } };
172
+ }
173
+ catch (e) {
174
+ ctx.status = 500;
175
+ ctx.body = { success: false, error: e instanceof Error ? e.message : "发起投票失败" };
176
+ }
177
+ });
178
+ // 快捷操作:获取群管理员
179
+ router.get("/api/telegram/endpoints/:name/admins", async (ctx) => {
180
+ try {
181
+ const endpoint = telegram.endpoints.get(ctx.params.name);
182
+ if (!endpoint) {
183
+ ctx.status = 404;
184
+ ctx.body = { success: false, error: "Endpoint 不存在" };
185
+ return;
186
+ }
187
+ if (!endpoint.$connected) {
188
+ ctx.status = 400;
189
+ ctx.body = { success: false, error: "Endpoint 未连接" };
190
+ return;
191
+ }
192
+ const chat_id = ctx.query.chat_id;
193
+ if (!chat_id) {
194
+ ctx.status = 400;
195
+ ctx.body = { success: false, error: "缺少 chat_id" };
196
+ return;
197
+ }
198
+ const admins = await endpoint.getChatAdmins(Number(chat_id));
199
+ ctx.body = {
200
+ success: true,
201
+ data: admins.map((a) => ({
202
+ user_id: a.user.id,
203
+ username: a.user.username,
204
+ first_name: a.user.first_name,
205
+ status: a.status,
206
+ })),
207
+ };
208
+ }
209
+ catch (e) {
210
+ ctx.status = 500;
211
+ ctx.body = { success: false, error: e instanceof Error ? e.message : "获取管理员失败" };
212
+ }
213
+ });
214
+ });
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
+ /**
2
+ * Telegram platform permit — ChatMember 状态 + 细粒度权限
3
+ */
1
4
  import { registerPlatformPermitChecker } from 'zhin.js';
2
5
  const ADAPTER = 'telegram';
3
6
  export function platformPermit(perm) {
4
7
  return `platform(${ADAPTER},${perm})`;
5
8
  }
6
9
  const FACTORY_PERM_MAP = {
7
- group_admin: 'chat_administrator',
8
- group_owner: 'chat_creator',
10
+ scene_admin: 'chat_administrator',
11
+ scene_owner: 'chat_creator',
9
12
  };
10
13
  export function telegramGroupPermitResolver(logicalPerm) {
11
14
  return platformPermit(FACTORY_PERM_MAP[logicalPerm] ?? logicalPerm);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-permit.js","sourceRoot":"","sources":["../../src/platform-permit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
2
+ //# sourceMappingURL=segment-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-mapper.js","sourceRoot":"","sources":["../../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ let _deps = null;
2
+ export function setTelegramAgentDeps(deps) {
3
+ _deps = deps;
4
+ }
5
+ export function getTelegramAgentDeps() {
6
+ if (!_deps)
7
+ throw new Error('telegram agent deps not initialized');
8
+ return _deps;
9
+ }
10
+ //# sourceMappingURL=telegram-agent-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-agent-deps.js","sourceRoot":"","sources":["../../src/telegram-agent-deps.ts"],"names":[],"mappings":"AAYA,IAAI,KAAK,GAA6B,IAAI,CAAC;AAE3C,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}