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
+17
View File
@@ -687,6 +687,23 @@ describe("security audit", () => {
);
});
it("does not warn on Venice-style opus-45 model names", async () => {
// Venice uses "claude-opus-45" format (no dash between 4 and 5)
const cfg: ClawdbotConfig = {
agents: { defaults: { model: { primary: "venice/claude-opus-45" } } },
};
const res = await runSecurityAudit({
config: cfg,
includeFilesystem: false,
includeChannelSecurity: false,
});
// Should NOT contain weak_tier warning for opus-45
const weakTierFinding = res.findings.find((f) => f.checkId === "models.weak_tier");
expect(weakTierFinding).toBeUndefined();
});
it("warns when hooks token looks short", async () => {
const cfg: ClawdbotConfig = {
hooks: { enabled: true, token: "short" },