nodebench-mcp 2.6.0 → 2.8.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 (32) hide show
  1. package/NODEBENCH_AGENTS.md +1 -1
  2. package/README.md +21 -12
  3. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +330 -8
  4. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
  5. package/dist/__tests__/tools.test.js +544 -4
  6. package/dist/__tests__/tools.test.js.map +1 -1
  7. package/dist/index.js +28 -6
  8. package/dist/index.js.map +1 -1
  9. package/dist/tools/boilerplateTools.d.ts +11 -0
  10. package/dist/tools/boilerplateTools.js +500 -0
  11. package/dist/tools/boilerplateTools.js.map +1 -0
  12. package/dist/tools/cCompilerBenchmarkTools.d.ts +14 -0
  13. package/dist/tools/cCompilerBenchmarkTools.js +453 -0
  14. package/dist/tools/cCompilerBenchmarkTools.js.map +1 -0
  15. package/dist/tools/figmaFlowTools.d.ts +13 -0
  16. package/dist/tools/figmaFlowTools.js +183 -0
  17. package/dist/tools/figmaFlowTools.js.map +1 -0
  18. package/dist/tools/flickerDetectionTools.d.ts +14 -0
  19. package/dist/tools/flickerDetectionTools.js +231 -0
  20. package/dist/tools/flickerDetectionTools.js.map +1 -0
  21. package/dist/tools/localFileTools.d.ts +1 -0
  22. package/dist/tools/localFileTools.js +1926 -27
  23. package/dist/tools/localFileTools.js.map +1 -1
  24. package/dist/tools/metaTools.js +17 -0
  25. package/dist/tools/metaTools.js.map +1 -1
  26. package/dist/tools/progressiveDiscoveryTools.d.ts +14 -0
  27. package/dist/tools/progressiveDiscoveryTools.js +222 -0
  28. package/dist/tools/progressiveDiscoveryTools.js.map +1 -0
  29. package/dist/tools/toolRegistry.d.ts +70 -0
  30. package/dist/tools/toolRegistry.js +1437 -0
  31. package/dist/tools/toolRegistry.js.map +1 -0
  32. package/package.json +3 -2
@@ -0,0 +1,500 @@
1
+ /**
2
+ * Boilerplate Tools — Scaffold a ready-to-use project pre-configured for
3
+ * nodebench-mcp. Instead of requiring agents to run 15 bootstrap tools,
4
+ * ship a single "scaffold_nodebench_project" that creates everything.
5
+ *
6
+ * 2 tools:
7
+ * - scaffold_nodebench_project: Creates a complete project template with all infra
8
+ * - get_boilerplate_status: Check what's already set up vs what's missing
9
+ */
10
+ import * as fs from "node:fs";
11
+ import * as path from "node:path";
12
+ // ── Template content generators ──────────────────────────────────────────
13
+ function generatePackageJson(projectName, techStack) {
14
+ const isTypeScript = techStack.toLowerCase().includes("typescript") || techStack.toLowerCase().includes("ts");
15
+ const isReact = techStack.toLowerCase().includes("react");
16
+ const isPython = techStack.toLowerCase().includes("python");
17
+ if (isPython) {
18
+ return JSON.stringify({
19
+ name: projectName,
20
+ private: true,
21
+ scripts: {
22
+ "mcp:start": "npx nodebench-mcp",
23
+ "mcp:lite": "npx nodebench-mcp --preset lite",
24
+ "mcp:core": "npx nodebench-mcp --preset core",
25
+ },
26
+ devDependencies: {
27
+ "nodebench-mcp": "^2.8.0",
28
+ },
29
+ }, null, 2);
30
+ }
31
+ return JSON.stringify({
32
+ name: projectName,
33
+ version: "0.1.0",
34
+ private: true,
35
+ type: "module",
36
+ scripts: {
37
+ build: isTypeScript ? "tsc" : "echo 'No build step'",
38
+ test: "vitest run",
39
+ "test:watch": "vitest",
40
+ lint: "eslint .",
41
+ "mcp:start": "npx nodebench-mcp",
42
+ "mcp:lite": "npx nodebench-mcp --preset lite",
43
+ "mcp:core": "npx nodebench-mcp --preset core",
44
+ ...(isReact ? { dev: "vite", preview: "vite preview" } : {}),
45
+ },
46
+ dependencies: {
47
+ ...(isReact ? { react: "^19.0.0", "react-dom": "^19.0.0" } : {}),
48
+ },
49
+ devDependencies: {
50
+ ...(isTypeScript ? { typescript: "^5.7.0", "@types/node": "^22.0.0" } : {}),
51
+ vitest: "^3.2.0",
52
+ "nodebench-mcp": "^2.8.0",
53
+ },
54
+ }, null, 2);
55
+ }
56
+ function generateAgentsMd(projectName, techStack) {
57
+ return `# ${projectName} — Agent Instructions
58
+
59
+ ## Project Overview
60
+ - **Name**: ${projectName}
61
+ - **Tech Stack**: ${techStack}
62
+ - **Created**: ${new Date().toISOString().split("T")[0]}
63
+
64
+ ## Quick Start for AI Agents
65
+
66
+ ### First Session
67
+ 1. Call \`bootstrap_project\` to register this project with NodeBench MCP
68
+ 2. Call \`search_all_knowledge\` to check for relevant past findings
69
+ 3. Call \`getMethodology("overview")\` to see all available methodologies
70
+
71
+ ### Every Task
72
+ 1. \`search_all_knowledge\` — Check what the system already knows
73
+ 2. \`start_verification_cycle\` — Begin 6-phase verification
74
+ 3. Follow phases 1-6 (guided by tool responses)
75
+ 4. \`run_mandatory_flywheel\` — 6-step final check before declaring done
76
+ 5. \`record_learning\` — Capture what you discovered
77
+
78
+ ### Progressive Tool Discovery
79
+ - \`discover_tools("what you want to do")\` — Hybrid search with relevance scoring
80
+ - \`get_tool_quick_ref("tool_name")\` — What to do after calling any tool
81
+ - \`get_workflow_chain("new_feature")\` — Full step-by-step tool sequences
82
+
83
+ ## Architecture
84
+ <!-- Describe your project architecture here -->
85
+
86
+ ## Conventions
87
+ <!-- Describe coding conventions, patterns, and standards here -->
88
+
89
+ ## Quality Gates
90
+ - All changes must pass \`run_mandatory_flywheel\` before shipping
91
+ - UI changes must pass the \`ui_ux_qa\` quality gate
92
+ - Code changes must pass \`run_closed_loop\` (compile→lint→test→debug)
93
+
94
+ ## Known Gotchas
95
+ <!-- Record known issues and workarounds here. Also stored in NodeBench learnings DB. -->
96
+
97
+ ## Parallel Agent Coordination
98
+ When using multiple agents (Claude Code subagents, worktrees, or terminals):
99
+ 1. \`claim_agent_task\` before starting work (prevents duplicate effort)
100
+ 2. \`assign_agent_role\` for specialization
101
+ 3. \`release_agent_task\` with progress note when done
102
+ 4. \`get_parallel_status\` to see all agent activity
103
+ `;
104
+ }
105
+ function generateMcpConfig(projectName) {
106
+ return JSON.stringify({
107
+ mcpServers: {
108
+ "nodebench-mcp": {
109
+ command: "npx",
110
+ args: ["-y", "nodebench-mcp"],
111
+ env: {},
112
+ },
113
+ },
114
+ }, null, 2);
115
+ }
116
+ function generateGithubActions() {
117
+ return `name: NodeBench Quality Gate
118
+ on:
119
+ pull_request:
120
+ branches: [main]
121
+ push:
122
+ branches: [main]
123
+
124
+ jobs:
125
+ quality-gate:
126
+ runs-on: ubuntu-latest
127
+ steps:
128
+ - uses: actions/checkout@v4
129
+ - uses: actions/setup-node@v4
130
+ with:
131
+ node-version: '22'
132
+ - run: npm ci
133
+ - run: npm run build
134
+ - run: npm run test
135
+ - run: npm run lint
136
+ `;
137
+ }
138
+ function generateReadme(projectName, techStack) {
139
+ return `# ${projectName}
140
+
141
+ Built with NodeBench MCP methodology for rigorous AI-assisted development.
142
+
143
+ ## Quick Start
144
+
145
+ \`\`\`bash
146
+ npm install
147
+ npm run build
148
+ npm run test
149
+ \`\`\`
150
+
151
+ ## NodeBench MCP Integration
152
+
153
+ This project is pre-configured for [NodeBench MCP](https://github.com/nodebench/nodebench-ai) — tools that make AI agents catch the bugs they normally ship.
154
+
155
+ ### For AI Agents
156
+ See [AGENTS.md](./AGENTS.md) for detailed instructions.
157
+
158
+ ### Key Commands
159
+ - \`npm run mcp:start\` — Start NodeBench MCP (full toolset)
160
+ - \`npm run mcp:lite\` — Lightweight mode (34 tools)
161
+ - \`npm run mcp:core\` — Core mode (79 tools)
162
+
163
+ ### MCP Configuration
164
+ The \`.mcp.json\` file configures NodeBench MCP for your IDE.
165
+
166
+ ## Tech Stack
167
+ ${techStack}
168
+
169
+ ## Development Workflow
170
+ 1. **Research** → \`search_all_knowledge\`, \`run_recon\`
171
+ 2. **Implement** → Write code following conventions in AGENTS.md
172
+ 3. **Test** → \`run_closed_loop\` (compile→lint→test→debug)
173
+ 4. **Verify** → \`run_mandatory_flywheel\` (6-step verification)
174
+ 5. **Ship** → \`record_learning\`, \`promote_to_eval\`
175
+ `;
176
+ }
177
+ function generateParallelAgentsReadme() {
178
+ return `# Parallel Agent Coordination
179
+
180
+ This directory supports multi-agent workflows with NodeBench MCP.
181
+
182
+ ## Files
183
+ - \`current_tasks/\` — Lock files for claimed tasks
184
+ - \`oracle/\` — Known-good reference outputs for oracle testing
185
+ - \`roles.json\` — Agent role assignments
186
+ - \`progress.md\` — Running status for agent orientation
187
+
188
+ ## Usage
189
+ 1. \`claim_agent_task({ taskKey: "...", description: "..." })\`
190
+ 2. Do the work
191
+ 3. \`release_agent_task({ taskKey: "...", status: "completed", progressNote: "..." })\`
192
+
193
+ See AGENTS.md for full protocol.
194
+ `;
195
+ }
196
+ function generateProgressMd(projectName) {
197
+ return `# ${projectName} — Progress Tracker
198
+
199
+ ## Current Status
200
+ - **Phase**: Setup
201
+ - **Last Updated**: ${new Date().toISOString()}
202
+ - **Active Agents**: 0
203
+
204
+ ## Completed Tasks
205
+ <!-- Tasks will be logged here as agents complete them -->
206
+
207
+ ## Blocked Tasks
208
+ <!-- Tasks that need fresh eyes or external input -->
209
+
210
+ ## Architecture Decisions
211
+ <!-- Key decisions and their rationale -->
212
+
213
+ ## Known Issues
214
+ <!-- Active issues to be aware of -->
215
+ `;
216
+ }
217
+ function generateGitignore() {
218
+ return `node_modules/
219
+ dist/
220
+ .env
221
+ .env.local
222
+ *.log
223
+ .nodebench/
224
+ .parallel-agents/current_tasks/*.lock
225
+ .tmp/
226
+ coverage/
227
+ `;
228
+ }
229
+ function generateTsConfig() {
230
+ return JSON.stringify({
231
+ compilerOptions: {
232
+ target: "ES2022",
233
+ module: "ESNext",
234
+ moduleResolution: "bundler",
235
+ strict: true,
236
+ esModuleInterop: true,
237
+ skipLibCheck: true,
238
+ forceConsistentCasingInFileNames: true,
239
+ outDir: "./dist",
240
+ rootDir: "./src",
241
+ declaration: true,
242
+ declarationMap: true,
243
+ sourceMap: true,
244
+ },
245
+ include: ["src"],
246
+ exclude: ["node_modules", "dist"],
247
+ }, null, 2);
248
+ }
249
+ // ── Tools ────────────────────────────────────────────────────────────────
250
+ export const boilerplateTools = [
251
+ {
252
+ name: "scaffold_nodebench_project",
253
+ description: "Create a complete project template pre-configured for nodebench-mcp. Generates: package.json, AGENTS.md, .mcp.json, .parallel-agents/, .github/workflows/, tsconfig.json, .gitignore, README.md, and src/ directory. Everything an agent needs to start working immediately with the full AI Flywheel methodology. Use dryRun=true (default) to preview what will be created.",
254
+ inputSchema: {
255
+ type: "object",
256
+ properties: {
257
+ projectPath: {
258
+ type: "string",
259
+ description: "Absolute path to the target project directory",
260
+ },
261
+ projectName: {
262
+ type: "string",
263
+ description: "Name of the project (used in package.json, README, etc.)",
264
+ },
265
+ techStack: {
266
+ type: "string",
267
+ description: 'Tech stack description (e.g. "TypeScript, React, Convex", "Python, FastAPI", "Rust, Axum")',
268
+ },
269
+ dryRun: {
270
+ type: "boolean",
271
+ description: "Preview what will be created without writing files (default: true)",
272
+ },
273
+ includeParallelAgents: {
274
+ type: "boolean",
275
+ description: "Include .parallel-agents/ directory for multi-agent coordination (default: true)",
276
+ },
277
+ includeGithubActions: {
278
+ type: "boolean",
279
+ description: "Include .github/workflows/ CI/CD template (default: true)",
280
+ },
281
+ includeDocker: {
282
+ type: "boolean",
283
+ description: "Include Dockerfile and docker-compose.yml (default: false)",
284
+ },
285
+ },
286
+ required: ["projectPath", "projectName", "techStack"],
287
+ },
288
+ handler: async (args) => {
289
+ const projectPath = args.projectPath;
290
+ const projectName = args.projectName;
291
+ const techStack = args.techStack ?? "TypeScript, Node.js";
292
+ const dryRun = args.dryRun !== false;
293
+ const includeParallel = args.includeParallelAgents !== false;
294
+ const includeGH = args.includeGithubActions !== false;
295
+ const includeDocker = args.includeDocker === true;
296
+ // Build file manifest
297
+ const files = [];
298
+ // Core files
299
+ files.push({ path: "package.json", content: generatePackageJson(projectName, techStack) });
300
+ files.push({ path: "AGENTS.md", content: generateAgentsMd(projectName, techStack) });
301
+ files.push({ path: ".mcp.json", content: generateMcpConfig(projectName) });
302
+ files.push({ path: "README.md", content: generateReadme(projectName, techStack) });
303
+ files.push({ path: ".gitignore", content: generateGitignore() });
304
+ // TypeScript config (if applicable)
305
+ if (techStack.toLowerCase().includes("typescript") || techStack.toLowerCase().includes("ts") || techStack.toLowerCase().includes("node")) {
306
+ files.push({ path: "tsconfig.json", content: generateTsConfig() });
307
+ }
308
+ // Source directory
309
+ files.push({ path: "src", content: "", isDir: true });
310
+ files.push({ path: "src/index.ts", content: `// ${projectName} — entry point\nconsole.log("Hello from ${projectName}");\n` });
311
+ // Parallel agents infrastructure
312
+ if (includeParallel) {
313
+ files.push({ path: ".parallel-agents", content: "", isDir: true });
314
+ files.push({ path: ".parallel-agents/README.md", content: generateParallelAgentsReadme() });
315
+ files.push({ path: ".parallel-agents/current_tasks", content: "", isDir: true });
316
+ files.push({ path: ".parallel-agents/oracle", content: "", isDir: true });
317
+ files.push({ path: ".parallel-agents/roles.json", content: JSON.stringify({ roles: [], lastUpdated: new Date().toISOString() }, null, 2) });
318
+ files.push({ path: "progress.md", content: generateProgressMd(projectName) });
319
+ }
320
+ // GitHub Actions
321
+ if (includeGH) {
322
+ files.push({ path: ".github/workflows", content: "", isDir: true });
323
+ files.push({ path: ".github/workflows/quality-gate.yml", content: generateGithubActions() });
324
+ }
325
+ // Docker (optional)
326
+ if (includeDocker) {
327
+ files.push({
328
+ path: "Dockerfile",
329
+ content: `FROM node:22-slim\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci --production\nCOPY . .\nRUN npm run build\nCMD ["node", "dist/index.js"]\n`,
330
+ });
331
+ files.push({
332
+ path: "docker-compose.yml",
333
+ content: `version: '3.8'\nservices:\n app:\n build: .\n ports:\n - "3000:3000"\n environment:\n - NODE_ENV=production\n`,
334
+ });
335
+ }
336
+ // Check for existing files
337
+ const existing = [];
338
+ const willCreate = [];
339
+ for (const file of files) {
340
+ const fullPath = path.join(projectPath, file.path);
341
+ if (fs.existsSync(fullPath)) {
342
+ existing.push(file.path);
343
+ }
344
+ else {
345
+ willCreate.push(file.path);
346
+ }
347
+ }
348
+ if (dryRun) {
349
+ return {
350
+ dryRun: true,
351
+ projectPath,
352
+ projectName,
353
+ techStack,
354
+ summary: {
355
+ totalFiles: files.length,
356
+ willCreate: willCreate.length,
357
+ alreadyExist: existing.length,
358
+ },
359
+ willCreate,
360
+ alreadyExist: existing,
361
+ files: files.map((f) => ({
362
+ path: f.path,
363
+ isDir: f.isDir ?? false,
364
+ exists: existing.includes(f.path),
365
+ sizeBytes: f.isDir ? 0 : Buffer.byteLength(f.content, "utf8"),
366
+ })),
367
+ _quickRef: {
368
+ nextAction: "Review the file list. If it looks good, re-run with dryRun=false to create the files.",
369
+ nextTools: ["scaffold_nodebench_project", "bootstrap_project"],
370
+ },
371
+ };
372
+ }
373
+ // Actually create files
374
+ const created = [];
375
+ const skipped = [];
376
+ for (const file of files) {
377
+ const fullPath = path.join(projectPath, file.path);
378
+ if (fs.existsSync(fullPath)) {
379
+ skipped.push(file.path);
380
+ continue;
381
+ }
382
+ if (file.isDir) {
383
+ fs.mkdirSync(fullPath, { recursive: true });
384
+ }
385
+ else {
386
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
387
+ fs.writeFileSync(fullPath, file.content, "utf8");
388
+ }
389
+ created.push(file.path);
390
+ }
391
+ return {
392
+ dryRun: false,
393
+ projectPath,
394
+ projectName,
395
+ techStack,
396
+ summary: {
397
+ created: created.length,
398
+ skipped: skipped.length,
399
+ },
400
+ created,
401
+ skipped,
402
+ _quickRef: {
403
+ nextAction: "Project scaffolded! Next: run `npm install`, then call bootstrap_project to register with NodeBench MCP.",
404
+ nextTools: ["bootstrap_project", "search_all_knowledge", "run_closed_loop"],
405
+ methodology: "agent_bootstrap",
406
+ },
407
+ nextSteps: [
408
+ `cd ${projectPath} && npm install`,
409
+ "Call bootstrap_project to register your project context",
410
+ "Call search_all_knowledge to check for relevant past findings",
411
+ "Start coding! The AI Flywheel methodology will guide you.",
412
+ ],
413
+ };
414
+ },
415
+ },
416
+ {
417
+ name: "get_boilerplate_status",
418
+ description: "Check what NodeBench infrastructure is already set up in a project vs what's missing. Scans for: AGENTS.md, .mcp.json, .parallel-agents/, quality gates, package.json scripts, etc. Returns a gap report with recommendations.",
419
+ inputSchema: {
420
+ type: "object",
421
+ properties: {
422
+ projectPath: {
423
+ type: "string",
424
+ description: "Absolute path to the project directory to scan",
425
+ },
426
+ },
427
+ required: ["projectPath"],
428
+ },
429
+ handler: async (args) => {
430
+ const projectPath = args.projectPath;
431
+ if (!fs.existsSync(projectPath)) {
432
+ throw new Error(`Project path does not exist: ${projectPath}`);
433
+ }
434
+ const checks = [
435
+ { file: "AGENTS.md", category: "documentation", description: "Agent instructions file" },
436
+ { file: ".mcp.json", category: "config", description: "MCP server configuration" },
437
+ { file: "package.json", category: "config", description: "Package manifest" },
438
+ { file: "tsconfig.json", category: "config", description: "TypeScript configuration" },
439
+ { file: ".gitignore", category: "config", description: "Git ignore rules" },
440
+ { file: "README.md", category: "documentation", description: "Project readme" },
441
+ { file: ".parallel-agents", category: "parallel", description: "Parallel agent coordination directory" },
442
+ { file: ".parallel-agents/current_tasks", category: "parallel", description: "Task lock directory" },
443
+ { file: ".parallel-agents/oracle", category: "parallel", description: "Oracle reference directory" },
444
+ { file: ".parallel-agents/roles.json", category: "parallel", description: "Agent role assignments" },
445
+ { file: "progress.md", category: "parallel", description: "Progress tracker for agent orientation" },
446
+ { file: ".github/workflows", category: "ci", description: "CI/CD workflow directory" },
447
+ ];
448
+ const found = [];
449
+ const missing = [];
450
+ const details = [];
451
+ for (const check of checks) {
452
+ const fullPath = path.join(projectPath, check.file);
453
+ const exists = fs.existsSync(fullPath);
454
+ if (exists)
455
+ found.push(check.file);
456
+ else
457
+ missing.push(check.file);
458
+ details.push({ ...check, exists });
459
+ }
460
+ // Check package.json for mcp scripts
461
+ let hasMcpScripts = false;
462
+ const pkgPath = path.join(projectPath, "package.json");
463
+ if (fs.existsSync(pkgPath)) {
464
+ try {
465
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
466
+ hasMcpScripts = !!(pkg.scripts?.["mcp:start"] || pkg.scripts?.["mcp:lite"]);
467
+ }
468
+ catch { /* ignore */ }
469
+ }
470
+ const completionPct = Math.round((found.length / checks.length) * 100);
471
+ return {
472
+ projectPath,
473
+ completionPercentage: completionPct,
474
+ found: found.length,
475
+ missing: missing.length,
476
+ total: checks.length,
477
+ hasMcpScripts,
478
+ details,
479
+ missingFiles: missing,
480
+ recommendations: missing.length > 0
481
+ ? [
482
+ `Run scaffold_nodebench_project to create missing files (${missing.length} items)`,
483
+ ...(missing.includes("AGENTS.md") ? ["AGENTS.md is critical — it guides AI agents working on your project"] : []),
484
+ ...(missing.includes(".mcp.json") ? [".mcp.json configures NodeBench MCP for your IDE"] : []),
485
+ ...(!hasMcpScripts ? ["Add mcp:start script to package.json for easy MCP launch"] : []),
486
+ ]
487
+ : ["All infrastructure is in place! Ready for the AI Flywheel."],
488
+ _quickRef: {
489
+ nextAction: missing.length > 0
490
+ ? "Run scaffold_nodebench_project to fill gaps, or bootstrap_project to register existing project."
491
+ : "Infrastructure complete. Call bootstrap_project to register context, then start working.",
492
+ nextTools: missing.length > 0
493
+ ? ["scaffold_nodebench_project", "bootstrap_project"]
494
+ : ["bootstrap_project", "search_all_knowledge"],
495
+ },
496
+ };
497
+ },
498
+ },
499
+ ];
500
+ //# sourceMappingURL=boilerplateTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplateTools.js","sourceRoot":"","sources":["../../src/tools/boilerplateTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * C-Compiler Benchmark Tools — Autonomous agent capability measurement.
3
+ *
4
+ * Based on Anthropic's "Building a C Compiler with Parallel Claudes" (Feb 2026).
5
+ * Measures how long and how far an agent can autonomously run to build something
6
+ * complex using NodeBench MCP tools.
7
+ *
8
+ * 3 tools:
9
+ * - start_autonomy_benchmark: Define a complex build challenge and track agent progress
10
+ * - log_benchmark_milestone: Record each milestone the agent achieves
11
+ * - complete_autonomy_benchmark: Finalize and score the benchmark run
12
+ */
13
+ import type { McpTool } from "../types.js";
14
+ export declare const cCompilerBenchmarkTools: McpTool[];