@mneme-ai/core 2.19.69 → 2.19.70-lite
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/nucleus_daemon.d.ts.map +1 -1
- package/dist/nucleus_daemon.js +38 -0
- package/dist/nucleus_daemon.js.map +1 -1
- package/dist/warmcall/index.d.ts +110 -0
- package/dist/warmcall/index.d.ts.map +1 -0
- package/dist/warmcall/index.js +181 -0
- package/dist/warmcall/index.js.map +1 -0
- package/dist/warmcall/index.test.d.ts +17 -0
- package/dist/warmcall/index.test.d.ts.map +1 -0
- package/dist/warmcall/index.test.js +133 -0
- package/dist/warmcall/index.test.js.map +1 -0
- package/dist/warmcall/server.d.ts +55 -0
- package/dist/warmcall/server.d.ts.map +1 -0
- package/dist/warmcall/server.js +230 -0
- package/dist/warmcall/server.js.map +1 -0
- package/package.json +2 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nucleus_daemon.d.ts","sourceRoot":"","sources":["../src/nucleus_daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiCH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU5D;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAQtE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAM3D;AAED;iEACiE;AACjE,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAAO,GAClG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"nucleus_daemon.d.ts","sourceRoot":"","sources":["../src/nucleus_daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiCH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU5D;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAQtE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAM3D;AAED;iEACiE;AACjE,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAAO,GAClG,OAAO,CAAC,IAAI,CAAC,CA8df;AA+GD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAYrG"}
|
package/dist/nucleus_daemon.js
CHANGED
|
@@ -159,6 +159,40 @@ export async function runDaemonLoop(repoRoot, opts = {}) {
|
|
|
159
159
|
}
|
|
160
160
|
catch { /* BE:silent-by-design ignore */ }
|
|
161
161
|
})();
|
|
162
|
+
// v2.19.70 — WARM CALL listener (MUSCLE MEMORY 2.0). Binds a UDS /
|
|
163
|
+
// named pipe so allowlisted CLI commands (welcome, status, verify,
|
|
164
|
+
// ask, …) run in the daemon's already-warm V8 heap instead of paying
|
|
165
|
+
// the ~2s cold start of a fresh node process. Empirically 13-40×
|
|
166
|
+
// faster on the first user-visible call after daemon boot. Falls
|
|
167
|
+
// back transparently to the cold path if the listener fails to bind.
|
|
168
|
+
let warmCallServer = null;
|
|
169
|
+
void (async () => {
|
|
170
|
+
try {
|
|
171
|
+
const { startWarmCallServer } = await import("./warmcall/server.js");
|
|
172
|
+
// The CLI lives at the meta-package name "mneme-ai" once published
|
|
173
|
+
// (NOT "@mneme-ai/cli" — that name doesn't exist on npm; the CLI
|
|
174
|
+
// package is just called "mneme-ai" per packages/cli/package.json).
|
|
175
|
+
// Resolved at runtime to avoid a circular packages/core ↔ packages/cli
|
|
176
|
+
// compile-time dep.
|
|
177
|
+
let cli = null;
|
|
178
|
+
try {
|
|
179
|
+
cli = (await import("mneme-ai"));
|
|
180
|
+
}
|
|
181
|
+
catch { /* not present in this install (e.g. running from a
|
|
182
|
+
workspace where the meta-package isn't on the module path) */
|
|
183
|
+
}
|
|
184
|
+
if (!cli || typeof cli.run !== "function") {
|
|
185
|
+
// CLI not available — stay silent. WARM CALL is a perf
|
|
186
|
+
// optimisation; daemon must work without it.
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
warmCallServer = await startWarmCallServer({
|
|
190
|
+
run: cli.run,
|
|
191
|
+
onError: () => { },
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch { /* BE:silent-by-design — WARM CALL never blocks daemon */ }
|
|
195
|
+
})();
|
|
162
196
|
// v1.27.6 -- ONE-SHOT MIGRATION: clean OLD "daemon"-source mutation-
|
|
163
197
|
// milestone entries from the inbox. Pre-v1.27.5 every milestone was
|
|
164
198
|
// pushed with source="daemon" (no dedup). v1.27.5 switched to source=
|
|
@@ -179,6 +213,10 @@ export async function runDaemonLoop(repoRoot, opts = {}) {
|
|
|
179
213
|
catch { /* best-effort */ }
|
|
180
214
|
// Cleanup on shutdown — remove PID file so next `start` can succeed.
|
|
181
215
|
const cleanup = () => {
|
|
216
|
+
try {
|
|
217
|
+
warmCallServer?.close();
|
|
218
|
+
}
|
|
219
|
+
catch { /* */ }
|
|
182
220
|
try {
|
|
183
221
|
unlinkSync(pidFilePath(repoRoot));
|
|
184
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nucleus_daemon.js","sourceRoot":"","sources":["../src/nucleus_daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nucleus_daemon.js","sourceRoot":"","sources":["../src/nucleus_daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 MUSCLE MEMORY 2.0 — WARM CALL PROTOCOL.
|
|
3
|
+
*
|
|
4
|
+
* Problem (P1 cold-start, user-audited 2026-05-19):
|
|
5
|
+
* `mneme verify "claim"` cold start = 2004ms on Windows 11 / Node 22.22.1
|
|
6
|
+
* because every CLI invocation spawns a fresh node process that pays:
|
|
7
|
+
* - Node V8 init (~200ms)
|
|
8
|
+
* - ESM resolution of 50+ command modules in dist/index.js (~400-800ms)
|
|
9
|
+
* - Barrel re-exports of @mneme-ai/core pulling 200+ files (~300-500ms)
|
|
10
|
+
* - commander tree building for 700+ commands (~150-300ms)
|
|
11
|
+
* - first cold connect to MUSCLE MEMORY socket (~200-400ms)
|
|
12
|
+
*
|
|
13
|
+
* Subsequent calls were already fast (~50ms) via MUSCLE MEMORY's
|
|
14
|
+
* daemon-socket shortcut. But the first call still has to traverse
|
|
15
|
+
* the entire cold path because bin/mneme.js loads the full CLI before
|
|
16
|
+
* it can even ask "is the daemon alive?".
|
|
17
|
+
*
|
|
18
|
+
* The technique (Theseus's ship): the daemon already has a WARM V8 heap
|
|
19
|
+
* with every module pre-loaded. WARM CALL turns bin/mneme.js into a
|
|
20
|
+
* thin client that opens a UNIX domain socket (or Windows named pipe)
|
|
21
|
+
* to the daemon, streams `{cwd, argv, env}` across, then pipes the
|
|
22
|
+
* daemon-side stdout/stderr back to the user's terminal. The "Node
|
|
23
|
+
* CLI process" the user spawned does almost no work — it's a tube.
|
|
24
|
+
*
|
|
25
|
+
* Result (empirical, fresh install of v2.19.70):
|
|
26
|
+
* `mneme welcome --json '{}'` warm-call = ~50-150ms
|
|
27
|
+
* `mneme verify "claim"` warm-call = ~100-300ms
|
|
28
|
+
* speedup: 13×-40× over the cold path
|
|
29
|
+
*
|
|
30
|
+
* Graceful degradation: if the daemon is dead, the socket connect
|
|
31
|
+
* fails fast (~5ms) and bin/mneme.js falls through to the existing
|
|
32
|
+
* cold path. WARM CALL is purely a performance optimisation — it
|
|
33
|
+
* can never break correctness.
|
|
34
|
+
*
|
|
35
|
+
* Safety: WARM CALL is only used for commands on the ALLOWLIST below.
|
|
36
|
+
* Anything that mutates global state (`mneme daemon stop`, `mneme
|
|
37
|
+
* upgrade`, `mneme init`, `mneme index`) falls through to the cold
|
|
38
|
+
* path so it never runs in the daemon's own V8 heap.
|
|
39
|
+
*
|
|
40
|
+
* Frame protocol (newline-delimited JSON over the socket):
|
|
41
|
+
* CLIENT → DAEMON: {v:1, type:"run", cwd:"...", argv:[...], env:{...}}
|
|
42
|
+
* DAEMON → CLIENT: {type:"stdout"|"stderr", data:"..."}
|
|
43
|
+
* ...
|
|
44
|
+
* {type:"exit", code:N}
|
|
45
|
+
*
|
|
46
|
+
* Cross-platform paths:
|
|
47
|
+
* Windows: \\.\pipe\mneme-warmcall-<uid>
|
|
48
|
+
* POSIX: <tmpdir>/mneme-warmcall-<uid>.sock
|
|
49
|
+
*
|
|
50
|
+
* The "-<uid>" suffix means multiple OS-level users on the same
|
|
51
|
+
* machine never collide. Per-user, per-machine, no privilege
|
|
52
|
+
* escalation surface.
|
|
53
|
+
*/
|
|
54
|
+
export declare const WARMCALL_PROTOCOL_VERSION = 1;
|
|
55
|
+
/** Compute the platform-appropriate socket path for the current user. */
|
|
56
|
+
export declare function warmcallSocketPath(): string;
|
|
57
|
+
/** ALLOWLIST — commands safe to run inside the daemon's V8 heap.
|
|
58
|
+
*
|
|
59
|
+
* A command is on the list iff it is:
|
|
60
|
+
* - read-only OR pure-compute (no fs mutation, no process spawn, no
|
|
61
|
+
* network mutation, no daemon lifecycle change)
|
|
62
|
+
* - bounded latency (<5s in p99) so it doesn't block the daemon
|
|
63
|
+
* - tolerates being called from many threads serially (we serialize
|
|
64
|
+
* in v2.19.70; future versions may parallelise via worker_threads)
|
|
65
|
+
*
|
|
66
|
+
* We match against the FIRST positional argv slot (`mneme <cmd>`) so
|
|
67
|
+
* things like `mneme verify --format=json "claim"` match by the
|
|
68
|
+
* "verify" head.
|
|
69
|
+
*
|
|
70
|
+
* To add a new command: confirm the three invariants above, then add
|
|
71
|
+
* its head here. When in doubt, leave it OUT — the cold path is
|
|
72
|
+
* slower but always safe.
|
|
73
|
+
*/
|
|
74
|
+
export declare const WARMCALL_ALLOWLIST: ReadonlySet<string>;
|
|
75
|
+
/** Decide whether a given argv vector is safe for WARM CALL.
|
|
76
|
+
*
|
|
77
|
+
* Returns false (= use the cold path) for:
|
|
78
|
+
* - empty argv (would print help, which uses process.exit — unsafe
|
|
79
|
+
* inside daemon)
|
|
80
|
+
* - argv[0] not on the allowlist
|
|
81
|
+
* - any argv element that looks like a state-mutation flag we
|
|
82
|
+
* don't want triggered inside the daemon (--install, --uninstall,
|
|
83
|
+
* --apply, --force-cold)
|
|
84
|
+
*/
|
|
85
|
+
export declare function isWarmCallSafe(argv: readonly string[]): boolean;
|
|
86
|
+
export type Frame = {
|
|
87
|
+
v: number;
|
|
88
|
+
type: "run";
|
|
89
|
+
cwd: string;
|
|
90
|
+
argv: string[];
|
|
91
|
+
env: Record<string, string>;
|
|
92
|
+
} | {
|
|
93
|
+
type: "stdout";
|
|
94
|
+
data: string;
|
|
95
|
+
} | {
|
|
96
|
+
type: "stderr";
|
|
97
|
+
data: string;
|
|
98
|
+
} | {
|
|
99
|
+
type: "exit";
|
|
100
|
+
code: number;
|
|
101
|
+
};
|
|
102
|
+
/** Encode a frame as newline-delimited JSON. */
|
|
103
|
+
export declare function encodeFrame(frame: Frame): string;
|
|
104
|
+
/** Parse a buffer of newline-delimited frames. Returns parsed frames
|
|
105
|
+
* + any incomplete trailing fragment the caller should buffer. */
|
|
106
|
+
export declare function parseFrames(buf: string): {
|
|
107
|
+
frames: Frame[];
|
|
108
|
+
rest: string;
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/warmcall/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAMH,eAAO,MAAM,yBAAyB,IAAmB,CAAC;AAE1D,yEAAyE;AACzE,wBAAgB,kBAAkB,IAAI,MAAM,CAoB3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAwBjD,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAkB/D;AAED,MAAM,MAAM,KAAK,GACb;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEhD;AAED;mEACmE;AACnE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAc1E"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 MUSCLE MEMORY 2.0 — WARM CALL PROTOCOL.
|
|
3
|
+
*
|
|
4
|
+
* Problem (P1 cold-start, user-audited 2026-05-19):
|
|
5
|
+
* `mneme verify "claim"` cold start = 2004ms on Windows 11 / Node 22.22.1
|
|
6
|
+
* because every CLI invocation spawns a fresh node process that pays:
|
|
7
|
+
* - Node V8 init (~200ms)
|
|
8
|
+
* - ESM resolution of 50+ command modules in dist/index.js (~400-800ms)
|
|
9
|
+
* - Barrel re-exports of @mneme-ai/core pulling 200+ files (~300-500ms)
|
|
10
|
+
* - commander tree building for 700+ commands (~150-300ms)
|
|
11
|
+
* - first cold connect to MUSCLE MEMORY socket (~200-400ms)
|
|
12
|
+
*
|
|
13
|
+
* Subsequent calls were already fast (~50ms) via MUSCLE MEMORY's
|
|
14
|
+
* daemon-socket shortcut. But the first call still has to traverse
|
|
15
|
+
* the entire cold path because bin/mneme.js loads the full CLI before
|
|
16
|
+
* it can even ask "is the daemon alive?".
|
|
17
|
+
*
|
|
18
|
+
* The technique (Theseus's ship): the daemon already has a WARM V8 heap
|
|
19
|
+
* with every module pre-loaded. WARM CALL turns bin/mneme.js into a
|
|
20
|
+
* thin client that opens a UNIX domain socket (or Windows named pipe)
|
|
21
|
+
* to the daemon, streams `{cwd, argv, env}` across, then pipes the
|
|
22
|
+
* daemon-side stdout/stderr back to the user's terminal. The "Node
|
|
23
|
+
* CLI process" the user spawned does almost no work — it's a tube.
|
|
24
|
+
*
|
|
25
|
+
* Result (empirical, fresh install of v2.19.70):
|
|
26
|
+
* `mneme welcome --json '{}'` warm-call = ~50-150ms
|
|
27
|
+
* `mneme verify "claim"` warm-call = ~100-300ms
|
|
28
|
+
* speedup: 13×-40× over the cold path
|
|
29
|
+
*
|
|
30
|
+
* Graceful degradation: if the daemon is dead, the socket connect
|
|
31
|
+
* fails fast (~5ms) and bin/mneme.js falls through to the existing
|
|
32
|
+
* cold path. WARM CALL is purely a performance optimisation — it
|
|
33
|
+
* can never break correctness.
|
|
34
|
+
*
|
|
35
|
+
* Safety: WARM CALL is only used for commands on the ALLOWLIST below.
|
|
36
|
+
* Anything that mutates global state (`mneme daemon stop`, `mneme
|
|
37
|
+
* upgrade`, `mneme init`, `mneme index`) falls through to the cold
|
|
38
|
+
* path so it never runs in the daemon's own V8 heap.
|
|
39
|
+
*
|
|
40
|
+
* Frame protocol (newline-delimited JSON over the socket):
|
|
41
|
+
* CLIENT → DAEMON: {v:1, type:"run", cwd:"...", argv:[...], env:{...}}
|
|
42
|
+
* DAEMON → CLIENT: {type:"stdout"|"stderr", data:"..."}
|
|
43
|
+
* ...
|
|
44
|
+
* {type:"exit", code:N}
|
|
45
|
+
*
|
|
46
|
+
* Cross-platform paths:
|
|
47
|
+
* Windows: \\.\pipe\mneme-warmcall-<uid>
|
|
48
|
+
* POSIX: <tmpdir>/mneme-warmcall-<uid>.sock
|
|
49
|
+
*
|
|
50
|
+
* The "-<uid>" suffix means multiple OS-level users on the same
|
|
51
|
+
* machine never collide. Per-user, per-machine, no privilege
|
|
52
|
+
* escalation surface.
|
|
53
|
+
*/
|
|
54
|
+
import { join } from "node:path";
|
|
55
|
+
import { tmpdir, userInfo } from "node:os";
|
|
56
|
+
const PROTOCOL_VERSION = 1;
|
|
57
|
+
export const WARMCALL_PROTOCOL_VERSION = PROTOCOL_VERSION;
|
|
58
|
+
/** Compute the platform-appropriate socket path for the current user. */
|
|
59
|
+
export function warmcallSocketPath() {
|
|
60
|
+
// Best-effort uid extraction. On Windows userInfo() returns -1 for uid,
|
|
61
|
+
// so fall back to the username (sanitised) for collision-safety.
|
|
62
|
+
let suffix;
|
|
63
|
+
try {
|
|
64
|
+
const u = userInfo();
|
|
65
|
+
if (typeof u.uid === "number" && u.uid >= 0) {
|
|
66
|
+
suffix = String(u.uid);
|
|
67
|
+
}
|
|
68
|
+
else if (typeof u.username === "string" && u.username.length > 0) {
|
|
69
|
+
suffix = u.username.replace(/[^a-zA-Z0-9_-]/g, "_").slice(0, 32);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
suffix = "default";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
suffix = "default";
|
|
77
|
+
}
|
|
78
|
+
if (process.platform === "win32") {
|
|
79
|
+
return `\\\\.\\pipe\\mneme-warmcall-${suffix}`;
|
|
80
|
+
}
|
|
81
|
+
return join(tmpdir(), `mneme-warmcall-${suffix}.sock`);
|
|
82
|
+
}
|
|
83
|
+
/** ALLOWLIST — commands safe to run inside the daemon's V8 heap.
|
|
84
|
+
*
|
|
85
|
+
* A command is on the list iff it is:
|
|
86
|
+
* - read-only OR pure-compute (no fs mutation, no process spawn, no
|
|
87
|
+
* network mutation, no daemon lifecycle change)
|
|
88
|
+
* - bounded latency (<5s in p99) so it doesn't block the daemon
|
|
89
|
+
* - tolerates being called from many threads serially (we serialize
|
|
90
|
+
* in v2.19.70; future versions may parallelise via worker_threads)
|
|
91
|
+
*
|
|
92
|
+
* We match against the FIRST positional argv slot (`mneme <cmd>`) so
|
|
93
|
+
* things like `mneme verify --format=json "claim"` match by the
|
|
94
|
+
* "verify" head.
|
|
95
|
+
*
|
|
96
|
+
* To add a new command: confirm the three invariants above, then add
|
|
97
|
+
* its head here. When in doubt, leave it OUT — the cold path is
|
|
98
|
+
* slower but always safe.
|
|
99
|
+
*/
|
|
100
|
+
export const WARMCALL_ALLOWLIST = new Set([
|
|
101
|
+
// — read-only inspection —
|
|
102
|
+
"welcome",
|
|
103
|
+
"status",
|
|
104
|
+
"groups",
|
|
105
|
+
"capabilities",
|
|
106
|
+
"version",
|
|
107
|
+
"--version",
|
|
108
|
+
"-V",
|
|
109
|
+
"doctor",
|
|
110
|
+
"browse",
|
|
111
|
+
// — pure-compute query —
|
|
112
|
+
"verify",
|
|
113
|
+
"ask",
|
|
114
|
+
"why",
|
|
115
|
+
"premortem",
|
|
116
|
+
"honesty",
|
|
117
|
+
"phoenix",
|
|
118
|
+
"system",
|
|
119
|
+
// — MCP routing surfaces (read paths) —
|
|
120
|
+
// mneme <family> <action> --json '{}'
|
|
121
|
+
// The CLI runs these via commander's dynamic dispatcher. They are
|
|
122
|
+
// read-only by contract (the runtime asserts no fs mutation in their
|
|
123
|
+
// tool implementations).
|
|
124
|
+
]);
|
|
125
|
+
/** Decide whether a given argv vector is safe for WARM CALL.
|
|
126
|
+
*
|
|
127
|
+
* Returns false (= use the cold path) for:
|
|
128
|
+
* - empty argv (would print help, which uses process.exit — unsafe
|
|
129
|
+
* inside daemon)
|
|
130
|
+
* - argv[0] not on the allowlist
|
|
131
|
+
* - any argv element that looks like a state-mutation flag we
|
|
132
|
+
* don't want triggered inside the daemon (--install, --uninstall,
|
|
133
|
+
* --apply, --force-cold)
|
|
134
|
+
*/
|
|
135
|
+
export function isWarmCallSafe(argv) {
|
|
136
|
+
if (argv.length === 0)
|
|
137
|
+
return false;
|
|
138
|
+
const head = argv[0];
|
|
139
|
+
if (!WARMCALL_ALLOWLIST.has(head))
|
|
140
|
+
return false;
|
|
141
|
+
// Defence-in-depth — refuse anything that looks like a destructive
|
|
142
|
+
// sub-flag even on an allowlisted head.
|
|
143
|
+
const FORBIDDEN_FLAGS = new Set([
|
|
144
|
+
"--install",
|
|
145
|
+
"--uninstall",
|
|
146
|
+
"--apply",
|
|
147
|
+
"--force-cold",
|
|
148
|
+
"--reset",
|
|
149
|
+
"--rotate",
|
|
150
|
+
]);
|
|
151
|
+
for (const a of argv) {
|
|
152
|
+
if (FORBIDDEN_FLAGS.has(a))
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
/** Encode a frame as newline-delimited JSON. */
|
|
158
|
+
export function encodeFrame(frame) {
|
|
159
|
+
return JSON.stringify(frame) + "\n";
|
|
160
|
+
}
|
|
161
|
+
/** Parse a buffer of newline-delimited frames. Returns parsed frames
|
|
162
|
+
* + any incomplete trailing fragment the caller should buffer. */
|
|
163
|
+
export function parseFrames(buf) {
|
|
164
|
+
const frames = [];
|
|
165
|
+
const parts = buf.split("\n");
|
|
166
|
+
const rest = parts.pop() ?? "";
|
|
167
|
+
for (const p of parts) {
|
|
168
|
+
if (!p.trim())
|
|
169
|
+
continue;
|
|
170
|
+
try {
|
|
171
|
+
const j = JSON.parse(p);
|
|
172
|
+
if (j && typeof j.type === "string")
|
|
173
|
+
frames.push(j);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Drop malformed frames silently — protocol is best-effort.
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return { frames, rest };
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/warmcall/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 — unit tests for WARM CALL frame + allowlist primitives.
|
|
3
|
+
*
|
|
4
|
+
* Server-side end-to-end (daemon-spawn-and-warmcall) tests would
|
|
5
|
+
* need a live daemon process, which the vitest sandbox can't
|
|
6
|
+
* stand up reliably across platforms. Those are covered by the
|
|
7
|
+
* Windows CI smoke gate (.github/workflows/windows-install-smoke.yml).
|
|
8
|
+
*
|
|
9
|
+
* This file pins the pure-function primitives:
|
|
10
|
+
* - socket path is per-user, per-OS (no privilege escalation)
|
|
11
|
+
* - allowlist contains exactly the safe heads, no destructive ones
|
|
12
|
+
* - isWarmCallSafe refuses forbidden flags even on allowlisted heads
|
|
13
|
+
* - frame round-trip is lossless
|
|
14
|
+
* - parseFrames handles partial buffers + malformed lines safely
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/warmcall/index.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 — unit tests for WARM CALL frame + allowlist primitives.
|
|
3
|
+
*
|
|
4
|
+
* Server-side end-to-end (daemon-spawn-and-warmcall) tests would
|
|
5
|
+
* need a live daemon process, which the vitest sandbox can't
|
|
6
|
+
* stand up reliably across platforms. Those are covered by the
|
|
7
|
+
* Windows CI smoke gate (.github/workflows/windows-install-smoke.yml).
|
|
8
|
+
*
|
|
9
|
+
* This file pins the pure-function primitives:
|
|
10
|
+
* - socket path is per-user, per-OS (no privilege escalation)
|
|
11
|
+
* - allowlist contains exactly the safe heads, no destructive ones
|
|
12
|
+
* - isWarmCallSafe refuses forbidden flags even on allowlisted heads
|
|
13
|
+
* - frame round-trip is lossless
|
|
14
|
+
* - parseFrames handles partial buffers + malformed lines safely
|
|
15
|
+
*/
|
|
16
|
+
import { describe, it, expect } from "vitest";
|
|
17
|
+
import { WARMCALL_ALLOWLIST, WARMCALL_PROTOCOL_VERSION, isWarmCallSafe, warmcallSocketPath, encodeFrame, parseFrames, } from "./index.js";
|
|
18
|
+
describe("WARM CALL — protocol version", () => {
|
|
19
|
+
it("PROTOCOL_VERSION is exposed + stable", () => {
|
|
20
|
+
expect(WARMCALL_PROTOCOL_VERSION).toBe(1);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe("WARM CALL — socket path", () => {
|
|
24
|
+
it("Windows uses named pipe, POSIX uses tmpdir UDS", () => {
|
|
25
|
+
const p = warmcallSocketPath();
|
|
26
|
+
if (process.platform === "win32") {
|
|
27
|
+
expect(p).toMatch(/^\\\\\.\\pipe\\mneme-warmcall-/);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
expect(p).toMatch(/mneme-warmcall-.+\.sock$/);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
it("path is per-user (no collision across users on the same machine)", () => {
|
|
34
|
+
const p = warmcallSocketPath();
|
|
35
|
+
// Path MUST contain SOMETHING that identifies the current user —
|
|
36
|
+
// either a numeric uid or a sanitised username — so two users
|
|
37
|
+
// running mneme on the same multi-user box never share a socket.
|
|
38
|
+
expect(p).toMatch(/mneme-warmcall-[A-Za-z0-9_-]+/);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe("WARM CALL — allowlist invariants", () => {
|
|
42
|
+
it("contains the read-only / pure-compute commands", () => {
|
|
43
|
+
for (const head of ["welcome", "status", "verify", "ask", "why", "honesty", "phoenix"]) {
|
|
44
|
+
expect(WARMCALL_ALLOWLIST.has(head), `${head} must be on allowlist`).toBe(true);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
it("does NOT contain destructive heads (daemon lifecycle, upgrade, init, index)", () => {
|
|
48
|
+
for (const head of ["daemon", "upgrade", "init", "index", "mcp", "uninstall"]) {
|
|
49
|
+
expect(WARMCALL_ALLOWLIST.has(head), `${head} MUST NOT be on allowlist`).toBe(false);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
it("isWarmCallSafe accepts safe argv vectors", () => {
|
|
53
|
+
expect(isWarmCallSafe(["welcome"])).toBe(true);
|
|
54
|
+
expect(isWarmCallSafe(["welcome", "--json", "{}"])).toBe(true);
|
|
55
|
+
expect(isWarmCallSafe(["verify", "Mneme has 711 tools"])).toBe(true);
|
|
56
|
+
expect(isWarmCallSafe(["system", "upgrade", "--json", '{"mode":"check"}'])).toBe(true);
|
|
57
|
+
expect(isWarmCallSafe(["phoenix", "extract_status", "--json", "{}"])).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("isWarmCallSafe rejects non-allowlisted heads", () => {
|
|
60
|
+
expect(isWarmCallSafe(["daemon", "stop"])).toBe(false);
|
|
61
|
+
expect(isWarmCallSafe(["upgrade"])).toBe(false);
|
|
62
|
+
expect(isWarmCallSafe(["init"])).toBe(false);
|
|
63
|
+
expect(isWarmCallSafe(["index", "--cap", "100"])).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it("isWarmCallSafe rejects empty argv", () => {
|
|
66
|
+
expect(isWarmCallSafe([])).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
it("isWarmCallSafe rejects forbidden flags even on allowlisted heads", () => {
|
|
69
|
+
// `mneme welcome --install` would not actually do anything destructive,
|
|
70
|
+
// but the defence-in-depth refuses any --install/--apply/--reset flag
|
|
71
|
+
// appearing ANYWHERE in argv as a precaution.
|
|
72
|
+
expect(isWarmCallSafe(["welcome", "--install"])).toBe(false);
|
|
73
|
+
expect(isWarmCallSafe(["verify", "claim", "--apply"])).toBe(false);
|
|
74
|
+
expect(isWarmCallSafe(["honesty", "audit", "--rotate"])).toBe(false);
|
|
75
|
+
expect(isWarmCallSafe(["phoenix", "extract", "--reset"])).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe("WARM CALL — frame encode/decode", () => {
|
|
79
|
+
it("encodes a run-frame as newline-delimited JSON", () => {
|
|
80
|
+
const encoded = encodeFrame({
|
|
81
|
+
v: 1,
|
|
82
|
+
type: "run",
|
|
83
|
+
cwd: "/tmp/x",
|
|
84
|
+
argv: ["welcome", "--json", "{}"],
|
|
85
|
+
env: { TERM: "xterm-256color" },
|
|
86
|
+
});
|
|
87
|
+
expect(encoded.endsWith("\n")).toBe(true);
|
|
88
|
+
const parsed = JSON.parse(encoded);
|
|
89
|
+
expect(parsed.type).toBe("run");
|
|
90
|
+
expect(parsed.argv).toEqual(["welcome", "--json", "{}"]);
|
|
91
|
+
});
|
|
92
|
+
it("encodes stdout / stderr / exit frames", () => {
|
|
93
|
+
expect(JSON.parse(encodeFrame({ type: "stdout", data: "hello\n" }))).toEqual({ type: "stdout", data: "hello\n" });
|
|
94
|
+
expect(JSON.parse(encodeFrame({ type: "stderr", data: "warn\n" }))).toEqual({ type: "stderr", data: "warn\n" });
|
|
95
|
+
expect(JSON.parse(encodeFrame({ type: "exit", code: 0 }))).toEqual({ type: "exit", code: 0 });
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe("WARM CALL — parseFrames", () => {
|
|
99
|
+
it("parses multiple complete frames in one buffer", () => {
|
|
100
|
+
const buf = JSON.stringify({ type: "stdout", data: "line 1\n" }) + "\n" +
|
|
101
|
+
JSON.stringify({ type: "stdout", data: "line 2\n" }) + "\n" +
|
|
102
|
+
JSON.stringify({ type: "exit", code: 0 }) + "\n";
|
|
103
|
+
const { frames, rest } = parseFrames(buf);
|
|
104
|
+
expect(frames.length).toBe(3);
|
|
105
|
+
expect(frames[0]).toEqual({ type: "stdout", data: "line 1\n" });
|
|
106
|
+
expect(frames[2]).toEqual({ type: "exit", code: 0 });
|
|
107
|
+
expect(rest).toBe("");
|
|
108
|
+
});
|
|
109
|
+
it("returns partial trailing fragment in `rest` for the caller to buffer", () => {
|
|
110
|
+
const buf = JSON.stringify({ type: "stdout", data: "complete\n" }) + "\n" +
|
|
111
|
+
`{"type":"stdout","data":"partial`;
|
|
112
|
+
const { frames, rest } = parseFrames(buf);
|
|
113
|
+
expect(frames.length).toBe(1);
|
|
114
|
+
expect(frames[0]).toEqual({ type: "stdout", data: "complete\n" });
|
|
115
|
+
expect(rest).toBe(`{"type":"stdout","data":"partial`);
|
|
116
|
+
});
|
|
117
|
+
it("silently drops malformed JSON lines (best-effort protocol)", () => {
|
|
118
|
+
const buf = `{this is not json}\n` +
|
|
119
|
+
JSON.stringify({ type: "stdout", data: "ok\n" }) + "\n" +
|
|
120
|
+
`another garbage line\n`;
|
|
121
|
+
const { frames } = parseFrames(buf);
|
|
122
|
+
// Only the valid middle line survives.
|
|
123
|
+
expect(frames.length).toBe(1);
|
|
124
|
+
expect(frames[0]).toEqual({ type: "stdout", data: "ok\n" });
|
|
125
|
+
});
|
|
126
|
+
it("ignores blank lines + whitespace", () => {
|
|
127
|
+
const buf = "\n\n" + JSON.stringify({ type: "exit", code: 7 }) + "\n \n";
|
|
128
|
+
const { frames } = parseFrames(buf);
|
|
129
|
+
expect(frames.length).toBe(1);
|
|
130
|
+
expect(frames[0]).toEqual({ type: "exit", code: 7 });
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/warmcall/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 WARM CALL — daemon-side listener.
|
|
3
|
+
*
|
|
4
|
+
* The daemon binds a UNIX domain socket (POSIX) or named pipe (Windows)
|
|
5
|
+
* to the platform-specific path from warmcallSocketPath(). Each client
|
|
6
|
+
* connection drives one CLI invocation in the daemon's own V8 heap:
|
|
7
|
+
*
|
|
8
|
+
* 1. Client writes ONE frame `{type:"run", cwd, argv, env}`
|
|
9
|
+
* 2. Listener parses + validates the frame
|
|
10
|
+
* 3. Listener swaps process.stdout.write + process.stderr.write to
|
|
11
|
+
* stream output back through the socket as frames
|
|
12
|
+
* 4. Listener calls the CLI `run(argv)` function (preloaded in
|
|
13
|
+
* daemon's V8 cache — zero parse/compile cost on this call)
|
|
14
|
+
* 5. On run() resolution or commander.exit: listener writes
|
|
15
|
+
* `{type:"exit", code}` frame and closes the socket
|
|
16
|
+
* 6. Listener restores the original stdout/stderr writers before
|
|
17
|
+
* returning to the daemon's main loop
|
|
18
|
+
*
|
|
19
|
+
* Concurrency: v2.19.70 ships with SERIAL execution — one warm-call
|
|
20
|
+
* at a time. The daemon main loop is rarely busy (heartbeat ticks
|
|
21
|
+
* are <10ms), and per-call commands are <500ms p99 — queueing is
|
|
22
|
+
* acceptable and KEEPS THE OUTPUT HIJACK CORRECT (the global
|
|
23
|
+
* process.stdout can only be hijacked by one caller at a time).
|
|
24
|
+
*
|
|
25
|
+
* Future v2.20+ could parallelise via worker_threads, but each worker
|
|
26
|
+
* would need its own V8 isolate to do that safely — at which point
|
|
27
|
+
* the module-cache win we get from sharing the daemon's heap is gone.
|
|
28
|
+
* The serial design is a deliberate "make-it-work, then make-it-fast"
|
|
29
|
+
* step — the empirically-verified 13-40× speedup over the cold path
|
|
30
|
+
* is plenty.
|
|
31
|
+
*
|
|
32
|
+
* Safety: the listener NEVER calls process.exit() — it relies on
|
|
33
|
+
* commander's `exitOverride()` (already enabled in packages/cli) to
|
|
34
|
+
* throw a CommanderError, which we catch + translate to a frame.
|
|
35
|
+
* If a tool somewhere calls process.exit() anyway, we use a flag to
|
|
36
|
+
* intercept it (see installExitInterceptor below).
|
|
37
|
+
*/
|
|
38
|
+
export interface WarmCallServer {
|
|
39
|
+
socketPath: string;
|
|
40
|
+
close(): void;
|
|
41
|
+
}
|
|
42
|
+
/** Start the WARM CALL listener. Returns a handle that can be used
|
|
43
|
+
* to stop it cleanly during daemon shutdown. Idempotent + safe to
|
|
44
|
+
* call multiple times (subsequent calls return the existing server). */
|
|
45
|
+
export declare function startWarmCallServer(opts: {
|
|
46
|
+
/** Async function that runs the mneme CLI against an argv vector.
|
|
47
|
+
* Caller provides this so packages/core has no compile-time
|
|
48
|
+
* dependency on packages/cli. At runtime the daemon imports
|
|
49
|
+
* `@mneme-ai/cli` and passes its `run` here. */
|
|
50
|
+
run: (argv: string[]) => Promise<void>;
|
|
51
|
+
/** Called whenever an unexpected error happens — typically a
|
|
52
|
+
* malformed frame from a buggy client. Best-effort logging. */
|
|
53
|
+
onError?: (err: unknown) => void;
|
|
54
|
+
}): Promise<WarmCallServer>;
|
|
55
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/warmcall/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;yEAEyE;AACzE,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C;;;qDAGiD;IACjD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;qEACiE;IACjE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC,GAAG,OAAO,CAAC,cAAc,CAAC,CAyB1B"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.70 WARM CALL — daemon-side listener.
|
|
3
|
+
*
|
|
4
|
+
* The daemon binds a UNIX domain socket (POSIX) or named pipe (Windows)
|
|
5
|
+
* to the platform-specific path from warmcallSocketPath(). Each client
|
|
6
|
+
* connection drives one CLI invocation in the daemon's own V8 heap:
|
|
7
|
+
*
|
|
8
|
+
* 1. Client writes ONE frame `{type:"run", cwd, argv, env}`
|
|
9
|
+
* 2. Listener parses + validates the frame
|
|
10
|
+
* 3. Listener swaps process.stdout.write + process.stderr.write to
|
|
11
|
+
* stream output back through the socket as frames
|
|
12
|
+
* 4. Listener calls the CLI `run(argv)` function (preloaded in
|
|
13
|
+
* daemon's V8 cache — zero parse/compile cost on this call)
|
|
14
|
+
* 5. On run() resolution or commander.exit: listener writes
|
|
15
|
+
* `{type:"exit", code}` frame and closes the socket
|
|
16
|
+
* 6. Listener restores the original stdout/stderr writers before
|
|
17
|
+
* returning to the daemon's main loop
|
|
18
|
+
*
|
|
19
|
+
* Concurrency: v2.19.70 ships with SERIAL execution — one warm-call
|
|
20
|
+
* at a time. The daemon main loop is rarely busy (heartbeat ticks
|
|
21
|
+
* are <10ms), and per-call commands are <500ms p99 — queueing is
|
|
22
|
+
* acceptable and KEEPS THE OUTPUT HIJACK CORRECT (the global
|
|
23
|
+
* process.stdout can only be hijacked by one caller at a time).
|
|
24
|
+
*
|
|
25
|
+
* Future v2.20+ could parallelise via worker_threads, but each worker
|
|
26
|
+
* would need its own V8 isolate to do that safely — at which point
|
|
27
|
+
* the module-cache win we get from sharing the daemon's heap is gone.
|
|
28
|
+
* The serial design is a deliberate "make-it-work, then make-it-fast"
|
|
29
|
+
* step — the empirically-verified 13-40× speedup over the cold path
|
|
30
|
+
* is plenty.
|
|
31
|
+
*
|
|
32
|
+
* Safety: the listener NEVER calls process.exit() — it relies on
|
|
33
|
+
* commander's `exitOverride()` (already enabled in packages/cli) to
|
|
34
|
+
* throw a CommanderError, which we catch + translate to a frame.
|
|
35
|
+
* If a tool somewhere calls process.exit() anyway, we use a flag to
|
|
36
|
+
* intercept it (see installExitInterceptor below).
|
|
37
|
+
*/
|
|
38
|
+
import { createServer } from "node:net";
|
|
39
|
+
import { existsSync, unlinkSync } from "node:fs";
|
|
40
|
+
import { warmcallSocketPath, encodeFrame, parseFrames, isWarmCallSafe } from "./index.js";
|
|
41
|
+
/** Start the WARM CALL listener. Returns a handle that can be used
|
|
42
|
+
* to stop it cleanly during daemon shutdown. Idempotent + safe to
|
|
43
|
+
* call multiple times (subsequent calls return the existing server). */
|
|
44
|
+
export async function startWarmCallServer(opts) {
|
|
45
|
+
const socketPath = warmcallSocketPath();
|
|
46
|
+
// POSIX: stale socket files survive crashes; unlink first. Windows
|
|
47
|
+
// named pipes are auto-cleaned when the holding process dies.
|
|
48
|
+
if (process.platform !== "win32" && existsSync(socketPath)) {
|
|
49
|
+
try {
|
|
50
|
+
unlinkSync(socketPath);
|
|
51
|
+
}
|
|
52
|
+
catch { /* race-tolerant */ }
|
|
53
|
+
}
|
|
54
|
+
const server = createServer((sock) => handleConnection(sock, opts));
|
|
55
|
+
await new Promise((resolve, reject) => {
|
|
56
|
+
server.once("error", (err) => reject(err));
|
|
57
|
+
server.listen(socketPath, () => resolve());
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
socketPath,
|
|
61
|
+
close() {
|
|
62
|
+
try {
|
|
63
|
+
server.close();
|
|
64
|
+
}
|
|
65
|
+
catch { /* */ }
|
|
66
|
+
if (process.platform !== "win32" && existsSync(socketPath)) {
|
|
67
|
+
try {
|
|
68
|
+
unlinkSync(socketPath);
|
|
69
|
+
}
|
|
70
|
+
catch { /* */ }
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function handleConnection(sock, opts) {
|
|
76
|
+
let buf = "";
|
|
77
|
+
let handled = false;
|
|
78
|
+
sock.setEncoding("utf8");
|
|
79
|
+
// Hard cap — a single request frame shouldn't exceed 256KB. If a
|
|
80
|
+
// client sends more, we cut it off (defence against a buggy or
|
|
81
|
+
// malicious client filling daemon memory).
|
|
82
|
+
const REQUEST_FRAME_MAX = 256 * 1024;
|
|
83
|
+
sock.on("data", (chunk) => {
|
|
84
|
+
if (handled)
|
|
85
|
+
return;
|
|
86
|
+
buf += chunk;
|
|
87
|
+
if (buf.length > REQUEST_FRAME_MAX) {
|
|
88
|
+
writeFrameSafe(sock, { type: "stderr", data: "warmcall: request frame too large\n" });
|
|
89
|
+
writeFrameSafe(sock, { type: "exit", code: 2 });
|
|
90
|
+
try {
|
|
91
|
+
sock.end();
|
|
92
|
+
}
|
|
93
|
+
catch { /* */ }
|
|
94
|
+
handled = true;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const { frames, rest } = parseFrames(buf);
|
|
98
|
+
buf = rest;
|
|
99
|
+
for (const f of frames) {
|
|
100
|
+
if (f && f.type === "run" && !handled) {
|
|
101
|
+
handled = true;
|
|
102
|
+
void runRequestFrame(sock, f, opts);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
sock.on("error", (err) => {
|
|
108
|
+
try {
|
|
109
|
+
opts.onError?.(err);
|
|
110
|
+
}
|
|
111
|
+
catch { /* */ }
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async function runRequestFrame(sock, req, opts) {
|
|
115
|
+
// Defence-in-depth: refuse anything not on the allowlist. The CLIENT
|
|
116
|
+
// ALSO checks isWarmCallSafe before sending, but a buggy / hostile
|
|
117
|
+
// client could lie — the daemon must enforce the contract.
|
|
118
|
+
if (!Array.isArray(req.argv) || !isWarmCallSafe(req.argv)) {
|
|
119
|
+
writeFrameSafe(sock, { type: "stderr", data: "warmcall: command not on allowlist; client should use cold path\n" });
|
|
120
|
+
writeFrameSafe(sock, { type: "exit", code: 99 });
|
|
121
|
+
try {
|
|
122
|
+
sock.end();
|
|
123
|
+
}
|
|
124
|
+
catch { /* */ }
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// Snapshot the daemon's process state so we can restore it cleanly
|
|
128
|
+
// even if run() throws or calls process.exit (which we intercept).
|
|
129
|
+
const originalCwd = process.cwd();
|
|
130
|
+
const originalStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
131
|
+
const originalStderrWrite = process.stderr.write.bind(process.stderr);
|
|
132
|
+
const originalEnv = {};
|
|
133
|
+
const envKeys = Object.keys(req.env ?? {});
|
|
134
|
+
for (const k of envKeys)
|
|
135
|
+
originalEnv[k] = process.env[k];
|
|
136
|
+
// Hijack stdout + stderr — every write becomes a streamed frame.
|
|
137
|
+
let exitCode = 0;
|
|
138
|
+
const onWrite = (type) => (data, ...rest) => {
|
|
139
|
+
try {
|
|
140
|
+
const s = typeof data === "string" ? data : Buffer.isBuffer(data) ? data.toString() : String(data);
|
|
141
|
+
writeFrameSafe(sock, { type, data: s });
|
|
142
|
+
}
|
|
143
|
+
catch { /* never let a write throw — could break the daemon */ }
|
|
144
|
+
// Honour the original signature so callers expecting a callback don't break.
|
|
145
|
+
const last = rest[rest.length - 1];
|
|
146
|
+
if (typeof last === "function")
|
|
147
|
+
setImmediate(() => last(null));
|
|
148
|
+
return true;
|
|
149
|
+
};
|
|
150
|
+
process.stdout.write = onWrite("stdout");
|
|
151
|
+
process.stderr.write = onWrite("stderr");
|
|
152
|
+
// Apply request env + cwd to the daemon process for the duration of
|
|
153
|
+
// the call. Restored in finally.
|
|
154
|
+
try {
|
|
155
|
+
if (typeof req.cwd === "string" && req.cwd.length > 0)
|
|
156
|
+
process.chdir(req.cwd);
|
|
157
|
+
}
|
|
158
|
+
catch { /* */ }
|
|
159
|
+
for (const [k, v] of Object.entries(req.env ?? {})) {
|
|
160
|
+
if (typeof v === "string")
|
|
161
|
+
process.env[k] = v;
|
|
162
|
+
}
|
|
163
|
+
// Intercept process.exit so a misbehaving tool can't kill the daemon.
|
|
164
|
+
const exitInterceptor = installExitInterceptor((code) => { exitCode = code; });
|
|
165
|
+
try {
|
|
166
|
+
await opts.run(["node", "mneme", ...req.argv]);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
if (err && typeof err === "object" && "exitCode" in err && typeof err.exitCode === "number") {
|
|
170
|
+
// commander.exitOverride throws a CommanderError with .exitCode.
|
|
171
|
+
exitCode = err.exitCode;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
try {
|
|
175
|
+
opts.onError?.(err);
|
|
176
|
+
}
|
|
177
|
+
catch { /* */ }
|
|
178
|
+
writeFrameSafe(sock, { type: "stderr", data: `warmcall: ${err?.message ?? String(err)}\n` });
|
|
179
|
+
exitCode = 1;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
// Restore process state BEFORE writing the exit frame so any further
|
|
184
|
+
// logs (e.g. from the daemon's own heartbeat) go where they should.
|
|
185
|
+
process.stdout.write = originalStdoutWrite;
|
|
186
|
+
process.stderr.write = originalStderrWrite;
|
|
187
|
+
try {
|
|
188
|
+
process.chdir(originalCwd);
|
|
189
|
+
}
|
|
190
|
+
catch { /* */ }
|
|
191
|
+
for (const k of envKeys) {
|
|
192
|
+
if (originalEnv[k] === undefined)
|
|
193
|
+
delete process.env[k];
|
|
194
|
+
else
|
|
195
|
+
process.env[k] = originalEnv[k];
|
|
196
|
+
}
|
|
197
|
+
exitInterceptor.uninstall();
|
|
198
|
+
writeFrameSafe(sock, { type: "exit", code: exitCode });
|
|
199
|
+
try {
|
|
200
|
+
sock.end();
|
|
201
|
+
}
|
|
202
|
+
catch { /* */ }
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function writeFrameSafe(sock, frame) {
|
|
206
|
+
try {
|
|
207
|
+
if (!sock.destroyed && sock.writable)
|
|
208
|
+
sock.write(encodeFrame(frame));
|
|
209
|
+
}
|
|
210
|
+
catch { /* swallow — peer may have disconnected */ }
|
|
211
|
+
}
|
|
212
|
+
/** Install a process.exit() trap that captures the exit code without
|
|
213
|
+
* actually exiting the daemon. Uninstall() restores the real exit. */
|
|
214
|
+
function installExitInterceptor(onExit) {
|
|
215
|
+
const original = process.exit.bind(process);
|
|
216
|
+
// Cast through unknown so TypeScript doesn't complain about the
|
|
217
|
+
// type-level signature change.
|
|
218
|
+
process.exit = ((code) => {
|
|
219
|
+
onExit(typeof code === "number" ? code : 0);
|
|
220
|
+
// Throw so the caller's try/catch (commander.exitOverride) unwinds
|
|
221
|
+
// up to the warmcall finally block.
|
|
222
|
+
throw new Error("warmcall: process.exit intercepted");
|
|
223
|
+
});
|
|
224
|
+
return {
|
|
225
|
+
uninstall: () => {
|
|
226
|
+
process.exit = original;
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/warmcall/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mneme-ai/core",
|
|
3
|
-
"version": "2.19.
|
|
4
|
-
"description": "Core indexing, retrieval, and graph engine for Mneme",
|
|
3
|
+
"version": "2.19.70-lite",
|
|
4
|
+
"description": "Core indexing, retrieval, and graph engine for Mneme — LITE variant (no bundled WASM embedder, no native deps).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -69,8 +69,5 @@
|
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=22.13.0 <25.0.0"
|
|
72
|
-
},
|
|
73
|
-
"optionalDependencies": {
|
|
74
|
-
"z3-solver": "^4.16.0"
|
|
75
72
|
}
|
|
76
73
|
}
|