eklavya 1.24.0 → 1.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +185 -8
- package/dist/cli.js.map +1 -1
- package/dist/hooks/lib.js +6 -0
- package/dist/hooks/lib.js.map +1 -1
- package/dist/hooks/memory-lib.js +21 -26
- package/dist/hooks/memory-lib.js.map +1 -1
- package/dist/memory/provider.js +175 -19
- package/dist/memory/provider.js.map +1 -1
- package/dist/memory/reservation.js +386 -0
- package/dist/memory/reservation.js.map +1 -0
- package/dist/memory/store.js +106 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/summarize.js.map +1 -1
- package/dist/memory/worker.js +179 -8
- package/dist/memory/worker.js.map +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/hooks/CLAUDE.md +13 -3
- package/dist/plugin/hooks/run.mjs +6 -0
- package/dist/tools/memory_read_tools.js +1 -1
- package/dist/tools/memory_read_tools.js.map +1 -1
- package/dist/user-skill/eklavya/SKILL.md +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-lib.js","sourceRoot":"","sources":["../../src/hooks/memory-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-lib.js","sourceRoot":"","sources":["../../src/hooks/memory-lib.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/provider.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
+
import { groupAlive, OBSERVER_ENV } from './reservation.js';
|
|
4
5
|
export class ProviderError extends Error {
|
|
5
6
|
errorClass;
|
|
6
7
|
constructor(errorClass, message) {
|
|
@@ -75,6 +76,9 @@ function renderEvidence(input) {
|
|
|
75
76
|
* one this slow is a hung child, not a slow model.
|
|
76
77
|
*/
|
|
77
78
|
const TIMEOUT_MS = 100_000;
|
|
79
|
+
/** SIGTERM to SIGKILL, for a tree that ignores the polite ask. */
|
|
80
|
+
const KILL_GRACE_MS = 5_000;
|
|
81
|
+
const MAX_STDOUT = 16 * 1024 * 1024;
|
|
78
82
|
/**
|
|
79
83
|
* The flags that make `claude -p` a summariser and nothing else: no tools, no
|
|
80
84
|
* MCP servers, no hooks — this plugin's hooks included, or the summariser's own
|
|
@@ -91,6 +95,10 @@ export function claudeArgs(model) {
|
|
|
91
95
|
'--tools', '',
|
|
92
96
|
'--strict-mcp-config',
|
|
93
97
|
'--no-session-persistence',
|
|
98
|
+
// Plugins, hooks, MCP servers and CLAUDE.md off, auth kept. Belt and braces
|
|
99
|
+
// only: correctness rests on OBSERVER_ENV, because hooks ran through
|
|
100
|
+
// `disableAllHooks` before.
|
|
101
|
+
'--safe-mode',
|
|
94
102
|
// A null helper overrides one in the developer's settings, which would bill an API key.
|
|
95
103
|
'--settings', JSON.stringify({ disableAllHooks: true, apiKeyHelper: null }),
|
|
96
104
|
];
|
|
@@ -134,34 +142,182 @@ const NOT_THE_SUBSCRIPTION = [
|
|
|
134
142
|
'CLAUDE_CODE_USE_BEDROCK',
|
|
135
143
|
'CLAUDE_CODE_USE_VERTEX',
|
|
136
144
|
];
|
|
145
|
+
/**
|
|
146
|
+
* Waits for process group `pgid` to empty: SIGTERM to whatever is left, SIGKILL
|
|
147
|
+
* after `graceMs`, then a short wait for the kernel to finish the job. True once
|
|
148
|
+
* nothing in the group is alive.
|
|
149
|
+
*/
|
|
150
|
+
async function reapGroup(pgid, graceMs) {
|
|
151
|
+
if (process.platform === 'win32')
|
|
152
|
+
return true;
|
|
153
|
+
const settle = async (ms) => {
|
|
154
|
+
const deadline = Date.now() + ms;
|
|
155
|
+
while (groupAlive(pgid) && Date.now() < deadline)
|
|
156
|
+
await new Promise((r) => setTimeout(r, 25));
|
|
157
|
+
};
|
|
158
|
+
const signal = (sig) => {
|
|
159
|
+
try {
|
|
160
|
+
process.kill(-pgid, sig);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
/* Already gone. */
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
if (!groupAlive(pgid))
|
|
167
|
+
return true;
|
|
168
|
+
signal('SIGTERM');
|
|
169
|
+
await settle(graceMs);
|
|
170
|
+
if (groupAlive(pgid)) {
|
|
171
|
+
signal('SIGKILL');
|
|
172
|
+
await settle(2_000);
|
|
173
|
+
}
|
|
174
|
+
return !groupAlive(pgid);
|
|
175
|
+
}
|
|
137
176
|
/**
|
|
138
177
|
* Runs the configured Claude model through Claude Code (`claude -p`), on the
|
|
139
178
|
* developer's own subscription. Every variable that would route it elsewhere —
|
|
140
179
|
* an API key or token, Bedrock, Vertex — is stripped from the child's
|
|
141
180
|
* environment, so a stray one in the shell can never turn this into metered
|
|
142
181
|
* API traffic.
|
|
182
|
+
*
|
|
183
|
+
* `OBSERVER_ENV` is set on the way in, and it is the guard that does not depend
|
|
184
|
+
* on Claude Code: hooks inherit it, and every Eklavya hook and worker returns at
|
|
185
|
+
* once when it sees it. `disableAllHooks` asked Claude Code the same thing,
|
|
186
|
+
* and 2.1.280 ran the hooks anyway; `--safe-mode` is a second ask, not a
|
|
187
|
+
* guarantee.
|
|
188
|
+
*
|
|
189
|
+
* The child leads its own process group, and that group is reaped on **every**
|
|
190
|
+
* way out — success included, because `claude` exiting cleanly says nothing
|
|
191
|
+
* about what it started. A timeout, a cancel or an output overflow sends
|
|
192
|
+
* SIGTERM at once; whatever is left when the leader exits gets SIGTERM, then
|
|
193
|
+
* SIGKILL after `graceMs`. The promise settles only after that, and
|
|
194
|
+
* `onSpawn(null)` is called only when the group is confirmed empty — so a
|
|
195
|
+
* caller that keys its release on it never gives up its slot beside a live
|
|
196
|
+
* tree. If this process dies first, an exit handler SIGKILLs the group.
|
|
197
|
+
*
|
|
198
|
+
* `onSpawn` is the caller's code and may throw (it writes to a database). A
|
|
199
|
+
* throw cancels the call rather than escaping with the tree still running.
|
|
143
200
|
*/
|
|
144
|
-
function runClaude(model, prompt) {
|
|
145
|
-
const env = { ...process.env };
|
|
201
|
+
export function runClaude(model, prompt, opts = {}) {
|
|
202
|
+
const env = { ...process.env, [OBSERVER_ENV]: '1' };
|
|
146
203
|
for (const name of NOT_THE_SUBSCRIPTION)
|
|
147
204
|
delete env[name];
|
|
205
|
+
const timeoutMs = opts.timeoutMs ?? TIMEOUT_MS;
|
|
206
|
+
const graceMs = opts.graceMs ?? KILL_GRACE_MS;
|
|
207
|
+
const maxOutput = opts.maxOutput ?? MAX_STDOUT;
|
|
148
208
|
return new Promise((resolve, reject) => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
if (opts.signal?.aborted)
|
|
210
|
+
return reject(new ProviderError('cancelled', 'cancelled before claude started'));
|
|
211
|
+
// ponytail: no shell, so on Windows only a native `claude.exe` is found, not
|
|
212
|
+
// npm's `claude.cmd` shim — cmd.exe would mangle the JSON arguments. Resolve
|
|
213
|
+
// the shim's cli.js and run it with node if Windows npm installs need this.
|
|
214
|
+
const child = spawn('claude', claudeArgs(model), {
|
|
215
|
+
env,
|
|
216
|
+
cwd: os.tmpdir(),
|
|
217
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
218
|
+
detached: process.platform !== 'win32',
|
|
219
|
+
windowsHide: true,
|
|
220
|
+
});
|
|
221
|
+
let stdout = '';
|
|
222
|
+
let ended = null;
|
|
223
|
+
let force;
|
|
224
|
+
const signalTree = (sig) => {
|
|
225
|
+
try {
|
|
226
|
+
// Negative pid: the whole group. Windows has no groups; the child alone.
|
|
227
|
+
// ponytail: Windows leaves grandchildren; `taskkill /T /F` if that matters.
|
|
228
|
+
if (process.platform === 'win32' || !child.pid)
|
|
229
|
+
child.kill(sig);
|
|
230
|
+
else
|
|
231
|
+
process.kill(-child.pid, sig);
|
|
156
232
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
233
|
+
catch {
|
|
234
|
+
/* Already gone. */
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
// The last resort, for a worker that dies with the call running: an
|
|
238
|
+
// uncaught throw or process.exit still runs 'exit' listeners.
|
|
239
|
+
const onExit = () => signalTree('SIGKILL');
|
|
240
|
+
process.once('exit', onExit);
|
|
241
|
+
const end = (why) => {
|
|
242
|
+
if (ended)
|
|
243
|
+
return;
|
|
244
|
+
ended = why;
|
|
245
|
+
// Nothing after this point is ever read: let go of what was buffered.
|
|
246
|
+
stdout = '';
|
|
247
|
+
signalTree('SIGTERM');
|
|
248
|
+
force = setTimeout(() => signalTree('SIGKILL'), graceMs);
|
|
249
|
+
};
|
|
250
|
+
const report = (pid) => {
|
|
251
|
+
try {
|
|
252
|
+
opts.onSpawn?.(pid);
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const timer = setTimeout(() => end(new ProviderError('transient', `claude -p did not finish in ${timeoutMs / 1000}s`)), timeoutMs);
|
|
260
|
+
const onAbort = () => end(new ProviderError('cancelled', 'memory processing was turned off'));
|
|
261
|
+
opts.signal?.addEventListener('abort', onAbort, { once: true });
|
|
262
|
+
if (!report(child.pid ?? null))
|
|
263
|
+
end(new ProviderError('cancelled', 'the worker could not record its provider call'));
|
|
264
|
+
child.stdout.setEncoding('utf8');
|
|
265
|
+
child.stdout.on('data', (d) => {
|
|
266
|
+
// Once the call is over — overflow, timeout, cancel — keep draining the
|
|
267
|
+
// pipe so the child is never blocked on a write, but keep none of it.
|
|
268
|
+
if (ended)
|
|
269
|
+
return;
|
|
270
|
+
stdout += d;
|
|
271
|
+
if (stdout.length > maxOutput) {
|
|
272
|
+
end(new ProviderError('malformed', `claude -p printed more than ${Math.round(maxOutput / 1024 / 1024)} MB`));
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
child.stdin.on('error', () => { });
|
|
276
|
+
child.stdin.end(prompt);
|
|
277
|
+
let spawnError = null;
|
|
278
|
+
child.once('error', (err) => {
|
|
279
|
+
spawnError = err;
|
|
280
|
+
});
|
|
281
|
+
// Reaping starts when the leader exits, not when its pipes close: anything
|
|
282
|
+
// it left running may hold stdout open, and 'close' would then wait for it
|
|
283
|
+
// — to the deadline, or for ever. Killing the group closes the pipe.
|
|
284
|
+
let reaping = null;
|
|
285
|
+
let unstick;
|
|
286
|
+
let killedBy = null;
|
|
287
|
+
child.once('exit', (_code, sig) => {
|
|
288
|
+
killedBy = sig;
|
|
289
|
+
reaping = child.pid ? reapGroup(child.pid, ended ? 0 : graceMs) : Promise.resolve(true);
|
|
290
|
+
// A descendant that left the group can still hold the pipe; stop waiting for it.
|
|
291
|
+
unstick = setTimeout(() => child.stdout?.destroy(), graceMs + 3_000);
|
|
292
|
+
});
|
|
293
|
+
child.once('close', () => {
|
|
294
|
+
clearTimeout(timer);
|
|
295
|
+
if (force)
|
|
296
|
+
clearTimeout(force);
|
|
297
|
+
opts.signal?.removeEventListener('abort', onAbort);
|
|
298
|
+
const reaped = reaping ?? (child.pid ? reapGroup(child.pid, 0) : Promise.resolve(true));
|
|
299
|
+
void reaped.then((clear) => {
|
|
300
|
+
if (unstick)
|
|
301
|
+
clearTimeout(unstick);
|
|
302
|
+
process.removeListener('exit', onExit);
|
|
303
|
+
// Only a confirmed-empty group clears the caller's record of it.
|
|
304
|
+
if (clear)
|
|
305
|
+
report(null);
|
|
306
|
+
if (spawnError?.code === 'ENOENT') {
|
|
307
|
+
return reject(new ProviderError('missing', 'claude is not on the PATH the hooks see'));
|
|
308
|
+
}
|
|
309
|
+
if (ended)
|
|
310
|
+
return reject(ended);
|
|
311
|
+
if (spawnError)
|
|
312
|
+
return reject(new ProviderError('transient', spawnError.message));
|
|
313
|
+
// Killed by somebody else's signal: whatever it printed is cut short,
|
|
314
|
+
// and parsing it would call a stopped run malformed — a permanent fail.
|
|
315
|
+
if (killedBy)
|
|
316
|
+
return reject(new ProviderError('transient', `claude -p was stopped by ${killedBy}`));
|
|
317
|
+
// A failed run still prints its JSON envelope; that says more than the exit code.
|
|
318
|
+
resolve(stdout);
|
|
319
|
+
});
|
|
163
320
|
});
|
|
164
|
-
child.stdin?.end(prompt);
|
|
165
321
|
});
|
|
166
322
|
}
|
|
167
323
|
export class ProviderSummarizer {
|
|
@@ -171,10 +327,10 @@ export class ProviderSummarizer {
|
|
|
171
327
|
this.config = config;
|
|
172
328
|
this.id = `${config.kind}:${config.model}`;
|
|
173
329
|
}
|
|
174
|
-
async summarize(input) {
|
|
330
|
+
async summarize(input, opts = {}) {
|
|
175
331
|
if (!input.events.length)
|
|
176
332
|
return [];
|
|
177
|
-
const stdout = await runClaude(this.config.model, `<evidence project="${input.project}" session="${input.sessionId}">\n${renderEvidence(input)}\n</evidence
|
|
333
|
+
const stdout = await runClaude(this.config.model, `<evidence project="${input.project}" session="${input.sessionId}">\n${renderEvidence(input)}\n</evidence>`, opts);
|
|
178
334
|
const result = ResultSchema.safeParse(readResult(stdout));
|
|
179
335
|
if (!result.success) {
|
|
180
336
|
throw new ProviderError('malformed', `the provider output failed validation: ${result.error.message.slice(0, 200)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/memory/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/memory/provider.ts"],"names":[],"mappings":"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"}
|