feat: Update Claude model references from v3 to v4 (fixes issue #118) (#119)

* feat: Update Claude model references from v3 to v4

- Update model configurations from claude-3-opus to claude-4-opus
- Update model configurations from claude-3-sonnet to claude-4-sonnet
- Maintain backward compatibility through existing aliases (opus, sonnet, claude)
- Update provider registry preferred models list
- Update all test cases and assertions to reflect new model names
- Update documentation and examples consistently across all files
- Add Claude 4 model support while preserving existing functionality

Files modified: 15 (config, docs, providers, tests, tools)
Pattern: Systematic claude-3-* → claude-4-* model reference migration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* PR feedback: changed anthropic/claude-4-opus -> anthropic/claude-opus-4 and anthropic/claude-4-haiku -> anthropic/claude-3.5-haiku

* changed anthropic/claude-4-sonnet -> anthropic/claude-sonnet-4

* PR feedback removed specific model from test mock

* PR feedback removed base.py

---------

Co-authored-by: Omry Nachman <omry@wix.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
omryn-vera
2025-06-23 11:57:13 +02:00
committed by GitHub
parent 8262d47c1e
commit 4ae0344b14
13 changed files with 63 additions and 63 deletions

View File

@@ -74,9 +74,9 @@ class TestOpenRouterModelRegistry:
# Test various aliases
test_cases = [
("opus", "anthropic/claude-3-opus"),
("OPUS", "anthropic/claude-3-opus"), # Case insensitive
("claude", "anthropic/claude-3-sonnet"),
("opus", "anthropic/claude-opus-4"),
("OPUS", "anthropic/claude-opus-4"), # Case insensitive
("claude", "anthropic/claude-sonnet-4"),
("o3", "openai/o3"),
("deepseek", "deepseek/deepseek-r1-0528"),
("mistral", "mistralai/mistral-large-2411"),
@@ -92,9 +92,9 @@ class TestOpenRouterModelRegistry:
registry = OpenRouterModelRegistry()
# Should be able to look up by full model name
config = registry.resolve("anthropic/claude-3-opus")
config = registry.resolve("anthropic/claude-opus-4")
assert config is not None
assert config.model_name == "anthropic/claude-3-opus"
assert config.model_name == "anthropic/claude-opus-4"
config = registry.resolve("openai/o3")
assert config is not None
@@ -118,7 +118,7 @@ class TestOpenRouterModelRegistry:
caps = config.to_capabilities()
assert caps.provider == ProviderType.OPENROUTER
assert caps.model_name == "anthropic/claude-3-opus"
assert caps.model_name == "anthropic/claude-opus-4"
assert caps.friendly_name == "OpenRouter"
assert caps.context_window == 200000
assert not caps.supports_extended_thinking