agent-messenger 2.12.0 → 2.12.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 (121) hide show
  1. package/.claude-plugin/README.md +11 -1
  2. package/.claude-plugin/marketplace.json +14 -1
  3. package/.claude-plugin/plugin.json +4 -2
  4. package/CONTRIBUTING.md +12 -0
  5. package/README.md +30 -4
  6. package/dist/package.json +10 -2
  7. package/dist/src/cli.d.ts.map +1 -1
  8. package/dist/src/cli.js +3 -0
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/platforms/kakaotalk/client.d.ts +22 -0
  11. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  12. package/dist/src/platforms/kakaotalk/client.js +93 -7
  13. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  14. package/dist/src/platforms/kakaotalk/listener.d.ts +4 -7
  15. package/dist/src/platforms/kakaotalk/listener.d.ts.map +1 -1
  16. package/dist/src/platforms/kakaotalk/listener.js +43 -72
  17. package/dist/src/platforms/kakaotalk/listener.js.map +1 -1
  18. package/dist/src/platforms/telegrambot/cli.d.ts +5 -0
  19. package/dist/src/platforms/telegrambot/cli.d.ts.map +1 -0
  20. package/dist/src/platforms/telegrambot/cli.js +29 -0
  21. package/dist/src/platforms/telegrambot/cli.js.map +1 -0
  22. package/dist/src/platforms/telegrambot/client.d.ts +85 -0
  23. package/dist/src/platforms/telegrambot/client.d.ts.map +1 -0
  24. package/dist/src/platforms/telegrambot/client.js +282 -0
  25. package/dist/src/platforms/telegrambot/client.js.map +1 -0
  26. package/dist/src/platforms/telegrambot/commands/auth.d.ts +31 -0
  27. package/dist/src/platforms/telegrambot/commands/auth.d.ts.map +1 -0
  28. package/dist/src/platforms/telegrambot/commands/auth.js +173 -0
  29. package/dist/src/platforms/telegrambot/commands/auth.js.map +1 -0
  30. package/dist/src/platforms/telegrambot/commands/chat.d.ts +25 -0
  31. package/dist/src/platforms/telegrambot/commands/chat.d.ts.map +1 -0
  32. package/dist/src/platforms/telegrambot/commands/chat.js +69 -0
  33. package/dist/src/platforms/telegrambot/commands/chat.js.map +1 -0
  34. package/dist/src/platforms/telegrambot/commands/index.d.ts +6 -0
  35. package/dist/src/platforms/telegrambot/commands/index.d.ts.map +1 -0
  36. package/dist/src/platforms/telegrambot/commands/index.js +6 -0
  37. package/dist/src/platforms/telegrambot/commands/index.js.map +1 -0
  38. package/dist/src/platforms/telegrambot/commands/message.d.ts +39 -0
  39. package/dist/src/platforms/telegrambot/commands/message.d.ts.map +1 -0
  40. package/dist/src/platforms/telegrambot/commands/message.js +145 -0
  41. package/dist/src/platforms/telegrambot/commands/message.js.map +1 -0
  42. package/dist/src/platforms/telegrambot/commands/reaction.d.ts +16 -0
  43. package/dist/src/platforms/telegrambot/commands/reaction.d.ts.map +1 -0
  44. package/dist/src/platforms/telegrambot/commands/reaction.js +49 -0
  45. package/dist/src/platforms/telegrambot/commands/reaction.js.map +1 -0
  46. package/dist/src/platforms/telegrambot/commands/shared.d.ts +12 -0
  47. package/dist/src/platforms/telegrambot/commands/shared.d.ts.map +1 -0
  48. package/dist/src/platforms/telegrambot/commands/shared.js +21 -0
  49. package/dist/src/platforms/telegrambot/commands/shared.js.map +1 -0
  50. package/dist/src/platforms/telegrambot/commands/whoami.d.ts +17 -0
  51. package/dist/src/platforms/telegrambot/commands/whoami.d.ts.map +1 -0
  52. package/dist/src/platforms/telegrambot/commands/whoami.js +30 -0
  53. package/dist/src/platforms/telegrambot/commands/whoami.js.map +1 -0
  54. package/dist/src/platforms/telegrambot/credential-manager.d.ts +17 -0
  55. package/dist/src/platforms/telegrambot/credential-manager.d.ts.map +1 -0
  56. package/dist/src/platforms/telegrambot/credential-manager.js +113 -0
  57. package/dist/src/platforms/telegrambot/credential-manager.js.map +1 -0
  58. package/dist/src/platforms/telegrambot/index.d.ts +7 -0
  59. package/dist/src/platforms/telegrambot/index.d.ts.map +1 -0
  60. package/dist/src/platforms/telegrambot/index.js +5 -0
  61. package/dist/src/platforms/telegrambot/index.js.map +1 -0
  62. package/dist/src/platforms/telegrambot/listener.d.ts +30 -0
  63. package/dist/src/platforms/telegrambot/listener.d.ts.map +1 -0
  64. package/dist/src/platforms/telegrambot/listener.js +186 -0
  65. package/dist/src/platforms/telegrambot/listener.js.map +1 -0
  66. package/dist/src/platforms/telegrambot/types.d.ts +256 -0
  67. package/dist/src/platforms/telegrambot/types.d.ts.map +1 -0
  68. package/dist/src/platforms/telegrambot/types.js +96 -0
  69. package/dist/src/platforms/telegrambot/types.js.map +1 -0
  70. package/docs/content/docs/cli/meta.json +1 -0
  71. package/docs/content/docs/cli/telegrambot.mdx +149 -0
  72. package/docs/content/docs/index.mdx +10 -9
  73. package/docs/content/docs/quick-start.mdx +2 -0
  74. package/docs/content/docs/sdk/meta.json +1 -0
  75. package/docs/content/docs/sdk/telegrambot.mdx +216 -0
  76. package/e2e/config.ts +24 -0
  77. package/e2e/helpers.ts +1 -0
  78. package/e2e/telegrambot.e2e.test.ts +185 -0
  79. package/examples/telegrambot-listen.ts +54 -0
  80. package/package.json +10 -2
  81. package/scripts/postbuild.ts +1 -0
  82. package/skills/agent-channeltalk/SKILL.md +1 -1
  83. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  84. package/skills/agent-discord/SKILL.md +1 -1
  85. package/skills/agent-discordbot/SKILL.md +1 -1
  86. package/skills/agent-instagram/SKILL.md +1 -1
  87. package/skills/agent-kakaotalk/SKILL.md +12 -5
  88. package/skills/agent-line/SKILL.md +1 -1
  89. package/skills/agent-slack/SKILL.md +1 -1
  90. package/skills/agent-slackbot/SKILL.md +1 -1
  91. package/skills/agent-teams/SKILL.md +1 -1
  92. package/skills/agent-telegram/SKILL.md +1 -1
  93. package/skills/agent-telegrambot/SKILL.md +357 -0
  94. package/skills/agent-webex/SKILL.md +1 -1
  95. package/skills/agent-wechatbot/SKILL.md +1 -1
  96. package/skills/agent-whatsapp/SKILL.md +1 -1
  97. package/skills/agent-whatsappbot/SKILL.md +1 -1
  98. package/src/cli.ts +4 -0
  99. package/src/platforms/kakaotalk/client-listener-integration.test.ts +411 -0
  100. package/src/platforms/kakaotalk/client.test.ts +3 -0
  101. package/src/platforms/kakaotalk/client.ts +108 -9
  102. package/src/platforms/kakaotalk/listener.test.ts +155 -149
  103. package/src/platforms/kakaotalk/listener.ts +46 -80
  104. package/src/platforms/telegrambot/cli.ts +34 -0
  105. package/src/platforms/telegrambot/client.test.ts +454 -0
  106. package/src/platforms/telegrambot/client.ts +404 -0
  107. package/src/platforms/telegrambot/commands/auth.test.ts +244 -0
  108. package/src/platforms/telegrambot/commands/auth.ts +220 -0
  109. package/src/platforms/telegrambot/commands/chat.ts +96 -0
  110. package/src/platforms/telegrambot/commands/index.ts +5 -0
  111. package/src/platforms/telegrambot/commands/message.ts +235 -0
  112. package/src/platforms/telegrambot/commands/reaction.ts +70 -0
  113. package/src/platforms/telegrambot/commands/shared.ts +32 -0
  114. package/src/platforms/telegrambot/commands/whoami.ts +45 -0
  115. package/src/platforms/telegrambot/credential-manager.test.ts +196 -0
  116. package/src/platforms/telegrambot/credential-manager.ts +141 -0
  117. package/src/platforms/telegrambot/index.ts +44 -0
  118. package/src/platforms/telegrambot/listener.test.ts +398 -0
  119. package/src/platforms/telegrambot/listener.ts +198 -0
  120. package/src/platforms/telegrambot/types.test.ts +128 -0
  121. package/src/platforms/telegrambot/types.ts +282 -0
@@ -0,0 +1,256 @@
1
+ import { z } from 'zod';
2
+ export interface TelegramBotEntry {
3
+ bot_id: string;
4
+ bot_name: string;
5
+ token: string;
6
+ }
7
+ export interface TelegramBotConfig {
8
+ current: {
9
+ bot_id: string;
10
+ } | null;
11
+ bots: Record<string, TelegramBotEntry>;
12
+ }
13
+ export interface TelegramBotCredentials {
14
+ token: string;
15
+ bot_id: string;
16
+ bot_name: string;
17
+ }
18
+ export declare class TelegramBotError extends Error {
19
+ code: string;
20
+ constructor(message: string, code: string);
21
+ }
22
+ export interface TelegramBotUser {
23
+ id: number;
24
+ is_bot: boolean;
25
+ first_name: string;
26
+ last_name?: string;
27
+ username?: string;
28
+ language_code?: string;
29
+ is_premium?: boolean;
30
+ can_join_groups?: boolean;
31
+ can_read_all_group_messages?: boolean;
32
+ supports_inline_queries?: boolean;
33
+ }
34
+ export interface TelegramChat {
35
+ id: number;
36
+ type: 'private' | 'group' | 'supergroup' | 'channel';
37
+ title?: string;
38
+ username?: string;
39
+ first_name?: string;
40
+ last_name?: string;
41
+ is_forum?: boolean;
42
+ }
43
+ export interface TelegramChatFullInfo extends TelegramChat {
44
+ bio?: string;
45
+ description?: string;
46
+ invite_link?: string;
47
+ pinned_message?: TelegramMessage;
48
+ permissions?: Record<string, boolean>;
49
+ member_count?: number;
50
+ }
51
+ export interface TelegramChatMember {
52
+ user: TelegramBotUser;
53
+ status: 'creator' | 'administrator' | 'member' | 'restricted' | 'left' | 'kicked';
54
+ is_anonymous?: boolean;
55
+ custom_title?: string;
56
+ until_date?: number;
57
+ }
58
+ export interface TelegramMessageEntity {
59
+ type: string;
60
+ offset: number;
61
+ length: number;
62
+ url?: string;
63
+ user?: TelegramBotUser;
64
+ language?: string;
65
+ custom_emoji_id?: string;
66
+ }
67
+ export interface TelegramPhotoSize {
68
+ file_id: string;
69
+ file_unique_id: string;
70
+ width: number;
71
+ height: number;
72
+ file_size?: number;
73
+ }
74
+ export interface TelegramDocument {
75
+ file_id: string;
76
+ file_unique_id: string;
77
+ thumbnail?: TelegramPhotoSize;
78
+ file_name?: string;
79
+ mime_type?: string;
80
+ file_size?: number;
81
+ }
82
+ export interface TelegramMessage {
83
+ message_id: number;
84
+ message_thread_id?: number;
85
+ date: number;
86
+ chat: TelegramChat;
87
+ from?: TelegramBotUser;
88
+ sender_chat?: TelegramChat;
89
+ text?: string;
90
+ caption?: string;
91
+ entities?: TelegramMessageEntity[];
92
+ caption_entities?: TelegramMessageEntity[];
93
+ reply_to_message?: TelegramMessage;
94
+ edit_date?: number;
95
+ photo?: TelegramPhotoSize[];
96
+ document?: TelegramDocument;
97
+ is_topic_message?: boolean;
98
+ }
99
+ export interface TelegramReactionType {
100
+ type: 'emoji' | 'custom_emoji' | 'paid';
101
+ emoji?: string;
102
+ custom_emoji_id?: string;
103
+ }
104
+ export interface TelegramCallbackQuery {
105
+ id: string;
106
+ from: TelegramBotUser;
107
+ message?: TelegramMessage;
108
+ inline_message_id?: string;
109
+ chat_instance: string;
110
+ data?: string;
111
+ game_short_name?: string;
112
+ }
113
+ export interface TelegramInlineQuery {
114
+ id: string;
115
+ from: TelegramBotUser;
116
+ query: string;
117
+ offset: string;
118
+ chat_type?: string;
119
+ }
120
+ export interface TelegramChatMemberUpdated {
121
+ chat: TelegramChat;
122
+ from: TelegramBotUser;
123
+ date: number;
124
+ old_chat_member: TelegramChatMember;
125
+ new_chat_member: TelegramChatMember;
126
+ }
127
+ export interface TelegramUpdate {
128
+ update_id: number;
129
+ message?: TelegramMessage;
130
+ edited_message?: TelegramMessage;
131
+ channel_post?: TelegramMessage;
132
+ edited_channel_post?: TelegramMessage;
133
+ inline_query?: TelegramInlineQuery;
134
+ chosen_inline_result?: Record<string, unknown>;
135
+ callback_query?: TelegramCallbackQuery;
136
+ shipping_query?: Record<string, unknown>;
137
+ pre_checkout_query?: Record<string, unknown>;
138
+ poll?: Record<string, unknown>;
139
+ poll_answer?: Record<string, unknown>;
140
+ my_chat_member?: TelegramChatMemberUpdated;
141
+ chat_member?: TelegramChatMemberUpdated;
142
+ chat_join_request?: Record<string, unknown>;
143
+ message_reaction?: Record<string, unknown>;
144
+ message_reaction_count?: Record<string, unknown>;
145
+ }
146
+ export declare const TelegramBotEntrySchema: z.ZodObject<{
147
+ bot_id: z.ZodString;
148
+ bot_name: z.ZodString;
149
+ token: z.ZodString;
150
+ }, z.core.$strip>;
151
+ export declare const TelegramBotConfigSchema: z.ZodObject<{
152
+ current: z.ZodNullable<z.ZodObject<{
153
+ bot_id: z.ZodString;
154
+ }, z.core.$strip>>;
155
+ bots: z.ZodRecord<z.ZodString, z.ZodObject<{
156
+ bot_id: z.ZodString;
157
+ bot_name: z.ZodString;
158
+ token: z.ZodString;
159
+ }, z.core.$strip>>;
160
+ }, z.core.$strip>;
161
+ export declare const TelegramBotCredentialsSchema: z.ZodObject<{
162
+ token: z.ZodString;
163
+ bot_id: z.ZodString;
164
+ bot_name: z.ZodString;
165
+ }, z.core.$strip>;
166
+ export declare const TelegramBotUserSchema: z.ZodObject<{
167
+ id: z.ZodNumber;
168
+ is_bot: z.ZodBoolean;
169
+ first_name: z.ZodString;
170
+ last_name: z.ZodOptional<z.ZodString>;
171
+ username: z.ZodOptional<z.ZodString>;
172
+ language_code: z.ZodOptional<z.ZodString>;
173
+ is_premium: z.ZodOptional<z.ZodBoolean>;
174
+ can_join_groups: z.ZodOptional<z.ZodBoolean>;
175
+ can_read_all_group_messages: z.ZodOptional<z.ZodBoolean>;
176
+ supports_inline_queries: z.ZodOptional<z.ZodBoolean>;
177
+ }, z.core.$loose>;
178
+ export declare const TelegramChatSchema: z.ZodObject<{
179
+ id: z.ZodNumber;
180
+ type: z.ZodEnum<{
181
+ channel: "channel";
182
+ group: "group";
183
+ private: "private";
184
+ supergroup: "supergroup";
185
+ }>;
186
+ title: z.ZodOptional<z.ZodString>;
187
+ username: z.ZodOptional<z.ZodString>;
188
+ first_name: z.ZodOptional<z.ZodString>;
189
+ last_name: z.ZodOptional<z.ZodString>;
190
+ is_forum: z.ZodOptional<z.ZodBoolean>;
191
+ }, z.core.$loose>;
192
+ export declare const TelegramMessageEntitySchema: z.ZodObject<{
193
+ type: z.ZodString;
194
+ offset: z.ZodNumber;
195
+ length: z.ZodNumber;
196
+ url: z.ZodOptional<z.ZodString>;
197
+ user: z.ZodOptional<z.ZodObject<{
198
+ id: z.ZodNumber;
199
+ is_bot: z.ZodBoolean;
200
+ first_name: z.ZodString;
201
+ last_name: z.ZodOptional<z.ZodString>;
202
+ username: z.ZodOptional<z.ZodString>;
203
+ language_code: z.ZodOptional<z.ZodString>;
204
+ is_premium: z.ZodOptional<z.ZodBoolean>;
205
+ can_join_groups: z.ZodOptional<z.ZodBoolean>;
206
+ can_read_all_group_messages: z.ZodOptional<z.ZodBoolean>;
207
+ supports_inline_queries: z.ZodOptional<z.ZodBoolean>;
208
+ }, z.core.$loose>>;
209
+ language: z.ZodOptional<z.ZodString>;
210
+ custom_emoji_id: z.ZodOptional<z.ZodString>;
211
+ }, z.core.$strip>;
212
+ export declare const TelegramPhotoSizeSchema: z.ZodObject<{
213
+ file_id: z.ZodString;
214
+ file_unique_id: z.ZodString;
215
+ width: z.ZodNumber;
216
+ height: z.ZodNumber;
217
+ file_size: z.ZodOptional<z.ZodNumber>;
218
+ }, z.core.$strip>;
219
+ export declare const TelegramDocumentSchema: z.ZodObject<{
220
+ file_id: z.ZodString;
221
+ file_unique_id: z.ZodString;
222
+ thumbnail: z.ZodOptional<z.ZodObject<{
223
+ file_id: z.ZodString;
224
+ file_unique_id: z.ZodString;
225
+ width: z.ZodNumber;
226
+ height: z.ZodNumber;
227
+ file_size: z.ZodOptional<z.ZodNumber>;
228
+ }, z.core.$strip>>;
229
+ file_name: z.ZodOptional<z.ZodString>;
230
+ mime_type: z.ZodOptional<z.ZodString>;
231
+ file_size: z.ZodOptional<z.ZodNumber>;
232
+ }, z.core.$strip>;
233
+ export declare const TelegramMessageSchema: z.ZodType<TelegramMessage>;
234
+ export interface TelegramBotListenerOptions {
235
+ timeoutSeconds?: number;
236
+ limit?: number;
237
+ allowedUpdates?: string[];
238
+ dropPendingUpdates?: boolean;
239
+ }
240
+ export interface TelegramBotListenerEventMap {
241
+ message: [event: TelegramMessage];
242
+ edited_message: [event: TelegramMessage];
243
+ channel_post: [event: TelegramMessage];
244
+ edited_channel_post: [event: TelegramMessage];
245
+ callback_query: [event: TelegramCallbackQuery];
246
+ inline_query: [event: TelegramInlineQuery];
247
+ my_chat_member: [event: TelegramChatMemberUpdated];
248
+ chat_member: [event: TelegramChatMemberUpdated];
249
+ telegram_update: [event: TelegramUpdate];
250
+ connected: [info: {
251
+ user: TelegramBotUser;
252
+ }];
253
+ disconnected: [];
254
+ error: [error: Error];
255
+ }
256
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/platforms/telegrambot/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { z } from 'zod';
2
+ export class TelegramBotError extends Error {
3
+ code;
4
+ constructor(message, code) {
5
+ super(message);
6
+ this.name = 'TelegramBotError';
7
+ this.code = code;
8
+ }
9
+ }
10
+ export const TelegramBotEntrySchema = z.object({
11
+ bot_id: z.string(),
12
+ bot_name: z.string(),
13
+ token: z.string(),
14
+ });
15
+ export const TelegramBotConfigSchema = z.object({
16
+ current: z
17
+ .object({
18
+ bot_id: z.string(),
19
+ })
20
+ .nullable(),
21
+ bots: z.record(z.string(), TelegramBotEntrySchema),
22
+ });
23
+ export const TelegramBotCredentialsSchema = z.object({
24
+ token: z.string(),
25
+ bot_id: z.string(),
26
+ bot_name: z.string(),
27
+ });
28
+ export const TelegramBotUserSchema = z
29
+ .object({
30
+ id: z.number(),
31
+ is_bot: z.boolean(),
32
+ first_name: z.string(),
33
+ last_name: z.string().optional(),
34
+ username: z.string().optional(),
35
+ language_code: z.string().optional(),
36
+ is_premium: z.boolean().optional(),
37
+ can_join_groups: z.boolean().optional(),
38
+ can_read_all_group_messages: z.boolean().optional(),
39
+ supports_inline_queries: z.boolean().optional(),
40
+ })
41
+ .passthrough();
42
+ export const TelegramChatSchema = z
43
+ .object({
44
+ id: z.number(),
45
+ type: z.enum(['private', 'group', 'supergroup', 'channel']),
46
+ title: z.string().optional(),
47
+ username: z.string().optional(),
48
+ first_name: z.string().optional(),
49
+ last_name: z.string().optional(),
50
+ is_forum: z.boolean().optional(),
51
+ })
52
+ .passthrough();
53
+ export const TelegramMessageEntitySchema = z.object({
54
+ type: z.string(),
55
+ offset: z.number(),
56
+ length: z.number(),
57
+ url: z.string().optional(),
58
+ user: TelegramBotUserSchema.optional(),
59
+ language: z.string().optional(),
60
+ custom_emoji_id: z.string().optional(),
61
+ });
62
+ export const TelegramPhotoSizeSchema = z.object({
63
+ file_id: z.string(),
64
+ file_unique_id: z.string(),
65
+ width: z.number(),
66
+ height: z.number(),
67
+ file_size: z.number().optional(),
68
+ });
69
+ export const TelegramDocumentSchema = z.object({
70
+ file_id: z.string(),
71
+ file_unique_id: z.string(),
72
+ thumbnail: TelegramPhotoSizeSchema.optional(),
73
+ file_name: z.string().optional(),
74
+ mime_type: z.string().optional(),
75
+ file_size: z.number().optional(),
76
+ });
77
+ export const TelegramMessageSchema = z
78
+ .object({
79
+ message_id: z.number(),
80
+ message_thread_id: z.number().optional(),
81
+ date: z.number(),
82
+ chat: TelegramChatSchema,
83
+ from: TelegramBotUserSchema.optional(),
84
+ sender_chat: TelegramChatSchema.optional(),
85
+ text: z.string().optional(),
86
+ caption: z.string().optional(),
87
+ entities: z.array(TelegramMessageEntitySchema).optional(),
88
+ caption_entities: z.array(TelegramMessageEntitySchema).optional(),
89
+ reply_to_message: z.lazy(() => TelegramMessageSchema).optional(),
90
+ edit_date: z.number().optional(),
91
+ photo: z.array(TelegramPhotoSizeSchema).optional(),
92
+ document: TelegramDocumentSchema.optional(),
93
+ is_topic_message: z.boolean().optional(),
94
+ })
95
+ .passthrough();
96
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/platforms/telegrambot/types.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  "teams",
9
9
  "webex",
10
10
  "telegram",
11
+ "telegrambot",
11
12
  "whatsapp",
12
13
  "whatsappbot",
13
14
  "line",
@@ -0,0 +1,149 @@
1
+ ---
2
+ title: Telegram Bot
3
+ description: Complete reference for the agent-telegrambot CLI.
4
+ ---
5
+
6
+ > **Tip**: After `npm install -g agent-messenger`, `agent-telegrambot` is available directly. For one-off execution without a global install you can use `npm exec --package agent-messenger agent-telegrambot ...`, `pnpm dlx --package agent-messenger agent-telegrambot ...`, `yarn dlx agent-messenger agent-telegrambot ...`, or `bunx --package agent-messenger agent-telegrambot ...`.
7
+
8
+ ## Overview
9
+
10
+ `agent-telegrambot` wraps Telegram's official [HTTP Bot API](https://core.telegram.org/bots/api). It uses bot tokens issued by [@BotFather](https://t.me/BotFather) and is designed for server-side and CI/CD integrations.
11
+
12
+ For acting as a real user account (not a bot), use [`agent-telegram`](./telegram) instead.
13
+
14
+ ## Requirements
15
+
16
+ - A bot token from [@BotFather](https://t.me/BotFather)
17
+ - Node.js 18+ or Bun runtime
18
+
19
+ ## Quick Start
20
+
21
+ ```bash
22
+ # Set your bot token (validates against Telegram)
23
+ agent-telegrambot auth set 123456789:ABC-DEF1234...
24
+
25
+ # Verify auth
26
+ agent-telegrambot whoami
27
+
28
+ # Send a message
29
+ agent-telegrambot message send @channelname "Hello"
30
+
31
+ # Get chat info
32
+ agent-telegrambot chat info @channelname
33
+ ```
34
+
35
+ ## Authentication
36
+
37
+ ```bash
38
+ # Set bot token
39
+ agent-telegrambot auth set <token>
40
+
41
+ # Set with custom bot identifier
42
+ agent-telegrambot auth set <token> --bot deploy
43
+
44
+ # Check auth status
45
+ agent-telegrambot auth status
46
+
47
+ # List stored bots
48
+ agent-telegrambot auth list
49
+
50
+ # Switch active bot
51
+ agent-telegrambot auth use <bot-id>
52
+
53
+ # Remove a stored bot
54
+ agent-telegrambot auth remove <bot-id>
55
+
56
+ # Clear all credentials
57
+ agent-telegrambot auth clear
58
+ ```
59
+
60
+ Credentials are stored in `~/.config/agent-messenger/telegrambot-credentials.json` (0600 permissions).
61
+
62
+ ## Commands
63
+
64
+ ### Messages
65
+
66
+ ```bash
67
+ # Send a text message
68
+ agent-telegrambot message send <chat> <text>
69
+
70
+ # Format with Markdown or HTML
71
+ agent-telegrambot message send <chat> "<b>Bold</b>" --parse-mode HTML
72
+
73
+ # Reply to a specific message
74
+ agent-telegrambot message send <chat> "Reply" --reply-to 12345
75
+
76
+ # Send silently
77
+ agent-telegrambot message send <chat> "..." --silent
78
+
79
+ # Forum topic
80
+ agent-telegrambot message send <chat> "..." --thread-id 5
81
+
82
+ # Edit a message
83
+ agent-telegrambot message update <chat> <message-id> <new-text>
84
+
85
+ # Delete a message
86
+ agent-telegrambot message delete <chat> <message-id> --force
87
+
88
+ # Forward a message
89
+ agent-telegrambot message forward <to-chat> <from-chat> <message-id>
90
+
91
+ # Upload a document
92
+ agent-telegrambot message upload <chat> ./file.pdf --caption "Report"
93
+ ```
94
+
95
+ ### Chats
96
+
97
+ ```bash
98
+ # Get chat info (title, type, description, member count)
99
+ agent-telegrambot chat info <chat>
100
+
101
+ # Get a specific member's status
102
+ agent-telegrambot chat member <chat> <user-id>
103
+ ```
104
+
105
+ ### Reactions
106
+
107
+ ```bash
108
+ # Set a reaction (replaces existing)
109
+ agent-telegrambot reaction set <chat> <message-id> 👍
110
+
111
+ # Big animation
112
+ agent-telegrambot reaction set <chat> <message-id> 👍 --big
113
+
114
+ # Clear reactions
115
+ agent-telegrambot reaction clear <chat> <message-id>
116
+ ```
117
+
118
+ ### Whoami
119
+
120
+ ```bash
121
+ agent-telegrambot whoami
122
+ agent-telegrambot whoami --bot <bot-id>
123
+ ```
124
+
125
+ ## Chat IDs
126
+
127
+ The `<chat>` argument accepts:
128
+
129
+ - **Numeric ID**: `123456789` (user), `-1001234567890` (supergroup/channel)
130
+ - **@username**: `@channelname` (public chats only)
131
+ - **Plain username**: `channelname` (auto-prefixed with `@`)
132
+
133
+ ## Global Options
134
+
135
+ | Option | Description |
136
+ | ------------ | ------------------------------------- |
137
+ | `--pretty` | Human-readable output instead of JSON |
138
+ | `--bot <id>` | Use a specific bot for this command |
139
+
140
+ ## Real-Time Events
141
+
142
+ The CLI does not expose real-time events, but the SDK does — via long-polling. See the [SDK reference](../sdk/telegrambot) for `TelegramBotListener`.
143
+
144
+ ## Common Errors
145
+
146
+ - `Unauthorized` — Invalid or revoked token. Generate a new one via @BotFather.
147
+ - `Forbidden` — User hasn't `/start`ed the bot, bot was kicked, or bot lacks permissions.
148
+ - `Bad Request: chat not found` — Wrong chat ID or bot isn't in the chat.
149
+ - `Conflict` — Another polling instance (or webhook) is active for this bot.
@@ -33,14 +33,14 @@ No app creation. No admin approval. No waiting.
33
33
 
34
34
  ## Key Features
35
35
 
36
- | Feature | Description |
37
- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
38
- | **Auto-extraction** | Pulls tokens from desktop apps automatically |
39
- | **Multi-platform** | Slack, Discord, Microsoft Teams, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk (beta) |
40
- | **Multi-workspace** | Switch between workspaces/servers easily |
41
- | **JSON output** | Machine-readable by default, `--pretty` for humans |
42
- | **Comprehensive** | Messages, channels, users, reactions, files |
43
- | **Bot support** | [`agent-slackbot`](/docs/cli/slackbot), [`agent-discordbot`](/docs/cli/discordbot), and [`agent-channeltalkbot`](/docs/cli/channeltalkbot) for server-side and CI/CD |
36
+ | Feature | Description |
37
+ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
38
+ | **Auto-extraction** | Pulls tokens from desktop apps automatically |
39
+ | **Multi-platform** | Slack, Discord, Microsoft Teams, Telegram, WhatsApp, LINE, Instagram, KakaoTalk, and Channel Talk (beta) |
40
+ | **Multi-workspace** | Switch between workspaces/servers easily |
41
+ | **JSON output** | Machine-readable by default, `--pretty` for humans |
42
+ | **Comprehensive** | Messages, channels, users, reactions, files |
43
+ | **Bot support** | [`agent-slackbot`](/docs/cli/slackbot), [`agent-discordbot`](/docs/cli/discordbot), [`agent-telegrambot`](/docs/cli/telegrambot), and [`agent-channeltalkbot`](/docs/cli/channeltalkbot) for server-side and CI/CD |
44
44
 
45
45
  ## Why Not MCP?
46
46
 
@@ -81,7 +81,7 @@ OAuth is better when you need:
81
81
  - **Multi-user applications** - Many users authenticating separately
82
82
  - **Granular permissions** - Fine-tuned access control
83
83
 
84
- For these use cases, Agent Messenger also supports bot tokens via [`agent-slackbot`](/docs/cli/slackbot), [`agent-discordbot`](/docs/cli/discordbot), and [`agent-channeltalkbot`](/docs/cli/channeltalkbot).
84
+ For these use cases, Agent Messenger also supports bot tokens via [`agent-slackbot`](/docs/cli/slackbot), [`agent-discordbot`](/docs/cli/discordbot), [`agent-telegrambot`](/docs/cli/telegrambot), and [`agent-channeltalkbot`](/docs/cli/channeltalkbot).
85
85
 
86
86
  ## Design Principles
87
87
 
@@ -114,6 +114,7 @@ Tokens stay on your machine. Nothing is sent to external servers. Your credentia
114
114
  - [Discord Bot](/docs/cli/discordbot) - Bot token integration for server-side and CI/CD
115
115
  - [Teams](/docs/cli/teams) - Full Teams command reference
116
116
  - [Telegram](/docs/cli/telegram) - TDLib setup and Telegram command reference
117
+ - [Telegram Bot](/docs/cli/telegrambot) - Bot token integration for server-side and CI/CD
117
118
  - [WhatsApp](/docs/cli/whatsapp) - Full WhatsApp command reference
118
119
  - [WhatsApp Bot](/docs/cli/whatsappbot) - Cloud API integration for WhatsApp Business
119
120
  - [LINE](/docs/cli/line) - Full LINE command reference
@@ -31,6 +31,7 @@ This installs these CLI tools:
31
31
  - `agent-discordbot` — Discord Bot CLI (bot token, for server-side/CI/CD)
32
32
  - `agent-teams` — Microsoft Teams CLI
33
33
  - `agent-telegram` — Telegram CLI (user account via TDLib)
34
+ - `agent-telegrambot` — Telegram Bot CLI (bot token, for server-side/CI/CD)
34
35
  - `agent-whatsapp` — WhatsApp CLI (user account via Baileys, pairing code auth)
35
36
  - `agent-whatsappbot` — WhatsApp Bot CLI (Cloud API, for server-side/CI/CD)
36
37
  - `agent-line` — LINE CLI (QR code login, Thrift protocol)
@@ -123,6 +124,7 @@ agent-slack workspace current
123
124
  - [Discord Bot Reference](/docs/cli/discordbot) - Bot token for server-side/CI/CD
124
125
  - [Teams Reference](/docs/cli/teams) - Full command reference
125
126
  - [Telegram Reference](/docs/cli/telegram) - TDLib setup and command reference
127
+ - [Telegram Bot Reference](/docs/cli/telegrambot) - Bot token for server-side/CI/CD
126
128
  - [WhatsApp Reference](/docs/cli/whatsapp) - Full command reference
127
129
  - [WhatsApp Bot Reference](/docs/cli/whatsappbot) - Cloud API for WhatsApp Business
128
130
  - [KakaoTalk Reference](/docs/cli/kakaotalk) - Full command reference
@@ -7,6 +7,7 @@
7
7
  "discordbot",
8
8
  "teams",
9
9
  "webex",
10
+ "telegrambot",
10
11
  "whatsapp",
11
12
  "whatsappbot",
12
13
  "line",