remote-copilot-mcp 1.2.1 → 1.2.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/dist/index.js +112 -23
- package/dist/index.js.map +1 -1
- package/dist/telegram.d.ts +38 -0
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +77 -16
- package/dist/telegram.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23,6 +23,9 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
|
23
23
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
24
24
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
25
25
|
import { createRequire } from "module";
|
|
26
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
27
|
+
import { homedir } from "os";
|
|
28
|
+
import { join } from "path";
|
|
26
29
|
import { TelegramClient } from "./telegram.js";
|
|
27
30
|
const _require = createRequire(import.meta.url);
|
|
28
31
|
const { version: PKG_VERSION } = _require("../package.json");
|
|
@@ -113,6 +116,40 @@ let nextUpdateId = await (async () => {
|
|
|
113
116
|
// Monotonically increasing counter so every timeout response is unique,
|
|
114
117
|
// preventing VS Code Copilot's loop-detection heuristic from killing the agent.
|
|
115
118
|
let waitCallCount = 0;
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
// Session store — persists topic name → thread ID mappings to disk so the
|
|
121
|
+
// agent can resume a named session even after a VS Code restart.
|
|
122
|
+
// Format: { "<chatId>": { "<lowercased name>": threadId } }
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
const SESSION_STORE_PATH = join(homedir(), ".remote-copilot-mcp-sessions.json");
|
|
125
|
+
function loadSessionMap() {
|
|
126
|
+
try {
|
|
127
|
+
const raw = readFileSync(SESSION_STORE_PATH, "utf8");
|
|
128
|
+
return JSON.parse(raw);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return {};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function saveSessionMap(map) {
|
|
135
|
+
try {
|
|
136
|
+
writeFileSync(SESSION_STORE_PATH, JSON.stringify(map, null, 2), "utf8");
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
process.stderr.write(`Warning: Could not save session map to ${SESSION_STORE_PATH}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function lookupSession(chatId, name) {
|
|
143
|
+
const map = loadSessionMap();
|
|
144
|
+
return map[chatId]?.[name.toLowerCase()];
|
|
145
|
+
}
|
|
146
|
+
function persistSession(chatId, name, threadId) {
|
|
147
|
+
const map = loadSessionMap();
|
|
148
|
+
if (!map[chatId])
|
|
149
|
+
map[chatId] = {};
|
|
150
|
+
map[chatId][name.toLowerCase()] = threadId;
|
|
151
|
+
saveSessionMap(map);
|
|
152
|
+
}
|
|
116
153
|
// Thread ID of the active session's forum topic. Set by start_session.
|
|
117
154
|
// All sends and receives are scoped to this thread so concurrent sessions
|
|
118
155
|
// in different topics never interfere with each other.
|
|
@@ -132,11 +169,12 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
132
169
|
{
|
|
133
170
|
name: "start_session",
|
|
134
171
|
description: "Start or resume a remote-copilot session. " +
|
|
135
|
-
"
|
|
172
|
+
"When called with a name that was used before, the server looks up the " +
|
|
173
|
+
"existing Telegram topic for that name and resumes it instead of creating a new one. " +
|
|
136
174
|
"If you are CONTINUING an existing chat (not a fresh conversation), " +
|
|
137
175
|
"look back through the conversation history for a previous start_session " +
|
|
138
176
|
"result that mentioned a Thread ID, then pass it as the threadId parameter " +
|
|
139
|
-
"to resume that existing topic
|
|
177
|
+
"to resume that existing topic. " +
|
|
140
178
|
"Requires the Telegram chat to be a forum supergroup with the bot as admin. " +
|
|
141
179
|
"Call this tool once, then call remote_copilot_wait_for_instructions.",
|
|
142
180
|
inputSchema: {
|
|
@@ -207,15 +245,33 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
207
245
|
// ── start_session ─────────────────────────────────────────────────────────
|
|
208
246
|
if (name === "start_session") {
|
|
209
247
|
const typedArgs = (args ?? {});
|
|
210
|
-
const
|
|
248
|
+
const explicitThreadId = typeof typedArgs.threadId === "number"
|
|
211
249
|
? typedArgs.threadId
|
|
212
250
|
: undefined;
|
|
213
251
|
const customName = typeof typedArgs.name === "string" && typedArgs.name.trim()
|
|
214
252
|
? typedArgs.name.trim()
|
|
215
253
|
: undefined;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
254
|
+
// Determine the thread to use:
|
|
255
|
+
// 1. Explicit threadId beats everything.
|
|
256
|
+
// 2. A known name looks up the persisted mapping — resume if found.
|
|
257
|
+
// 3. Otherwise create a new topic.
|
|
258
|
+
let resolvedPreexisting = false;
|
|
259
|
+
if (explicitThreadId !== undefined) {
|
|
260
|
+
currentThreadId = explicitThreadId;
|
|
261
|
+
// If a name was also supplied, keep the mapping up to date.
|
|
262
|
+
if (customName)
|
|
263
|
+
persistSession(TELEGRAM_CHAT_ID, customName, explicitThreadId);
|
|
264
|
+
resolvedPreexisting = true;
|
|
265
|
+
}
|
|
266
|
+
else if (customName !== undefined) {
|
|
267
|
+
const stored = lookupSession(TELEGRAM_CHAT_ID, customName);
|
|
268
|
+
if (stored !== undefined) {
|
|
269
|
+
currentThreadId = stored;
|
|
270
|
+
resolvedPreexisting = true;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (resolvedPreexisting) {
|
|
274
|
+
// Resume mode: send notification to the existing thread.
|
|
219
275
|
lastKeepAliveSentAt = Date.now();
|
|
220
276
|
try {
|
|
221
277
|
const msg = convertMarkdown("🔄 **Session resumed.** Continuing in this thread.");
|
|
@@ -235,6 +291,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
235
291
|
try {
|
|
236
292
|
const topic = await telegram.createForumTopic(TELEGRAM_CHAT_ID, topicName);
|
|
237
293
|
currentThreadId = topic.message_thread_id;
|
|
294
|
+
// Persist so the same name resumes this thread next time.
|
|
295
|
+
persistSession(TELEGRAM_CHAT_ID, topicName, currentThreadId);
|
|
238
296
|
}
|
|
239
297
|
catch (err) {
|
|
240
298
|
// Forum topics not available (e.g. plain group or DM) — fall back to no thread.
|
|
@@ -261,7 +319,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
261
319
|
content: [
|
|
262
320
|
{
|
|
263
321
|
type: "text",
|
|
264
|
-
text: `Session ${
|
|
322
|
+
text: `Session ${resolvedPreexisting ? "resumed" : "started"}.${threadNote}` +
|
|
265
323
|
` Call the remote_copilot_wait_for_instructions tool next.` +
|
|
266
324
|
getReminders(currentThreadId),
|
|
267
325
|
},
|
|
@@ -302,27 +360,52 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
302
360
|
if (updates.length > 0) {
|
|
303
361
|
// Advance the offset so we don't see these updates again.
|
|
304
362
|
nextUpdateId = updates[updates.length - 1].update_id + 1;
|
|
305
|
-
// Collect text
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
String(u.message.chat.id) === TELEGRAM_CHAT_ID &&
|
|
363
|
+
// Collect messages (text or photo) from the target chat, scoped to the active thread.
|
|
364
|
+
const qualifiedUpdates = updates.filter((u) => (u.message?.text !== undefined || u.message?.photo !== undefined) &&
|
|
365
|
+
String(u.message?.chat.id) === TELEGRAM_CHAT_ID &&
|
|
309
366
|
(currentThreadId === undefined ||
|
|
310
|
-
u.message
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
const
|
|
367
|
+
u.message?.message_thread_id === currentThreadId));
|
|
368
|
+
if (qualifiedUpdates.length > 0) {
|
|
369
|
+
const contentBlocks = [];
|
|
370
|
+
for (const u of qualifiedUpdates) {
|
|
371
|
+
const msg = u.message;
|
|
372
|
+
// Photos: download the largest size and embed as base64.
|
|
373
|
+
if (msg.photo && msg.photo.length > 0) {
|
|
374
|
+
const largest = msg.photo[msg.photo.length - 1];
|
|
375
|
+
try {
|
|
376
|
+
const { base64, mimeType } = await telegram.downloadFileAsBase64(largest.file_id);
|
|
377
|
+
contentBlocks.push({ type: "image", data: base64, mimeType });
|
|
378
|
+
if (msg.caption) {
|
|
379
|
+
contentBlocks.push({
|
|
380
|
+
type: "text",
|
|
381
|
+
text: `[Image caption]: ${msg.caption}`,
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
contentBlocks.push({
|
|
387
|
+
type: "text",
|
|
388
|
+
text: `[Photo received but could not be downloaded: ${err instanceof Error ? err.message : String(err)}]`,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
// Text messages.
|
|
393
|
+
if (msg.text) {
|
|
394
|
+
contentBlocks.push({ type: "text", text: msg.text });
|
|
395
|
+
}
|
|
396
|
+
}
|
|
314
397
|
return {
|
|
315
398
|
content: [
|
|
316
399
|
{
|
|
317
400
|
type: "text",
|
|
318
|
-
text:
|
|
319
|
-
getReminders(currentThreadId),
|
|
401
|
+
text: "Follow these operator instructions — create plan, use subagents:",
|
|
320
402
|
},
|
|
403
|
+
...contentBlocks,
|
|
404
|
+
{ type: "text", text: getReminders(currentThreadId) },
|
|
321
405
|
],
|
|
322
406
|
};
|
|
323
407
|
}
|
|
324
|
-
// Updates existed but none were relevant
|
|
325
|
-
// continue polling.
|
|
408
|
+
// Updates existed but none were relevant messages from our chat; continue polling.
|
|
326
409
|
}
|
|
327
410
|
}
|
|
328
411
|
// Timeout elapsed with no actionable message.
|
|
@@ -430,11 +513,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
430
513
|
if (pendingUpdates.length > 0) {
|
|
431
514
|
nextUpdateId = pendingUpdates[pendingUpdates.length - 1].update_id + 1;
|
|
432
515
|
pendingMessages = pendingUpdates
|
|
433
|
-
.filter((u) => u.message?.text !== undefined &&
|
|
434
|
-
String(u.message
|
|
516
|
+
.filter((u) => (u.message?.text !== undefined || u.message?.photo !== undefined) &&
|
|
517
|
+
String(u.message?.chat.id) === TELEGRAM_CHAT_ID &&
|
|
435
518
|
(currentThreadId === undefined ||
|
|
436
|
-
u.message
|
|
437
|
-
.map((u) =>
|
|
519
|
+
u.message?.message_thread_id === currentThreadId))
|
|
520
|
+
.map((u) => {
|
|
521
|
+
const msg = u.message;
|
|
522
|
+
if (msg.photo) {
|
|
523
|
+
return msg.caption ? `[Photo] ${msg.caption}` : "[Photo sent — call remote_copilot_wait_for_instructions to receive it with full image data]";
|
|
524
|
+
}
|
|
525
|
+
return msg.text;
|
|
526
|
+
});
|
|
438
527
|
}
|
|
439
528
|
}
|
|
440
529
|
catch {
|
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
|
@@ -8,8 +8,25 @@ export interface TelegramMessage {
|
|
|
8
8
|
id: number;
|
|
9
9
|
};
|
|
10
10
|
text?: string;
|
|
11
|
+
caption?: string;
|
|
11
12
|
date: number;
|
|
12
13
|
message_thread_id?: number;
|
|
14
|
+
photo?: PhotoSize[];
|
|
15
|
+
document?: TelegramDocument;
|
|
16
|
+
}
|
|
17
|
+
export interface PhotoSize {
|
|
18
|
+
file_id: string;
|
|
19
|
+
file_unique_id: string;
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
file_size?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface TelegramDocument {
|
|
25
|
+
file_id: string;
|
|
26
|
+
file_unique_id: string;
|
|
27
|
+
file_name?: string;
|
|
28
|
+
mime_type?: string;
|
|
29
|
+
file_size?: number;
|
|
13
30
|
}
|
|
14
31
|
export interface TelegramUpdate {
|
|
15
32
|
update_id: number;
|
|
@@ -34,6 +51,15 @@ export interface CreateForumTopicResult {
|
|
|
34
51
|
result?: ForumTopic;
|
|
35
52
|
description?: string;
|
|
36
53
|
}
|
|
54
|
+
export interface TelegramFile {
|
|
55
|
+
file_id: string;
|
|
56
|
+
file_path: string;
|
|
57
|
+
}
|
|
58
|
+
export interface GetFileResult {
|
|
59
|
+
ok: boolean;
|
|
60
|
+
result?: TelegramFile;
|
|
61
|
+
description?: string;
|
|
62
|
+
}
|
|
37
63
|
export declare class TelegramClient {
|
|
38
64
|
private readonly token;
|
|
39
65
|
private readonly baseUrl;
|
|
@@ -56,5 +82,17 @@ export declare class TelegramClient {
|
|
|
56
82
|
* @param threadId Optional message_thread_id for forum supergroups.
|
|
57
83
|
*/
|
|
58
84
|
sendMessage(chatId: string, text: string, parseMode?: "MarkdownV2" | "Markdown" | "HTML", threadId?: number): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Get metadata for a file stored on Telegram servers.
|
|
87
|
+
*/
|
|
88
|
+
getFile(fileId: string): Promise<TelegramFile>;
|
|
89
|
+
/**
|
|
90
|
+
* Download a file from Telegram by file_id and return it as base64 with MIME type.
|
|
91
|
+
* Telegram Bot API supports files up to 20 MB.
|
|
92
|
+
*/
|
|
93
|
+
downloadFileAsBase64(fileId: string): Promise<{
|
|
94
|
+
base64: string;
|
|
95
|
+
mimeType: string;
|
|
96
|
+
}>;
|
|
59
97
|
}
|
|
60
98
|
//# 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;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"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"}
|
package/dist/telegram.js
CHANGED
|
@@ -19,23 +19,37 @@ export class TelegramClient {
|
|
|
19
19
|
url.searchParams.set("offset", String(offset));
|
|
20
20
|
url.searchParams.set("timeout", String(timeout));
|
|
21
21
|
url.searchParams.set("allowed_updates", JSON.stringify(["message"]));
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
data
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
// Retry loop: Telegram returns 409 when another getUpdates poller is active
|
|
23
|
+
// (e.g. two VS Code windows with the same bot token). Back off and retry
|
|
24
|
+
// until the other instance releases the lock or the request is aborted.
|
|
25
|
+
const MAX_409_RETRIES = 12;
|
|
26
|
+
const RETRY_DELAY_MS = 5000;
|
|
27
|
+
for (let attempt = 0;; attempt++) {
|
|
28
|
+
const response = await fetch(url.toString(), signal ? { signal } : {});
|
|
29
|
+
let data;
|
|
30
|
+
try {
|
|
31
|
+
data = (await response.json());
|
|
32
|
+
}
|
|
33
|
+
catch (parseErr) {
|
|
34
|
+
process.stderr.write(`Failed to parse Telegram getUpdates response: ${parseErr instanceof Error ? parseErr.message : String(parseErr)}\n`);
|
|
35
|
+
data = undefined;
|
|
36
|
+
}
|
|
37
|
+
// 409 Conflict: another poller is running. Wait and retry.
|
|
38
|
+
if (response.status === 409 && attempt < MAX_409_RETRIES) {
|
|
39
|
+
process.stderr.write(`Telegram getUpdates 409 Conflict (attempt ${attempt + 1}/${MAX_409_RETRIES}) — ` +
|
|
40
|
+
`another bot instance is polling. Retrying in ${RETRY_DELAY_MS / 1000}s...\n`);
|
|
41
|
+
await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY_MS));
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
const description = data?.description ?? response.statusText;
|
|
46
|
+
throw new Error(`Telegram getUpdates failed: ${response.status} ${description}`);
|
|
47
|
+
}
|
|
48
|
+
if (!data || !data.ok) {
|
|
49
|
+
throw new Error(`Telegram API error in getUpdates${data?.description ? `: ${data.description}` : ""}`);
|
|
50
|
+
}
|
|
51
|
+
return data.result;
|
|
37
52
|
}
|
|
38
|
-
return data.result;
|
|
39
53
|
}
|
|
40
54
|
/**
|
|
41
55
|
* Create a topic in a forum supergroup.
|
|
@@ -102,5 +116,52 @@ export class TelegramClient {
|
|
|
102
116
|
throw new Error(`Telegram API error in sendMessage: ${description}`);
|
|
103
117
|
}
|
|
104
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Get metadata for a file stored on Telegram servers.
|
|
121
|
+
*/
|
|
122
|
+
async getFile(fileId) {
|
|
123
|
+
const url = `${this.baseUrl}/getFile`;
|
|
124
|
+
const response = await fetch(url, {
|
|
125
|
+
method: "POST",
|
|
126
|
+
headers: { "Content-Type": "application/json" },
|
|
127
|
+
body: JSON.stringify({ file_id: fileId }),
|
|
128
|
+
});
|
|
129
|
+
let data;
|
|
130
|
+
try {
|
|
131
|
+
data = (await response.json());
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
data = undefined;
|
|
135
|
+
}
|
|
136
|
+
if (!response.ok || !data?.ok || !data.result) {
|
|
137
|
+
const description = data?.description ?? response.statusText;
|
|
138
|
+
throw new Error(`Telegram getFile failed: ${description}`);
|
|
139
|
+
}
|
|
140
|
+
return data.result;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Download a file from Telegram by file_id and return it as base64 with MIME type.
|
|
144
|
+
* Telegram Bot API supports files up to 20 MB.
|
|
145
|
+
*/
|
|
146
|
+
async downloadFileAsBase64(fileId) {
|
|
147
|
+
const file = await this.getFile(fileId);
|
|
148
|
+
const downloadUrl = `https://api.telegram.org/file/bot${this.token}/${file.file_path}`;
|
|
149
|
+
const response = await fetch(downloadUrl);
|
|
150
|
+
if (!response.ok) {
|
|
151
|
+
throw new Error(`Failed to download Telegram file: ${response.status} ${response.statusText}`);
|
|
152
|
+
}
|
|
153
|
+
const buffer = await response.arrayBuffer();
|
|
154
|
+
const base64 = Buffer.from(buffer).toString("base64");
|
|
155
|
+
const ext = file.file_path.split(".").pop()?.toLowerCase() ?? "";
|
|
156
|
+
const mimeMap = {
|
|
157
|
+
jpg: "image/jpeg",
|
|
158
|
+
jpeg: "image/jpeg",
|
|
159
|
+
png: "image/png",
|
|
160
|
+
gif: "image/gif",
|
|
161
|
+
webp: "image/webp",
|
|
162
|
+
bmp: "image/bmp",
|
|
163
|
+
};
|
|
164
|
+
return { base64, mimeType: mimeMap[ext] ?? "image/jpeg" };
|
|
165
|
+
}
|
|
105
166
|
}
|
|
106
167
|
//# sourceMappingURL=telegram.js.map
|
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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"}
|