remote-copilot-mcp 1.0.9 → 1.2.1
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/README.md +13 -11
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -25
- package/dist/index.js.map +1 -1
- package/dist/telegram.d.ts +19 -2
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +31 -2
- package/dist/telegram.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,15 +8,18 @@ This server exposes three tools that allow an AI assistant (e.g. GitHub Copilot)
|
|
|
8
8
|
|
|
9
9
|
| Tool | Description |
|
|
10
10
|
|------|-------------|
|
|
11
|
-
| `start_session` | Begin a remote-copilot session.
|
|
12
|
-
| `remote_copilot_wait_for_instructions` | Blocks (long-polls Telegram) until a new message arrives
|
|
13
|
-
| `report_progress` | Sends a progress update
|
|
11
|
+
| `start_session` | Begin a remote-copilot session. Automatically creates a dedicated Telegram topic thread in the forum supergroup so each session is fully isolated. |
|
|
12
|
+
| `remote_copilot_wait_for_instructions` | Blocks (long-polls Telegram) until a new message arrives in the active topic or the timeout elapses. |
|
|
13
|
+
| `report_progress` | Sends a progress update back to the operator in the active topic thread, using standard Markdown (auto-converted to Telegram MarkdownV2). |
|
|
14
14
|
|
|
15
15
|
## Prerequisites
|
|
16
16
|
|
|
17
17
|
- Node.js 18 or later (uses native `fetch`)
|
|
18
18
|
- A [Telegram bot token](https://core.telegram.org/bots#botfather) (`TELEGRAM_TOKEN`)
|
|
19
|
-
-
|
|
19
|
+
- A Telegram **forum supergroup** where the bot is an admin with the **Manage Topics** right
|
|
20
|
+
- In Telegram: create a group → *Edit → Topics → Enable*
|
|
21
|
+
- Add your bot as admin and grant it *Manage Topics*
|
|
22
|
+
- Copy the group's chat ID (e.g. `-1001234567890`) as `TELEGRAM_CHAT_ID`
|
|
20
23
|
|
|
21
24
|
## Installation
|
|
22
25
|
|
|
@@ -32,7 +35,7 @@ Set the following environment variables:
|
|
|
32
35
|
| Variable | Required | Default | Description |
|
|
33
36
|
|----------|----------|---------|-------------|
|
|
34
37
|
| `TELEGRAM_TOKEN` | ✅ | — | Telegram Bot API token from @BotFather |
|
|
35
|
-
| `TELEGRAM_CHAT_ID` | ✅ | — | Chat
|
|
38
|
+
| `TELEGRAM_CHAT_ID` | ✅ | — | Chat ID of the forum supergroup (e.g. `-1001234567890`). The bot must be admin with Manage Topics right. |
|
|
36
39
|
| `WAIT_TIMEOUT_MINUTES` | ❌ | `30` | Minutes to wait for a message before timing out |
|
|
37
40
|
|
|
38
41
|
## Usage
|
|
@@ -68,9 +71,8 @@ Add to your MCP configuration:
|
|
|
68
71
|
|
|
69
72
|
## How it works
|
|
70
73
|
|
|
71
|
-
1. The AI
|
|
72
|
-
2. The server long-polls the Telegram Bot API (`getUpdates`) in 45-second windows
|
|
73
|
-
3. When a message arrives the tool
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
5. At any point the assistant can call `report_progress` to send a status update back to the Telegram chat using **Telegram MarkdownV2** syntax. The call also checks for any messages the operator sent in the meantime and returns them so they are not missed.
|
|
74
|
+
1. The AI calls `start_session`, which **automatically creates a new Telegram topic** (e.g. *Copilot — 07 Mar 2026, 14:30*) in the forum supergroup. All sends and receives for this session are scoped to that thread, so multiple parallel sessions never interfere.
|
|
75
|
+
2. The server long-polls the Telegram Bot API (`getUpdates`) in 45-second windows, filtering messages by the active topic's `message_thread_id`.
|
|
76
|
+
3. When a message arrives the tool instructs the AI to act on it, then call `remote_copilot_wait_for_instructions` again to keep the loop alive.
|
|
77
|
+
4. If the timeout elapses with no message the tool tells the AI to call the tool again immediately (with a unique timestamp so VS Code's loop-detection heuristic is not triggered).
|
|
78
|
+
5. At any point the AI calls `report_progress` to post a status update to the active topic thread. The message is written in standard Markdown and automatically converted to Telegram MarkdownV2. Intermediate operator messages are also surfaced so they are not missed.
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Required environment variables:
|
|
11
11
|
* TELEGRAM_TOKEN – Telegram Bot API token.
|
|
12
|
-
* TELEGRAM_CHAT_ID –
|
|
12
|
+
* TELEGRAM_CHAT_ID – ID of a Telegram forum supergroup (topics must be enabled).
|
|
13
|
+
* The bot must be an admin with can_manage_topics right.
|
|
14
|
+
* Each start_session call automatically creates a new topic
|
|
15
|
+
* thread so concurrent sessions never interfere.
|
|
13
16
|
*
|
|
14
17
|
* Optional environment variables:
|
|
15
18
|
* WAIT_TIMEOUT_MINUTES – How long to wait for a message before timing out
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Required environment variables:
|
|
11
11
|
* TELEGRAM_TOKEN – Telegram Bot API token.
|
|
12
|
-
* TELEGRAM_CHAT_ID –
|
|
12
|
+
* TELEGRAM_CHAT_ID – ID of a Telegram forum supergroup (topics must be enabled).
|
|
13
|
+
* The bot must be an admin with can_manage_topics right.
|
|
14
|
+
* Each start_session call automatically creates a new topic
|
|
15
|
+
* thread so concurrent sessions never interfere.
|
|
13
16
|
*
|
|
14
17
|
* Optional environment variables:
|
|
15
18
|
* WAIT_TIMEOUT_MINUTES – How long to wait for a message before timing out
|
|
@@ -107,6 +110,18 @@ let nextUpdateId = await (async () => {
|
|
|
107
110
|
return 0;
|
|
108
111
|
}
|
|
109
112
|
})();
|
|
113
|
+
// Monotonically increasing counter so every timeout response is unique,
|
|
114
|
+
// preventing VS Code Copilot's loop-detection heuristic from killing the agent.
|
|
115
|
+
let waitCallCount = 0;
|
|
116
|
+
// Thread ID of the active session's forum topic. Set by start_session.
|
|
117
|
+
// All sends and receives are scoped to this thread so concurrent sessions
|
|
118
|
+
// in different topics never interfere with each other.
|
|
119
|
+
let currentThreadId;
|
|
120
|
+
// Timestamp of the last keep-alive ping sent to Telegram.
|
|
121
|
+
// Used to send periodic "session still alive" messages so the operator knows
|
|
122
|
+
// the agent hasn't silently died.
|
|
123
|
+
let lastKeepAliveSentAt = Date.now();
|
|
124
|
+
const KEEP_ALIVE_INTERVAL_MS = 1 * 60 * 60 * 1000; // 1 hour
|
|
110
125
|
// ---------------------------------------------------------------------------
|
|
111
126
|
// MCP Server
|
|
112
127
|
// ---------------------------------------------------------------------------
|
|
@@ -116,10 +131,28 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
116
131
|
tools: [
|
|
117
132
|
{
|
|
118
133
|
name: "start_session",
|
|
119
|
-
description: "Start a remote-copilot session.
|
|
134
|
+
description: "Start or resume a remote-copilot session. " +
|
|
135
|
+
"Creates a new dedicated Telegram topic thread for this session. " +
|
|
136
|
+
"If you are CONTINUING an existing chat (not a fresh conversation), " +
|
|
137
|
+
"look back through the conversation history for a previous start_session " +
|
|
138
|
+
"result that mentioned a Thread ID, then pass it as the threadId parameter " +
|
|
139
|
+
"to resume that existing topic instead of creating a new one. " +
|
|
140
|
+
"Requires the Telegram chat to be a forum supergroup with the bot as admin. " +
|
|
141
|
+
"Call this tool once, then call remote_copilot_wait_for_instructions.",
|
|
120
142
|
inputSchema: {
|
|
121
143
|
type: "object",
|
|
122
|
-
properties: {
|
|
144
|
+
properties: {
|
|
145
|
+
name: {
|
|
146
|
+
type: "string",
|
|
147
|
+
description: "Optional. A human-readable label for this session's Telegram topic (e.g. 'Fix auth bug'). " +
|
|
148
|
+
"If omitted, a timestamp-based name is used.",
|
|
149
|
+
},
|
|
150
|
+
threadId: {
|
|
151
|
+
type: "number",
|
|
152
|
+
description: "Optional. The Telegram message_thread_id of an existing topic to resume. " +
|
|
153
|
+
"When provided, no new topic is created — the session continues in the existing thread.",
|
|
154
|
+
},
|
|
155
|
+
},
|
|
123
156
|
required: [],
|
|
124
157
|
},
|
|
125
158
|
},
|
|
@@ -157,35 +190,87 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
157
190
|
/**
|
|
158
191
|
* Appended to every tool response so the agent is reminded of its
|
|
159
192
|
* obligations on every single tool call, not just at the start of a session.
|
|
193
|
+
* Includes the active thread ID so the agent can resume the session after a
|
|
194
|
+
* VS Code restart by passing it to start_session.
|
|
160
195
|
*/
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
196
|
+
function getReminders(threadId) {
|
|
197
|
+
const threadHint = threadId !== undefined
|
|
198
|
+
? `\n- Active Telegram thread ID: **${threadId}** — if this session is restarted, call start_session with threadId=${threadId} to resume this topic.`
|
|
199
|
+
: "";
|
|
200
|
+
return ("\n\n## REMINDERS" +
|
|
201
|
+
"\n- Call report_progress after every significant step — do not batch updates." +
|
|
202
|
+
"\n- When all work is done, YOU MUST call remote_copilot_wait_for_instructions. Never stop or summarize — always end by calling that tool." +
|
|
203
|
+
threadHint);
|
|
204
|
+
}
|
|
164
205
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
165
206
|
const { name, arguments: args } = request.params;
|
|
166
207
|
// ── start_session ─────────────────────────────────────────────────────────
|
|
167
208
|
if (name === "start_session") {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
209
|
+
const typedArgs = (args ?? {});
|
|
210
|
+
const resumeThreadId = typeof typedArgs.threadId === "number"
|
|
211
|
+
? typedArgs.threadId
|
|
212
|
+
: undefined;
|
|
213
|
+
const customName = typeof typedArgs.name === "string" && typedArgs.name.trim()
|
|
214
|
+
? typedArgs.name.trim()
|
|
215
|
+
: undefined;
|
|
216
|
+
if (resumeThreadId !== undefined) {
|
|
217
|
+
// Resume mode: reuse an existing topic thread.
|
|
218
|
+
currentThreadId = resumeThreadId;
|
|
219
|
+
lastKeepAliveSentAt = Date.now();
|
|
220
|
+
try {
|
|
221
|
+
const msg = convertMarkdown("🔄 **Session resumed.** Continuing in this thread.");
|
|
222
|
+
await telegram.sendMessage(TELEGRAM_CHAT_ID, msg, "MarkdownV2", currentThreadId);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Non-fatal.
|
|
226
|
+
}
|
|
174
227
|
}
|
|
175
|
-
|
|
176
|
-
//
|
|
228
|
+
else {
|
|
229
|
+
// New session: create a dedicated forum topic.
|
|
230
|
+
const topicName = customName ??
|
|
231
|
+
`Copilot — ${new Date().toLocaleString("en-GB", {
|
|
232
|
+
day: "2-digit", month: "short", year: "numeric",
|
|
233
|
+
hour: "2-digit", minute: "2-digit", hour12: false,
|
|
234
|
+
})}`;
|
|
235
|
+
try {
|
|
236
|
+
const topic = await telegram.createForumTopic(TELEGRAM_CHAT_ID, topicName);
|
|
237
|
+
currentThreadId = topic.message_thread_id;
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
// Forum topics not available (e.g. plain group or DM) — fall back to no thread.
|
|
241
|
+
process.stderr.write(`Warning: Could not create forum topic: ${err instanceof Error ? err.message : String(err)}\n` +
|
|
242
|
+
"Falling back to main chat (no thread isolation).\n");
|
|
243
|
+
currentThreadId = undefined;
|
|
244
|
+
}
|
|
245
|
+
lastKeepAliveSentAt = Date.now();
|
|
246
|
+
try {
|
|
247
|
+
const greeting = convertMarkdown("# 🤖 Remote Copilot Ready\n\n" +
|
|
248
|
+
"Your AI assistant is online and listening.\n\n" +
|
|
249
|
+
"**Send your instructions** and I'll get to work — " +
|
|
250
|
+
"I'll keep you posted on progress as I go.");
|
|
251
|
+
await telegram.sendMessage(TELEGRAM_CHAT_ID, greeting, "MarkdownV2", currentThreadId);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
// Non-fatal.
|
|
255
|
+
}
|
|
177
256
|
}
|
|
257
|
+
const threadNote = currentThreadId !== undefined
|
|
258
|
+
? ` Thread ID: ${currentThreadId} (pass this to start_session as threadId to resume this topic later).`
|
|
259
|
+
: "";
|
|
178
260
|
return {
|
|
179
261
|
content: [
|
|
180
262
|
{
|
|
181
263
|
type: "text",
|
|
182
|
-
text:
|
|
264
|
+
text: `Session ${resumeThreadId !== undefined ? "resumed" : "started"}.${threadNote}` +
|
|
265
|
+
` Call the remote_copilot_wait_for_instructions tool next.` +
|
|
266
|
+
getReminders(currentThreadId),
|
|
183
267
|
},
|
|
184
268
|
],
|
|
185
269
|
};
|
|
186
270
|
}
|
|
187
271
|
// ── remote_copilot_wait_for_instructions ──────────────────────────────────
|
|
188
272
|
if (name === "remote_copilot_wait_for_instructions") {
|
|
273
|
+
const callNumber = ++waitCallCount;
|
|
189
274
|
const timeoutMs = WAIT_TIMEOUT_MINUTES * 60 * 1000;
|
|
190
275
|
const deadline = Date.now() + timeoutMs;
|
|
191
276
|
// Telegram's maximum long-poll timeout is 50 s; we loop until the
|
|
@@ -217,10 +302,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
217
302
|
if (updates.length > 0) {
|
|
218
303
|
// Advance the offset so we don't see these updates again.
|
|
219
304
|
nextUpdateId = updates[updates.length - 1].update_id + 1;
|
|
220
|
-
// Collect text messages from the target chat.
|
|
305
|
+
// Collect text messages from the target chat, scoped to the active thread.
|
|
221
306
|
const messages = updates
|
|
222
307
|
.filter((u) => u.message?.text !== undefined &&
|
|
223
|
-
String(u.message.chat.id) === TELEGRAM_CHAT_ID
|
|
308
|
+
String(u.message.chat.id) === TELEGRAM_CHAT_ID &&
|
|
309
|
+
(currentThreadId === undefined ||
|
|
310
|
+
u.message.message_thread_id === currentThreadId))
|
|
224
311
|
.map((u) => u.message.text);
|
|
225
312
|
if (messages.length > 0) {
|
|
226
313
|
const prompt = messages.join("\n\n");
|
|
@@ -229,7 +316,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
229
316
|
{
|
|
230
317
|
type: "text",
|
|
231
318
|
text: `Follow the instructions: ${prompt}. Create plan, use subagents.` +
|
|
232
|
-
|
|
319
|
+
getReminders(currentThreadId),
|
|
233
320
|
},
|
|
234
321
|
],
|
|
235
322
|
};
|
|
@@ -239,12 +326,35 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
239
326
|
}
|
|
240
327
|
}
|
|
241
328
|
// Timeout elapsed with no actionable message.
|
|
329
|
+
const now = new Date().toISOString();
|
|
330
|
+
// Keep-alive ping: send a periodic heartbeat to Telegram so the operator
|
|
331
|
+
// knows the session is still alive even with no activity.
|
|
332
|
+
let keepAliveSent = false;
|
|
333
|
+
if (Date.now() - lastKeepAliveSentAt >= KEEP_ALIVE_INTERVAL_MS) {
|
|
334
|
+
lastKeepAliveSentAt = Date.now();
|
|
335
|
+
try {
|
|
336
|
+
const ping = convertMarkdown(`🟢 **Session alive** — ${new Date().toLocaleString("en-GB", {
|
|
337
|
+
day: "2-digit", month: "short", hour: "2-digit", minute: "2-digit", hour12: false,
|
|
338
|
+
})}` +
|
|
339
|
+
(currentThreadId !== undefined ? ` \\(thread ${currentThreadId}\\)` : ""));
|
|
340
|
+
await telegram.sendMessage(TELEGRAM_CHAT_ID, ping, "MarkdownV2", currentThreadId);
|
|
341
|
+
keepAliveSent = true;
|
|
342
|
+
}
|
|
343
|
+
catch {
|
|
344
|
+
// Non-fatal.
|
|
345
|
+
}
|
|
346
|
+
}
|
|
242
347
|
return {
|
|
243
348
|
content: [
|
|
244
349
|
{
|
|
245
350
|
type: "text",
|
|
246
|
-
text: `
|
|
247
|
-
`
|
|
351
|
+
text: `[Poll #${callNumber} ended at ${now}]` +
|
|
352
|
+
(keepAliveSent ? ` Keep-alive ping sent to Telegram at ${now}.` : "") +
|
|
353
|
+
` No new instructions received within ${WAIT_TIMEOUT_MINUTES} minute(s). ` +
|
|
354
|
+
`YOU MUST call remote_copilot_wait_for_instructions again RIGHT NOW. ` +
|
|
355
|
+
`Do NOT summarize. Do NOT say the session is idle. Do NOT stop. ` +
|
|
356
|
+
`Just call the tool again immediately.` +
|
|
357
|
+
getReminders(currentThreadId),
|
|
248
358
|
},
|
|
249
359
|
],
|
|
250
360
|
};
|
|
@@ -270,7 +380,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
270
380
|
const message = convertMarkdown(rawMessage);
|
|
271
381
|
let sentAsPlainText = false;
|
|
272
382
|
try {
|
|
273
|
-
await telegram.sendMessage(TELEGRAM_CHAT_ID, message, "MarkdownV2");
|
|
383
|
+
await telegram.sendMessage(TELEGRAM_CHAT_ID, message, "MarkdownV2", currentThreadId);
|
|
274
384
|
}
|
|
275
385
|
catch (error) {
|
|
276
386
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -279,7 +389,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
279
389
|
const isParseError = errorMsg.includes("can't parse entities");
|
|
280
390
|
if (isParseError) {
|
|
281
391
|
try {
|
|
282
|
-
await telegram.sendMessage(TELEGRAM_CHAT_ID, rawMessage);
|
|
392
|
+
await telegram.sendMessage(TELEGRAM_CHAT_ID, rawMessage, undefined, currentThreadId);
|
|
283
393
|
sentAsPlainText = true;
|
|
284
394
|
}
|
|
285
395
|
catch (retryError) {
|
|
@@ -321,7 +431,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
321
431
|
nextUpdateId = pendingUpdates[pendingUpdates.length - 1].update_id + 1;
|
|
322
432
|
pendingMessages = pendingUpdates
|
|
323
433
|
.filter((u) => u.message?.text !== undefined &&
|
|
324
|
-
String(u.message.chat.id) === TELEGRAM_CHAT_ID
|
|
434
|
+
String(u.message.chat.id) === TELEGRAM_CHAT_ID &&
|
|
435
|
+
(currentThreadId === undefined ||
|
|
436
|
+
u.message.message_thread_id === currentThreadId))
|
|
325
437
|
.map((u) => u.message.text);
|
|
326
438
|
}
|
|
327
439
|
}
|
|
@@ -331,7 +443,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
331
443
|
}
|
|
332
444
|
const baseStatus = (sentAsPlainText
|
|
333
445
|
? "Progress reported successfully (as plain text — formatting could not be applied)."
|
|
334
|
-
: "Progress reported successfully.") +
|
|
446
|
+
: "Progress reported successfully.") + getReminders(currentThreadId);
|
|
335
447
|
const responseText = pendingMessages.length > 0
|
|
336
448
|
? `${baseStatus}\n\n` +
|
|
337
449
|
`While you were working, the operator sent additional message(s). ` +
|
|
@@ -340,7 +452,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
340
452
|
` - Read and incorporate the operator's new messages.\n` +
|
|
341
453
|
` - Update or refine your plan as needed.\n` +
|
|
342
454
|
` - Continue your work. Keep using subagents.` +
|
|
343
|
-
|
|
455
|
+
getReminders(currentThreadId)
|
|
344
456
|
: baseStatus;
|
|
345
457
|
return {
|
|
346
458
|
content: [
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/telegram.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface TelegramMessage {
|
|
|
9
9
|
};
|
|
10
10
|
text?: string;
|
|
11
11
|
date: number;
|
|
12
|
+
message_thread_id?: number;
|
|
12
13
|
}
|
|
13
14
|
export interface TelegramUpdate {
|
|
14
15
|
update_id: number;
|
|
@@ -24,6 +25,15 @@ export interface SendMessageResult {
|
|
|
24
25
|
result?: TelegramMessage;
|
|
25
26
|
description?: string;
|
|
26
27
|
}
|
|
28
|
+
export interface ForumTopic {
|
|
29
|
+
message_thread_id: number;
|
|
30
|
+
name: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CreateForumTopicResult {
|
|
33
|
+
ok: boolean;
|
|
34
|
+
result?: ForumTopic;
|
|
35
|
+
description?: string;
|
|
36
|
+
}
|
|
27
37
|
export declare class TelegramClient {
|
|
28
38
|
private readonly token;
|
|
29
39
|
private readonly baseUrl;
|
|
@@ -35,9 +45,16 @@ export declare class TelegramClient {
|
|
|
35
45
|
*/
|
|
36
46
|
getUpdates(offset: number, timeout: number, signal?: AbortSignal): Promise<TelegramUpdate[]>;
|
|
37
47
|
/**
|
|
38
|
-
*
|
|
48
|
+
* Create a topic in a forum supergroup.
|
|
49
|
+
* The bot must be an admin with can_manage_topics right.
|
|
50
|
+
* @returns The created ForumTopic (contains message_thread_id).
|
|
51
|
+
*/
|
|
52
|
+
createForumTopic(chatId: string, name: string): Promise<ForumTopic>;
|
|
53
|
+
/**
|
|
54
|
+
* Send a text message to a chat, optionally scoped to a forum topic thread.
|
|
39
55
|
* @param parseMode Optional parse mode. Telegram accepts "MarkdownV2", "Markdown", or "HTML".
|
|
56
|
+
* @param threadId Optional message_thread_id for forum supergroups.
|
|
40
57
|
*/
|
|
41
|
-
sendMessage(chatId: string, text: string, parseMode?: "MarkdownV2" | "Markdown" | "HTML"): Promise<void>;
|
|
58
|
+
sendMessage(chatId: string, text: string, parseMode?: "MarkdownV2" | "Markdown" | "HTML", threadId?: number): Promise<void>;
|
|
42
59
|
}
|
|
43
60
|
//# sourceMappingURL=telegram.d.ts.map
|
package/dist/telegram.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAEJ,KAAK,EAAE,MAAM;IAI1C;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC;IA8B5B;;;;OAIG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBzE;;;;OAIG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,EAC9C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAwCjB"}
|
package/dist/telegram.js
CHANGED
|
@@ -38,15 +38,44 @@ export class TelegramClient {
|
|
|
38
38
|
return data.result;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Create a topic in a forum supergroup.
|
|
42
|
+
* The bot must be an admin with can_manage_topics right.
|
|
43
|
+
* @returns The created ForumTopic (contains message_thread_id).
|
|
44
|
+
*/
|
|
45
|
+
async createForumTopic(chatId, name) {
|
|
46
|
+
const url = `${this.baseUrl}/createForumTopic`;
|
|
47
|
+
const response = await fetch(url, {
|
|
48
|
+
method: "POST",
|
|
49
|
+
headers: { "Content-Type": "application/json" },
|
|
50
|
+
body: JSON.stringify({ chat_id: chatId, name }),
|
|
51
|
+
});
|
|
52
|
+
let data;
|
|
53
|
+
try {
|
|
54
|
+
data = (await response.json());
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
data = undefined;
|
|
58
|
+
}
|
|
59
|
+
if (!response.ok || !data?.ok || !data.result) {
|
|
60
|
+
const description = data?.description ?? response.statusText;
|
|
61
|
+
throw new Error(`Telegram createForumTopic failed: ${description}`);
|
|
62
|
+
}
|
|
63
|
+
return data.result;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Send a text message to a chat, optionally scoped to a forum topic thread.
|
|
42
67
|
* @param parseMode Optional parse mode. Telegram accepts "MarkdownV2", "Markdown", or "HTML".
|
|
68
|
+
* @param threadId Optional message_thread_id for forum supergroups.
|
|
43
69
|
*/
|
|
44
|
-
async sendMessage(chatId, text, parseMode) {
|
|
70
|
+
async sendMessage(chatId, text, parseMode, threadId) {
|
|
45
71
|
const url = `${this.baseUrl}/sendMessage`;
|
|
46
72
|
const body = { chat_id: chatId, text };
|
|
47
73
|
if (parseMode) {
|
|
48
74
|
body.parse_mode = parseMode;
|
|
49
75
|
}
|
|
76
|
+
if (threadId !== undefined) {
|
|
77
|
+
body.message_thread_id = threadId;
|
|
78
|
+
}
|
|
50
79
|
const response = await fetch(url, {
|
|
51
80
|
method: "POST",
|
|
52
81
|
headers: { "Content-Type": "application/json" },
|
package/dist/telegram.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"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"}
|