fix(security): recognize Venice-style claude-opus-45 as top-tier model

The security audit was incorrectly flagging venice/claude-opus-45 as
'Below Claude 4.5' because the regex expected -4-5 (with dash) but
Venice uses -45 (without dash between 4 and 5).

Updated isClaude45OrHigher() regex to match both formats.
Added test case to prevent regression.
This commit is contained in:
jonisjongithub
2026-01-27 12:20:40 -08:00
committed by Jon Shapiro
parent c8063bdcd8
commit 60873a1ed1
2 changed files with 21 additions and 1 deletions

View File

@@ -311,7 +311,10 @@ function isClaudeModel(id: string): boolean {
}
function isClaude45OrHigher(id: string): boolean {
return /\bclaude-[^\s/]*?(?:-4-5\b|4\.5\b)/i.test(id);
// Match claude-*-4-5, claude-*-45, claude-*4.5, or opus-4-5/opus-45 variants
// Examples that should match:
// claude-opus-4-5, claude-opus-45, claude-4.5, venice/claude-opus-45
return /\bclaude-[^\s/]*?(?:-4-?5\b|4\.5\b)/i.test(id);
}
export function collectModelHygieneFindings(cfg: ClawdbotConfig): SecurityAuditFinding[] {