bobs-workshop 0.3.0 → 0.3.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 (34) hide show
  1. package/Claude.md +30 -4
  2. package/README.md +2 -2
  3. package/dist/index.js +4 -4
  4. package/dist/index.js.map +1 -1
  5. package/dist/prompts/architect.js +6 -1
  6. package/dist/prompts/architect.js.map +1 -1
  7. package/dist/prompts/debugger.js +5 -0
  8. package/dist/prompts/debugger.js.map +1 -1
  9. package/dist/prompts/engineer.js +6 -1
  10. package/dist/prompts/engineer.js.map +1 -1
  11. package/dist/prompts/reviewer.js +6 -1
  12. package/dist/prompts/reviewer.js.map +1 -1
  13. package/dist/tools/searchTools.js +111 -18
  14. package/dist/tools/searchTools.js.map +1 -1
  15. package/dist/tools/structural/__tests__/orchestrator.test.js +61 -0
  16. package/dist/tools/structural/__tests__/orchestrator.test.js.map +1 -0
  17. package/dist/tools/structural/cache.js +226 -0
  18. package/dist/tools/structural/cache.js.map +1 -0
  19. package/dist/tools/structural/engines/python/index.js +118 -0
  20. package/dist/tools/structural/engines/python/index.js.map +1 -0
  21. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +97 -0
  22. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +1 -0
  23. package/dist/tools/structural/engines/typescript/analyzer.js +433 -0
  24. package/dist/tools/structural/engines/typescript/analyzer.js.map +1 -0
  25. package/dist/tools/structural/engines/typescript/index.js +381 -0
  26. package/dist/tools/structural/engines/typescript/index.js.map +1 -0
  27. package/dist/tools/structural/engines/typescript/utils.js +279 -0
  28. package/dist/tools/structural/engines/typescript/utils.js.map +1 -0
  29. package/dist/tools/structural/index.js +248 -0
  30. package/dist/tools/structural/index.js.map +1 -0
  31. package/dist/tools/structural/types.js +18 -0
  32. package/dist/tools/structural/types.js.map +1 -0
  33. package/package.json +7 -5
  34. package/public/.well-known/mcp/manifest.json +6 -5
package/Claude.md CHANGED
@@ -58,14 +58,39 @@ Grep("pattern", { output_mode: "content" })
58
58
  bob.code.search({
59
59
  query: "pattern",
60
60
  phase: "engineer", // architect | engineer | debugger | reviewer
61
- mode: "auto" // auto | semantic | lexical
61
+ mode: "auto" // auto | semantic | lexical | structural
62
62
  })
63
63
 
64
- // ✅ ALSO CORRECT - Multi-word conceptual queries
64
+ // ✅ STRUCTURAL SEARCH - AST-based symbol analysis (TypeScript/JavaScript)
65
+ bob.code.search({
66
+ query: "find references to UserService", // Auto-routes to structural mode
67
+ phase: "engineer",
68
+ mode: "auto"
69
+ })
70
+
71
+ bob.code.search({
72
+ query: "show dependencies for src/api/auth.ts", // Dependency analysis
73
+ phase: "architect",
74
+ mode: "auto"
75
+ })
76
+
77
+ bob.code.search({
78
+ query: "find circular dependencies", // Architecture health check
79
+ phase: "architect",
80
+ mode: "auto"
81
+ })
82
+
83
+ bob.code.search({
84
+ query: "find unused exports", // Code cleanup
85
+ phase: "engineer",
86
+ mode: "auto"
87
+ })
88
+
89
+ // ✅ SEMANTIC SEARCH - Multi-word conceptual queries
65
90
  bob.code.search({
66
91
  query: "authentication user session management", // 3+ words auto-routes to semantic
67
92
  phase: "architect",
68
- mode: "auto" // Will use semantic search, fallback to OR search if semgrep unavailable
93
+ mode: "auto"
69
94
  })
70
95
 
71
96
  // ✅ FOR DEBUGGING - Verbose mode includes full result arrays
@@ -83,10 +108,11 @@ bob.code.search({
83
108
  - **Output format**: Scored `results` array with relevance scores
84
109
 
85
110
  **Query Pattern Notes:**
111
+ - **Structural queries**: Patterns like "find references to X", "show dependencies", "find circular dependencies" auto-route to AST-based analysis (TypeScript/JavaScript only)
86
112
  - **Single/two words**: Treated as lexical patterns (exact match or regex)
87
113
  - **Three or more words**: Automatically routed to semantic search in auto mode for architect/debugger/reviewer phases
88
114
  - **Semantic search unavailable**: Falls back to lexical OR search (matches any word)
89
- - **Force lexical**: Use `mode: "lexical"` for exact phrase matching
115
+ - **Force modes**: Use `mode: "lexical"`, `mode: "semantic"`, or `mode: "structural"` for explicit routing
90
116
 
91
117
  **Advanced Options:**
92
118
  - `maxHits`: Override default 30 (e.g., maxHits: 50 for broader search)
package/README.md CHANGED
@@ -53,7 +53,7 @@ That's what Bob's Workshop does.
53
53
  🔄 **Mode Switching Execution** — Claude Code switches modes (orchestrator → architect → engineer → debugger → reviewer) within a single conversation - no agent delegation
54
54
  🧱 **Role-based Intelligence** — Each mode has specialized prompts and tools for architecture, implementation, debugging, or review
55
55
  🧠 **Human-in-the-loop Questions** — Bob never assumes; he clarifies until 95% confident
56
- 🔍 **Phase-aware Search** — Research grounded in actual code via hybrid search (ripgrep + semgrep) with role-specific analysis rules
56
+ 🔍 **Hybrid Search (3 Engines)** — Intelligent search combining lexical (ripgrep), semantic (semgrep), and structural (AST-based) analysis with phase-aware routing
57
57
  📝 **Traceable Workflows** — Every action logged within the manual using bob.manual.update (single source of truth)
58
58
  📊 **Visual Dashboard** — Real-time progress, manual state, logs, and diffs — dashboard reads SPEC files directly
59
59
  🔧 **Reliable Git Operations** — Industry-standard practices for handling complex filenames and repository states
@@ -203,7 +203,7 @@ See the documentation for advanced setup and configuration options.
203
203
  | --------------------------------- | ----------------------------------------------- |
204
204
  | 🧭 `bob.workshop` | Problem classifier — analyzes request and returns which mode to switch to |
205
205
  | 🧱 `bob.manual.create` / `update` / `get` / `list` | Manage manual JSON files (create, update sections, retrieve, list all) |
206
- | 🔍 `bob.code.search` | Phase-aware hybrid lexical + semantic code search (architect/engineer/debugger/reviewer modes) |
206
+ | 🔍 `bob.code.search` | 3-engine hybrid search: lexical (ripgrep), semantic (semgrep), structural (AST-based). Auto-routes based on query type and phase (architect/engineer/debugger/reviewer) |
207
207
  | ✅ `bob.validate.changes` | Verify changes match manual expectations |
208
208
  | 📊 `bob.dashboard.launch` | Launch web dashboard on port 4577 (reads SPEC files directly) |
209
209
  | 🌳 `bob.worktree.debug` | Advanced worktree maintenance (repair, cleanup, validate, status) |
package/dist/index.js CHANGED
@@ -613,11 +613,11 @@ Orchestrator → Architect → Engineer → Debugger → Reviewer
613
613
  }));
614
614
  // REMOVED: Old search tools - use bob.code.search instead
615
615
  server.registerTool("bob.code.search", {
616
- title: "🔧 Unified lexical + semantic search",
617
- description: "🔧 Hybrid search combining ripgrep (lexical) and semgrep (semantic) for comprehensive code search. Primary search tool with phase-aware execution and normalized outputs.",
616
+ title: "🔧 Unified lexical + semantic + structural search",
617
+ description: "🔧 Hybrid search combining ripgrep (lexical), semgrep (semantic), and AST-based (structural) for comprehensive code search. Primary search tool with phase-aware execution and normalized outputs.",
618
618
  inputSchema: {
619
- query: z.string().describe("Search query to find in codebase"),
620
- mode: z.enum(["lexical", "semantic", "auto"]).optional().default("auto").describe("Search mode: lexical (ripgrep only), semantic (semgrep only), or auto (both with smart scoping)"),
619
+ query: z.string().describe("Search query to find in codebase. Structural queries like 'find references to X', 'show dependencies' use AST analysis."),
620
+ mode: z.enum(["lexical", "semantic", "structural", "auto"]).optional().default("auto").describe("Search mode: lexical (ripgrep), semantic (semgrep), structural (AST-based), or auto (intelligent routing)"),
621
621
  phase: z.enum(["architect", "engineer", "debugger", "reviewer"]).optional().describe("Caller phase for phase-aware Semgrep rule selection"),
622
622
  path: z.string().optional().describe("Root path or subdirectory to search (optional)"),
623
623
  includeHidden: z.boolean().optional().default(false).describe("Include hidden/ignored files (equivalent to rg -uuu)"),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,12 @@ TOOLCHAIN YOU CAN USE:
28
28
  - bob.manual.get(input) // retrieve a specific manual by ID
29
29
 
30
30
  • searchTools:
31
- - bob.code.search(input) // unified lexical + semantic search with phase: "architect" for architecture analysis rules
31
+ - bob.code.search(input) // unified lexical + semantic + structural search with phase: "architect" for architecture analysis
32
+ Examples:
33
+ - Dependency analysis: bob.code.search({ query: "show dependencies for src/api/users.ts", phase: "architect" })
34
+ - Circular dependency detection: bob.code.search({ query: "find circular dependencies", phase: "architect" })
35
+ - Architecture analysis: bob.code.search({ query: "check architecture", phase: "architect" })
36
+ - Symbol references: bob.code.search({ query: "find references to UserService", phase: "architect" })
32
37
 
33
38
  • dashboardTools:
34
39
  - bob.dashboard.launch() // launch visual dashboard on port 4577
@@ -1 +1 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/prompts/architect.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqN/B,CAAC"}
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/prompts/architect.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0N/B,CAAC"}
@@ -19,6 +19,11 @@ GOAL:
19
19
  TOOLCHAIN YOU CAN USE:
20
20
  • searchTools:
21
21
  - bob.code.search(input) // ⚠️ MANDATORY unified search with phase: "debugger" for bug detection, security analysis, and correctness rules
22
+ Examples:
23
+ - Find function references: bob.code.search({ query: "find references to handlePayment", phase: "debugger" })
24
+ - Trace call graph: bob.code.search({ query: "what calls processOrder", phase: "debugger" })
25
+ - Check architecture: bob.code.search({ query: "find circular dependencies", phase: "debugger" })
26
+ - Find definition: bob.code.search({ query: "where is validateToken defined", phase: "debugger" })
22
27
 
23
28
  • specTools:
24
29
  - bob.manual.get(input) // retrieve a specific manual by ID
@@ -1 +1 @@
1
- {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/prompts/debugger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyP9B,CAAC"}
1
+ {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/prompts/debugger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8P9B,CAAC"}
@@ -23,7 +23,12 @@ TOOLCHAIN YOU CAN USE:
23
23
  - bob.manual.update(input) // update manual sections, logs, or state
24
24
 
25
25
  • searchTools:
26
- - bob.code.search(input) // unified lexical + semantic search with phase: "engineer" for general patterns and lexical focus
26
+ - bob.code.search(input) // unified lexical + semantic + structural search with phase: "engineer" for implementation
27
+ Examples:
28
+ - Find symbol references: bob.code.search({ query: "find references to calculateTotal", phase: "engineer" })
29
+ - Go to definition: bob.code.search({ query: "where is UserService defined", phase: "engineer" })
30
+ - Find unused exports: bob.code.search({ query: "find unused exports", phase: "engineer" })
31
+ - Check dependencies: bob.code.search({ query: "show dependencies for src/utils/auth.ts", phase: "engineer" })
27
32
 
28
33
  • workflowTools:
29
34
  - bob.workflow.start(input) // create manual + worktree + launch dashboard (use if worktree missing)
@@ -1 +1 @@
1
- {"version":3,"file":"engineer.js","sourceRoot":"","sources":["../../src/prompts/engineer.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiP9B,CAAC"}
1
+ {"version":3,"file":"engineer.js","sourceRoot":"","sources":["../../src/prompts/engineer.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsP9B,CAAC"}
@@ -23,7 +23,12 @@ TOOLCHAIN YOU CAN USE:
23
23
  - bob.manual.get(input) // retrieve a specific manual by ID
24
24
 
25
25
  • searchTools:
26
- - bob.code.search(input) // unified lexical + semantic search with phase: "reviewer" for vulnerability detection, quality analysis, and performance issues
26
+ - bob.code.search(input) // unified lexical + semantic + structural search with phase: "reviewer" for vulnerability detection, quality analysis, and performance issues
27
+ Examples:
28
+ - Check dependencies: bob.code.search({ query: "show dependencies for src/api/auth.ts", phase: "reviewer" })
29
+ - Find unused code: bob.code.search({ query: "find unused exports", phase: "reviewer" })
30
+ - Analyze architecture: bob.code.search({ query: "check architecture", phase: "reviewer" })
31
+ - Find references: bob.code.search({ query: "find references to SecurityManager", phase: "reviewer" })
27
32
 
28
33
  • dashboardTools:
29
34
  - bob.dashboard.launch() // launch visual dashboard on port 4577
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/prompts/reviewer.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyR9B,CAAC"}
1
+ {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/prompts/reviewer.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8R9B,CAAC"}
@@ -3,9 +3,15 @@ import { exec, spawn } from "child_process";
3
3
  import { promisify } from "util";
4
4
  import { z } from "zod";
5
5
  import fs from "fs-extra";
6
+ import path from "path";
7
+ import { fileURLToPath } from "url";
6
8
  import { searchCache } from "./searchCache.js";
7
9
  import { SemgrepPatternGenerator } from "./semgrep-patterns.js";
10
+ import { StructuralSearchOrchestrator } from "./structural/index.js";
8
11
  const execAsync = promisify(exec);
12
+ // ES module __dirname equivalent
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
9
15
  // Tool-specific exit code semantics
10
16
  const EXIT_CODE_SEMANTICS = {
11
17
  'rg': { 0: 'success', 1: 'no_matches', 2: 'error' },
@@ -76,32 +82,67 @@ function spawnAsync(command, args, options = {}) {
76
82
  });
77
83
  });
78
84
  }
79
- // Simplified tool path finder based on successful MCP implementations
85
+ // Cross-platform tool path finder with multiple fallback strategies
80
86
  async function findToolPath(toolName) {
81
- // Research shows successful MCP servers use simple PATH-based discovery
82
- // Try system PATH first, then fallback to known locations
87
+ console.log(`[TOOL PATH] Finding path for: ${toolName}`);
88
+ // Strategy 1: Try system PATH first (most portable)
83
89
  try {
84
- // Test if tool is in PATH (like successful MCP implementations do)
85
90
  await execAsync(`${toolName} --version`, { timeout: 3000 });
86
- return toolName; // Tool found in PATH
91
+ console.log(`[TOOL PATH] Found ${toolName} in system PATH`);
92
+ return toolName;
87
93
  }
88
94
  catch (error) {
89
- // Fallback to specific locations only if PATH fails
90
- if (toolName === 'rg') {
91
- // Claude Code provides rg, try that location
92
- const claudeRg = `/Users/${process.env.USER}/.claude/local/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg`;
95
+ console.log(`[TOOL PATH] ${toolName} not in system PATH, trying fallbacks`);
96
+ }
97
+ // Strategy 2: Try npm packages in current project
98
+ try {
99
+ const projectPath = path.resolve(process.cwd(), `node_modules/.bin/${toolName}`);
100
+ if (await fs.pathExists(projectPath)) {
101
+ await execAsync(`${projectPath} --version`, { timeout: 3000 });
102
+ console.log(`[TOOL PATH] Found ${toolName} in project node_modules/.bin`);
103
+ return projectPath;
104
+ }
105
+ }
106
+ catch (error) {
107
+ console.log(`[TOOL PATH] ${toolName} not in project node_modules/.bin`);
108
+ }
109
+ // Strategy 3: Try npm packages in bobs-workshop directory
110
+ try {
111
+ const bobsPath = path.resolve(__dirname, `../../node_modules/.bin/${toolName}`);
112
+ if (await fs.pathExists(bobsPath)) {
113
+ await execAsync(`${bobsPath} --version`, { timeout: 3000 });
114
+ console.log(`[TOOL PATH] Found ${toolName} in bobs-workshop node_modules/.bin`);
115
+ return bobsPath;
116
+ }
117
+ }
118
+ catch (error) {
119
+ console.log(`[TOOL PATH] ${toolName} not in bobs-workshop node_modules/.bin`);
120
+ }
121
+ // Strategy 4: Tool-specific fallback paths
122
+ if (toolName === 'rg') {
123
+ // Try @lvce-editor/ripgrep package
124
+ const rgPaths = [
125
+ path.resolve(process.cwd(), 'node_modules/@lvce-editor/ripgrep/bin/rg'),
126
+ path.resolve(__dirname, '../../node_modules/@lvce-editor/ripgrep/bin/rg'),
127
+ // Claude Code location as last resort
128
+ `/Users/${process.env.USER}/.claude/local/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/arm64-darwin/rg`
129
+ ];
130
+ for (const rgPath of rgPaths) {
93
131
  try {
94
- await execAsync(`${claudeRg} --version`, { timeout: 3000 });
95
- return claudeRg;
132
+ if (await fs.pathExists(rgPath)) {
133
+ await execAsync(`${rgPath} --version`, { timeout: 3000 });
134
+ console.log(`[TOOL PATH] Found ripgrep at: ${rgPath}`);
135
+ return rgPath;
136
+ }
96
137
  }
97
- catch (e) {
98
- // Final fallback
99
- return 'rg';
138
+ catch (error) {
139
+ console.log(`[TOOL PATH] ripgrep not found at: ${rgPath}`);
100
140
  }
101
141
  }
102
- // For semgrep and others, just return the tool name (PATH should work after installation)
103
- return toolName;
104
142
  }
143
+ // Strategy 5: Final fallback with warning
144
+ console.log(`[TOOL PATH] Warning: ${toolName} not found, using system fallback`);
145
+ return toolName;
105
146
  }
106
147
  export const FileSearchInput = z.object({
107
148
  query: z.string(),
@@ -175,8 +216,8 @@ export const EnhancedFileSearchInput = z.object({
175
216
  });
176
217
  // Hybrid Search schemas - unified entry point for lexical + semantic search
177
218
  export const HybridSearchInput = z.object({
178
- query: z.string().describe("Search query to find in codebase. Multi-word queries (3+ words) are automatically routed to semantic search in auto mode for better conceptual matching. For exact phrases, use fewer words or specify mode=lexical."),
179
- mode: z.enum(["lexical", "semantic", "auto"]).optional().default("auto").describe("Search mode: lexical (ripgrep), semantic (semgrep), or auto (intelligent routing based on query). Auto mode uses semantic for multi-word conceptual queries and falls back to lexical OR search if semgrep unavailable."),
219
+ query: z.string().describe("Search query to find in codebase. Multi-word queries (3+ words) are automatically routed to semantic search in auto mode for better conceptual matching. Structural queries (e.g., 'find references to X', 'show dependencies') use AST-based analysis. For exact phrases, use fewer words or specify mode=lexical."),
220
+ mode: z.enum(["lexical", "semantic", "structural", "auto"]).optional().default("auto").describe("Search mode: lexical (ripgrep), semantic (semgrep), structural (AST-based), or auto (intelligent routing based on query). Auto mode uses semantic for multi-word conceptual queries, structural for symbol/dependency queries, and falls back to lexical OR search if tools unavailable."),
180
221
  phase: z.enum(["architect", "engineer", "debugger", "reviewer"]).optional().describe("Caller phase for phase-aware Semgrep rule selection"),
181
222
  path: z.string().optional().describe("Root path or subdirectory to search (optional)"),
182
223
  includeHidden: z.boolean().optional().default(false).describe("Include hidden/ignored files (equivalent to rg -uuu)"),
@@ -595,6 +636,58 @@ export async function hybridSearchHandler(input) {
595
636
  const startTime = Date.now();
596
637
  const errors = [];
597
638
  console.log('[HYBRID DEBUG] Hybrid search started with input:', JSON.stringify(validated, null, 2));
639
+ // Phase 0: Structural Search Detection (NEW)
640
+ const normalized = validated.query.toLowerCase();
641
+ const isStructuralQuery = (normalized.match(/find references (to|for|of)\s+\w+/) ||
642
+ normalized.match(/show (all )?usages? (of|for)\s+\w+/) ||
643
+ normalized.match(/go to definition (of|for)\s+\w+/) ||
644
+ normalized.match(/where is \w+ defined/) ||
645
+ normalized.match(/show dependencies (for|of)\s+/) ||
646
+ normalized.match(/what does .+ import/) ||
647
+ normalized.match(/dependencies (of|for)\s+/) ||
648
+ normalized.match(/find (circular|architectural|unused) (dependencies|issues|exports)/) ||
649
+ normalized.match(/check architecture/) ||
650
+ normalized.match(/analyze (architecture|structure)/) ||
651
+ normalized.match(/what calls \w+/) ||
652
+ normalized.match(/call graph/));
653
+ if (validated.mode === 'structural' || (validated.mode === 'auto' && isStructuralQuery)) {
654
+ try {
655
+ console.log('[HYBRID DEBUG] Routing to structural search');
656
+ const orchestrator = new StructuralSearchOrchestrator();
657
+ const structuralResults = await orchestrator.search(validated.query, {
658
+ scope: validated.path || process.cwd(),
659
+ maxResults: validated.maxHits,
660
+ phase: validated.phase,
661
+ includeDefinition: true
662
+ });
663
+ // Format structural results to match HybridSearchOutput schema
664
+ const results = structuralResults.map(result => ({
665
+ file: result.file,
666
+ line: result.line,
667
+ text: result.context || `${result.symbol} (${result.kind})`,
668
+ match: result.symbol,
669
+ relevance: result.relevance || 1.0,
670
+ source: 'structural'
671
+ }));
672
+ const output = {
673
+ summary: `Found ${structuralResults.length} structural match${structuralResults.length !== 1 ? 'es' : ''} using AST analysis`,
674
+ results,
675
+ totalHits: structuralResults.length,
676
+ rgHits: 0,
677
+ semgrepHits: 0,
678
+ structuralHits: structuralResults.length,
679
+ durationMs: Date.now() - startTime,
680
+ interpretation: `Structural search: AST-based symbol analysis for "${validated.query}"`
681
+ };
682
+ searchCache.set(validated, output);
683
+ return output;
684
+ }
685
+ catch (error) {
686
+ console.error('[HYBRID DEBUG] Structural search failed:', error);
687
+ errors.push(`⚠️ Structural search failed: ${error instanceof Error ? error.message : String(error)}`);
688
+ // Fall through to lexical/semantic search
689
+ }
690
+ }
598
691
  // Smart query analysis for auto mode
599
692
  const queryWords = validated.query.trim().split(/\s+/).filter(w => w.length > 0);
600
693
  const isMultiWordQuery = queryWords.length >= 3;