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.
Files changed (86) hide show
  1. package/NODEBENCH_AGENTS.md +5 -4
  2. package/README.md +145 -16
  3. package/dist/__tests__/architectComplex.test.js +3 -5
  4. package/dist/__tests__/architectComplex.test.js.map +1 -1
  5. package/dist/__tests__/batchAutopilot.test.d.ts +8 -0
  6. package/dist/__tests__/batchAutopilot.test.js +218 -0
  7. package/dist/__tests__/batchAutopilot.test.js.map +1 -0
  8. package/dist/__tests__/cliSubcommands.test.d.ts +1 -0
  9. package/dist/__tests__/cliSubcommands.test.js +138 -0
  10. package/dist/__tests__/cliSubcommands.test.js.map +1 -0
  11. package/dist/__tests__/evalHarness.test.js +1 -1
  12. package/dist/__tests__/forecastingDogfood.test.d.ts +9 -0
  13. package/dist/__tests__/forecastingDogfood.test.js +284 -0
  14. package/dist/__tests__/forecastingDogfood.test.js.map +1 -0
  15. package/dist/__tests__/forecastingScoring.test.d.ts +9 -0
  16. package/dist/__tests__/forecastingScoring.test.js +202 -0
  17. package/dist/__tests__/forecastingScoring.test.js.map +1 -0
  18. package/dist/__tests__/localDashboard.test.d.ts +1 -0
  19. package/dist/__tests__/localDashboard.test.js +226 -0
  20. package/dist/__tests__/localDashboard.test.js.map +1 -0
  21. package/dist/__tests__/multiHopDogfood.test.js +11 -11
  22. package/dist/__tests__/multiHopDogfood.test.js.map +1 -1
  23. package/dist/__tests__/openclawDogfood.test.d.ts +23 -0
  24. package/dist/__tests__/openclawDogfood.test.js +535 -0
  25. package/dist/__tests__/openclawDogfood.test.js.map +1 -0
  26. package/dist/__tests__/openclawMessaging.test.d.ts +14 -0
  27. package/dist/__tests__/openclawMessaging.test.js +232 -0
  28. package/dist/__tests__/openclawMessaging.test.js.map +1 -0
  29. package/dist/__tests__/presetRealWorldBench.test.js +0 -2
  30. package/dist/__tests__/presetRealWorldBench.test.js.map +1 -1
  31. package/dist/__tests__/tools.test.js +9 -157
  32. package/dist/__tests__/tools.test.js.map +1 -1
  33. package/dist/__tests__/toolsetGatingEval.test.js +0 -2
  34. package/dist/__tests__/toolsetGatingEval.test.js.map +1 -1
  35. package/dist/__tests__/traceabilityDogfood.test.d.ts +12 -0
  36. package/dist/__tests__/traceabilityDogfood.test.js +241 -0
  37. package/dist/__tests__/traceabilityDogfood.test.js.map +1 -0
  38. package/dist/__tests__/webmcpTools.test.d.ts +7 -0
  39. package/dist/__tests__/webmcpTools.test.js +195 -0
  40. package/dist/__tests__/webmcpTools.test.js.map +1 -0
  41. package/dist/dashboard/briefHtml.d.ts +20 -0
  42. package/dist/dashboard/briefHtml.js +1000 -0
  43. package/dist/dashboard/briefHtml.js.map +1 -0
  44. package/dist/dashboard/briefServer.d.ts +18 -0
  45. package/dist/dashboard/briefServer.js +320 -0
  46. package/dist/dashboard/briefServer.js.map +1 -0
  47. package/dist/dashboard/html.js +1470 -1230
  48. package/dist/dashboard/html.js.map +1 -1
  49. package/dist/dashboard/server.js +166 -41
  50. package/dist/dashboard/server.js.map +1 -1
  51. package/dist/index.js +210 -14
  52. package/dist/index.js.map +1 -1
  53. package/dist/tools/critterTools.js +4 -0
  54. package/dist/tools/critterTools.js.map +1 -1
  55. package/dist/tools/forecastingTools.d.ts +11 -0
  56. package/dist/tools/forecastingTools.js +616 -0
  57. package/dist/tools/forecastingTools.js.map +1 -0
  58. package/dist/tools/localDashboardTools.d.ts +8 -0
  59. package/dist/tools/localDashboardTools.js +332 -0
  60. package/dist/tools/localDashboardTools.js.map +1 -0
  61. package/dist/tools/metaTools.js +170 -1
  62. package/dist/tools/metaTools.js.map +1 -1
  63. package/dist/tools/openclawTools.d.ts +11 -0
  64. package/dist/tools/openclawTools.js +1017 -0
  65. package/dist/tools/openclawTools.js.map +1 -0
  66. package/dist/tools/overstoryTools.d.ts +14 -0
  67. package/dist/tools/overstoryTools.js +426 -0
  68. package/dist/tools/overstoryTools.js.map +1 -0
  69. package/dist/tools/progressiveDiscoveryTools.js +50 -115
  70. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  71. package/dist/tools/selfEvalTools.js +8 -1
  72. package/dist/tools/selfEvalTools.js.map +1 -1
  73. package/dist/tools/sessionMemoryTools.js +14 -2
  74. package/dist/tools/sessionMemoryTools.js.map +1 -1
  75. package/dist/tools/toolRegistry.d.ts +1 -15
  76. package/dist/tools/toolRegistry.js +243 -228
  77. package/dist/tools/toolRegistry.js.map +1 -1
  78. package/dist/tools/visualQaTools.d.ts +2 -0
  79. package/dist/tools/visualQaTools.js +1088 -0
  80. package/dist/tools/visualQaTools.js.map +1 -0
  81. package/dist/tools/webmcpTools.d.ts +16 -0
  82. package/dist/tools/webmcpTools.js +703 -0
  83. package/dist/tools/webmcpTools.js.map +1 -0
  84. package/dist/toolsetRegistry.js +6 -2
  85. package/dist/toolsetRegistry.js.map +1 -1
  86. package/package.json +2 -2
@@ -32,7 +32,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
32
32
  "research_writing", "flicker_detection", "figma_flow",
33
33
  "boilerplate", "benchmark", "session_memory", "gaia_solvers",
34
34
  "toon", "pattern", "git_workflow", "seo", "voice_bridge",
35
- "critter", "email", "rss", "architect", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge", "skill_update", "pr_report", "progressive_discovery", "meta",
35
+ "critter", "email", "rss", "architect", "ui_ux_dive", "ui_ux_dive_v2", "mcp_bridge", "skill_update", "qa_orchestration", "visual_qa", "local_dashboard", "progressive_discovery", "meta", "openclaw", "webmcp",
36
36
  ],
37
37
  description: "Filter by tool category (optional)",
38
38
  },
@@ -43,7 +43,15 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
43
43
  },
44
44
  limit: {
45
45
  type: "number",
46
- description: "Max results to return (default: 10)",
46
+ description: "Max results to return per page (default: 10)",
47
+ },
48
+ offset: {
49
+ type: "number",
50
+ description: "Number of results to skip for pagination (default: 0). Use with limit to page through results. Response includes totalMatches and hasMore.",
51
+ },
52
+ expand: {
53
+ type: "number",
54
+ description: "Expand top-N results by including their relatedTools neighbors at 50% parent score (default: 0 = no expansion). Use expand=3 to discover adjacent tools.",
47
55
  },
48
56
  includeChains: {
49
57
  type: "boolean",
@@ -64,7 +72,8 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
64
72
  "file_processing", "web_research", "code_quality", "security_audit",
65
73
  "academic_writing", "data_analysis", "llm_interaction", "visual_qa",
66
74
  "devops_ci", "team_coordination", "communication", "seo_audit",
67
- "design_review", "voice_ui", "project_setup",
75
+ "design_review", "voice_ui", "project_setup", "deep_interaction",
76
+ "daily_ops",
68
77
  ],
69
78
  description: "High-level intent hint. Narrows the search to the most relevant toolsets BEFORE running hybrid search. Use this when you know the domain but not the exact tool. Reduces noise and improves accuracy.",
70
79
  },
@@ -72,14 +81,6 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
72
81
  type: "boolean",
73
82
  description: "Return compact results with just name, category, and a one-line hint (saves ~60% tokens in the response). Default: false.",
74
83
  },
75
- offset: {
76
- type: "number",
77
- description: "Number of results to skip for cursor-based pagination (default: 0). Use with limit to page through results. Response includes hasMore flag and totalMatches count.",
78
- },
79
- expand: {
80
- type: "number",
81
- description: "Expand the top N results by their relatedTools neighbors, then merge and re-rank. Discovers conceptually adjacent tools you might not find with keywords alone. Typical value: 3-5. Default: 0 (no expansion).",
82
- },
83
84
  },
84
85
  required: ["query"],
85
86
  },
@@ -87,7 +88,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
87
88
  const query = args.query ?? "";
88
89
  const limit = args.limit ?? 10;
89
90
  const offset = args.offset ?? 0;
90
- const expandN = args.expand ?? 0;
91
+ const expand = args.expand ?? 0;
91
92
  const includeChains = args.includeChains !== false;
92
93
  const mode = args.mode ?? "hybrid";
93
94
  const explain = args.explain === true;
@@ -101,7 +102,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
101
102
  academic_writing: ["research_writing", "llm"],
102
103
  data_analysis: ["local_file", "llm", "benchmark"],
103
104
  llm_interaction: ["llm"],
104
- visual_qa: ["ui_capture", "vision", "flicker_detection", "ui_ux_dive", "ui_ux_dive_v2"],
105
+ visual_qa: ["ui_capture", "vision", "flicker_detection", "ui_ux_dive", "ui_ux_dive_v2", "visual_qa"],
105
106
  devops_ci: ["git_workflow", "boilerplate", "bootstrap", "platform"],
106
107
  team_coordination: ["parallel_agents", "session_memory"],
107
108
  communication: ["email", "rss", "critter"],
@@ -109,6 +110,8 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
109
110
  design_review: ["figma_flow", "vision", "ui_capture"],
110
111
  voice_ui: ["voice_bridge"],
111
112
  project_setup: ["bootstrap", "boilerplate", "self_eval"],
113
+ deep_interaction: ["visual_qa", "ui_ux_dive", "ui_ux_dive_v2", "ui_capture", "vision", "qa_orchestration"],
114
+ daily_ops: ["local_dashboard", "session_memory"],
112
115
  };
113
116
  const intentCategories = args.intent ? INTENT_CATEGORIES[args.intent] : undefined;
114
117
  // Pre-compute query embedding (async) before passing to sync hybridSearch
@@ -118,14 +121,15 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
118
121
  if (vec)
119
122
  embeddingQueryVec = vec;
120
123
  }
121
- // Multi-modal search with scoring
124
+ // Multi-modal search with scoring — fetch ALL matches for stable pagination
122
125
  // If intent is set, run search once per intent category and merge results
123
- let results;
126
+ const maxSearchLimit = 500;
127
+ let allResults;
124
128
  if (intentCategories && !args.category) {
125
129
  const perCategoryResults = intentCategories.map(cat => hybridSearch(query, allRegisteredTools, {
126
130
  category: cat,
127
131
  phase: args.phase,
128
- limit: Math.ceil(limit / intentCategories.length) + 2,
132
+ limit: maxSearchLimit,
129
133
  mode,
130
134
  explain,
131
135
  embeddingQueryVec,
@@ -143,62 +147,23 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
143
147
  }
144
148
  }
145
149
  merged.sort((a, b) => b.score - a.score);
146
- results = merged;
150
+ allResults = merged;
147
151
  }
148
152
  else {
149
- // Fetch ALL scoring results so totalMatches is stable across pages.
150
- // hybridSearch only returns score > 0, and with ~215 tools max,
151
- // fetching 500 is essentially free (scoring happens for all tools anyway).
152
- results = hybridSearch(query, allRegisteredTools, {
153
+ allResults = hybridSearch(query, allRegisteredTools, {
153
154
  category: args.category,
154
155
  phase: args.phase,
155
- limit: 500,
156
+ limit: maxSearchLimit,
156
157
  mode,
157
158
  explain,
158
159
  embeddingQueryVec,
159
160
  searchFullRegistry: !!options?.getLoadedToolNames,
160
161
  });
161
162
  }
162
- // ── Expansion: broaden results via relatedTools neighbors ──
163
- if (expandN > 0 && results.length > 0) {
164
- const topN = results.slice(0, expandN);
165
- const seenNames = new Set(results.map((r) => r.name));
166
- const expansionResults = [];
167
- for (const topResult of topN) {
168
- const entry = TOOL_REGISTRY.get(topResult.name);
169
- if (!entry?.quickRef.relatedTools)
170
- continue;
171
- for (const relatedName of entry.quickRef.relatedTools) {
172
- if (seenNames.has(relatedName))
173
- continue;
174
- seenNames.add(relatedName);
175
- const relEntry = TOOL_REGISTRY.get(relatedName);
176
- if (!relEntry)
177
- continue;
178
- const tool = allRegisteredTools.find((t) => t.name === relatedName);
179
- expansionResults.push({
180
- name: relatedName,
181
- description: tool?.description ?? relEntry.tags.join(", "),
182
- category: relEntry.category,
183
- score: Math.round(topResult.score * 0.5),
184
- matchReasons: explain ? [`expanded_from:${topResult.name}`] : [],
185
- quickRef: relEntry.quickRef,
186
- phase: relEntry.phase,
187
- tags: relEntry.tags,
188
- depth: 1,
189
- expandedFrom: [topResult.name],
190
- });
191
- }
192
- }
193
- if (expansionResults.length > 0) {
194
- results = [...results, ...expansionResults];
195
- results.sort((a, b) => b.score - a.score);
196
- }
197
- }
198
- // ── Pagination ──
199
- const totalMatches = results.length;
200
- const paginatedResults = results.slice(offset, offset + limit);
201
- const hasMore = totalMatches > offset + limit;
163
+ // Pagination: slice to requested page
164
+ const totalMatches = allResults.length;
165
+ const results = allResults.slice(offset, offset + limit);
166
+ const hasMore = offset + results.length < totalMatches;
202
167
  // Find matching workflow chains
203
168
  let matchingChains = [];
204
169
  if (includeChains) {
@@ -218,19 +183,19 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
218
183
  }
219
184
  // Category summary: how many tools per category matched
220
185
  const categoryCounts = {};
221
- for (const r of paginatedResults) {
186
+ for (const r of results) {
222
187
  categoryCounts[r.category] = (categoryCounts[r.category] ?? 0) + 1;
223
188
  }
224
189
  return {
225
190
  query,
226
191
  searchMode: mode,
227
- resultCount: paginatedResults.length,
192
+ resultCount: results.length,
228
193
  totalMatches,
229
- offset,
230
194
  hasMore,
195
+ offset,
231
196
  totalToolsSearched: options?.getLoadedToolNames ? ALL_REGISTRY_ENTRIES.length : allRegisteredTools.length,
232
197
  availableModes: SEARCH_MODES,
233
- results: paginatedResults.map((r) => compact
198
+ results: results.map((r) => compact
234
199
  ? { name: r.name, category: r.category, hint: r.quickRef.nextAction }
235
200
  : {
236
201
  name: r.name,
@@ -239,8 +204,6 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
239
204
  phase: r.phase,
240
205
  relevanceScore: r.score,
241
206
  ...(explain ? { matchReasons: r.matchReasons } : {}),
242
- ...(r.depth != null ? { depth: r.depth } : {}),
243
- ...(r.expandedFrom ? { expandedFrom: r.expandedFrom } : {}),
244
207
  quickRef: r.quickRef,
245
208
  }),
246
209
  categorySummary: categoryCounts,
@@ -252,7 +215,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
252
215
  const loaded = options.getLoadedToolNames();
253
216
  const t2ts = options.getToolToToolset();
254
217
  const unloadedToolsets = new Map();
255
- for (const r of paginatedResults) {
218
+ for (const r of results) {
256
219
  if (!loaded.has(r.name)) {
257
220
  const ts = t2ts.get(r.name);
258
221
  if (ts) {
@@ -272,8 +235,8 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
272
235
  })),
273
236
  };
274
237
  })()),
275
- _progressiveHint: paginatedResults.length > 0
276
- ? `Top match: ${paginatedResults[0].name}. ${paginatedResults[0].quickRef.nextAction}`
238
+ _progressiveHint: results.length > 0
239
+ ? `Top match: ${results[0].name}. ${results[0].quickRef.nextAction}`
277
240
  : "No matches found. Try broader keywords or call getMethodology('overview') for all available methodologies.",
278
241
  };
279
242
  },
@@ -281,7 +244,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
281
244
  // ── get_tool_quick_ref ─────────────────────────────────────────────
282
245
  {
283
246
  name: "get_tool_quick_ref",
284
- description: "Get the quick reference for a specific tool: what to do next, related tools, methodology, and tips. Supports multi-hop traversal — set depth=2 to follow nextTools/relatedTools transitively and discover tools 2 hops away. Call this after using any tool to understand the recommended next step in the workflow.",
247
+ description: "Get the quick reference for a specific tool: what to do next, related tools, methodology, and tips. Call this after using any tool to understand the recommended next step in the workflow.",
285
248
  inputSchema: {
286
249
  type: "object",
287
250
  properties: {
@@ -291,11 +254,7 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
291
254
  },
292
255
  includeRelatedDetails: {
293
256
  type: "boolean",
294
- description: "Also return quick refs for the recommended next tools (default: false). Automatically true when depth > 1.",
295
- },
296
- depth: {
297
- type: "number",
298
- description: "How many hops to follow through nextTools/relatedTools. depth=1 (default) returns the tool's direct refs. depth=2 follows one more level. Max: 3.",
257
+ description: "Also return quick refs for the recommended next tools (default: false)",
299
258
  },
300
259
  },
301
260
  required: ["toolName"],
@@ -314,52 +273,27 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
314
273
  tip: "Use discover_tools to search for tools by description.",
315
274
  };
316
275
  }
317
- const maxDepth = Math.min(args.depth ?? 1, 3); // hard cap at 3
318
- const includeRelated = args.includeRelatedDetails === true || maxDepth > 1;
319
276
  const result = {
320
277
  tool: entry.name,
321
278
  category: entry.category,
322
279
  phase: entry.phase,
323
280
  tags: entry.tags,
324
281
  quickRef: entry.quickRef,
325
- depth: maxDepth,
326
282
  };
327
- if (includeRelated) {
328
- // BFS traversal up to maxDepth
329
- const visited = new Set([entry.name]);
330
- const graph = {};
331
- let frontier = [entry.name];
332
- for (let d = 1; d <= maxDepth; d++) {
333
- const nextFrontier = [];
334
- for (const toolName of frontier) {
335
- const toolEntry = TOOL_REGISTRY.get(toolName);
336
- if (!toolEntry)
337
- continue;
338
- const neighbors = [
339
- ...toolEntry.quickRef.nextTools,
340
- ...(toolEntry.quickRef.relatedTools ?? []),
341
- ];
342
- for (const neighbor of neighbors) {
343
- if (visited.has(neighbor))
344
- continue;
345
- visited.add(neighbor);
346
- const neighborEntry = TOOL_REGISTRY.get(neighbor);
347
- if (!neighborEntry)
348
- continue;
349
- graph[neighbor] = {
350
- category: neighborEntry.category,
351
- phase: neighborEntry.phase,
352
- quickRef: neighborEntry.quickRef,
353
- hopDistance: d,
354
- reachedVia: toolName,
355
- };
356
- nextFrontier.push(neighbor);
357
- }
283
+ // Optionally include quick refs for next tools
284
+ if (args.includeRelatedDetails) {
285
+ const relatedRefs = {};
286
+ for (const nextTool of entry.quickRef.nextTools) {
287
+ const nextEntry = TOOL_REGISTRY.get(nextTool);
288
+ if (nextEntry) {
289
+ relatedRefs[nextTool] = {
290
+ category: nextEntry.category,
291
+ phase: nextEntry.phase,
292
+ quickRef: nextEntry.quickRef,
293
+ };
358
294
  }
359
- frontier = nextFrontier;
360
295
  }
361
- result.relatedToolDetails = graph;
362
- result.totalDiscovered = Object.keys(graph).length;
296
+ result.relatedToolDetails = relatedRefs;
363
297
  }
364
298
  return result;
365
299
  },
@@ -381,7 +315,8 @@ export function createProgressiveDiscoveryTools(allRegisteredTools, options) {
381
315
  "figma_flow_analysis", "agent_eval", "contract_compliance",
382
316
  "ablation_eval", "session_recovery", "attention_refresh",
383
317
  "task_bank_setup", "pr_review", "seo_audit", "voice_pipeline",
384
- "intentionality_check", "research_digest", "email_assistant", "pr_creation", "list",
318
+ "intentionality_check", "research_digest", "email_assistant",
319
+ "webmcp_discovery", "batch_autopilot", "daily_review", "deep_interaction", "gemini_qa", "list",
385
320
  ],
386
321
  description: 'Which workflow chain to retrieve. Use "list" to see all available chains with descriptions.',
387
322
  },
@@ -1 +1 @@
1
- {"version":3,"file":"progressiveDiscoveryTools.js","sourceRoot":"","sources":["../../src/tools/progressiveDiscoveryTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progressiveDiscoveryTools.js","sourceRoot":"","sources":["../../src/tools/progressiveDiscoveryTools.ts"],"names":[],"mappings":"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"}
@@ -988,6 +988,13 @@ export const selfEvalTools = [
988
988
  else {
989
989
  shipViolations.push("No learnings recorded (record_learning)");
990
990
  }
991
+ // Completion traceability: save_session_note with citedFrom links deliverables to asks
992
+ if (toolSet.has("save_session_note")) {
993
+ shipScore += 2;
994
+ }
995
+ else {
996
+ shipViolations.push("No completion traceability note (save_session_note with citedFrom)");
997
+ }
991
998
  // ── Dimension 6: Tool Efficiency (10 pts) ──
992
999
  let efficiencyScore = 0;
993
1000
  const efficiencyViolations = [];
@@ -1071,7 +1078,7 @@ export const selfEvalTools = [
1071
1078
  self_setup: { score: selfSetupScore, max: 10, description: "Resolve missing capabilities autonomously" },
1072
1079
  pre_implementation: { score: preImplScore, max: 15, description: "Recon + risk assessment before changes" },
1073
1080
  parallel_coordination: { score: parallelScore, max: 10, description: "Task locks, roles, context budget" },
1074
- ship_gates: { score: shipScore, max: 30, description: "Tests + eval + quality gate + flywheel + learning" },
1081
+ ship_gates: { score: shipScore, max: 32, description: "Tests + eval + quality gate + flywheel + learning + traceability" },
1075
1082
  tool_efficiency: { score: efficiencyScore, max: 10, description: "Error rate, redundancy, tool variety" },
1076
1083
  },
1077
1084
  violations: allViolations,