nodebench-mcp 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/operatingDashboardHtml.js +2 -1
- package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
- package/dist/dashboard/operatingServer.js +3 -2
- package/dist/dashboard/operatingServer.js.map +1 -1
- package/dist/db.js +51 -3
- package/dist/db.js.map +1 -1
- package/dist/index.js +13 -16
- package/dist/index.js.map +1 -1
- package/dist/packageInfo.d.ts +3 -0
- package/dist/packageInfo.js +32 -0
- package/dist/packageInfo.js.map +1 -0
- package/dist/sandboxApi.js +2 -1
- package/dist/sandboxApi.js.map +1 -1
- package/dist/tools/boilerplateTools.js +10 -9
- package/dist/tools/boilerplateTools.js.map +1 -1
- package/dist/tools/documentationTools.js +2 -1
- package/dist/tools/documentationTools.js.map +1 -1
- package/dist/tools/progressiveDiscoveryTools.js +2 -1
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/toolRegistry.js +11 -0
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/toolsetRegistry.js +74 -1
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +4 -3
- package/dist/__tests__/analytics.test.d.ts +0 -11
- package/dist/__tests__/analytics.test.js +0 -546
- package/dist/__tests__/analytics.test.js.map +0 -1
- package/dist/__tests__/architectComplex.test.d.ts +0 -1
- package/dist/__tests__/architectComplex.test.js +0 -373
- package/dist/__tests__/architectComplex.test.js.map +0 -1
- package/dist/__tests__/architectSmoke.test.d.ts +0 -1
- package/dist/__tests__/architectSmoke.test.js +0 -92
- package/dist/__tests__/architectSmoke.test.js.map +0 -1
- package/dist/__tests__/audit-registry.d.ts +0 -1
- package/dist/__tests__/audit-registry.js +0 -60
- package/dist/__tests__/audit-registry.js.map +0 -1
- package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
- package/dist/__tests__/batchAutopilot.test.js +0 -218
- package/dist/__tests__/batchAutopilot.test.js.map +0 -1
- package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
- package/dist/__tests__/cliSubcommands.test.js +0 -138
- package/dist/__tests__/cliSubcommands.test.js.map +0 -1
- package/dist/__tests__/comparativeBench.test.d.ts +0 -1
- package/dist/__tests__/comparativeBench.test.js +0 -722
- package/dist/__tests__/comparativeBench.test.js.map +0 -1
- package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
- package/dist/__tests__/critterCalibrationEval.js +0 -370
- package/dist/__tests__/critterCalibrationEval.js.map +0 -1
- package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
- package/dist/__tests__/dynamicLoading.test.js +0 -280
- package/dist/__tests__/dynamicLoading.test.js.map +0 -1
- package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
- package/dist/__tests__/embeddingProvider.test.js +0 -86
- package/dist/__tests__/embeddingProvider.test.js.map +0 -1
- package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
- package/dist/__tests__/evalDatasetBench.test.js +0 -738
- package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
- package/dist/__tests__/evalHarness.test.d.ts +0 -1
- package/dist/__tests__/evalHarness.test.js +0 -1107
- package/dist/__tests__/evalHarness.test.js.map +0 -1
- package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
- package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
- package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
- package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
- package/dist/__tests__/forecastingDogfood.test.js +0 -284
- package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
- package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
- package/dist/__tests__/forecastingScoring.test.js +0 -202
- package/dist/__tests__/forecastingScoring.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
- package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
- package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
- package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
- package/dist/__tests__/helpers/answerMatch.js +0 -267
- package/dist/__tests__/helpers/answerMatch.js.map +0 -1
- package/dist/__tests__/helpers/textLlm.d.ts +0 -25
- package/dist/__tests__/helpers/textLlm.js +0 -214
- package/dist/__tests__/helpers/textLlm.js.map +0 -1
- package/dist/__tests__/localDashboard.test.d.ts +0 -1
- package/dist/__tests__/localDashboard.test.js +0 -226
- package/dist/__tests__/localDashboard.test.js.map +0 -1
- package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
- package/dist/__tests__/multiHopDogfood.test.js +0 -303
- package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
- package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
- package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
- package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
- package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
- package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
- package/dist/__tests__/openclawDogfood.test.js +0 -535
- package/dist/__tests__/openclawDogfood.test.js.map +0 -1
- package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
- package/dist/__tests__/openclawMessaging.test.js +0 -232
- package/dist/__tests__/openclawMessaging.test.js.map +0 -1
- package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
- package/dist/__tests__/presetRealWorldBench.test.js +0 -859
- package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
- package/dist/__tests__/tools.test.d.ts +0 -1
- package/dist/__tests__/tools.test.js +0 -3201
- package/dist/__tests__/tools.test.js.map +0 -1
- package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
- package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
- package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
- package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
- package/dist/__tests__/traceabilityDogfood.test.js +0 -241
- package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
- package/dist/__tests__/webmcpTools.test.d.ts +0 -7
- package/dist/__tests__/webmcpTools.test.js +0 -195
- package/dist/__tests__/webmcpTools.test.js.map +0 -1
- package/dist/benchmarks/testProviderBus.d.ts +0 -7
- package/dist/benchmarks/testProviderBus.js +0 -272
- package/dist/benchmarks/testProviderBus.js.map +0 -1
- package/dist/hooks/postCompaction.d.ts +0 -14
- package/dist/hooks/postCompaction.js +0 -51
- package/dist/hooks/postCompaction.js.map +0 -1
- package/dist/security/__tests__/security.test.d.ts +0 -8
- package/dist/security/__tests__/security.test.js +0 -295
- package/dist/security/__tests__/security.test.js.map +0 -1
- package/dist/sync/hyperloopEval.test.d.ts +0 -4
- package/dist/sync/hyperloopEval.test.js +0 -60
- package/dist/sync/hyperloopEval.test.js.map +0 -1
- package/dist/sync/store.test.d.ts +0 -4
- package/dist/sync/store.test.js +0 -43
- package/dist/sync/store.test.js.map +0 -1
- package/dist/tools/documentTools.d.ts +0 -5
- package/dist/tools/documentTools.js +0 -524
- package/dist/tools/documentTools.js.map +0 -1
- package/dist/tools/financialTools.d.ts +0 -10
- package/dist/tools/financialTools.js +0 -403
- package/dist/tools/financialTools.js.map +0 -1
- package/dist/tools/memoryTools.d.ts +0 -5
- package/dist/tools/memoryTools.js +0 -137
- package/dist/tools/memoryTools.js.map +0 -1
- package/dist/tools/planningTools.d.ts +0 -5
- package/dist/tools/planningTools.js +0 -147
- package/dist/tools/planningTools.js.map +0 -1
- package/dist/tools/searchTools.d.ts +0 -5
- package/dist/tools/searchTools.js +0 -145
- package/dist/tools/searchTools.js.map +0 -1
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* testProviderBus.ts — Integration test for ProviderBus WebSocket event bus.
|
|
3
|
-
*
|
|
4
|
-
* Tests: auth, registration, event routing, disconnect cleanup.
|
|
5
|
-
* Run: npx tsx src/benchmarks/testProviderBus.ts
|
|
6
|
-
*/
|
|
7
|
-
import { createServer } from "node:http";
|
|
8
|
-
import { WebSocket } from "ws";
|
|
9
|
-
import { ProviderBus, } from "../../../../server/providerBus.js";
|
|
10
|
-
import { generateApiKey, getMemoryStore, } from "../../../../server/mcpAuth.js";
|
|
11
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
12
|
-
// Test helpers
|
|
13
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
14
|
-
const results = [];
|
|
15
|
-
function record(name, pass, detail) {
|
|
16
|
-
results.push({ name, pass, detail });
|
|
17
|
-
const icon = pass ? "PASS" : "FAIL";
|
|
18
|
-
console.log(` [${icon}] ${name}${detail ? ` — ${detail}` : ""}`);
|
|
19
|
-
}
|
|
20
|
-
/** Wait for a WS message matching a predicate, with timeout. */
|
|
21
|
-
function waitForMessage(ws, predicate, timeoutMs = 5000) {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
const timer = setTimeout(() => {
|
|
24
|
-
ws.removeListener("message", handler);
|
|
25
|
-
reject(new Error(`Timed out waiting for message (${timeoutMs}ms)`));
|
|
26
|
-
}, timeoutMs);
|
|
27
|
-
function handler(data) {
|
|
28
|
-
try {
|
|
29
|
-
const parsed = JSON.parse(typeof data === "string" ? data : data.toString("utf-8"));
|
|
30
|
-
if (predicate(parsed)) {
|
|
31
|
-
clearTimeout(timer);
|
|
32
|
-
ws.removeListener("message", handler);
|
|
33
|
-
resolve(parsed);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
// ignore parse errors, keep waiting
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
ws.on("message", handler);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/** Connect a WS client to the bus with Bearer auth. Returns the ws + first message. */
|
|
44
|
-
function connectClient(port, apiKey) {
|
|
45
|
-
return new Promise((resolve, reject) => {
|
|
46
|
-
const ws = new WebSocket(`ws://127.0.0.1:${port}/bus`, {
|
|
47
|
-
headers: { Authorization: `Bearer ${apiKey}` },
|
|
48
|
-
});
|
|
49
|
-
let firstMessage = null;
|
|
50
|
-
let resolved = false;
|
|
51
|
-
ws.on("message", (data) => {
|
|
52
|
-
if (!firstMessage) {
|
|
53
|
-
try {
|
|
54
|
-
firstMessage = JSON.parse(typeof data === "string" ? data : data.toString("utf-8"));
|
|
55
|
-
}
|
|
56
|
-
catch { /* ignore */ }
|
|
57
|
-
if (!resolved) {
|
|
58
|
-
resolved = true;
|
|
59
|
-
resolve({ ws, firstMessage });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
ws.on("open", () => {
|
|
64
|
-
// Give a brief window for the welcome message to arrive
|
|
65
|
-
setTimeout(() => {
|
|
66
|
-
if (!resolved) {
|
|
67
|
-
resolved = true;
|
|
68
|
-
resolve({ ws, firstMessage });
|
|
69
|
-
}
|
|
70
|
-
}, 500);
|
|
71
|
-
});
|
|
72
|
-
ws.on("error", (err) => {
|
|
73
|
-
if (!resolved) {
|
|
74
|
-
resolved = true;
|
|
75
|
-
reject(err);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
81
|
-
// Setup: HTTP server + ProviderBus + seed an API key
|
|
82
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
83
|
-
async function run() {
|
|
84
|
-
console.log("\n=== ProviderBus Integration Tests ===\n");
|
|
85
|
-
// 1. Generate a valid API key and seed it into the in-memory store
|
|
86
|
-
const generated = generateApiKey();
|
|
87
|
-
const rawKey = generated.rawKey;
|
|
88
|
-
const store = getMemoryStore();
|
|
89
|
-
const keyRecord = {
|
|
90
|
-
keyHash: generated.keyHash,
|
|
91
|
-
keyHashPrefix: generated.keyHashPrefix,
|
|
92
|
-
userId: "test-user-1",
|
|
93
|
-
permissions: ["tools:read", "tools:execute"],
|
|
94
|
-
rateLimits: { perMinute: 100, perDay: 10_000 },
|
|
95
|
-
createdAt: Date.now(),
|
|
96
|
-
lastUsedAt: Date.now(),
|
|
97
|
-
revokedAt: null,
|
|
98
|
-
};
|
|
99
|
-
store.set(generated.keyHashPrefix, keyRecord);
|
|
100
|
-
// 2. Create HTTP server
|
|
101
|
-
const httpServer = createServer((_req, res) => {
|
|
102
|
-
res.writeHead(404);
|
|
103
|
-
res.end();
|
|
104
|
-
});
|
|
105
|
-
// 3. Create ProviderBus with short timeouts for testing
|
|
106
|
-
const busConfig = {
|
|
107
|
-
maxConnections: 10,
|
|
108
|
-
heartbeatIntervalMs: 60_000, // long — we don't need heartbeats during test
|
|
109
|
-
idleTimeoutMs: 60_000,
|
|
110
|
-
rateLimitPerMinute: 100,
|
|
111
|
-
};
|
|
112
|
-
const bus = new ProviderBus(busConfig);
|
|
113
|
-
bus.attachToServer(httpServer, "/bus");
|
|
114
|
-
// Wire upgrade handling
|
|
115
|
-
httpServer.on("upgrade", (req, socket, head) => {
|
|
116
|
-
const url = new URL(req.url ?? "/", `http://127.0.0.1`);
|
|
117
|
-
if (url.pathname === "/bus") {
|
|
118
|
-
bus.handleUpgrade(req, socket, head).catch((err) => {
|
|
119
|
-
console.error(` [ERROR] handleUpgrade error:`, err);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
socket.destroy();
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
// 4. Start listening
|
|
127
|
-
const port = await new Promise((resolve) => {
|
|
128
|
-
httpServer.listen(0, "127.0.0.1", () => {
|
|
129
|
-
const addr = httpServer.address();
|
|
130
|
-
if (typeof addr === "object" && addr !== null) {
|
|
131
|
-
resolve(addr.port);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
console.log(` Server listening on 127.0.0.1:${port}`);
|
|
136
|
-
console.log("");
|
|
137
|
-
try {
|
|
138
|
-
// ── Test 1: Connect with valid API key ──────────────────────────────
|
|
139
|
-
let ws;
|
|
140
|
-
try {
|
|
141
|
-
const conn = await connectClient(port, rawKey);
|
|
142
|
-
ws = conn.ws;
|
|
143
|
-
const welcome = conn.firstMessage;
|
|
144
|
-
record("Connect with valid API key", welcome !== null && welcome.type === "heartbeat" && typeof welcome.providerId === "string", welcome ? `providerId=${welcome.providerId}` : "no welcome message received");
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
record("Connect with valid API key", false, String(err));
|
|
148
|
-
// Can't continue without a connection
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
// ── Test 2: Connect with invalid API key ─────────────────────────────
|
|
152
|
-
try {
|
|
153
|
-
const badConn = await connectClient(port, "nb_key_00000000000000000000000000000000");
|
|
154
|
-
// If we get here the connection opened — wait briefly for a close
|
|
155
|
-
await new Promise((resolve, reject) => {
|
|
156
|
-
badConn.ws.on("close", () => resolve());
|
|
157
|
-
badConn.ws.on("error", () => resolve());
|
|
158
|
-
setTimeout(() => {
|
|
159
|
-
badConn.ws.close();
|
|
160
|
-
reject(new Error("Bad key connection was not rejected"));
|
|
161
|
-
}, 2000);
|
|
162
|
-
});
|
|
163
|
-
record("Reject invalid API key", true);
|
|
164
|
-
}
|
|
165
|
-
catch (err) {
|
|
166
|
-
// Connection refused or error is also acceptable (socket destroyed before upgrade completes)
|
|
167
|
-
const msg = String(err);
|
|
168
|
-
if (msg.includes("not rejected")) {
|
|
169
|
-
record("Reject invalid API key", false, msg);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
record("Reject invalid API key", true, "Connection rejected/errored as expected");
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// ── Test 3: Register as a provider ───────────────────────────────────
|
|
176
|
-
try {
|
|
177
|
-
ws.send(JSON.stringify({
|
|
178
|
-
type: "register",
|
|
179
|
-
registration: {
|
|
180
|
-
providerName: "test-agent",
|
|
181
|
-
providerType: "custom",
|
|
182
|
-
capabilities: ["chat", "tool_execution"],
|
|
183
|
-
version: "1.0.0",
|
|
184
|
-
},
|
|
185
|
-
}));
|
|
186
|
-
const registered = await waitForMessage(ws, (m) => m.type === "registered", 3000);
|
|
187
|
-
record("Register as provider", registered.type === "registered" && typeof registered.providerId === "string", `providerId=${registered.providerId}`);
|
|
188
|
-
}
|
|
189
|
-
catch (err) {
|
|
190
|
-
record("Register as provider", false, String(err));
|
|
191
|
-
}
|
|
192
|
-
// ── Test 4: Send an event ────────────────────────────────────────────
|
|
193
|
-
try {
|
|
194
|
-
const eventPromise = new Promise((resolve) => {
|
|
195
|
-
bus.once("event", (evt) => {
|
|
196
|
-
resolve(evt.type === "chat.message" && evt.payload?.text === "hello");
|
|
197
|
-
});
|
|
198
|
-
setTimeout(() => resolve(false), 3000);
|
|
199
|
-
});
|
|
200
|
-
ws.send(JSON.stringify({
|
|
201
|
-
type: "event",
|
|
202
|
-
event: {
|
|
203
|
-
type: "chat.message",
|
|
204
|
-
payload: { text: "hello" },
|
|
205
|
-
},
|
|
206
|
-
}));
|
|
207
|
-
const eventReceived = await eventPromise;
|
|
208
|
-
record("Send event and bus emits it", eventReceived);
|
|
209
|
-
// Verify event log
|
|
210
|
-
const log = bus.getEventLog(10);
|
|
211
|
-
const found = log.some((e) => e.type === "chat.message");
|
|
212
|
-
record("Event logged in event log", found, `log size=${log.length}`);
|
|
213
|
-
}
|
|
214
|
-
catch (err) {
|
|
215
|
-
record("Send event and bus emits it", false, String(err));
|
|
216
|
-
}
|
|
217
|
-
// ── Test 5: Health snapshot ──────────────────────────────────────────
|
|
218
|
-
try {
|
|
219
|
-
const health = bus.getHealthSnapshot();
|
|
220
|
-
record("Health snapshot returns data", health.status === "healthy" && health.providers.connected >= 1, `connected=${health.providers.connected}, registered=${health.providers.registered}`);
|
|
221
|
-
}
|
|
222
|
-
catch (err) {
|
|
223
|
-
record("Health snapshot returns data", false, String(err));
|
|
224
|
-
}
|
|
225
|
-
// ── Test 6: Connected providers list ─────────────────────────────────
|
|
226
|
-
try {
|
|
227
|
-
const providers = bus.getConnectedProviders();
|
|
228
|
-
const testProvider = providers.find((p) => p.providerName === "test-agent");
|
|
229
|
-
record("Connected providers list includes test-agent", !!testProvider && testProvider.providerType === "custom", testProvider
|
|
230
|
-
? `capabilities=${testProvider.capabilities.join(",")}`
|
|
231
|
-
: "not found");
|
|
232
|
-
}
|
|
233
|
-
catch (err) {
|
|
234
|
-
record("Connected providers list includes test-agent", false, String(err));
|
|
235
|
-
}
|
|
236
|
-
// ── Test 7: Disconnect and cleanup ──────────────────────────────────
|
|
237
|
-
try {
|
|
238
|
-
const disconnectPromise = new Promise((resolve) => {
|
|
239
|
-
bus.once("provider:disconnected", () => resolve(true));
|
|
240
|
-
setTimeout(() => resolve(false), 3000);
|
|
241
|
-
});
|
|
242
|
-
ws.close();
|
|
243
|
-
const disconnected = await disconnectPromise;
|
|
244
|
-
record("Disconnect fires provider:disconnected", disconnected);
|
|
245
|
-
// Verify cleanup
|
|
246
|
-
const afterProviders = bus.getConnectedProviders();
|
|
247
|
-
record("Provider removed from connected list after disconnect", afterProviders.length === 0, `remaining=${afterProviders.length}`);
|
|
248
|
-
}
|
|
249
|
-
catch (err) {
|
|
250
|
-
record("Disconnect and cleanup", false, String(err));
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
finally {
|
|
254
|
-
// Cleanup
|
|
255
|
-
bus.shutdown();
|
|
256
|
-
store.delete(generated.keyHashPrefix);
|
|
257
|
-
httpServer.close();
|
|
258
|
-
// Summary
|
|
259
|
-
console.log("\n=== Summary ===");
|
|
260
|
-
const passed = results.filter((r) => r.pass).length;
|
|
261
|
-
const total = results.length;
|
|
262
|
-
console.log(` ${passed}/${total} tests passed\n`);
|
|
263
|
-
if (passed < total) {
|
|
264
|
-
process.exit(1);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
run().catch((err) => {
|
|
269
|
-
console.error("Fatal error:", err);
|
|
270
|
-
process.exit(1);
|
|
271
|
-
});
|
|
272
|
-
//# sourceMappingURL=testProviderBus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testProviderBus.js","sourceRoot":"","sources":["../../src/benchmarks/testProviderBus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env npx tsx
|
|
2
|
-
/**
|
|
3
|
-
* Post-Compaction Hook for Claude Code
|
|
4
|
-
*
|
|
5
|
-
* Called after context compaction. Stdout is injected as a system message
|
|
6
|
-
* into the new compacted context, allowing session continuity.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* npx tsx packages/mcp-local/src/hooks/postCompaction.ts
|
|
10
|
-
*
|
|
11
|
-
* Wire in .claude/hooks.json:
|
|
12
|
-
* { "hooks": { "PostCompaction": [{ "type": "command", "command": "npx tsx ./packages/mcp-local/src/hooks/postCompaction.ts" }] } }
|
|
13
|
-
*/
|
|
14
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env npx tsx
|
|
2
|
-
// @ts-nocheck — standalone CLI hook; not part of the library build
|
|
3
|
-
/**
|
|
4
|
-
* Post-Compaction Hook for Claude Code
|
|
5
|
-
*
|
|
6
|
-
* Called after context compaction. Stdout is injected as a system message
|
|
7
|
-
* into the new compacted context, allowing session continuity.
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* npx tsx packages/mcp-local/src/hooks/postCompaction.ts
|
|
11
|
-
*
|
|
12
|
-
* Wire in .claude/hooks.json:
|
|
13
|
-
* { "hooks": { "PostCompaction": [{ "type": "command", "command": "npx tsx ./packages/mcp-local/src/hooks/postCompaction.ts" }] } }
|
|
14
|
-
*/
|
|
15
|
-
const FALLBACK_PROMPT = `NodeBench session context: Use summarize_session to recover prior state. Use get_proactive_alerts for pending items. Use founder_deep_context_gather for packet preparation.`;
|
|
16
|
-
async function main() {
|
|
17
|
-
try {
|
|
18
|
-
// Dynamic import to handle the case where founderTrackingTools doesn't export get_compaction_recovery
|
|
19
|
-
const mod = await import("../tools/founderTrackingTools.js");
|
|
20
|
-
// The tools array is the default export — find the compaction recovery tool
|
|
21
|
-
const tools = mod.founderTrackingTools ?? mod.default ?? [];
|
|
22
|
-
const recoveryTool = tools.find((t) => t.name === "get_compaction_recovery");
|
|
23
|
-
if (!recoveryTool) {
|
|
24
|
-
// Tool not registered yet — use fallback
|
|
25
|
-
console.log(FALLBACK_PROMPT);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const result = await recoveryTool.handler({});
|
|
29
|
-
const text = result?.content?.[0]?.text;
|
|
30
|
-
if (!text) {
|
|
31
|
-
console.log(FALLBACK_PROMPT);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Parse the JSON response to extract injectionPrompt
|
|
35
|
-
const parsed = JSON.parse(text);
|
|
36
|
-
if (parsed.injectionPrompt && typeof parsed.injectionPrompt === "string") {
|
|
37
|
-
console.log(parsed.injectionPrompt);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
// Tool returned data but no injectionPrompt field — print the raw text
|
|
41
|
-
console.log(text);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Any failure (module not found, DB not ready, parse error) — degrade gracefully
|
|
46
|
-
console.log(FALLBACK_PROMPT);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
main();
|
|
50
|
-
export {};
|
|
51
|
-
//# sourceMappingURL=postCompaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postCompaction.js","sourceRoot":"","sources":["../../src/hooks/postCompaction.ts"],"names":[],"mappings":";AACA,mEAAmE;AACnE;;;;;;;;;;;GAWG;AAEH,MAAM,eAAe,GAAG,8KAA8K,CAAC;AAEvM,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,sGAAsG;QACtG,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;QAE7D,4EAA4E;QAC5E,MAAM,KAAK,GACT,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAEhD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,yBAAyB,CAC5C,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,eAAe,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;QACjF,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|