batch_analyze
Run a single question against files selected by glob patterns, then aggregate findings into a cross-file summary for multi-file audits.
Instructions
Run the SAME question against a glob of files, then aggregate the findings into one cross-file summary. Use for codebase-wide audits ('any SQL injection under src/**/handlers/*.js?'), per-feature reviews, or pre-merge sweeps. For ONE file, use analyze_file (cheaper). For NL search without a known file set, use explore. Set aggregateResults:false to get raw per-file results instead of the aggregated summary. Read-only: reads every matched file (capped by maxFiles) and makes one LLM call per file (parallel by default). Returns: shape depends on aggregateResults. aggregateResults:true (default): {success, status:'completed', filesAnalyzed, patterns, question, aggregatedSummary, aggregatedFindings:[strings], aggregatedActions:[strings], overallConfidence, perFileResults:[{filePath, summary, findingCount, confidence}], processing_time, tokens_saved}. aggregateResults:false: {success, status:'completed', filesAnalyzed, patterns, question, results:[full per-file analysis objects], processing_time}. Empty pattern match: {success, status:'no_files', message, patterns}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filePatterns | Yes | Glob patterns or file paths (e.g., ["src/**/*.ts", "lib/*.js"]) | |
| question | Yes | Question to ask about each file | |
| options | No |