Files
oh-my-pi/packages/coding-agent/src/secrets/regex.ts
T
can1357 f399b8e323 fix(coding-agent): fixes for PRs 80, 82, 85
- Parse --full as exact token in /changelog command
- Scope MCP disabled list to discovered servers only
- Guard malformed disabledServers config field
- Parse regex literal /pattern/flags syntax in secret entries
- Prevent infinite loop on zero-length regex matches
- Replace longer plain secrets before shorter prefixes
- Default secrets.enabled to false
2026-02-16 19:23:37 +01:00

22 lines
827 B
TypeScript

/** Add global flag while preserving user-provided flags. */
function enforceGlobalFlag(flags: string): string {
return flags.includes("g") ? flags : `${flags}g`;
}
/** Compile a secret regex entry with global scanning enabled by default. */
export function compileSecretRegex(pattern: string, flags?: string): RegExp {
let resolvedPattern = pattern;
let resolvedFlags = flags ?? "";
// Detect regex literal syntax: /pattern/flags
const literalMatch = /^\/((?:[^\\/]|\\.)*)\/([ gimsuy]*)$/.exec(pattern);
if (literalMatch) {
resolvedPattern = literalMatch[1];
// Merge flags from literal with explicit flags param (deduplicate)
const combined = new Set([...resolvedFlags, ...literalMatch[2]]);
resolvedFlags = [...combined].join("");
}
return new RegExp(resolvedPattern, enforceGlobalFlag(resolvedFlags));
}