Skip to content
Open
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
33 changes: 33 additions & 0 deletions packages/cost/models/providers/crusoe.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { BaseProvider } from "./base";
import type { Endpoint, RequestParams } from "../types";

export class CrusoeProvider extends BaseProvider {
readonly displayName = "Crusoe";
readonly baseUrl = "https://api.inference.crusoecloud.com/v1/";
readonly auth = "api-key" as const;
readonly pricingPages = ["https://www.crusoe.ai/cloud/pricing"];
readonly modelPages = [
"https://docs.crusoecloud.com/managed-inference/overview",
];

buildUrl(endpoint: Endpoint, requestParams: RequestParams): string {
return `${this.baseUrl}chat/completions`;
}

async buildErrorMessage(response: Response): Promise<{
message: string;
details?: any;
}> {
try {
const respJson = (await response.json()) as any;
return {
message:
respJson.error?.message ||
respJson.detail ||
`Request failed with status ${response.status}`,
};
} catch (error) {
return { message: `Request failed with status ${response.status}` };
}
}
}
3 changes: 3 additions & 0 deletions packages/cost/models/providers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { GoogleProvider } from "./google";
import { GroqProvider } from "./groq";
import { HeliconeProvider } from "./helicone";
import { MistralProvider } from "./mistral";
import { CrusoeProvider } from "./crusoe";
import { NebiusProvider } from "./nebius";
import { NovitaProvider } from "./novita";
import { OpenAIProvider } from "./openai";
Expand All @@ -36,6 +37,7 @@ export const providers = {
groq: new GroqProvider(),
helicone: new HeliconeProvider(),
mistral: new MistralProvider(),
crusoe: new CrusoeProvider(),
nebius: new NebiusProvider(),
novita: new NovitaProvider(),
openai: new OpenAIProvider(),
Expand Down Expand Up @@ -80,6 +82,7 @@ export const ResponsesAPIEnabledProviders: ModelProviderName[] = [
"cerebras",
"groq",
"mistral",
"crusoe",
"nebius",
"novita",
"openrouter",
Expand Down
1 change: 1 addition & 0 deletions packages/cost/models/providers/priorities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export const PROVIDER_PRIORITIES: Record<ModelProviderName, number> = {
fireworks: 4,
groq: 4,
mistral: 4,
crusoe: 4,
nebius: 4,
novita: 4,

Expand Down
144 changes: 144 additions & 0 deletions packages/cost/providers/crusoe/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
import { ModelRow } from "../../interfaces/Cost";

export const costs: ModelRow[] = [
{
model: {
operator: "equals",
value: "zai/GLM-5.2",
},
cost: {
prompt_token: 0.0000014,
completion_token: 0.0000044,
},
},
{
model: {
operator: "equals",
value: "zai/GLM-5.1",
},
cost: {
prompt_token: 0.0000012,
completion_token: 0.0000044,
},
},
{
model: {
operator: "equals",
value: "openai/gpt-oss-120b",
},
cost: {
prompt_token: 0.00000005,
completion_token: 0.0000002,
},
},
{
model: {
operator: "equals",
value: "google/gemma-4-31b-it",
},
cost: {
prompt_token: 0.00000014,
completion_token: 0.0000004,
},
},
{
model: {
operator: "equals",
value: "moonshotai/Kimi-K2.6",
},
cost: {
prompt_token: 0.0000007,
completion_token: 0.0000035,
},
},
{
model: {
operator: "equals",
value: "meta-llama/Llama-3.3-70B-Instruct",
},
cost: {
prompt_token: 0.00000025,
completion_token: 0.00000075,
},
},
{
model: {
operator: "equals",
value: "deepseek-ai/DeepSeek-V3-0324",
},
cost: {
prompt_token: 0.0000005,
completion_token: 0.0000015,
},
},
{
model: {
operator: "equals",
value: "deepseek-ai/DeepSeek-V4-Pro",
},
cost: {
prompt_token: 0.00000174,
completion_token: 0.00000348,
},
},
{
model: {
operator: "equals",
value: "deepseek-ai/Deepseek-V4-Flash",
},
cost: {
prompt_token: 0.00000014,
completion_token: 0.00000028,
},
},
{
model: {
operator: "equals",
value: "Qwen/Qwen3-235B-A22B-Instruct-2507",
},
cost: {
prompt_token: 0.00000022,
completion_token: 0.0000008,
},
},
{
model: {
operator: "equals",
value: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B",
},
cost: {
prompt_token: 0.00000005,
completion_token: 0.0000002,
},
},
{
model: {
operator: "equals",
value: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B",
},
cost: {
prompt_token: 0.0000003,
completion_token: 0.0000024,
},
},
{
model: {
operator: "equals",
value: "nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B",
},
cost: {
prompt_token: 0.0000003,
completion_token: 0.00000183,
},
},
{
model: {
operator: "equals",
value: "nvidia/Nemotron-3.5-Lightning-30B-A3B",
},
cost: {
prompt_token: 0.00000005,
completion_token: 0.00000003,
},
},
];
10 changes: 10 additions & 0 deletions packages/cost/providers/mappings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { costs as llamaCosts } from "./llama";
import { costs as nvidiaCosts } from "./nvidia";
import { costs as cohereCosts } from "./cohere";
import { costs as deepseekCosts } from "./deepseek";
import { costs as crusoeCosts } from "./crusoe";
import { costs as fireworksAICosts } from "./fireworks";
import { costs as groqCosts } from "./groq";
import { costs as mistralCosts } from "./mistral";
Expand Down Expand Up @@ -73,6 +74,9 @@ const deepseek = /^https:\/\/api\.deepseek\.com/;
const x = /^https:\/\/api\.x\.ai/;
const avianPattern = /^https:\/\/api\.avian\.io/;

// https://api.inference.crusoecloud.com
const crusoe = /^https:\/\/api\.inference\.crusoecloud\.com/;

//https://api.tokenfactory.nebius.com
const nebius = /^https:\/\/api\.tokenfactory\.nebius\.com/;

Expand Down Expand Up @@ -122,6 +126,7 @@ export const providersNames = [
"DEEPSEEK",
"X",
"AVIAN",
"CRUSOE",
"NEBIUS",
"NOVITA",
"OPENPIPE",
Expand Down Expand Up @@ -171,6 +176,11 @@ export const providers: {
provider: "AZURE",
costs: [...azureCosts, ...openAIProvider.costs],
},
{
pattern: crusoe,
provider: "CRUSOE",
costs: crusoeCosts,
},
{
pattern: nebius,
provider: "NEBIUS",
Expand Down