nodebench-mcp 2.6.0 → 2.8.1

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 (37) hide show
  1. package/NODEBENCH_AGENTS.md +1 -1
  2. package/README.md +21 -12
  3. package/dist/__tests__/audit-registry.d.ts +1 -0
  4. package/dist/__tests__/audit-registry.js +60 -0
  5. package/dist/__tests__/audit-registry.js.map +1 -0
  6. package/dist/__tests__/gaiaCapabilityEval.test.js +59 -1
  7. package/dist/__tests__/gaiaCapabilityEval.test.js.map +1 -1
  8. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +388 -9
  9. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +1 -1
  10. package/dist/__tests__/tools.test.js +551 -4
  11. package/dist/__tests__/tools.test.js.map +1 -1
  12. package/dist/index.js +28 -6
  13. package/dist/index.js.map +1 -1
  14. package/dist/tools/boilerplateTools.d.ts +11 -0
  15. package/dist/tools/boilerplateTools.js +500 -0
  16. package/dist/tools/boilerplateTools.js.map +1 -0
  17. package/dist/tools/cCompilerBenchmarkTools.d.ts +14 -0
  18. package/dist/tools/cCompilerBenchmarkTools.js +453 -0
  19. package/dist/tools/cCompilerBenchmarkTools.js.map +1 -0
  20. package/dist/tools/figmaFlowTools.d.ts +13 -0
  21. package/dist/tools/figmaFlowTools.js +183 -0
  22. package/dist/tools/figmaFlowTools.js.map +1 -0
  23. package/dist/tools/flickerDetectionTools.d.ts +14 -0
  24. package/dist/tools/flickerDetectionTools.js +231 -0
  25. package/dist/tools/flickerDetectionTools.js.map +1 -0
  26. package/dist/tools/localFileTools.d.ts +1 -0
  27. package/dist/tools/localFileTools.js +1926 -27
  28. package/dist/tools/localFileTools.js.map +1 -1
  29. package/dist/tools/metaTools.js +17 -0
  30. package/dist/tools/metaTools.js.map +1 -1
  31. package/dist/tools/progressiveDiscoveryTools.d.ts +14 -0
  32. package/dist/tools/progressiveDiscoveryTools.js +239 -0
  33. package/dist/tools/progressiveDiscoveryTools.js.map +1 -0
  34. package/dist/tools/toolRegistry.d.ts +88 -0
  35. package/dist/tools/toolRegistry.js +1926 -0
  36. package/dist/tools/toolRegistry.js.map +1 -0
  37. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressiveDiscoveryTools.js","sourceRoot":"","sources":["../../src/tools/progressiveDiscoveryTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Tool Registry — Central metadata catalog for all NodeBench MCP tools.
3
+ *
4
+ * Every tool gets: category, tags (for hybrid search), quickRef (what to do next),
5
+ * relatedTools, and phase (which methodology phase it belongs to).
6
+ *
7
+ * The progressive disclosure system uses this to:
8
+ * 1. Score tools by relevance (hybrid: keyword + tag + category matching)
9
+ * 2. Append quickRefs to every tool response (so agents always know what to do next)
10
+ * 3. Build tool chains (recommended sequences for common workflows)
11
+ */
12
+ export interface ToolQuickRef {
13
+ /** 1-2 sentence guidance on what to do after calling this tool */
14
+ nextAction: string;
15
+ /** Tools commonly used after this one */
16
+ nextTools: string[];
17
+ /** Which methodology to consult for full guidance */
18
+ methodology?: string;
19
+ /** Short tip for effective use */
20
+ tip?: string;
21
+ }
22
+ export interface ToolRegistryEntry {
23
+ name: string;
24
+ category: string;
25
+ tags: string[];
26
+ quickRef: ToolQuickRef;
27
+ /** Where this tool sits in a typical workflow: research, implement, test, verify, ship */
28
+ phase: "research" | "implement" | "test" | "verify" | "ship" | "meta" | "utility";
29
+ }
30
+ /** Map of tool name → registry entry for O(1) lookup */
31
+ export declare const TOOL_REGISTRY: Map<string, ToolRegistryEntry>;
32
+ /** All registry entries as array */
33
+ export declare const ALL_REGISTRY_ENTRIES: ToolRegistryEntry[];
34
+ /** Get quick ref for a tool, with fallback for unregistered tools */
35
+ export declare function getQuickRef(toolName: string): ToolQuickRef | null;
36
+ /** Get all tools in a category */
37
+ export declare function getToolsByCategory(category: string): ToolRegistryEntry[];
38
+ /** Get all tools in a workflow phase */
39
+ export declare function getToolsByPhase(phase: ToolRegistryEntry["phase"]): ToolRegistryEntry[];
40
+ export interface SearchResult {
41
+ name: string;
42
+ description: string;
43
+ category: string;
44
+ score: number;
45
+ /** Human-readable breakdown of why this tool matched */
46
+ matchReasons: string[];
47
+ quickRef: ToolQuickRef;
48
+ phase: string;
49
+ tags: string[];
50
+ }
51
+ export type SearchMode = "hybrid" | "fuzzy" | "regex" | "prefix" | "semantic" | "exact";
52
+ /**
53
+ * Multi-modal hybrid search engine.
54
+ *
55
+ * Search modes (all run in parallel, scores merged):
56
+ * - **keyword**: Exact and partial word matching on name, tags, description, category
57
+ * - **fuzzy**: Levenshtein distance for typo tolerance (e.g., "verifiy" → "verify")
58
+ * - **n-gram**: Trigram similarity for partial word overlap (e.g., "screen" → "screenshot")
59
+ * - **prefix**: Matches tool names starting with query words (e.g., "cap" → "capture_*")
60
+ * - **semantic**: Synonym expansion using curated map (e.g., "check" → also "verify", "validate")
61
+ * - **TF-IDF**: Rare tags score higher than common ones
62
+ * - **regex**: Pass a regex pattern to match against tool names/descriptions
63
+ * - **bigram**: Two-word phrase matching (e.g., "quality gate" matched as phrase)
64
+ * - **domain boost**: Related categories get boosted when top results cluster
65
+ */
66
+ export declare function hybridSearch(query: string, tools: Array<{
67
+ name: string;
68
+ description: string;
69
+ }>, options?: {
70
+ category?: string;
71
+ phase?: string;
72
+ limit?: number;
73
+ mode?: SearchMode;
74
+ /** If true, includes matchReasons in results explaining why each tool matched */
75
+ explain?: boolean;
76
+ }): SearchResult[];
77
+ /** Available search modes for discover_tools */
78
+ export declare const SEARCH_MODES: SearchMode[];
79
+ export interface WorkflowChain {
80
+ name: string;
81
+ description: string;
82
+ steps: Array<{
83
+ tool: string;
84
+ action: string;
85
+ }>;
86
+ }
87
+ /** Pre-built workflow chains for common tasks */
88
+ export declare const WORKFLOW_CHAINS: Record<string, WorkflowChain>;