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,147 +0,0 @@
1
- /**
2
- * Planning tools — create and manage task plans via local SQLite.
3
- */
4
- import { getDb, genId } from "../db.js";
5
- export const planningTools = [
6
- {
7
- name: "createPlan",
8
- description: "Create an explicit task plan with steps marked as pending/in_progress/completed.",
9
- inputSchema: {
10
- type: "object",
11
- properties: {
12
- goal: {
13
- type: "string",
14
- description: "The high-level goal to accomplish",
15
- },
16
- steps: {
17
- type: "array",
18
- description: "List of steps to accomplish the goal",
19
- items: {
20
- type: "object",
21
- properties: {
22
- step: { type: "string", description: "Description of the step" },
23
- status: {
24
- type: "string",
25
- enum: ["pending", "in_progress", "completed"],
26
- description: "Current status of the step",
27
- },
28
- assignedAgent: {
29
- type: "string",
30
- description: "Which agent is responsible (optional)",
31
- },
32
- notes: {
33
- type: "string",
34
- description: "Additional notes (optional)",
35
- },
36
- },
37
- required: ["step", "status"],
38
- },
39
- },
40
- },
41
- required: ["goal", "steps"],
42
- },
43
- handler: async (args) => {
44
- const { goal, steps } = args;
45
- if (!goal || !steps || steps.length === 0) {
46
- throw new Error("Goal and steps are required");
47
- }
48
- const db = getDb();
49
- const planId = genId("plan");
50
- const now = new Date().toISOString();
51
- db.prepare("INSERT INTO plans (id, goal, steps, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(planId, goal, JSON.stringify(steps), now, now);
52
- const markdown = `# Task Plan: ${goal}\n\nCreated: ${now}\n\n## Steps\n\n` +
53
- steps
54
- .map((s, i) => {
55
- const cb = s.status === "completed"
56
- ? "x"
57
- : s.status === "in_progress"
58
- ? "/"
59
- : " ";
60
- const agent = s.assignedAgent ? ` (${s.assignedAgent})` : "";
61
- const notes = s.notes ? `\n - ${s.notes}` : "";
62
- return `${i + 1}. [${cb}] ${s.step}${agent}${notes}`;
63
- })
64
- .join("\n");
65
- return {
66
- success: true,
67
- planId,
68
- message: `Created task plan with ${steps.length} steps`,
69
- markdown,
70
- };
71
- },
72
- },
73
- {
74
- name: "updatePlanStep",
75
- description: "Update the status or notes of a specific step in a task plan.",
76
- inputSchema: {
77
- type: "object",
78
- properties: {
79
- planId: { type: "string", description: "ID of the plan to update" },
80
- stepIndex: {
81
- type: "number",
82
- description: "Index of the step to update (0-based)",
83
- },
84
- status: {
85
- type: "string",
86
- enum: ["pending", "in_progress", "completed"],
87
- description: "New status for the step (optional)",
88
- },
89
- notes: {
90
- type: "string",
91
- description: "New notes for the step (optional)",
92
- },
93
- },
94
- required: ["planId", "stepIndex"],
95
- },
96
- handler: async (args) => {
97
- const { planId, stepIndex, status, notes } = args;
98
- const db = getDb();
99
- const row = db.prepare("SELECT * FROM plans WHERE id = ?").get(planId);
100
- if (!row)
101
- throw new Error(`Plan not found: ${planId}`);
102
- const steps = JSON.parse(row.steps);
103
- if (stepIndex < 0 || stepIndex >= steps.length) {
104
- throw new Error(`Invalid step index: ${stepIndex}`);
105
- }
106
- if (status)
107
- steps[stepIndex].status = status;
108
- if (notes !== undefined)
109
- steps[stepIndex].notes = notes;
110
- const now = new Date().toISOString();
111
- db.prepare("UPDATE plans SET steps = ?, updated_at = ? WHERE id = ?").run(JSON.stringify(steps), now, planId);
112
- return {
113
- success: true,
114
- message: `Updated step ${stepIndex + 1} in plan ${planId}`,
115
- step: steps[stepIndex],
116
- };
117
- },
118
- },
119
- {
120
- name: "getPlan",
121
- description: "Retrieve a task plan by ID.",
122
- inputSchema: {
123
- type: "object",
124
- properties: {
125
- planId: { type: "string", description: "ID of the plan to retrieve" },
126
- },
127
- required: ["planId"],
128
- },
129
- handler: async (args) => {
130
- const db = getDb();
131
- const row = db.prepare("SELECT * FROM plans WHERE id = ?").get(args.planId);
132
- if (!row)
133
- throw new Error(`Plan not found: ${args.planId}`);
134
- return {
135
- success: true,
136
- plan: {
137
- id: row.id,
138
- goal: row.goal,
139
- steps: JSON.parse(row.steps),
140
- createdAt: row.created_at,
141
- updatedAt: row.updated_at,
142
- },
143
- };
144
- },
145
- },
146
- ];
147
- //# sourceMappingURL=planningTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planningTools.js","sourceRoot":"","sources":["../../src/tools/planningTools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Search tools — local full-text search via SQLite FTS5 over documents and memory.
3
- */
4
- import type { McpTool } from "../types.js";
5
- export declare const searchTools: McpTool[];
@@ -1,145 +0,0 @@
1
- /**
2
- * Search tools — local full-text search via SQLite FTS5 over documents and memory.
3
- */
4
- import { getDb } from "../db.js";
5
- export const searchTools = [
6
- {
7
- name: "quickSearch",
8
- description: "Execute a quick search across local documents and memory. Returns ranked results.",
9
- inputSchema: {
10
- type: "object",
11
- properties: {
12
- query: { type: "string", description: "Search query" },
13
- maxResults: {
14
- type: "number",
15
- description: "Maximum number of results (default 10)",
16
- },
17
- },
18
- required: ["query"],
19
- },
20
- handler: async (args) => {
21
- const db = getDb();
22
- const maxResults = args.maxResults ?? 10;
23
- const query = args.query;
24
- // Search documents via FTS5
25
- const docResults = db.prepare(`
26
- SELECT d.id, d.title, 'document' as source,
27
- snippet(documents_fts, 1, '**', '**', '...', 48) as snippet,
28
- rank
29
- FROM documents_fts
30
- JOIN documents d ON d.rowid = documents_fts.rowid
31
- WHERE documents_fts MATCH ?
32
- AND d.is_archived = 0
33
- ORDER BY rank
34
- LIMIT ?
35
- `).all(query, maxResults);
36
- // Search memory via FTS5
37
- const memResults = db.prepare(`
38
- SELECT m.id, m.key as title, 'memory' as source,
39
- snippet(memory_fts, 1, '**', '**', '...', 48) as snippet,
40
- rank
41
- FROM memory_fts
42
- JOIN memory m ON m.id = memory_fts.rowid
43
- WHERE memory_fts MATCH ?
44
- ORDER BY rank
45
- LIMIT ?
46
- `).all(query, maxResults);
47
- // Merge and sort by rank
48
- const combined = [...docResults, ...memResults]
49
- .sort((a, b) => a.rank - b.rank)
50
- .slice(0, maxResults);
51
- return {
52
- query,
53
- count: combined.length,
54
- results: combined.map((r) => ({
55
- id: r.id,
56
- title: r.title,
57
- source: r.source,
58
- snippet: r.snippet,
59
- })),
60
- };
61
- },
62
- },
63
- {
64
- name: "fusionSearch",
65
- description: "Multi-source search with mode control. Modes: fast (documents only), balanced (documents + memory), comprehensive (documents + memory + plans).",
66
- inputSchema: {
67
- type: "object",
68
- properties: {
69
- query: { type: "string", description: "Search query" },
70
- mode: {
71
- type: "string",
72
- enum: ["fast", "balanced", "comprehensive"],
73
- description: "Search mode (default: balanced)",
74
- },
75
- },
76
- required: ["query"],
77
- },
78
- handler: async (args) => {
79
- const db = getDb();
80
- const mode = args.mode ?? "balanced";
81
- const query = args.query;
82
- const results = [];
83
- // Always search documents
84
- const docResults = db.prepare(`
85
- SELECT d.id, d.title, 'document' as source,
86
- snippet(documents_fts, 1, '**', '**', '...', 48) as snippet,
87
- rank
88
- FROM documents_fts
89
- JOIN documents d ON d.rowid = documents_fts.rowid
90
- WHERE documents_fts MATCH ?
91
- AND d.is_archived = 0
92
- ORDER BY rank
93
- LIMIT 20
94
- `).all(query);
95
- results.push(...docResults);
96
- // Balanced and comprehensive: also search memory
97
- if (mode === "balanced" || mode === "comprehensive") {
98
- const memResults = db.prepare(`
99
- SELECT m.id, m.key as title, 'memory' as source,
100
- snippet(memory_fts, 1, '**', '**', '...', 48) as snippet,
101
- rank
102
- FROM memory_fts
103
- JOIN memory m ON m.id = memory_fts.rowid
104
- WHERE memory_fts MATCH ?
105
- ORDER BY rank
106
- LIMIT 20
107
- `).all(query);
108
- results.push(...memResults);
109
- }
110
- // Comprehensive: also search plans (keyword match, no FTS)
111
- if (mode === "comprehensive") {
112
- const queryLower = query.toLowerCase();
113
- const plans = db.prepare("SELECT id, goal, steps FROM plans").all();
114
- for (const plan of plans) {
115
- const text = `${plan.goal} ${plan.steps}`.toLowerCase();
116
- if (text.includes(queryLower)) {
117
- results.push({
118
- id: plan.id,
119
- title: plan.goal,
120
- source: "plan",
121
- snippet: plan.goal,
122
- rank: -0.5, // lower priority than FTS matches
123
- });
124
- }
125
- }
126
- }
127
- // Sort by rank and dedupe
128
- const sorted = results
129
- .sort((a, b) => a.rank - b.rank)
130
- .slice(0, 30);
131
- return {
132
- query,
133
- mode,
134
- count: sorted.length,
135
- results: sorted.map((r) => ({
136
- id: r.id,
137
- title: r.title,
138
- source: r.source,
139
- snippet: r.snippet,
140
- })),
141
- };
142
- },
143
- },
144
- ];
145
- //# sourceMappingURL=searchTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchTools.js","sourceRoot":"","sources":["../../src/tools/searchTools.ts"],"names":[],"mappings":"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"}