diff --git a/packages/shared/src/open-swe/tools.ts b/packages/shared/src/open-swe/tools.ts index 352d2c94..315c53fd 100644 --- a/packages/shared/src/open-swe/tools.ts +++ b/packages/shared/src/open-swe/tools.ts @@ -146,10 +146,29 @@ export type RipgrepCommand = z.infer; export function formatRgCommand(cmd: RipgrepCommand): string[] { const args = ["rg"]; + // Always include these flags + const requiredFlags = ["--color", "never", "--line-number", "--heading"]; + + // Add user-provided flags, ensuring we don't duplicate the required ones if (cmd.flags) { - args.push(...cmd.flags); + // Filter out any flags that would duplicate our required flags + const filteredFlags = cmd.flags.filter((flag) => { + // Check for exact matches or flags that start with our required prefixes + return ( + !requiredFlags.includes(flag) && + !flag.startsWith("--color=") && + flag !== "--line-number" && + flag !== "-n" && + flag !== "--heading" + ); + }); + + args.push(...filteredFlags); } + // Add the required flags + args.push(...requiredFlags); + if (cmd.pattern) { args.push(cmd.pattern); }