From 128398d56b849e4443072fb6cf72a1d39a469679 Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Wed, 8 Jul 2026 16:49:17 +0800 Subject: [PATCH 1/6] feat(provider): add EBCloud provider and Models: DeepSeek-v4-flash, pro, GLM and Kimi. --- .../ebcloud/models/DeepSeek-V4-Flash.toml | 25 +++++++++++++++++++ providers/ebcloud/models/DeepSeek-V4-Pro.toml | 25 +++++++++++++++++++ providers/ebcloud/models/GLM-5.1.toml | 25 +++++++++++++++++++ providers/ebcloud/models/Kimi-K2.6.toml | 25 +++++++++++++++++++ providers/ebcloud/provider.toml | 5 ++++ 5 files changed, 105 insertions(+) create mode 100644 providers/ebcloud/models/DeepSeek-V4-Flash.toml create mode 100644 providers/ebcloud/models/DeepSeek-V4-Pro.toml create mode 100644 providers/ebcloud/models/GLM-5.1.toml create mode 100644 providers/ebcloud/models/Kimi-K2.6.toml create mode 100644 providers/ebcloud/provider.toml diff --git a/providers/ebcloud/models/DeepSeek-V4-Flash.toml b/providers/ebcloud/models/DeepSeek-V4-Flash.toml new file mode 100644 index 0000000000..153589e4a5 --- /dev/null +++ b/providers/ebcloud/models/DeepSeek-V4-Flash.toml @@ -0,0 +1,25 @@ +name = "DeepSeek-V4-Flash" +description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +attachment = false +reasoning = true +reasoning_options = [ { type = "effort", values = ["default"]} ] +tool_call = true +structured_output = true +temperature = false +release_date = "2025-02-19" +last_updated = "2025-02-19" +open_weights = true + +[cost] +input = 0.143 +output = 0.2858 +reasoning = 0.00 + +[limit] +context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k +input = 128_000 +output = 8_192 # 最大输出 token 限制 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/DeepSeek-V4-Pro.toml b/providers/ebcloud/models/DeepSeek-V4-Pro.toml new file mode 100644 index 0000000000..7535ffd0fd --- /dev/null +++ b/providers/ebcloud/models/DeepSeek-V4-Pro.toml @@ -0,0 +1,25 @@ +name = "DeepSeek-V4-Pro" +description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +attachment = false +reasoning = true +reasoning_options = [ { type = "effort", values = ["default"]} ] +tool_call = true +structured_output = true +temperature = false +release_date = "2025-02-19" +last_updated = "2025-02-19" +open_weights = true + +[cost] +input = 0.4289 +output = 0.8571 +reasoning = 0.00 + +[limit] +context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k +input = 128_000 +output = 8_192 # 最大输出 token 限制 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/GLM-5.1.toml b/providers/ebcloud/models/GLM-5.1.toml new file mode 100644 index 0000000000..0ce2085b4c --- /dev/null +++ b/providers/ebcloud/models/GLM-5.1.toml @@ -0,0 +1,25 @@ +name = "GLM-5.1" +description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +attachment = false +reasoning = true +reasoning_options = [ { type = "effort", values = ["default"]} ] +tool_call = true +structured_output = true +temperature = false +release_date = "2025-02-19" +last_updated = "2025-02-19" +open_weights = true + +[cost] +input = 0.143 +output = 0.2858 +reasoning = 0.00 + +[limit] +context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k +input = 128_000 +output = 8_192 # 最大输出 token 限制 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/Kimi-K2.6.toml b/providers/ebcloud/models/Kimi-K2.6.toml new file mode 100644 index 0000000000..47e9727b8a --- /dev/null +++ b/providers/ebcloud/models/Kimi-K2.6.toml @@ -0,0 +1,25 @@ +name = "Kimi-K2.6" +description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +attachment = false +reasoning = true +reasoning_options = [ { type = "effort", values = ["default"]} ] +tool_call = true +structured_output = true +temperature = false +release_date = "2025-02-19" +last_updated = "2025-02-19" +open_weights = true + +[cost] +input = 0.143 +output = 0.2858 +reasoning = 0.00 + +[limit] +context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k +input = 128_000 +output = 8_192 # 最大输出 token 限制 + +[modalities] +input = ["text"] +output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/provider.toml b/providers/ebcloud/provider.toml new file mode 100644 index 0000000000..b65c733291 --- /dev/null +++ b/providers/ebcloud/provider.toml @@ -0,0 +1,5 @@ +name = "EBCloud" +npm = "@ai-sdk/openai-compatible" +api = "https://maas-api.ebcloud.com/v1" +env = ["EBCLOUD_API_KEY"] +doc = "https://docs.ebtech.com/ai/model-api.html" \ No newline at end of file From b96653aa5c37562aa5f0c8bc396da04c4195c5d8 Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Wed, 8 Jul 2026 17:22:08 +0800 Subject: [PATCH 2/6] fix(ebcloud): correct copy-pasted model descriptions for GLM-5.1 and Kimi-K2.6 --- providers/ebcloud/models/GLM-5.1.toml | 2 +- providers/ebcloud/models/Kimi-K2.6.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/ebcloud/models/GLM-5.1.toml b/providers/ebcloud/models/GLM-5.1.toml index 0ce2085b4c..01432c31e6 100644 --- a/providers/ebcloud/models/GLM-5.1.toml +++ b/providers/ebcloud/models/GLM-5.1.toml @@ -1,5 +1,5 @@ name = "GLM-5.1" -description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +description = "Strong GLM coding model for agentic engineering, terminals, and repository generation" attachment = false reasoning = true reasoning_options = [ { type = "effort", values = ["default"]} ] diff --git a/providers/ebcloud/models/Kimi-K2.6.toml b/providers/ebcloud/models/Kimi-K2.6.toml index 47e9727b8a..3cc5b49453 100644 --- a/providers/ebcloud/models/Kimi-K2.6.toml +++ b/providers/ebcloud/models/Kimi-K2.6.toml @@ -1,5 +1,5 @@ name = "Kimi-K2.6" -description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." +description = "Multimodal Kimi workhorse for agent loops, coding tasks, and visual context" attachment = false reasoning = true reasoning_options = [ { type = "effort", values = ["default"]} ] From 941d97c41da8d2173a8c054e388638d2b004c3ac Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Fri, 10 Jul 2026 10:08:06 +0800 Subject: [PATCH 3/6] feat(ebcloud): add provider logo --- providers/ebcloud/logo.svg | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 providers/ebcloud/logo.svg diff --git a/providers/ebcloud/logo.svg b/providers/ebcloud/logo.svg new file mode 100644 index 0000000000..5e3fa16b9c --- /dev/null +++ b/providers/ebcloud/logo.svg @@ -0,0 +1,6 @@ + + + + + + From 6e4a1e55d8a2fac0d2d26e37bc635f20ad0d9b98 Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Fri, 10 Jul 2026 10:38:46 +0800 Subject: [PATCH 4/6] fix(ebcloud): use base_model inheritance and currentColor logo Address review feedback on PR #3102: inherit provider-agnostic model facts via base_model instead of duplicating them (fixes fabricated dates, wrong temperature/limit overrides, and the DeepSeek-V4-Pro copy-pasted description), switch logo fills to currentColor, and correct GLM-5.1/Kimi-K2.6 pricing which had wrongly copied DeepSeek-V4-Flash's rate. --- providers/ebcloud/logo.svg | 8 +++--- .../ebcloud/models/DeepSeek-V4-Flash.toml | 26 +++---------------- providers/ebcloud/models/DeepSeek-V4-Pro.toml | 26 +++---------------- providers/ebcloud/models/GLM-5.1.toml | 26 +++---------------- providers/ebcloud/models/Kimi-K2.6.toml | 25 +++++------------- 5 files changed, 22 insertions(+), 89 deletions(-) diff --git a/providers/ebcloud/logo.svg b/providers/ebcloud/logo.svg index 5e3fa16b9c..fb5cac13ab 100644 --- a/providers/ebcloud/logo.svg +++ b/providers/ebcloud/logo.svg @@ -1,6 +1,6 @@ - - - - + + + + diff --git a/providers/ebcloud/models/DeepSeek-V4-Flash.toml b/providers/ebcloud/models/DeepSeek-V4-Flash.toml index 153589e4a5..e6d7ff6db2 100644 --- a/providers/ebcloud/models/DeepSeek-V4-Flash.toml +++ b/providers/ebcloud/models/DeepSeek-V4-Flash.toml @@ -1,25 +1,7 @@ -name = "DeepSeek-V4-Flash" -description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." -attachment = false -reasoning = true -reasoning_options = [ { type = "effort", values = ["default"]} ] -tool_call = true -structured_output = true -temperature = false -release_date = "2025-02-19" -last_updated = "2025-02-19" -open_weights = true +base_model = "deepseek/deepseek-v4-flash" +reasoning_options = [] [cost] -input = 0.143 -output = 0.2858 +input = 0.143 +output = 0.2858 reasoning = 0.00 - -[limit] -context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k -input = 128_000 -output = 8_192 # 最大输出 token 限制 - -[modalities] -input = ["text"] -output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/DeepSeek-V4-Pro.toml b/providers/ebcloud/models/DeepSeek-V4-Pro.toml index 7535ffd0fd..a84b4ced64 100644 --- a/providers/ebcloud/models/DeepSeek-V4-Pro.toml +++ b/providers/ebcloud/models/DeepSeek-V4-Pro.toml @@ -1,25 +1,7 @@ -name = "DeepSeek-V4-Pro" -description = "An efficient and fast version of DeepSeek, which is designed to solve low-latency and high throughtput issues." -attachment = false -reasoning = true -reasoning_options = [ { type = "effort", values = ["default"]} ] -tool_call = true -structured_output = true -temperature = false -release_date = "2025-02-19" -last_updated = "2025-02-19" -open_weights = true +base_model = "deepseek/deepseek-v4-pro" +reasoning_options = [] [cost] -input = 0.4289 -output = 0.8571 +input = 0.4289 +output = 0.8571 reasoning = 0.00 - -[limit] -context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k -input = 128_000 -output = 8_192 # 最大输出 token 限制 - -[modalities] -input = ["text"] -output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/GLM-5.1.toml b/providers/ebcloud/models/GLM-5.1.toml index 01432c31e6..675d46b8d2 100644 --- a/providers/ebcloud/models/GLM-5.1.toml +++ b/providers/ebcloud/models/GLM-5.1.toml @@ -1,25 +1,7 @@ -name = "GLM-5.1" -description = "Strong GLM coding model for agentic engineering, terminals, and repository generation" -attachment = false -reasoning = true -reasoning_options = [ { type = "effort", values = ["default"]} ] -tool_call = true -structured_output = true -temperature = false -release_date = "2025-02-19" -last_updated = "2025-02-19" -open_weights = true +base_model = "zhipuai/glm-5.1" +reasoning_options = [] [cost] -input = 0.143 -output = 0.2858 +input = 0.8571 +output = 3.4286 reasoning = 0.00 - -[limit] -context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k -input = 128_000 -output = 8_192 # 最大输出 token 限制 - -[modalities] -input = ["text"] -output = ["text"] \ No newline at end of file diff --git a/providers/ebcloud/models/Kimi-K2.6.toml b/providers/ebcloud/models/Kimi-K2.6.toml index 3cc5b49453..b8a07f06af 100644 --- a/providers/ebcloud/models/Kimi-K2.6.toml +++ b/providers/ebcloud/models/Kimi-K2.6.toml @@ -1,25 +1,12 @@ -name = "Kimi-K2.6" -description = "Multimodal Kimi workhorse for agent loops, coding tasks, and visual context" -attachment = false -reasoning = true -reasoning_options = [ { type = "effort", values = ["default"]} ] -tool_call = true -structured_output = true -temperature = false -release_date = "2025-02-19" -last_updated = "2025-02-19" -open_weights = true +base_model = "moonshotai/kimi-k2.6" +attachment = false +reasoning_options = [] [cost] -input = 0.143 -output = 0.2858 +input = 0.9286 +output = 3.8571 reasoning = 0.00 -[limit] -context = 128_000 # 最大上下文窗口,DeepSeek-V4 通常是 128k -input = 128_000 -output = 8_192 # 最大输出 token 限制 - [modalities] input = ["text"] -output = ["text"] \ No newline at end of file +output = ["text"] From f5fe2210c83d4f250884911460a4e3ab6b5b2d0a Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Fri, 10 Jul 2026 10:48:45 +0800 Subject: [PATCH 5/6] fix(ebcloud): drop unverified reasoning cost, add interleaved reasoning_content, cleanup Addresses second review pass on PR #3102: - Remove cost.reasoning (reasoning tokens bill as normal output tokens, no separate free/paid line item, matching repo convention) - Add [interleaved] field = "reasoning_content" to all four models, since EBCloud's endpoint returns reasoning via that field - Document the reasoning-control investigation in provider.toml (no verified effort/budget/toggle param found) - Strip trailing whitespace, add trailing newline to provider.toml - Normalize logo.svg viewBox to a 0 0 N N origin --- providers/ebcloud/logo.svg | 12 +++++++----- providers/ebcloud/models/DeepSeek-V4-Flash.toml | 4 +++- providers/ebcloud/models/DeepSeek-V4-Pro.toml | 4 +++- providers/ebcloud/models/GLM-5.1.toml | 4 +++- providers/ebcloud/models/Kimi-K2.6.toml | 4 +++- providers/ebcloud/provider.toml | 11 ++++++++--- 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/providers/ebcloud/logo.svg b/providers/ebcloud/logo.svg index fb5cac13ab..e65d77790d 100644 --- a/providers/ebcloud/logo.svg +++ b/providers/ebcloud/logo.svg @@ -1,6 +1,8 @@ - - - - - + + + + + + + diff --git a/providers/ebcloud/models/DeepSeek-V4-Flash.toml b/providers/ebcloud/models/DeepSeek-V4-Flash.toml index e6d7ff6db2..0ab313e373 100644 --- a/providers/ebcloud/models/DeepSeek-V4-Flash.toml +++ b/providers/ebcloud/models/DeepSeek-V4-Flash.toml @@ -1,7 +1,9 @@ base_model = "deepseek/deepseek-v4-flash" reasoning_options = [] +[interleaved] +field = "reasoning_content" + [cost] input = 0.143 output = 0.2858 -reasoning = 0.00 diff --git a/providers/ebcloud/models/DeepSeek-V4-Pro.toml b/providers/ebcloud/models/DeepSeek-V4-Pro.toml index a84b4ced64..74c0ba6d92 100644 --- a/providers/ebcloud/models/DeepSeek-V4-Pro.toml +++ b/providers/ebcloud/models/DeepSeek-V4-Pro.toml @@ -1,7 +1,9 @@ base_model = "deepseek/deepseek-v4-pro" reasoning_options = [] +[interleaved] +field = "reasoning_content" + [cost] input = 0.4289 output = 0.8571 -reasoning = 0.00 diff --git a/providers/ebcloud/models/GLM-5.1.toml b/providers/ebcloud/models/GLM-5.1.toml index 675d46b8d2..f998667329 100644 --- a/providers/ebcloud/models/GLM-5.1.toml +++ b/providers/ebcloud/models/GLM-5.1.toml @@ -1,7 +1,9 @@ base_model = "zhipuai/glm-5.1" reasoning_options = [] +[interleaved] +field = "reasoning_content" + [cost] input = 0.8571 output = 3.4286 -reasoning = 0.00 diff --git a/providers/ebcloud/models/Kimi-K2.6.toml b/providers/ebcloud/models/Kimi-K2.6.toml index b8a07f06af..97b06560d2 100644 --- a/providers/ebcloud/models/Kimi-K2.6.toml +++ b/providers/ebcloud/models/Kimi-K2.6.toml @@ -2,10 +2,12 @@ base_model = "moonshotai/kimi-k2.6" attachment = false reasoning_options = [] +[interleaved] +field = "reasoning_content" + [cost] input = 0.9286 output = 3.8571 -reasoning = 0.00 [modalities] input = ["text"] diff --git a/providers/ebcloud/provider.toml b/providers/ebcloud/provider.toml index b65c733291..021e3ee032 100644 --- a/providers/ebcloud/provider.toml +++ b/providers/ebcloud/provider.toml @@ -1,5 +1,10 @@ +# Reasoning: EBCloud's OpenAI-compatible endpoint returns reasoning content via +# `reasoning_content` (see [interleaved] on each model), but the model API +# reference below documents no dedicated effort/budget/toggle parameter for +# controlling reasoning depth. reasoning_options left empty until a control is +# verified. https://docs.ebtech.com/ai/model-api.html (accessed 2026-07-10) name = "EBCloud" -npm = "@ai-sdk/openai-compatible" +npm = "@ai-sdk/openai-compatible" api = "https://maas-api.ebcloud.com/v1" -env = ["EBCLOUD_API_KEY"] -doc = "https://docs.ebtech.com/ai/model-api.html" \ No newline at end of file +env = ["EBCLOUD_API_KEY"] +doc = "https://docs.ebtech.com/ai/model-api.html" From 7baf2c09705eaa3bc6d5863df3794583ffb83705 Mon Sep 17 00:00:00 2001 From: Boyu Zheng Date: Fri, 10 Jul 2026 11:17:37 +0800 Subject: [PATCH 6/6] uploaded a help document --- providers/ebcloud/provider.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/providers/ebcloud/provider.toml b/providers/ebcloud/provider.toml index 021e3ee032..df11b7633c 100644 --- a/providers/ebcloud/provider.toml +++ b/providers/ebcloud/provider.toml @@ -1,8 +1,4 @@ -# Reasoning: EBCloud's OpenAI-compatible endpoint returns reasoning content via -# `reasoning_content` (see [interleaved] on each model), but the model API -# reference below documents no dedicated effort/budget/toggle parameter for -# controlling reasoning depth. reasoning_options left empty until a control is -# verified. https://docs.ebtech.com/ai/model-api.html (accessed 2026-07-10) +# https://docs.ebtech.com/ai/model-api.html (accessed 2026-07-10) name = "EBCloud" npm = "@ai-sdk/openai-compatible" api = "https://maas-api.ebcloud.com/v1"