sensorium-mcp 2.16.73 → 2.16.75
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/dashboard/routes/data.d.ts +15 -0
- package/dist/dashboard/routes/data.d.ts.map +1 -0
- package/dist/dashboard/routes/data.js +155 -0
- package/dist/dashboard/routes/data.js.map +1 -0
- package/dist/dashboard/routes/settings.d.ts +13 -0
- package/dist/dashboard/routes/settings.d.ts.map +1 -0
- package/dist/dashboard/routes/settings.js +88 -0
- package/dist/dashboard/routes/settings.js.map +1 -0
- package/dist/dashboard/routes/templates.d.ts +14 -0
- package/dist/dashboard/routes/templates.d.ts.map +1 -0
- package/dist/dashboard/routes/templates.js +113 -0
- package/dist/dashboard/routes/templates.js.map +1 -0
- package/dist/dashboard/routes/types.d.ts +29 -0
- package/dist/dashboard/routes/types.d.ts.map +1 -0
- package/dist/dashboard/routes/types.js +21 -0
- package/dist/dashboard/routes/types.js.map +1 -0
- package/dist/dashboard/routes.d.ts +10 -20
- package/dist/dashboard/routes.d.ts.map +1 -1
- package/dist/dashboard/routes.js +54 -344
- package/dist/dashboard/routes.js.map +1 -1
- package/dist/data/memory/consolidation.js +3 -1
- package/dist/data/memory/consolidation.js.map +1 -1
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +90 -76
- package/dist/http-server.js.map +1 -1
- package/dist/integrations/openai/speech.d.ts +4 -0
- package/dist/integrations/openai/speech.d.ts.map +1 -1
- package/dist/integrations/openai/speech.js +28 -6
- package/dist/integrations/openai/speech.js.map +1 -1
- package/dist/openai.d.ts +1 -1
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +1 -1
- package/dist/openai.js.map +1 -1
- package/dist/server/factory.js +1 -0
- package/dist/server/factory.js.map +1 -1
- package/dist/stdio-server.d.ts.map +1 -1
- package/dist/stdio-server.js +28 -4
- package/dist/stdio-server.js.map +1 -1
- package/dist/tools/defs/memory-defs.d.ts +7 -0
- package/dist/tools/defs/memory-defs.d.ts.map +1 -0
- package/dist/tools/defs/memory-defs.js +166 -0
- package/dist/tools/defs/memory-defs.js.map +1 -0
- package/dist/tools/defs/session-defs.d.ts +7 -0
- package/dist/tools/defs/session-defs.d.ts.map +1 -0
- package/dist/tools/defs/session-defs.js +257 -0
- package/dist/tools/defs/session-defs.js.map +1 -0
- package/dist/tools/defs/utility-defs.d.ts +6 -0
- package/dist/tools/defs/utility-defs.d.ts.map +1 -0
- package/dist/tools/defs/utility-defs.js +35 -0
- package/dist/tools/defs/utility-defs.js.map +1 -0
- package/dist/tools/defs/wait-defs.d.ts +6 -0
- package/dist/tools/defs/wait-defs.d.ts.map +1 -0
- package/dist/tools/defs/wait-defs.js +24 -0
- package/dist/tools/defs/wait-defs.js.map +1 -0
- package/dist/tools/delegate-tool.d.ts +5 -11
- package/dist/tools/delegate-tool.d.ts.map +1 -1
- package/dist/tools/delegate-tool.js +7 -216
- package/dist/tools/delegate-tool.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +3 -1
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +2 -4
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/session-tools.js +2 -1
- package/dist/tools/session-tools.js.map +1 -1
- package/dist/tools/thread-lifecycle.d.ts +51 -0
- package/dist/tools/thread-lifecycle.d.ts.map +1 -0
- package/dist/tools/thread-lifecycle.js +226 -0
- package/dist/tools/thread-lifecycle.js.map +1 -0
- package/dist/tools/wait/drive-handler.d.ts +2 -0
- package/dist/tools/wait/drive-handler.d.ts.map +1 -1
- package/dist/tools/wait/drive-handler.js +7 -7
- package/dist/tools/wait/drive-handler.js.map +1 -1
- package/dist/tools/wait/poll-loop.js +2 -2
- 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 +64 -75
- package/dist/tools/wait/reaction-handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thread lifecycle management: process spawning, PID tracking, and cleanup.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from delegate-tool.ts to separate process-lifecycle concerns
|
|
5
|
+
* from MCP tool-handler logic.
|
|
6
|
+
*/
|
|
7
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
8
|
+
import { closeSync, existsSync, mkdirSync, openSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { getClaudeMcpConfigPath } from "../config.js";
|
|
12
|
+
import { log } from "../logger.js";
|
|
13
|
+
import { errorMessage } from "../utils.js";
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// In-memory registry of spawned processes
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
const spawnedThreads = [];
|
|
18
|
+
/**
|
|
19
|
+
* Check if a process with the given PID is still running.
|
|
20
|
+
*/
|
|
21
|
+
function isProcessAlive(pid) {
|
|
22
|
+
try {
|
|
23
|
+
process.kill(pid, 0); // signal 0 = check existence
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Find a spawned thread entry by threadId whose process is still alive.
|
|
32
|
+
* Searches from the end of the array to find the most recently spawned entry.
|
|
33
|
+
*/
|
|
34
|
+
export function findAliveThread(threadId) {
|
|
35
|
+
for (let i = spawnedThreads.length - 1; i >= 0; i--) {
|
|
36
|
+
const t = spawnedThreads[i];
|
|
37
|
+
if (t.threadId === threadId && isProcessAlive(t.pid))
|
|
38
|
+
return t;
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Check if any tracked process is running for this threadId.
|
|
44
|
+
*/
|
|
45
|
+
export function isThreadRunning(threadId) {
|
|
46
|
+
return findAliveThread(threadId) !== undefined;
|
|
47
|
+
}
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Directory constants & helpers
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
const BASE_DIR = join(homedir(), ".remote-copilot-mcp");
|
|
52
|
+
export const PENDING_TASKS_DIR = join(BASE_DIR, "pending-tasks");
|
|
53
|
+
const LOGS_DIR = join(BASE_DIR, "logs");
|
|
54
|
+
const PIDS_DIR = join(BASE_DIR, "pids");
|
|
55
|
+
export function ensureDirs() {
|
|
56
|
+
mkdirSync(PENDING_TASKS_DIR, { recursive: true });
|
|
57
|
+
mkdirSync(LOGS_DIR, { recursive: true });
|
|
58
|
+
mkdirSync(PIDS_DIR, { recursive: true });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the MCP config path for the spawned Claude process.
|
|
62
|
+
* Priority:
|
|
63
|
+
* 1. CLAUDE_MCP_CONFIG env var
|
|
64
|
+
* 2. Dashboard setting (claudeMcpConfigPath in settings.json)
|
|
65
|
+
* 3. ~/.claude/settings.json
|
|
66
|
+
* 4. ~/.claude/mcp_config.json
|
|
67
|
+
* 5. ~/.claude/.mcp.json
|
|
68
|
+
*/
|
|
69
|
+
export function resolveMcpConfigPath() {
|
|
70
|
+
const envPath = process.env.CLAUDE_MCP_CONFIG;
|
|
71
|
+
if (envPath && existsSync(envPath))
|
|
72
|
+
return envPath;
|
|
73
|
+
const dashboardPath = getClaudeMcpConfigPath();
|
|
74
|
+
if (dashboardPath && existsSync(dashboardPath))
|
|
75
|
+
return dashboardPath;
|
|
76
|
+
const candidates = [
|
|
77
|
+
join(homedir(), ".claude", "settings.json"),
|
|
78
|
+
join(homedir(), ".claude", "mcp_config.json"),
|
|
79
|
+
join(homedir(), ".claude", ".mcp.json"),
|
|
80
|
+
];
|
|
81
|
+
for (const p of candidates) {
|
|
82
|
+
if (existsSync(p))
|
|
83
|
+
return p;
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Resolve the absolute path to the `claude` CLI executable.
|
|
89
|
+
* Returns null if not found. Uses where/which instead of execSync (L3).
|
|
90
|
+
*/
|
|
91
|
+
export function resolveClaudePath() {
|
|
92
|
+
try {
|
|
93
|
+
const cmd = process.platform === "win32" ? "where" : "which";
|
|
94
|
+
const result = spawnSync(cmd, ["claude"], { timeout: 5000, encoding: "utf-8" });
|
|
95
|
+
if (result.status === 0 && result.stdout) {
|
|
96
|
+
return result.stdout.trim().split(/\r?\n/)[0];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch { /* not found */ }
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// Spawn agent process
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
export function spawnAgentProcess(claudePath, mcpConfigPath, name, threadId) {
|
|
106
|
+
const dateStr = new Date().toISOString().slice(0, 10);
|
|
107
|
+
const safeName = name.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
108
|
+
const logFileName = `${safeName}_${threadId}_${dateStr}.json`;
|
|
109
|
+
const logFilePath = join(LOGS_DIR, logFileName);
|
|
110
|
+
const logFd = openSync(logFilePath, "a");
|
|
111
|
+
// Use the original name (not safeName) in the prompt so the spawned agent
|
|
112
|
+
// calls start_session with the exact name stored in the session registry.
|
|
113
|
+
// safeName is only for filesystem-safe log filenames.
|
|
114
|
+
const prompt = `Start remote session with sensorium. Thread name = '${name}'`;
|
|
115
|
+
const cliArgs = [
|
|
116
|
+
"--verbose",
|
|
117
|
+
"--dangerously-skip-permissions",
|
|
118
|
+
"--mcp-config", mcpConfigPath,
|
|
119
|
+
"-p", prompt,
|
|
120
|
+
"--output-format", "stream-json",
|
|
121
|
+
"--include-partial-messages",
|
|
122
|
+
];
|
|
123
|
+
// Use shell only when the resolved path is a Windows batch script (.cmd/.bat)
|
|
124
|
+
const needsShell = process.platform === "win32" && /\.(cmd|bat)$/i.test(claudePath);
|
|
125
|
+
// On Windows, ensure CLAUDE_CODE_GIT_BASH_PATH is set for the child process.
|
|
126
|
+
const spawnEnv = { ...process.env };
|
|
127
|
+
if (process.platform === "win32" && !spawnEnv.CLAUDE_CODE_GIT_BASH_PATH) {
|
|
128
|
+
const gitBashCandidates = [
|
|
129
|
+
join(homedir(), "AppData", "Local", "Programs", "Git", "bin", "bash.exe"),
|
|
130
|
+
"C:\\Program Files\\Git\\bin\\bash.exe",
|
|
131
|
+
"C:\\Program Files (x86)\\Git\\bin\\bash.exe",
|
|
132
|
+
];
|
|
133
|
+
for (const candidate of gitBashCandidates) {
|
|
134
|
+
if (existsSync(candidate)) {
|
|
135
|
+
spawnEnv.CLAUDE_CODE_GIT_BASH_PATH = candidate;
|
|
136
|
+
log.info(`[start_thread] Auto-detected git-bash at ${candidate}`);
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
let child;
|
|
142
|
+
try {
|
|
143
|
+
child = spawn(claudePath, cliArgs, {
|
|
144
|
+
detached: true,
|
|
145
|
+
stdio: ["ignore", logFd, logFd],
|
|
146
|
+
shell: needsShell,
|
|
147
|
+
windowsHide: true,
|
|
148
|
+
env: spawnEnv,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
closeSync(logFd);
|
|
153
|
+
return { error: `Failed to spawn Claude process: ${errorMessage(err)}` };
|
|
154
|
+
}
|
|
155
|
+
// Release the parent's copy of the log file descriptor
|
|
156
|
+
closeSync(logFd);
|
|
157
|
+
const pid = child.pid;
|
|
158
|
+
if (pid === undefined) {
|
|
159
|
+
return { error: "Claude process spawned but PID is undefined — spawn may have failed." };
|
|
160
|
+
}
|
|
161
|
+
// Write PID file for external process tracking
|
|
162
|
+
const pidFilePath = join(PIDS_DIR, `${threadId}.pid`);
|
|
163
|
+
try {
|
|
164
|
+
writeFileSync(pidFilePath, String(pid), "utf-8");
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
log.debug(`[start_thread] Failed to write PID file: ${errorMessage(err)}`);
|
|
168
|
+
}
|
|
169
|
+
// Track spawned process
|
|
170
|
+
const entry = {
|
|
171
|
+
pid,
|
|
172
|
+
threadId,
|
|
173
|
+
name,
|
|
174
|
+
startedAt: Date.now(),
|
|
175
|
+
logFile: logFilePath,
|
|
176
|
+
};
|
|
177
|
+
spawnedThreads.push(entry);
|
|
178
|
+
// Monitor process exit — clean up stale entries, PID file, and log health info
|
|
179
|
+
child.on("exit", (code) => {
|
|
180
|
+
const idx = spawnedThreads.indexOf(entry);
|
|
181
|
+
if (idx !== -1)
|
|
182
|
+
spawnedThreads.splice(idx, 1);
|
|
183
|
+
try {
|
|
184
|
+
unlinkSync(pidFilePath);
|
|
185
|
+
}
|
|
186
|
+
catch { /* already removed */ }
|
|
187
|
+
log.info(`[start_thread] Claude process PID=${pid} for thread ${threadId} exited with code ${code}`);
|
|
188
|
+
});
|
|
189
|
+
// Unref so the parent process can exit without waiting for this child.
|
|
190
|
+
child.unref();
|
|
191
|
+
log.info(`[start_thread] Spawned Claude process PID=${pid} for thread ${threadId} ("${name}")`);
|
|
192
|
+
return { pid, logFile: logFilePath };
|
|
193
|
+
}
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
// Stale PID cleanup
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
/**
|
|
198
|
+
* Remove PID files for processes that are no longer running.
|
|
199
|
+
* Called on server startup / before spawning new threads.
|
|
200
|
+
*/
|
|
201
|
+
export function cleanupStalePidFiles() {
|
|
202
|
+
try {
|
|
203
|
+
const files = readdirSync(PIDS_DIR);
|
|
204
|
+
for (const file of files) {
|
|
205
|
+
if (!file.endsWith(".pid"))
|
|
206
|
+
continue;
|
|
207
|
+
const filePath = join(PIDS_DIR, file);
|
|
208
|
+
try {
|
|
209
|
+
const pid = Number(readFileSync(filePath, "utf-8").trim());
|
|
210
|
+
if (!isProcessAlive(pid)) {
|
|
211
|
+
unlinkSync(filePath);
|
|
212
|
+
log.info(`[cleanup] Removed stale PID file ${file} (pid ${pid})`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Corrupt or unreadable — remove it
|
|
217
|
+
try {
|
|
218
|
+
unlinkSync(filePath);
|
|
219
|
+
}
|
|
220
|
+
catch { /* ignore */ }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch { /* PIDS_DIR may not exist yet */ }
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=thread-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-lifecycle.js","sourceRoot":"","sources":["../../src/tools/thread-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export interface DriveContext {
|
|
|
17
17
|
};
|
|
18
18
|
effectiveThreadId: number | undefined;
|
|
19
19
|
getMemoryDb: () => ReturnType<typeof initMemoryDb>;
|
|
20
|
+
/** OpenAI API key from config (used for embedding backfill). */
|
|
21
|
+
apiKey: string | undefined;
|
|
20
22
|
config: {
|
|
21
23
|
DMN_ACTIVATION_HOURS: number;
|
|
22
24
|
AUTONOMOUS_MODE: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/drive-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE;QACL,qBAAqB,EAAE,MAAM,CAAC;QAC9B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,MAAM,EAAE;QACN,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"drive-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/drive-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE;QACL,qBAAqB,EAAE,MAAM,CAAC;QAC9B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE;QACN,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;CACtB;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAqC5D;AAQD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,CA2CzE"}
|
|
@@ -17,13 +17,13 @@ import { backfillEmbeddings } from "../memory-tools.js";
|
|
|
17
17
|
* Fire-and-forget helper: runs intelligent consolidation + embedding backfill.
|
|
18
18
|
* Logs results under the given `label` (e.g. "Idle-based", "Episode-count").
|
|
19
19
|
*/
|
|
20
|
-
function fireConsolidation(db, threadId, label) {
|
|
20
|
+
function fireConsolidation(db, threadId, label, apiKey) {
|
|
21
21
|
void runIntelligentConsolidation(db, threadId)
|
|
22
22
|
.then(async (report) => {
|
|
23
23
|
if (report.episodesProcessed > 0) {
|
|
24
|
-
log.info(`[memory] ${label} consolidation: ${report.episodesProcessed} episodes
|
|
24
|
+
log.info(`[memory] ${label} consolidation: ${report.episodesProcessed} episodes \u2192 ${report.notesCreated} notes`);
|
|
25
25
|
}
|
|
26
|
-
await backfillEmbeddings(db);
|
|
26
|
+
await backfillEmbeddings(db, apiKey);
|
|
27
27
|
})
|
|
28
28
|
.catch((err) => {
|
|
29
29
|
log.error(`[memory] ${label} consolidation error: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -39,13 +39,13 @@ function fireConsolidation(db, threadId, label) {
|
|
|
39
39
|
* 3. Time-based — every 4 hours regardless
|
|
40
40
|
*/
|
|
41
41
|
export function runAutoConsolidation(ctx) {
|
|
42
|
-
const { state, effectiveThreadId, getMemoryDb } = ctx;
|
|
42
|
+
const { state, effectiveThreadId, getMemoryDb, apiKey } = ctx;
|
|
43
43
|
// Strategy 1: Idle-based consolidation
|
|
44
44
|
try {
|
|
45
45
|
const idleMs = Date.now() - state.lastOperatorMessageAt;
|
|
46
46
|
if (idleMs > 15 * 60 * 1000 && effectiveThreadId !== undefined && Date.now() - state.lastConsolidationAt > 30 * 60 * 1000) {
|
|
47
47
|
state.lastConsolidationAt = Date.now();
|
|
48
|
-
fireConsolidation(getMemoryDb(), effectiveThreadId, "Idle-based");
|
|
48
|
+
fireConsolidation(getMemoryDb(), effectiveThreadId, "Idle-based", apiKey);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
catch (_) { /* consolidation failure is non-fatal */ }
|
|
@@ -58,7 +58,7 @@ export function runAutoConsolidation(ctx) {
|
|
|
58
58
|
const uncons = db.prepare("SELECT COUNT(*) as c FROM episodes WHERE consolidated = 0 AND thread_id = ?").get(effectiveThreadId);
|
|
59
59
|
if (uncons.c >= 15) {
|
|
60
60
|
state.lastConsolidationAt = Date.now();
|
|
61
|
-
fireConsolidation(db, effectiveThreadId, "Episode-count");
|
|
61
|
+
fireConsolidation(db, effectiveThreadId, "Episode-count", apiKey);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -71,7 +71,7 @@ export function runAutoConsolidation(ctx) {
|
|
|
71
71
|
state.lastConsolidationAt = Date.now();
|
|
72
72
|
const db = getMemoryDb();
|
|
73
73
|
log.info(`[memory] Time-based consolidation triggered (4h since last)`);
|
|
74
|
-
fireConsolidation(db, effectiveThreadId, "Time-based");
|
|
74
|
+
fireConsolidation(db, effectiveThreadId, "Time-based", apiKey);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
catch (_) { /* non-fatal */ }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/drive-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,2BAA2B,EAAqB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"drive-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/drive-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -307,7 +307,7 @@ export async function handleWaitForInstructions(args, ctx, extra) {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
// ── Auto-consolidation during idle (fire-and-forget) ────────────────────
|
|
310
|
-
runAutoConsolidation({ state, effectiveThreadId, getMemoryDb, config, memoryRefresh: "", scheduleHint: "" });
|
|
310
|
+
runAutoConsolidation({ state, effectiveThreadId, getMemoryDb, apiKey: OPENAI_API_KEY || undefined, config, memoryRefresh: "", scheduleHint: "" });
|
|
311
311
|
// Periodic memory refresh — re-ground the agent every 10 polls (~5h)
|
|
312
312
|
// (reduced from 5 since auto-inject now handles per-message context)
|
|
313
313
|
let memoryRefresh = "";
|
|
@@ -321,7 +321,7 @@ export async function handleWaitForInstructions(args, ctx, extra) {
|
|
|
321
321
|
catch (_) { /* non-fatal */ }
|
|
322
322
|
}
|
|
323
323
|
// ── 3-Phase Probabilistic Autonomous Drive ──────────────────────────────
|
|
324
|
-
const driveActivationResult = checkDriveActivation({ state, effectiveThreadId, getMemoryDb, config, memoryRefresh, scheduleHint });
|
|
324
|
+
const driveActivationResult = checkDriveActivation({ state, effectiveThreadId, getMemoryDb, apiKey: OPENAI_API_KEY || undefined, config, memoryRefresh, scheduleHint });
|
|
325
325
|
if (driveActivationResult)
|
|
326
326
|
return driveActivationResult;
|
|
327
327
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll-loop.js","sourceRoot":"","sources":["../../../src/tools/wait/poll-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"poll-loop.js","sourceRoot":"","sources":["../../../src/tools/wait/poll-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMxE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"reaction-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMxE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,EAC5C,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CAef;AAMD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA4B5B"}
|
|
@@ -10,93 +10,37 @@ import { saveEpisode } from "../../memory.js";
|
|
|
10
10
|
import { log } from "../../logger.js";
|
|
11
11
|
import { getMediumReminder } from "../../response-builders.js";
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
13
|
-
//
|
|
13
|
+
// Shared helper — consumes the pending reaction and builds episode data
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* `operator_reaction` episode. Clears the reaction after delivery.
|
|
16
|
+
* Read and consume the pending reaction for the given context.
|
|
17
|
+
* Returns the parsed reaction data, or `null` if nothing was pending.
|
|
19
18
|
*
|
|
20
|
-
*
|
|
19
|
+
* Side-effects: clears `ctx.telegram.lastReaction` and persists an
|
|
20
|
+
* `operator_reaction` episode when a thread is active.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
function consumeReaction(ctx) {
|
|
23
23
|
// Only fall back to the global in-memory lastReaction when there is no
|
|
24
24
|
// thread context. With a thread ID, readPendingReaction already checks
|
|
25
25
|
// per-thread and guarded-global files — falling back to the unscoped
|
|
26
26
|
// lastReaction would let the wrong thread consume someone else's reaction.
|
|
27
|
-
const
|
|
28
|
-
? readPendingReaction(ctx.effectiveThreadId)
|
|
29
|
-
: (readPendingReaction() ?? ctx.telegram.lastReaction);
|
|
30
|
-
if (!pendingReaction)
|
|
31
|
-
return;
|
|
32
|
-
const emoji = "emoji" in pendingReaction ? pendingReaction.emoji : "";
|
|
33
|
-
const messageId = "messageId" in pendingReaction ? pendingReaction.messageId : 0;
|
|
34
|
-
const reactionDate = "date" in pendingReaction ? pendingReaction.date : 0;
|
|
35
|
-
if (emoji) {
|
|
36
|
-
const snippet = ctx.telegram.lookupSentMessage(messageId);
|
|
37
|
-
const reactionNote = snippet
|
|
38
|
-
? `(The operator reacted with ${emoji} to your message: '${snippet}')`
|
|
39
|
-
: `(The operator reacted with ${emoji} to message #${messageId})`;
|
|
40
|
-
// Inline the reaction with the last text block if messages exist,
|
|
41
|
-
// otherwise add it as a standalone block.
|
|
42
|
-
const lastTextIdx = contentBlocks.map(b => b.type).lastIndexOf("text");
|
|
43
|
-
if (lastTextIdx >= 0) {
|
|
44
|
-
const prev = contentBlocks[lastTextIdx];
|
|
45
|
-
prev.text = `${prev.text}\n${reactionNote}`;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
contentBlocks.push({ type: "text", text: reactionNote });
|
|
49
|
-
}
|
|
50
|
-
// Save reaction as episodic memory
|
|
51
|
-
try {
|
|
52
|
-
const db = ctx.getMemoryDb();
|
|
53
|
-
const sessionId = `session_${ctx.sessionStartedAt}`;
|
|
54
|
-
if (ctx.effectiveThreadId !== undefined) {
|
|
55
|
-
saveEpisode(db, {
|
|
56
|
-
sessionId,
|
|
57
|
-
threadId: ctx.effectiveThreadId,
|
|
58
|
-
type: "operator_reaction",
|
|
59
|
-
modality: "reaction",
|
|
60
|
-
content: { emoji, messageId, date: reactionDate },
|
|
61
|
-
importance: 0.3,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (_) { /* non-fatal */ }
|
|
66
|
-
}
|
|
67
|
-
// Clear the reaction after delivery
|
|
68
|
-
ctx.telegram.lastReaction = null;
|
|
69
|
-
}
|
|
70
|
-
// ---------------------------------------------------------------------------
|
|
71
|
-
// handleReactionOnly
|
|
72
|
-
// ---------------------------------------------------------------------------
|
|
73
|
-
/**
|
|
74
|
-
* If no text messages arrived but a pending reaction exists, build a
|
|
75
|
-
* standalone `<<< OPERATOR REACTION >>>` envelope and save the episode.
|
|
76
|
-
*
|
|
77
|
-
* Returns a `ToolResult` when a reaction was consumed, or `null` if none
|
|
78
|
-
* was pending.
|
|
79
|
-
*/
|
|
80
|
-
export async function handleReactionOnly(ctx) {
|
|
81
|
-
// Same guard as handleReactionWithMessages — only use the global
|
|
82
|
-
// in-memory lastReaction when no thread context is available.
|
|
83
|
-
const pendingReactionOnly = ctx.effectiveThreadId !== undefined
|
|
27
|
+
const pending = ctx.effectiveThreadId !== undefined
|
|
84
28
|
? readPendingReaction(ctx.effectiveThreadId)
|
|
85
29
|
: (readPendingReaction() ?? ctx.telegram.lastReaction);
|
|
86
|
-
if (!
|
|
30
|
+
if (!pending)
|
|
87
31
|
return null;
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
if (!
|
|
32
|
+
const emoji = "emoji" in pending ? pending.emoji : "";
|
|
33
|
+
const messageId = "messageId" in pending ? pending.messageId : 0;
|
|
34
|
+
const date = "date" in pending ? pending.date : 0;
|
|
35
|
+
if (!emoji)
|
|
92
36
|
return null;
|
|
93
37
|
// Clear in-memory reaction after consumption
|
|
94
38
|
ctx.telegram.lastReaction = null;
|
|
95
|
-
const snippet = ctx.telegram.lookupSentMessage(
|
|
39
|
+
const snippet = ctx.telegram.lookupSentMessage(messageId);
|
|
96
40
|
const reactionNote = snippet
|
|
97
|
-
? `(The operator reacted with ${
|
|
98
|
-
: `(The operator reacted with ${
|
|
99
|
-
//
|
|
41
|
+
? `(The operator reacted with ${emoji} to your message: '${snippet}')`
|
|
42
|
+
: `(The operator reacted with ${emoji} to message #${messageId})`;
|
|
43
|
+
// Persist episode
|
|
100
44
|
try {
|
|
101
45
|
const db = ctx.getMemoryDb();
|
|
102
46
|
const sessionId = `session_${ctx.sessionStartedAt}`;
|
|
@@ -106,13 +50,58 @@ export async function handleReactionOnly(ctx) {
|
|
|
106
50
|
threadId: ctx.effectiveThreadId,
|
|
107
51
|
type: "operator_reaction",
|
|
108
52
|
modality: "reaction",
|
|
109
|
-
content: { emoji
|
|
53
|
+
content: { emoji, messageId, date },
|
|
110
54
|
importance: 0.3,
|
|
111
55
|
});
|
|
112
56
|
}
|
|
113
57
|
}
|
|
114
|
-
catch (
|
|
115
|
-
|
|
58
|
+
catch (err) {
|
|
59
|
+
log.warn(`[reaction-handler] Failed to save reaction episode: ${err instanceof Error ? err.message : String(err)}`);
|
|
60
|
+
}
|
|
61
|
+
return { emoji, messageId, date, snippet: snippet ?? undefined, reactionNote };
|
|
62
|
+
}
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// handleReactionWithMessages
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
/**
|
|
67
|
+
* If a pending operator reaction exists, inline it into the last text block
|
|
68
|
+
* of `contentBlocks` (or append a standalone block) and persist an
|
|
69
|
+
* `operator_reaction` episode. Clears the reaction after delivery.
|
|
70
|
+
*
|
|
71
|
+
* Mutates `contentBlocks` in place.
|
|
72
|
+
*/
|
|
73
|
+
export async function handleReactionWithMessages(contentBlocks, ctx) {
|
|
74
|
+
const reaction = consumeReaction(ctx);
|
|
75
|
+
if (!reaction)
|
|
76
|
+
return;
|
|
77
|
+
const { reactionNote } = reaction;
|
|
78
|
+
// Inline the reaction with the last text block if messages exist,
|
|
79
|
+
// otherwise add it as a standalone block.
|
|
80
|
+
const lastTextIdx = contentBlocks.map(b => b.type).lastIndexOf("text");
|
|
81
|
+
if (lastTextIdx >= 0) {
|
|
82
|
+
const prev = contentBlocks[lastTextIdx];
|
|
83
|
+
prev.text = `${prev.text}\n${reactionNote}`;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
contentBlocks.push({ type: "text", text: reactionNote });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// handleReactionOnly
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
/**
|
|
93
|
+
* If no text messages arrived but a pending reaction exists, build a
|
|
94
|
+
* standalone `<<< OPERATOR REACTION >>>` envelope and save the episode.
|
|
95
|
+
*
|
|
96
|
+
* Returns a `ToolResult` when a reaction was consumed, or `null` if none
|
|
97
|
+
* was pending.
|
|
98
|
+
*/
|
|
99
|
+
export async function handleReactionOnly(ctx) {
|
|
100
|
+
const reaction = consumeReaction(ctx);
|
|
101
|
+
if (!reaction)
|
|
102
|
+
return null;
|
|
103
|
+
const { emoji, messageId, reactionNote } = reaction;
|
|
104
|
+
log.info(`[wait] Reaction-only wake-up: ${emoji} on message ${messageId}`);
|
|
116
105
|
return {
|
|
117
106
|
content: [
|
|
118
107
|
{ type: "text", text: "<<< OPERATOR REACTION >>>" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"reaction-handler.js","sourceRoot":"","sources":["../../../src/tools/wait/reaction-handler.ts"],"names":[],"mappings":"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"}
|