diff --git a/packages/core/script/generate-helicone.ts b/packages/core/script/generate-helicone.ts index 9bc2f8272..1332aaca6 100644 --- a/packages/core/script/generate-helicone.ts +++ b/packages/core/script/generate-helicone.ts @@ -2,7 +2,7 @@ import { z } from "zod"; import path from "node:path"; -import { mkdir, rm, readdir, stat } from "node:fs/promises"; +import { mkdir } from "node:fs/promises"; // Helicone public model registry endpoint const DEFAULT_ENDPOINT = @@ -70,6 +70,10 @@ function boolFromParams(params: string[] | undefined, keys: string[]): boolean { return keys.some((k) => set.has(k.toLowerCase())); } +function cleanPrice(p: number): string { + return parseFloat(p.toPrecision(10)).toString(); +} + function sanitizeModalities(values: string[] | undefined): string[] { if (!values) return ["text"]; // default to text const allowed = new Set(["text", "audio", "image", "video", "pdf"]); @@ -77,7 +81,30 @@ function sanitizeModalities(values: string[] | undefined): string[] { return out.length > 0 ? out : ["text"]; } -function formatToml(model: z.infer) { +// ── Manually curated fields preserved from existing TOML ───────────────────── + +interface ExistingModel { + family?: string; + status?: string; + open_weights?: boolean; + release_date?: string; + knowledge?: string; +} + +async function loadExistingModel(filePath: string): Promise { + try { + const file = Bun.file(filePath); + if (!(await file.exists())) return null; + const toml = await import(filePath, { with: { type: "toml" } }).then( + (m) => m.default, + ); + return toml as ExistingModel; + } catch { + return null; + } +} + +function formatToml(model: z.infer, existing: ExistingModel | null) { const ep = pickEndpoint(model); const pricing = ep?.pricing; @@ -85,11 +112,9 @@ function formatToml(model: z.infer) { const nowISO = new Date().toISOString().slice(0, 10); const rdRaw = model.trainingDate ? String(model.trainingDate) : nowISO; - const releaseDate = rdRaw.slice(0, 10); - const lastUpdated = releaseDate; - const knowledge = model.trainingDate - ? String(model.trainingDate).slice(0, 7) - : undefined; + const releaseDate = existing?.release_date ?? rdRaw.slice(0, 10); + const knowledge = existing?.knowledge ?? + (model.trainingDate ? String(model.trainingDate).slice(0, 7) : undefined); const attachment = false; // Not exposed by Helicone registry const temperature = boolFromParams(supported, ["temperature"]); @@ -104,14 +129,16 @@ function formatToml(model: z.infer) { const lines: string[] = []; lines.push(`name = "${model.name.replaceAll('"', '\\"')}"`); + if (existing?.family) lines.push(`family = "${existing.family}"`); lines.push(`release_date = "${releaseDate}"`); - lines.push(`last_updated = "${lastUpdated}"`); + lines.push(`last_updated = "${nowISO}"`); lines.push(`attachment = ${attachment}`); lines.push(`reasoning = ${reasoning}`); lines.push(`temperature = ${temperature}`); lines.push(`tool_call = ${toolCall}`); if (knowledge) lines.push(`knowledge = "${knowledge}"`); - lines.push(`open_weights = false`); + lines.push(`open_weights = ${existing?.open_weights ?? false}`); + if (existing?.status) lines.push(`status = "${existing.status}"`); lines.push(""); if ( @@ -123,15 +150,15 @@ function formatToml(model: z.infer) { (reasoning && pricing.reasoning)) !== undefined ) { lines.push(`[cost]`); - if (pricing.prompt !== undefined) lines.push(`input = ${pricing.prompt}`); + if (pricing.prompt !== undefined) lines.push(`input = ${cleanPrice(pricing.prompt)}`); if (pricing.completion !== undefined) - lines.push(`output = ${pricing.completion}`); + lines.push(`output = ${cleanPrice(pricing.completion)}`); if (reasoning && pricing.reasoning !== undefined) - lines.push(`reasoning = ${pricing.reasoning}`); + lines.push(`reasoning = ${cleanPrice(pricing.reasoning)}`); if (pricing.cacheRead !== undefined) - lines.push(`cache_read = ${pricing.cacheRead}`); + lines.push(`cache_read = ${cleanPrice(pricing.cacheRead)}`); if (pricing.cacheWrite !== undefined) - lines.push(`cache_write = ${pricing.cacheWrite}`); + lines.push(`cache_write = ${cleanPrice(pricing.cacheWrite)}`); lines.push(""); } @@ -179,29 +206,48 @@ async function main() { const models = parsed.data.data.models; - // Clean output directory: remove subfolders and existing TOML files await mkdir(outDir, { recursive: true }); - for (const entry of await readdir(outDir)) { - const p = path.join(outDir, entry); - const st = await stat(p); - if (st.isDirectory()) { - await rm(p, { recursive: true, force: true }); - } else if (st.isFile() && entry.endsWith(".toml")) { - await rm(p, { force: true }); - } - } let created = 0; + let updated = 0; + let unchanged = 0; + + const apiFilenames = new Set(); for (const m of models) { const fileSafeId = m.id.replaceAll("/", "-"); const filePath = path.join(outDir, `${fileSafeId}.toml`); - const toml = formatToml(m); - await Bun.write(filePath, toml); - created++; + apiFilenames.add(`${fileSafeId}.toml`); + const existing = await loadExistingModel(filePath); + const newToml = formatToml(m, existing); + + if (existing === null) { + await Bun.write(filePath, newToml); + created++; + continue; + } + + // Compare ignoring last_updated line — only write if something meaningful changed + const strip = (s: string) => s.replace(/^last_updated = ".+"\n/m, ""); + const existingRaw = await Bun.file(filePath).text(); + + if (strip(newToml) === strip(existingRaw)) { + unchanged++; + } else { + await Bun.write(filePath, newToml); + updated++; + } + } + + let orphaned = 0; + for await (const file of new Bun.Glob("*.toml").scan({ cwd: outDir, absolute: false })) { + if (!apiFilenames.has(file)) { + console.log(`Note: ${file} not in Helicone API (kept)`); + orphaned++; + } } console.log( - `Generated ${created} model file(s) under providers/helicone/models/*.toml`, + `providers/helicone/models: ${created} created, ${updated} updated, ${unchanged} unchanged, ${orphaned} not in API (kept)`, ); } diff --git a/providers/helicone/models/claude-3.5-haiku.toml b/providers/helicone/models/claude-3.5-haiku.toml index 7d60d1bca..1fa7ee286 100644 --- a/providers/helicone/models/claude-3.5-haiku.toml +++ b/providers/helicone/models/claude-3.5-haiku.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude 3.5 Haiku" family = "claude-haiku" release_date = "2024-10-22" -last_updated = "2024-10-22" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,7 +10,7 @@ knowledge = "2024-10" open_weights = false [cost] -input = 0.7999999999999999 +input = 0.8 output = 4 cache_read = 0.08 cache_write = 1 diff --git a/providers/helicone/models/claude-3.5-sonnet-v2.toml b/providers/helicone/models/claude-3.5-sonnet-v2.toml index ef237090b..308e695c3 100644 --- a/providers/helicone/models/claude-3.5-sonnet-v2.toml +++ b/providers/helicone/models/claude-3.5-sonnet-v2.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude 3.5 Sonnet v2" family = "claude-sonnet" release_date = "2024-10-22" -last_updated = "2024-10-22" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 3 output = 15 -cache_read = 0.30000000000000004 +cache_read = 0.3 cache_write = 3.75 [limit] diff --git a/providers/helicone/models/claude-3.7-sonnet.toml b/providers/helicone/models/claude-3.7-sonnet.toml index a7334908f..c83444eaa 100644 --- a/providers/helicone/models/claude-3.7-sonnet.toml +++ b/providers/helicone/models/claude-3.7-sonnet.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude 3.7 Sonnet" family = "claude-sonnet" release_date = "2025-02-19" -last_updated = "2025-02-19" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 3 output = 15 -cache_read = 0.30000000000000004 +cache_read = 0.3 cache_write = 3.75 [limit] diff --git a/providers/helicone/models/claude-4.5-haiku.toml b/providers/helicone/models/claude-4.5-haiku.toml index cf4e521f7..6688d0332 100644 --- a/providers/helicone/models/claude-4.5-haiku.toml +++ b/providers/helicone/models/claude-4.5-haiku.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude 4.5 Haiku" family = "claude-haiku" release_date = "2025-10-01" -last_updated = "2025-10-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1 output = 5 -cache_read = 0.09999999999999999 +cache_read = 0.1 cache_write = 1.25 [limit] diff --git a/providers/helicone/models/claude-4.5-opus.toml b/providers/helicone/models/claude-4.5-opus.toml index 0eb4cf053..3ae5595df 100644 --- a/providers/helicone/models/claude-4.5-opus.toml +++ b/providers/helicone/models/claude-4.5-opus.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude Opus 4.5" family = "claude-opus" release_date = "2025-11-24" -last_updated = "2025-11-24" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 5 output = 25 -cache_read = 0.50 +cache_read = 0.5 cache_write = 6.25 [limit] diff --git a/providers/helicone/models/claude-4.5-sonnet.toml b/providers/helicone/models/claude-4.5-sonnet.toml index 40eb07ab6..3002d2ea7 100644 --- a/providers/helicone/models/claude-4.5-sonnet.toml +++ b/providers/helicone/models/claude-4.5-sonnet.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude Sonnet 4.5" family = "claude-sonnet" release_date = "2025-09-29" -last_updated = "2025-09-29" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 3 output = 15 -cache_read = 0.30000000000000004 +cache_read = 0.3 cache_write = 3.75 [limit] diff --git a/providers/helicone/models/claude-4.6-opus.toml b/providers/helicone/models/claude-4.6-opus.toml new file mode 100644 index 000000000..6896ca351 --- /dev/null +++ b/providers/helicone/models/claude-4.6-opus.toml @@ -0,0 +1,23 @@ +name = "Anthropic: Claude Opus 4.6" +release_date = "2026-02-05" +last_updated = "2026-03-03" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2026-02" +open_weights = false + +[cost] +input = 5 +output = 25 +cache_read = 0.5 +cache_write = 6.25 + +[limit] +context = 1000000 +output = 64000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/claude-4.6-sonnet.toml b/providers/helicone/models/claude-4.6-sonnet.toml new file mode 100644 index 000000000..06bf096c4 --- /dev/null +++ b/providers/helicone/models/claude-4.6-sonnet.toml @@ -0,0 +1,23 @@ +name = "Anthropic: Claude Sonnet 4.6" +release_date = "2026-02-17" +last_updated = "2026-03-03" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2026-02" +open_weights = false + +[cost] +input = 3 +output = 15 +cache_read = 0.3 +cache_write = 3.75 + +[limit] +context = 1000000 +output = 64000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/claude-haiku-4-5-20251001.toml b/providers/helicone/models/claude-haiku-4-5-20251001.toml index ae0208b5b..83793f184 100644 --- a/providers/helicone/models/claude-haiku-4-5-20251001.toml +++ b/providers/helicone/models/claude-haiku-4-5-20251001.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude 4.5 Haiku (20251001)" family = "claude-haiku" release_date = "2025-10-01" -last_updated = "2025-10-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1 output = 5 -cache_read = 0.09999999999999999 +cache_read = 0.1 cache_write = 1.25 [limit] diff --git a/providers/helicone/models/claude-sonnet-4-5-20250929.toml b/providers/helicone/models/claude-sonnet-4-5-20250929.toml index c08808fa4..01ae627b3 100644 --- a/providers/helicone/models/claude-sonnet-4-5-20250929.toml +++ b/providers/helicone/models/claude-sonnet-4-5-20250929.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude Sonnet 4.5 (20250929)" family = "claude-sonnet" release_date = "2025-09-29" -last_updated = "2025-09-29" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 3 output = 15 -cache_read = 0.30000000000000004 +cache_read = 0.3 cache_write = 3.75 [limit] diff --git a/providers/helicone/models/claude-sonnet-4.toml b/providers/helicone/models/claude-sonnet-4.toml index 227c0508c..5383f6b7a 100644 --- a/providers/helicone/models/claude-sonnet-4.toml +++ b/providers/helicone/models/claude-sonnet-4.toml @@ -1,7 +1,7 @@ name = "Anthropic: Claude Sonnet 4" family = "claude-sonnet" release_date = "2025-05-14" -last_updated = "2025-05-14" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 3 output = 15 -cache_read = 0.30000000000000004 +cache_read = 0.3 cache_write = 3.75 [limit] diff --git a/providers/helicone/models/deepseek-v3.1-terminus.toml b/providers/helicone/models/deepseek-v3.1-terminus.toml index c44811ee7..c9c790ff6 100644 --- a/providers/helicone/models/deepseek-v3.1-terminus.toml +++ b/providers/helicone/models/deepseek-v3.1-terminus.toml @@ -1,7 +1,7 @@ name = "DeepSeek V3.1 Terminus" family = "deepseek" release_date = "2025-09-22" -last_updated = "2025-09-22" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 0.27 output = 1 -cache_read = 0.21600000000000003 +cache_read = 0.216 [limit] context = 128000 diff --git a/providers/helicone/models/deepseek-v3.2.toml b/providers/helicone/models/deepseek-v3.2.toml index 4138e5e6d..bc7dc3f1f 100644 --- a/providers/helicone/models/deepseek-v3.2.toml +++ b/providers/helicone/models/deepseek-v3.2.toml @@ -1,7 +1,7 @@ name = "DeepSeek V3.2" family = "deepseek" release_date = "2025-09-22" -last_updated = "2025-09-22" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,8 +10,8 @@ knowledge = "2025-09" open_weights = false [cost] -input = 0.27 -output = 0.41 +input = 0.26 +output = 0.4 [limit] context = 163840 diff --git a/providers/helicone/models/gemini-2.0-flash-exp.toml b/providers/helicone/models/gemini-2.0-flash-exp.toml new file mode 100644 index 000000000..115433078 --- /dev/null +++ b/providers/helicone/models/gemini-2.0-flash-exp.toml @@ -0,0 +1,21 @@ +name = "Google Gemini 2.0 Flash Experimental" +release_date = "2024-12-11" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = false +knowledge = "2024-12" +open_weights = false + +[cost] +input = 0 +output = 0 + +[limit] +context = 1000000 +output = 8192 + +[modalities] +input = ["text", "image"] +output = ["text", "image"] diff --git a/providers/helicone/models/gemini-2.5-flash-lite.toml b/providers/helicone/models/gemini-2.5-flash-lite.toml index ecd264496..abe77827d 100644 --- a/providers/helicone/models/gemini-2.5-flash-lite.toml +++ b/providers/helicone/models/gemini-2.5-flash-lite.toml @@ -1,7 +1,7 @@ name = "Google Gemini 2.5 Flash Lite" family = "gemini-flash-lite" release_date = "2025-07-22" -last_updated = "2025-07-22" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -10,10 +10,10 @@ knowledge = "2025-07" open_weights = false [cost] -input = 0.09999999999999999 -output = 0.39999999999999997 -cache_read = 0.024999999999999998 -cache_write = 0.09999999999999999 +input = 0.1 +output = 0.4 +cache_read = 0.025 +cache_write = 0.1 [limit] context = 1048576 diff --git a/providers/helicone/models/gemini-3-flash-preview.toml b/providers/helicone/models/gemini-3-flash-preview.toml new file mode 100644 index 000000000..f36cb1109 --- /dev/null +++ b/providers/helicone/models/gemini-3-flash-preview.toml @@ -0,0 +1,22 @@ +name = "Google Gemini 3 Flash Preview" +release_date = "2025-12-17" +last_updated = "2026-03-03" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2025-12" +open_weights = false + +[cost] +input = 0.5 +output = 3 +cache_read = 0.05 + +[limit] +context = 1048576 +output = 65536 + +[modalities] +input = ["text", "image", "audio", "video"] +output = ["text"] diff --git a/providers/helicone/models/gemini-3-pro-image-preview.toml b/providers/helicone/models/gemini-3-pro-image-preview.toml new file mode 100644 index 000000000..5d8700150 --- /dev/null +++ b/providers/helicone/models/gemini-3-pro-image-preview.toml @@ -0,0 +1,21 @@ +name = "Google Gemini 3 Pro Image Preview" +release_date = "2025-11-20" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = false +knowledge = "2025-11" +open_weights = false + +[cost] +input = 2 +output = 12 + +[limit] +context = 65536 +output = 32768 + +[modalities] +input = ["text", "image"] +output = ["text", "image"] diff --git a/providers/helicone/models/gemini-3-pro-preview.toml b/providers/helicone/models/gemini-3-pro-preview.toml index 757b2d599..daddb5feb 100644 --- a/providers/helicone/models/gemini-3-pro-preview.toml +++ b/providers/helicone/models/gemini-3-pro-preview.toml @@ -1,7 +1,7 @@ name = "Google Gemini 3 Pro Preview" family = "gemini-pro" release_date = "2025-11-18" -last_updated = "2025-11-18" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 2 output = 12 -cache_read = 0.19999999999999998 +cache_read = 0.2 [limit] context = 1048576 diff --git a/providers/helicone/models/gemini-3.1-pro-preview.toml b/providers/helicone/models/gemini-3.1-pro-preview.toml new file mode 100644 index 000000000..1ee032318 --- /dev/null +++ b/providers/helicone/models/gemini-3.1-pro-preview.toml @@ -0,0 +1,22 @@ +name = "Google Gemini 3.1 Pro Preview" +release_date = "2026-02-09" +last_updated = "2026-03-03" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2026-02" +open_weights = false + +[cost] +input = 2 +output = 12 +cache_read = 0.2 + +[limit] +context = 1048576 +output = 65536 + +[modalities] +input = ["text", "image", "audio", "video"] +output = ["text"] diff --git a/providers/helicone/models/gemma-3-12b-it.toml b/providers/helicone/models/gemma-3-12b-it.toml index 723ad7592..9b443fdf2 100644 --- a/providers/helicone/models/gemma-3-12b-it.toml +++ b/providers/helicone/models/gemma-3-12b-it.toml @@ -1,7 +1,7 @@ name = "Google Gemma 3 12B" family = "gemma" release_date = "2024-12-01" -last_updated = "2024-12-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,8 +10,8 @@ knowledge = "2024-12" open_weights = false [cost] -input = 0.049999999999999996 -output = 0.09999999999999999 +input = 0.05 +output = 0.1 [limit] context = 131072 diff --git a/providers/helicone/models/glm-4.6.toml b/providers/helicone/models/glm-4.6.toml index 8e9605780..06a74b9f3 100644 --- a/providers/helicone/models/glm-4.6.toml +++ b/providers/helicone/models/glm-4.6.toml @@ -1,7 +1,7 @@ name = "Zai GLM-4.6" family = "glm" release_date = "2024-07-18" -last_updated = "2024-07-18" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -10,7 +10,7 @@ knowledge = "2024-07" open_weights = false [cost] -input = 0.44999999999999996 +input = 0.45 output = 1.5 [limit] diff --git a/providers/helicone/models/glm-4.7.toml b/providers/helicone/models/glm-4.7.toml new file mode 100644 index 000000000..5268ee54e --- /dev/null +++ b/providers/helicone/models/glm-4.7.toml @@ -0,0 +1,21 @@ +name = "Zai GLM-4.7" +release_date = "2024-12-22" +last_updated = "2026-03-03" +attachment = false +reasoning = true +temperature = true +tool_call = true +knowledge = "2024-12" +open_weights = false + +[cost] +input = 0.43 +output = 1.75 + +[limit] +context = 204800 +output = 131072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/helicone/models/gpt-4.1-mini.toml b/providers/helicone/models/gpt-4.1-mini.toml index 275f6ebc9..58bfdd6aa 100644 --- a/providers/helicone/models/gpt-4.1-mini.toml +++ b/providers/helicone/models/gpt-4.1-mini.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-4.1 Mini" family = "gpt-mini" release_date = "2025-04-14" -last_updated = "2025-04-14" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-04" open_weights = false [cost] -input = 0.39999999999999997 -output = 1.5999999999999999 -cache_read = 0.09999999999999999 +input = 0.4 +output = 1.6 +cache_read = 0.1 [limit] context = 1047576 diff --git a/providers/helicone/models/gpt-4.1-nano.toml b/providers/helicone/models/gpt-4.1-nano.toml index 935645859..19b003344 100644 --- a/providers/helicone/models/gpt-4.1-nano.toml +++ b/providers/helicone/models/gpt-4.1-nano.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-4.1 Nano" family = "gpt-nano" release_date = "2025-04-14" -last_updated = "2025-04-14" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-04" open_weights = false [cost] -input = 0.09999999999999999 -output = 0.39999999999999997 -cache_read = 0.024999999999999998 +input = 0.1 +output = 0.4 +cache_read = 0.025 [limit] context = 1047576 diff --git a/providers/helicone/models/gpt-5-2025-08-07.toml b/providers/helicone/models/gpt-5-2025-08-07.toml new file mode 100644 index 000000000..a956584ae --- /dev/null +++ b/providers/helicone/models/gpt-5-2025-08-07.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5" +release_date = "2025-08-07" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = true +knowledge = "2025-08" +open_weights = false + +[cost] +input = 1.25 +output = 10 +cache_read = 0.125 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5-chat-latest.toml b/providers/helicone/models/gpt-5-chat-latest.toml index 1486ecaa5..8c6efc136 100644 --- a/providers/helicone/models/gpt-5-chat-latest.toml +++ b/providers/helicone/models/gpt-5-chat-latest.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5 Chat Latest" family = "gpt-codex" release_date = "2024-09-30" -last_updated = "2024-09-30" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 128000 diff --git a/providers/helicone/models/gpt-5-codex.toml b/providers/helicone/models/gpt-5-codex.toml index 5f9a13305..7ef6d9430 100644 --- a/providers/helicone/models/gpt-5-codex.toml +++ b/providers/helicone/models/gpt-5-codex.toml @@ -1,7 +1,7 @@ name = "OpenAI: GPT-5 Codex" family = "gpt-codex" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 400000 diff --git a/providers/helicone/models/gpt-5-mini-2025-08-07.toml b/providers/helicone/models/gpt-5-mini-2025-08-07.toml new file mode 100644 index 000000000..1fc84e567 --- /dev/null +++ b/providers/helicone/models/gpt-5-mini-2025-08-07.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5 Mini" +release_date = "2025-08-07" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = true +knowledge = "2025-08" +open_weights = false + +[cost] +input = 0.25 +output = 2 +cache_read = 0.025 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5-mini.toml b/providers/helicone/models/gpt-5-mini.toml index 18ce082ce..3b92a7e4a 100644 --- a/providers/helicone/models/gpt-5-mini.toml +++ b/providers/helicone/models/gpt-5-mini.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5 Mini" family = "gpt-mini" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 0.25 output = 2 -cache_read = 0.024999999999999998 +cache_read = 0.025 [limit] context = 400000 diff --git a/providers/helicone/models/gpt-5-nano-2025-08-07.toml b/providers/helicone/models/gpt-5-nano-2025-08-07.toml new file mode 100644 index 000000000..88c98702e --- /dev/null +++ b/providers/helicone/models/gpt-5-nano-2025-08-07.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5 Nano" +release_date = "2025-08-07" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = true +knowledge = "2025-08" +open_weights = false + +[cost] +input = 0.05 +output = 0.4 +cache_read = 0.005 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5-nano.toml b/providers/helicone/models/gpt-5-nano.toml index 156170d71..2ecd61b8a 100644 --- a/providers/helicone/models/gpt-5-nano.toml +++ b/providers/helicone/models/gpt-5-nano.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5 Nano" family = "gpt-nano" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -10,8 +10,8 @@ knowledge = "2025-01" open_weights = false [cost] -input = 0.049999999999999996 -output = 0.39999999999999997 +input = 0.05 +output = 0.4 cache_read = 0.005 [limit] diff --git a/providers/helicone/models/gpt-5-pro-2025-10-01.toml b/providers/helicone/models/gpt-5-pro-2025-10-01.toml new file mode 100644 index 000000000..639b1d00e --- /dev/null +++ b/providers/helicone/models/gpt-5-pro-2025-10-01.toml @@ -0,0 +1,21 @@ +name = "OpenAI: GPT-5 Pro" +release_date = "2025-10-01" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = true +knowledge = "2025-10" +open_weights = false + +[cost] +input = 15 +output = 120 + +[limit] +context = 128000 +output = 32768 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5-pro.toml b/providers/helicone/models/gpt-5-pro.toml index 39cc704b7..35f93d1bf 100644 --- a/providers/helicone/models/gpt-5-pro.toml +++ b/providers/helicone/models/gpt-5-pro.toml @@ -1,11 +1,11 @@ name = "OpenAI: GPT-5 Pro" family = "gpt-pro" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false -tool_call = false +tool_call = true knowledge = "2025-01" open_weights = false diff --git a/providers/helicone/models/gpt-5.1-2025-11-13.toml b/providers/helicone/models/gpt-5.1-2025-11-13.toml new file mode 100644 index 000000000..0272a819d --- /dev/null +++ b/providers/helicone/models/gpt-5.1-2025-11-13.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5.1" +release_date = "2025-11-13" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = true +knowledge = "2025-11" +open_weights = false + +[cost] +input = 1.25 +output = 10 +cache_read = 0.125 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text", "image"] diff --git a/providers/helicone/models/gpt-5.1-chat-latest.toml b/providers/helicone/models/gpt-5.1-chat-latest.toml index 7702eb760..9faab9798 100644 --- a/providers/helicone/models/gpt-5.1-chat-latest.toml +++ b/providers/helicone/models/gpt-5.1-chat-latest.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5.1 Chat" family = "gpt-codex" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 128000 @@ -20,4 +20,4 @@ output = 16384 [modalities] input = ["text", "image"] -output = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.1-codex-mini.toml b/providers/helicone/models/gpt-5.1-codex-mini.toml index ecfd58ea6..65235aaf1 100644 --- a/providers/helicone/models/gpt-5.1-codex-mini.toml +++ b/providers/helicone/models/gpt-5.1-codex-mini.toml @@ -1,7 +1,7 @@ name = "OpenAI: GPT-5.1 Codex Mini" family = "gpt-codex" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 0.25 output = 2 -cache_read = 0.024999999999999998 +cache_read = 0.025 [limit] context = 400000 @@ -20,4 +20,4 @@ output = 128000 [modalities] input = ["text", "image"] -output = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.1-codex.toml b/providers/helicone/models/gpt-5.1-codex.toml index bfba5f6cf..3275d226b 100644 --- a/providers/helicone/models/gpt-5.1-codex.toml +++ b/providers/helicone/models/gpt-5.1-codex.toml @@ -1,7 +1,7 @@ name = "OpenAI: GPT-5.1 Codex" family = "gpt-codex" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 400000 @@ -20,4 +20,4 @@ output = 128000 [modalities] input = ["text", "image"] -output = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.1.toml b/providers/helicone/models/gpt-5.1.toml index 7f885c88b..a233ed866 100644 --- a/providers/helicone/models/gpt-5.1.toml +++ b/providers/helicone/models/gpt-5.1.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5.1" family = "gpt" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 400000 @@ -20,4 +20,4 @@ output = 128000 [modalities] input = ["text", "image"] -output = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.2-chat-latest.toml b/providers/helicone/models/gpt-5.2-chat-latest.toml new file mode 100644 index 000000000..702ee75ff --- /dev/null +++ b/providers/helicone/models/gpt-5.2-chat-latest.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5.2 Chat" +release_date = "2025-12-11" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = true +knowledge = "2025-12" +open_weights = false + +[cost] +input = 1.75 +output = 14 +cache_read = 0.175 + +[limit] +context = 128000 +output = 16384 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.2-pro.toml b/providers/helicone/models/gpt-5.2-pro.toml new file mode 100644 index 000000000..2e6be20a6 --- /dev/null +++ b/providers/helicone/models/gpt-5.2-pro.toml @@ -0,0 +1,21 @@ +name = "OpenAI: GPT-5.2 Pro" +release_date = "2025-12-11" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = true +knowledge = "2025-12" +open_weights = false + +[cost] +input = 21 +output = 168 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.2.toml b/providers/helicone/models/gpt-5.2.toml new file mode 100644 index 000000000..40239ad40 --- /dev/null +++ b/providers/helicone/models/gpt-5.2.toml @@ -0,0 +1,22 @@ +name = "OpenAI GPT-5.2" +release_date = "2025-12-11" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = true +knowledge = "2025-12" +open_weights = false + +[cost] +input = 1.75 +output = 14 +cache_read = 0.175 + +[limit] +context = 400000 +output = 128000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/gpt-5.toml b/providers/helicone/models/gpt-5.toml index 132b853db..994bed1d6 100644 --- a/providers/helicone/models/gpt-5.toml +++ b/providers/helicone/models/gpt-5.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-5" family = "gpt" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = false @@ -12,7 +12,7 @@ open_weights = false [cost] input = 1.25 output = 10 -cache_read = 0.12500000000000003 +cache_read = 0.125 [limit] context = 400000 diff --git a/providers/helicone/models/gpt-image-1.5.toml b/providers/helicone/models/gpt-image-1.5.toml new file mode 100644 index 000000000..9733e3cb2 --- /dev/null +++ b/providers/helicone/models/gpt-image-1.5.toml @@ -0,0 +1,21 @@ +name = "OpenAI GPT Image 1.5" +release_date = "2025-12-01" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = false +knowledge = "2025-12" +open_weights = false + +[cost] +input = 5 +output = 10 + +[limit] +context = 8192 +output = 4096 + +[modalities] +input = ["text", "image"] +output = ["image", "text"] diff --git a/providers/helicone/models/gpt-image-1.toml b/providers/helicone/models/gpt-image-1.toml new file mode 100644 index 000000000..18f73e273 --- /dev/null +++ b/providers/helicone/models/gpt-image-1.toml @@ -0,0 +1,21 @@ +name = "OpenAI GPT Image 1" +release_date = "2025-04-01" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = false +tool_call = false +knowledge = "2025-04" +open_weights = false + +[cost] +input = 6.25 +output = 12.5 + +[limit] +context = 8192 +output = 4096 + +[modalities] +input = ["text", "image"] +output = ["image", "text"] diff --git a/providers/helicone/models/gpt-oss-20b.toml b/providers/helicone/models/gpt-oss-20b.toml index 0cdec499d..86b00f4cf 100644 --- a/providers/helicone/models/gpt-oss-20b.toml +++ b/providers/helicone/models/gpt-oss-20b.toml @@ -1,7 +1,7 @@ name = "OpenAI GPT-OSS 20b" family = "gpt-oss" release_date = "2024-06-01" -last_updated = "2024-06-01" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -10,8 +10,8 @@ knowledge = "2024-06" open_weights = false [cost] -input = 0.049999999999999996 -output = 0.19999999999999998 +input = 0.05 +output = 0.2 [limit] context = 131072 diff --git a/providers/helicone/models/grok-4-1-fast-non-reasoning.toml b/providers/helicone/models/grok-4-1-fast-non-reasoning.toml index c3a69d839..d41199389 100644 --- a/providers/helicone/models/grok-4-1-fast-non-reasoning.toml +++ b/providers/helicone/models/grok-4-1-fast-non-reasoning.toml @@ -1,7 +1,7 @@ name = "xAI Grok 4.1 Fast Non-Reasoning" family = "grok" release_date = "2025-11-17" -last_updated = "2025-11-17" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-11" open_weights = false [cost] -input = 0.19999999999999998 +input = 0.2 output = 0.5 -cache_read = 0.049999999999999996 +cache_read = 0.05 [limit] context = 2000000 diff --git a/providers/helicone/models/grok-4-1-fast-reasoning.toml b/providers/helicone/models/grok-4-1-fast-reasoning.toml index 01405f36f..c9f8d191a 100644 --- a/providers/helicone/models/grok-4-1-fast-reasoning.toml +++ b/providers/helicone/models/grok-4-1-fast-reasoning.toml @@ -1,7 +1,7 @@ name = "xAI Grok 4.1 Fast Reasoning" family = "grok" release_date = "2025-11-17" -last_updated = "2025-11-17" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-11" open_weights = false [cost] -input = 0.19999999999999998 +input = 0.2 output = 0.5 -cache_read = 0.049999999999999996 +cache_read = 0.05 [limit] context = 2000000 diff --git a/providers/helicone/models/grok-4-fast-non-reasoning.toml b/providers/helicone/models/grok-4-fast-non-reasoning.toml index 9f4801334..d5980bec4 100644 --- a/providers/helicone/models/grok-4-fast-non-reasoning.toml +++ b/providers/helicone/models/grok-4-fast-non-reasoning.toml @@ -1,7 +1,7 @@ name = "xAI Grok 4 Fast Non-Reasoning" family = "grok" release_date = "2025-09-19" -last_updated = "2025-09-19" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-09" open_weights = false [cost] -input = 0.19999999999999998 +input = 0.2 output = 0.5 -cache_read = 0.049999999999999996 +cache_read = 0.05 [limit] context = 2000000 diff --git a/providers/helicone/models/grok-4-fast-reasoning.toml b/providers/helicone/models/grok-4-fast-reasoning.toml index 3c8a4a59d..56eafff25 100644 --- a/providers/helicone/models/grok-4-fast-reasoning.toml +++ b/providers/helicone/models/grok-4-fast-reasoning.toml @@ -1,7 +1,7 @@ name = "xAI: Grok 4 Fast Reasoning" family = "grok" release_date = "2025-09-01" -last_updated = "2025-09-01" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -10,9 +10,9 @@ knowledge = "2025-09" open_weights = false [cost] -input = 0.19999999999999998 +input = 0.2 output = 0.5 -cache_read = 0.049999999999999996 +cache_read = 0.05 [limit] context = 2000000 diff --git a/providers/helicone/models/grok-code-fast-1.toml b/providers/helicone/models/grok-code-fast-1.toml index aeb6e302d..628642752 100644 --- a/providers/helicone/models/grok-code-fast-1.toml +++ b/providers/helicone/models/grok-code-fast-1.toml @@ -1,7 +1,7 @@ name = "xAI Grok Code Fast 1" family = "grok" release_date = "2024-08-25" -last_updated = "2024-08-25" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,7 +10,7 @@ knowledge = "2024-08" open_weights = false [cost] -input = 0.19999999999999998 +input = 0.2 output = 1.5 cache_read = 0.02 diff --git a/providers/helicone/models/kimi-k2-0711.toml b/providers/helicone/models/kimi-k2-0711.toml index 885b51a07..d95336600 100644 --- a/providers/helicone/models/kimi-k2-0711.toml +++ b/providers/helicone/models/kimi-k2-0711.toml @@ -1,7 +1,7 @@ name = "Kimi K2 (07/11)" family = "kimi" release_date = "2025-01-01" -last_updated = "2025-01-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,7 +10,7 @@ knowledge = "2025-01" open_weights = false [cost] -input = 0.5700000000000001 +input = 0.57 output = 2.3 [limit] diff --git a/providers/helicone/models/kimi-k2-0905.toml b/providers/helicone/models/kimi-k2-0905.toml index 580060bd1..e09542ed2 100644 --- a/providers/helicone/models/kimi-k2-0905.toml +++ b/providers/helicone/models/kimi-k2-0905.toml @@ -1,7 +1,7 @@ name = "Kimi K2 (09/05)" family = "kimi" release_date = "2025-09-05" -last_updated = "2025-09-05" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -12,7 +12,7 @@ open_weights = false [cost] input = 0.5 output = 2 -cache_read = 0.39999999999999997 +cache_read = 0.4 [limit] context = 262144 diff --git a/providers/helicone/models/kimi-k2.5.toml b/providers/helicone/models/kimi-k2.5.toml new file mode 100644 index 000000000..9cb2064d3 --- /dev/null +++ b/providers/helicone/models/kimi-k2.5.toml @@ -0,0 +1,22 @@ +name = "Kimi K2.5" +release_date = "2025-01-27" +last_updated = "2026-03-03" +attachment = false +reasoning = false +temperature = true +tool_call = true +knowledge = "2025-01" +open_weights = false + +[cost] +input = 1.2 +output = 1.2 +cache_read = 0.6 + +[limit] +context = 262144 +output = 16384 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/helicone/models/llama-3.1-8b-instant.toml b/providers/helicone/models/llama-3.1-8b-instant.toml index cecdfb812..d9b0085ae 100644 --- a/providers/helicone/models/llama-3.1-8b-instant.toml +++ b/providers/helicone/models/llama-3.1-8b-instant.toml @@ -1,7 +1,7 @@ name = "Meta Llama 3.1 8B Instant" family = "llama" release_date = "2024-07-01" -last_updated = "2024-07-01" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,7 +10,7 @@ knowledge = "2024-07" open_weights = false [cost] -input = 0.049999999999999996 +input = 0.05 output = 0.08 [limit] diff --git a/providers/helicone/models/llama-3.1-8b-instruct.toml b/providers/helicone/models/llama-3.1-8b-instruct.toml index 137ddd7d0..b356b4752 100644 --- a/providers/helicone/models/llama-3.1-8b-instruct.toml +++ b/providers/helicone/models/llama-3.1-8b-instruct.toml @@ -1,7 +1,7 @@ name = "Meta Llama 3.1 8B Instruct" family = "llama" release_date = "2024-07-23" -last_updated = "2024-07-23" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -11,7 +11,7 @@ open_weights = false [cost] input = 0.02 -output = 0.049999999999999996 +output = 0.05 [limit] context = 16384 diff --git a/providers/helicone/models/llama-3.3-70b-versatile.toml b/providers/helicone/models/llama-3.3-70b-versatile.toml index 132712b53..536e3a03e 100644 --- a/providers/helicone/models/llama-3.3-70b-versatile.toml +++ b/providers/helicone/models/llama-3.3-70b-versatile.toml @@ -1,7 +1,7 @@ name = "Meta Llama 3.3 70B Versatile" family = "llama" release_date = "2024-12-06" -last_updated = "2024-12-06" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -11,7 +11,7 @@ open_weights = false [cost] input = 0.59 -output = 0.7899999999999999 +output = 0.79 [limit] context = 131072 diff --git a/providers/helicone/models/qwen3-235b-a22b-thinking.toml b/providers/helicone/models/qwen3-235b-a22b-thinking.toml index cf5a88e41..6aea8ba13 100644 --- a/providers/helicone/models/qwen3-235b-a22b-thinking.toml +++ b/providers/helicone/models/qwen3-235b-a22b-thinking.toml @@ -1,7 +1,7 @@ name = "Qwen3 235B A22B Thinking" family = "qwen" release_date = "2025-07-25" -last_updated = "2025-07-25" +last_updated = "2026-03-03" attachment = false reasoning = true temperature = true @@ -11,7 +11,7 @@ open_weights = false [cost] input = 0.3 -output = 2.9000000000000004 +output = 2.9 [limit] context = 262144 diff --git a/providers/helicone/models/qwen3-coder-30b-a3b-instruct.toml b/providers/helicone/models/qwen3-coder-30b-a3b-instruct.toml index 37d374891..0bc41df11 100644 --- a/providers/helicone/models/qwen3-coder-30b-a3b-instruct.toml +++ b/providers/helicone/models/qwen3-coder-30b-a3b-instruct.toml @@ -1,7 +1,7 @@ name = "Qwen3 Coder 30B A3B Instruct" family = "qwen" release_date = "2025-07-31" -last_updated = "2025-07-31" +last_updated = "2026-03-03" attachment = false reasoning = false temperature = true @@ -10,7 +10,7 @@ knowledge = "2025-07" open_weights = false [cost] -input = 0.09999999999999999 +input = 0.1 output = 0.3 [limit]