From 95377789d5d65b98a79add8071650b18059c6da4 Mon Sep 17 00:00:00 2001 From: Christian Gunderman Date: Wed, 18 Feb 2026 16:30:24 +0000 Subject: [PATCH] Tune. --- packages/core/src/tools/grep.ts | 7 ++++--- packages/core/src/tools/ripGrep.ts | 9 +++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/core/src/tools/grep.ts b/packages/core/src/tools/grep.ts index 6e6a73af96..4a1bc2f5e0 100644 --- a/packages/core/src/tools/grep.ts +++ b/packages/core/src/tools/grep.ts @@ -311,7 +311,8 @@ class GrepToolInvocation extends BaseToolInvocation< llmContent += `:\n---\n`; - if (matchCount === 1 && matchCount > 0 && !this.params.names_only) { + if (matchCount >= 1 && matchCount <= 3 && !this.params.names_only) { + const contextBudget = matchCount === 1 ? 50 : 15; for (const filePath in matchesByFile) { const fileMatches = matchesByFile[filePath]; let fileLines: string[] | null = null; @@ -332,10 +333,10 @@ class GrepToolInvocation extends BaseToolInvocation< for (const match of fileMatches) { if (fileLines) { - const startLine = Math.max(0, match.lineNumber - 1 - 50); + const startLine = Math.max(0, match.lineNumber - 1 - contextBudget); const endLine = Math.min( fileLines.length, - match.lineNumber - 1 + 50 + 1, + match.lineNumber - 1 + contextBudget + 1, ); const contextLines = fileLines.slice(startLine, endLine); diff --git a/packages/core/src/tools/ripGrep.ts b/packages/core/src/tools/ripGrep.ts index aff76524df..6b6738584b 100644 --- a/packages/core/src/tools/ripGrep.ts +++ b/packages/core/src/tools/ripGrep.ts @@ -313,13 +313,14 @@ class GrepToolInvocation extends BaseToolInvocation< // Greedy Grep: If match count is low and no context was requested, automatically return context. if ( - matchCount === 1 && - matchCount > 0 && + matchCount >= 1 && + matchCount <= 3 && !this.params.names_only && !this.params.context && !this.params.before && !this.params.after ) { + const contextLines = matchCount === 1 ? 50 : 15; for (const filePath in matchesByFile) { const fileMatches = matchesByFile[filePath]; let fileLines: string[] | null = null; @@ -340,10 +341,10 @@ class GrepToolInvocation extends BaseToolInvocation< const newFileMatches: GrepMatch[] = []; const seenLines = new Set(); for (const match of fileMatches) { - const startLine = Math.max(0, match.lineNumber - 1 - 50); + const startLine = Math.max(0, match.lineNumber - 1 - contextLines); const endLine = Math.min( fileLines.length, - match.lineNumber - 1 + 50 + 1, + match.lineNumber - 1 + contextLines + 1, ); for (let i = startLine; i < endLine; i++) { if (!seenLines.has(i + 1)) {