sensorium-mcp 2.16.52 → 2.16.54
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/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +86 -2
- package/dist/config.js.map +1 -1
- package/dist/dashboard/routes.js +52 -2
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/dashboard/spa.html +38 -3
- package/dist/data/memory/consolidation.d.ts.map +1 -1
- package/dist/data/memory/consolidation.js +3 -0
- package/dist/data/memory/consolidation.js.map +1 -1
- package/dist/data/memory/schema.d.ts +5 -0
- package/dist/data/memory/schema.d.ts.map +1 -1
- package/dist/data/memory/schema.js +35 -1
- package/dist/data/memory/schema.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/response-builders.d.ts +10 -0
- package/dist/response-builders.d.ts.map +1 -1
- package/dist/response-builders.js +27 -2
- package/dist/response-builders.js.map +1 -1
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +14 -2
- package/dist/server/factory.js.map +1 -1
- package/dist/services/dispatcher/broker.d.ts +9 -1
- package/dist/services/dispatcher/broker.d.ts.map +1 -1
- package/dist/services/dispatcher/broker.js +71 -5
- package/dist/services/dispatcher/broker.js.map +1 -1
- package/dist/services/dispatcher/index.d.ts +1 -1
- package/dist/services/dispatcher/index.d.ts.map +1 -1
- package/dist/services/dispatcher/index.js +1 -1
- package/dist/services/dispatcher/index.js.map +1 -1
- package/dist/telegram.d.ts +11 -2
- package/dist/telegram.d.ts.map +1 -1
- package/dist/telegram.js +67 -28
- package/dist/telegram.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +27 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/delegate-tool.d.ts +23 -0
- package/dist/tools/delegate-tool.d.ts.map +1 -0
- package/dist/tools/delegate-tool.js +199 -0
- package/dist/tools/delegate-tool.js.map +1 -0
- package/dist/tools/session-tools.d.ts +4 -1
- package/dist/tools/session-tools.d.ts.map +1 -1
- package/dist/tools/session-tools.js +2 -16
- package/dist/tools/session-tools.js.map +1 -1
- package/dist/tools/start-session-tool.d.ts.map +1 -1
- package/dist/tools/start-session-tool.js +1 -0
- package/dist/tools/start-session-tool.js.map +1 -1
- package/dist/tools/wait/message-delivery.d.ts.map +1 -1
- package/dist/tools/wait/message-delivery.js +3 -1
- package/dist/tools/wait/message-delivery.js.map +1 -1
- package/dist/tools/wait/poll-loop.d.ts.map +1 -1
- package/dist/tools/wait/poll-loop.js +50 -23
- package/dist/tools/wait/poll-loop.js.map +1 -1
- package/dist/tools/wait/reaction-handler.d.ts.map +1 -1
- package/dist/tools/wait/reaction-handler.js +2 -2
- package/dist/tools/wait/reaction-handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* MCP tool responses so the agent always has essential context (thread ID,
|
|
6
6
|
* time, uptime, operating-mode reminders, etc.).
|
|
7
7
|
*/
|
|
8
|
-
import { config,
|
|
8
|
+
import { config, getEffectiveAgentType } from "./config.js";
|
|
9
9
|
import { describeADV } from "./utils.js";
|
|
10
10
|
import { loadTemplate, renderTemplate } from "./data/templates.js";
|
|
11
11
|
import { getDefaultRemindersTemplate } from "./dashboard/presets.js";
|
|
@@ -98,7 +98,7 @@ export function getReminders(threadId, sessionStartedAt, autonomousMode) {
|
|
|
98
98
|
return "\n" + renderTemplate(tpl, vars).trim();
|
|
99
99
|
}
|
|
100
100
|
// ── Fallback: use agent-specific default template ────────────────────
|
|
101
|
-
const defaultTpl = getDefaultRemindersTemplate(
|
|
101
|
+
const defaultTpl = getDefaultRemindersTemplate(getEffectiveAgentType(threadId));
|
|
102
102
|
const fallbackVars = {
|
|
103
103
|
OPERATOR_MESSAGE: "",
|
|
104
104
|
THREAD_ID: String(threadId ?? "?"),
|
|
@@ -156,4 +156,29 @@ export function getShortReminder(threadId, sessionStartedAt) {
|
|
|
156
156
|
: "";
|
|
157
157
|
return threadHint + `\n- Current time: ${timeStr} | Session uptime: ${uptimeMin}m`;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Build the standardised maintenance-mode response returned when a server
|
|
161
|
+
* update is in progress. Both the poll-loop and hibernate handlers use
|
|
162
|
+
* this, so it lives here to avoid duplication.
|
|
163
|
+
*
|
|
164
|
+
* @param effectiveThreadId Current Telegram thread ID.
|
|
165
|
+
* @param shortReminder Pre-computed short reminder suffix.
|
|
166
|
+
*/
|
|
167
|
+
export function buildMaintenanceResponse(effectiveThreadId, shortReminder) {
|
|
168
|
+
const sleepCmd = {
|
|
169
|
+
copilot: "Use Desktop Commander to run: Start-Sleep -Seconds 600",
|
|
170
|
+
claude: "Run in Bash: sleep 600",
|
|
171
|
+
cursor: "Run in terminal: sleep 600",
|
|
172
|
+
}[getEffectiveAgentType(effectiveThreadId)];
|
|
173
|
+
return {
|
|
174
|
+
content: [{
|
|
175
|
+
type: "text",
|
|
176
|
+
text: `⚠️ Server update in progress. STOP.\n\n` +
|
|
177
|
+
`Do NOT call start_session, wait_for_instructions, or any other tool.\n\n` +
|
|
178
|
+
`Your only next action: ${sleepCmd}. Do nothing else until it completes.\n\n` +
|
|
179
|
+
`After the sleep completes, call start_session with threadId=${effectiveThreadId} to reconnect.` +
|
|
180
|
+
shortReminder,
|
|
181
|
+
}],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
159
184
|
//# sourceMappingURL=response-builders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-builders.js","sourceRoot":"","sources":["../src/response-builders.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"response-builders.js","sourceRoot":"","sources":["../src/response-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAWrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,QAAQ,GAC1B,iBAAiB,CAGnB"}
|
package/dist/server/factory.js
CHANGED
|
@@ -21,6 +21,7 @@ import { handleUtilityTool } from "../tools/utility-tools.js";
|
|
|
21
21
|
import { handleSessionTool } from "../tools/session-tools.js";
|
|
22
22
|
import { handleStartSession } from "../tools/start-session-tool.js";
|
|
23
23
|
import { handleWaitForInstructions } from "../tools/wait/index.js";
|
|
24
|
+
import { handleDelegateToThread } from "../tools/delegate-tool.js";
|
|
24
25
|
// ---------------------------------------------------------------------------
|
|
25
26
|
// Public factory builder
|
|
26
27
|
// ---------------------------------------------------------------------------
|
|
@@ -252,8 +253,10 @@ function createMcpServer(telegram, telegramChatId, getMemoryDb, getMcpSessionId,
|
|
|
252
253
|
checkMaintenanceFlag,
|
|
253
254
|
checkDueTasks,
|
|
254
255
|
generateDmnReflection,
|
|
255
|
-
lastOperatorMessageAt,
|
|
256
|
-
|
|
256
|
+
get lastOperatorMessageAt() { return lastOperatorMessageAt; },
|
|
257
|
+
set lastOperatorMessageAt(v) { lastOperatorMessageAt = v; },
|
|
258
|
+
get lastOperatorMessageText() { return lastOperatorMessageText; },
|
|
259
|
+
set lastOperatorMessageText(v) { lastOperatorMessageText = v; },
|
|
257
260
|
previewedUpdateIds,
|
|
258
261
|
addPreviewedId,
|
|
259
262
|
};
|
|
@@ -276,6 +279,15 @@ function createMcpServer(telegram, telegramChatId, getMemoryDb, getMcpSessionId,
|
|
|
276
279
|
if (name.startsWith("memory_")) {
|
|
277
280
|
return handleMemoryTool(name, (args ?? {}), memoryToolCtx);
|
|
278
281
|
}
|
|
282
|
+
// ── delegate_to_thread ─────────────────────────────────────────────────
|
|
283
|
+
if (name === "delegate_to_thread") {
|
|
284
|
+
const typedArgs = (args ?? {});
|
|
285
|
+
const delegateCtx = {
|
|
286
|
+
telegram,
|
|
287
|
+
telegramChatId,
|
|
288
|
+
};
|
|
289
|
+
return handleDelegateToThread(typedArgs, delegateCtx);
|
|
290
|
+
}
|
|
279
291
|
// ── get_version ────────────────────────────────────────────────────────
|
|
280
292
|
if (name === "get_version") {
|
|
281
293
|
const typedArgs = (args ?? {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/server/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
* files under ~/.remote-copilot-mcp/threads/<threadId>.jsonl.
|
|
6
6
|
* Each MCP instance reads from its own thread file — contention-free.
|
|
7
7
|
*/
|
|
8
|
+
import type { Database } from "better-sqlite3";
|
|
8
9
|
export declare const OFFSET_FILE: string;
|
|
10
|
+
/**
|
|
11
|
+
* Wire up a lazy database accessor so the broker can look up
|
|
12
|
+
* message_id → thread_id in the sent_messages table.
|
|
13
|
+
*/
|
|
14
|
+
export declare function setBrokerDb(getter: () => Database): void;
|
|
9
15
|
export interface StoredReaction {
|
|
10
16
|
emoji: string;
|
|
11
17
|
messageId: number;
|
|
@@ -15,9 +21,11 @@ export interface StoredReaction {
|
|
|
15
21
|
export declare function writeReactionFile(reaction: StoredReaction): void;
|
|
16
22
|
/**
|
|
17
23
|
* Read and clear the pending reaction (if any).
|
|
24
|
+
* When threadId is provided, reads from the per-thread file first,
|
|
25
|
+
* falling back to the global file for backwards compatibility.
|
|
18
26
|
* Returns null if no reaction is pending.
|
|
19
27
|
*/
|
|
20
|
-
export declare function readPendingReaction(): StoredReaction | null;
|
|
28
|
+
export declare function readPendingReaction(threadId?: number): StoredReaction | null;
|
|
21
29
|
export declare function ensureDirs(): void;
|
|
22
30
|
export declare function readOffset(): number;
|
|
23
31
|
export declare function writeOffset(offset: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/broker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/broker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,eAAO,MAAM,WAAW,QAA2B,CAAC;AAQpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,QAAQ,GAAG,IAAI,CAExD;AAuBD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAYhE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS5E;AA2BD,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAiCD,wBAAgB,UAAU,IAAI,MAAM,CAQnC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQhD;AAMD,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,UAAU,CAAC,EAAE;YACT,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,OAAO,CAAC,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,SAAS,CAAC,EAAE;YACR,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE;gBACR,OAAO,EAAE,MAAM,CAAC;aACnB,CAAC;SACL,CAAC;QACF,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL;AAqBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAIrF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,CAmBhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,CAShF"}
|
|
@@ -16,25 +16,91 @@ import { isPidAlive } from "./lock.js";
|
|
|
16
16
|
const BASE_DIR = join(homedir(), ".remote-copilot-mcp");
|
|
17
17
|
const THREADS_DIR = join(BASE_DIR, "threads");
|
|
18
18
|
export const OFFSET_FILE = join(BASE_DIR, "offset");
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Lazy DB access for per-thread reaction routing
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
let brokerDbGetter = null;
|
|
23
|
+
/**
|
|
24
|
+
* Wire up a lazy database accessor so the broker can look up
|
|
25
|
+
* message_id → thread_id in the sent_messages table.
|
|
26
|
+
*/
|
|
27
|
+
export function setBrokerDb(getter) {
|
|
28
|
+
brokerDbGetter = getter;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Look up which thread a message belongs to via sent_messages.
|
|
32
|
+
* Returns undefined if the lookup fails or the message isn't tracked.
|
|
33
|
+
*/
|
|
34
|
+
function lookupThreadForMessage(messageId) {
|
|
35
|
+
if (!brokerDbGetter)
|
|
36
|
+
return undefined;
|
|
37
|
+
try {
|
|
38
|
+
const db = brokerDbGetter();
|
|
39
|
+
const row = db.prepare(`SELECT thread_id FROM sent_messages WHERE message_id = ?`).get(messageId);
|
|
40
|
+
return row?.thread_id;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined; // non-fatal — fall back to global file
|
|
44
|
+
}
|
|
45
|
+
}
|
|
19
46
|
const REACTION_FILE = join(BASE_DIR, "pending_reaction.json");
|
|
47
|
+
function reactionFileForThread(threadId) {
|
|
48
|
+
return join(BASE_DIR, `pending_reaction_${threadId}.json`);
|
|
49
|
+
}
|
|
20
50
|
export function writeReactionFile(reaction) {
|
|
21
51
|
try {
|
|
22
|
-
|
|
52
|
+
// Try to route the reaction to the correct thread's file
|
|
53
|
+
const threadId = lookupThreadForMessage(reaction.messageId);
|
|
54
|
+
const file = threadId !== undefined
|
|
55
|
+
? reactionFileForThread(threadId)
|
|
56
|
+
: REACTION_FILE;
|
|
57
|
+
writeFileSync(file, JSON.stringify(reaction), "utf8");
|
|
58
|
+
if (threadId !== undefined) {
|
|
59
|
+
log.info(`[dispatcher] Reaction routed to thread ${threadId}`);
|
|
60
|
+
}
|
|
23
61
|
}
|
|
24
62
|
catch { /* non-fatal */ }
|
|
25
63
|
}
|
|
26
64
|
/**
|
|
27
65
|
* Read and clear the pending reaction (if any).
|
|
66
|
+
* When threadId is provided, reads from the per-thread file first,
|
|
67
|
+
* falling back to the global file for backwards compatibility.
|
|
28
68
|
* Returns null if no reaction is pending.
|
|
29
69
|
*/
|
|
30
|
-
export function readPendingReaction() {
|
|
70
|
+
export function readPendingReaction(threadId) {
|
|
71
|
+
// Try per-thread file first if threadId is provided
|
|
72
|
+
if (threadId !== undefined) {
|
|
73
|
+
const threadFile = reactionFileForThread(threadId);
|
|
74
|
+
const threadResult = readAndClearReactionFile(threadFile);
|
|
75
|
+
if (threadResult)
|
|
76
|
+
return threadResult;
|
|
77
|
+
}
|
|
78
|
+
// Fall back to global file
|
|
79
|
+
return readAndClearReactionFile(REACTION_FILE);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Read and clear a single reaction file. Returns null if not found/corrupt.
|
|
83
|
+
*/
|
|
84
|
+
function readAndClearReactionFile(filePath) {
|
|
85
|
+
let raw;
|
|
86
|
+
try {
|
|
87
|
+
raw = readFileSync(filePath, "utf8");
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null; // File doesn't exist — no pending reaction.
|
|
91
|
+
}
|
|
92
|
+
// Delete the file *after* a successful read. If unlinkSync fails
|
|
93
|
+
// (e.g. another process already consumed it) we still have `raw`
|
|
94
|
+
// and can parse + return the reaction instead of discarding it.
|
|
95
|
+
try {
|
|
96
|
+
unlinkSync(filePath);
|
|
97
|
+
}
|
|
98
|
+
catch { /* already gone — fine */ }
|
|
31
99
|
try {
|
|
32
|
-
const raw = readFileSync(REACTION_FILE, "utf8");
|
|
33
|
-
unlinkSync(REACTION_FILE);
|
|
34
100
|
return JSON.parse(raw);
|
|
35
101
|
}
|
|
36
102
|
catch {
|
|
37
|
-
return null;
|
|
103
|
+
return null; // Corrupt JSON — discard.
|
|
38
104
|
}
|
|
39
105
|
}
|
|
40
106
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/services/dispatcher/broker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACH,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,GAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/services/dispatcher/broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Barrel re-export for the dispatcher subsystem.
|
|
3
3
|
*/
|
|
4
4
|
export type { StoredReaction, StoredMessage } from "./broker.js";
|
|
5
|
-
export { readPendingReaction, readThreadMessages, peekThreadMessages } from "./broker.js";
|
|
5
|
+
export { readPendingReaction, readThreadMessages, peekThreadMessages, setBrokerDb } from "./broker.js";
|
|
6
6
|
export { startDispatcher } from "./poller.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/dispatcher/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGvG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Barrel re-export for the dispatcher subsystem.
|
|
3
3
|
*/
|
|
4
|
-
export { readPendingReaction, readThreadMessages, peekThreadMessages } from "./broker.js";
|
|
4
|
+
export { readPendingReaction, readThreadMessages, peekThreadMessages, setBrokerDb } from "./broker.js";
|
|
5
5
|
// Poller — startup entry point
|
|
6
6
|
export { startDispatcher } from "./poller.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/dispatcher/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/dispatcher/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvG,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/telegram.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Telegram Bot API client using native fetch.
|
|
3
3
|
* No third-party HTTP client required.
|
|
4
4
|
*/
|
|
5
|
+
import type { Database } from "better-sqlite3";
|
|
5
6
|
import type { TelegramUpdate, TelegramFile, ForumTopic } from "./integrations/telegram/types.js";
|
|
6
7
|
export * from "./integrations/telegram/types.js";
|
|
7
8
|
export declare class TelegramClient {
|
|
@@ -15,7 +16,14 @@ export declare class TelegramClient {
|
|
|
15
16
|
} | null;
|
|
16
17
|
private sentMessages;
|
|
17
18
|
private static readonly MAX_SENT_MESSAGES;
|
|
19
|
+
/** Optional lazy DB getter for persisting message_id → thread_id mapping. */
|
|
20
|
+
private dbGetter;
|
|
18
21
|
constructor(token: string);
|
|
22
|
+
/**
|
|
23
|
+
* Wire up a lazy database accessor so sent message_id → thread_id
|
|
24
|
+
* mappings can be persisted for per-thread reaction routing.
|
|
25
|
+
*/
|
|
26
|
+
setMessageDb(getter: () => Database): void;
|
|
19
27
|
/** Record a sent message for later lookup (e.g. when a reaction arrives). */
|
|
20
28
|
private recordSentMessage;
|
|
21
29
|
/** Look up the content snippet for a previously sent message. Returns null if not found. */
|
|
@@ -81,10 +89,11 @@ export declare class TelegramClient {
|
|
|
81
89
|
sendSticker(chatId: string, stickerId: string, threadId?: number): Promise<void>;
|
|
82
90
|
/**
|
|
83
91
|
* Set an emoji reaction on a message ("seen" indicator).
|
|
84
|
-
*
|
|
85
|
-
*
|
|
92
|
+
* Retries on 429 rate-limit responses. Logs the first failure per
|
|
93
|
+
* 60-second window to avoid flooding stderr in busy sessions.
|
|
86
94
|
*/
|
|
87
95
|
private reactionWarned;
|
|
96
|
+
private reactionWarnedAt;
|
|
88
97
|
setMessageReaction(chatId: string, messageId: number, emoji?: string): Promise<void>;
|
|
89
98
|
}
|
|
90
99
|
//# 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;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../src/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EAKX,MAAM,kCAAkC,CAAC;AAG1C,cAAc,kCAAkC,CAAC;AA0BjD,qBAAa,cAAc;IAab,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,wDAAwD;IACxD,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IAG/E,OAAO,CAAC,YAAY,CAAwE;IAC5F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAE/C,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAiC;gBAEpB,KAAK,EAAE,MAAM;IAI1C;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,QAAQ,GAAG,IAAI;IAI1C,6EAA6E;IAC7E,OAAO,CAAC,iBAAiB;IAgBzB,4FAA4F;IAC5F,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOnD;;;OAGG;IACH,OAAO,CAAC,WAAW;IASnB;;;;OAIG;YACW,SAAS;IAoBvB,oEAAoE;YACtD,YAAY;IAQ1B;;;OAGG;YACW,SAAS;IA4BvB;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC;IAyD5B;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAezE;;OAEG;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;IA+BhB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAepD;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAahD;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAShD,wCAAwC;IAClC,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAQhB,8BAA8B;IACxB,SAAS,CACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAQhB,iDAAiD;IAC3C,SAAS,CACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAShB,2CAA2C;IACrC,WAAW,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAK;IAEvB,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC;CAmDjB"}
|
package/dist/telegram.js
CHANGED
|
@@ -34,16 +34,33 @@ export class TelegramClient {
|
|
|
34
34
|
// Ring buffer for sent messages (tracks message_id → content snippet)
|
|
35
35
|
sentMessages = [];
|
|
36
36
|
static MAX_SENT_MESSAGES = 50;
|
|
37
|
+
/** Optional lazy DB getter for persisting message_id → thread_id mapping. */
|
|
38
|
+
dbGetter = null;
|
|
37
39
|
constructor(token) {
|
|
38
40
|
this.token = token;
|
|
39
41
|
this.baseUrl = `https://api.telegram.org/bot${token}`;
|
|
40
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Wire up a lazy database accessor so sent message_id → thread_id
|
|
45
|
+
* mappings can be persisted for per-thread reaction routing.
|
|
46
|
+
*/
|
|
47
|
+
setMessageDb(getter) {
|
|
48
|
+
this.dbGetter = getter;
|
|
49
|
+
}
|
|
41
50
|
/** Record a sent message for later lookup (e.g. when a reaction arrives). */
|
|
42
|
-
recordSentMessage(messageId, snippet) {
|
|
51
|
+
recordSentMessage(messageId, snippet, threadId) {
|
|
43
52
|
this.sentMessages.push({ messageId, snippet, timestamp: Date.now() });
|
|
44
53
|
if (this.sentMessages.length > TelegramClient.MAX_SENT_MESSAGES) {
|
|
45
54
|
this.sentMessages.splice(0, this.sentMessages.length - TelegramClient.MAX_SENT_MESSAGES);
|
|
46
55
|
}
|
|
56
|
+
// Persist message_id → thread_id mapping for per-thread reaction routing
|
|
57
|
+
if (threadId !== undefined && this.dbGetter) {
|
|
58
|
+
try {
|
|
59
|
+
const db = this.dbGetter();
|
|
60
|
+
db.prepare(`INSERT OR REPLACE INTO sent_messages (message_id, thread_id) VALUES (?, ?)`).run(messageId, threadId);
|
|
61
|
+
}
|
|
62
|
+
catch { /* non-fatal — must never break message sending */ }
|
|
63
|
+
}
|
|
47
64
|
}
|
|
48
65
|
/** Look up the content snippet for a previously sent message. Returns null if not found. */
|
|
49
66
|
lookupSentMessage(messageId) {
|
|
@@ -218,7 +235,7 @@ export class TelegramClient {
|
|
|
218
235
|
throw new Error(`Telegram API error in sendMessage: ${description}`);
|
|
219
236
|
}
|
|
220
237
|
if (data.result?.message_id) {
|
|
221
|
-
this.recordSentMessage(data.result.message_id, text.slice(0, 80));
|
|
238
|
+
this.recordSentMessage(data.result.message_id, text.slice(0, 80), threadId);
|
|
222
239
|
}
|
|
223
240
|
}
|
|
224
241
|
/**
|
|
@@ -266,14 +283,14 @@ export class TelegramClient {
|
|
|
266
283
|
async sendDocument(chatId, fileBuffer, filename, caption, threadId) {
|
|
267
284
|
const msgId = await this.sendMedia("sendDocument", chatId, "document", new Blob([new Uint8Array(fileBuffer)]), filename, { caption, threadId });
|
|
268
285
|
if (msgId) {
|
|
269
|
-
this.recordSentMessage(msgId, caption?.slice(0, 80) ?? `[document: ${filename}]
|
|
286
|
+
this.recordSentMessage(msgId, caption?.slice(0, 80) ?? `[document: ${filename}]`, threadId);
|
|
270
287
|
}
|
|
271
288
|
}
|
|
272
289
|
/** Send a photo to a chat. */
|
|
273
290
|
async sendPhoto(chatId, imageBuffer, filename, caption, threadId) {
|
|
274
291
|
const msgId = await this.sendMedia("sendPhoto", chatId, "photo", new Blob([new Uint8Array(imageBuffer)]), filename, { caption, threadId });
|
|
275
292
|
if (msgId) {
|
|
276
|
-
this.recordSentMessage(msgId, caption?.slice(0, 80) ?? "[photo]");
|
|
293
|
+
this.recordSentMessage(msgId, caption?.slice(0, 80) ?? "[photo]", threadId);
|
|
277
294
|
}
|
|
278
295
|
}
|
|
279
296
|
/** Send a voice message (OGG Opus) to a chat. */
|
|
@@ -281,7 +298,7 @@ export class TelegramClient {
|
|
|
281
298
|
const msgId = await this.sendMedia("sendVoice", chatId, "voice", new Blob([new Uint8Array(audioBuffer)]), "voice.ogg", { threadId });
|
|
282
299
|
if (msgId) {
|
|
283
300
|
const snippet = textSnippet ? textSnippet.slice(0, 80) : "[voice message]";
|
|
284
|
-
this.recordSentMessage(msgId, snippet);
|
|
301
|
+
this.recordSentMessage(msgId, snippet, threadId);
|
|
285
302
|
}
|
|
286
303
|
}
|
|
287
304
|
/** Send a sticker to a chat by file_id. */
|
|
@@ -301,37 +318,59 @@ export class TelegramClient {
|
|
|
301
318
|
throw new Error(`Telegram sendSticker failed: ${response.status} ${description}`);
|
|
302
319
|
}
|
|
303
320
|
if (data?.result?.message_id) {
|
|
304
|
-
this.recordSentMessage(data.result.message_id, `[sticker: ${stickerId.slice(0, 20)}...]
|
|
321
|
+
this.recordSentMessage(data.result.message_id, `[sticker: ${stickerId.slice(0, 20)}...]`, threadId);
|
|
305
322
|
}
|
|
306
323
|
}
|
|
307
324
|
/**
|
|
308
325
|
* Set an emoji reaction on a message ("seen" indicator).
|
|
309
|
-
*
|
|
310
|
-
*
|
|
326
|
+
* Retries on 429 rate-limit responses. Logs the first failure per
|
|
327
|
+
* 60-second window to avoid flooding stderr in busy sessions.
|
|
311
328
|
*/
|
|
312
329
|
reactionWarned = false;
|
|
330
|
+
reactionWarnedAt = 0;
|
|
313
331
|
async setMessageReaction(chatId, messageId, emoji = "\uD83D\uDC40") {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
method: "POST",
|
|
318
|
-
headers: { "Content-Type": "application/json" },
|
|
319
|
-
body: JSON.stringify({
|
|
320
|
-
chat_id: chatId,
|
|
321
|
-
message_id: messageId,
|
|
322
|
-
reaction: [{ type: "emoji", emoji }],
|
|
323
|
-
}),
|
|
324
|
-
});
|
|
325
|
-
if (!response.ok && !this.reactionWarned) {
|
|
326
|
-
this.reactionWarned = true;
|
|
327
|
-
const data = await this.tryParseJson(response);
|
|
328
|
-
log.warn(`[telegram] setMessageReaction failed: ${response.status} ${data?.description ?? response.statusText} (further failures suppressed)`);
|
|
329
|
-
}
|
|
332
|
+
// Reset warning suppression after 60 s so new failures are visible.
|
|
333
|
+
if (this.reactionWarned && Date.now() - this.reactionWarnedAt > 60_000) {
|
|
334
|
+
this.reactionWarned = false;
|
|
330
335
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
336
|
+
const MAX_RETRIES = 3;
|
|
337
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
338
|
+
try {
|
|
339
|
+
const url = `${this.baseUrl}/setMessageReaction`;
|
|
340
|
+
const response = await this.safeFetch(url, {
|
|
341
|
+
method: "POST",
|
|
342
|
+
headers: { "Content-Type": "application/json" },
|
|
343
|
+
body: JSON.stringify({
|
|
344
|
+
chat_id: chatId,
|
|
345
|
+
message_id: messageId,
|
|
346
|
+
reaction: [{ type: "emoji", emoji }],
|
|
347
|
+
}),
|
|
348
|
+
});
|
|
349
|
+
if (response.ok)
|
|
350
|
+
return;
|
|
351
|
+
// Retry on 429 Too Many Requests.
|
|
352
|
+
if (response.status === 429 && attempt < MAX_RETRIES) {
|
|
353
|
+
const data = await this.tryParseJson(response);
|
|
354
|
+
const retryAfter = data?.parameters?.retry_after ?? 1;
|
|
355
|
+
log.info(`[telegram] setMessageReaction 429 on msg ${messageId} — retrying in ${retryAfter}s (attempt ${attempt + 1}/${MAX_RETRIES})`);
|
|
356
|
+
await new Promise(r => setTimeout(r, retryAfter * 1000));
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
if (!this.reactionWarned) {
|
|
360
|
+
this.reactionWarned = true;
|
|
361
|
+
this.reactionWarnedAt = Date.now();
|
|
362
|
+
const data = await this.tryParseJson(response);
|
|
363
|
+
log.warn(`[telegram] setMessageReaction failed: ${response.status} ${data?.description ?? response.statusText} (further failures suppressed for 60s)`);
|
|
364
|
+
}
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
catch (err) {
|
|
368
|
+
if (!this.reactionWarned) {
|
|
369
|
+
this.reactionWarned = true;
|
|
370
|
+
this.reactionWarnedAt = Date.now();
|
|
371
|
+
log.warn(`[telegram] setMessageReaction error: ${err instanceof Error ? err.message : String(err)} (further errors suppressed for 60s)`);
|
|
372
|
+
}
|
|
373
|
+
return;
|
|
335
374
|
}
|
|
336
375
|
}
|
|
337
376
|
}
|