nodebench-mcp 3.0.0 → 3.0.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.
Files changed (171) hide show
  1. package/NODEBENCH_AGENTS.md +74 -67
  2. package/README.md +36 -34
  3. package/dist/dashboard/operatingDashboardHtml.js +2 -1
  4. package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
  5. package/dist/dashboard/operatingServer.js +3 -2
  6. package/dist/dashboard/operatingServer.js.map +1 -1
  7. package/dist/db.js +51 -3
  8. package/dist/db.js.map +1 -1
  9. package/dist/index.js +19 -18
  10. package/dist/index.js.map +1 -1
  11. package/dist/packageInfo.d.ts +3 -0
  12. package/dist/packageInfo.js +32 -0
  13. package/dist/packageInfo.js.map +1 -0
  14. package/dist/sandboxApi.js +2 -1
  15. package/dist/sandboxApi.js.map +1 -1
  16. package/dist/tools/boilerplateTools.js +10 -9
  17. package/dist/tools/boilerplateTools.js.map +1 -1
  18. package/dist/tools/documentationTools.js +2 -1
  19. package/dist/tools/documentationTools.js.map +1 -1
  20. package/dist/tools/progressiveDiscoveryTools.js +2 -1
  21. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  22. package/dist/tools/toolRegistry.js +11 -0
  23. package/dist/tools/toolRegistry.js.map +1 -1
  24. package/dist/toolsetRegistry.js +74 -1
  25. package/dist/toolsetRegistry.js.map +1 -1
  26. package/package.json +7 -6
  27. package/scripts/install.sh +14 -14
  28. package/dist/__tests__/analytics.test.d.ts +0 -11
  29. package/dist/__tests__/analytics.test.js +0 -546
  30. package/dist/__tests__/analytics.test.js.map +0 -1
  31. package/dist/__tests__/architectComplex.test.d.ts +0 -1
  32. package/dist/__tests__/architectComplex.test.js +0 -373
  33. package/dist/__tests__/architectComplex.test.js.map +0 -1
  34. package/dist/__tests__/architectSmoke.test.d.ts +0 -1
  35. package/dist/__tests__/architectSmoke.test.js +0 -92
  36. package/dist/__tests__/architectSmoke.test.js.map +0 -1
  37. package/dist/__tests__/audit-registry.d.ts +0 -1
  38. package/dist/__tests__/audit-registry.js +0 -60
  39. package/dist/__tests__/audit-registry.js.map +0 -1
  40. package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
  41. package/dist/__tests__/batchAutopilot.test.js +0 -218
  42. package/dist/__tests__/batchAutopilot.test.js.map +0 -1
  43. package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
  44. package/dist/__tests__/cliSubcommands.test.js +0 -138
  45. package/dist/__tests__/cliSubcommands.test.js.map +0 -1
  46. package/dist/__tests__/comparativeBench.test.d.ts +0 -1
  47. package/dist/__tests__/comparativeBench.test.js +0 -722
  48. package/dist/__tests__/comparativeBench.test.js.map +0 -1
  49. package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
  50. package/dist/__tests__/critterCalibrationEval.js +0 -370
  51. package/dist/__tests__/critterCalibrationEval.js.map +0 -1
  52. package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
  53. package/dist/__tests__/dynamicLoading.test.js +0 -280
  54. package/dist/__tests__/dynamicLoading.test.js.map +0 -1
  55. package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
  56. package/dist/__tests__/embeddingProvider.test.js +0 -86
  57. package/dist/__tests__/embeddingProvider.test.js.map +0 -1
  58. package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
  59. package/dist/__tests__/evalDatasetBench.test.js +0 -738
  60. package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
  61. package/dist/__tests__/evalHarness.test.d.ts +0 -1
  62. package/dist/__tests__/evalHarness.test.js +0 -1107
  63. package/dist/__tests__/evalHarness.test.js.map +0 -1
  64. package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
  65. package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
  66. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
  67. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
  68. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
  69. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
  70. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
  71. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
  72. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
  73. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
  74. package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
  75. package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
  76. package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
  77. package/dist/__tests__/forecastingDogfood.test.js +0 -284
  78. package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
  79. package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
  80. package/dist/__tests__/forecastingScoring.test.js +0 -202
  81. package/dist/__tests__/forecastingScoring.test.js.map +0 -1
  82. package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
  83. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
  84. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
  85. package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
  86. package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
  87. package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
  88. package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
  89. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
  90. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
  91. package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
  92. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
  93. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
  94. package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
  95. package/dist/__tests__/helpers/answerMatch.js +0 -267
  96. package/dist/__tests__/helpers/answerMatch.js.map +0 -1
  97. package/dist/__tests__/helpers/textLlm.d.ts +0 -25
  98. package/dist/__tests__/helpers/textLlm.js +0 -214
  99. package/dist/__tests__/helpers/textLlm.js.map +0 -1
  100. package/dist/__tests__/localDashboard.test.d.ts +0 -1
  101. package/dist/__tests__/localDashboard.test.js +0 -226
  102. package/dist/__tests__/localDashboard.test.js.map +0 -1
  103. package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
  104. package/dist/__tests__/multiHopDogfood.test.js +0 -303
  105. package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
  106. package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
  107. package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
  108. package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
  109. package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
  110. package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
  111. package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
  112. package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
  113. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
  114. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
  115. package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
  116. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
  117. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
  118. package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
  119. package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
  120. package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
  121. package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
  122. package/dist/__tests__/openclawDogfood.test.js +0 -535
  123. package/dist/__tests__/openclawDogfood.test.js.map +0 -1
  124. package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
  125. package/dist/__tests__/openclawMessaging.test.js +0 -232
  126. package/dist/__tests__/openclawMessaging.test.js.map +0 -1
  127. package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
  128. package/dist/__tests__/presetRealWorldBench.test.js +0 -859
  129. package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
  130. package/dist/__tests__/tools.test.d.ts +0 -1
  131. package/dist/__tests__/tools.test.js +0 -3201
  132. package/dist/__tests__/tools.test.js.map +0 -1
  133. package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
  134. package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
  135. package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
  136. package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
  137. package/dist/__tests__/traceabilityDogfood.test.js +0 -241
  138. package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
  139. package/dist/__tests__/webmcpTools.test.d.ts +0 -7
  140. package/dist/__tests__/webmcpTools.test.js +0 -195
  141. package/dist/__tests__/webmcpTools.test.js.map +0 -1
  142. package/dist/benchmarks/testProviderBus.d.ts +0 -7
  143. package/dist/benchmarks/testProviderBus.js +0 -272
  144. package/dist/benchmarks/testProviderBus.js.map +0 -1
  145. package/dist/hooks/postCompaction.d.ts +0 -14
  146. package/dist/hooks/postCompaction.js +0 -51
  147. package/dist/hooks/postCompaction.js.map +0 -1
  148. package/dist/security/__tests__/security.test.d.ts +0 -8
  149. package/dist/security/__tests__/security.test.js +0 -295
  150. package/dist/security/__tests__/security.test.js.map +0 -1
  151. package/dist/sync/hyperloopEval.test.d.ts +0 -4
  152. package/dist/sync/hyperloopEval.test.js +0 -60
  153. package/dist/sync/hyperloopEval.test.js.map +0 -1
  154. package/dist/sync/store.test.d.ts +0 -4
  155. package/dist/sync/store.test.js +0 -43
  156. package/dist/sync/store.test.js.map +0 -1
  157. package/dist/tools/documentTools.d.ts +0 -5
  158. package/dist/tools/documentTools.js +0 -524
  159. package/dist/tools/documentTools.js.map +0 -1
  160. package/dist/tools/financialTools.d.ts +0 -10
  161. package/dist/tools/financialTools.js +0 -403
  162. package/dist/tools/financialTools.js.map +0 -1
  163. package/dist/tools/memoryTools.d.ts +0 -5
  164. package/dist/tools/memoryTools.js +0 -137
  165. package/dist/tools/memoryTools.js.map +0 -1
  166. package/dist/tools/planningTools.d.ts +0 -5
  167. package/dist/tools/planningTools.js +0 -147
  168. package/dist/tools/planningTools.js.map +0 -1
  169. package/dist/tools/searchTools.d.ts +0 -5
  170. package/dist/tools/searchTools.js +0 -145
  171. 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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Security module tests — scenario-based, covering all 4 layers.
3
- *
4
- * Personas:
5
- * - Mallory: Attacker trying to exfiltrate credentials via MCP tools
6
- * - Alice: Legitimate user running builds, tests, git commands
7
- */
8
- export {};