remote-copilot-mcp 2.2.1 → 2.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/README.md +1 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +109 -54
- package/dist/dispatcher.js.map +1 -1
- package/dist/index.js +86 -139
- package/dist/index.js.map +1 -1
- package/dist/openai.d.ts +22 -0
- package/dist/openai.d.ts.map +1 -0
- package/dist/openai.js +59 -0
- package/dist/openai.js.map +1 -0
- package/dist/telegram.d.ts +12 -56
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +71 -187
- package/dist/telegram.js.map +1 -1
- package/dist/utils.d.ts +31 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +37 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ Set the following environment variables:
|
|
|
47
47
|
|----------|----------|---------|-------------|
|
|
48
48
|
| `TELEGRAM_TOKEN` | ✅ | — | Telegram Bot API token from @BotFather |
|
|
49
49
|
| `TELEGRAM_CHAT_ID` | ✅ | — | Chat ID of the forum supergroup (e.g. `-1001234567890`). The bot must be admin with Manage Topics right. |
|
|
50
|
-
| `WAIT_TIMEOUT_MINUTES` | ❌ | `
|
|
50
|
+
| `WAIT_TIMEOUT_MINUTES` | ❌ | `120` | Minutes to wait for a message before timing out |
|
|
51
51
|
| `OPENAI_API_KEY` | ❌ | — | OpenAI API key for voice message transcription (Whisper). Without it, voice messages show a placeholder instead of a transcript. |
|
|
52
52
|
|
|
53
53
|
## Usage
|
package/dist/dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAoJpD,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;YACV,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,KAAK,CAAC,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL;AAgCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,CAiBhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,CAShF;AA+GD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACjC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA0GlB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* - readThreadMessages(threadId) — non-blocking; returns and clears
|
|
23
23
|
* pending messages for a thread.
|
|
24
24
|
*/
|
|
25
|
-
import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
|
|
25
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "fs";
|
|
26
26
|
import { homedir } from "os";
|
|
27
27
|
import { join } from "path";
|
|
28
|
+
import { errorMessage } from "./utils.js";
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
29
30
|
// Paths
|
|
30
31
|
// ---------------------------------------------------------------------------
|
|
@@ -34,6 +35,35 @@ const LOCK_FILE = join(BASE_DIR, "poller.lock");
|
|
|
34
35
|
const OFFSET_FILE = join(BASE_DIR, "offset");
|
|
35
36
|
function ensureDirs() {
|
|
36
37
|
mkdirSync(THREADS_DIR, { recursive: true });
|
|
38
|
+
recoverOrphanedReads();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* On startup, scan for orphaned `.reading.PID` files left by hard-crashed
|
|
42
|
+
* processes and append their content back to the original thread file
|
|
43
|
+
* so those messages aren't permanently lost.
|
|
44
|
+
*/
|
|
45
|
+
function recoverOrphanedReads() {
|
|
46
|
+
try {
|
|
47
|
+
const files = readdirSync(THREADS_DIR);
|
|
48
|
+
for (const f of files) {
|
|
49
|
+
const match = f.match(/^(.+)\.reading\.(\d+)$/);
|
|
50
|
+
if (match) {
|
|
51
|
+
const pid = Number.parseInt(match[2], 10);
|
|
52
|
+
if (!isPidAlive(pid)) {
|
|
53
|
+
const orphan = join(THREADS_DIR, f);
|
|
54
|
+
const original = join(THREADS_DIR, match[1]);
|
|
55
|
+
try {
|
|
56
|
+
const content = readFileSync(orphan, "utf8");
|
|
57
|
+
writeFileSync(original, content, { flag: "a", encoding: "utf8" });
|
|
58
|
+
unlinkSync(orphan);
|
|
59
|
+
process.stderr.write(`[dispatcher] Recovered orphaned file: ${f}\n`);
|
|
60
|
+
}
|
|
61
|
+
catch { /* best effort */ }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch { /* non-fatal */ }
|
|
37
67
|
}
|
|
38
68
|
// ---------------------------------------------------------------------------
|
|
39
69
|
// Lock helpers
|
|
@@ -73,10 +103,10 @@ function isPidAlive(pid) {
|
|
|
73
103
|
}
|
|
74
104
|
}
|
|
75
105
|
/**
|
|
76
|
-
* Try to become the poller
|
|
77
|
-
* - If no lock file exists →
|
|
78
|
-
* - If lock file exists but the PID is dead →
|
|
79
|
-
* - If lock file exists, PID is alive, but lock is
|
|
106
|
+
* Try to become the poller using exclusive file creation to prevent TOCTOU races.
|
|
107
|
+
* - If no lock file exists → atomically create it (flag: "wx").
|
|
108
|
+
* - If lock file exists but the PID is dead → remove and retry.
|
|
109
|
+
* - If lock file exists, PID is alive, but lock is stale → remove and retry.
|
|
80
110
|
* - Otherwise → someone else is the poller.
|
|
81
111
|
*/
|
|
82
112
|
const STALE_LOCK_MS = 90 * 1000; // 90 seconds
|
|
@@ -88,10 +118,20 @@ function tryAcquireLock() {
|
|
|
88
118
|
if (alive && !stale) {
|
|
89
119
|
return false; // Someone else is actively polling.
|
|
90
120
|
}
|
|
91
|
-
// Dead or stale —
|
|
121
|
+
// Dead or stale — remove before attempting exclusive create.
|
|
122
|
+
try {
|
|
123
|
+
unlinkSync(LOCK_FILE);
|
|
124
|
+
}
|
|
125
|
+
catch { /* race-ok */ }
|
|
126
|
+
}
|
|
127
|
+
// Atomic exclusive create: fails if another process created first.
|
|
128
|
+
try {
|
|
129
|
+
writeFileSync(LOCK_FILE, JSON.stringify({ pid: process.pid, ts: Date.now() }), { encoding: "utf8", flag: "wx" });
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return false; // Another process won the race.
|
|
92
134
|
}
|
|
93
|
-
writeLock();
|
|
94
|
-
return true;
|
|
95
135
|
}
|
|
96
136
|
// ---------------------------------------------------------------------------
|
|
97
137
|
// Offset persistence (shared across all instances)
|
|
@@ -117,6 +157,21 @@ function writeOffset(offset) {
|
|
|
117
157
|
function threadFilePath(threadId) {
|
|
118
158
|
return join(THREADS_DIR, `${threadId}.jsonl`);
|
|
119
159
|
}
|
|
160
|
+
/** Parse JSONL content into StoredMessage[], skipping corrupt lines. */
|
|
161
|
+
function parseJsonlLines(raw, label) {
|
|
162
|
+
if (!raw)
|
|
163
|
+
return [];
|
|
164
|
+
const results = [];
|
|
165
|
+
for (const line of raw.split("\n")) {
|
|
166
|
+
try {
|
|
167
|
+
results.push(JSON.parse(line));
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
process.stderr.write(`[dispatcher] Skipping corrupt JSONL line in ${label}\n`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return results;
|
|
174
|
+
}
|
|
120
175
|
/**
|
|
121
176
|
* Append a message to a thread's JSONL file.
|
|
122
177
|
* Throws on write failure so the caller can track which messages were persisted.
|
|
@@ -135,27 +190,14 @@ export function readThreadMessages(threadId) {
|
|
|
135
190
|
const file = threadFilePath(key);
|
|
136
191
|
const tmp = file + ".reading." + process.pid;
|
|
137
192
|
try {
|
|
138
|
-
// Atomically move the file so the poller appends to a fresh file.
|
|
139
193
|
renameSync(file, tmp);
|
|
140
194
|
}
|
|
141
195
|
catch {
|
|
142
|
-
return [];
|
|
196
|
+
return [];
|
|
143
197
|
}
|
|
144
198
|
try {
|
|
145
199
|
const raw = readFileSync(tmp, "utf8").trim();
|
|
146
|
-
|
|
147
|
-
return [];
|
|
148
|
-
const results = [];
|
|
149
|
-
for (const line of raw.split("\n")) {
|
|
150
|
-
try {
|
|
151
|
-
results.push(JSON.parse(line));
|
|
152
|
-
}
|
|
153
|
-
catch {
|
|
154
|
-
// Skip corrupt line — partial write or power loss.
|
|
155
|
-
process.stderr.write(`[dispatcher] Skipping corrupt JSONL line in ${key}.jsonl\n`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return results;
|
|
200
|
+
return parseJsonlLines(raw, `${key}.jsonl`);
|
|
159
201
|
}
|
|
160
202
|
catch {
|
|
161
203
|
return [];
|
|
@@ -177,16 +219,7 @@ export function peekThreadMessages(threadId) {
|
|
|
177
219
|
const file = threadFilePath(key);
|
|
178
220
|
try {
|
|
179
221
|
const raw = readFileSync(file, "utf8").trim();
|
|
180
|
-
|
|
181
|
-
return [];
|
|
182
|
-
const results = [];
|
|
183
|
-
for (const line of raw.split("\n")) {
|
|
184
|
-
try {
|
|
185
|
-
results.push(JSON.parse(line));
|
|
186
|
-
}
|
|
187
|
-
catch { /* skip corrupt */ }
|
|
188
|
-
}
|
|
189
|
-
return results;
|
|
222
|
+
return parseJsonlLines(raw, `${key}.jsonl`);
|
|
190
223
|
}
|
|
191
224
|
catch {
|
|
192
225
|
return [];
|
|
@@ -196,16 +229,17 @@ export function peekThreadMessages(threadId) {
|
|
|
196
229
|
// Poller loop
|
|
197
230
|
// ---------------------------------------------------------------------------
|
|
198
231
|
let pollerRunning = false;
|
|
232
|
+
let pollAbortController;
|
|
199
233
|
async function pollOnce(telegram, chatId) {
|
|
200
|
-
// Always refresh lock FIRST so the timestamp stays fresh even during
|
|
201
|
-
// long polls that return no messages. The old code only refreshed
|
|
202
|
-
// after processing updates, causing the lock to go stale after ~5 min
|
|
203
|
-
// of inactivity and letting a second instance grab the poller role.
|
|
204
234
|
writeLock();
|
|
205
235
|
const POLL_TIMEOUT_SECONDS = 10;
|
|
206
236
|
let offset = readOffset();
|
|
237
|
+
// Refresh the lock periodically during long polls / 409 retries
|
|
238
|
+
// to prevent it from going stale (STALE_LOCK_MS = 90 s).
|
|
239
|
+
const lockRefresher = setInterval(() => writeLock(), 15_000);
|
|
207
240
|
try {
|
|
208
|
-
|
|
241
|
+
pollAbortController = new AbortController();
|
|
242
|
+
const updates = await telegram.getUpdates(offset, POLL_TIMEOUT_SECONDS, pollAbortController.signal);
|
|
209
243
|
// Refresh again after the (potentially 10-second) long poll returns.
|
|
210
244
|
writeLock();
|
|
211
245
|
if (updates.length === 0)
|
|
@@ -255,7 +289,7 @@ async function pollOnce(telegram, chatId) {
|
|
|
255
289
|
committedOffset = u.update_id + 1;
|
|
256
290
|
}
|
|
257
291
|
catch (writeErr) {
|
|
258
|
-
process.stderr.write(`[dispatcher] Failed to write message ${u.update_id} to thread ${threadId}: ${
|
|
292
|
+
process.stderr.write(`[dispatcher] Failed to write message ${u.update_id} to thread ${threadId}: ${errorMessage(writeErr)}\n`);
|
|
259
293
|
allSucceeded = false;
|
|
260
294
|
break; // Stop processing — don't skip messages.
|
|
261
295
|
}
|
|
@@ -269,7 +303,13 @@ async function pollOnce(telegram, chatId) {
|
|
|
269
303
|
}
|
|
270
304
|
}
|
|
271
305
|
catch (err) {
|
|
272
|
-
|
|
306
|
+
// Ignore abort errors during shutdown.
|
|
307
|
+
if (err instanceof DOMException && err.name === "AbortError")
|
|
308
|
+
return;
|
|
309
|
+
process.stderr.write(`[dispatcher] Poll error: ${errorMessage(err)}\n`);
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
clearInterval(lockRefresher);
|
|
273
313
|
}
|
|
274
314
|
}
|
|
275
315
|
/**
|
|
@@ -284,16 +324,34 @@ async function pollOnce(telegram, chatId) {
|
|
|
284
324
|
export async function startDispatcher(telegram, chatId) {
|
|
285
325
|
ensureDirs();
|
|
286
326
|
const isPoller = tryAcquireLock();
|
|
287
|
-
|
|
327
|
+
const CONSUMER_RETRY_MS = 30_000;
|
|
328
|
+
// Shared cleanup + loop helpers.
|
|
329
|
+
let cleanupRegistered = false;
|
|
288
330
|
const registerCleanup = () => {
|
|
331
|
+
if (cleanupRegistered)
|
|
332
|
+
return;
|
|
333
|
+
cleanupRegistered = true;
|
|
289
334
|
const cleanup = () => {
|
|
290
335
|
pollerRunning = false;
|
|
336
|
+
pollAbortController?.abort();
|
|
291
337
|
removeLock();
|
|
292
338
|
};
|
|
293
339
|
process.on("exit", cleanup);
|
|
294
340
|
process.on("SIGINT", () => { cleanup(); process.exit(0); });
|
|
295
341
|
process.on("SIGTERM", () => { cleanup(); process.exit(0); });
|
|
296
342
|
};
|
|
343
|
+
const installConsumerRetry = () => {
|
|
344
|
+
const timer = setInterval(() => {
|
|
345
|
+
if (tryAcquireLock()) {
|
|
346
|
+
clearInterval(timer);
|
|
347
|
+
process.stderr.write("[dispatcher] Promoted to poller (previous poller seems inactive).\n");
|
|
348
|
+
pollerRunning = true;
|
|
349
|
+
startLoop();
|
|
350
|
+
registerCleanup();
|
|
351
|
+
}
|
|
352
|
+
}, CONSUMER_RETRY_MS);
|
|
353
|
+
timer.unref();
|
|
354
|
+
};
|
|
297
355
|
const startLoop = () => {
|
|
298
356
|
const loop = async () => {
|
|
299
357
|
while (pollerRunning) {
|
|
@@ -301,6 +359,8 @@ export async function startDispatcher(telegram, chatId) {
|
|
|
301
359
|
if (currentLock && currentLock.pid !== process.pid) {
|
|
302
360
|
process.stderr.write(`[dispatcher] Lock taken by PID ${currentLock.pid}. Stepping down to consumer.\n`);
|
|
303
361
|
pollerRunning = false;
|
|
362
|
+
// Re-install consumer retry so we can be promoted again.
|
|
363
|
+
installConsumerRetry();
|
|
304
364
|
break;
|
|
305
365
|
}
|
|
306
366
|
await pollOnce(telegram, chatId);
|
|
@@ -317,7 +377,12 @@ export async function startDispatcher(telegram, chatId) {
|
|
|
317
377
|
if (!existsSync(OFFSET_FILE)) {
|
|
318
378
|
process.stderr.write("[dispatcher] No offset file. Skipping old updates...\n");
|
|
319
379
|
try {
|
|
320
|
-
|
|
380
|
+
// Use a short timeout to prevent blocking startup if another
|
|
381
|
+
// poller is active (409 retry loop could stall for 60+ seconds).
|
|
382
|
+
const drainAbort = new AbortController();
|
|
383
|
+
const drainTimeout = setTimeout(() => drainAbort.abort(), 10_000);
|
|
384
|
+
const latest = await telegram.getUpdates(-1, 0, drainAbort.signal);
|
|
385
|
+
clearTimeout(drainTimeout);
|
|
321
386
|
if (latest.length > 0) {
|
|
322
387
|
const skipTo = latest[latest.length - 1].update_id + 1;
|
|
323
388
|
writeOffset(skipTo);
|
|
@@ -331,7 +396,7 @@ export async function startDispatcher(telegram, chatId) {
|
|
|
331
396
|
// Don't write offset=0 — leave it at whatever the current value is.
|
|
332
397
|
// If the file still doesn't exist, readOffset() returns 0 which is
|
|
333
398
|
// acceptable because the drain simply failed to optimise.
|
|
334
|
-
process.stderr.write(`[dispatcher] Warning: drain failed: ${
|
|
399
|
+
process.stderr.write(`[dispatcher] Warning: drain failed: ${errorMessage(err)}. Poll loop will start from offset 0.\n`);
|
|
335
400
|
}
|
|
336
401
|
}
|
|
337
402
|
pollerRunning = true;
|
|
@@ -342,17 +407,7 @@ export async function startDispatcher(telegram, chatId) {
|
|
|
342
407
|
process.stderr.write("[dispatcher] Another instance is the poller. This instance is a consumer only.\n");
|
|
343
408
|
// Periodically try to become the poller in case the current one dies
|
|
344
409
|
// but its PID remains alive (zombie process, stuck socket, etc.).
|
|
345
|
-
|
|
346
|
-
const retryTimer = setInterval(() => {
|
|
347
|
-
if (tryAcquireLock()) {
|
|
348
|
-
clearInterval(retryTimer);
|
|
349
|
-
process.stderr.write("[dispatcher] Promoted to poller (previous poller seems inactive).\n");
|
|
350
|
-
pollerRunning = true;
|
|
351
|
-
startLoop();
|
|
352
|
-
registerCleanup();
|
|
353
|
-
}
|
|
354
|
-
}, CONSUMER_RETRY_MS);
|
|
355
|
-
retryTimer.unref();
|
|
410
|
+
installConsumerRetry();
|
|
356
411
|
}
|
|
357
412
|
return isPoller;
|
|
358
413
|
}
|
package/dist/dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|