From 5fb765d47bfb844cd9758b61b50b7f1874769061 Mon Sep 17 00:00:00 2001 From: jiho09 <198690214+jiho09@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:44:04 +0900 Subject: [PATCH 1/4] feat: add Cafe24 LLM Router provider MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds cafe24 (Cafe24 LLM Router, https://llm-router.cafe24.com) — an OpenAI-compatible LLM gateway by Cafe24, a KRX-listed Korean e-commerce & hosting platform company. - provider.toml: @ai-sdk/openai-compatible, api /api/v1, CAFE24_API_KEY - 8 relayed models via base_model (Qwen3-32B, MiniMax-M3, gpt-oss-20b/ 120b, Claude Haiku 4.5 / Sonnet 5 / Opus 5 / Fable 5) with provider-authored USD costs and limit overrides from the live GET /api/v1/models metadata - cafe24/auto: host-unique auto-routing model (inline, variable cost — follows the openrouter/auto precedent) - bun validate passes Co-Authored-By: Claude Fable 5 --- providers/cafe24/logo.svg | 4 ++++ .../cafe24/models/MiniMaxAI/MiniMax-M3.toml | 6 ++++++ providers/cafe24/models/Qwen/Qwen3-32B.toml | 9 +++++++++ .../models/anthropic/claude-fable-5.toml | 6 ++++++ .../models/anthropic/claude-haiku-4-5.toml | 9 +++++++++ .../models/anthropic/claude-opus-5.toml | 6 ++++++ .../models/anthropic/claude-sonnet-5.toml | 6 ++++++ providers/cafe24/models/cafe24/auto.toml | 19 +++++++++++++++++++ .../cafe24/models/openai/gpt-oss-120b.toml | 9 +++++++++ .../cafe24/models/openai/gpt-oss-20b.toml | 9 +++++++++ providers/cafe24/provider.toml | 5 +++++ 11 files changed, 88 insertions(+) create mode 100644 providers/cafe24/logo.svg create mode 100644 providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml create mode 100644 providers/cafe24/models/Qwen/Qwen3-32B.toml create mode 100644 providers/cafe24/models/anthropic/claude-fable-5.toml create mode 100644 providers/cafe24/models/anthropic/claude-haiku-4-5.toml create mode 100644 providers/cafe24/models/anthropic/claude-opus-5.toml create mode 100644 providers/cafe24/models/anthropic/claude-sonnet-5.toml create mode 100644 providers/cafe24/models/cafe24/auto.toml create mode 100644 providers/cafe24/models/openai/gpt-oss-120b.toml create mode 100644 providers/cafe24/models/openai/gpt-oss-20b.toml create mode 100644 providers/cafe24/provider.toml diff --git a/providers/cafe24/logo.svg b/providers/cafe24/logo.svg new file mode 100644 index 0000000000..4a3b9c3c53 --- /dev/null +++ b/providers/cafe24/logo.svg @@ -0,0 +1,4 @@ + + + c24 + diff --git a/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml new file mode 100644 index 0000000000..0da80569f8 --- /dev/null +++ b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml @@ -0,0 +1,6 @@ +base_model = "minimax/MiniMax-M3" +reasoning_options = [] + +[cost] +input = 0.3 +output = 1.2 diff --git a/providers/cafe24/models/Qwen/Qwen3-32B.toml b/providers/cafe24/models/Qwen/Qwen3-32B.toml new file mode 100644 index 0000000000..e10b00de53 --- /dev/null +++ b/providers/cafe24/models/Qwen/Qwen3-32B.toml @@ -0,0 +1,9 @@ +base_model = "alibaba/qwen3-32b" +reasoning_options = [] + +[cost] +input = 0.08 +output = 0.28 + +[limit] +context = 131_000 diff --git a/providers/cafe24/models/anthropic/claude-fable-5.toml b/providers/cafe24/models/anthropic/claude-fable-5.toml new file mode 100644 index 0000000000..67ae45931c --- /dev/null +++ b/providers/cafe24/models/anthropic/claude-fable-5.toml @@ -0,0 +1,6 @@ +base_model = "anthropic/claude-fable-5" +reasoning_options = [] + +[cost] +input = 10 +output = 50 diff --git a/providers/cafe24/models/anthropic/claude-haiku-4-5.toml b/providers/cafe24/models/anthropic/claude-haiku-4-5.toml new file mode 100644 index 0000000000..e5e46c0d90 --- /dev/null +++ b/providers/cafe24/models/anthropic/claude-haiku-4-5.toml @@ -0,0 +1,9 @@ +base_model = "anthropic/claude-haiku-4-5" +reasoning_options = [] + +[cost] +input = 1 +output = 5 + +[limit] +output = 16_384 diff --git a/providers/cafe24/models/anthropic/claude-opus-5.toml b/providers/cafe24/models/anthropic/claude-opus-5.toml new file mode 100644 index 0000000000..9794c7ce2a --- /dev/null +++ b/providers/cafe24/models/anthropic/claude-opus-5.toml @@ -0,0 +1,6 @@ +base_model = "anthropic/claude-opus-5" +reasoning_options = [] + +[cost] +input = 5 +output = 25 diff --git a/providers/cafe24/models/anthropic/claude-sonnet-5.toml b/providers/cafe24/models/anthropic/claude-sonnet-5.toml new file mode 100644 index 0000000000..742911879c --- /dev/null +++ b/providers/cafe24/models/anthropic/claude-sonnet-5.toml @@ -0,0 +1,6 @@ +base_model = "anthropic/claude-sonnet-5" +reasoning_options = [] + +[cost] +input = 2 +output = 10 diff --git a/providers/cafe24/models/cafe24/auto.toml b/providers/cafe24/models/cafe24/auto.toml new file mode 100644 index 0000000000..81ef24b6a4 --- /dev/null +++ b/providers/cafe24/models/cafe24/auto.toml @@ -0,0 +1,19 @@ +name = "Auto Router" +description = "Automatically routes each request to a suitable model based on Cafe24 LLM Router routing policies" +family = "auto" +release_date = "2026-06-19" +last_updated = "2026-06-19" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[limit] +context = 128_000 +output = 16_384 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/cafe24/models/openai/gpt-oss-120b.toml b/providers/cafe24/models/openai/gpt-oss-120b.toml new file mode 100644 index 0000000000..2947bf46d4 --- /dev/null +++ b/providers/cafe24/models/openai/gpt-oss-120b.toml @@ -0,0 +1,9 @@ +base_model = "openai/gpt-oss-120b" +reasoning_options = [] + +[cost] +input = 0.04 +output = 0.17 + +[limit] +output = 16_384 diff --git a/providers/cafe24/models/openai/gpt-oss-20b.toml b/providers/cafe24/models/openai/gpt-oss-20b.toml new file mode 100644 index 0000000000..337f0be09d --- /dev/null +++ b/providers/cafe24/models/openai/gpt-oss-20b.toml @@ -0,0 +1,9 @@ +base_model = "openai/gpt-oss-20b" +reasoning_options = [] + +[cost] +input = 0.03 +output = 0.14 + +[limit] +output = 16_384 diff --git a/providers/cafe24/provider.toml b/providers/cafe24/provider.toml new file mode 100644 index 0000000000..fefdd3c9ba --- /dev/null +++ b/providers/cafe24/provider.toml @@ -0,0 +1,5 @@ +name = "Cafe24 LLM Router" +npm = "@ai-sdk/openai-compatible" +api = "https://llm-router.cafe24.com/api/v1" +env = ["CAFE24_API_KEY"] +doc = "https://llm-router.cafe24.com/docs" From 7227ebef27754681aa774296823875ce9d7200e6 Mon Sep 17 00:00:00 2001 From: jiho09 <198690214+jiho09@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:52:12 +0900 Subject: [PATCH 2/4] chore: replace placeholder logo with official cafe24 wordmark Vector-traced from the official monochrome brand asset; single currentColor fill, tight viewBox, 2.1KB. Co-Authored-By: Claude Fable 5 --- providers/cafe24/logo.svg | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/providers/cafe24/logo.svg b/providers/cafe24/logo.svg index 4a3b9c3c53..e1aa483cca 100644 --- a/providers/cafe24/logo.svg +++ b/providers/cafe24/logo.svg @@ -1,4 +1,33 @@ - - - c24 + + + + + + + + + From 8deaa411fe6cc6bae7b21c708c9eaf47b235285d Mon Sep 17 00:00:00 2001 From: jiho09 <198690214+jiho09@users.noreply.github.com> Date: Tue, 4 Aug 2026 17:30:36 +0900 Subject: [PATCH 3/4] fix: empirically-verified reasoning_options and priced-file provenance comments Addresses the review-bot action items: - reasoning_options now reflect live-gateway probes (2026-08-04): gpt-oss 20B/120B forward reasoning_effort (completion tokens scale high=76 vs low=22) -> effort low/medium/high; Qwen3-32B forwards the thinking toggle via chat_template_kwargs.enable_thinking (320 -> 2 tokens) -> toggle; Claude Haiku 4.5/Sonnet 5/Opus 5/Fable 5 and MiniMax M3 accept but do not forward OpenAI-style reasoning_effort or Anthropic-style thinking (no reasoning-token accounting, no output differential) -> affirmative [] with a leading comment on each file. - every priced file now carries a leading comment with the KRW list price, source URL, capture date, and the site's fixed W1,430/USD rate with resulting USD/MTok values. bun validate passes. Co-Authored-By: Claude Fable 5 --- providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml | 6 ++++++ providers/cafe24/models/Qwen/Qwen3-32B.toml | 6 +++++- providers/cafe24/models/anthropic/claude-fable-5.toml | 6 ++++++ providers/cafe24/models/anthropic/claude-haiku-4-5.toml | 6 ++++++ providers/cafe24/models/anthropic/claude-opus-5.toml | 6 ++++++ providers/cafe24/models/anthropic/claude-sonnet-5.toml | 6 ++++++ providers/cafe24/models/openai/gpt-oss-120b.toml | 9 ++++++++- providers/cafe24/models/openai/gpt-oss-20b.toml | 9 ++++++++- 8 files changed, 51 insertions(+), 3 deletions(-) diff --git a/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml index 0da80569f8..eeb7672695 100644 --- a/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml +++ b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml @@ -1,3 +1,9 @@ +# KRW list price W429/W1,716 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $0.30/1.20 per MTok. +# Reasoning controls verified empirically on 2026-08-04 against the live gateway: +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not +# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no +# caller-controllable reasoning surface; hence `reasoning_options = []`. base_model = "minimax/MiniMax-M3" reasoning_options = [] diff --git a/providers/cafe24/models/Qwen/Qwen3-32B.toml b/providers/cafe24/models/Qwen/Qwen3-32B.toml index e10b00de53..149e736008 100644 --- a/providers/cafe24/models/Qwen/Qwen3-32B.toml +++ b/providers/cafe24/models/Qwen/Qwen3-32B.toml @@ -1,5 +1,9 @@ +# KRW list price W115/W401 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $0.08/0.28 per MTok. +# Thinking toggle verified forwarded on 2026-08-04 via `chat_template_kwargs.enable_thinking`: +# default(thinking)=320 completion tokens vs enable_thinking=false -> 2 tokens on an identical prompt. base_model = "alibaba/qwen3-32b" -reasoning_options = [] +reasoning_options = [{ type = "toggle" }] [cost] input = 0.08 diff --git a/providers/cafe24/models/anthropic/claude-fable-5.toml b/providers/cafe24/models/anthropic/claude-fable-5.toml index 67ae45931c..c5cbed95a4 100644 --- a/providers/cafe24/models/anthropic/claude-fable-5.toml +++ b/providers/cafe24/models/anthropic/claude-fable-5.toml @@ -1,3 +1,9 @@ +# KRW list price W14,300/W71,500 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $10/50 per MTok. +# Reasoning controls verified empirically on 2026-08-04 against the live gateway: +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not +# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no +# caller-controllable reasoning surface; hence `reasoning_options = []`. base_model = "anthropic/claude-fable-5" reasoning_options = [] diff --git a/providers/cafe24/models/anthropic/claude-haiku-4-5.toml b/providers/cafe24/models/anthropic/claude-haiku-4-5.toml index e5e46c0d90..5f9afe99c8 100644 --- a/providers/cafe24/models/anthropic/claude-haiku-4-5.toml +++ b/providers/cafe24/models/anthropic/claude-haiku-4-5.toml @@ -1,3 +1,9 @@ +# KRW list price W1,430/W7,150 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $1/5 per MTok. +# Reasoning controls verified empirically on 2026-08-04 against the live gateway: +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not +# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no +# caller-controllable reasoning surface; hence `reasoning_options = []`. base_model = "anthropic/claude-haiku-4-5" reasoning_options = [] diff --git a/providers/cafe24/models/anthropic/claude-opus-5.toml b/providers/cafe24/models/anthropic/claude-opus-5.toml index 9794c7ce2a..5d0a7ecbd0 100644 --- a/providers/cafe24/models/anthropic/claude-opus-5.toml +++ b/providers/cafe24/models/anthropic/claude-opus-5.toml @@ -1,3 +1,9 @@ +# KRW list price W7,150/W35,750 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $5/25 per MTok. +# Reasoning controls verified empirically on 2026-08-04 against the live gateway: +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not +# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no +# caller-controllable reasoning surface; hence `reasoning_options = []`. base_model = "anthropic/claude-opus-5" reasoning_options = [] diff --git a/providers/cafe24/models/anthropic/claude-sonnet-5.toml b/providers/cafe24/models/anthropic/claude-sonnet-5.toml index 742911879c..7448273d18 100644 --- a/providers/cafe24/models/anthropic/claude-sonnet-5.toml +++ b/providers/cafe24/models/anthropic/claude-sonnet-5.toml @@ -1,3 +1,9 @@ +# KRW list price W2,860/W14,300 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $2/10 per MTok. +# Reasoning controls verified empirically on 2026-08-04 against the live gateway: +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not +# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no +# caller-controllable reasoning surface; hence `reasoning_options = []`. base_model = "anthropic/claude-sonnet-5" reasoning_options = [] diff --git a/providers/cafe24/models/openai/gpt-oss-120b.toml b/providers/cafe24/models/openai/gpt-oss-120b.toml index 2947bf46d4..3737bbeadb 100644 --- a/providers/cafe24/models/openai/gpt-oss-120b.toml +++ b/providers/cafe24/models/openai/gpt-oss-120b.toml @@ -1,5 +1,12 @@ +# KRW list price W56/W244 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $0.04/0.17 per MTok. +# `reasoning_effort` verified forwarded on 2026-08-04: completion tokens scale with +# effort (high=76 vs low=22 on an identical prompt). base_model = "openai/gpt-oss-120b" -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] [cost] input = 0.04 diff --git a/providers/cafe24/models/openai/gpt-oss-20b.toml b/providers/cafe24/models/openai/gpt-oss-20b.toml index 337f0be09d..ebc0d078c1 100644 --- a/providers/cafe24/models/openai/gpt-oss-20b.toml +++ b/providers/cafe24/models/openai/gpt-oss-20b.toml @@ -1,5 +1,12 @@ +# KRW list price W43/W201 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). +# The site prices at a fixed W1,430/USD rate -> USD $0.03/0.14 per MTok. +# `reasoning_effort` verified forwarded on 2026-08-04: completion tokens scale with +# effort (high=76 vs low=22 on an identical prompt). base_model = "openai/gpt-oss-20b" -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] [cost] input = 0.03 From 23ef8459cd0e3b42e938835cbf995a87eabb1f6a Mon Sep 17 00:00:00 2001 From: jiho09 <198690214+jiho09@users.noreply.github.com> Date: Tue, 4 Aug 2026 17:43:04 +0900 Subject: [PATCH 4/4] fix(MiniMax-M3): thinking toggle is forwarded via chat_template_kwargs.thinking_mode Follow-up probe (2026-08-04) as suggested by review: the gateway does forward MiniMax-native chat_template_kwargs.thinking_mode - identical prompt yields 26 (enabled) / 2 (disabled) / 16 (adaptive) completion tokens. reasoning_options corrected from [] to a toggle with a leading wire-path comment. Co-Authored-By: Claude Fable 5 --- providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml index eeb7672695..bd574e062a 100644 --- a/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml +++ b/providers/cafe24/models/MiniMaxAI/MiniMax-M3.toml @@ -1,11 +1,10 @@ # KRW list price W429/W1,716 per MTok input/output (https://llm-router.cafe24.com/models, captured 2026-08-04). # The site prices at a fixed W1,430/USD rate -> USD $0.30/1.20 per MTok. -# Reasoning controls verified empirically on 2026-08-04 against the live gateway: -# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not -# forwarded (no reasoning-token accounting, no output differential) -> affirmatively no -# caller-controllable reasoning surface; hence `reasoning_options = []`. +# Thinking toggle verified forwarded on 2026-08-04 via `chat_template_kwargs.thinking_mode` +# (enabled/disabled/adaptive): identical prompt yields 26 / 2 / 16 completion tokens respectively. +# OpenAI-style `reasoning_effort` and Anthropic-style `thinking` are accepted but not forwarded. base_model = "minimax/MiniMax-M3" -reasoning_options = [] +reasoning_options = [{ type = "toggle" }] [cost] input = 0.3