fix(policy): remove unnecessary escapeRegex from pattern builders

- Removed escapeRegex wrapping in buildFilePathArgsPattern and buildPatternArgsPattern as per review comments.
- Removed the comment documenting the previous implementation in buildFilePathArgsPattern.
- Confirmed autoAddToPolicyByDefault is already set to false.
This commit is contained in:
Spencer
2026-03-10 19:46:14 +00:00
parent 1b69637032
commit b24c9b838c
2 changed files with 3 additions and 7 deletions

View File

@@ -97,11 +97,8 @@ export function buildArgsPatterns(
* @returns A regex string that matches "file_path":"<path>" in a JSON string.
*/
export function buildFilePathArgsPattern(filePath: string): string {
// JSON.stringify safely encodes the path (handling quotes, backslashes, etc)
// and wraps it in double quotes. We simply prepend the key name and escape
// the entire sequence for Regex matching without any slicing.
const encodedPath = JSON.stringify(filePath);
return escapeRegex(`"file_path":${encodedPath}`);
return `"file_path":${encodedPath}`;
}
/**
@@ -113,5 +110,5 @@ export function buildFilePathArgsPattern(filePath: string): string {
*/
export function buildPatternArgsPattern(pattern: string): string {
const encodedPattern = JSON.stringify(pattern);
return escapeRegex(`"pattern":${encodedPattern}`);
return `"pattern":${encodedPattern}`;
}

View File

@@ -21,7 +21,6 @@ import {
type SerializableConfirmationDetails,
} from '../confirmation-bus/types.js';
import { ApprovalMode, PolicyDecision } from '../policy/types.js';
import { escapeRegex } from '../policy/utils.js';
import {
ToolConfirmationOutcome,
type AnyDeclarativeTool,
@@ -618,7 +617,7 @@ describe('policy.ts', () => {
expect(mockMessageBus.publish).toHaveBeenCalledWith(
expect.objectContaining({
toolName: 'write_file',
argsPattern: escapeRegex('"file_path":"src/foo.ts"'),
argsPattern: '"file_path":"src/foo.ts"',
}),
);
});