Files
47d3c6b1a1 test(perf): verify authentic retained investigation queries (#4814)
Verify retained queries against authentic SQLite ELF and npm histories, retain failed RPC/cleanup/output costs, and make mixed-history verification repeatable. Record the separate validation-reuse bottleneck in #4810.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-18 02:32:58 +00:00

47 lines
1.3 KiB
JavaScript

/** Keep settled and rejected RPCs in the same receipt before returning control. */
export const createRetainedQueryCaller =
(client, record) => async (name, input, phase) => {
const start = performance.now();
let reply;
try {
reply = await client.callTool(
{ name, arguments: input },
{ timeout: 300000 },
);
} catch (cause) {
const failure =
cause instanceof Error
? { name: cause.name, message: cause.message }
: { name: typeof cause, message: String(cause) };
const receipt = {
name,
input,
phase,
elapsed_ms: performance.now() - start,
reply_bytes: null,
is_error: true,
failure,
};
try {
await record(receipt, { name, input, phase, failure });
} catch (recordingFailure) {
throw new AggregateError(
[cause, recordingFailure],
"MCP call and receipt recording both failed",
);
}
throw cause;
}
const receipt = {
name,
input,
phase,
elapsed_ms: performance.now() - start,
reply_bytes: Buffer.byteLength(JSON.stringify(reply)),
is_error: reply.isError === true,
};
// A receipt-write failure is distinct from a rejected MCP call.
await record(receipt, { name, input, phase, reply });
return reply;
};