nodebench-mcp 2.25.0 → 2.27.0
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/NODEBENCH_AGENTS.md +5 -4
- package/README.md +145 -16
- package/dist/__tests__/architectComplex.test.js +3 -5
- package/dist/__tests__/architectComplex.test.js.map +1 -1
- package/dist/__tests__/batchAutopilot.test.d.ts +8 -0
- package/dist/__tests__/batchAutopilot.test.js +218 -0
- package/dist/__tests__/batchAutopilot.test.js.map +1 -0
- package/dist/__tests__/cliSubcommands.test.d.ts +1 -0
- package/dist/__tests__/cliSubcommands.test.js +138 -0
- package/dist/__tests__/cliSubcommands.test.js.map +1 -0
- package/dist/__tests__/evalHarness.test.js +1 -1
- package/dist/__tests__/forecastingDogfood.test.d.ts +9 -0
- package/dist/__tests__/forecastingDogfood.test.js +284 -0
- package/dist/__tests__/forecastingDogfood.test.js.map +1 -0
- package/dist/__tests__/forecastingScoring.test.d.ts +9 -0
- package/dist/__tests__/forecastingScoring.test.js +202 -0
- package/dist/__tests__/forecastingScoring.test.js.map +1 -0
- package/dist/__tests__/localDashboard.test.d.ts +1 -0
- package/dist/__tests__/localDashboard.test.js +226 -0
- package/dist/__tests__/localDashboard.test.js.map +1 -0
- package/dist/__tests__/multiHopDogfood.test.js +11 -11
- package/dist/__tests__/multiHopDogfood.test.js.map +1 -1
- package/dist/__tests__/openclawDogfood.test.d.ts +23 -0
- package/dist/__tests__/openclawDogfood.test.js +535 -0
- package/dist/__tests__/openclawDogfood.test.js.map +1 -0
- package/dist/__tests__/openclawMessaging.test.d.ts +14 -0
- package/dist/__tests__/openclawMessaging.test.js +232 -0
- package/dist/__tests__/openclawMessaging.test.js.map +1 -0
- package/dist/__tests__/presetRealWorldBench.test.js +0 -2
- package/dist/__tests__/presetRealWorldBench.test.js.map +1 -1
- package/dist/__tests__/tools.test.js +9 -157
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/__tests__/toolsetGatingEval.test.js +0 -2
- package/dist/__tests__/toolsetGatingEval.test.js.map +1 -1
- package/dist/__tests__/traceabilityDogfood.test.d.ts +12 -0
- package/dist/__tests__/traceabilityDogfood.test.js +241 -0
- package/dist/__tests__/traceabilityDogfood.test.js.map +1 -0
- package/dist/__tests__/webmcpTools.test.d.ts +7 -0
- package/dist/__tests__/webmcpTools.test.js +195 -0
- package/dist/__tests__/webmcpTools.test.js.map +1 -0
- package/dist/dashboard/briefHtml.d.ts +20 -0
- package/dist/dashboard/briefHtml.js +1000 -0
- package/dist/dashboard/briefHtml.js.map +1 -0
- package/dist/dashboard/briefServer.d.ts +18 -0
- package/dist/dashboard/briefServer.js +320 -0
- package/dist/dashboard/briefServer.js.map +1 -0
- package/dist/dashboard/html.js +1470 -1230
- package/dist/dashboard/html.js.map +1 -1
- package/dist/dashboard/server.js +166 -41
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +210 -14
- package/dist/index.js.map +1 -1
- package/dist/tools/critterTools.js +4 -0
- package/dist/tools/critterTools.js.map +1 -1
- package/dist/tools/forecastingTools.d.ts +11 -0
- package/dist/tools/forecastingTools.js +616 -0
- package/dist/tools/forecastingTools.js.map +1 -0
- package/dist/tools/localDashboardTools.d.ts +8 -0
- package/dist/tools/localDashboardTools.js +332 -0
- package/dist/tools/localDashboardTools.js.map +1 -0
- package/dist/tools/metaTools.js +170 -1
- package/dist/tools/metaTools.js.map +1 -1
- package/dist/tools/openclawTools.d.ts +11 -0
- package/dist/tools/openclawTools.js +1017 -0
- package/dist/tools/openclawTools.js.map +1 -0
- package/dist/tools/overstoryTools.d.ts +14 -0
- package/dist/tools/overstoryTools.js +426 -0
- package/dist/tools/overstoryTools.js.map +1 -0
- package/dist/tools/progressiveDiscoveryTools.js +50 -115
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/selfEvalTools.js +8 -1
- package/dist/tools/selfEvalTools.js.map +1 -1
- package/dist/tools/sessionMemoryTools.js +14 -2
- package/dist/tools/sessionMemoryTools.js.map +1 -1
- package/dist/tools/toolRegistry.d.ts +1 -15
- package/dist/tools/toolRegistry.js +243 -228
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/tools/visualQaTools.d.ts +2 -0
- package/dist/tools/visualQaTools.js +1088 -0
- package/dist/tools/visualQaTools.js.map +1 -0
- package/dist/tools/webmcpTools.d.ts +16 -0
- package/dist/tools/webmcpTools.js +703 -0
- package/dist/tools/webmcpTools.js.map +1 -0
- package/dist/toolsetRegistry.js +6 -2
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/dashboard/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA87CD,CAAC;AACT,CAAC"}
|
package/dist/dashboard/server.js
CHANGED
|
@@ -20,20 +20,24 @@ export function startDashboardServer(db, preferredPort = 6274) {
|
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
_server = createServer((req, res) => handleRequest(db, req, res));
|
|
23
|
+
let attempts = 0;
|
|
24
|
+
const maxAttempts = 10;
|
|
25
|
+
function tryListen(port) {
|
|
26
|
+
_server.listen(port, "127.0.0.1", () => {
|
|
27
|
+
_port = port;
|
|
28
|
+
resolve(_port);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
23
31
|
_server.on("error", (err) => {
|
|
24
|
-
if (err.code === "EADDRINUSE") {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
_port = preferredPort + 1;
|
|
32
|
+
if (err.code === "EADDRINUSE" && attempts < maxAttempts) {
|
|
33
|
+
attempts++;
|
|
34
|
+
tryListen(preferredPort + attempts);
|
|
28
35
|
}
|
|
29
36
|
else {
|
|
30
37
|
reject(err);
|
|
31
38
|
}
|
|
32
39
|
});
|
|
33
|
-
|
|
34
|
-
_port = preferredPort;
|
|
35
|
-
resolve(_port);
|
|
36
|
-
});
|
|
40
|
+
tryListen(preferredPort);
|
|
37
41
|
});
|
|
38
42
|
}
|
|
39
43
|
/** Stop the dashboard server */
|
|
@@ -80,6 +84,15 @@ function handleRequest(db, req, res) {
|
|
|
80
84
|
else if (path === "/api/latest") {
|
|
81
85
|
apiLatestSession(db, res);
|
|
82
86
|
}
|
|
87
|
+
else if (path === "/api/agents/status") {
|
|
88
|
+
apiAgentStatus(db, res);
|
|
89
|
+
}
|
|
90
|
+
else if (path === "/api/agents/activity") {
|
|
91
|
+
apiAgentActivity(db, res);
|
|
92
|
+
}
|
|
93
|
+
else if (path === "/api/agents/mailbox") {
|
|
94
|
+
apiAgentMailbox(db, res);
|
|
95
|
+
}
|
|
83
96
|
else {
|
|
84
97
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
85
98
|
res.end(JSON.stringify({ error: "Not found" }));
|
|
@@ -97,24 +110,24 @@ function serveHtml(res) {
|
|
|
97
110
|
}
|
|
98
111
|
// ── API: List sessions ──────────────────────────────────────────────
|
|
99
112
|
function apiSessions(db, res) {
|
|
100
|
-
const rows = db.prepare(`
|
|
101
|
-
SELECT s.id, s.app_url, s.app_name, s.status, s.created_at, s.completed_at,
|
|
102
|
-
(SELECT COUNT(*) FROM ui_dive_components WHERE session_id = s.id) as component_count,
|
|
103
|
-
(SELECT COUNT(*) FROM ui_dive_bugs WHERE session_id = s.id) as bug_count,
|
|
104
|
-
(SELECT COUNT(*) FROM ui_dive_bugs WHERE session_id = s.id AND status = 'resolved') as bugs_resolved,
|
|
105
|
-
(SELECT COUNT(*) FROM ui_dive_interactions WHERE session_id = s.id) as interaction_count,
|
|
106
|
-
(SELECT COUNT(*) FROM ui_dive_fix_verifications WHERE session_id = s.id) as fix_count,
|
|
107
|
-
(SELECT COUNT(*) FROM ui_dive_code_reviews WHERE session_id = s.id) as review_count
|
|
108
|
-
FROM ui_dive_sessions s
|
|
109
|
-
ORDER BY s.created_at DESC
|
|
110
|
-
LIMIT 50
|
|
113
|
+
const rows = db.prepare(`
|
|
114
|
+
SELECT s.id, s.app_url, s.app_name, s.status, s.created_at, s.completed_at,
|
|
115
|
+
(SELECT COUNT(*) FROM ui_dive_components WHERE session_id = s.id) as component_count,
|
|
116
|
+
(SELECT COUNT(*) FROM ui_dive_bugs WHERE session_id = s.id) as bug_count,
|
|
117
|
+
(SELECT COUNT(*) FROM ui_dive_bugs WHERE session_id = s.id AND status = 'resolved') as bugs_resolved,
|
|
118
|
+
(SELECT COUNT(*) FROM ui_dive_interactions WHERE session_id = s.id) as interaction_count,
|
|
119
|
+
(SELECT COUNT(*) FROM ui_dive_fix_verifications WHERE session_id = s.id) as fix_count,
|
|
120
|
+
(SELECT COUNT(*) FROM ui_dive_code_reviews WHERE session_id = s.id) as review_count
|
|
121
|
+
FROM ui_dive_sessions s
|
|
122
|
+
ORDER BY s.created_at DESC
|
|
123
|
+
LIMIT 50
|
|
111
124
|
`).all();
|
|
112
125
|
json(res, rows);
|
|
113
126
|
}
|
|
114
127
|
// ── API: Latest session redirect ────────────────────────────────────
|
|
115
128
|
function apiLatestSession(db, res) {
|
|
116
|
-
const row = db.prepare(`
|
|
117
|
-
SELECT id FROM ui_dive_sessions ORDER BY created_at DESC LIMIT 1
|
|
129
|
+
const row = db.prepare(`
|
|
130
|
+
SELECT id FROM ui_dive_sessions ORDER BY created_at DESC LIMIT 1
|
|
118
131
|
`).get();
|
|
119
132
|
if (!row) {
|
|
120
133
|
json(res, { error: "No sessions found" }, 404);
|
|
@@ -185,23 +198,23 @@ function apiComponents(db, sid, res) {
|
|
|
185
198
|
json(res, db.prepare("SELECT * FROM ui_dive_components WHERE session_id = ? ORDER BY created_at").all(sid));
|
|
186
199
|
}
|
|
187
200
|
function apiBugs(db, sid, res) {
|
|
188
|
-
json(res, db.prepare(`
|
|
189
|
-
SELECT b.*, c.name as component_name
|
|
190
|
-
FROM ui_dive_bugs b
|
|
191
|
-
LEFT JOIN ui_dive_components c ON b.component_id = c.id
|
|
192
|
-
WHERE b.session_id = ?
|
|
193
|
-
ORDER BY
|
|
194
|
-
CASE b.severity WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 ELSE 3 END,
|
|
195
|
-
b.created_at
|
|
201
|
+
json(res, db.prepare(`
|
|
202
|
+
SELECT b.*, c.name as component_name
|
|
203
|
+
FROM ui_dive_bugs b
|
|
204
|
+
LEFT JOIN ui_dive_components c ON b.component_id = c.id
|
|
205
|
+
WHERE b.session_id = ?
|
|
206
|
+
ORDER BY
|
|
207
|
+
CASE b.severity WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 ELSE 3 END,
|
|
208
|
+
b.created_at
|
|
196
209
|
`).all(sid));
|
|
197
210
|
}
|
|
198
211
|
function apiInteractions(db, sid, res) {
|
|
199
|
-
json(res, db.prepare(`
|
|
200
|
-
SELECT i.*, c.name as component_name
|
|
201
|
-
FROM ui_dive_interactions i
|
|
202
|
-
LEFT JOIN ui_dive_components c ON i.component_id = c.id
|
|
203
|
-
WHERE i.session_id = ?
|
|
204
|
-
ORDER BY i.sequence_num
|
|
212
|
+
json(res, db.prepare(`
|
|
213
|
+
SELECT i.*, c.name as component_name
|
|
214
|
+
FROM ui_dive_interactions i
|
|
215
|
+
LEFT JOIN ui_dive_components c ON i.component_id = c.id
|
|
216
|
+
WHERE i.session_id = ?
|
|
217
|
+
ORDER BY i.sequence_num
|
|
205
218
|
`).all(sid));
|
|
206
219
|
}
|
|
207
220
|
function apiScreenshots(db, sid, res) {
|
|
@@ -250,12 +263,12 @@ function apiCodeLocations(db, sid, res) {
|
|
|
250
263
|
json(res, db.prepare("SELECT * FROM ui_dive_code_locations WHERE session_id = ? ORDER BY created_at").all(sid));
|
|
251
264
|
}
|
|
252
265
|
function apiFixes(db, sid, res) {
|
|
253
|
-
json(res, db.prepare(`
|
|
254
|
-
SELECT f.*, b.title as bug_title, b.severity as bug_severity, b.status as bug_status
|
|
255
|
-
FROM ui_dive_fix_verifications f
|
|
256
|
-
LEFT JOIN ui_dive_bugs b ON f.bug_id = b.id
|
|
257
|
-
WHERE f.session_id = ?
|
|
258
|
-
ORDER BY f.created_at
|
|
266
|
+
json(res, db.prepare(`
|
|
267
|
+
SELECT f.*, b.title as bug_title, b.severity as bug_severity, b.status as bug_status
|
|
268
|
+
FROM ui_dive_fix_verifications f
|
|
269
|
+
LEFT JOIN ui_dive_bugs b ON f.bug_id = b.id
|
|
270
|
+
WHERE f.session_id = ?
|
|
271
|
+
ORDER BY f.created_at
|
|
259
272
|
`).all(sid));
|
|
260
273
|
}
|
|
261
274
|
function apiChangelogs(db, sid, res) {
|
|
@@ -270,6 +283,118 @@ function apiReviews(db, sid, res) {
|
|
|
270
283
|
function apiDesignIssues(db, sid, res) {
|
|
271
284
|
json(res, db.prepare("SELECT * FROM ui_dive_design_issues WHERE session_id = ? ORDER BY created_at").all(sid));
|
|
272
285
|
}
|
|
286
|
+
// ── API: Agent Monitor ──────────────────────────────────────────────
|
|
287
|
+
function apiAgentStatus(db, res) {
|
|
288
|
+
// Only agents active in the last 2 hours (has recent calls OR a claimed task)
|
|
289
|
+
const roles = db.prepare(`
|
|
290
|
+
SELECT r.session_id, r.role, r.focus_area, r.created_at
|
|
291
|
+
FROM agent_roles r
|
|
292
|
+
WHERE EXISTS (
|
|
293
|
+
SELECT 1 FROM tool_call_log t
|
|
294
|
+
WHERE t.session_id = r.session_id AND t.created_at >= datetime('now', '-2 hours')
|
|
295
|
+
) OR EXISTS (
|
|
296
|
+
SELECT 1 FROM agent_tasks a
|
|
297
|
+
WHERE a.session_id = r.session_id AND a.status = 'claimed'
|
|
298
|
+
AND a.claimed_at >= datetime('now', '-4 hours')
|
|
299
|
+
)
|
|
300
|
+
ORDER BY r.created_at DESC
|
|
301
|
+
LIMIT 20
|
|
302
|
+
`).all();
|
|
303
|
+
const agents = roles.map(r => {
|
|
304
|
+
const task = db.prepare(`
|
|
305
|
+
SELECT task_key, description, claimed_at
|
|
306
|
+
FROM agent_tasks
|
|
307
|
+
WHERE session_id = ? AND status = 'claimed'
|
|
308
|
+
ORDER BY claimed_at DESC LIMIT 1
|
|
309
|
+
`).get(r.session_id);
|
|
310
|
+
const callCount = db.prepare(`
|
|
311
|
+
SELECT COUNT(*) as c FROM tool_call_log
|
|
312
|
+
WHERE session_id = ? AND created_at >= datetime('now', '-30 minutes')
|
|
313
|
+
`).get(r.session_id);
|
|
314
|
+
const lastCall = db.prepare(`
|
|
315
|
+
SELECT created_at FROM tool_call_log
|
|
316
|
+
WHERE session_id = ? ORDER BY created_at DESC LIMIT 1
|
|
317
|
+
`).get(r.session_id);
|
|
318
|
+
const budget = db.prepare(`
|
|
319
|
+
SELECT tokens_used, tokens_limit FROM context_budget_log
|
|
320
|
+
WHERE session_id = ? ORDER BY created_at DESC LIMIT 1
|
|
321
|
+
`).get(r.session_id);
|
|
322
|
+
const unread = db.prepare(`
|
|
323
|
+
SELECT COUNT(*) as c FROM agent_mailbox
|
|
324
|
+
WHERE (recipient_id = ? OR recipient_role = ?) AND read = 0
|
|
325
|
+
`).get(r.session_id, r.role);
|
|
326
|
+
return {
|
|
327
|
+
sessionId: r.session_id,
|
|
328
|
+
role: r.role,
|
|
329
|
+
focusArea: r.focus_area,
|
|
330
|
+
assignedAt: r.created_at,
|
|
331
|
+
currentTask: task ? { key: task.task_key, description: task.description, claimedAt: task.claimed_at } : null,
|
|
332
|
+
toolCallCount: callCount.c,
|
|
333
|
+
lastCallAt: lastCall?.created_at ?? null,
|
|
334
|
+
tokenBudget: budget
|
|
335
|
+
? { used: budget.tokens_used, limit: budget.tokens_limit, percent: Math.round((budget.tokens_used / budget.tokens_limit) * 100) }
|
|
336
|
+
: { used: 0, limit: 200000, percent: 0 },
|
|
337
|
+
unreadMessages: unread.c,
|
|
338
|
+
};
|
|
339
|
+
});
|
|
340
|
+
// Summary stats
|
|
341
|
+
const activeSessions = agents.map(a => a.sessionId);
|
|
342
|
+
const totalCalls = activeSessions.length > 0
|
|
343
|
+
? db.prepare(`SELECT COUNT(*) as c FROM tool_call_log WHERE session_id IN (${activeSessions.map(() => "?").join(",")})`)
|
|
344
|
+
.get(...activeSessions).c
|
|
345
|
+
: 0;
|
|
346
|
+
const claimedCount = agents.filter(a => a.currentTask).length;
|
|
347
|
+
const completedTasks = db.prepare(`
|
|
348
|
+
SELECT task_key, session_id, description, progress_note, released_at
|
|
349
|
+
FROM agent_tasks
|
|
350
|
+
WHERE status = 'released' AND released_at >= datetime('now', '-1 hour')
|
|
351
|
+
ORDER BY released_at DESC LIMIT 20
|
|
352
|
+
`).all();
|
|
353
|
+
json(res, {
|
|
354
|
+
agents,
|
|
355
|
+
completedTasks,
|
|
356
|
+
summary: {
|
|
357
|
+
activeAgents: agents.length,
|
|
358
|
+
activeTasks: claimedCount,
|
|
359
|
+
completedTasks: completedTasks.length,
|
|
360
|
+
totalCalls,
|
|
361
|
+
},
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
function apiAgentActivity(db, res) {
|
|
365
|
+
// Only show calls from agents active in last 2 hours
|
|
366
|
+
const calls = db.prepare(`
|
|
367
|
+
SELECT t.tool_name, t.session_id, t.result_status, t.duration_ms, t.created_at
|
|
368
|
+
FROM tool_call_log t
|
|
369
|
+
WHERE EXISTS (
|
|
370
|
+
SELECT 1 FROM agent_roles r
|
|
371
|
+
WHERE r.session_id = t.session_id AND (
|
|
372
|
+
EXISTS (SELECT 1 FROM tool_call_log t2 WHERE t2.session_id = r.session_id AND t2.created_at >= datetime('now', '-2 hours'))
|
|
373
|
+
OR EXISTS (SELECT 1 FROM agent_tasks a WHERE a.session_id = r.session_id AND a.status = 'claimed')
|
|
374
|
+
)
|
|
375
|
+
)
|
|
376
|
+
ORDER BY t.created_at DESC LIMIT 30
|
|
377
|
+
`).all();
|
|
378
|
+
json(res, { calls, totalCalls: calls.length });
|
|
379
|
+
}
|
|
380
|
+
function apiAgentMailbox(db, res) {
|
|
381
|
+
// Deduplicate by subject+sender — keep only the latest of each
|
|
382
|
+
const messages = db.prepare(`
|
|
383
|
+
SELECT id, sender_id, recipient_id, recipient_role, category, priority, subject, body, created_at
|
|
384
|
+
FROM agent_mailbox
|
|
385
|
+
WHERE read = 0 AND id IN (
|
|
386
|
+
SELECT id FROM (
|
|
387
|
+
SELECT id, ROW_NUMBER() OVER (PARTITION BY sender_id, subject ORDER BY created_at DESC) as rn
|
|
388
|
+
FROM agent_mailbox WHERE read = 0
|
|
389
|
+
) WHERE rn = 1
|
|
390
|
+
)
|
|
391
|
+
ORDER BY
|
|
392
|
+
CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'normal' THEN 2 ELSE 3 END,
|
|
393
|
+
created_at DESC
|
|
394
|
+
LIMIT 10
|
|
395
|
+
`).all();
|
|
396
|
+
json(res, { messages });
|
|
397
|
+
}
|
|
273
398
|
// ── Helpers ─────────────────────────────────────────────────────────
|
|
274
399
|
function json(res, data, status = 200) {
|
|
275
400
|
res.writeHead(status, { "Content-Type": "application/json" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,28 +43,26 @@ const exportStats = cliArgs.includes("--export-stats");
|
|
|
43
43
|
const resetStats = cliArgs.includes("--reset-stats");
|
|
44
44
|
const listPresetsFlag = cliArgs.includes("--list-presets");
|
|
45
45
|
export { TOOLSET_MAP };
|
|
46
|
-
|
|
47
|
-
// skill_update available via load_toolset("skill_update") for rule file freshness tracking
|
|
48
|
-
const DEFAULT_TOOLSETS = ["verification", "eval", "quality_gate", "learning", "flywheel", "recon", "security", "boilerplate"];
|
|
46
|
+
const DEFAULT_TOOLSETS = ["verification", "eval", "quality_gate", "learning", "flywheel", "recon", "security", "boilerplate", "skill_update"];
|
|
49
47
|
const PRESETS = {
|
|
50
48
|
default: DEFAULT_TOOLSETS,
|
|
51
49
|
// Themed presets — bridge between default (50 tools) and full (175 tools)
|
|
52
|
-
web_dev: [...DEFAULT_TOOLSETS, "ui_capture", "vision", "web", "seo", "git_workflow", "architect", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge", "
|
|
50
|
+
web_dev: [...DEFAULT_TOOLSETS, "ui_capture", "vision", "web", "seo", "git_workflow", "architect", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge", "qa_orchestration", "visual_qa"],
|
|
53
51
|
research: [...DEFAULT_TOOLSETS, "web", "llm", "rss", "email", "docs"],
|
|
54
52
|
data: [...DEFAULT_TOOLSETS, "local_file", "llm", "web"],
|
|
55
|
-
devops: [...DEFAULT_TOOLSETS, "git_workflow", "session_memory", "benchmark", "pattern"
|
|
56
|
-
mobile: [...DEFAULT_TOOLSETS, "ui_capture", "vision", "flicker_detection", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge"],
|
|
53
|
+
devops: [...DEFAULT_TOOLSETS, "git_workflow", "session_memory", "benchmark", "pattern"],
|
|
54
|
+
mobile: [...DEFAULT_TOOLSETS, "ui_capture", "vision", "flicker_detection", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge", "visual_qa"],
|
|
57
55
|
academic: [...DEFAULT_TOOLSETS, "research_writing", "llm", "web", "local_file"],
|
|
58
|
-
multi_agent: [...DEFAULT_TOOLSETS, "parallel", "self_eval", "session_memory", "pattern", "toon"],
|
|
59
|
-
content: [...DEFAULT_TOOLSETS, "llm", "critter", "email", "rss", "platform", "architect"],
|
|
56
|
+
multi_agent: [...DEFAULT_TOOLSETS, "parallel", "self_eval", "session_memory", "pattern", "toon", "qa_orchestration"],
|
|
57
|
+
content: [...DEFAULT_TOOLSETS, "llm", "critter", "email", "rss", "platform", "architect", "local_dashboard"],
|
|
60
58
|
full: Object.keys(TOOLSET_MAP),
|
|
61
59
|
};
|
|
62
60
|
const PRESET_DESCRIPTIONS = {
|
|
63
61
|
default: "Core AI Flywheel — verification, eval, quality gates, learning, recon",
|
|
64
|
-
web_dev: "Web projects — adds visual QA, SEO audit, git workflow,
|
|
62
|
+
web_dev: "Web projects — adds visual QA, SEO audit, git workflow, code architecture",
|
|
65
63
|
research: "Research workflows — adds web search, LLM calls, RSS feeds, email, docs",
|
|
66
64
|
data: "Data analysis — adds CSV/XLSX/PDF/JSON parsing, LLM extraction, web fetch",
|
|
67
|
-
devops: "CI/CD & ops — adds git compliance, session memory, benchmarks, pattern mining
|
|
65
|
+
devops: "CI/CD & ops — adds git compliance, session memory, benchmarks, pattern mining",
|
|
68
66
|
mobile: "Mobile apps — adds screenshot capture, vision analysis, flicker detection",
|
|
69
67
|
academic: "Academic papers — adds polish, review, translate, logic check, data analysis",
|
|
70
68
|
multi_agent: "Multi-agent teams — adds task locking, messaging, roles, oracle testing",
|
|
@@ -102,12 +100,12 @@ function parseToolsets() {
|
|
|
102
100
|
}),
|
|
103
101
|
"",
|
|
104
102
|
"Examples:",
|
|
105
|
-
" npx nodebench-mcp # Default (
|
|
103
|
+
" npx nodebench-mcp # Default (50 tools) - core AI Flywheel",
|
|
106
104
|
" npx nodebench-mcp --preset web_dev # Web development (+ vision, SEO, git)",
|
|
107
105
|
" npx nodebench-mcp --preset research # Research workflows (+ web, LLM, RSS, email)",
|
|
108
106
|
" npx nodebench-mcp --preset data # Data analysis (+ local file parsing, LLM)",
|
|
109
107
|
" npx nodebench-mcp --preset academic # Academic writing (+ paper tools, LLM)",
|
|
110
|
-
" npx nodebench-mcp --preset full # All
|
|
108
|
+
" npx nodebench-mcp --preset full # All 175 tools",
|
|
111
109
|
" npx nodebench-mcp --smart-preset # Get AI-powered preset recommendation",
|
|
112
110
|
" npx nodebench-mcp --stats # Show usage statistics",
|
|
113
111
|
" npx nodebench-mcp --toolsets verification,eval,recon",
|
|
@@ -685,7 +683,7 @@ if (useEmbedding) {
|
|
|
685
683
|
// Tool nodes: individual tools with full metadata text
|
|
686
684
|
const toolCorpus = ALL_REGISTRY_ENTRIES.map((entry) => ({
|
|
687
685
|
name: entry.name,
|
|
688
|
-
text: `${entry.name} ${entry.tags.join(" ")} ${entry.category} ${entry.phase} ${
|
|
686
|
+
text: `${entry.name} ${entry.tags.join(" ")} ${entry.category} ${entry.phase} ${descMap.get(entry.name) ?? ""}`,
|
|
689
687
|
nodeType: "tool",
|
|
690
688
|
}));
|
|
691
689
|
// Domain nodes: aggregate category descriptions for upward traversal
|
|
@@ -1293,6 +1291,204 @@ artifacts (findings, risks, gaps, tests, evals, gates, learnings) that compound
|
|
|
1293
1291
|
},
|
|
1294
1292
|
],
|
|
1295
1293
|
},
|
|
1294
|
+
{
|
|
1295
|
+
name: "orchestrating-swarms",
|
|
1296
|
+
description: "Master multi-agent orchestration using Claude Code's TeammateTool and Task system. Use when coordinating multiple agents, running parallel code reviews, creating pipeline workflows with dependencies, building self-organizing task queues, or any task benefiting from divide-and-conquer patterns.",
|
|
1297
|
+
messages: [
|
|
1298
|
+
{
|
|
1299
|
+
role: "user",
|
|
1300
|
+
content: {
|
|
1301
|
+
type: "text",
|
|
1302
|
+
text: `# Claude Code Swarm Orchestration
|
|
1303
|
+
|
|
1304
|
+
Master multi-agent orchestration using Claude Code's TeammateTool and Task system.
|
|
1305
|
+
|
|
1306
|
+
---
|
|
1307
|
+
|
|
1308
|
+
## Primitives
|
|
1309
|
+
|
|
1310
|
+
| Primitive | What It Is |
|
|
1311
|
+
|-----------|-----------|
|
|
1312
|
+
| **Agent** | A Claude instance that can use tools. You are an agent. Subagents are agents you spawn. |
|
|
1313
|
+
| **Team** | A named group of agents working together. One leader, multiple teammates. Config: \`~/.claude/teams/{name}/config.json\` |
|
|
1314
|
+
| **Teammate** | An agent that joined a team. Has a name, color, inbox. Spawned via Task with \`team_name\` + \`name\`. |
|
|
1315
|
+
| **Leader** | The agent that created the team. Receives messages, approves plans/shutdowns. |
|
|
1316
|
+
| **Task** | A work item with subject, description, status, owner, and dependencies. |
|
|
1317
|
+
| **Inbox** | JSON file where an agent receives messages. \`~/.claude/teams/{name}/inboxes/{agent}.json\` |
|
|
1318
|
+
| **Backend** | How teammates run. Auto-detected: \`in-process\` (invisible), \`tmux\` (visible panes), \`iterm2\` (split panes). |
|
|
1319
|
+
|
|
1320
|
+
---
|
|
1321
|
+
|
|
1322
|
+
## Two Ways to Spawn Agents
|
|
1323
|
+
|
|
1324
|
+
### Method 1: Task Tool (Subagents) — short-lived, returns result directly
|
|
1325
|
+
\`\`\`javascript
|
|
1326
|
+
Task({ subagent_type: "Explore", description: "Find auth files", prompt: "...", model: "haiku" })
|
|
1327
|
+
\`\`\`
|
|
1328
|
+
|
|
1329
|
+
### Method 2: Task + team_name + name (Teammates) — persistent, communicates via inbox
|
|
1330
|
+
\`\`\`javascript
|
|
1331
|
+
Teammate({ operation: "spawnTeam", team_name: "my-project" })
|
|
1332
|
+
Task({ team_name: "my-project", name: "security-reviewer", subagent_type: "general-purpose", prompt: "...", run_in_background: true })
|
|
1333
|
+
\`\`\`
|
|
1334
|
+
|
|
1335
|
+
| Aspect | Task (subagent) | Task + team_name + name (teammate) |
|
|
1336
|
+
|--------|-----------------|-----------------------------------|
|
|
1337
|
+
| Lifespan | Until task complete | Until shutdown requested |
|
|
1338
|
+
| Communication | Return value | Inbox messages |
|
|
1339
|
+
| Task access | None | Shared task list |
|
|
1340
|
+
| Team membership | No | Yes |
|
|
1341
|
+
|
|
1342
|
+
---
|
|
1343
|
+
|
|
1344
|
+
## Built-in Agent Types
|
|
1345
|
+
|
|
1346
|
+
- **Bash** — command execution, git ops (tools: Bash only)
|
|
1347
|
+
- **Explore** — read-only codebase search, file finding (use \`model: "haiku"\`)
|
|
1348
|
+
- **Plan** — architecture + implementation plans (read-only tools)
|
|
1349
|
+
- **general-purpose** — all tools, multi-step research + action
|
|
1350
|
+
- **claude-code-guide** — questions about Claude Code, Agent SDK, Anthropic API
|
|
1351
|
+
- **statusline-setup** — configure Claude Code status line
|
|
1352
|
+
|
|
1353
|
+
---
|
|
1354
|
+
|
|
1355
|
+
## TeammateTool Operations
|
|
1356
|
+
|
|
1357
|
+
| Operation | Who | What |
|
|
1358
|
+
|-----------|-----|------|
|
|
1359
|
+
| \`spawnTeam\` | Leader | Create team + task directory |
|
|
1360
|
+
| \`discoverTeams\` | Anyone | List joinable teams |
|
|
1361
|
+
| \`requestJoin\` | Teammate | Request to join existing team |
|
|
1362
|
+
| \`approveJoin\` | Leader | Accept join request |
|
|
1363
|
+
| \`write\` | Anyone | Message ONE teammate |
|
|
1364
|
+
| \`broadcast\` | Anyone | Message ALL teammates (N messages — expensive, avoid) |
|
|
1365
|
+
| \`requestShutdown\` | Leader | Ask teammate to exit |
|
|
1366
|
+
| \`approveShutdown\` | Teammate | **MUST call** — sends confirmation, exits process |
|
|
1367
|
+
| \`rejectShutdown\` | Teammate | Decline shutdown with reason |
|
|
1368
|
+
| \`approvePlan\` | Leader | Approve plan_approval_request |
|
|
1369
|
+
| \`rejectPlan\` | Leader | Reject plan with feedback |
|
|
1370
|
+
| \`cleanup\` | Leader | Remove team + task files (all teammates must be shut down first) |
|
|
1371
|
+
|
|
1372
|
+
---
|
|
1373
|
+
|
|
1374
|
+
## Task System
|
|
1375
|
+
|
|
1376
|
+
\`\`\`javascript
|
|
1377
|
+
TaskCreate({ subject: "Step 1", description: "...", activeForm: "Working on step 1..." })
|
|
1378
|
+
TaskList() // See all tasks + statuses
|
|
1379
|
+
TaskGet({ taskId: "2" }) // Get full task details
|
|
1380
|
+
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] }) // Dependency — auto-unblocks when #1 completes
|
|
1381
|
+
TaskUpdate({ taskId: "2", owner: "worker-1", status: "in_progress" })
|
|
1382
|
+
TaskUpdate({ taskId: "2", status: "completed" })
|
|
1383
|
+
\`\`\`
|
|
1384
|
+
|
|
1385
|
+
---
|
|
1386
|
+
|
|
1387
|
+
## Orchestration Patterns
|
|
1388
|
+
|
|
1389
|
+
### Pattern 1: Parallel Specialists
|
|
1390
|
+
\`\`\`javascript
|
|
1391
|
+
Teammate({ operation: "spawnTeam", team_name: "pr-review" })
|
|
1392
|
+
// Spawn reviewers in ONE message (parallel execution)
|
|
1393
|
+
Task({ team_name: "pr-review", name: "security", subagent_type: "general-purpose", prompt: "Review for security issues. Send findings to team-lead via Teammate write.", run_in_background: true })
|
|
1394
|
+
Task({ team_name: "pr-review", name: "perf", subagent_type: "general-purpose", prompt: "Review for perf issues. Send findings to team-lead via Teammate write.", run_in_background: true })
|
|
1395
|
+
// Collect from: cat ~/.claude/teams/pr-review/inboxes/team-lead.json
|
|
1396
|
+
\`\`\`
|
|
1397
|
+
|
|
1398
|
+
### Pattern 2: Pipeline (Sequential Dependencies)
|
|
1399
|
+
\`\`\`javascript
|
|
1400
|
+
TaskCreate({ subject: "Research" }) // #1
|
|
1401
|
+
TaskCreate({ subject: "Plan" }) // #2
|
|
1402
|
+
TaskCreate({ subject: "Implement" }) // #3
|
|
1403
|
+
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] }) // #2 waits for #1
|
|
1404
|
+
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] }) // #3 waits for #2
|
|
1405
|
+
// Spawn workers that poll TaskList and claim unblocked tasks
|
|
1406
|
+
\`\`\`
|
|
1407
|
+
|
|
1408
|
+
### Pattern 3: Self-Organizing Swarm
|
|
1409
|
+
\`\`\`javascript
|
|
1410
|
+
// 1. Create N independent tasks (no dependencies)
|
|
1411
|
+
// 2. Spawn M workers with this prompt loop:
|
|
1412
|
+
// a. TaskList → find pending+unclaimed task
|
|
1413
|
+
// b. TaskUpdate(claim) → TaskUpdate(in_progress) → do work
|
|
1414
|
+
// c. TaskUpdate(completed) → Teammate write findings to team-lead → repeat
|
|
1415
|
+
// d. If no tasks: notify team-lead idle, retry 3x, then exit
|
|
1416
|
+
\`\`\`
|
|
1417
|
+
|
|
1418
|
+
### Pattern 4: Research → Implement (synchronous)
|
|
1419
|
+
\`\`\`javascript
|
|
1420
|
+
const research = await Task({ subagent_type: "general-purpose", prompt: "Research best practices for X..." })
|
|
1421
|
+
Task({ subagent_type: "general-purpose", prompt: \`Implement based on research: \${research.content}\` })
|
|
1422
|
+
\`\`\`
|
|
1423
|
+
|
|
1424
|
+
---
|
|
1425
|
+
|
|
1426
|
+
## Shutdown Sequence (always follow this order)
|
|
1427
|
+
|
|
1428
|
+
\`\`\`javascript
|
|
1429
|
+
// 1. Request shutdown for all teammates
|
|
1430
|
+
Teammate({ operation: "requestShutdown", target_agent_id: "worker-1", reason: "All tasks complete" })
|
|
1431
|
+
// 2. Wait for {"type": "shutdown_approved"} in inbox
|
|
1432
|
+
// 3. Only then cleanup
|
|
1433
|
+
Teammate({ operation: "cleanup" })
|
|
1434
|
+
\`\`\`
|
|
1435
|
+
|
|
1436
|
+
---
|
|
1437
|
+
|
|
1438
|
+
## Spawn Backends
|
|
1439
|
+
|
|
1440
|
+
| Backend | When auto-selected | Visibility |
|
|
1441
|
+
|---------|-------------------|------------|
|
|
1442
|
+
| \`in-process\` | Not in tmux/iTerm2 (default) | Hidden — no real-time output |
|
|
1443
|
+
| \`tmux\` | Inside tmux session (\$TMUX set) | Visible — switch panes |
|
|
1444
|
+
| \`iterm2\` | In iTerm2 + \`it2\` CLI installed | Visible — split panes |
|
|
1445
|
+
|
|
1446
|
+
Force: \`export CLAUDE_CODE_SPAWN_BACKEND=tmux\`
|
|
1447
|
+
|
|
1448
|
+
---
|
|
1449
|
+
|
|
1450
|
+
## Best Practices
|
|
1451
|
+
|
|
1452
|
+
1. **Meaningful names**: \`security-reviewer\` not \`worker-1\`
|
|
1453
|
+
2. **Explicit prompts**: Numbered steps + "send findings to team-lead via Teammate write"
|
|
1454
|
+
3. **Use dependencies**: \`addBlockedBy\` — never poll manually
|
|
1455
|
+
4. **Prefer write over broadcast**: broadcast = N messages for N teammates
|
|
1456
|
+
5. **Always cleanup**: Don't leave orphaned teams
|
|
1457
|
+
6. **Worker failures**: 5-min heartbeat timeout; crashed worker tasks can be reclaimed by others
|
|
1458
|
+
|
|
1459
|
+
---
|
|
1460
|
+
|
|
1461
|
+
## Quick Reference
|
|
1462
|
+
|
|
1463
|
+
\`\`\`javascript
|
|
1464
|
+
// Subagent (returns result)
|
|
1465
|
+
Task({ subagent_type: "Explore", description: "Find files", prompt: "..." })
|
|
1466
|
+
|
|
1467
|
+
// Teammate (persistent, background)
|
|
1468
|
+
Teammate({ operation: "spawnTeam", team_name: "my-team" })
|
|
1469
|
+
Task({ team_name: "my-team", name: "worker", subagent_type: "general-purpose", prompt: "...", run_in_background: true })
|
|
1470
|
+
|
|
1471
|
+
// Message teammate
|
|
1472
|
+
Teammate({ operation: "write", target_agent_id: "worker-1", value: "..." })
|
|
1473
|
+
|
|
1474
|
+
// Pipeline
|
|
1475
|
+
TaskCreate({ subject: "Step 1" }) // → #1
|
|
1476
|
+
TaskCreate({ subject: "Step 2" }) // → #2
|
|
1477
|
+
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] })
|
|
1478
|
+
|
|
1479
|
+
// Shutdown
|
|
1480
|
+
Teammate({ operation: "requestShutdown", target_agent_id: "worker-1" })
|
|
1481
|
+
// wait for {"type": "shutdown_approved"} in inbox...
|
|
1482
|
+
Teammate({ operation: "cleanup" })
|
|
1483
|
+
\`\`\`
|
|
1484
|
+
|
|
1485
|
+
---
|
|
1486
|
+
|
|
1487
|
+
*Source: kieranklaassen/orchestrating-swarms gist — Claude Code v2.1.19*`,
|
|
1488
|
+
},
|
|
1489
|
+
},
|
|
1490
|
+
],
|
|
1491
|
+
},
|
|
1296
1492
|
];
|
|
1297
1493
|
// Server instructions — tells Claude Code Tool Search (and other clients) when to search
|
|
1298
1494
|
// for NodeBench tools. This is the key integration point for lazy loading compatibility.
|
|
@@ -1311,7 +1507,7 @@ Use NodeBench tools when you need to:
|
|
|
1311
1507
|
- Audit SEO, analyze Figma flows, detect Android flicker
|
|
1312
1508
|
- Call LLMs (GPT, Claude, Gemini) for analysis and extraction
|
|
1313
1509
|
Start with discover_tools("<your task>") to find the right tool.`;
|
|
1314
|
-
const server = new Server({ name: "nodebench-mcp-methodology", version: "2.
|
|
1510
|
+
const server = new Server({ name: "nodebench-mcp-methodology", version: "2.27.0" }, {
|
|
1315
1511
|
capabilities: { tools: { listChanged: true }, prompts: {} },
|
|
1316
1512
|
instructions: SERVER_INSTRUCTIONS,
|
|
1317
1513
|
});
|