@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.
@@ -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,CA8bf;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"}
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"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,yEAAyE;AACzE,MAAM,UAAU,kBAAkB;IAChC,yEAAyE;IACzE,iEAAiE;IACjE,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,+BAA+B,MAAM,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,MAAM,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,2BAA2B;IAC3B,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,SAAS;IACT,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,yBAAyB;IACzB,QAAQ;IACR,KAAK;IACL,KAAK;IACL,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,wCAAwC;IACxC,sCAAsC;IACtC,mEAAmE;IACnE,qEAAqE;IACrE,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IACtB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,mEAAmE;IACnE,wCAAwC;IACxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,WAAW;QACX,aAAa;QACb,SAAS;QACT,cAAc;QACd,SAAS;QACT,UAAU;KACX,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACtC,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,SAAS;QACxB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC"}
@@ -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.69",
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
  }