Compare commits
139 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c562522e4f | |||
| 2d0173d177 | |||
| 1a772fd297 | |||
| c63920050a | |||
| df45483742 | |||
| 4ecdcb8f2b | |||
| 4644def1ae | |||
| f9091af5ee | |||
| 7022a48bfc | |||
| dda69225d8 | |||
| 2e020b1dd2 | |||
| 67252bda30 | |||
| ac1566f622 | |||
| 48837609aa | |||
| c2a0ff023a | |||
| 282821e7b6 | |||
| 1b8e53bcbd | |||
| f671147f71 | |||
| e23e759601 | |||
| 4b4546f3e3 | |||
| 040f0ca995 | |||
| 9acac34889 | |||
| 78ad91f773 | |||
| 4b0aeef538 | |||
| 856787cb84 | |||
| 084f0bb4ba | |||
| ee1301fb63 | |||
| 502957b778 | |||
| 9f11a93d06 | |||
| be8d8a2ec2 | |||
| d4193dbad6 | |||
| fb6b0985ce | |||
| 2bb4fe287e | |||
| b58c396106 | |||
| 575f078887 | |||
| acf194ec01 | |||
| c80ff1ad2c | |||
| a41f6f5913 | |||
| 8dffe03a9c | |||
| 9ea761af1a | |||
| 526b4cd543 | |||
| b7d165296c | |||
| 655f757925 | |||
| cce129dfd9 | |||
| 548f3b5869 | |||
| f349a9dde6 | |||
| 05c1041160 | |||
| 215c3dfbc8 | |||
| ddc6ad75a2 | |||
| 757bee7de8 | |||
| 5ee32a47ae | |||
| 2c22f4b488 | |||
| 097296f6c6 | |||
| 2559ed64c5 | |||
| c56ac404d3 | |||
| 4681e30afb | |||
| 94cd023a88 | |||
| b5c33b6347 | |||
| 2014d883e4 | |||
| 2f749b7cf9 | |||
| d7ab976e3c | |||
| 32066b7856 | |||
| 3ded2fae72 | |||
| 9771180f83 | |||
| fa65113f37 | |||
| 1ab5784118 | |||
| 411bc157e6 | |||
| 58ab76b8f3 | |||
| 8f2607fcdb | |||
| 23e07a27d2 | |||
| 37e8e0cf95 | |||
| 0e0fe311ab | |||
| 3d763d081e | |||
| ebbd3416e2 | |||
| a3509f9a3d | |||
| 71d00e7dfc | |||
| 26f7b6f6b6 | |||
| 270009bd93 | |||
| 91cc389af3 | |||
| 1c7b7e8247 | |||
| a382026ce9 | |||
| 1fc7261c14 | |||
| 765dae9f61 | |||
| 02cd80a2ab | |||
| fcbd02fa84 | |||
| e07a0bab97 | |||
| ad166f7448 | |||
| 660350c5fa | |||
| 9379be8911 | |||
| 1ccb247f7f | |||
| 7d5469898d | |||
| ec3c4ed8ea | |||
| 8521822a96 | |||
| 9df50e0ccc | |||
| 9b3d25aae8 | |||
| ea4d10b219 | |||
| d3d163dd95 | |||
| 78f8fb92fc | |||
| 62b4296b3d | |||
| 12057804f5 | |||
| 127290ebec | |||
| 5abbfce7d6 | |||
| 6ff6ab4028 | |||
| 0f3e0d7337 | |||
| 8381089b11 | |||
| 98bed4baf6 | |||
| e55ab2daf8 | |||
| c60784fab5 | |||
| 21581d8f4c | |||
| 20bfe37a53 | |||
| fc4a781c2f | |||
| 28674e1af4 | |||
| 1e76995f8e | |||
| 0e371b761d | |||
| 7a5bf4f56e | |||
| 4c5b17b1db | |||
| c4650219c3 | |||
| 9fb0474d1c | |||
| 8807bb0069 | |||
| 18c35709c5 | |||
| 6799ff1078 | |||
| 236ff0e39b | |||
| cb4fd81c59 | |||
| 03c161f038 | |||
| 38a2f09999 | |||
| 1f77766834 | |||
| da1032a1cb | |||
| 55848d41c6 | |||
| e8304a0b0f | |||
| 23b4754d23 | |||
| 20ffc3909f | |||
| 09c7f864f2 | |||
| 5a3e0cacea | |||
| f8ccb57731 | |||
| c0b03ed655 | |||
| 5dcd077370 | |||
| 5e7769cb71 | |||
| add3daacea | |||
| 15f015fd4a |
@@ -1,17 +0,0 @@
|
||||
name = "Aion 2.0"
|
||||
family = "o"
|
||||
release_date = "2026-03-24"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = false
|
||||
temperature = true
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 128000
|
||||
output = 32768
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Trinity Large Thinking"
|
||||
family = "trinity"
|
||||
release_date = "2026-04-02"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256000
|
||||
output = 65536
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/arcee-ai/Trinity-Large-Thinking-FP8-Block"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Gemma 3 27B"
|
||||
family = "gemma"
|
||||
release_date = "2026-03-18"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
tool_call = false
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 40000
|
||||
output = 4096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/google/gemma-3-27b-it"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Gemma 4 31B Instruct"
|
||||
family = "gemma"
|
||||
release_date = "2026-05-20"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = false
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 32000
|
||||
output = 4096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/google/gemma-4-31B-it"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Qwen 2.5 7B"
|
||||
family = "qwen"
|
||||
release_date = "2026-03-18"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
tool_call = false
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 32000
|
||||
output = 4096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen2.5-7B-Instruct"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Qwen3 30B A3B"
|
||||
family = "qwen"
|
||||
release_date = "2026-03-18"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
tool_call = true
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256000
|
||||
output = 32768
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-30B-A3B-Instruct-2507"
|
||||
@@ -1,17 +0,0 @@
|
||||
name = "Qwen3.6 35B A3B Uncensored"
|
||||
family = "qwen3.6"
|
||||
release_date = "2026-05-24"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Qwen 3.6 35B A3B FP8"
|
||||
family = "qwen"
|
||||
release_date = "2026-05-20"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 32_000
|
||||
output = 4_096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3.6-35B-A3B-FP8"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Qwen3 VL 30B A3B"
|
||||
family = "qwen"
|
||||
release_date = "2026-03-18"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
tool_call = true
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128000
|
||||
output = 4096
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-VL-30B-A3B-Instruct"
|
||||
@@ -1,20 +0,0 @@
|
||||
name = "Venice Uncensored 1.1"
|
||||
family = "venice"
|
||||
release_date = "2026-03-18"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
tool_call = false
|
||||
temperature = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 32000
|
||||
output = 4096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Gemma 4 Uncensored"
|
||||
family = "gemma"
|
||||
release_date = "2026-04-13"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Jiunsong/supergemma4-26b-uncensored-gguf-v2"
|
||||
@@ -1,22 +0,0 @@
|
||||
name = "Google Gemma 3 27B Instruct"
|
||||
family = "gemma"
|
||||
release_date = "2025-11-04"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
knowledge = "2025-07"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 198_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/google/gemma-3-27b-it"
|
||||
@@ -1,18 +0,0 @@
|
||||
name = "Grok 4.20 Multi-Agent"
|
||||
family = "grok"
|
||||
release_date = "2026-03-12"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = false
|
||||
structured_output = true
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 2_000_000
|
||||
output = 128_000
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Hermes 3 Llama 3.1 405b"
|
||||
family = "hermes"
|
||||
release_date = "2025-09-25"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
knowledge = "2024-04"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/NousResearch/Hermes-3-Llama-3.1-405B"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Llama 3.2 3B"
|
||||
family = "llama"
|
||||
release_date = "2024-10-03"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2023-12"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/meta-llama/Llama-3.2-3B"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Llama 3.3 70B"
|
||||
family = "llama"
|
||||
release_date = "2025-04-06"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2023-12"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_096
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct"
|
||||
@@ -1,18 +0,0 @@
|
||||
name = "Mercury 2"
|
||||
family = "mercury"
|
||||
release_date = "2026-02-20"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 128000
|
||||
output = 50000
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Mistral Small 3.2 24B Instruct"
|
||||
family = "mistral-small"
|
||||
release_date = "2026-01-15"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/mistralai/Mistral-Small-3.2-24B-Instruct-2506"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "GLM 4.7 Flash Heretic"
|
||||
family = "glm"
|
||||
release_date = "2026-02-04"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 200_000
|
||||
output = 24_000
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Olafangensan/GLM-4.7-Flash-heretic"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "OpenAI GPT OSS 120B"
|
||||
family = "gpt-oss"
|
||||
release_date = "2025-11-06"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = true
|
||||
temperature = true
|
||||
knowledge = "2025-07"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128000
|
||||
output = 16384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/openai/gpt-oss-120b"
|
||||
@@ -1,22 +0,0 @@
|
||||
name = "Qwen 3 235B A22B Instruct 2507"
|
||||
family = "qwen"
|
||||
release_date = "2025-04-29"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
knowledge = "2025-07"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-235B-A22B-Instruct-2507-FP8"
|
||||
@@ -1,22 +0,0 @@
|
||||
name = "Qwen 3 235B A22B Thinking 2507"
|
||||
family = "qwen"
|
||||
release_date = "2025-04-29"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
knowledge = "2025-07"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507-FP8"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Qwen 3 Coder 480B Turbo"
|
||||
family = "qwen"
|
||||
release_date = "2026-01-27"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 65_536
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo"
|
||||
@@ -1,22 +0,0 @@
|
||||
name = "Qwen 3 Next 80b"
|
||||
family = "qwen"
|
||||
release_date = "2025-04-29"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
knowledge = "2025-07"
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Qwen3 VL 235B"
|
||||
family = "qwen3.5"
|
||||
release_date = "2026-01-16"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/Qwen/Qwen3-VL-235B-A22B-Instruct"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Venice Uncensored 1.2"
|
||||
family = "venice"
|
||||
release_date = "2026-04-01"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/cognitivecomputations/Dolphin-Mistral-24B-Venice-Edition"
|
||||
@@ -1,21 +0,0 @@
|
||||
name = "Venice Role Play Uncensored"
|
||||
family = "venice"
|
||||
release_date = "2026-02-20"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = true
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
open_weights = true
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_096
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/dphnAI/24B-3.2-RP-K2-final"
|
||||
@@ -51,6 +51,7 @@ export interface SyncProvider<SourceModel> {
|
||||
skipCreates?: boolean;
|
||||
deleteMissing?: boolean;
|
||||
preserveSymlinks?: boolean;
|
||||
preserveBaseModels?: boolean;
|
||||
sameModel?(current: ExistingModel, desired: SyncedModel): boolean;
|
||||
missingNotice?(paths: string[]): string[];
|
||||
sourceID?(model: SourceModel): string;
|
||||
@@ -118,7 +119,9 @@ export async function syncProvider<SourceModel>(
|
||||
): Promise<SyncResult> {
|
||||
console.log(`\nSyncing ${provider.name}...`);
|
||||
|
||||
const { models: existing, brokenSymlinks } = await readExisting(provider.modelsDir);
|
||||
const existingState = await readExisting(provider.modelsDir);
|
||||
const { models: existing, brokenSymlinks } = existingState;
|
||||
let { modelMetadata } = existingState;
|
||||
const sourceModels = provider.parseModels(await provider.fetchModels());
|
||||
const desired = new Map<string, { model: z.infer<typeof SyncedAuthoredModel>; content: string }>();
|
||||
const desiredMetadata = new Map<string, { model: z.infer<typeof ModelMetadata>; content: string }>();
|
||||
@@ -162,11 +165,28 @@ export async function syncProvider<SourceModel>(
|
||||
});
|
||||
}
|
||||
|
||||
const translatedModel = provider.preserveBaseModels === false
|
||||
? translated.model
|
||||
: preserveBaseModel(translated.model, existing.get(relativePath)?.authored);
|
||||
const translatedBase = "base_model" in translatedModel ? translatedModel.base_model : undefined;
|
||||
let resolvedReasoning: boolean | undefined;
|
||||
if (translatedBase !== undefined) {
|
||||
if (translated.metadata?.id === translatedBase) {
|
||||
resolvedReasoning = translated.metadata.model.reasoning;
|
||||
} else {
|
||||
modelMetadata ??= await readModelMetadata(provider.modelsDir);
|
||||
const canonicalReasoning = modelMetadata[translatedBase]?.reasoning;
|
||||
resolvedReasoning = typeof canonicalReasoning === "boolean" ? canonicalReasoning : undefined;
|
||||
}
|
||||
} else {
|
||||
resolvedReasoning = existing.get(relativePath)?.toml.reasoning;
|
||||
}
|
||||
const parsed = SyncedAuthoredModel.safeParse(stripUndefined({
|
||||
id: translated.id,
|
||||
...preserveReasoningOptions(
|
||||
preserveBaseModel(translated.model, existing.get(relativePath)?.authored),
|
||||
translatedModel,
|
||||
existing.get(relativePath)?.authored,
|
||||
resolvedReasoning,
|
||||
),
|
||||
}));
|
||||
if (!parsed.success) {
|
||||
@@ -316,7 +336,12 @@ export function preserveBaseModel(model: SyncedModel, existing: ExistingModel |
|
||||
export function preserveReasoningOptions(
|
||||
model: SyncedModel,
|
||||
existing: ExistingModel | undefined,
|
||||
resolvedReasoning: boolean | undefined = existing?.reasoning,
|
||||
): SyncedModel {
|
||||
if ((model.reasoning ?? resolvedReasoning) === false) {
|
||||
const { reasoning_options: _reasoningOptions, ...withoutReasoningOptions } = model;
|
||||
return withoutReasoningOptions as SyncedModel;
|
||||
}
|
||||
if (model.reasoning_options !== undefined || existing?.reasoning_options === undefined) return model;
|
||||
return {
|
||||
...model,
|
||||
@@ -389,7 +414,7 @@ async function readExisting(modelsDir: string) {
|
||||
existing.set(file, { authored, toml, symlink });
|
||||
}
|
||||
|
||||
return { models: existing, brokenSymlinks };
|
||||
return { models: existing, brokenSymlinks, modelMetadata };
|
||||
}
|
||||
|
||||
async function isSymlink(filePath: string) {
|
||||
|
||||
@@ -121,6 +121,7 @@ export function buildOvhcloudModel(
|
||||
last_updated: lastUpdated,
|
||||
attachment,
|
||||
reasoning,
|
||||
reasoning_options: reasoning ? existing?.reasoning_options : undefined,
|
||||
temperature: temperature || undefined,
|
||||
tool_call: toolCall,
|
||||
structured_output: structuredOutput || undefined,
|
||||
|
||||
@@ -3,7 +3,7 @@ import path from "node:path";
|
||||
import { z } from "zod";
|
||||
|
||||
import { ModelFamilyValues } from "../../family.js";
|
||||
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedMetadata, SyncedModel } from "../index.js";
|
||||
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js";
|
||||
import { factorBaseModel } from "./openrouter.js";
|
||||
|
||||
const API_ENDPOINT = "https://api.venice.ai/api/v1/models?type=text";
|
||||
@@ -11,6 +11,7 @@ const MODELS_DIR = path.join(import.meta.dirname, "..", "..", "..", "..", "..",
|
||||
|
||||
const Capabilities = z.object({
|
||||
supportsAudioInput: z.boolean().optional(),
|
||||
supportsE2EE: z.boolean().optional(),
|
||||
supportsFunctionCalling: z.boolean().optional(),
|
||||
supportsReasoning: z.boolean().optional(),
|
||||
supportsReasoningEffort: z.boolean().optional(),
|
||||
@@ -82,7 +83,7 @@ export const venice = {
|
||||
id: "venice",
|
||||
name: "Venice",
|
||||
modelsDir: "providers/venice/models",
|
||||
metadataNamespace: "venice",
|
||||
preserveBaseModels: false,
|
||||
async fetchModels() {
|
||||
const headers = process.env.VENICE_API_KEY
|
||||
? { Authorization: `Bearer ${process.env.VENICE_API_KEY}` }
|
||||
@@ -97,20 +98,14 @@ export const venice = {
|
||||
return VeniceResponse.parse(raw).data;
|
||||
},
|
||||
translateModel(model, context) {
|
||||
if (model.model_spec.capabilities.supportsE2EE === true) return undefined;
|
||||
const id = model.id.replaceAll("/", "-");
|
||||
const existing = context.existing(id);
|
||||
const resolvedBase = existing?.base_model ?? resolveVeniceBaseModel(model.id, model.model_spec.name);
|
||||
const baseModel = resolvedBase ?? `venice/${id}`;
|
||||
const full = buildVeniceModel(model, existing, null);
|
||||
const metadata = baseModel.startsWith("venice/")
|
||||
? { id: baseModel, model: buildVeniceMetadata(full, model.model_spec.modelSource) }
|
||||
: undefined;
|
||||
const existingBase = existing?.base_model?.startsWith("venice/") === false ? existing.base_model : undefined;
|
||||
const resolvedBase = existingBase ?? resolveVeniceBaseModel(model.id, model.model_spec.name);
|
||||
return {
|
||||
id,
|
||||
model: resolvedBase === undefined
|
||||
? factorNewMetadata(baseModel, full)
|
||||
: buildVeniceModel(model, existing, baseModel),
|
||||
metadata,
|
||||
model: buildVeniceModel(model, existing, resolvedBase ?? null),
|
||||
};
|
||||
},
|
||||
} satisfies SyncProvider<VeniceModel>;
|
||||
@@ -166,7 +161,7 @@ export function buildVeniceModel(
|
||||
reasoning_options: reasoningOptions,
|
||||
tool_call: capabilities.supportsFunctionCalling === true,
|
||||
structured_output: capabilities.supportsResponseSchema === true ? true : undefined,
|
||||
temperature: true,
|
||||
temperature: undefined,
|
||||
cost,
|
||||
limit,
|
||||
modalities: { input: [...new Set(input)], output: ["text" as const] },
|
||||
@@ -245,28 +240,6 @@ function inferFamily(id: string, name: string) {
|
||||
});
|
||||
}
|
||||
|
||||
function buildVeniceMetadata(model: SyncedModel, source: string | undefined): SyncedMetadata {
|
||||
if ("base_model" in model) throw new Error("Cannot build Venice metadata from a factored model");
|
||||
const { cost: _cost, reasoning_options: _reasoningOptions, interleaved: _interleaved, status: _status, ...metadata } = model;
|
||||
return {
|
||||
...metadata,
|
||||
weights: model.open_weights && source?.startsWith("https://huggingface.co/")
|
||||
? [{ url: source }]
|
||||
: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
function factorNewMetadata(baseModel: string, model: SyncedModel): SyncedModel {
|
||||
if ("base_model" in model) return model;
|
||||
return {
|
||||
base_model: baseModel,
|
||||
reasoning_options: model.reasoning_options,
|
||||
cost: model.cost,
|
||||
status: model.status,
|
||||
interleaved: model.interleaved,
|
||||
};
|
||||
}
|
||||
|
||||
function stable(value: unknown): string {
|
||||
if (Array.isArray(value)) return `[${value.map(stable).sort().join(",")}]`;
|
||||
if (value !== null && typeof value === "object") {
|
||||
|
||||
@@ -5,6 +5,7 @@ import path from "node:path";
|
||||
import {
|
||||
buildVeniceModel,
|
||||
resolveVeniceBaseModel,
|
||||
venice,
|
||||
VeniceResponse,
|
||||
type VeniceModel,
|
||||
} from "../src/sync/providers/venice.js";
|
||||
@@ -61,6 +62,25 @@ test("Venice emits empty reasoning options when efforts are unavailable", () =>
|
||||
expect(synced).toMatchObject({ reasoning: true, reasoning_options: [] });
|
||||
});
|
||||
|
||||
test("Venice does not infer temperature support", () => {
|
||||
const synced = buildVeniceModel(catalogModel, undefined, null, "2026-06-10");
|
||||
|
||||
expect(synced.temperature).toBeUndefined();
|
||||
});
|
||||
|
||||
test("Venice skips E2EE models", () => {
|
||||
const translated = venice.translateModel({
|
||||
...catalogModel,
|
||||
id: "e2ee-test-model",
|
||||
model_spec: {
|
||||
...catalogModel.model_spec,
|
||||
capabilities: { ...catalogModel.model_spec.capabilities, supportsE2EE: true },
|
||||
},
|
||||
}, { existing: () => undefined });
|
||||
|
||||
expect(translated).toBeUndefined();
|
||||
});
|
||||
|
||||
test("Venice uses boundary-aware family matching", () => {
|
||||
const synced = buildVeniceModel({
|
||||
...catalogModel,
|
||||
@@ -108,6 +128,7 @@ test("Venice maps API fields and keeps inherited models compact", () => {
|
||||
expect(synced).not.toHaveProperty("release_date");
|
||||
expect(synced).not.toHaveProperty("open_weights");
|
||||
expect(synced).not.toHaveProperty("modalities");
|
||||
expect(synced).not.toHaveProperty("temperature");
|
||||
});
|
||||
|
||||
test("Venice preserves last_updated when authoritative data is unchanged", () => {
|
||||
@@ -127,7 +148,7 @@ test("Venice rejects malformed responses", () => {
|
||||
expect(() => VeniceResponse.parse({ data: [{ id: "broken" }] })).toThrow();
|
||||
});
|
||||
|
||||
test("all Venice models use metadata inheritance and declare reasoning options", async () => {
|
||||
test("Venice models use only canonical metadata and declare reasoning options", async () => {
|
||||
const root = path.join(import.meta.dirname, "..", "..", "..");
|
||||
const modelsDir = path.join(root, "providers", "venice", "models");
|
||||
|
||||
@@ -136,8 +157,11 @@ test("all Venice models use metadata inheritance and declare reasoning options",
|
||||
base_model?: string;
|
||||
reasoning_options?: unknown[];
|
||||
};
|
||||
expect(model.base_model, file).toBeDefined();
|
||||
expect(model.reasoning_options, file).toBeDefined();
|
||||
expect(await Bun.file(path.join(root, "models", `${model.base_model}.toml`)).exists(), file).toBe(true);
|
||||
if (model.base_model !== undefined) {
|
||||
expect(model.base_model.startsWith("venice/"), file).toBe(false);
|
||||
expect(await Bun.file(path.join(root, "models", `${model.base_model}.toml`)).exists(), file).toBe(true);
|
||||
}
|
||||
expect(file.startsWith("e2ee-"), file).toBe(false);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.7-plus"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -0,0 +1,15 @@
|
||||
base_model = "minimax/MiniMax-M2.5"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
|
||||
[limit]
|
||||
context = 196_608
|
||||
input = 196_601
|
||||
output = 24_576
|
||||
+11
-10
@@ -1,22 +1,23 @@
|
||||
name = "DeepSeek V3.2"
|
||||
family = "deepseek"
|
||||
release_date = "2025-12-04"
|
||||
last_updated = "2026-06-10"
|
||||
release_date = "2025-12-03"
|
||||
last_updated = "2025-12-05"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
knowledge = "2025-10"
|
||||
tool_call = true
|
||||
knowledge = "2025-01"
|
||||
open_weights = true
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
[limit]
|
||||
context = 160000
|
||||
output = 32768
|
||||
context = 131_072
|
||||
output = 65_536
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
url = "https://huggingface.co/deepseek-ai/DeepSeek-V3.2"
|
||||
output = ["text"]
|
||||
@@ -0,0 +1,9 @@
|
||||
base_model = "deepseek/deepseek-v4-flash"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
@@ -0,0 +1,9 @@
|
||||
base_model = "deepseek/deepseek-v4-pro"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "zhipuai/glm-5.1"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
|
||||
[limit]
|
||||
context = 202_752
|
||||
output = 128_000
|
||||
@@ -0,0 +1,15 @@
|
||||
base_model = "zhipuai/glm-5"
|
||||
open_weights = false
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
|
||||
[limit]
|
||||
context = 202_752
|
||||
output = 16_384
|
||||
@@ -0,0 +1,17 @@
|
||||
base_model = "moonshotai/kimi-k2.5"
|
||||
base_model_omit = ["structured_output"]
|
||||
family = "kimi"
|
||||
attachment = true
|
||||
temperature = true
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
|
||||
[limit]
|
||||
output = 32_768
|
||||
@@ -0,0 +1,15 @@
|
||||
base_model = "moonshotai/kimi-k2.6"
|
||||
base_model_omit = ["structured_output"]
|
||||
family = "kimi"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
|
||||
[limit]
|
||||
output = 16_384
|
||||
@@ -0,0 +1,21 @@
|
||||
name = "Qwen Image 2.0 Pro"
|
||||
family = "qwen"
|
||||
release_date = "2026-03-03"
|
||||
last_updated = "2026-03-03"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = false
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
[limit]
|
||||
context = 8_192
|
||||
output = 0
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["image"]
|
||||
@@ -0,0 +1,21 @@
|
||||
name = "Qwen Image 2.0"
|
||||
family = "qwen"
|
||||
release_date = "2026-03-03"
|
||||
last_updated = "2026-03-03"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = false
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
[limit]
|
||||
context = 8_192
|
||||
output = 0
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["image"]
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.6-flash"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.6-plus"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.7-max"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.7-plus"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -0,0 +1,20 @@
|
||||
name = "Wan2.7 Image Pro"
|
||||
release_date = "2026-05-29"
|
||||
last_updated = "2026-05-29"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = false
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
[limit]
|
||||
context = 8_192
|
||||
output = 0
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["image"]
|
||||
+10
-7
@@ -1,17 +1,20 @@
|
||||
name = "Gemma 4 26B A4B Uncensored"
|
||||
family = "gemma"
|
||||
release_date = "2026-05-24"
|
||||
last_updated = "2026-06-10"
|
||||
name = "Wan2.7 Image"
|
||||
release_date = "2026-05-29"
|
||||
last_updated = "2026-05-29"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = false
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
[limit]
|
||||
context = 64_000
|
||||
output = 4_096
|
||||
context = 8_192
|
||||
output = 0
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
output = ["image"]
|
||||
@@ -0,0 +1,5 @@
|
||||
name = "Alibaba Token Plan (China)"
|
||||
env = ["ALIBABA_TOKEN_PLAN_API_KEY"]
|
||||
npm = "@ai-sdk/openai-compatible"
|
||||
doc = "https://www.alibabacloud.com/help/zh/model-studio/token-plan-overview"
|
||||
api = "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
|
||||
@@ -0,0 +1,7 @@
|
||||
base_model = "alibaba/qwen3.7-plus"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
cache_read = 0
|
||||
cache_write = 0
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-10"
|
||||
last_updated = "2025-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
knowledge = "2024-06"
|
||||
tool_call = false
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
name = "GPT OSS 120B"
|
||||
family = "gpt-oss"
|
||||
release_date = "2025-08-05"
|
||||
last_updated = "2025-08-05"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
structured_output = true
|
||||
|
||||
[cost]
|
||||
input = 0.25
|
||||
output = 0.69
|
||||
input = 0.35
|
||||
output = 0.75
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 32_768
|
||||
output = 40_960
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
name = "Llama 3.1 8B"
|
||||
family = "llama"
|
||||
release_date = "2025-01-01"
|
||||
last_updated = "2026-05-27"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
knowledge = "2023-12"
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
status = "deprecated"
|
||||
|
||||
[cost]
|
||||
input = 0.10
|
||||
output = 0.10
|
||||
|
||||
[limit]
|
||||
context = 32_000
|
||||
output = 8000
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
@@ -1,11 +1,14 @@
|
||||
name = "Z.AI GLM-4.7"
|
||||
release_date = "2026-01-10"
|
||||
last_updated = "2026-01-10"
|
||||
release_date = "2026-01-07"
|
||||
last_updated = "2026-06-10"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["none"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
structured_output = true
|
||||
status = "beta"
|
||||
|
||||
[cost]
|
||||
input = 2.25
|
||||
@@ -15,7 +18,7 @@ cache_write = 0
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 40_000
|
||||
output = 40_960
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-12"
|
||||
last_updated = "2026-02-25"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2024-10"
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ release_date = "2026-02-12"
|
||||
last_updated = "2026-02-25"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ release_date = "2025-12-01"
|
||||
last_updated = "2025-12-12"
|
||||
attachment = true
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2025-12"
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ release_date = "2025-12"
|
||||
last_updated = "2026-02-25"
|
||||
attachment = true
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
base_model = "moonshotai/kimi-k2.6"
|
||||
reasoning_options = []
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
|
||||
last_updated = "2026-02-25"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
|
||||
last_updated = "2025-12-12"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-07-31"
|
||||
last_updated = "2026-02-25"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -3,6 +3,7 @@ release_date = "2026-05-12"
|
||||
last_updated = "2026-06-02"
|
||||
attachment = true
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
tool_call = true
|
||||
open_weights = false
|
||||
knowledge = "2026-05"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
base_model = "anthropic/claude-opus-4-8"
|
||||
|
||||
[cost]
|
||||
input = 5.64
|
||||
output = 28.198
|
||||
cache_read = 0.563
|
||||
cache_write = 7.049
|
||||
|
||||
@@ -9,6 +9,8 @@ knowledge = "2025-09"
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
reasoning_options = []
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
|
||||
+7
-8
@@ -1,17 +1,16 @@
|
||||
name = "Grok 4.20"
|
||||
family = "grok"
|
||||
release_date = "2026-03-12"
|
||||
last_updated = "2026-06-10"
|
||||
name = "Anthropic Claude Fable 5"
|
||||
family = "claude-fable"
|
||||
release_date = "2026-06-09"
|
||||
last_updated = "2026-06-12"
|
||||
attachment = true
|
||||
reasoning = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 2000000
|
||||
output = 128000
|
||||
context = 1_000_000
|
||||
output = 128_000
|
||||
|
||||
[modalities]
|
||||
input = ["text", "image"]
|
||||
@@ -0,0 +1,17 @@
|
||||
name = "Nemotron 3 Ultra"
|
||||
family = "nemotron"
|
||||
release_date = "2026-06-04"
|
||||
last_updated = "2026-06-12"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = false
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
@@ -8,6 +8,9 @@ temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "toggle"
|
||||
|
||||
[cost]
|
||||
input = 0
|
||||
output = 0
|
||||
|
||||
@@ -15,6 +15,10 @@ type = "toggle"
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "budget_tokens"
|
||||
min = 1
|
||||
|
||||
[cost]
|
||||
cache_read = 0.10
|
||||
input = 0.50
|
||||
|
||||
@@ -2,6 +2,7 @@ name = "MiniMax-M2.5"
|
||||
family = "minimax"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
|
||||
@@ -2,6 +2,7 @@ name = "GLM-5.1"
|
||||
family = "glm"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
|
||||
@@ -2,6 +2,7 @@ name = "GLM-5"
|
||||
family = "glm"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
temperature = true
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
base_model = "anthropic/claude-fable-5"
|
||||
|
||||
[cost]
|
||||
input = 10
|
||||
output = 50
|
||||
cache_read = 1
|
||||
cache_write = 12.5
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 128_000
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-08-28"
|
||||
last_updated = "2025-08-28"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-12-17"
|
||||
last_updated = "2026-04-04"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-11-13"
|
||||
last_updated = "2025-11-13"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
|
||||
last_updated = "2025-08-05"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
|
||||
last_updated = "2025-08-05"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-08-13"
|
||||
last_updated = "2025-08-13"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-01-06"
|
||||
last_updated = "2026-01-06"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "toggle" }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-02-11"
|
||||
last_updated = "2026-02-11"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "toggle" }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-02-12"
|
||||
last_updated = "2026-06-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = false
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-01-01"
|
||||
last_updated = "2026-06-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "toggle" }]
|
||||
structured_output = true
|
||||
temperature = false
|
||||
tool_call = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-04-08"
|
||||
last_updated = "2026-06-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = [{ type = "toggle" }]
|
||||
temperature = true
|
||||
tool_call = true
|
||||
structured_output = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-01-20"
|
||||
last_updated = "2025-01-20"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
knowledge = "2024-12"
|
||||
tool_call = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2024-12-01"
|
||||
last_updated = "2025-11-13"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
knowledge = "2024-10"
|
||||
tool_call = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-07-01"
|
||||
last_updated = "2025-07-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
knowledge = "2025-04"
|
||||
tool_call = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2024-12-01"
|
||||
last_updated = "2024-12-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
knowledge = "2024-10"
|
||||
tool_call = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-07-01"
|
||||
last_updated = "2025-07-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2024-12"
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-01-20"
|
||||
last_updated = "2025-05-28"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2024-07"
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2024-11-01"
|
||||
last_updated = "2024-11-01"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
knowledge = "2024-08"
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-11"
|
||||
last_updated = "2025-12"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
structured_output = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
|
||||
@@ -9,6 +9,9 @@ tool_call = true
|
||||
knowledge = "2025-04"
|
||||
open_weights = true
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "toggle"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
base_model = "alibaba/qwen3.6-35b-a3b"
|
||||
reasoning_options = [{ type = "toggle" }]
|
||||
|
||||
[cost]
|
||||
input = 5.0
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-12-23"
|
||||
last_updated = "2025-12-23"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-02-13"
|
||||
last_updated = "2026-02-13"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-02-12"
|
||||
last_updated = "2026-02-12"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-03-18"
|
||||
last_updated = "2026-03-18"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2026-03-18"
|
||||
last_updated = "2026-03-18"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
|
||||
@@ -4,6 +4,7 @@ release_date = "2025-10-27"
|
||||
last_updated = "2025-10-27"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
reasoning_options = []
|
||||
temperature = true
|
||||
tool_call = true
|
||||
# knowledge = "2025-04" # Not listed on model page.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user