Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions coworker/providers/matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,26 @@ class ModelEntry:
"mistral:mistral-large-latest": ModelEntry(
"Mistral Large · Mistral", _AGENTIC, 128_000
),
# -- SambaNova ---------------------------------------------------------------
# OpenAI-compatible API (verified against api.sambanova.ai/v1/models 2026-07-30).
"sambanova:Meta-Llama-3.3-70B-Instruct": ModelEntry(
"Llama 3.3 70B · SambaNova", _AGENTIC, 131_072
),
"sambanova:DeepSeek-V3.1": ModelEntry(
"DeepSeek V3.1 · SambaNova", _AGENTIC, 131_072
),
"sambanova:DeepSeek-V3.2": ModelEntry(
"DeepSeek V3.2 · SambaNova", _AGENTIC, 32_768
),
"sambanova:MiniMax-M2.7": ModelEntry(
"MiniMax M2.7 · SambaNova", _AGENTIC, 196_608
),
"sambanova:gemma-4-31B-it": ModelEntry(
"Gemma 4 31B · SambaNova", _AGENTIC, 131_072
),
"sambanova:gpt-oss-120b": ModelEntry(
"GPT-OSS 120B · SambaNova", _AGENTIC, 131_072
),
# -- resellers (their model namespaces, verbatim) -----------------------------
"together:thinkingmachines/Inkling": ModelEntry("Inkling · via Together"),
"together:zai-org/GLM-5.2": ModelEntry("GLM-5.2 · via Together", _AGENTIC, 128_000),
Expand Down Expand Up @@ -157,6 +177,16 @@ class ModelEntry:
"openrouter:meta-llama/llama-4-maverick": ModelEntry(
"Llama 4 Maverick · via OpenRouter", _AGENTIC, 1_000_000
),
# -- SambaNova ------------------------------------------------------
"sambanova:Meta-Llama/Llama-4-Maverick-17B-128E-Instruct": ModelEntry(
"Llama 4 Maverick · SambaNova", _AGENTIC, 1_000_000
),
"sambanova:Qwen/Qwen3-72B-Instruct": ModelEntry(
"Qwen3 72B · SambaNova", _AGENTIC, 128_000
),
"sambanova:deepseek-ai/DeepSeek-V3-0324": ModelEntry(
"DeepSeek V3 · SambaNova", _AGENTIC, 128_000
),
# -- cloud accounts (models running in the user's own AWS/GCP) ----------------
# Bedrock ids carry a family segment (claude/ → native Anthropic path, other/ →
# Converse) plus AWS's own `-v<n>:<m>` version suffix. Some regions require the
Expand Down
8 changes: 8 additions & 0 deletions coworker/providers/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,14 @@ def _compat(
env_key="META_API_KEY",
endpoint_help="Prefilled with the Meta Model API endpoint (public preview, US-only as of 2026-07).",
),
_compat(
"sambanova",
"SambaNova",
base_url="https://api.sambanova.ai/v1",
recommended_model="Meta-Llama-3.3-70B-Instruct",
env_key="SAMBANOVA_API_KEY",
endpoint_help="Prefilled with SambaNova's official OpenAI-compatible endpoint.",
),
# Resellers: many labs' models behind one key, using THEIR model namespaces (the curated
# ids + display labels live in providers/matrix.py). TODO: add Groq here (+ its matrix
# rows) once the current provider surface is tested — deliberately deferred to bound
Expand Down
1 change: 1 addition & 0 deletions surfaces/gui/src/providers/ProviderSetup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export const KEY_HELP: Record<string, { url: string; label: string }> = {
qwen: { url: "https://modelstudio.console.alibabacloud.com", label: "alibabacloud.com" },
minimax: { url: "https://platform.minimax.io", label: "platform.minimax.io" },
xai: { url: "https://console.x.ai", label: "console.x.ai" },
sambanova: { url: "https://console.sambanova.cloud", label: "console.sambanova.cloud" },
};

export type Verify = { state: "idle" | "testing" | "ok" | "error"; msg?: string };
Expand Down
3 changes: 3 additions & 0 deletions surfaces/gui/src/providers/logos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import qwen from "./logos/qwen.svg";
import minimax from "./logos/minimax.svg";
import xai from "./logos/xai.svg";
import meta from "./logos/meta.svg";
import sambanova from "./logos/sambanova.svg";

export const PROVIDER_LOGOS: Record<string, string> = {
anthropic,
Expand All @@ -41,6 +42,7 @@ export const PROVIDER_LOGOS: Record<string, string> = {
qwen,
minimax,
xai,
sambanova,
};

export const PROVIDER_ORDER = [
Expand All @@ -61,6 +63,7 @@ export const PROVIDER_ORDER = [
"qwen",
"minimax",
"xai",
"sambanova",
];

export function providerRank(name: string): number {
Expand Down
1 change: 1 addition & 0 deletions surfaces/gui/src/providers/logos/sambanova.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.