@code-yeongyu/senpi-ai 2026.10.13 → 2026.10.16-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/google-shared.js +3 -0
- package/dist/google-thinking-generation.d.ts +5 -0
- package/dist/google-thinking-generation.js +29 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/model-cost.d.ts +4 -0
- package/dist/model-cost.js +14 -0
- package/dist/models.d.ts +3 -1
- package/dist/models.js +11 -4
- package/dist/provider-diagnostic.d.ts +2 -2
- package/dist/provider-diagnostic.js +8 -1
- package/dist/providers/all.js +3 -1
- package/dist/providers/anthropic.js +3 -7
- package/dist/providers/data/.manifest.json +1 -1
- package/dist/providers/data/fireworks.json +1 -1
- package/dist/providers/data/github-copilot.json +1 -1
- package/dist/providers/data/google-vertex.json +1 -1
- package/dist/providers/data/google.json +1 -1
- package/dist/providers/data/meta.json +1 -1
- package/dist/providers/data/nvidia.json +1 -1
- package/dist/providers/data/opencode-go.json +1 -1
- package/dist/providers/data/opencode.json +1 -1
- package/dist/providers/data/opengateway.json +1 -1
- package/dist/providers/data/openrouter.json +1 -1
- package/dist/providers/data/radius.json +1 -1
- package/dist/providers/data/venice.json +1 -1
- package/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/dist/providers/data/xiaomi.json +1 -1
- package/dist/providers/faux.d.ts +2 -0
- package/dist/providers/faux.js +4 -3
- package/dist/providers/opencode-go.d.ts +3 -1
- package/dist/providers/opencode-go.js +2 -0
- package/dist/types.d.ts +9 -1
- package/dist/utils/provider-diagnostic-sources.d.ts +1 -0
- package/dist/utils/provider-diagnostic-sources.js +41 -3
- package/dist/utils/provider-diagnostic-vocabulary.d.ts +6 -0
- package/dist/utils/provider-diagnostic-vocabulary.js +26 -0
- package/dist/utils/provider-failure-description.js +17 -1
- package/dist/utils/retry.d.ts +8 -0
- package/dist/utils/retry.js +12 -0
- package/dist/utils/tool-choice-fallback.js +4 -1
- package/dist/utils/tool-schema-compat.js +10 -10
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared utilities for Google Generative AI and Google Vertex providers.
|
|
3
3
|
*/
|
|
4
4
|
import { FinishReason, FunctionCallingConfigMode, ThinkingLevel as GoogleSdkThinkingLevel, } from "@google/genai";
|
|
5
|
+
import { isGoogleGeneration4OrLaterModelId } from "../google-thinking-generation.js";
|
|
5
6
|
import { clampThinkingLevel } from "../models.js";
|
|
6
7
|
import { retryProviderRequest } from "../utils/provider-retry.js";
|
|
7
8
|
import { sanitizeSurrogates } from "../utils/sanitize-unicode.js";
|
|
@@ -41,6 +42,8 @@ export function usesGoogleThinkingLevel(model) {
|
|
|
41
42
|
// Match Gemini 3 Pro/Flash IDs with or without a minor version, such as
|
|
42
43
|
// gemini-3-flash-preview, gemini-3.1-pro-preview, and gemini-3.8-flash.
|
|
43
44
|
/gemini-3(?:\.\d+)?-(?:pro|flash)/.test(id) ||
|
|
45
|
+
// Generation 4 and later only accept discrete levels; a budget is rejected with HTTP 400 (senpi#3292).
|
|
46
|
+
isGoogleGeneration4OrLaterModelId(id) ||
|
|
44
47
|
id === "gemini-flash-latest" ||
|
|
45
48
|
id === "gemini-flash-lite-latest" ||
|
|
46
49
|
// Match both hosted Gemma 4 naming forms: gemma-4-* and gemma4-*.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Api, Model, ThinkingLevelMap } from "./types.ts";
|
|
2
|
+
export declare function isGoogleGeneration4OrLaterModelId(modelId: string): boolean;
|
|
3
|
+
/** The level map for a generation-4-or-later row that ships none; generated metadata always wins. */
|
|
4
|
+
export declare function inferGoogleThinkingLevelMap<TApi extends Api>(model: Model<TApi>): ThinkingLevelMap | undefined;
|
|
5
|
+
//# sourceMappingURL=google-thinking-generation.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const GOOGLE_THINKING_APIS = ["google-generative-ai", "google-vertex"];
|
|
2
|
+
/**
|
|
3
|
+
* Generation 4 and later of this provider's models accept only the discrete low, medium and high
|
|
4
|
+
* levels: a token budget, `minimal`, or turning thinking off is rejected with HTTP 400 (senpi#3292).
|
|
5
|
+
*/
|
|
6
|
+
const GENERATION_4_THINKING_LEVEL_MAP = {
|
|
7
|
+
off: null,
|
|
8
|
+
minimal: null,
|
|
9
|
+
low: "low",
|
|
10
|
+
medium: "medium",
|
|
11
|
+
high: "high",
|
|
12
|
+
xhigh: null,
|
|
13
|
+
max: null,
|
|
14
|
+
};
|
|
15
|
+
/** A complete id or a `models/`-style namespace, generation 4 or later, then the end or a `-` suffix. */
|
|
16
|
+
const GENERATION_4_ID = /(?:^|\/)gemini-(?:[4-9]|[1-9]\d)(?:\.\d+)?(?:-|$)/;
|
|
17
|
+
export function isGoogleGeneration4OrLaterModelId(modelId) {
|
|
18
|
+
return GENERATION_4_ID.test(modelId.toLowerCase());
|
|
19
|
+
}
|
|
20
|
+
/** The level map for a generation-4-or-later row that ships none; generated metadata always wins. */
|
|
21
|
+
export function inferGoogleThinkingLevelMap(model) {
|
|
22
|
+
if (model.thinkingLevelMap !== undefined)
|
|
23
|
+
return model.thinkingLevelMap;
|
|
24
|
+
if (GOOGLE_THINKING_APIS.includes(model.api) && isGoogleGeneration4OrLaterModelId(model.id)) {
|
|
25
|
+
return GENERATION_4_THINKING_LEVEL_MAP;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=google-thinking-generation.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from "./endpoint-reasoning-efforts.ts";
|
|
|
34
34
|
export * from "./env-api-keys.ts";
|
|
35
35
|
export * from "./legacy-provider-ids.ts";
|
|
36
36
|
export { modelSupportsAssistantPrefill } from "./model.ts";
|
|
37
|
+
export * from "./model-cost.ts";
|
|
37
38
|
export * from "./models.ts";
|
|
38
39
|
export * from "./models-store.ts";
|
|
39
40
|
export { supportsAllowedToolChoice } from "./openai-responses-compat.ts";
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export * from "./endpoint-reasoning-efforts.js";
|
|
|
20
20
|
export * from "./env-api-keys.js";
|
|
21
21
|
export * from "./legacy-provider-ids.js";
|
|
22
22
|
export { modelSupportsAssistantPrefill } from "./model.js";
|
|
23
|
+
export * from "./model-cost.js";
|
|
23
24
|
export * from "./models.js";
|
|
24
25
|
export * from "./models-store.js";
|
|
25
26
|
export { supportsAllowedToolChoice } from "./openai-responses-compat.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModelCost, ModelCostCard } from "./types.ts";
|
|
2
|
+
/** The card in force at `atMs`: the latest dated card that has started, else the base card. */
|
|
3
|
+
export declare function costCardAt(cost: ModelCost, atMs: number): ModelCostCard;
|
|
4
|
+
//# sourceMappingURL=model-cost.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The card in force at `atMs`: the latest dated card that has started, else the base card. */
|
|
2
|
+
export function costCardAt(cost, atMs) {
|
|
3
|
+
let card = cost;
|
|
4
|
+
let startedAt = Number.NEGATIVE_INFINITY;
|
|
5
|
+
for (const rate of cost.effectiveRates ?? []) {
|
|
6
|
+
const from = Date.parse(rate.effectiveFrom);
|
|
7
|
+
if (from <= atMs && from > startedAt) {
|
|
8
|
+
card = rate;
|
|
9
|
+
startedAt = from;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return card;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=model-cost.js.map
|
package/dist/models.d.ts
CHANGED
|
@@ -272,9 +272,11 @@ export declare function createProvider<TApi extends Api = Api>(input: CreateProv
|
|
|
272
272
|
* Non-chat models never match, even when their api id equals `api`.
|
|
273
273
|
*/
|
|
274
274
|
export declare function hasApi<TApi extends Api>(model: AnyModel, api: TApi): model is Model<TApi>;
|
|
275
|
-
export declare function calculateCost(model: AnyModel, usage: Usage): Usage["cost"];
|
|
275
|
+
export declare function calculateCost(model: AnyModel, usage: Usage, atMs?: number): Usage["cost"];
|
|
276
276
|
/** Infer documented OpenAI reasoning controls only when generated metadata is absent. */
|
|
277
277
|
export declare function inferOpenAIThinkingLevelMap<TApi extends Api>(model: Model<TApi>): ThinkingLevelMap | undefined;
|
|
278
|
+
/** The level map a row carries, else the one inferred from documented provider controls. */
|
|
279
|
+
export declare function inferThinkingLevelMap<TApi extends Api>(model: Model<TApi>): ThinkingLevelMap | undefined;
|
|
278
280
|
export declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
|
|
279
281
|
export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
|
|
280
282
|
/**
|
package/dist/models.js
CHANGED
|
@@ -4,7 +4,9 @@ import { InMemoryCredentialStore } from "./auth/credential-store.js";
|
|
|
4
4
|
import { appendLoginSlot, removeSlot } from "./auth/pool/slots.js";
|
|
5
5
|
import { resolveRefreshCredential } from "./auth/refresh-credential.js";
|
|
6
6
|
import { ModelsError, providerNotConfiguredMessage, resolveProviderAuth, } from "./auth/resolve.js";
|
|
7
|
+
import { inferGoogleThinkingLevelMap } from "./google-thinking-generation.js";
|
|
7
8
|
import { builtinCatalogAdvertisesMax } from "./model-catalog.js";
|
|
9
|
+
import { costCardAt } from "./model-cost.js";
|
|
8
10
|
import { InMemoryModelsStore } from "./models-store.js";
|
|
9
11
|
import { operationSignal, raceWithAbortSignal } from "./utils/abort.js";
|
|
10
12
|
import { assertChatModel, assertClassifierModel, assertImageModel, classifierErrorResult, getModelType, imageErrorResult, isModelType, } from "./utils/model-operations.js";
|
|
@@ -688,11 +690,12 @@ export function createProvider(input) {
|
|
|
688
690
|
export function hasApi(model, api) {
|
|
689
691
|
return isModelType(model, "chat") && model.api === api;
|
|
690
692
|
}
|
|
691
|
-
export function calculateCost(model, usage) {
|
|
693
|
+
export function calculateCost(model, usage, atMs = Date.now()) {
|
|
692
694
|
const inputTokens = usage.input + usage.cacheRead + usage.cacheWrite;
|
|
693
|
-
|
|
695
|
+
const card = costCardAt(model.cost, atMs);
|
|
696
|
+
let rates = card;
|
|
694
697
|
let matchedThreshold = -1;
|
|
695
|
-
for (const tier of
|
|
698
|
+
for (const tier of card.tiers ?? []) {
|
|
696
699
|
if (inputTokens > tier.inputTokensAbove && tier.inputTokensAbove > matchedThreshold) {
|
|
697
700
|
rates = tier;
|
|
698
701
|
matchedThreshold = tier.inputTokensAbove;
|
|
@@ -736,11 +739,15 @@ export function inferOpenAIThinkingLevelMap(model) {
|
|
|
736
739
|
}
|
|
737
740
|
return undefined;
|
|
738
741
|
}
|
|
742
|
+
/** The level map a row carries, else the one inferred from documented provider controls. */
|
|
743
|
+
export function inferThinkingLevelMap(model) {
|
|
744
|
+
return inferOpenAIThinkingLevelMap(model) ?? inferGoogleThinkingLevelMap(model);
|
|
745
|
+
}
|
|
739
746
|
export function getSupportedThinkingLevels(model) {
|
|
740
747
|
if (!model.reasoning)
|
|
741
748
|
return ["off"];
|
|
742
749
|
return EXTENDED_THINKING_LEVELS.filter((level) => {
|
|
743
|
-
const mapped =
|
|
750
|
+
const mapped = inferThinkingLevelMap(model)?.[level];
|
|
744
751
|
if (mapped === null)
|
|
745
752
|
return false;
|
|
746
753
|
if (level === "xhigh")
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PROVIDER_DIAGNOSTIC_MAX_BYTES } from "./utils/provider-diagnostic-vocabulary.ts";
|
|
2
2
|
/** Closed failure families. `unknown` is kept rather than guessed. */
|
|
3
|
-
export type ProviderDiagnosticCategory = "auth" | "rate_limit" | "quota" | "context_limit" | "invalid_request" | "provider_unavailable" | "unknown";
|
|
3
|
+
export type ProviderDiagnosticCategory = "auth" | "rate_limit" | "quota" | "context_limit" | "invalid_request" | "provider_unavailable" | "network" | "unknown";
|
|
4
4
|
/** Which structured provider field decided the category. */
|
|
5
|
-
export type ProviderDiagnosticEvidence = "structured_status" | "structured_code";
|
|
5
|
+
export type ProviderDiagnosticEvidence = "structured_status" | "structured_code" | "structured_transport";
|
|
6
6
|
/**
|
|
7
7
|
* Bounded, redaction-safe classification of a provider rejection, minted only by
|
|
8
8
|
* a provider adapter from structured metadata (the SDK HTTP error its own
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { peekProviderDiagnostic } from "./utils/provider-diagnostic-carrier.js";
|
|
2
|
-
import { buildProviderDiagnostic, categoryForProviderCode, categoryForProviderStatus, isProviderCodeStatusCompatible, isProviderDiagnosticCategory, isProviderDiagnosticStatus, PROVIDER_DIAGNOSTIC_MAX_BYTES, } from "./utils/provider-diagnostic-vocabulary.js";
|
|
2
|
+
import { buildProviderDiagnostic, categoryForProviderCode, categoryForProviderStatus, categoryForTransportCode, isProviderCodeStatusCompatible, isProviderDiagnosticCategory, isProviderDiagnosticStatus, PROVIDER_DIAGNOSTIC_MAX_BYTES, } from "./utils/provider-diagnostic-vocabulary.js";
|
|
3
3
|
export { PROVIDER_DIAGNOSTIC_MAX_BYTES };
|
|
4
4
|
function readField(value, key) {
|
|
5
5
|
return Reflect.get(value, key);
|
|
@@ -28,6 +28,13 @@ export function sanitizeProviderDiagnostic(value) {
|
|
|
28
28
|
return undefined;
|
|
29
29
|
return buildProviderDiagnostic({ category, httpStatus, evidence });
|
|
30
30
|
}
|
|
31
|
+
if (evidence === "structured_transport") {
|
|
32
|
+
if (httpStatus !== undefined || typeof code !== "string")
|
|
33
|
+
return undefined;
|
|
34
|
+
if (categoryForTransportCode(code) !== category)
|
|
35
|
+
return undefined;
|
|
36
|
+
return buildProviderDiagnostic({ category, code, evidence });
|
|
37
|
+
}
|
|
31
38
|
if (evidence !== "structured_code" || typeof code !== "string")
|
|
32
39
|
return undefined;
|
|
33
40
|
if (categoryForProviderCode(code) !== category)
|
package/dist/providers/all.js
CHANGED
|
@@ -69,10 +69,12 @@ const XIAOMI_MIMO_PROVIDERS = new Set([
|
|
|
69
69
|
"xiaomi-token-plan-ams",
|
|
70
70
|
"xiaomi-token-plan-sgp",
|
|
71
71
|
]);
|
|
72
|
+
// mimo-v2.5-pro is deprecated upstream (models.dev) and drops out of a regenerated catalog; v2.6-pro is its successor.
|
|
73
|
+
const XIAOMI_MIMO_PRO_IDS = new Set(["mimo-v2.5-pro", "mimo-v2.6-pro"]);
|
|
72
74
|
function normalizeBuiltinModel(model) {
|
|
73
75
|
if (!model)
|
|
74
76
|
return undefined;
|
|
75
|
-
if (XIAOMI_MIMO_PROVIDERS.has(model.provider) && model.id
|
|
77
|
+
if (XIAOMI_MIMO_PROVIDERS.has(model.provider) && XIAOMI_MIMO_PRO_IDS.has(model.id)) {
|
|
76
78
|
return {
|
|
77
79
|
...model,
|
|
78
80
|
compat: {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { anthropicMessagesApi } from "../api/anthropic-messages.lazy.js";
|
|
2
|
-
import { lazyOAuth } from "../auth/helpers.js";
|
|
3
|
-
import { loadAnthropicOAuth } from "../auth/oauth/load.js";
|
|
4
2
|
import { ANTHROPIC_API_KEY_ENV, ANTHROPIC_AUTH_TOKEN_ENV, ANTHROPIC_FEDERATION_RULE_ID_ENV, ANTHROPIC_IDENTITY_TOKEN_FILE_ENV, ANTHROPIC_OAUTH_TOKEN_ENV, ANTHROPIC_ORGANIZATION_ID_ENV, ANTHROPIC_SERVICE_ACCOUNT_ID_ENV, ANTHROPIC_WORKSPACE_ID_ENV, } from "../env-api-keys.js";
|
|
5
3
|
import { createProvider } from "../models.js";
|
|
6
4
|
import { ANTHROPIC_MODELS } from "./anthropic.models.js";
|
|
@@ -66,13 +64,11 @@ export function anthropicProvider() {
|
|
|
66
64
|
id: "anthropic",
|
|
67
65
|
name: "Anthropic",
|
|
68
66
|
baseUrl: "https://api.anthropic.com",
|
|
67
|
+
// No Claude subscription OAuth here (senpi#3259): Anthropic bills a subscription token sent
|
|
68
|
+
// straight to the Messages API as a third-party app (extra usage). Subscriptions log in through
|
|
69
|
+
// the Agent SDK lane (`anthropic-subscription`), which reuses the same OAuth flow.
|
|
69
70
|
auth: {
|
|
70
71
|
apiKey: anthropicApiKeyAuth(),
|
|
71
|
-
oauth: lazyOAuth({
|
|
72
|
-
name: "Anthropic (Claude Pro/Max)",
|
|
73
|
-
isSubscription: true,
|
|
74
|
-
load: loadAnthropicOAuth,
|
|
75
|
-
}),
|
|
76
72
|
},
|
|
77
73
|
models: Object.values(ANTHROPIC_MODELS),
|
|
78
74
|
api: anthropicMessagesApi(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"schemaVersion":6,"generatedAt":"2026-10-
|
|
1
|
+
{"schemaVersion":6,"generatedAt":"2026-10-16T03:04:30.069Z","structureHash":"ee48443c7a28158b79bf3800dc49fe099102d2fb0f5223a2bb3dd0efb5c5aa53","files":{"alibaba-token-plan.json":"16b3c6c78d72c73ca34a1e79ce71c0cf36ba409d02e83a17396ce0949a1d5363","amazon-bedrock.json":"4a95e6bf974e5ca967d5c050df580262e13573e42b3186edb448fa11a302f09f","ant-ling.json":"628feab3ef6c7d80ce96f75999804e1d9f05fec3851e5302e30fff3b69db90f6","anthropic.json":"111384e9f5845e0247bd34edf2400ef7720fcbdac140b944cf8878192d8bd6ab","azure-openai-responses.json":"a3e52bd78f0220aa32bce519e13955b8e6e567860416343844cbe19902f4a682","bai.json":"7e6861aaf27d8af34e1771c6092602194fcec0a0046e6adfab9c3ee54d32b99f","baseten.json":"1fcdab8daf2881bd099eb08f9416f7df5bf39975937d2a63b841542bd032f2e6","cerebras.json":"3eccb58c5de3d0dc7ba49dc6e477ba29f00cb3150ce0a35cc90d59e6b5ab368e","chatgpt-subscription.json":"42b88c93d717b2a7469b71da7da5adf87347d0d9cc0f264b39117f0f940b51c0","cloudflare-ai-gateway.json":"673ac36e4531995c43e49e132577cdde18a0ba088648ecae5a904020f400abc2","cloudflare-workers-ai.json":"f351e80493dea7b7a2c31dceb086ee804a88d67c5f8a3c823ea907991fe5d659","deepseek.json":"10a296fb3e898f7715c80890c8af0af4f5fd58f22dbcd6612fdc5d762157ccdc","fireworks.json":"868f828365314089608e6d0d915076f6d3d4f67c305f824d47ba05e040897d39","github-copilot.json":"9a0a960b5978134bdd7a5e56928fb1985a10ce893fd31d93a272a4b38c413740","google-vertex.json":"8f986b4aca8c685b0f3481bd252bda21e4858bf9015ad37fc5bcc44b7f01d076","google.json":"fc06c3cd56c180d214612ce0ef72ea14734195de70ace47ef47f02199b053aae","groq.json":"910952ad9dad07856983459d63fce0148dba1203edd7b10d801a77c5824f3405","huggingface.json":"6399e958790a9d90c21fb55d1cbef8569427a1ceb28de86dadeb3b4454ecfade","meta.json":"563f5ec07973f52ab8c3eb26ef91a36ad8a79e950b37174935666cdcb624bf35","minimax-cn.json":"f962c20ee6a6a342820f778e9dc363a18a524bf11998f6e2c57f2989915d62e5","minimax.json":"17a432f80d0ea6dd26eade80a4314250d3a855678601728a5f70dd8fa0d21dd2","mistral.json":"27aa66c71a0504b53dc87ec194286fa7e70b99747fc8df9b709b23b3548afe50","moonshotai-cn.json":"18954b55dc5edecc174d8a07a2c5993416dd9d3ce52e411438035c16ee982e8e","moonshotai.json":"62d08fd5beead025a56d5f2e4227d8516b9c5034275b1b36d761a8625918f2b9","nvidia.json":"98b47c4da26c8e649f48a874602fd7e9dc8a54ee0bdb40e3d07fe49189a842d2","openai.json":"9104538118053eed57f90852332b6ad274a4e4792389bdbc9cfca1ae400c705a","opencode-go.json":"b78a595ce56b3da17d93d609e490eda7843e090cc7943f96423c108ca2abbbc9","opencode.json":"91807b95d1c17cce9c47143ee4ea6a87d7111e6504f05662a55d5856372eb48e","opengateway.json":"726a3dc5f03dfb904417ceba6c95804bf57772086ca685bc84541ed153b080c8","openrouter.json":"5d5d1ccc1dfcb32517361c9ac082aa230ae6b28cf931f2cf521853abe983110d","qwen-token-plan-cn.json":"bd36a6d9cc2048deafacc85f7f0f2e51868c8b7aa09502e3e4e60e3e8b76f690","qwen-token-plan-individual.json":"35ffb0ba1a1ce3f68fc73262dd5e07fbcb5bf5911ad1e6e17bc0621e2894676a","qwen-token-plan.json":"ca27e49e62965221badead8e867b2007035c6b6a15a97c47219bd23d2c83c2b1","radius.json":"e33fab6aa5ac6c43ce26dc3680ea28f2d7d063a8dbca0360ee2b9c5676bc43a6","together.json":"bbd7fad86cacfefe3d3d61f6638f22e9b6f5d575722fd1112a16aafe0485c46d","typesafe.json":"a4429a2f696d5cc5273969af61a7310bda07d6bdcd27bf9ac9c76c534cc43716","venice.json":"5832125d8ea5d3ca84e01d4740926cabf16cbd5952bda2ef809413200a4a7097","vercel-ai-gateway.json":"aff3af2ac9f49338f733825f0e801acb96ab0196062dccedd543ad86ef702c7b","xai.json":"d7771a1450b21c1f6aee887ca6fea61b6e7b3fc13b4dee5cf72a71134fe623bc","xiaomi-token-plan-ams.json":"7fa339ba5675460b1ff4e5bca9e8ad0aa60b0277d75a989b1c196aa6ca2af34d","xiaomi-token-plan-cn.json":"ef7917c6ea0d3edc655c8a52082ee5f1330658aa6f10199d8f164eb4605ef0a0","xiaomi-token-plan-sgp.json":"addda93f6b70ba879db97e3cfd2e4f2efc7cda47d7daa78c23c5b0e51162de5c","xiaomi.json":"5a42caf49d3e4d7946d60386e9899c2146bf8e3cbaff4c576ee4f49b398cc11c","zai-coding-cn.json":"2a7f59d15f588a97d218997883f2506dfc52d3ee320697d39f14213a050fc912","zai.json":"e9cc408e1756de8abc70148d63d89d11a63c65b7ef06ad0661cd1328e4209ba3"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"anthropic-messages":{"chat:accounts/fireworks/models/deepseek-v4p1-flash":{"id":"accounts/fireworks/models/deepseek-v4p1-flash","name":"DeepSeek V4.1 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.006,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/ember-1":{"id":"accounts/fireworks/models/ember-1","name":"Ember-1","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0.015,"cacheWrite":0},"contextWindow":131072,"maxTokens":32768,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/inkling":{"id":"accounts/fireworks/models/inkling","name":"Inkling","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":4.05,"cacheRead":0.17,"cacheWrite":0},"contextWindow":1048576,"maxTokens":1048576,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/minimax-m3":{"id":"accounts/fireworks/models/minimax-m3","name":"MiniMax-M3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/nemotron-3-ultra-nvfp4":{"id":"accounts/fireworks/models/nemotron-3-ultra-nvfp4","name":"Nemotron 3 Ultra 550B A55B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.4,"cacheRead":0.12,"cacheWrite":0},"contextWindow":262144,"maxTokens":128000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b":{"id":"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b","name":"Nemotron 3.5 Lightning 30B A3B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.05,"output":0.2,"cacheRead":0.01,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-2p4t-a95b":{"id":"accounts/fireworks/models/qwen3p8-2p4t-a95b","name":"Qwen3.8 2.4T A95B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-max":{"id":"accounts/fireworks/models/qwen3p8-max","name":"Qwen3.8 Max","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/deepseek-flash-latest":{"id":"accounts/fireworks/routers/deepseek-flash-latest","name":"DeepSeek Flash Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.006,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-fast-latest":{"id":"accounts/fireworks/routers/kimi-fast-latest","name":"Kimi Fast Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-latest":{"id":"accounts/fireworks/routers/kimi-latest","name":"Kimi Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/minimax-latest":{"id":"accounts/fireworks/routers/minimax-latest","name":"MiniMax Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/routers/qwen-max-latest":{"id":"accounts/fireworks/routers/qwen-max-latest","name":"Qwen Max Latest (Qwen3.8 Max)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}},"openai-completions":{"chat:accounts/fireworks/models/glm-5p3":{"id":"accounts/fireworks/models/glm-5p3","name":"GLM 5.3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/glm-5p3-flash":{"id":"accounts/fireworks/models/glm-5p3-flash","name":"GLM 5.3 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k3":{"id":"accounts/fireworks/models/kimi-k3","name":"Kimi K3","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-5p3-fast":{"id":"accounts/fireworks/routers/glm-5p3-fast","name":"GLM 5.3 Fast","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-fast-latest":{"id":"accounts/fireworks/routers/glm-fast-latest","name":"GLM 5.3 Fast (Latest)","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-flash-latest":{"id":"accounts/fireworks/routers/glm-flash-latest","name":"GLM Flash Latest (GLM 5.3 Flash)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-latest":{"id":"accounts/fireworks/routers/glm-latest","name":"GLM Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/kimi-k3-fast":{"id":"accounts/fireworks/routers/kimi-k3-fast","name":"Kimi K3 Fast","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}}}
|
|
1
|
+
{"anthropic-messages":{"chat:accounts/fireworks/models/deepseek-v4p1-flash":{"id":"accounts/fireworks/models/deepseek-v4p1-flash","name":"DeepSeek V4.1 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.006,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/ember-1":{"id":"accounts/fireworks/models/ember-1","name":"Ember-1","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/gpt-oss-120b":{"id":"accounts/fireworks/models/gpt-oss-120b","name":"GPT OSS 120B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0.015,"cacheWrite":0},"contextWindow":131072,"maxTokens":32768,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/inkling":{"id":"accounts/fireworks/models/inkling","name":"Inkling","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":4.05,"cacheRead":0.17,"cacheWrite":0},"contextWindow":1048576,"maxTokens":1048576,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/minimax-m3":{"id":"accounts/fireworks/models/minimax-m3","name":"MiniMax-M3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/models/muse-spark-open":{"id":"accounts/fireworks/models/muse-spark-open","name":"Muse Spark Open","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":4.25,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/nemotron-3-ultra-nvfp4":{"id":"accounts/fireworks/models/nemotron-3-ultra-nvfp4","name":"Nemotron 3 Ultra 550B A55B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.4,"cacheRead":0.12,"cacheWrite":0},"contextWindow":262144,"maxTokens":128000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b":{"id":"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b","name":"Nemotron 3.5 Lightning 30B A3B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.05,"output":0.2,"cacheRead":0.01,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-2p4t-a95b":{"id":"accounts/fireworks/models/qwen3p8-2p4t-a95b","name":"Qwen3.8 2.4T A95B","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"type":"chat"},"chat:accounts/fireworks/models/qwen3p8-max":{"id":"accounts/fireworks/models/qwen3p8-max","name":"Qwen3.8 Max","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":null,"xhigh":"xhigh","max":null},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/deepseek-flash-latest":{"id":"accounts/fireworks/routers/deepseek-flash-latest","name":"DeepSeek Flash Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.006,"cacheWrite":0},"contextWindow":1000000,"maxTokens":384000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-fast-latest":{"id":"accounts/fireworks/routers/kimi-fast-latest","name":"Kimi Fast Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/kimi-latest":{"id":"accounts/fireworks/routers/kimi-latest","name":"Kimi Latest","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":"none","minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/minimax-latest":{"id":"accounts/fireworks/routers/minimax-latest","name":"MiniMax Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":512000,"maxTokens":512000,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false,"forceAdaptiveThinking":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null},"type":"chat"},"chat:accounts/fireworks/routers/qwen-max-latest":{"id":"accounts/fireworks/routers/qwen-max-latest","name":"Qwen Max Latest (Qwen3.8 Max)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.25,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"api":"anthropic-messages","baseUrl":"https://api.fireworks.ai/inference","compat":{"supportsToolReferences":true,"allowEmptySignature":true,"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}},"openai-completions":{"chat:accounts/fireworks/models/glm-5p3":{"id":"accounts/fireworks/models/glm-5p3","name":"GLM 5.3","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/models/glm-5p3-flash":{"id":"accounts/fireworks/models/glm-5p3-flash","name":"GLM 5.3 Flash","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/models/kimi-k3":{"id":"accounts/fireworks/models/kimi-k3","name":"Kimi K3","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-5p3-fast":{"id":"accounts/fireworks/routers/glm-5p3-fast","name":"GLM 5.3 Fast","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":"none","minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-fast-latest":{"id":"accounts/fireworks/routers/glm-fast-latest","name":"GLM 5.3 Fast (Latest)","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":2.1,"output":6.6,"cacheRead":0.39,"cacheWrite":0},"contextWindow":1048572,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/glm-flash-latest":{"id":"accounts/fireworks/routers/glm-flash-latest","name":"GLM Flash Latest (GLM 5.3 Flash)","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":0.15,"output":0.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048573,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"},"chat:accounts/fireworks/routers/glm-latest":{"id":"accounts/fireworks/routers/glm-latest","name":"GLM Latest","provider":"fireworks","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"contextWindow":1048573,"maxTokens":262144,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"type":"chat"},"chat:accounts/fireworks/routers/kimi-k3-fast":{"id":"accounts/fireworks/routers/kimi-k3-fast","name":"Kimi K3 Fast","provider":"fireworks","reasoning":true,"input":["text","image"],"cost":{"input":4.5,"output":22.5,"cacheRead":0.45,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"api":"openai-completions","baseUrl":"https://api.fireworks.ai/inference/v1","compat":{"supportsStrictMode":true,"supportsStore":false,"supportsDeveloperRole":false,"sendSessionAffinityHeaders":true,"supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"openai","supportsMidConvoSystemMessages":true,"supportsMidConvoToolAdditions":true},"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"inputLimits":{"images":{"resize":{"maxWidth":2000,"maxHeight":2000,"maxBytes":4718592,"jpegQuality":80}}},"type":"chat"}}}
|