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.
- package/NODEBENCH_AGENTS.md +1 -1
- package/README.md +21 -12
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js +330 -8
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
- package/dist/__tests__/tools.test.js +544 -4
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/index.js +28 -6
- package/dist/index.js.map +1 -1
- package/dist/tools/boilerplateTools.d.ts +11 -0
- package/dist/tools/boilerplateTools.js +500 -0
- package/dist/tools/boilerplateTools.js.map +1 -0
- package/dist/tools/cCompilerBenchmarkTools.d.ts +14 -0
- package/dist/tools/cCompilerBenchmarkTools.js +453 -0
- package/dist/tools/cCompilerBenchmarkTools.js.map +1 -0
- package/dist/tools/figmaFlowTools.d.ts +13 -0
- package/dist/tools/figmaFlowTools.js +183 -0
- package/dist/tools/figmaFlowTools.js.map +1 -0
- package/dist/tools/flickerDetectionTools.d.ts +14 -0
- package/dist/tools/flickerDetectionTools.js +231 -0
- package/dist/tools/flickerDetectionTools.js.map +1 -0
- package/dist/tools/localFileTools.d.ts +1 -0
- package/dist/tools/localFileTools.js +1926 -27
- package/dist/tools/localFileTools.js.map +1 -1
- package/dist/tools/metaTools.js +17 -0
- package/dist/tools/metaTools.js.map +1 -1
- package/dist/tools/progressiveDiscoveryTools.d.ts +14 -0
- package/dist/tools/progressiveDiscoveryTools.js +222 -0
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -0
- package/dist/tools/toolRegistry.d.ts +70 -0
- package/dist/tools/toolRegistry.js +1437 -0
- package/dist/tools/toolRegistry.js.map +1 -0
- 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[];
|