whosellm 0.2.3__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. {whosellm-0.2.3 → whosellm-0.2.4}/.bumpversion.toml +7 -1
  2. {whosellm-0.2.3 → whosellm-0.2.4}/CHANGELOG.md +1 -0
  3. {whosellm-0.2.3 → whosellm-0.2.4}/PKG-INFO +1 -1
  4. {whosellm-0.2.3 → whosellm-0.2.4}/pyproject.toml +1 -1
  5. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_anthropic.py +88 -0
  6. {whosellm-0.2.3 → whosellm-0.2.4}/uv.lock +1 -1
  7. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/__init__.py +1 -1
  8. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/anthropic.py +44 -0
  9. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/commands/interview.md +0 -0
  10. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/projects/-Users-jqq-PycharmProjects-llmeta/memory/MEMORY.md +0 -0
  11. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/projects/-Users-jqq-PycharmProjects-llmeta/memory/feedback_use_uv.md +0 -0
  12. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/settings.json +0 -0
  13. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/code-review/SKILL.md +0 -0
  14. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/create-skill/SKILL.md +0 -0
  15. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/e2e-metadata/SKILL.md +0 -0
  16. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/evolve/SKILL.md +0 -0
  17. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/fix-review/SKILL.md +0 -0
  18. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/release/SKILL.md +0 -0
  19. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/SKILL.md +0 -0
  20. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/alibaba.md +0 -0
  21. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/anthropic.md +0 -0
  22. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/deepseek.md +0 -0
  23. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/gemini.md +0 -0
  24. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/openai.md +0 -0
  25. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/others.md +0 -0
  26. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/vidu.md +0 -0
  27. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/review-provider-model/providers/zhipu.md +0 -0
  28. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/update-provider-model/SKILL.md +0 -0
  29. {whosellm-0.2.3 → whosellm-0.2.4}/.claude/skills/update-provider-model/testing.md +0 -0
  30. {whosellm-0.2.3 → whosellm-0.2.4}/.coveragerc +0 -0
  31. {whosellm-0.2.3 → whosellm-0.2.4}/.github/workflows/publish.yml +0 -0
  32. {whosellm-0.2.3 → whosellm-0.2.4}/.github/workflows/tests.yml +0 -0
  33. {whosellm-0.2.3 → whosellm-0.2.4}/.gitignore +0 -0
  34. {whosellm-0.2.3 → whosellm-0.2.4}/.windsurf/workflows/addmodel.md +0 -0
  35. {whosellm-0.2.3 → whosellm-0.2.4}/.windsurf/workflows/arch.md +0 -0
  36. {whosellm-0.2.3 → whosellm-0.2.4}/.windsurf/workflows/testllmeta.md +0 -0
  37. {whosellm-0.2.3 → whosellm-0.2.4}/CLAUDE.md +0 -0
  38. {whosellm-0.2.3 → whosellm-0.2.4}/LICENSE +0 -0
  39. {whosellm-0.2.3 → whosellm-0.2.4}/README.md +0 -0
  40. {whosellm-0.2.3 → whosellm-0.2.4}/docs/add_new_model_family.md +0 -0
  41. {whosellm-0.2.3 → whosellm-0.2.4}/docs/refactor_proposal.md +0 -0
  42. {whosellm-0.2.3 → whosellm-0.2.4}/docs/spec_model_family_redesign.md +0 -0
  43. {whosellm-0.2.3 → whosellm-0.2.4}/examples/advanced_usage.py +0 -0
  44. {whosellm-0.2.3 → whosellm-0.2.4}/examples/basic_usage.py +0 -0
  45. {whosellm-0.2.3 → whosellm-0.2.4}/mypy.ini +0 -0
  46. {whosellm-0.2.3 → whosellm-0.2.4}/pytest.ini +0 -0
  47. {whosellm-0.2.3 → whosellm-0.2.4}/ruff.toml +0 -0
  48. {whosellm-0.2.3 → whosellm-0.2.4}/tests/__init__.py +0 -0
  49. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/__init__.py +0 -0
  50. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/conftest.py +0 -0
  51. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/test_anthropic.py +0 -0
  52. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/test_google.py +0 -0
  53. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/test_openai.py +0 -0
  54. {whosellm-0.2.3 → whosellm-0.2.4}/tests/e2e/test_zhipu.py +0 -0
  55. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/__init__.py +0 -0
  56. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/__init__.py +0 -0
  57. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_deepseek.py +0 -0
  58. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_deepseek_tencent.py +0 -0
  59. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_gemini.py +0 -0
  60. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_glm45.py +0 -0
  61. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_glm45v.py +0 -0
  62. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_glm46.py +0 -0
  63. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_glm46v.py +0 -0
  64. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_glm5.py +0 -0
  65. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_gpt3_5.py +0 -0
  66. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_gpt4_1.py +0 -0
  67. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_gpt4o.py +0 -0
  68. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_gpt5.py +0 -0
  69. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_o1.py +0 -0
  70. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_o3.py +0 -0
  71. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_o4.py +0 -0
  72. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_qwen.py +0 -0
  73. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_qwen3_vl_models.py +0 -0
  74. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_qwen_ollama.py +0 -0
  75. {whosellm-0.2.3 → whosellm-0.2.4}/tests/models/families/test_qwen_plus.py +0 -0
  76. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_auto_register.py +0 -0
  77. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_claude_4x_versions.py +0 -0
  78. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_llmeta.py +0 -0
  79. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_model_version.py +0 -0
  80. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_provider.py +0 -0
  81. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_registry_merge.py +0 -0
  82. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_specific_patterns.py +0 -0
  83. {whosellm-0.2.3 → whosellm-0.2.4}/tests/test_variant_priority_config.py +0 -0
  84. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/capabilities.py +0 -0
  85. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/model_version.py +0 -0
  86. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/__init__.py +0 -0
  87. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/base.py +0 -0
  88. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/config.py +0 -0
  89. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/dynamic_enum.py +0 -0
  90. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/__init__.py +0 -0
  91. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/alibaba.py +0 -0
  92. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/deepseek/__init__.py +0 -0
  93. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/deepseek/deepseek_official.py +0 -0
  94. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/deepseek/tencent.py +0 -0
  95. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/gemini.py +0 -0
  96. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/__init__.py +0 -0
  97. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_3_5.py +0 -0
  98. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_4.py +0 -0
  99. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_4_1.py +0 -0
  100. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_4o.py +0 -0
  101. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_5.py +0 -0
  102. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_5_1.py +0 -0
  103. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_5_2.py +0 -0
  104. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_5_3.py +0 -0
  105. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_gpt_5_4.py +0 -0
  106. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_o1.py +0 -0
  107. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_o3.py +0 -0
  108. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/openai/openai_o4.py +0 -0
  109. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/others.py +0 -0
  110. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/vidu.py +0 -0
  111. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/families/zhipu.py +0 -0
  112. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/patterns.py +0 -0
  113. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/models/registry.py +0 -0
  114. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/provider.py +0 -0
  115. {whosellm-0.2.3 → whosellm-0.2.4}/whosellm/py.typed +0 -0
@@ -2,7 +2,7 @@
2
2
  # 文档 / Documentation: https://callowayproject.github.io/bump-my-version/
3
3
 
4
4
  [tool.bumpversion]
5
- current_version = "0.2.3"
5
+ current_version = "0.2.4"
6
6
  parse = """(?x)
7
7
  (?P<major>0|[1-9]\\d*)\\.
8
8
  (?P<minor>0|[1-9]\\d*)\\.
@@ -45,6 +45,12 @@ filename = "whosellm/__init__.py"
45
45
  search = "__version__ = \"{current_version}\""
46
46
  replace = "__version__ = \"{new_version}\""
47
47
 
48
+ # uv.lock 中项目自身的版本号(锚定到 whosellm 包块,避免误改其他依赖的 version)
49
+ [[tool.bumpversion.files]]
50
+ filename = "uv.lock"
51
+ search = "name = \"whosellm\"\nversion = \"{current_version}\""
52
+ replace = "name = \"whosellm\"\nversion = \"{new_version}\""
53
+
48
54
  [tool.bumpversion.parts.pre_l]
49
55
  values = ["a", "b", "rc"]
50
56
 
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
5
5
  ## [0.2.3] - Unreleased
6
6
 
7
7
  ### Added
8
+ - 新增 Claude Mythos-class 模型配置(2026-06-09 发布,官方规格核实):`claude-fable-5`(公开版)、`claude-mythos-5`(Project Glasswing 受邀版,能力同 Fable 5)。均为 1M 上下文、128K 最大输出、结构化输出 + computer use,自适应思考常开。引入全新顶级变体层级,优先级高于 opus(`haiku=0 < sonnet=3 < opus=5 < fable=6 < mythos=7`),因此 `claude-fable-5 > claude-opus-4-8`(版本 5.0 > 4.8)。新增父模式 `claude-{variant}-{major}@{snapshot}` 以支持单版本号模型的 `@` 日期快照形式
8
9
  - 新增 Claude Opus 4.x 模型配置(官方规格核实):`claude-opus-4-8`、`claude-opus-4-7`(1M 上下文,128K 最大输出,结构化输出 + computer use)、`claude-opus-4-5`(200K 上下文,64K 最大输出)
9
10
 
10
11
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: whosellm
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: A unified LLM model version and capability management library
5
5
  Author-email: JQQ <jqq1716@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "whosellm"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  description = "A unified LLM model version and capability management library"
5
5
  authors = [
6
6
  {name = "JQQ", email = "jqq1716@gmail.com"}
@@ -5,6 +5,7 @@ Anthropic Claude 模型家族测试 / Anthropic Claude model family tests
5
5
 
6
6
  import pytest
7
7
 
8
+ from whosellm.model_version import LLMeta
8
9
  from whosellm.models.base import ModelFamily
9
10
  from whosellm.models.registry import get_default_capabilities, get_specific_model_config, match_model_pattern
10
11
  from whosellm.provider import Provider
@@ -108,6 +109,93 @@ class TestClaudeSonnet46:
108
109
  assert matched["_from_specific_model"] == "claude-sonnet-4-6"
109
110
 
110
111
 
112
+ class TestClaudeFable5:
113
+ """Claude Fable 5 测试(Mythos-class,2026-06-09 GA) / Claude Fable 5 tests"""
114
+
115
+ def test_specific_model_config(self):
116
+ """验证 claude-fable-5 配置 / Validate claude-fable-5 config"""
117
+ config = get_specific_model_config("claude-fable-5")
118
+ assert config is not None
119
+ version, variant, capabilities = config
120
+ assert version == "5.0"
121
+ assert variant == "fable"
122
+ assert capabilities is not None
123
+ assert capabilities.supports_vision is True
124
+ assert capabilities.supports_thinking is True
125
+ assert capabilities.supports_function_calling is True
126
+ assert capabilities.supports_streaming is True
127
+ assert capabilities.supports_structured_outputs is True
128
+ assert capabilities.supports_computer_use is True
129
+ assert capabilities.max_tokens == 128000
130
+ assert capabilities.context_window == 1000000
131
+
132
+ def test_pattern_match(self):
133
+ """验证 claude-fable-5 模式匹配 / Validate claude-fable-5 pattern match"""
134
+ matched = match_model_pattern("claude-fable-5")
135
+ assert matched is not None
136
+ assert matched["family"] == ModelFamily.CLAUDE
137
+ assert matched["variant"] == "fable"
138
+ assert matched["provider"] == Provider.ANTHROPIC
139
+
140
+ @pytest.mark.parametrize("model_name", ["claude-fable-5-20260609", "claude-fable-5@20260609"])
141
+ def test_pattern_with_snapshot(self, model_name: str):
142
+ """验证带 snapshot 的解析(- 与 @ 两种格式,版本号不被吞) / Validate snapshot forms keep version 5.0"""
143
+ meta = LLMeta(model_name)
144
+ assert meta.family == ModelFamily.CLAUDE
145
+ assert meta.version == "5.0"
146
+ assert meta.variant == "fable"
147
+
148
+
149
+ class TestClaudeMythos5:
150
+ """Claude Mythos 5 测试(Glasswing 受邀版) / Claude Mythos 5 tests"""
151
+
152
+ def test_specific_model_config(self):
153
+ """验证 claude-mythos-5 配置 / Validate claude-mythos-5 config"""
154
+ config = get_specific_model_config("claude-mythos-5")
155
+ assert config is not None
156
+ version, variant, capabilities = config
157
+ assert version == "5.0"
158
+ assert variant == "mythos"
159
+ assert capabilities is not None
160
+ assert capabilities.supports_vision is True
161
+ assert capabilities.supports_thinking is True
162
+ assert capabilities.supports_structured_outputs is True
163
+ assert capabilities.supports_computer_use is True
164
+ assert capabilities.max_tokens == 128000
165
+ assert capabilities.context_window == 1000000
166
+
167
+ def test_pattern_match(self):
168
+ """验证 claude-mythos-5 模式匹配 / Validate claude-mythos-5 pattern match"""
169
+ matched = match_model_pattern("claude-mythos-5")
170
+ assert matched is not None
171
+ assert matched["family"] == ModelFamily.CLAUDE
172
+ assert matched["variant"] == "mythos"
173
+ assert matched["provider"] == Provider.ANTHROPIC
174
+
175
+
176
+ class TestClaudeMythosClassOrdering:
177
+ """Mythos-class 版本比较:mythos > fable > opus > sonnet / Mythos-class ordering"""
178
+
179
+ def test_fable5_outranks_opus48(self):
180
+ """fable-5 (v5.0) 高于 opus-4-8 (v4.8) / fable-5 outranks opus-4-8 by version"""
181
+ assert LLMeta("claude-fable-5") > LLMeta("claude-opus-4-8")
182
+
183
+ def test_mythos5_outranks_fable5(self):
184
+ """同版本下 mythos 变体优先级高于 fable / mythos outranks fable on variant priority"""
185
+ assert LLMeta("claude-mythos-5") > LLMeta("claude-fable-5")
186
+
187
+ def test_mythos5_is_top(self):
188
+ """mythos-5 为当前最高 / mythos-5 is the highest among current Claude models"""
189
+ models = [
190
+ LLMeta("claude-mythos-5"),
191
+ LLMeta("claude-fable-5"),
192
+ LLMeta("claude-opus-4-8"),
193
+ LLMeta("claude-sonnet-4-6"),
194
+ LLMeta("claude-haiku-4-5"),
195
+ ]
196
+ assert max(models).variant == "mythos"
197
+
198
+
111
199
  class TestClaudeExistingModels:
112
200
  """验证现有模型未受影响 / Validate existing models are not affected"""
113
201
 
@@ -968,7 +968,7 @@ wheels = [
968
968
 
969
969
  [[package]]
970
970
  name = "whosellm"
971
- version = "0.2.3"
971
+ version = "0.2.4"
972
972
  source = { editable = "." }
973
973
  dependencies = [
974
974
  { name = "parse" },
@@ -7,7 +7,7 @@
7
7
  LLMeta - 统一的大语言模型版本和能力管理库 / A unified LLM model version and capability management library
8
8
  """
9
9
 
10
- __version__ = "0.2.3"
10
+ __version__ = "0.2.4"
11
11
 
12
12
  from whosellm.capabilities import ModelCapabilities
13
13
  from whosellm.model_version import LLMeta
@@ -27,6 +27,7 @@ CLAUDE = ModelFamilyConfig(
27
27
  "claude-{variant:variant}-{major:d}-{minor:d}-{snapshot:snapshot}",
28
28
  "claude-{variant:variant}-{major:d}-{minor:d}",
29
29
  "claude-{variant:variant}-{major:d}-{snapshot:snapshot}",
30
+ "claude-{variant:variant}-{major:d}@{snapshot:snapshot}",
30
31
  "claude-{variant:variant}-{major:d}",
31
32
  "claude-{major:d}-{minor:d}-{variant:variant}-{snapshot:snapshot}",
32
33
  "claude-{major:d}-{minor:d}-{variant:variant}",
@@ -42,6 +43,49 @@ CLAUDE = ModelFamilyConfig(
42
43
  context_window=200000,
43
44
  ),
44
45
  specific_models={
46
+ # Mythos-class(2026-06-09 发布):全新顶级层级,优先级高于 opus
47
+ # Mythos-class (released 2026-06-09): new top tier, ranks above opus
48
+ # Fable 5 为公开版,Mythos 5 为 Glasswing 受邀版(能力相同,去掉安全分类器)
49
+ "claude-fable-5": SpecificModelConfig(
50
+ version_default="5.0",
51
+ variant_default="fable",
52
+ variant_priority=(6,),
53
+ capabilities=ModelCapabilities(
54
+ supports_vision=True,
55
+ supports_thinking=True, # 自适应思考常开 / adaptive thinking always on
56
+ supports_function_calling=True,
57
+ supports_streaming=True,
58
+ supports_structured_outputs=True,
59
+ supports_computer_use=True,
60
+ max_tokens=128000,
61
+ context_window=1000000,
62
+ ),
63
+ patterns=[
64
+ "claude-fable-5-{snapshot:snapshot}",
65
+ "claude-fable-5",
66
+ "claude-fable-5@{snapshot:snapshot}",
67
+ ],
68
+ ),
69
+ "claude-mythos-5": SpecificModelConfig(
70
+ version_default="5.0",
71
+ variant_default="mythos",
72
+ variant_priority=(7,),
73
+ capabilities=ModelCapabilities(
74
+ supports_vision=True,
75
+ supports_thinking=True, # 自适应思考常开 / adaptive thinking always on
76
+ supports_function_calling=True,
77
+ supports_streaming=True,
78
+ supports_structured_outputs=True,
79
+ supports_computer_use=True,
80
+ max_tokens=128000,
81
+ context_window=1000000,
82
+ ),
83
+ patterns=[
84
+ "claude-mythos-5-{snapshot:snapshot}",
85
+ "claude-mythos-5",
86
+ "claude-mythos-5@{snapshot:snapshot}",
87
+ ],
88
+ ),
45
89
  "claude-opus-4-8": SpecificModelConfig(
46
90
  version_default="4.8",
47
91
  variant_default="opus",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes