bobs-workshop 0.2.7 → 0.3.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 (36) 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 +82 -75
  14. package/dist/tools/searchTools.js.map +1 -1
  15. package/dist/tools/semgrep-patterns.js +296 -0
  16. package/dist/tools/semgrep-patterns.js.map +1 -0
  17. package/dist/tools/structural/__tests__/orchestrator.test.js +61 -0
  18. package/dist/tools/structural/__tests__/orchestrator.test.js.map +1 -0
  19. package/dist/tools/structural/cache.js +226 -0
  20. package/dist/tools/structural/cache.js.map +1 -0
  21. package/dist/tools/structural/engines/python/index.js +118 -0
  22. package/dist/tools/structural/engines/python/index.js.map +1 -0
  23. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +97 -0
  24. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +1 -0
  25. package/dist/tools/structural/engines/typescript/analyzer.js +433 -0
  26. package/dist/tools/structural/engines/typescript/analyzer.js.map +1 -0
  27. package/dist/tools/structural/engines/typescript/index.js +381 -0
  28. package/dist/tools/structural/engines/typescript/index.js.map +1 -0
  29. package/dist/tools/structural/engines/typescript/utils.js +279 -0
  30. package/dist/tools/structural/engines/typescript/utils.js.map +1 -0
  31. package/dist/tools/structural/index.js +248 -0
  32. package/dist/tools/structural/index.js.map +1 -0
  33. package/dist/tools/structural/types.js +18 -0
  34. package/dist/tools/structural/types.js.map +1 -0
  35. package/package.json +5 -1
  36. 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"}
@@ -4,6 +4,8 @@ import { promisify } from "util";
4
4
  import { z } from "zod";
5
5
  import fs from "fs-extra";
6
6
  import { searchCache } from "./searchCache.js";
7
+ import { SemgrepPatternGenerator } from "./semgrep-patterns.js";
8
+ import { StructuralSearchOrchestrator } from "./structural/index.js";
7
9
  const execAsync = promisify(exec);
8
10
  // Tool-specific exit code semantics
9
11
  const EXIT_CODE_SEMANTICS = {
@@ -174,8 +176,8 @@ export const EnhancedFileSearchInput = z.object({
174
176
  });
175
177
  // Hybrid Search schemas - unified entry point for lexical + semantic search
176
178
  export const HybridSearchInput = z.object({
177
- 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."),
178
- 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."),
179
+ 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."),
180
+ 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."),
179
181
  phase: z.enum(["architect", "engineer", "debugger", "reviewer"]).optional().describe("Caller phase for phase-aware Semgrep rule selection"),
180
182
  path: z.string().optional().describe("Root path or subdirectory to search (optional)"),
181
183
  includeHidden: z.boolean().optional().default(false).describe("Include hidden/ignored files (equivalent to rg -uuu)"),
@@ -594,6 +596,58 @@ export async function hybridSearchHandler(input) {
594
596
  const startTime = Date.now();
595
597
  const errors = [];
596
598
  console.log('[HYBRID DEBUG] Hybrid search started with input:', JSON.stringify(validated, null, 2));
599
+ // Phase 0: Structural Search Detection (NEW)
600
+ const normalized = validated.query.toLowerCase();
601
+ const isStructuralQuery = (normalized.match(/find references (to|for|of)\s+\w+/) ||
602
+ normalized.match(/show (all )?usages? (of|for)\s+\w+/) ||
603
+ normalized.match(/go to definition (of|for)\s+\w+/) ||
604
+ normalized.match(/where is \w+ defined/) ||
605
+ normalized.match(/show dependencies (for|of)\s+/) ||
606
+ normalized.match(/what does .+ import/) ||
607
+ normalized.match(/dependencies (of|for)\s+/) ||
608
+ normalized.match(/find (circular|architectural|unused) (dependencies|issues|exports)/) ||
609
+ normalized.match(/check architecture/) ||
610
+ normalized.match(/analyze (architecture|structure)/) ||
611
+ normalized.match(/what calls \w+/) ||
612
+ normalized.match(/call graph/));
613
+ if (validated.mode === 'structural' || (validated.mode === 'auto' && isStructuralQuery)) {
614
+ try {
615
+ console.log('[HYBRID DEBUG] Routing to structural search');
616
+ const orchestrator = new StructuralSearchOrchestrator();
617
+ const structuralResults = await orchestrator.search(validated.query, {
618
+ scope: validated.path || process.cwd(),
619
+ maxResults: validated.maxHits,
620
+ phase: validated.phase,
621
+ includeDefinition: true
622
+ });
623
+ // Format structural results to match HybridSearchOutput schema
624
+ const results = structuralResults.map(result => ({
625
+ file: result.file,
626
+ line: result.line,
627
+ text: result.context || `${result.symbol} (${result.kind})`,
628
+ match: result.symbol,
629
+ relevance: result.relevance || 1.0,
630
+ source: 'structural'
631
+ }));
632
+ const output = {
633
+ summary: `Found ${structuralResults.length} structural match${structuralResults.length !== 1 ? 'es' : ''} using AST analysis`,
634
+ results,
635
+ totalHits: structuralResults.length,
636
+ rgHits: 0,
637
+ semgrepHits: 0,
638
+ structuralHits: structuralResults.length,
639
+ durationMs: Date.now() - startTime,
640
+ interpretation: `Structural search: AST-based symbol analysis for "${validated.query}"`
641
+ };
642
+ searchCache.set(validated, output);
643
+ return output;
644
+ }
645
+ catch (error) {
646
+ console.error('[HYBRID DEBUG] Structural search failed:', error);
647
+ errors.push(`⚠️ Structural search failed: ${error instanceof Error ? error.message : String(error)}`);
648
+ // Fall through to lexical/semantic search
649
+ }
650
+ }
597
651
  // Smart query analysis for auto mode
598
652
  const queryWords = validated.query.trim().split(/\s+/).filter(w => w.length > 0);
599
653
  const isMultiWordQuery = queryWords.length >= 3;
@@ -609,8 +663,8 @@ export async function hybridSearchHandler(input) {
609
663
  let rgHits = 0;
610
664
  let semgrepHits = 0;
611
665
  let semgrepFailed = false;
612
- // Phase 1: Run ripgrep for lexical search (unless mode is purely semantic)
613
- if (effectiveMode === "lexical" || (validated.mode === "auto" && effectiveMode !== "semantic")) {
666
+ // Phase 1: Run ripgrep for lexical search (ALWAYS run in auto mode, unless explicit semantic-only)
667
+ if (validated.mode !== "semantic") {
614
668
  try {
615
669
  console.log('[HYBRID DEBUG] Running lexical search with ripgrep');
616
670
  const rgPath = await findToolPath('rg');
@@ -745,78 +799,31 @@ export async function hybridSearchHandler(input) {
745
799
  errors.push(`ripgrep failed: ${errorMsg}${stderr ? ` - ${stderr.trim()}` : ''}`);
746
800
  }
747
801
  }
748
- // Phase 2: Run Semgrep for semantic search (runs independently in auto mode or when routed)
749
- if (effectiveMode === "semantic" || validated.mode === "auto") {
802
+ // Phase 2: Run Semgrep for semantic search (ALWAYS run in auto mode, unless explicit lexical-only)
803
+ if (validated.mode !== "lexical") {
750
804
  try {
751
- console.log('[HYBRID DEBUG] Running semantic search with semgrep');
752
- const semgrepPath = await findToolPath('semgrep');
753
- // Build semgrep command with phase-aware configuration
754
- const semgrepArgs = ['--json', '--no-git-ignore', '--quiet', '--metrics=off'];
755
- // Add phase-aware rule configuration
756
- const phaseRules = getPhaseAwareSemgrepRules(validated.mode, input.phase);
757
- // If no rules available (like engineer phase) or semantic mode, use pattern-based search
758
- if (phaseRules.length === 0 || validated.mode === "semantic") {
759
- // Use a pattern based on the query for semantic analysis
760
- const semanticPattern = `$FUNC(..., ${validated.query}, ...)`;
761
- semgrepArgs.push('--pattern', semanticPattern);
762
- }
763
- else {
764
- // Use phase-aware rules
765
- semgrepArgs.push(...phaseRules);
766
- }
767
- // Determine target files to scan
768
- const targetFiles = [];
769
- // Scope to files from lexical search if available
770
- if (lexicalHits.length > 0 && validated.mode === "auto") {
771
- const uniqueFiles = Array.from(new Set(lexicalHits.map(hit => hit.file)));
772
- console.log('[HYBRID DEBUG] Scoping semgrep to', uniqueFiles.length, 'files from lexical search');
773
- targetFiles.push(...uniqueFiles);
774
- }
775
- else {
776
- // Default to current directory or specified path
777
- targetFiles.push(validated.path || '.');
778
- }
779
- // Add target files to args
780
- semgrepArgs.push(...targetFiles);
781
- // Add language specification ONLY when using pattern-based search (not config rules)
782
- // When using --config, language is already defined in the ruleset
783
- if (phaseRules.length === 0 && validated.fileTypes && validated.fileTypes.length > 0) {
784
- const langMap = {
785
- 'ts': 'typescript',
786
- 'tsx': 'typescript',
787
- 'js': 'javascript',
788
- 'jsx': 'javascript',
789
- 'py': 'python',
790
- 'go': 'go',
791
- 'java': 'java'
792
- };
793
- const lang = validated.fileTypes.map(t => langMap[t] || t)[0];
794
- if (lang) {
795
- semgrepArgs.push('--lang', lang);
796
- }
797
- }
798
- console.log('[HYBRID DEBUG] Semgrep command:', semgrepPath, semgrepArgs.join(' '));
799
- const { stdout: semgrepStdout, stderr: semgrepStderr, exitCode: semgrepExitCode } = await spawnAsync(semgrepPath, semgrepArgs, {
800
- cwd: process.cwd(),
801
- timeout: validated.timeoutMs,
802
- toolName: 'semgrep'
803
- });
804
- if (semgrepStderr) {
805
- console.warn('[HYBRID WARN] Semgrep stderr:', semgrepStderr);
806
- errors.push(`semgrep warning: ${semgrepStderr}`);
807
- }
808
- // exitCode 0 = no findings, exitCode 2 = findings, exitCode 7 = config not available
809
- if (semgrepExitCode === 0 || semgrepExitCode === 2) {
810
- const semgrepOutput = JSON.parse(semgrepStdout || '{"results": []}');
811
- semanticHits = normalizeSemgrepResults(semgrepOutput);
812
- semgrepHits = semanticHits.length;
813
- console.log('[HYBRID DEBUG] Semgrep found', semgrepHits, 'results');
814
- }
815
- else if (semgrepExitCode === 7) {
816
- console.log('[HYBRID DEBUG] Semgrep config rulesets not available (skipping semantic search)');
817
- errors.push(`semgrep: config rulesets not available (continuing with lexical results only)`);
818
- semgrepFailed = true;
819
- }
805
+ console.log('[HYBRID DEBUG] Running semantic search with multi-pattern semgrep');
806
+ // NEW: Use multi-pattern generator instead of broken single pattern
807
+ const patternGenerator = new SemgrepPatternGenerator();
808
+ const projectPath = validated.path || process.cwd();
809
+ const language = patternGenerator.detectLanguageFromProject(projectPath);
810
+ console.log('[HYBRID DEBUG] Detected language:', language);
811
+ // Generate 7 core patterns for the query
812
+ const patterns = patternGenerator.generateCorePatterns(validated.query, language);
813
+ console.log('[HYBRID DEBUG] Generated', patterns.length, 'patterns');
814
+ // Run all patterns in parallel
815
+ const semgrepResults = await patternGenerator.runPatterns(patterns, projectPath, validated.timeoutMs);
816
+ // Normalize results
817
+ semanticHits = semgrepResults.map(result => ({
818
+ file: result.file,
819
+ line: result.line,
820
+ ruleId: result.ruleId,
821
+ message: result.message,
822
+ severity: 'info',
823
+ confidence: 0.8
824
+ }));
825
+ semgrepHits = semanticHits.length;
826
+ console.log('[HYBRID DEBUG] Multi-pattern semgrep found', semgrepHits, 'total results');
820
827
  }
821
828
  catch (error) {
822
829
  console.warn('[HYBRID WARN] Semgrep failed:', error);