Compare commits

...

236 Commits

Author SHA1 Message Date
Aiden Cline dc2655aeb0 fix(databricks): remove unsupported Claude budget caps 2026-06-23 23:28:36 -05:00
Aiden Cline 8506d5831f [databricks/anthropic] Add reasoning options 2026-06-13 16:02:30 -05:00
Aiden Cline 1ddcd9bc32 Merge pull request #2286 from anomalyco/fix/remove-glm-5.2-standard-apis
fix: remove GLM-5.2 from standard Z.AI APIs
2026-06-13 15:41:30 -05:00
Aiden Cline 7a9b4a167c Merge pull request #2206 from anomalyco/feat/berget-reasoning-options-wave3
[berget] Add reasoning options
2026-06-13 15:40:33 -05:00
Aiden Cline 33d88e41df Merge pull request #2203 from anomalyco/feat/the-grid-ai-reasoning-options-wave3
[the-grid-ai] Add reasoning options
2026-06-13 15:40:11 -05:00
Aiden Cline 300a46cfdc Merge pull request #2201 from anomalyco/feat/neuralwatt-reasoning-options-wave3
[neuralwatt] Add reasoning options
2026-06-13 15:36:53 -05:00
Aiden Cline 0e3c00595b [neuralwatt] Correct reasoning controls 2026-06-13 15:35:31 -05:00
Aiden Cline 1c9b748976 fix: remove GLM-5.2 from standard Z.AI APIs 2026-06-13 15:33:40 -05:00
Aiden Cline cf4ccf92ae Merge pull request #2285 from niushuai1991/add-glm-5.2-config
Add GLM-5.2 model config to zai and zhipuai providers
2026-06-13 15:31:44 -05:00
Aiden Cline a4a9d29c99 [berget] Correct remaining reasoning efforts 2026-06-13 15:30:02 -05:00
Aiden Cline 4670f99aac Merge pull request #2283 from anomalyco/fix/venice-sync-last-updated
fix(venice): preserve model update dates
2026-06-13 15:28:40 -05:00
Aiden Cline 3839c610a6 [berget] Remove unsupported GLM efforts 2026-06-13 15:28:06 -05:00
Aiden Cline b1095231a5 Merge pull request #2215 from anomalyco/feat/dinference-reasoning-options-wave3
[dinference] Mark reasoning controls fixed
2026-06-13 15:27:56 -05:00
Aiden Cline e8333b63a1 Merge pull request #2202 from anomalyco/feat/regolo-ai-reasoning-options-wave3
[regolo-ai] Add reasoning options
2026-06-13 15:27:32 -05:00
Aiden Cline 704ffc7371 Merge pull request #2229 from anomalyco/feat/anyapi-reasoning-options-wave4
[anyapi] Add reasoning options
2026-06-13 15:26:41 -05:00
Aiden Cline 4fdda4f262 [anyapi] Correct Claude reasoning options 2026-06-13 15:20:11 -05:00
Aiden Cline 41c243713f [berget] Correct Kimi reasoning option 2026-06-13 15:16:12 -05:00
Aiden Cline 36024f1bd2 Merge pull request #2218 from anomalyco/feat/gmicloud-reasoning-options-wave3
[gmicloud] Add reasoning options
2026-06-13 15:14:50 -05:00
Aiden Cline bfb0d3722a [gmicloud] Correct Claude reasoning options 2026-06-13 15:12:38 -05:00
Niu Shuai 3877dcf8b6 feat: add GLM-5.2 model config to zai and zhipuai providers 2026-06-14 04:10:00 +08:00
Aiden Cline d171755a90 Merge pull request #2220 from anomalyco/feat/azure-reasoning-options-wave3
[azure] Backfill DeepSeek V4 reasoning options
2026-06-13 14:39:42 -05:00
Aiden Cline 5394af4d63 Merge pull request #2189 from anomalyco/feat/upstage-reasoning-options-wave3
[upstage] Add reasoning options
2026-06-13 14:39:01 -05:00
Aiden Cline b78f6fb53e Merge pull request #2191 from anomalyco/feat/tencent-coding-plan-reasoning-options-wave3
[tencent-coding-plan] Add reasoning options
2026-06-13 14:36:46 -05:00
Aiden Cline 9e3c7d41ff Merge pull request #2200 from anomalyco/feat/modelscope-reasoning-options-wave3
[modelscope] Add reasoning options
2026-06-13 14:36:35 -05:00
Aiden Cline e8b1862dc2 Merge pull request #2195 from anomalyco/feat/minimax-cn-coding-plan-reasoning-options-wave3
[minimax-cn-coding-plan] Complete reasoning options
2026-06-13 14:36:20 -05:00
Aiden Cline 63da7583b5 Merge pull request #2188 from anomalyco/feat/moonshotai-reasoning-options-wave3
[moonshotai] Complete reasoning options
2026-06-13 14:36:03 -05:00
Aiden Cline e5b1221baa fix(venice): preserve model update dates 2026-06-13 14:31:04 -05:00
Aiden Cline 43e502a0bc Merge pull request #2282 from anomalyco/fix/mimo-reasoning-options-audit
fix MiMo reasoning options across providers
2026-06-13 14:16:58 -05:00
Aiden Cline b19a423f31 fix MiMo reasoning options across providers 2026-06-13 14:13:33 -05:00
Aiden Cline 77e04a5f1a Merge pull request #2184 from anomalyco/feat/nova-reasoning-options-wave3
[nova] Add reasoning options
2026-06-13 13:32:23 -05:00
Aiden Cline 2e1a8245c6 Merge pull request #2181 from anomalyco/feat/cloudferro-sherlock-reasoning-options-wave3
[cloudferro-sherlock] Add reasoning options
2026-06-13 13:32:14 -05:00
Aiden Cline b197346558 Merge pull request #2183 from anomalyco/feat/drun-reasoning-options-wave3
[drun] Add reasoning options
2026-06-13 13:32:03 -05:00
Aiden Cline a04024bd21 Merge pull request #2185 from anomalyco/feat/moark-reasoning-options-wave3
[moark] Add reasoning options
2026-06-13 13:31:53 -05:00
Aiden Cline 0186f9e638 Merge pull request #2187 from anomalyco/feat/poolside-reasoning-options-wave3
[poolside] Add reasoning options
2026-06-13 13:31:35 -05:00
Aiden Cline deb664d9c6 Merge pull request #2186 from anomalyco/feat/lucidquery-reasoning-options-wave3
[lucidquery] Add reasoning options
2026-06-13 13:31:26 -05:00
Aiden Cline 8ade756d9b Merge pull request #2182 from anomalyco/feat/inception-reasoning-options-wave3
[inception] Add reasoning options
2026-06-13 13:31:14 -05:00
Aiden Cline fc109cc2c2 Merge pull request #2221 from anomalyco/feat/xiaomi-token-plan-cn-reasoning-options-wave3
[xiaomi-token-plan] Add reasoning toggles
2026-06-13 13:30:47 -05:00
Aiden Cline 0427b955c6 Merge pull request #2222 from anomalyco/feat/ambient-reasoning-options-wave3
[ambient] Add reasoning options
2026-06-13 13:23:26 -05:00
Aiden Cline e1c887294a Merge pull request #2225 from anomalyco/feat/abacus-reasoning-options-wave4
[abacus] Add reasoning options
2026-06-13 13:23:10 -05:00
Aiden Cline 67cbb6e5f4 Merge pull request #2226 from anomalyco/feat/cloudflare-ai-gateway-reasoning-options-wave4
[cloudflare-ai-gateway] Add reasoning options
2026-06-13 13:18:42 -05:00
Aiden Cline 3f183e2962 Merge pull request #2227 from anomalyco/feat/chutes-reasoning-options-wave4
[chutes] Add reasoning options
2026-06-13 13:18:23 -05:00
Aiden Cline b2ada02538 Merge pull request #2238 from anomalyco/feat/digitalocean-reasoning-options-wave4
[digitalocean] Add reasoning options
2026-06-13 13:16:48 -05:00
Aiden Cline 6dcd5d65a0 Merge pull request #2244 from anomalyco/feat/huggingface-reasoning-options-wave4
[huggingface] Add reasoning options
2026-06-13 13:14:23 -05:00
Aiden Cline 9f2265f81f Merge pull request #2281 from anomalyco/automation/sync-models-openrouter
chore(sync): update OpenRouter model catalog
2026-06-13 13:13:02 -05:00
Aiden Cline b0e4f07b73 Merge pull request #2224 from anomalyco/feat/auriko-reasoning-options-wave4
[auriko] Add reasoning options
2026-06-13 13:12:39 -05:00
Aiden Cline 503b07ddfa Merge pull request #2219 from anomalyco/feat/mistral-reasoning-options-wave3
[mistral] Mark Magistral reasoning controls fixed
2026-06-13 13:11:11 -05:00
Aiden Cline d13507ee94 Merge pull request #2217 from anomalyco/feat/lilac-reasoning-options-wave3
[lilac] Add reasoning options
2026-06-13 13:10:58 -05:00
github-actions[bot] 1f391a1908 chore(sync): update OpenRouter model catalog 2026-06-13 17:46:55 +00:00
Aiden Cline f31519bf52 Merge pull request #2280 from CodeAnimal/az-deepseek-v4
Correct Azure DeepSeek V4 model prices
2026-06-13 11:25:26 -05:00
Aiden Cline d56e8387ba Merge pull request #2274 from anomalyco/automation/sync-models-openrouter
chore(sync): update OpenRouter model catalog
2026-06-13 11:25:15 -05:00
CodeAnimal 0132340a2c Correct Azure DeepSeek V4 model prices 2026-06-13 17:23:18 +01:00
Aiden Cline ead650e6b0 Merge pull request #2277 from ririnto/feat/zai-coding-plan-glm-5-2-anthropic
Add ZAI Coding Plan GLM-5.2 with Anthropic provider model
2026-06-13 11:19:37 -05:00
Aiden Cline c3beda0405 fix(zai-coding-plan): use default GLM-5.2 provider 2026-06-13 11:17:47 -05:00
Aiden Cline 814770c1c7 Merge dev and reuse Kimi K2.7 metadata 2026-06-13 11:09:49 -05:00
Aiden Cline e3d49ae6e2 Merge pull request #2279 from mathiasloh/feat_add_ollama_cloud_kimi_k27_code
feat(ollama-cloud): add kimi-k2.7-code
2026-06-13 11:07:44 -05:00
Aiden Cline fdabca87a0 Merge pull request #2275 from jubalm/add-zai-glm-5-2
Add ZAI Coding Plan GLM-5.2
2026-06-13 11:07:27 -05:00
github-actions[bot] acd9fa80ad chore(sync): update OpenRouter model catalog 2026-06-13 15:49:42 +00:00
mathias.loh 00c5b75ed9 feat(ollama-cloud): add kimi-k2.7-code 2026-06-13 22:42:54 +08:00
ririnto d210e45dd5 refactor(zai-coding-plan): split GLM-5.2 metadata into model + base_model reference
Move provider-agnostic facts (name, family, dates, capability flags,
limit, modalities) into models/zhipuai/glm-5.2.toml and reference it
via base_model in the provider TOML, which now keeps only provider-
specific fields (reasoning_options, interleaved, cost, per-model
anthropic [provider] override). Per README wrapper-provider guidance.
2026-06-13 22:39:29 +09:00
ririnto c9e026b5de feat(zai-coding-plan): add GLM-5.2 model metadata 2026-06-13 18:04:46 +09:00
Jubal Mabaquiao 3be537dad4 Add ZAI Coding Plan GLM-5.2 2026-06-13 16:45:57 +08:00
Aiden Cline 63a7bc11a9 Merge pull request #2216 from anomalyco/feat/inceptron-reasoning-options-wave3
[inceptron] Add reasoning options
2026-06-13 00:30:24 -05:00
Aiden Cline 0d2db5359d Merge pull request #2258 from anomalyco/feat/alibaba-coding-plan-cn-reasoning-options-final
[alibaba-coding-plan-cn] Add reasoning options
2026-06-13 00:27:45 -05:00
Aiden Cline a2d9f79f7e Merge pull request #2255 from anomalyco/feat/alibaba-coding-plan-reasoning-options-final
[alibaba-coding-plan] Add reasoning options
2026-06-13 00:27:30 -05:00
Aiden Cline e4d366cf4f Merge pull request #2256 from anomalyco/feat/evroc-reasoning-options-final
[evroc] Add reasoning options
2026-06-13 00:27:15 -05:00
Aiden Cline 9631b93843 Merge pull request #2260 from anomalyco/feat/alibaba-token-plan-cn-reasoning-options-final
feat(alibaba-token-plan-cn): add reasoning options
2026-06-13 00:27:01 -05:00
Aiden Cline 5424fbd2de Merge pull request #2270 from anomalyco/automation/sync-models-openrouter
chore(sync): update OpenRouter model catalog
2026-06-13 00:26:42 -05:00
Aiden Cline 73cbf85a43 Merge pull request #2272 from anomalyco/automation/sync-models-vercel
chore(sync): update Vercel AI Gateway model catalog
2026-06-13 00:26:27 -05:00
Aiden Cline 097afb7e31 Merge pull request #2273 from zainhas/dev
[Together AI] add minimax m3
2026-06-13 00:26:12 -05:00
Zain Hasan 2c5ebe8219 [Together AI] add minimax m3 2026-06-12 22:12:45 -07:00
Frank 3a7b0ba2dc update zen models 2026-06-13 01:00:30 -04:00
github-actions[bot] e6c0abd6a9 chore(sync): update Vercel AI Gateway model catalog 2026-06-13 03:26:15 +00:00
github-actions[bot] 5288464365 chore(sync): update OpenRouter model catalog 2026-06-13 03:26:13 +00:00
Aiden Cline 7900fcd5a6 Merge pull request #2271 from shzdehmd/dev
feat(fireworks-ai): adding Kimi K2.7 Code, Qwen 3.7 Plus, and Minimax M3; removing deprecated models
2026-06-12 21:51:13 -05:00
Ahmad Shahzad 2df2c13060 feat(fireworks-ai): add K2.7 Code variants, Qwen 3.7 Plus, Minimax M3; remove deprecated models
- Add Kimi K2.7 Code (accounts/fireworks/models/kimi-k2p7-code)

- Add Kimi K2.7 Code Fast (accounts/fireworks/routers/kimi-k2p7-code-fast)

- Add Qwen 3.7 Plus (accounts/fireworks/models/qwen3p7-plus)

- Add Minimax M3 (accounts/fireworks/models/minimax-m3)

- Remove deprecated Kimi K2.5, Minimax M2.5, and Qwen 3.6 Plus
2026-06-13 07:48:41 +05:00
Aiden Cline f846124b1f Merge pull request #2257 from anomalyco/feat/google-reasoning-options-final
[google] Complete reasoning options
2026-06-12 17:47:42 -05:00
Aiden Cline cc81c1843f Merge pull request #2259 from anomalyco/feat/freemodel-reasoning-options-final
[freemodel] Add reasoning options
2026-06-12 17:47:16 -05:00
Aiden Cline c7823958d4 [freemodel] Add Anthropic reasoning controls 2026-06-12 17:42:25 -05:00
Aiden Cline 0178741953 [freemodel] Add OpenAI reasoning efforts 2026-06-12 17:34:32 -05:00
Aiden Cline 75db7752f5 Merge pull request #2156 from anomalyco/automation/sync-models-openrouter
chore(sync): update OpenRouter model catalog
2026-06-12 17:31:09 -05:00
Aiden Cline 48d1bc2ee6 Merge pull request #2265 from jcraftsman/update-umans-ai-provider
Update Umans AI Coding Plan + add Umans AI (pay-per-token) provider
2026-06-12 17:30:09 -05:00
Aiden Cline d147b31d97 Merge pull request #2266 from anomalyco/automation/sync-models-vercel
chore(sync): update Vercel AI Gateway model catalog
2026-06-12 17:29:37 -05:00
github-actions[bot] b6fea3d470 chore(sync): update Vercel AI Gateway model catalog 2026-06-12 21:54:31 +00:00
github-actions[bot] d3fe5e3f4e chore(sync): update OpenRouter model catalog 2026-06-12 21:54:30 +00:00
Frank 1280fc51bc update go models 2026-06-12 16:24:50 -04:00
Aiden Cline 0e6590cc7a Merge pull request #2269 from anomalyco/fix/kimi-family-sync
fix(sync): normalize Kimi model families
2026-06-12 14:13:38 -05:00
Aiden Cline 78cb28fe8e fix(sync): normalize Kimi model families 2026-06-12 13:50:14 -05:00
Aiden Cline fcd71901fc Merge pull request #2267 from anomalyco/automation/sync-models-cloudflare-workers-ai
chore(sync): update Cloudflare Workers AI model catalog
2026-06-12 13:40:14 -05:00
github-actions[bot] 5ffe02911a chore(sync): update Cloudflare Workers AI model catalog 2026-06-12 18:04:11 +00:00
Aiden Cline add04f88a2 Merge pull request #2268 from leszek3737/zenmux/k2.7
Add Kimi K2.7 Code and version free model configuration
2026-06-12 12:32:38 -05:00
wassel alazhar 9fdad9f497 Add temperature = false for Kimi and Flash models (locked by Umans) 2026-06-12 19:28:31 +02:00
Leszek 1545b64010 [zenmux] Add Kimi K2.7 Code (Free) model configuration 2026-06-12 19:26:12 +02:00
Adrian Rogala 0382da663b Merge branch 'anomalyco:dev' into zenmux/k2.7 2026-06-12 19:22:21 +02:00
Leszek 0a933025aa [zenmux] Add kimi-k2.7-code model configuration 2026-06-12 19:20:59 +02:00
wassel alazhar 735e5f7f08 Remove umans-flash-beta from Coding Plan (deprecated, sunset 2026-06-07) 2026-06-12 19:16:05 +02:00
wassel alazhar a414765865 Update Umans AI Coding Plan and add Umans AI (pay-per-token) provider
Umans AI Coding Plan (subscription):
- Add umans-kimi-k2.7 (Kimi K2.7 Code) model
- Add umans-flash-beta (deprecated alias for umans-flash)
- Fix umans-glm-5.1: add vision modality (via handoff) and interleaved reasoning
- Fix umans-flash: add interleaved reasoning field
- Fix umans-qwen3.6-35b-a3b: add interleaved reasoning field
- Add reasoning_options to all models
- Add explicit name field to models using base_model

Umans AI (new provider - pay-per-token for orgs):
- New provider for organization service-account usage
- Per-token pricing from the org billing page:
  - Kimi K2.6: /bin/bash.95/.00 (input/output), /bin/bash.20 cache read
  - Kimi K2.7 Code: /bin/bash.95/.00, /bin/bash.19 cache read
  - GLM 5.1: .40/.40, /bin/bash.29 cache read
  - Umans Flash (Qwen3.6-35B-A3B): /bin/bash.15/.00, /bin/bash.05 cache read
  - Umans Coder: routes to Kimi K2.6 rates
- Same endpoint (api.code.umans.ai), different billing model
2026-06-12 19:08:15 +02:00
Aiden Cline 32f2c6de2a Merge pull request #2263 from anomalyco/feat/kimi-k2.7-code
feat(models): add Kimi K2.7 Code
2026-06-12 11:36:40 -05:00
Aiden Cline bd6fc4b145 feat(models): add Kimi K2.7 Code 2026-06-12 11:35:17 -05:00
Aiden Cline a0957ebea8 Merge pull request #2237 from anomalyco/feat/crof-reasoning-options-wave4
[crof] Add reasoning options
2026-06-12 11:17:12 -05:00
Aiden Cline 8b50fa5029 [crof] Add DeepSeek V4 reasoning efforts 2026-06-12 11:01:44 -05:00
Aiden Cline d6f87b6e64 Merge pull request #2233 from anomalyco/feat/gitlab-reasoning-options-wave4
[gitlab] Add reasoning options
2026-06-12 10:51:47 -05:00
Aiden Cline a66ef9ca19 Merge pull request #2209 from anomalyco/feat/meganova-reasoning-options-wave3
[meganova] Add reasoning options
2026-06-12 10:30:41 -05:00
Aiden Cline a48f0722e8 Merge pull request #2240 from anomalyco/feat/fastrouter-reasoning-options-wave4
[fastrouter] Add reasoning options
2026-06-12 10:28:15 -05:00
Aiden Cline aed6a48d73 Merge pull request #2241 from anomalyco/feat/neon-reasoning-options-wave4
[neon] Add reasoning options
2026-06-12 10:27:49 -05:00
Aiden Cline 1b24a035da Merge pull request #2245 from anomalyco/feat/helicone-reasoning-options-wave4
[helicone] Add reasoning options
2026-06-12 10:27:20 -05:00
Aiden Cline 560dceadf3 Merge pull request #2261 from anomalyco/feat/alibaba-token-plan-reasoning-options-final
[alibaba-token-plan] Add reasoning options
2026-06-12 10:26:40 -05:00
Aiden Cline f3607ba954 Merge pull request #2262 from anomalyco/feat/lmstudio-reasoning-options-final
[lmstudio] Add GPT-OSS reasoning options
2026-06-12 10:26:18 -05:00
Aiden Cline 6b90987895 Merge pull request #2248 from anomalyco/automation/sync-models-xai
chore(sync): update xAI model catalog
2026-06-12 10:26:05 -05:00
github-actions[bot] ec6b7af421 chore(sync): update xAI model catalog 2026-06-12 15:25:05 +00:00
Aiden Cline 25c2cf9224 [lmstudio] Add GPT-OSS reasoning options 2026-06-12 10:22:51 -05:00
Aiden Cline a4cdec5316 [alibaba-token-plan] Add reasoning options 2026-06-12 10:21:30 -05:00
Aiden Cline 90f36e0550 [freemodel] Add reasoning options 2026-06-12 10:21:27 -05:00
Aiden Cline f15aad08ef feat(alibaba-token-plan-cn): add reasoning options 2026-06-12 10:21:26 -05:00
Aiden Cline 063429a4ae [digitalocean] Cover remaining reasoning options 2026-06-12 10:20:56 -05:00
Aiden Cline b21c08dc44 [alibaba-coding-plan-cn] Add reasoning options 2026-06-12 10:20:42 -05:00
Aiden Cline 592da7f45c [google] Complete reasoning options 2026-06-12 10:20:36 -05:00
Aiden Cline 717892fd72 [evroc] Add reasoning options 2026-06-12 10:20:26 -05:00
Aiden Cline deef87451d [alibaba-coding-plan] Add reasoning options 2026-06-12 10:20:23 -05:00
Aiden Cline cd3c1f22f7 Merge remote-tracking branch 'origin/dev' into feat/digitalocean-reasoning-options-wave4 2026-06-12 10:19:56 -05:00
Aiden Cline 3f9980168e Merge pull request #2251 from houtanb/dev
Fix release dates
2026-06-12 09:51:58 -05:00
Jack 6f900fa761 Merge pull request #2180 from anomalyco/fix/opencode-go-minimax-m3-pricing
fix(opencode-go): update MiniMax M3 pricing
2026-06-12 21:09:49 +08:00
Houtan Bastani 61a153e6bb Update Mistral Large 2411 release date
Set mistral-large-2411 release_date and last_updated  metadata to 2024-11-18.

Evidence:

https://github.com/mistralai/platform-docs-public/blob/main/src/schema/models/models/mistral-large-2-1-24-11.ts#L9
2026-06-12 11:35:43 +02:00
Houtan Bastani 5a8f9d44d5 Update Gemini 2.5 Flash and Gemini 2.5 Pro release dates
Set Gemini 2.5 Flash and Gemini 2.5 Pro release_date and last_updated metadata to 2025-06-17.

Evidence:

https://ai.google.dev/gemini-api/docs/deprecations#gemini-2.5-flash-models

https://ai.google.dev/gemini-api/docs/deprecations#gemini-2.5-pro-models
2026-06-12 11:35:33 +02:00
Aiden Cline 629ce9b9f7 Merge pull request #2243 from anomalyco/feat/opencode-go-reasoning-options-wave4
[opencode-go] Add reasoning options
2026-06-12 00:07:39 -05:00
Aiden Cline 074022b5ad [huggingface] Correct fixed reasoning controls 2026-06-11 23:58:31 -05:00
Aiden Cline c562522e4f [opencode-go] Normalize DeepSeek V4 efforts 2026-06-11 23:57:47 -05:00
Aiden Cline dd051fd682 [helicone] Add reasoning options 2026-06-11 23:56:41 -05:00
Aiden Cline 074a288d15 [huggingface] Add reasoning options 2026-06-11 23:56:40 -05:00
Aiden Cline 2d0173d177 [opencode-go] Add reasoning options 2026-06-11 23:56:33 -05:00
Aiden Cline df75f7c438 [neon] Add reasoning options 2026-06-11 23:56:10 -05:00
Aiden Cline ffe754d81c [fastrouter] Add reasoning options 2026-06-11 23:56:04 -05:00
Aiden Cline c67d3e84ff [digitalocean] Add reasoning options 2026-06-11 23:55:32 -05:00
Aiden Cline 2f5d53cdf3 [crof] Add reasoning options 2026-06-11 23:54:59 -05:00
Aiden Cline 08b5fd9061 [gitlab] Add reasoning options 2026-06-11 23:54:10 -05:00
Aiden Cline 5aeaaa8d47 [anyapi] Add reasoning options 2026-06-11 23:52:40 -05:00
Aiden Cline 12280f413b [chutes] Add reasoning options 2026-06-11 23:52:31 -05:00
Aiden Cline 1a772fd297 Merge pull request #2223 from anomalyco/feat/google-vertex-reasoning-options-wave3
[google-vertex] Add MaaS reasoning options
2026-06-11 23:52:15 -05:00
Aiden Cline 38c708714f [cloudflare-ai-gateway] Add reasoning options 2026-06-11 23:52:04 -05:00
Aiden Cline 13abc41ac9 [abacus] Add reasoning options 2026-06-11 23:51:42 -05:00
Aiden Cline cf6a5e104d [auriko] Add reasoning options 2026-06-11 23:51:41 -05:00
Aiden Cline 128e0fbd8a [ambient] Add reasoning options 2026-06-11 23:50:16 -05:00
Aiden Cline c63920050a [google-vertex] Add MaaS reasoning options 2026-06-11 23:50:13 -05:00
Aiden Cline 24d2a74f4d [xiaomi-token-plan] Add reasoning toggles 2026-06-11 23:50:05 -05:00
Aiden Cline e62b47a005 [azure] Backfill DeepSeek V4 reasoning options 2026-06-11 23:49:52 -05:00
Aiden Cline eac6d1aaed [mistral] Mark Magistral reasoning controls fixed 2026-06-11 23:49:47 -05:00
Aiden Cline a914876008 [gmicloud] Add reasoning options 2026-06-11 23:49:46 -05:00
Aiden Cline 794203e12c [lilac] Add reasoning options 2026-06-11 23:49:45 -05:00
Aiden Cline 2624678dbe [dinference] Mark reasoning controls fixed 2026-06-11 23:49:42 -05:00
Aiden Cline 2d18ebb301 [inceptron] Mark reasoning controls fixed 2026-06-11 23:49:40 -05:00
Aiden Cline df45483742 Merge pull request #2211 from anomalyco/feat/wafer.ai-reasoning-options-wave3
[wafer.ai] Add reasoning options
2026-06-11 23:49:22 -05:00
Aiden Cline 4ecdcb8f2b Merge pull request #2196 from anomalyco/feat/hpc-ai-reasoning-options-wave3
[hpc-ai] Add reasoning options
2026-06-11 23:48:29 -05:00
Aiden Cline 4644def1ae [hpc-ai] Remove unsupported reasoning efforts 2026-06-11 23:45:03 -05:00
Aiden Cline f9091af5ee Merge pull request #2198 from anomalyco/feat/mixlayer-reasoning-options-wave3
[mixlayer] Add reasoning options
2026-06-11 23:41:20 -05:00
Aiden Cline 7022a48bfc Merge pull request #2205 from anomalyco/feat/vultr-reasoning-options-wave3
[vultr] Add reasoning options
2026-06-11 23:40:45 -05:00
Aiden Cline dda69225d8 Merge pull request #2190 from anomalyco/feat/perplexity-reasoning-options-wave3
[perplexity] Add reasoning options
2026-06-11 23:38:49 -05:00
Aiden Cline 2e020b1dd2 Merge pull request #2194 from anomalyco/feat/minimax-coding-plan-reasoning-options-wave3
[minimax-coding-plan] Complete reasoning options
2026-06-11 23:38:32 -05:00
Aiden Cline 67252bda30 Merge pull request #2197 from anomalyco/feat/submodel-reasoning-options-wave3
[submodel] Add reasoning options
2026-06-11 23:38:20 -05:00
Aiden Cline ac1566f622 Merge pull request #2193 from anomalyco/feat/minimax-reasoning-options-wave3
[minimax] Complete reasoning options
2026-06-11 23:38:02 -05:00
Aiden Cline 48837609aa Merge pull request #2199 from anomalyco/feat/v0-reasoning-options-wave3
[v0] Add reasoning options
2026-06-11 23:37:49 -05:00
Aiden Cline c2a0ff023a Merge pull request #2138 from martinmose/add-zeldoc-provider
feat(provider): add zeldoc provider
2026-06-11 23:28:07 -05:00
Aiden Cline 282821e7b6 Merge pull request #2208 from anomalyco/feat/qihang-ai-reasoning-options-wave3
[qihang-ai] Add reasoning options
2026-06-11 23:25:07 -05:00
Aiden Cline 1b8e53bcbd Merge pull request #2192 from anomalyco/feat/minimax-cn-reasoning-options-wave3
[minimax-cn] Complete reasoning options
2026-06-11 23:14:09 -05:00
Aiden Cline f671147f71 Merge pull request #2207 from anomalyco/feat/scaleway-reasoning-options-wave3
[scaleway] Add reasoning options
2026-06-11 23:13:54 -05:00
Aiden Cline e23e759601 Merge pull request #2204 from anomalyco/feat/clarifai-reasoning-options-wave3
[clarifai] Add reasoning options
2026-06-11 23:13:40 -05:00
Aiden Cline 4b4546f3e3 Merge pull request #2213 from anomalyco/feat/friendli-reasoning-options-wave3
[friendli] Add reasoning options
2026-06-11 23:13:24 -05:00
Aiden Cline 040f0ca995 [wafer.ai] Add DeepSeek V4 effort controls 2026-06-11 23:12:29 -05:00
Aiden Cline 9acac34889 [friendli] Remove unsupported reasoning efforts 2026-06-11 23:11:37 -05:00
Aiden Cline 78ad91f773 Merge pull request #2212 from anomalyco/feat/iflowcn-reasoning-options-wave3
[iflowcn] Add reasoning options
2026-06-11 23:10:34 -05:00
Aiden Cline 4b0aeef538 Merge pull request #2214 from anomalyco/feat/io-net-reasoning-options-wave3
[io-net] Add reasoning options
2026-06-11 23:09:58 -05:00
Aiden Cline 856787cb84 [friendli] Add reasoning options 2026-06-11 23:08:36 -05:00
Aiden Cline 084f0bb4ba [iflowcn] Add reasoning options 2026-06-11 23:08:36 -05:00
Aiden Cline ee1301fb63 [io-net] Add reasoning options 2026-06-11 23:08:36 -05:00
Aiden Cline 502957b778 [wafer.ai] Add reasoning options 2026-06-11 23:08:29 -05:00
Aiden Cline 3fba77ee56 [the-grid-ai] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline 0a6286e468 [regolo-ai] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline 8af96ce933 [berget] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline 4a056bd1ef [meganova] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline 9f11a93d06 [vultr] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline be8d8a2ec2 [qihang-ai] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline d4193dbad6 [scaleway] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline fb6b0985ce [clarifai] Add reasoning options 2026-06-11 23:07:50 -05:00
Aiden Cline 506ca0f7c3 [neuralwatt] Add reasoning options 2026-06-11 23:07:49 -05:00
Aiden Cline 4cafdb31ff [tencent-coding-plan] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline d97aedf7a1 [modelscope] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline 404bba4d1f [minimax-cn-coding-plan] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline 2bb4fe287e [hpc-ai] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline b58c396106 [mixlayer] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline 575f078887 [minimax-coding-plan] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline acf194ec01 [submodel] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline c80ff1ad2c [minimax] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline a41f6f5913 [v0] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline 8dffe03a9c [minimax-cn] Add reasoning options 2026-06-11 23:07:20 -05:00
Aiden Cline 9ea761af1a [perplexity] Add reasoning options 2026-06-11 23:07:07 -05:00
Aiden Cline c10ba76860 [upstage] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline 30a019056f [moonshotai] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline d7c4b11163 [nova] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline 1018ddf139 [cloudferro-sherlock] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline a5e572bcf6 [drun] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline 2d52062693 [moark] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline 6f3b739418 [poolside] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline f52cc7e895 [lucidquery] Add reasoning options 2026-06-11 23:06:33 -05:00
Aiden Cline 473d12c44b [inception] Add reasoning options 2026-06-11 23:06:33 -05:00
Jack 9401952857 chore(opencode-go): preserve MiniMax M3 file ending 2026-06-12 12:01:40 +08:00
Jack 623f5e8ea4 fix(opencode-go): update MiniMax M3 pricing 2026-06-12 11:59:03 +08:00
Aiden Cline 526b4cd543 Merge pull request #2179 from anomalyco/feat/deepseek-reasoning-options-wave2
[deepseek] Complete reasoning options
2026-06-11 22:55:29 -05:00
Aiden Cline b7d165296c Merge pull request #2172 from anomalyco/feat/privatemode-ai-reasoning-options
[privatemode-ai] Add reasoning options
2026-06-11 22:55:21 -05:00
Aiden Cline 655f757925 Merge pull request #2177 from anomalyco/feat/llmtr-reasoning-options
[llmtr] Complete reasoning options
2026-06-11 22:55:07 -05:00
Aiden Cline cce129dfd9 Merge pull request #2173 from anomalyco/feat/zai-coding-plan-reasoning-options
[zai-coding-plan] Complete reasoning options
2026-06-11 22:54:57 -05:00
Aiden Cline 548f3b5869 Merge pull request #2175 from anomalyco/feat/zhipuai-coding-plan-reasoning-options
[zhipuai-coding-plan] Complete reasoning options
2026-06-11 22:54:51 -05:00
Aiden Cline f349a9dde6 Merge pull request #2176 from anomalyco/feat/kuae-cloud-reasoning-options
[kuae-cloud-coding-plan] Add reasoning options
2026-06-11 22:54:34 -05:00
Aiden Cline 05c1041160 [deepseek] Mark reasoner controls fixed 2026-06-11 22:54:19 -05:00
Aiden Cline 215c3dfbc8 Merge pull request #2174 from anomalyco/feat/kimi-for-coding-reasoning-options
[kimi-for-coding] Complete reasoning options
2026-06-11 22:54:16 -05:00
Aiden Cline ddc6ad75a2 Merge pull request #2178 from anomalyco/feat/firepass-reasoning-options
[firepass] Add reasoning options
2026-06-11 22:54:05 -05:00
Aiden Cline 757bee7de8 Merge pull request #2167 from anomalyco/feat/claudinio-reasoning-options
[claudinio] Add reasoning options
2026-06-11 22:53:39 -05:00
Aiden Cline 5ee32a47ae Merge pull request #2170 from anomalyco/feat/bailing-reasoning-options
[bailing] Add reasoning options
2026-06-11 22:53:30 -05:00
Aiden Cline 2c22f4b488 [privatemode-ai] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline 097296f6c6 [llmtr] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline 2559ed64c5 [zai-coding-plan] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline c56ac404d3 [zhipuai-coding-plan] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline 4681e30afb [kuae-cloud-coding-plan] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline 94cd023a88 [kimi-for-coding] Add reasoning options 2026-06-11 22:51:42 -05:00
Aiden Cline b5c33b6347 [deepseek] Add reasoning options 2026-06-11 22:51:41 -05:00
Aiden Cline 2014d883e4 [firepass] Add reasoning options 2026-06-11 22:51:41 -05:00
Aiden Cline 2f749b7cf9 [claudinio] Add reasoning options 2026-06-11 22:51:31 -05:00
Aiden Cline 32066b7856 Merge pull request #2131 from anomalyco/feat/ovhcloud-reasoning-audit
feat(ovhcloud): add reasoning options
2026-06-11 22:42:30 -05:00
Martin Mose Facondini 8f2607fcdb fix(zeldoc): make logo black 2026-06-12 00:12:49 +02:00
Martin Mose Facondini 23e07a27d2 fix(zeldoc): correct z-code model fields 2026-06-12 00:12:44 +02:00
Aiden Cline 9df50e0ccc chore(ovhcloud): remove test changes 2026-06-11 12:00:37 -05:00
Aiden Cline 21581d8f4c test(sync): cover factored reasoning overrides 2026-06-10 23:20:55 -05:00
Aiden Cline 20bfe37a53 fix(sync): resolve changed canonical base 2026-06-10 23:19:32 -05:00
Aiden Cline fc4a781c2f fix(ovhcloud): complete reasoning controls 2026-06-10 23:16:08 -05:00
Aiden Cline 0e371b761d fix(sync): resolve reasoning before preservation 2026-06-10 23:14:13 -05:00
Aiden Cline c4650219c3 fix(sync): drop stale reasoning options 2026-06-10 23:13:06 -05:00
Aiden Cline 9fb0474d1c feat(ovhcloud): add reasoning options 2026-06-10 23:13:06 -05:00
Martin Mose Facondini 23b4754d23 rename agentic-coding model to z-code 2026-06-10 23:06:51 +02:00
Martin Mose Facondini 20ffc3909f add zeldoc provider with agentic-coding model 2026-06-10 23:06:21 +02:00
896 changed files with 1792 additions and 818 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
name = "Gemini 2.5 Flash"
family = "gemini-flash"
release_date = "2025-03-20"
last_updated = "2025-06-05"
release_date = "2025-06-17"
last_updated = "2025-06-17"
attachment = true
reasoning = true
temperature = true
+2 -2
View File
@@ -1,7 +1,7 @@
name = "Gemini 2.5 Pro"
family = "gemini-pro"
release_date = "2025-03-20"
last_updated = "2025-06-05"
release_date = "2025-06-17"
last_updated = "2025-06-17"
attachment = true
reasoning = true
temperature = true
+2 -2
View File
@@ -1,7 +1,7 @@
name = "Mistral Large 2.1"
family = "mistral-large"
release_date = "2024-11-01"
last_updated = "2024-11-04"
release_date = "2024-11-18"
last_updated = "2024-11-18"
attachment = false
reasoning = false
temperature = true
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Kimi K2.5"
family = "kimi-k2.5"
family = "kimi-k2"
release_date = "2026-01"
last_updated = "2026-01"
attachment = false
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Kimi K2.6"
family = "kimi-k2.6"
family = "kimi-k2"
release_date = "2026-04-21"
last_updated = "2026-04-21"
attachment = true
+23
View File
@@ -0,0 +1,23 @@
name = "Kimi K2.7 Code"
family = "kimi-k2"
release_date = "2026-06-12"
last_updated = "2026-06-12"
attachment = true
reasoning = true
temperature = false
tool_call = true
structured_output = true
knowledge = "2025-01"
open_weights = true
[limit]
context = 262_144
output = 262_144
[modalities]
input = ["text", "image", "video"]
output = ["text"]
[[weights]]
label = "Hugging Face"
url = "https://huggingface.co/moonshotai/Kimi-K2.7-Code"
+18
View File
@@ -0,0 +1,18 @@
name = "GLM-5.2"
family = "glm"
release_date = "2026-06-13"
last_updated = "2026-06-13"
attachment = false
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[limit]
context = 1_000_000
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+4 -1
View File
@@ -13,7 +13,7 @@ import { z } from "zod";
import path from "node:path";
import { existsSync, readFileSync } from "node:fs";
import { mkdir } from "node:fs/promises";
import { ModelFamilyValues } from "../src/family.js";
import { inferKimiFamily, ModelFamilyValues } from "../src/family.js";
const API_ENDPOINT = "https://llm.chutes.ai/v1/models";
const MODEL_METADATA_DIR = path.join(import.meta.dirname, "..", "..", "..", "models");
@@ -261,6 +261,9 @@ function matchesFamily(target: string, family: string): boolean {
}
function inferFamily(modelId: string, modelName: string): string | undefined {
const kimiFamily = inferKimiFamily(modelId, modelName);
if (kimiFamily !== undefined) return kimiFamily;
const sortedFamilies = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
// First pass: try exact substring matches
@@ -26,7 +26,7 @@
import { z } from "zod";
import path from "node:path";
import { mkdir } from "node:fs/promises";
import { ModelFamilyValues } from "../src/family.js";
import { inferKimiFamily, ModelFamilyValues } from "../src/family.js";
const MODELS_API = "https://api.digitalocean.com/v2/gen-ai/models";
const PRICING_API = "https://www.digitalocean.com/api/static-content/v1/products";
@@ -142,7 +142,7 @@ const PRICING_NAME_MAP: Record<string, string> = {
// DO-hosted
"qwen3-32b": "alibaba-qwen3-32b",
"minimax m2.5 (public preview)": "minimax-m2.5",
"kimi k2.5": "kimi-k2.5",
"kimi k2.5": "kimi-k2",
"nvidia nemotron 3 super 120b (public preview)": "nvidia-nemotron-3-super-120b",
"glm 5": "glm-5",
};
@@ -311,6 +311,9 @@ function formatNumber(n: number): string {
}
function inferFamily(modelId: string, modelName: string): string | undefined {
const kimiFamily = inferKimiFamily(modelId, modelName);
if (kimiFamily !== undefined) return kimiFamily;
const sorted = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
const targets = [modelId.toLowerCase(), modelName.toLowerCase()];
for (const family of sorted) {
@@ -4,6 +4,8 @@ import { mkdir } from "node:fs/promises";
import path from "node:path";
import { z } from "zod";
import { inferKimiFamily } from "../src/family.js";
// Friendli API endpoint
const API_ENDPOINT = "https://api.friendli.ai/serverless/v1/models";
@@ -53,6 +55,9 @@ const familyPatterns: [RegExp, string][] = [
];
function inferFamily(modelId: string, modelName: string): string | undefined {
const kimiFamily = inferKimiFamily(modelId, modelName);
if (kimiFamily !== undefined) return kimiFamily;
for (const [pattern, family] of familyPatterns) {
if (pattern.test(modelId) || pattern.test(modelName)) {
return family;
+4 -1
View File
@@ -3,7 +3,7 @@
import path from "node:path";
import { mkdir } from "node:fs/promises";
import { z } from "zod";
import { ModelFamilyValues } from "../src/family.js";
import { inferKimiFamily, ModelFamilyValues } from "../src/family.js";
const API_ENDPOINT = "https://trace.wandb.ai/inference/analysis/artificialanalysis/models";
@@ -176,6 +176,9 @@ function matchesFamily(target: string, family: string): boolean {
}
function inferFamily(modelId: string, modelName: string): string | undefined {
const kimiFamily = inferKimiFamily(modelId, modelName);
if (kimiFamily !== undefined) return kimiFamily;
const sortedFamilies = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
for (const family of sortedFamilies) {
+8 -2
View File
@@ -66,8 +66,7 @@ export const ModelFamilyValues = [
// Moonshot Kimi
"kimi",
"kimi-k2.5",
"kimi-k2.6",
"kimi-k2",
"kimi-free",
"kimi-thinking",
@@ -423,3 +422,10 @@ export const ModelFamilyValues = [
export const ModelFamily = z.enum(ModelFamilyValues);
export type ModelFamily = z.infer<typeof ModelFamily>;
export function inferKimiFamily(...values: string[]): ModelFamily | undefined {
const target = values.join(" ").toLowerCase();
if (/kimi[^a-z0-9]*k2(?:[^a-z0-9]*\d+)?[^a-z0-9]*thinking/.test(target)) return "kimi-thinking";
if (/kimi[\s_-]*k2/.test(target)) return "kimi-k2";
return undefined;
}
+27 -5
View File
@@ -119,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 }>();
@@ -163,13 +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(
provider.preserveBaseModels === false
? translated.model
: preserveBaseModel(translated.model, existing.get(relativePath)?.authored),
translatedModel,
existing.get(relativePath)?.authored,
resolvedReasoning,
),
}));
if (!parsed.success) {
@@ -319,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,
@@ -392,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) {
@@ -2,7 +2,7 @@ import { z } from "zod";
import { readFileSync, readdirSync } from "node:fs";
import path from "node:path";
import { ModelFamilyValues } from "../../family.js";
import { inferKimiFamily, ModelFamilyValues } from "../../family.js";
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js";
const API_ENDPOINT = "https://openrouter.ai/api/v1/models";
@@ -113,6 +113,9 @@ function modalities(values: string[], fallback: Modality[]): Modality[] {
}
function inferFamily(model: OpenRouterModel, name: string) {
const kimiFamily = inferKimiFamily(model.id, name);
if (kimiFamily !== undefined) return kimiFamily;
const target = `${model.id} ${name}`.toLowerCase();
return [...ModelFamilyValues]
.sort((a, b) => b.length - a.length)
@@ -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,
+5 -17
View File
@@ -2,7 +2,7 @@ import { readdirSync } from "node:fs";
import path from "node:path";
import { z } from "zod";
import { ModelFamilyValues } from "../../family.js";
import { inferKimiFamily, ModelFamilyValues } from "../../family.js";
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js";
import { factorBaseModel } from "./openrouter.js";
@@ -166,15 +166,12 @@ export function buildVeniceModel(
limit,
modalities: { input: [...new Set(input)], output: ["text" as const] },
};
const changed = existing !== undefined && Object.entries(authoritative).some(([key, value]) => {
return stable(value) !== stable(existing[key as keyof ExistingModel]);
});
const releaseDate = new Date(model.created * 1000).toISOString().slice(0, 10);
const values: SyncedFullModel = {
...authoritative,
family: baseModel == null ? inferFamily(model.id, spec.name) ?? existing?.family : existing?.family,
release_date: releaseDate,
last_updated: existing === undefined || changed ? today : (existing.last_updated ?? today),
last_updated: existing?.last_updated ?? today,
knowledge: existing?.knowledge,
open_weights: spec.modelSource?.toLowerCase().includes("huggingface")
?? existing?.open_weights
@@ -230,6 +227,9 @@ function isReasoningEffort(value: string): value is ReasoningEffort {
}
function inferFamily(id: string, name: string) {
const kimiFamily = inferKimiFamily(id, name);
if (kimiFamily !== undefined) return kimiFamily;
const target = `${id} ${name}`.toLowerCase();
return [...ModelFamilyValues]
.sort((a, b) => b.length - a.length)
@@ -239,15 +239,3 @@ function inferFamily(id: string, name: string) {
return new RegExp(`(^|[^a-z0-9])${value}(?=$|[^a-z0-9])`).test(target);
});
}
function stable(value: unknown): string {
if (Array.isArray(value)) return `[${value.map(stable).sort().join(",")}]`;
if (value !== null && typeof value === "object") {
return `{${Object.entries(value)
.filter(([, item]) => item !== undefined)
.sort(([a], [b]) => a.localeCompare(b))
.map(([key, item]) => `${key}:${stable(item)}`)
.join(",")}}`;
}
return JSON.stringify(value);
}
+4 -1
View File
@@ -1,6 +1,6 @@
import { z } from "zod";
import { ModelFamilyValues } from "../../family.js";
import { inferKimiFamily, ModelFamilyValues } from "../../family.js";
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js";
import { factorBaseModel, resolveCanonicalBaseModel } from "./openrouter.js";
@@ -153,6 +153,9 @@ function buildCost(pricing: VercelModel["pricing"], existing?: ExistingModel["co
}
function inferFamily(modelID: string, name: string) {
const kimiFamily = inferKimiFamily(modelID, name);
if (kimiFamily !== undefined) return kimiFamily;
const targets = [modelID, name].map((value) => value.toLowerCase());
const families = [...ModelFamilyValues].sort((a, b) => b.length - a.length);
return families.find((family) => targets.some((target) => target.includes(family.toLowerCase())))
+15
View File
@@ -0,0 +1,15 @@
import { expect, test } from "bun:test";
import { inferKimiFamily } from "../src/family.js";
test("Kimi family inference ignores K2 versions", () => {
expect(inferKimiFamily("moonshotai/kimi-k2.5")).toBe("kimi-k2");
expect(inferKimiFamily("moonshotai/kimi-k2.7-code")).toBe("kimi-k2");
expect(inferKimiFamily("Kimi K2.6")).toBe("kimi-k2");
});
test("Kimi family inference preserves thinking variants", () => {
expect(inferKimiFamily("moonshotai/kimi-k2-thinking")).toBe("kimi-thinking");
expect(inferKimiFamily("Kimi K2.5 Thinking")).toBe("kimi-thinking");
expect(inferKimiFamily("moonshotai/kimi-k2.6:thinking")).toBe("kimi-thinking");
});
+2 -2
View File
@@ -91,7 +91,7 @@ test("Venice uses boundary-aware family matching", () => {
expect(synced).toMatchObject({ family: "gemma" });
});
test("Venice maps API fields and keeps inherited models compact", () => {
test("Venice maps API fields without bumping inherited model timestamps", () => {
const synced = buildVeniceModel(catalogModel, {
base_model: "openai/gpt-5.4",
name: "GPT-5.4",
@@ -113,7 +113,7 @@ test("Venice maps API fields and keeps inherited models compact", () => {
expect(synced).toMatchObject({
base_model: "openai/gpt-5.4",
base_model_omit: ["limit.input"],
last_updated: "2026-06-10",
last_updated: "2026-03-09",
reasoning_options: [{ type: "effort", values: ["none", "low", "medium", "high"] }],
interleaved: { field: "reasoning_content" },
cost: {
@@ -4,6 +4,7 @@ release_date = "2024-11-28"
last_updated = "2024-11-28"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = 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
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-04-29"
last_updated = "2025-04-29"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-07-22"
last_updated = "2025-07-22"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-02-19"
last_updated = "2025-02-19"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2024-10-31"
@@ -4,6 +4,7 @@ release_date = "2025-10-15"
last_updated = "2025-10-15"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-02-28"
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
last_updated = "2025-08-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -4,6 +4,7 @@ release_date = "2025-05-14"
last_updated = "2025-05-14"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -4,6 +4,7 @@ release_date = "2025-11-01"
last_updated = "2025-11-01"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-03-31"
@@ -4,6 +4,7 @@ release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-05-31"
@@ -4,6 +4,7 @@ release_date = "2025-05-14"
last_updated = "2025-05-14"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -4,6 +4,7 @@ release_date = "2025-09-29"
last_updated = "2025-09-29"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-07-31"
@@ -4,6 +4,7 @@ release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-08-31"
@@ -4,6 +4,7 @@ release_date = "2025-01-20"
last_updated = "2025-01-20"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-06-01"
last_updated = "2025-06-01"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-06-15"
last_updated = "2025-06-15"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-01-20"
last_updated = "2025-01-20"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2025-03-20"
last_updated = "2025-06-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-01"
@@ -4,6 +4,7 @@ release_date = "2025-03-25"
last_updated = "2025-03-25"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-01"
@@ -4,6 +4,7 @@ release_date = "2025-12-17"
last_updated = "2025-12-17"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
knowledge = "2025-01"
@@ -4,6 +4,7 @@ release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
structured_output = true
@@ -4,6 +4,7 @@ release_date = "2026-02-19"
last_updated = "2026-02-19"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
structured_output = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-09-15"
last_updated = "2025-09-15"
attachment = false
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-08-07"
last_updated = "2025-08-07"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05-30"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-08-07"
last_updated = "2025-08-07"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05-30"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2026-01-01"
last_updated = "2026-01-01"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
knowledge = "2024-09-30"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2025-12-11"
last_updated = "2025-12-11"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2025-08-31"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-12-11"
last_updated = "2025-12-11"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2025-08-31"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -4,6 +4,7 @@ release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2025-08-31"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2025-08-31"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2025-08-31"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-08-07"
last_updated = "2025-08-07"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-09-30"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-07-09"
last_updated = "2025-07-09"
attachment = true
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -1,5 +1,5 @@
name = "Kimi K2 Turbo Preview"
family = "kimi"
family = "kimi-k2"
release_date = "2025-07-08"
last_updated = "2025-07-08"
attachment = false
+2 -1
View File
@@ -1,9 +1,10 @@
name = "Kimi K2.5"
family = "kimi"
family = "kimi-k2"
release_date = "2026-01"
last_updated = "2026-01"
attachment = false
reasoning = true
reasoning_options = []
structured_output = true
temperature = true
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2024-12-20"
last_updated = "2025-01-29"
attachment = false
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-06-10"
last_updated = "2025-06-10"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-04-16"
last_updated = "2025-04-16"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05"
tool_call = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-04-16"
last_updated = "2025-04-16"
attachment = true
reasoning = true
reasoning_options = []
temperature = false
knowledge = "2024-05"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2025-08-05"
last_updated = "2025-08-05"
attachment = true
reasoning = true
reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
temperature = true
tool_call = true
open_weights = true
+1
View File
@@ -4,6 +4,7 @@ release_date = "2025-05-28"
last_updated = "2025-05-28"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = false
@@ -4,6 +4,7 @@ release_date = "2025-07-28"
last_updated = "2025-07-28"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -4,6 +4,7 @@ release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
reasoning_options = []
temperature = true
tool_call = true
open_weights = true
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5-pro"
reasoning_options = [{ type = "toggle" }]
name = "Coding Xiaomi MiMo-V2.5-Pro"
family = "mimo-v2.5-pro"
last_updated = "2026-05-13"
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5"
reasoning_options = [{ type = "toggle" }]
name = "Coding Xiaomi MiMo-V2.5"
family = "mimo-v2.5"
last_updated = "2026-05-13"
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Kimi K2.5"
family = "kimi-k2.5"
family = "kimi-k2"
release_date = "2026-01"
last_updated = "2026-01"
attachment = true
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Kimi K2.6"
family = "kimi-k2.6"
family = "kimi-k2"
release_date = "2026-04-21"
last_updated = "2026-04-21"
attachment = true
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5"
reasoning_options = [{ type = "toggle" }]
name = "Xiaomi MiMo-V2.5 (free)"
family = "mimo-v2.5"
last_updated = "2026-05-13"
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5-pro"
reasoning_options = [{ type = "toggle" }]
name = "Xiaomi MiMo-V2.5-Pro (free)"
family = "mimo-v2.5-pro"
last_updated = "2026-05-13"
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5-pro"
reasoning_options = [{ type = "toggle" }]
name = "Xiaomi MiMo-V2.5-Pro"
family = "mimo-v2.5-pro"
last_updated = "2026-05-13"
@@ -1,4 +1,5 @@
base_model = "xiaomi/mimo-v2.5"
reasoning_options = [{ type = "toggle" }]
name = "Xiaomi MiMo-V2.5"
family = "mimo-v2.5"
last_updated = "2026-05-13"
@@ -1,5 +1,5 @@
name = "Moonshot Kimi K2 Thinking"
family = "kimi"
family = "kimi-thinking"
release_date = "2025-11-06"
last_updated = "2025-11-06"
attachment = false
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Moonshot Kimi K2.5"
family = "kimi"
family = "kimi-k2"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = false
+1 -1
View File
@@ -1,5 +1,5 @@
name = "Moonshot Kimi K2.6"
family = "kimi"
family = "kimi-k2"
release_date = "2026-04-21"
last_updated = "2026-04-21"
attachment = true
@@ -1,5 +1,5 @@
name = "kimi/kimi-k2.5"
family = "kimi"
family = "kimi-k2"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = false
@@ -1,5 +1,5 @@
name = "Moonshot Kimi K2 Instruct"
family = "kimi"
family = "kimi-k2"
release_date = "2025-01-01"
last_updated = "2025-01-01"
attachment = false
@@ -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 = "2025-12-22"
last_updated = "2025-12-22"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
tool_call = true
knowledge = "2025-04"
@@ -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 = false
@@ -1,9 +1,10 @@
name = "Kimi K2.5"
family = "kimi"
family = "kimi-k2"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = true
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
tool_call = true
knowledge = "2025-01"
@@ -4,6 +4,7 @@ release_date = "2026-02-03"
last_updated = "2026-02-03"
attachment = false
reasoning = false
reasoning_options = []
temperature = true
tool_call = true
structured_output = true
@@ -4,6 +4,7 @@ release_date = "2025-07-23"
last_updated = "2025-07-23"
attachment = false
reasoning = false
reasoning_options = []
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2026-01-23"
last_updated = "2026-01-23"
attachment = false
reasoning = false
reasoning_options = [{ type = "toggle" }]
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -4,6 +4,7 @@ release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -1,4 +1,5 @@
base_model = "alibaba/qwen3.6-flash"
reasoning_options = [{ type = "toggle" }]
[cost]
input = 0.1875
@@ -4,6 +4,7 @@ release_date = "2026-04-02"
last_updated = "2026-04-02"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -1,4 +1,5 @@
base_model = "alibaba/qwen3.7-max"
reasoning_options = [{ type = "toggle" }]
[cost]
input = 2.5
@@ -1,4 +1,5 @@
base_model = "alibaba/qwen3.7-plus"
reasoning_options = [{ type = "toggle" }]
[cost]
input = 0
@@ -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 = "2025-12-22"
last_updated = "2025-12-22"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
tool_call = true
knowledge = "2025-04"
@@ -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 = false
@@ -1,9 +1,10 @@
name = "Kimi K2.5"
family = "kimi"
family = "kimi-k2"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = true
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
tool_call = true
knowledge = "2025-01"
@@ -4,6 +4,7 @@ release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -1,4 +1,5 @@
base_model = "alibaba/qwen3.6-flash"
reasoning_options = [{ type = "toggle" }]
[cost]
input = 0.1875
@@ -4,6 +4,7 @@ release_date = "2026-04-02"
last_updated = "2026-04-02"
attachment = false
reasoning = true
reasoning_options = [{ type = "toggle" }]
temperature = true
knowledge = "2025-04"
tool_call = true
@@ -1,4 +1,5 @@
base_model = "alibaba/qwen3.7-max"
reasoning_options = [{ type = "toggle" }]
[cost]
input = 2.5

Some files were not shown because too many files have changed in this diff Show More