nodebench-mcp 1.0.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 (65) hide show
  1. package/README.md +237 -0
  2. package/dist/__tests__/tools.test.d.ts +1 -0
  3. package/dist/__tests__/tools.test.js +402 -0
  4. package/dist/__tests__/tools.test.js.map +1 -0
  5. package/dist/db.d.ts +4 -0
  6. package/dist/db.js +198 -0
  7. package/dist/db.js.map +1 -0
  8. package/dist/index.d.ts +19 -0
  9. package/dist/index.js +237 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/tools/documentTools.d.ts +5 -0
  12. package/dist/tools/documentTools.js +524 -0
  13. package/dist/tools/documentTools.js.map +1 -0
  14. package/dist/tools/documentationTools.d.ts +12 -0
  15. package/dist/tools/documentationTools.js +647 -0
  16. package/dist/tools/documentationTools.js.map +1 -0
  17. package/dist/tools/evalTools.d.ts +6 -0
  18. package/dist/tools/evalTools.js +335 -0
  19. package/dist/tools/evalTools.js.map +1 -0
  20. package/dist/tools/financialTools.d.ts +10 -0
  21. package/dist/tools/financialTools.js +403 -0
  22. package/dist/tools/financialTools.js.map +1 -0
  23. package/dist/tools/flywheelTools.d.ts +6 -0
  24. package/dist/tools/flywheelTools.js +366 -0
  25. package/dist/tools/flywheelTools.js.map +1 -0
  26. package/dist/tools/githubTools.d.ts +12 -0
  27. package/dist/tools/githubTools.js +432 -0
  28. package/dist/tools/githubTools.js.map +1 -0
  29. package/dist/tools/learningTools.d.ts +6 -0
  30. package/dist/tools/learningTools.js +199 -0
  31. package/dist/tools/learningTools.js.map +1 -0
  32. package/dist/tools/memoryTools.d.ts +5 -0
  33. package/dist/tools/memoryTools.js +137 -0
  34. package/dist/tools/memoryTools.js.map +1 -0
  35. package/dist/tools/metaTools.d.ts +7 -0
  36. package/dist/tools/metaTools.js +837 -0
  37. package/dist/tools/metaTools.js.map +1 -0
  38. package/dist/tools/planningTools.d.ts +5 -0
  39. package/dist/tools/planningTools.js +147 -0
  40. package/dist/tools/planningTools.js.map +1 -0
  41. package/dist/tools/qualityGateTools.d.ts +6 -0
  42. package/dist/tools/qualityGateTools.js +347 -0
  43. package/dist/tools/qualityGateTools.js.map +1 -0
  44. package/dist/tools/reconTools.d.ts +8 -0
  45. package/dist/tools/reconTools.js +729 -0
  46. package/dist/tools/reconTools.js.map +1 -0
  47. package/dist/tools/searchTools.d.ts +5 -0
  48. package/dist/tools/searchTools.js +145 -0
  49. package/dist/tools/searchTools.js.map +1 -0
  50. package/dist/tools/uiCaptureTools.d.ts +8 -0
  51. package/dist/tools/uiCaptureTools.js +339 -0
  52. package/dist/tools/uiCaptureTools.js.map +1 -0
  53. package/dist/tools/verificationTools.d.ts +6 -0
  54. package/dist/tools/verificationTools.js +472 -0
  55. package/dist/tools/verificationTools.js.map +1 -0
  56. package/dist/tools/visionTools.d.ts +12 -0
  57. package/dist/tools/visionTools.js +553 -0
  58. package/dist/tools/visionTools.js.map +1 -0
  59. package/dist/tools/webTools.d.ts +12 -0
  60. package/dist/tools/webTools.js +443 -0
  61. package/dist/tools/webTools.js.map +1 -0
  62. package/dist/types.d.ts +16 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +1 -0
  65. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconTools.js","sourceRoot":"","sources":["../../src/tools/reconTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
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[];
@@ -0,0 +1,145 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchTools.js","sourceRoot":"","sources":["../../src/tools/searchTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * UI Capture tools — headless browser screenshot capture for visual verification.
3
+ * Uses Playwright (optional dependency) to open a URL, capture screenshots at
4
+ * specified viewports, and collect console errors. Returns screenshots as base64
5
+ * image content blocks so multimodal agents can visually inspect the UI directly.
6
+ */
7
+ import type { McpTool } from "../types.js";
8
+ export declare const uiCaptureTools: McpTool[];
@@ -0,0 +1,339 @@
1
+ /**
2
+ * UI Capture tools — headless browser screenshot capture for visual verification.
3
+ * Uses Playwright (optional dependency) to open a URL, capture screenshots at
4
+ * specified viewports, and collect console errors. Returns screenshots as base64
5
+ * image content blocks so multimodal agents can visually inspect the UI directly.
6
+ */
7
+ import { join } from "path";
8
+ import { homedir } from "os";
9
+ import { mkdirSync, existsSync, readFileSync } from "fs";
10
+ // Screenshot storage directory
11
+ const CAPTURE_DIR = join(homedir(), ".nodebench", "captures");
12
+ function ensureCaptureDir() {
13
+ if (!existsSync(CAPTURE_DIR)) {
14
+ mkdirSync(CAPTURE_DIR, { recursive: true });
15
+ }
16
+ return CAPTURE_DIR;
17
+ }
18
+ /**
19
+ * Dynamically import playwright. Returns null if not installed.
20
+ */
21
+ async function getPlaywright() {
22
+ try {
23
+ return await import("playwright");
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ const VIEWPORT_PRESETS = {
30
+ mobile: { width: 375, height: 812 },
31
+ tablet: { width: 768, height: 1024 },
32
+ desktop: { width: 1280, height: 800 },
33
+ wide: { width: 1920, height: 1080 },
34
+ };
35
+ export const uiCaptureTools = [
36
+ {
37
+ name: "capture_ui_screenshot",
38
+ description: "Capture a screenshot of a URL using headless Playwright. Returns the screenshot as an inline image that multimodal agents can see and evaluate directly. Also captures browser console errors. Supports viewport presets (mobile/tablet/desktop/wide) or custom dimensions. Requires Playwright to be installed in the project.",
39
+ rawContent: true,
40
+ inputSchema: {
41
+ type: "object",
42
+ properties: {
43
+ url: {
44
+ type: "string",
45
+ description: "URL to capture (e.g. http://localhost:3000, http://localhost:6006 for Storybook)",
46
+ },
47
+ viewport: {
48
+ type: "string",
49
+ enum: ["mobile", "tablet", "desktop", "wide", "custom"],
50
+ description: "Viewport preset: mobile (375×812), tablet (768×1024), desktop (1280×800), wide (1920×1080), or custom",
51
+ },
52
+ width: {
53
+ type: "number",
54
+ description: "Custom viewport width (only used when viewport is 'custom')",
55
+ },
56
+ height: {
57
+ type: "number",
58
+ description: "Custom viewport height (only used when viewport is 'custom')",
59
+ },
60
+ fullPage: {
61
+ type: "boolean",
62
+ description: "Capture full scrollable page (default: true)",
63
+ },
64
+ waitForSelector: {
65
+ type: "string",
66
+ description: "Optional CSS selector to wait for before capturing (e.g. '[data-testid=\"main-content\"]')",
67
+ },
68
+ waitMs: {
69
+ type: "number",
70
+ description: "Additional wait time in ms after page load (default: 1000). Useful for animations or lazy-loaded content.",
71
+ },
72
+ label: {
73
+ type: "string",
74
+ description: "Human-readable label for the capture (used in filename, e.g. 'agent-status-card-mobile')",
75
+ },
76
+ },
77
+ required: ["url"],
78
+ },
79
+ handler: async (args) => {
80
+ const pw = await getPlaywright();
81
+ if (!pw) {
82
+ return [
83
+ {
84
+ type: "text",
85
+ text: JSON.stringify({
86
+ error: true,
87
+ message: "Playwright is not installed. Install it with: npm install playwright && npx playwright install chromium",
88
+ suggestion: "The capture_ui_screenshot tool requires Playwright for headless browser automation. " +
89
+ "Run `npm install playwright` in your project, then `npx playwright install chromium` to download the browser binary.",
90
+ }),
91
+ },
92
+ ];
93
+ }
94
+ const viewportName = args.viewport ?? "desktop";
95
+ let viewportSize;
96
+ if (viewportName === "custom") {
97
+ if (!args.width || !args.height) {
98
+ throw new Error("Custom viewport requires both 'width' and 'height' parameters");
99
+ }
100
+ viewportSize = { width: args.width, height: args.height };
101
+ }
102
+ else {
103
+ viewportSize = VIEWPORT_PRESETS[viewportName];
104
+ if (!viewportSize) {
105
+ throw new Error(`Unknown viewport: ${viewportName}. Use: mobile, tablet, desktop, wide, or custom`);
106
+ }
107
+ }
108
+ const fullPage = args.fullPage !== false;
109
+ const waitMs = args.waitMs ?? 1000;
110
+ const captureDir = ensureCaptureDir();
111
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
112
+ const labelSlug = args.label
113
+ ? args.label.replace(/[^a-zA-Z0-9-_]/g, "-").toLowerCase()
114
+ : "capture";
115
+ const filename = `${labelSlug}_${viewportName}_${timestamp}.png`;
116
+ const filepath = join(captureDir, filename);
117
+ const consoleErrors = [];
118
+ let browser;
119
+ try {
120
+ browser = await pw.chromium.launch({ headless: true });
121
+ const context = await browser.newContext({ viewport: viewportSize });
122
+ const page = await context.newPage();
123
+ page.on("console", (msg) => {
124
+ if (msg.type() === "error" || msg.type() === "warning") {
125
+ consoleErrors.push(`[${msg.type()}] ${msg.text()}`);
126
+ }
127
+ });
128
+ page.on("pageerror", (err) => {
129
+ consoleErrors.push(`[pageerror] ${err.message}`);
130
+ });
131
+ await page.goto(args.url, { waitUntil: "networkidle", timeout: 30000 });
132
+ if (args.waitForSelector) {
133
+ await page.waitForSelector(args.waitForSelector, { timeout: 10000 });
134
+ }
135
+ if (waitMs > 0) {
136
+ await new Promise((resolve) => setTimeout(resolve, waitMs));
137
+ }
138
+ await page.screenshot({ path: filepath, fullPage });
139
+ await browser.close();
140
+ browser = null;
141
+ // Read screenshot as base64
142
+ const imageBuffer = readFileSync(filepath);
143
+ const base64 = imageBuffer.toString("base64");
144
+ // Build content blocks: metadata text + inline image
145
+ const content = [
146
+ {
147
+ type: "text",
148
+ text: JSON.stringify({
149
+ url: args.url,
150
+ viewport: { preset: viewportName, ...viewportSize },
151
+ filepath,
152
+ fullPage,
153
+ consoleErrorCount: consoleErrors.length,
154
+ consoleErrors: consoleErrors.slice(0, 20),
155
+ instruction: consoleErrors.length > 0
156
+ ? `Screenshot captured. Found ${consoleErrors.length} console error(s) — review them and fix before passing the no_console_errors gate.`
157
+ : "Screenshot captured with zero console errors. Visually inspect the image below to verify layout, spacing, and component rendering.",
158
+ }),
159
+ },
160
+ {
161
+ type: "image",
162
+ data: base64,
163
+ mimeType: "image/png",
164
+ },
165
+ ];
166
+ return content;
167
+ }
168
+ catch (err) {
169
+ if (browser) {
170
+ try {
171
+ await browser.close();
172
+ }
173
+ catch {
174
+ // ignore cleanup error
175
+ }
176
+ }
177
+ return [
178
+ {
179
+ type: "text",
180
+ text: JSON.stringify({
181
+ error: true,
182
+ message: `Screenshot capture failed: ${err.message}`,
183
+ url: args.url,
184
+ viewport: viewportName,
185
+ suggestion: "Ensure the URL is accessible. If capturing localhost, make sure the dev server is running.",
186
+ }),
187
+ },
188
+ ];
189
+ }
190
+ },
191
+ },
192
+ {
193
+ name: "capture_responsive_suite",
194
+ description: "Capture screenshots at all 3 standard responsive breakpoints (mobile 375px, tablet 768px, desktop 1280px) in one call. Returns all 3 screenshots as inline images that multimodal agents can see and compare side-by-side. Also captures console errors per viewport. Use this after UI implementations to quickly verify responsive behavior.",
195
+ rawContent: true,
196
+ inputSchema: {
197
+ type: "object",
198
+ properties: {
199
+ url: {
200
+ type: "string",
201
+ description: "URL to capture at all breakpoints",
202
+ },
203
+ label: {
204
+ type: "string",
205
+ description: "Component/feature label (e.g. 'agent-status-card'). Used in filenames.",
206
+ },
207
+ waitForSelector: {
208
+ type: "string",
209
+ description: "Optional CSS selector to wait for before each capture",
210
+ },
211
+ waitMs: {
212
+ type: "number",
213
+ description: "Additional wait time in ms after load (default: 1000)",
214
+ },
215
+ },
216
+ required: ["url", "label"],
217
+ },
218
+ handler: async (args) => {
219
+ const pw = await getPlaywright();
220
+ if (!pw) {
221
+ return [
222
+ {
223
+ type: "text",
224
+ text: JSON.stringify({
225
+ error: true,
226
+ message: "Playwright is not installed. Install it with: npm install playwright && npx playwright install chromium",
227
+ }),
228
+ },
229
+ ];
230
+ }
231
+ const waitMs = args.waitMs ?? 1000;
232
+ const captureDir = ensureCaptureDir();
233
+ const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
234
+ const labelSlug = args.label
235
+ .replace(/[^a-zA-Z0-9-_]/g, "-")
236
+ .toLowerCase();
237
+ const breakpoints = [
238
+ { name: "mobile", ...VIEWPORT_PRESETS.mobile },
239
+ { name: "tablet", ...VIEWPORT_PRESETS.tablet },
240
+ { name: "desktop", ...VIEWPORT_PRESETS.desktop },
241
+ ];
242
+ const content = [];
243
+ const captureResults = [];
244
+ let browser;
245
+ try {
246
+ browser = await pw.chromium.launch({ headless: true });
247
+ for (const bp of breakpoints) {
248
+ const consoleErrors = [];
249
+ const context = await browser.newContext({
250
+ viewport: { width: bp.width, height: bp.height },
251
+ });
252
+ const page = await context.newPage();
253
+ page.on("console", (msg) => {
254
+ if (msg.type() === "error" || msg.type() === "warning") {
255
+ consoleErrors.push(`[${msg.type()}] ${msg.text()}`);
256
+ }
257
+ });
258
+ page.on("pageerror", (err) => {
259
+ consoleErrors.push(`[pageerror] ${err.message}`);
260
+ });
261
+ await page.goto(args.url, { waitUntil: "networkidle", timeout: 30000 });
262
+ if (args.waitForSelector) {
263
+ await page.waitForSelector(args.waitForSelector, { timeout: 10000 });
264
+ }
265
+ if (waitMs > 0) {
266
+ await new Promise((resolve) => setTimeout(resolve, waitMs));
267
+ }
268
+ const filename = `${labelSlug}_${bp.name}_${timestamp}.png`;
269
+ const filepath = join(captureDir, filename);
270
+ await page.screenshot({ path: filepath, fullPage: true });
271
+ await context.close();
272
+ // Read screenshot as base64
273
+ const imageBuffer = readFileSync(filepath);
274
+ const base64 = imageBuffer.toString("base64");
275
+ captureResults.push({
276
+ breakpoint: bp.name,
277
+ viewport: `${bp.width}×${bp.height}`,
278
+ filepath,
279
+ consoleErrorCount: consoleErrors.length,
280
+ consoleErrors: consoleErrors.slice(0, 10),
281
+ });
282
+ // Add label text + image for this breakpoint
283
+ content.push({
284
+ type: "text",
285
+ text: `[${bp.name.toUpperCase()} ${bp.width}×${bp.height}] ${consoleErrors.length === 0 ? "0 console errors" : `${consoleErrors.length} console error(s): ${consoleErrors.slice(0, 3).join("; ")}`}`,
286
+ });
287
+ content.push({
288
+ type: "image",
289
+ data: base64,
290
+ mimeType: "image/png",
291
+ });
292
+ }
293
+ await browser.close();
294
+ browser = null;
295
+ const totalErrors = captureResults.reduce((sum, r) => sum + r.consoleErrorCount, 0);
296
+ // Add summary as the first content block
297
+ content.unshift({
298
+ type: "text",
299
+ text: JSON.stringify({
300
+ url: args.url,
301
+ label: args.label,
302
+ captures: captureResults,
303
+ summary: {
304
+ totalCaptures: captureResults.length,
305
+ totalConsoleErrors: totalErrors,
306
+ allClean: totalErrors === 0,
307
+ },
308
+ instruction: totalErrors > 0
309
+ ? `Captured ${captureResults.length} breakpoints. Found ${totalErrors} console error(s) — fix before gating. Inspect the images below to verify responsive layout.`
310
+ : `Captured ${captureResults.length} breakpoints with zero console errors. Inspect the images below to verify responsive layout at each breakpoint.`,
311
+ }),
312
+ });
313
+ return content;
314
+ }
315
+ catch (err) {
316
+ if (browser) {
317
+ try {
318
+ await browser.close();
319
+ }
320
+ catch {
321
+ // ignore cleanup error
322
+ }
323
+ }
324
+ return [
325
+ {
326
+ type: "text",
327
+ text: JSON.stringify({
328
+ error: true,
329
+ message: `Responsive capture failed: ${err.message}`,
330
+ url: args.url,
331
+ suggestion: "Ensure the URL is accessible and the dev server is running.",
332
+ }),
333
+ },
334
+ ];
335
+ }
336
+ },
337
+ },
338
+ ];
339
+ //# sourceMappingURL=uiCaptureTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiCaptureTools.js","sourceRoot":"","sources":["../../src/tools/uiCaptureTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Verification tools — 6-Phase Iterative Deep-Dive Verification Process.
3
+ * Guides agents through systematic verification of non-trivial implementations.
4
+ */
5
+ import type { McpTool } from "../types.js";
6
+ export declare const verificationTools: McpTool[];