From ba273aaf0675244806899b22a4d811e8cba1253c Mon Sep 17 00:00:00 2001 From: dtzp555-max Date: Mon, 20 Apr 2026 15:40:57 +1000 Subject: [PATCH] feat(models): add Claude Opus 4.7 to model selection (#27) Adds claude-opus-4-7 as an available model and promotes the short aliases 'opus' and 'claude-opus-4' to point at 4.7 (following the same 'latest under the short alias' pattern as sonnet/haiku). Explicit claude-opus-4-6 remains available for pinned usage. Claude Code alignment evidence (binary-era; see note): - Anthropic /v1/models (2026-04-20): returns id='claude-opus-4-7', display_name='Claude Opus 4.7', 1M input / 128K output, created_at=2026-04-14. - Claude Code v2.1.114 /home/opc/.npm-global/lib/node_modules/ @anthropic-ai/claude-code/bin/claude.exe strings table contains 'claude-opus-4-7'. - Live probe: 'claude -p --model claude-opus-4-7' returns a valid response (verified 2026-04-20). Note on ALIGNMENT.md grep rule: Claude Code 2.1.90+ ships a native binary (claude.exe) instead of cli.js JavaScript. The grep-based verification in ALIGNMENT.md Rule 1 is substituted here with (a) binary 'strings' extraction and (b) Anthropic /v1/models as an independent authoritative source. A follow-up constitution amendment will codify the binary-era verification procedure. Co-authored-by: Oracle Public Cloud User Co-authored-by: Claude Opus 4.7 --- server.mjs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server.mjs b/server.mjs index 53df99b..37f988c 100644 --- a/server.mjs +++ b/server.mjs @@ -146,18 +146,20 @@ const _BREAKER_DISABLED_NOTE = "disabled"; // ── Model mapping ─────────────────────────────────────────────────────── // Maps request model IDs and aliases to canonical claude CLI model IDs. const MODEL_MAP = { + "claude-opus-4-7": "claude-opus-4-7", "claude-opus-4-6": "claude-opus-4-6", "claude-sonnet-4-6": "claude-sonnet-4-6", "claude-haiku-4-5-20251001": "claude-haiku-4-5-20251001", - "claude-opus-4": "claude-opus-4-6", + "claude-opus-4": "claude-opus-4-7", "claude-haiku-4": "claude-haiku-4-5-20251001", "claude-haiku-4-5": "claude-haiku-4-5-20251001", - "opus": "claude-opus-4-6", + "opus": "claude-opus-4-7", "sonnet": "claude-sonnet-4-6", "haiku": "claude-haiku-4-5-20251001", }; const MODELS = [ + { id: "claude-opus-4-7", name: "Claude Opus 4.7" }, { id: "claude-opus-4-6", name: "Claude Opus 4.6" }, { id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" }, { id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5" },