Compare commits

...

5 Commits

Author SHA1 Message Date
Aiden Cline da7f7853a6 fix(cloudflare-ai-gateway): correct model metadata 2026-08-03 23:16:01 -05:00
Aiden Cline 36235594af chore: remove Cloudflare gateway sync 2026-08-03 22:02:22 -05:00
Aiden Cline dfe2237a73 fix(sync): preserve canonical Cloudflare gateway catalog 2026-08-03 21:58:40 -05:00
Aiden Cline b2aa5f29f5 fix(sync): stop auto-omitting limit.input on AI Gateway models
factorBaseModel was called with context:0 when the gateway has no
limit override, which tripped baseModelOmit and stripped inherited
limit.input. Inherit the base metadata context instead.
2026-08-03 21:56:49 -05:00
Aiden Cline 463a69b73c feat(sync): add Cloudflare AI Gateway model catalog sync
Reuse Workers AI sync secrets against /compat/models (gateway default).
Hybrid sync: API membership + list prices; capabilities via base_model.
Refresh catalog: add missing OpenAI/Workers AI models, drop nemotron.
2026-08-03 21:56:48 -05:00
25 changed files with 266 additions and 0 deletions
@@ -0,0 +1,6 @@
base_model = "openai/gpt-4.1-mini"
[cost]
input = 0.4
output = 1.6
cache_read = 0.1
@@ -0,0 +1,6 @@
base_model = "openai/gpt-4.1-nano"
[cost]
input = 0.1
output = 0.4
cache_read = 0.025
@@ -0,0 +1,6 @@
base_model = "openai/gpt-4.1"
[cost]
input = 2
output = 8
cache_read = 0.5
@@ -0,0 +1,7 @@
base_model = "openai/gpt-5-chat-latest"
reasoning_options = []
[cost]
input = 1.25
output = 10
cache_read = 0.125
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5-codex"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
[cost]
input = 1.25
output = 10
cache_read = 0.125
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5-mini"
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
[cost]
input = 0.25
output = 2
cache_read = 0.025
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5-nano"
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
[cost]
input = 0.05
output = 0.4
cache_read = 0.005
@@ -0,0 +1,9 @@
base_model = "openai/gpt-5-pro"
[[reasoning_options]]
type = "effort"
values = ["high"]
[cost]
input = 15
output = 120
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.1-chat-latest"
[[reasoning_options]]
type = "effort"
values = ["medium"]
[cost]
input = 1.25
output = 10
cache_read = 0.125
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.1-codex-max"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high", "xhigh"]
[cost]
input = 1.25
output = 10
cache_read = 0.125
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.1-codex-mini"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
[cost]
input = 0.25
output = 2
cache_read = 0.025
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.2-chat-latest"
[[reasoning_options]]
type = "effort"
values = ["medium"]
[cost]
input = 1.75
output = 14
cache_read = 0.175
@@ -0,0 +1,9 @@
base_model = "openai/gpt-5.2-pro"
[[reasoning_options]]
type = "effort"
values = ["medium", "high", "xhigh"]
[cost]
input = 21
output = 168
@@ -0,0 +1,6 @@
base_model = "openai/gpt-5.3-chat-latest"
[cost]
input = 1.75
output = 14
cache_read = 0.175
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.4-mini"
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh"]
[cost]
input = 0.75
output = 4.5
cache_read = 0.075
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5.4-nano"
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh"]
[cost]
input = 0.2
output = 1.25
cache_read = 0.02
@@ -0,0 +1,14 @@
base_model = "openai/gpt-5.4-pro"
[[reasoning_options]]
type = "effort"
values = ["medium", "high", "xhigh"]
[cost]
input = 30
output = 180
[[cost.tiers]]
tier = { type = "context", size = 272_000 }
input = 60
output = 270
@@ -0,0 +1,14 @@
base_model = "openai/gpt-5.5-pro"
[[reasoning_options]]
type = "effort"
values = ["medium", "high", "xhigh"]
[cost]
input = 30
output = 180
[[cost.tiers]]
tier = { type = "context", size = 272_000 }
input = 60
output = 270
@@ -0,0 +1,19 @@
base_model = "openai/gpt-5.6-sol"
name = "GPT-5.6"
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh", "max"]
[cost]
input = 5
output = 30
cache_read = 0.5
cache_write = 6.25
[[cost.tiers]]
tier = { type = "context", size = 272_000 }
input = 10
output = 45
cache_read = 1
cache_write = 12.5
@@ -0,0 +1,10 @@
base_model = "openai/gpt-5"
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
[cost]
input = 1.25
output = 10
cache_read = 0.125
@@ -0,0 +1,9 @@
base_model = "openai/o1-pro"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
[cost]
input = 150
output = 600
@@ -0,0 +1,10 @@
base_model = "openai/o3-deep-research"
[[reasoning_options]]
type = "effort"
values = ["medium"]
[cost]
input = 10
output = 40
cache_read = 2.5
@@ -0,0 +1,10 @@
base_model = "openai/o4-mini-deep-research"
[[reasoning_options]]
type = "effort"
values = ["medium"]
[cost]
input = 2
output = 8
cache_read = 0.5
@@ -0,0 +1,21 @@
# Toggle: chat_template_kwargs.enable_thinking = true|false
# Effort: reasoning_effort = low|medium|high
# https://developers.cloudflare.com/workers-ai/models/gemma-4-26b-a4b-it/ (accessed 2026-08-03)
base_model = "google/gemma-4-26b-a4b-it"
interleaved = true
[[reasoning_options]]
type = "toggle"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
[cost]
input = 0.1
output = 0.3
[limit]
context = 256_000
output = 16_384
@@ -0,0 +1,20 @@
# Toggle: chat_template_kwargs.enable_thinking = true|false
# Effort: reasoning_effort = low|medium|high
# https://developers.cloudflare.com/workers-ai/models/kimi-k2.7-code/ (accessed 2026-08-03)
base_model = "moonshotai/kimi-k2.7-code"
temperature = true
[[reasoning_options]]
type = "toggle"
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
[cost]
input = 0.95
output = 4
cache_read = 0.19
[modalities]
input = ["text", "image"]