@merit-systems/echo-react-sdk 1.0.13 → 1.0.16
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/echo-react-sdk.umd.js +2 -2
- package/dist/echo-react-sdk.umd.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -8
- package/dist/index.js +2772 -177
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
package/dist/index.js
CHANGED
|
@@ -4878,7 +4878,7 @@ function prettifyError(error2) {
|
|
|
4878
4878
|
}
|
|
4879
4879
|
return lines.join("\n");
|
|
4880
4880
|
}
|
|
4881
|
-
const _parse$
|
|
4881
|
+
const _parse$2 = (_Err) => (schema, value, _ctx, _params) => {
|
|
4882
4882
|
const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
|
|
4883
4883
|
const result = schema._zod.run({ value, issues: [] }, ctx);
|
|
4884
4884
|
if (result instanceof Promise) {
|
|
@@ -4891,7 +4891,7 @@ const _parse$1 = (_Err) => (schema, value, _ctx, _params) => {
|
|
|
4891
4891
|
}
|
|
4892
4892
|
return result.value;
|
|
4893
4893
|
};
|
|
4894
|
-
const parse$1 = /* @__PURE__ */ _parse$
|
|
4894
|
+
const parse$1 = /* @__PURE__ */ _parse$2($ZodRealError);
|
|
4895
4895
|
const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {
|
|
4896
4896
|
const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };
|
|
4897
4897
|
let result = schema._zod.run({ value, issues: [] }, ctx);
|
|
@@ -14079,7 +14079,7 @@ function isTransforming(_schema, _ctx) {
|
|
|
14079
14079
|
}
|
|
14080
14080
|
throw new Error(`Unknown schema type: ${def.type}`);
|
|
14081
14081
|
}
|
|
14082
|
-
const jsonSchema$
|
|
14082
|
+
const jsonSchema$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
14083
14083
|
__proto__: null
|
|
14084
14084
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
14085
14085
|
const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -14183,7 +14183,7 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
|
|
|
14183
14183
|
$input,
|
|
14184
14184
|
$output,
|
|
14185
14185
|
Doc,
|
|
14186
|
-
JSONSchema: jsonSchema$
|
|
14186
|
+
JSONSchema: jsonSchema$2,
|
|
14187
14187
|
JSONSchemaGenerator,
|
|
14188
14188
|
NEVER,
|
|
14189
14189
|
TimePrecision,
|
|
@@ -14261,7 +14261,7 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
|
|
|
14261
14261
|
_number,
|
|
14262
14262
|
_optional,
|
|
14263
14263
|
_overwrite,
|
|
14264
|
-
_parse: _parse$
|
|
14264
|
+
_parse: _parse$2,
|
|
14265
14265
|
_parseAsync,
|
|
14266
14266
|
_pipe,
|
|
14267
14267
|
_positive,
|
|
@@ -14403,7 +14403,7 @@ const ZodError = $constructor("ZodError", initializer);
|
|
|
14403
14403
|
const ZodRealError = $constructor("ZodError", initializer, {
|
|
14404
14404
|
Parent: Error
|
|
14405
14405
|
});
|
|
14406
|
-
const parse = /* @__PURE__ */ _parse$
|
|
14406
|
+
const parse = /* @__PURE__ */ _parse$2(ZodRealError);
|
|
14407
14407
|
const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
14408
14408
|
const safeParse = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
14409
14409
|
const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError);
|
|
@@ -16815,7 +16815,7 @@ function combineHeaders(...headers) {
|
|
|
16815
16815
|
function extractResponseHeaders(response) {
|
|
16816
16816
|
return Object.fromEntries([...response.headers]);
|
|
16817
16817
|
}
|
|
16818
|
-
var createIdGenerator = ({
|
|
16818
|
+
var createIdGenerator$1 = ({
|
|
16819
16819
|
prefix,
|
|
16820
16820
|
size = 16,
|
|
16821
16821
|
alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
@@ -16840,7 +16840,7 @@ var createIdGenerator = ({
|
|
|
16840
16840
|
}
|
|
16841
16841
|
return () => `${prefix}${separator}${generator()}`;
|
|
16842
16842
|
};
|
|
16843
|
-
var generateId = createIdGenerator();
|
|
16843
|
+
var generateId$1 = createIdGenerator$1();
|
|
16844
16844
|
function isAbortError(error2) {
|
|
16845
16845
|
return (error2 instanceof Error || error2 instanceof DOMException) && (error2.name === "AbortError" || error2.name === "ResponseAborted" || // Next.js
|
|
16846
16846
|
error2.name === "TimeoutError");
|
|
@@ -16906,19 +16906,19 @@ function loadApiKey({
|
|
|
16906
16906
|
}
|
|
16907
16907
|
return apiKey;
|
|
16908
16908
|
}
|
|
16909
|
-
var suspectProtoRx = /"__proto__"\s*:/;
|
|
16910
|
-
var suspectConstructorRx = /"constructor"\s*:/;
|
|
16911
|
-
function _parse(text2) {
|
|
16909
|
+
var suspectProtoRx$1 = /"__proto__"\s*:/;
|
|
16910
|
+
var suspectConstructorRx$1 = /"constructor"\s*:/;
|
|
16911
|
+
function _parse$1(text2) {
|
|
16912
16912
|
const obj = JSON.parse(text2);
|
|
16913
16913
|
if (obj === null || typeof obj !== "object") {
|
|
16914
16914
|
return obj;
|
|
16915
16915
|
}
|
|
16916
|
-
if (suspectProtoRx.test(text2) === false && suspectConstructorRx.test(text2) === false) {
|
|
16916
|
+
if (suspectProtoRx$1.test(text2) === false && suspectConstructorRx$1.test(text2) === false) {
|
|
16917
16917
|
return obj;
|
|
16918
16918
|
}
|
|
16919
|
-
return filter(obj);
|
|
16919
|
+
return filter$1(obj);
|
|
16920
16920
|
}
|
|
16921
|
-
function filter(obj) {
|
|
16921
|
+
function filter$1(obj) {
|
|
16922
16922
|
let next = [obj];
|
|
16923
16923
|
while (next.length) {
|
|
16924
16924
|
const nodes = next;
|
|
@@ -16940,27 +16940,27 @@ function filter(obj) {
|
|
|
16940
16940
|
}
|
|
16941
16941
|
return obj;
|
|
16942
16942
|
}
|
|
16943
|
-
function secureJsonParse(text2) {
|
|
16943
|
+
function secureJsonParse$1(text2) {
|
|
16944
16944
|
const { stackTraceLimit } = Error;
|
|
16945
16945
|
Error.stackTraceLimit = 0;
|
|
16946
16946
|
try {
|
|
16947
|
-
return _parse(text2);
|
|
16947
|
+
return _parse$1(text2);
|
|
16948
16948
|
} finally {
|
|
16949
16949
|
Error.stackTraceLimit = stackTraceLimit;
|
|
16950
16950
|
}
|
|
16951
16951
|
}
|
|
16952
|
-
var validatorSymbol = Symbol.for("vercel.ai.validator");
|
|
16953
|
-
function validator(validate) {
|
|
16954
|
-
return { [validatorSymbol]: true, validate };
|
|
16952
|
+
var validatorSymbol$1 = Symbol.for("vercel.ai.validator");
|
|
16953
|
+
function validator$1(validate) {
|
|
16954
|
+
return { [validatorSymbol$1]: true, validate };
|
|
16955
16955
|
}
|
|
16956
|
-
function isValidator(value) {
|
|
16957
|
-
return typeof value === "object" && value !== null && validatorSymbol in value && value[validatorSymbol] === true && "validate" in value;
|
|
16956
|
+
function isValidator$1(value) {
|
|
16957
|
+
return typeof value === "object" && value !== null && validatorSymbol$1 in value && value[validatorSymbol$1] === true && "validate" in value;
|
|
16958
16958
|
}
|
|
16959
|
-
function asValidator(value) {
|
|
16960
|
-
return isValidator(value) ? value : standardSchemaValidator(value);
|
|
16959
|
+
function asValidator$1(value) {
|
|
16960
|
+
return isValidator$1(value) ? value : standardSchemaValidator$1(value);
|
|
16961
16961
|
}
|
|
16962
|
-
function standardSchemaValidator(standardSchema) {
|
|
16963
|
-
return validator(async (value) => {
|
|
16962
|
+
function standardSchemaValidator$1(standardSchema) {
|
|
16963
|
+
return validator$1(async (value) => {
|
|
16964
16964
|
const result = await standardSchema["~standard"].validate(value);
|
|
16965
16965
|
return result.issues == null ? { success: true, value: result.value } : {
|
|
16966
16966
|
success: false,
|
|
@@ -16971,21 +16971,21 @@ function standardSchemaValidator(standardSchema) {
|
|
|
16971
16971
|
};
|
|
16972
16972
|
});
|
|
16973
16973
|
}
|
|
16974
|
-
async function validateTypes({
|
|
16974
|
+
async function validateTypes$1({
|
|
16975
16975
|
value,
|
|
16976
16976
|
schema
|
|
16977
16977
|
}) {
|
|
16978
|
-
const result = await safeValidateTypes({ value, schema });
|
|
16978
|
+
const result = await safeValidateTypes$1({ value, schema });
|
|
16979
16979
|
if (!result.success) {
|
|
16980
16980
|
throw TypeValidationError.wrap({ value, cause: result.error });
|
|
16981
16981
|
}
|
|
16982
16982
|
return result.value;
|
|
16983
16983
|
}
|
|
16984
|
-
async function safeValidateTypes({
|
|
16984
|
+
async function safeValidateTypes$1({
|
|
16985
16985
|
value,
|
|
16986
16986
|
schema
|
|
16987
16987
|
}) {
|
|
16988
|
-
const validator2 = asValidator(schema);
|
|
16988
|
+
const validator2 = asValidator$1(schema);
|
|
16989
16989
|
try {
|
|
16990
16990
|
if (validator2.validate == null) {
|
|
16991
16991
|
return { success: true, value, rawValue: value };
|
|
@@ -17012,11 +17012,11 @@ async function parseJSON({
|
|
|
17012
17012
|
schema
|
|
17013
17013
|
}) {
|
|
17014
17014
|
try {
|
|
17015
|
-
const value = secureJsonParse(text2);
|
|
17015
|
+
const value = secureJsonParse$1(text2);
|
|
17016
17016
|
if (schema == null) {
|
|
17017
17017
|
return value;
|
|
17018
17018
|
}
|
|
17019
|
-
return validateTypes({ value, schema });
|
|
17019
|
+
return validateTypes$1({ value, schema });
|
|
17020
17020
|
} catch (error2) {
|
|
17021
17021
|
if (JSONParseError.isInstance(error2) || TypeValidationError.isInstance(error2)) {
|
|
17022
17022
|
throw error2;
|
|
@@ -17024,16 +17024,16 @@ async function parseJSON({
|
|
|
17024
17024
|
throw new JSONParseError({ text: text2, cause: error2 });
|
|
17025
17025
|
}
|
|
17026
17026
|
}
|
|
17027
|
-
async function safeParseJSON({
|
|
17027
|
+
async function safeParseJSON$1({
|
|
17028
17028
|
text: text2,
|
|
17029
17029
|
schema
|
|
17030
17030
|
}) {
|
|
17031
17031
|
try {
|
|
17032
|
-
const value = secureJsonParse(text2);
|
|
17032
|
+
const value = secureJsonParse$1(text2);
|
|
17033
17033
|
if (schema == null) {
|
|
17034
17034
|
return { success: true, value, rawValue: value };
|
|
17035
17035
|
}
|
|
17036
|
-
return await safeValidateTypes({ value, schema });
|
|
17036
|
+
return await safeValidateTypes$1({ value, schema });
|
|
17037
17037
|
} catch (error2) {
|
|
17038
17038
|
return {
|
|
17039
17039
|
success: false,
|
|
@@ -17044,13 +17044,13 @@ async function safeParseJSON({
|
|
|
17044
17044
|
}
|
|
17045
17045
|
function isParsableJson(input) {
|
|
17046
17046
|
try {
|
|
17047
|
-
secureJsonParse(input);
|
|
17047
|
+
secureJsonParse$1(input);
|
|
17048
17048
|
return true;
|
|
17049
17049
|
} catch (e) {
|
|
17050
17050
|
return false;
|
|
17051
17051
|
}
|
|
17052
17052
|
}
|
|
17053
|
-
function parseJsonEventStream({
|
|
17053
|
+
function parseJsonEventStream$1({
|
|
17054
17054
|
stream,
|
|
17055
17055
|
schema
|
|
17056
17056
|
}) {
|
|
@@ -17060,7 +17060,7 @@ function parseJsonEventStream({
|
|
|
17060
17060
|
if (data === "[DONE]") {
|
|
17061
17061
|
return;
|
|
17062
17062
|
}
|
|
17063
|
-
controller.enqueue(await safeParseJSON({ text: data, schema }));
|
|
17063
|
+
controller.enqueue(await safeParseJSON$1({ text: data, schema }));
|
|
17064
17064
|
}
|
|
17065
17065
|
})
|
|
17066
17066
|
);
|
|
@@ -17073,7 +17073,7 @@ async function parseProviderOptions({
|
|
|
17073
17073
|
if ((providerOptions == null ? void 0 : providerOptions[provider]) == null) {
|
|
17074
17074
|
return void 0;
|
|
17075
17075
|
}
|
|
17076
|
-
const parsedProviderOptions = await safeValidateTypes({
|
|
17076
|
+
const parsedProviderOptions = await safeValidateTypes$1({
|
|
17077
17077
|
value: providerOptions[provider],
|
|
17078
17078
|
schema
|
|
17079
17079
|
});
|
|
@@ -17252,7 +17252,7 @@ function createProviderDefinedToolFactoryWithOutputSchema({
|
|
|
17252
17252
|
onInputAvailable
|
|
17253
17253
|
});
|
|
17254
17254
|
}
|
|
17255
|
-
async function resolve(value) {
|
|
17255
|
+
async function resolve$1(value) {
|
|
17256
17256
|
if (typeof value === "function") {
|
|
17257
17257
|
value = value();
|
|
17258
17258
|
}
|
|
@@ -17319,7 +17319,7 @@ var createEventSourceResponseHandler = (chunkSchema2) => async ({ response }) =>
|
|
|
17319
17319
|
}
|
|
17320
17320
|
return {
|
|
17321
17321
|
responseHeaders,
|
|
17322
|
-
value: parseJsonEventStream({
|
|
17322
|
+
value: parseJsonEventStream$1({
|
|
17323
17323
|
stream: response.body,
|
|
17324
17324
|
schema: chunkSchema2
|
|
17325
17325
|
})
|
|
@@ -17327,7 +17327,7 @@ var createEventSourceResponseHandler = (chunkSchema2) => async ({ response }) =>
|
|
|
17327
17327
|
};
|
|
17328
17328
|
var createJsonResponseHandler = (responseSchema2) => async ({ response, url: url2, requestBodyValues }) => {
|
|
17329
17329
|
const responseBody = await response.text();
|
|
17330
|
-
const parsedResult = await safeParseJSON({
|
|
17330
|
+
const parsedResult = await safeParseJSON$1({
|
|
17331
17331
|
text: responseBody,
|
|
17332
17332
|
schema: responseSchema2
|
|
17333
17333
|
});
|
|
@@ -17379,10 +17379,10 @@ var createBinaryResponseHandler = () => async ({ response, url: url2, requestBod
|
|
|
17379
17379
|
});
|
|
17380
17380
|
}
|
|
17381
17381
|
};
|
|
17382
|
-
function zod3Schema(zodSchema2, options) {
|
|
17382
|
+
function zod3Schema$1(zodSchema2, options) {
|
|
17383
17383
|
var _a10;
|
|
17384
17384
|
const useReferences = (_a10 = void 0) != null ? _a10 : false;
|
|
17385
|
-
return jsonSchema(
|
|
17385
|
+
return jsonSchema$1(
|
|
17386
17386
|
zodToJsonSchema(zodSchema2, {
|
|
17387
17387
|
$refStrategy: useReferences ? "root" : "none",
|
|
17388
17388
|
target: "jsonSchema7"
|
|
@@ -17396,7 +17396,7 @@ function zod3Schema(zodSchema2, options) {
|
|
|
17396
17396
|
}
|
|
17397
17397
|
);
|
|
17398
17398
|
}
|
|
17399
|
-
function zod4Schema(zodSchema2, options) {
|
|
17399
|
+
function zod4Schema$1(zodSchema2, options) {
|
|
17400
17400
|
var _a10;
|
|
17401
17401
|
const useReferences = (_a10 = void 0) != null ? _a10 : false;
|
|
17402
17402
|
const z4JSONSchema = toJSONSchema(zodSchema2, {
|
|
@@ -17404,44 +17404,44 @@ function zod4Schema(zodSchema2, options) {
|
|
|
17404
17404
|
io: "output",
|
|
17405
17405
|
reused: useReferences ? "ref" : "inline"
|
|
17406
17406
|
});
|
|
17407
|
-
return jsonSchema(z4JSONSchema, {
|
|
17407
|
+
return jsonSchema$1(z4JSONSchema, {
|
|
17408
17408
|
validate: async (value) => {
|
|
17409
17409
|
const result = await safeParseAsync(zodSchema2, value);
|
|
17410
17410
|
return result.success ? { success: true, value: result.data } : { success: false, error: result.error };
|
|
17411
17411
|
}
|
|
17412
17412
|
});
|
|
17413
17413
|
}
|
|
17414
|
-
function isZod4Schema(zodSchema2) {
|
|
17414
|
+
function isZod4Schema$1(zodSchema2) {
|
|
17415
17415
|
return "_zod" in zodSchema2;
|
|
17416
17416
|
}
|
|
17417
|
-
function zodSchema(zodSchema2, options) {
|
|
17418
|
-
if (isZod4Schema(zodSchema2)) {
|
|
17419
|
-
return zod4Schema(zodSchema2);
|
|
17417
|
+
function zodSchema$1(zodSchema2, options) {
|
|
17418
|
+
if (isZod4Schema$1(zodSchema2)) {
|
|
17419
|
+
return zod4Schema$1(zodSchema2);
|
|
17420
17420
|
} else {
|
|
17421
|
-
return zod3Schema(zodSchema2);
|
|
17421
|
+
return zod3Schema$1(zodSchema2);
|
|
17422
17422
|
}
|
|
17423
17423
|
}
|
|
17424
|
-
var schemaSymbol = Symbol.for("vercel.ai.schema");
|
|
17425
|
-
function jsonSchema(jsonSchema2, {
|
|
17424
|
+
var schemaSymbol$1 = Symbol.for("vercel.ai.schema");
|
|
17425
|
+
function jsonSchema$1(jsonSchema2, {
|
|
17426
17426
|
validate
|
|
17427
17427
|
} = {}) {
|
|
17428
17428
|
return {
|
|
17429
|
-
[schemaSymbol]: true,
|
|
17429
|
+
[schemaSymbol$1]: true,
|
|
17430
17430
|
_type: void 0,
|
|
17431
17431
|
// should never be used directly
|
|
17432
|
-
[validatorSymbol]: true,
|
|
17432
|
+
[validatorSymbol$1]: true,
|
|
17433
17433
|
jsonSchema: jsonSchema2,
|
|
17434
17434
|
validate
|
|
17435
17435
|
};
|
|
17436
17436
|
}
|
|
17437
|
-
function isSchema(value) {
|
|
17438
|
-
return typeof value === "object" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && "jsonSchema" in value && "validate" in value;
|
|
17437
|
+
function isSchema$1(value) {
|
|
17438
|
+
return typeof value === "object" && value !== null && schemaSymbol$1 in value && value[schemaSymbol$1] === true && "jsonSchema" in value && "validate" in value;
|
|
17439
17439
|
}
|
|
17440
|
-
function asSchema(schema) {
|
|
17441
|
-
return schema == null ? jsonSchema({
|
|
17440
|
+
function asSchema$1(schema) {
|
|
17441
|
+
return schema == null ? jsonSchema$1({
|
|
17442
17442
|
properties: {},
|
|
17443
17443
|
additionalProperties: false
|
|
17444
|
-
}) : isSchema(schema) ? schema : zodSchema(schema);
|
|
17444
|
+
}) : isSchema$1(schema) ? schema : zodSchema$1(schema);
|
|
17445
17445
|
}
|
|
17446
17446
|
var { btoa: btoa$1, atob: atob$1 } = globalThis;
|
|
17447
17447
|
function convertBase64ToUint8Array(base64String) {
|
|
@@ -17840,7 +17840,23 @@ var webSearchPreviewArgsSchema = object$2({
|
|
|
17840
17840
|
var webSearchPreview = createProviderDefinedToolFactory({
|
|
17841
17841
|
id: "openai.web_search_preview",
|
|
17842
17842
|
name: "web_search_preview",
|
|
17843
|
-
inputSchema: object$2({
|
|
17843
|
+
inputSchema: object$2({
|
|
17844
|
+
action: discriminatedUnion("type", [
|
|
17845
|
+
object$2({
|
|
17846
|
+
type: literal("search"),
|
|
17847
|
+
query: string$1()
|
|
17848
|
+
}),
|
|
17849
|
+
object$2({
|
|
17850
|
+
type: literal("open_page"),
|
|
17851
|
+
url: string$1()
|
|
17852
|
+
}),
|
|
17853
|
+
object$2({
|
|
17854
|
+
type: literal("find"),
|
|
17855
|
+
url: string$1(),
|
|
17856
|
+
pattern: string$1()
|
|
17857
|
+
})
|
|
17858
|
+
]).nullish()
|
|
17859
|
+
})
|
|
17844
17860
|
});
|
|
17845
17861
|
function prepareChatTools({
|
|
17846
17862
|
tools,
|
|
@@ -18158,7 +18174,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
18158
18174
|
for (const toolCall of (_a10 = choice.message.tool_calls) != null ? _a10 : []) {
|
|
18159
18175
|
content.push({
|
|
18160
18176
|
type: "tool-call",
|
|
18161
|
-
toolCallId: (_b = toolCall.id) != null ? _b : generateId(),
|
|
18177
|
+
toolCallId: (_b = toolCall.id) != null ? _b : generateId$1(),
|
|
18162
18178
|
toolName: toolCall.function.name,
|
|
18163
18179
|
input: toolCall.function.arguments
|
|
18164
18180
|
});
|
|
@@ -18167,7 +18183,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
18167
18183
|
content.push({
|
|
18168
18184
|
type: "source",
|
|
18169
18185
|
sourceType: "url",
|
|
18170
|
-
id: generateId(),
|
|
18186
|
+
id: generateId$1(),
|
|
18171
18187
|
url: annotation.url,
|
|
18172
18188
|
title: annotation.title
|
|
18173
18189
|
});
|
|
@@ -18353,7 +18369,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
18353
18369
|
});
|
|
18354
18370
|
controller.enqueue({
|
|
18355
18371
|
type: "tool-call",
|
|
18356
|
-
toolCallId: (_q = toolCall2.id) != null ? _q : generateId(),
|
|
18372
|
+
toolCallId: (_q = toolCall2.id) != null ? _q : generateId$1(),
|
|
18357
18373
|
toolName: toolCall2.function.name,
|
|
18358
18374
|
input: toolCall2.function.arguments
|
|
18359
18375
|
});
|
|
@@ -18381,7 +18397,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
18381
18397
|
});
|
|
18382
18398
|
controller.enqueue({
|
|
18383
18399
|
type: "tool-call",
|
|
18384
|
-
toolCallId: (_x = toolCall.id) != null ? _x : generateId(),
|
|
18400
|
+
toolCallId: (_x = toolCall.id) != null ? _x : generateId$1(),
|
|
18385
18401
|
toolName: toolCall.function.name,
|
|
18386
18402
|
input: toolCall.function.arguments
|
|
18387
18403
|
});
|
|
@@ -18394,7 +18410,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
18394
18410
|
controller.enqueue({
|
|
18395
18411
|
type: "source",
|
|
18396
18412
|
sourceType: "url",
|
|
18397
|
-
id: generateId(),
|
|
18413
|
+
id: generateId$1(),
|
|
18398
18414
|
url: annotation.url,
|
|
18399
18415
|
title: annotation.title
|
|
18400
18416
|
});
|
|
@@ -19236,9 +19252,10 @@ async function convertToOpenAIResponsesMessages({
|
|
|
19236
19252
|
};
|
|
19237
19253
|
} else if (part.mediaType === "application/pdf") {
|
|
19238
19254
|
if (part.data instanceof URL) {
|
|
19239
|
-
|
|
19240
|
-
|
|
19241
|
-
|
|
19255
|
+
return {
|
|
19256
|
+
type: "input_file",
|
|
19257
|
+
file_url: part.data.toString()
|
|
19258
|
+
};
|
|
19242
19259
|
}
|
|
19243
19260
|
return {
|
|
19244
19261
|
type: "input_file",
|
|
@@ -19469,6 +19486,26 @@ function prepareResponsesTools({
|
|
|
19469
19486
|
}
|
|
19470
19487
|
}
|
|
19471
19488
|
}
|
|
19489
|
+
var webSearchCallItem = object$2({
|
|
19490
|
+
type: literal("web_search_call"),
|
|
19491
|
+
id: string$1(),
|
|
19492
|
+
status: string$1(),
|
|
19493
|
+
action: discriminatedUnion("type", [
|
|
19494
|
+
object$2({
|
|
19495
|
+
type: literal("search"),
|
|
19496
|
+
query: string$1()
|
|
19497
|
+
}),
|
|
19498
|
+
object$2({
|
|
19499
|
+
type: literal("open_page"),
|
|
19500
|
+
url: string$1()
|
|
19501
|
+
}),
|
|
19502
|
+
object$2({
|
|
19503
|
+
type: literal("find"),
|
|
19504
|
+
url: string$1(),
|
|
19505
|
+
pattern: string$1()
|
|
19506
|
+
})
|
|
19507
|
+
]).nullish()
|
|
19508
|
+
});
|
|
19472
19509
|
var TOP_LOGPROBS_MAX = 20;
|
|
19473
19510
|
var LOGPROBS_SCHEMA = array(
|
|
19474
19511
|
object$2({
|
|
@@ -19486,7 +19523,8 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19486
19523
|
constructor(modelId, config2) {
|
|
19487
19524
|
this.specificationVersion = "v2";
|
|
19488
19525
|
this.supportedUrls = {
|
|
19489
|
-
"image/*": [/^https?:\/\/.*$/]
|
|
19526
|
+
"image/*": [/^https?:\/\/.*$/],
|
|
19527
|
+
"application/pdf": [/^https?:\/\/.*$/]
|
|
19490
19528
|
};
|
|
19491
19529
|
this.modelId = modelId;
|
|
19492
19530
|
this.config = config2;
|
|
@@ -19664,7 +19702,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19664
19702
|
};
|
|
19665
19703
|
}
|
|
19666
19704
|
async doGenerate(options) {
|
|
19667
|
-
var _a10, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n
|
|
19705
|
+
var _a10, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
19668
19706
|
const { args: body, warnings } = await this.getArgs(options);
|
|
19669
19707
|
const url2 = this.config.url({
|
|
19670
19708
|
path: "/responses",
|
|
@@ -19727,15 +19765,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19727
19765
|
arguments: string$1(),
|
|
19728
19766
|
id: string$1()
|
|
19729
19767
|
}),
|
|
19730
|
-
|
|
19731
|
-
type: literal("web_search_call"),
|
|
19732
|
-
id: string$1(),
|
|
19733
|
-
status: string$1().optional(),
|
|
19734
|
-
action: object$2({
|
|
19735
|
-
type: literal("search"),
|
|
19736
|
-
query: string$1().optional()
|
|
19737
|
-
}).nullish()
|
|
19738
|
-
}),
|
|
19768
|
+
webSearchCallItem,
|
|
19739
19769
|
object$2({
|
|
19740
19770
|
type: literal("computer_call"),
|
|
19741
19771
|
id: string$1(),
|
|
@@ -19829,7 +19859,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19829
19859
|
content.push({
|
|
19830
19860
|
type: "source",
|
|
19831
19861
|
sourceType: "url",
|
|
19832
|
-
id: (_f = (_e = (_d = this.config).generateId) == null ? void 0 : _e.call(_d)) != null ? _f : generateId(),
|
|
19862
|
+
id: (_f = (_e = (_d = this.config).generateId) == null ? void 0 : _e.call(_d)) != null ? _f : generateId$1(),
|
|
19833
19863
|
url: annotation.url,
|
|
19834
19864
|
title: annotation.title
|
|
19835
19865
|
});
|
|
@@ -19837,7 +19867,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19837
19867
|
content.push({
|
|
19838
19868
|
type: "source",
|
|
19839
19869
|
sourceType: "document",
|
|
19840
|
-
id: (_i = (_h = (_g = this.config).generateId) == null ? void 0 : _h.call(_g)) != null ? _i : generateId(),
|
|
19870
|
+
id: (_i = (_h = (_g = this.config).generateId) == null ? void 0 : _h.call(_g)) != null ? _i : generateId$1(),
|
|
19841
19871
|
mediaType: "text/plain",
|
|
19842
19872
|
title: annotation.quote,
|
|
19843
19873
|
filename: annotation.file_id
|
|
@@ -19866,17 +19896,14 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19866
19896
|
type: "tool-call",
|
|
19867
19897
|
toolCallId: part.id,
|
|
19868
19898
|
toolName: "web_search_preview",
|
|
19869
|
-
input: (
|
|
19899
|
+
input: JSON.stringify({ action: part.action }),
|
|
19870
19900
|
providerExecuted: true
|
|
19871
19901
|
});
|
|
19872
19902
|
content.push({
|
|
19873
19903
|
type: "tool-result",
|
|
19874
19904
|
toolCallId: part.id,
|
|
19875
19905
|
toolName: "web_search_preview",
|
|
19876
|
-
result: {
|
|
19877
|
-
status: part.status || "completed",
|
|
19878
|
-
...((_l = part.action) == null ? void 0 : _l.query) && { query: part.action.query }
|
|
19879
|
-
},
|
|
19906
|
+
result: { status: part.status },
|
|
19880
19907
|
providerExecuted: true
|
|
19881
19908
|
});
|
|
19882
19909
|
break;
|
|
@@ -19934,15 +19961,15 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19934
19961
|
return {
|
|
19935
19962
|
content,
|
|
19936
19963
|
finishReason: mapOpenAIResponseFinishReason({
|
|
19937
|
-
finishReason: (
|
|
19964
|
+
finishReason: (_j = response.incomplete_details) == null ? void 0 : _j.reason,
|
|
19938
19965
|
hasToolCalls: content.some((part) => part.type === "tool-call")
|
|
19939
19966
|
}),
|
|
19940
19967
|
usage: {
|
|
19941
19968
|
inputTokens: response.usage.input_tokens,
|
|
19942
19969
|
outputTokens: response.usage.output_tokens,
|
|
19943
19970
|
totalTokens: response.usage.input_tokens + response.usage.output_tokens,
|
|
19944
|
-
reasoningTokens: (
|
|
19945
|
-
cachedInputTokens: (
|
|
19971
|
+
reasoningTokens: (_l = (_k = response.usage.output_tokens_details) == null ? void 0 : _k.reasoning_tokens) != null ? _l : void 0,
|
|
19972
|
+
cachedInputTokens: (_n = (_m = response.usage.input_tokens_details) == null ? void 0 : _m.cached_tokens) != null ? _n : void 0
|
|
19946
19973
|
},
|
|
19947
19974
|
request: { body },
|
|
19948
19975
|
response: {
|
|
@@ -19994,7 +20021,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
19994
20021
|
controller.enqueue({ type: "stream-start", warnings });
|
|
19995
20022
|
},
|
|
19996
20023
|
transform(chunk, controller) {
|
|
19997
|
-
var _a10, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p
|
|
20024
|
+
var _a10, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
19998
20025
|
if (options.includeRawChunks) {
|
|
19999
20026
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
20000
20027
|
}
|
|
@@ -20101,20 +20128,14 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20101
20128
|
type: "tool-call",
|
|
20102
20129
|
toolCallId: value.item.id,
|
|
20103
20130
|
toolName: "web_search_preview",
|
|
20104
|
-
input: (
|
|
20131
|
+
input: JSON.stringify({ action: value.item.action }),
|
|
20105
20132
|
providerExecuted: true
|
|
20106
20133
|
});
|
|
20107
20134
|
controller.enqueue({
|
|
20108
20135
|
type: "tool-result",
|
|
20109
20136
|
toolCallId: value.item.id,
|
|
20110
20137
|
toolName: "web_search_preview",
|
|
20111
|
-
result: {
|
|
20112
|
-
type: "web_search_tool_result",
|
|
20113
|
-
status: value.item.status || "completed",
|
|
20114
|
-
...((_d = value.item.action) == null ? void 0 : _d.query) && {
|
|
20115
|
-
query: value.item.action.query
|
|
20116
|
-
}
|
|
20117
|
-
},
|
|
20138
|
+
result: { status: value.item.status },
|
|
20118
20139
|
providerExecuted: true
|
|
20119
20140
|
});
|
|
20120
20141
|
} else if (value.item.type === "computer_call") {
|
|
@@ -20181,7 +20202,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20181
20202
|
providerMetadata: {
|
|
20182
20203
|
openai: {
|
|
20183
20204
|
itemId: value.item.id,
|
|
20184
|
-
reasoningEncryptedContent: (
|
|
20205
|
+
reasoningEncryptedContent: (_b = value.item.encrypted_content) != null ? _b : null
|
|
20185
20206
|
}
|
|
20186
20207
|
}
|
|
20187
20208
|
});
|
|
@@ -20216,7 +20237,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20216
20237
|
}
|
|
20217
20238
|
} else if (isResponseReasoningSummaryPartAddedChunk(value)) {
|
|
20218
20239
|
if (value.summary_index > 0) {
|
|
20219
|
-
(
|
|
20240
|
+
(_c = activeReasoning[value.item_id]) == null ? void 0 : _c.summaryParts.push(
|
|
20220
20241
|
value.summary_index
|
|
20221
20242
|
);
|
|
20222
20243
|
controller.enqueue({
|
|
@@ -20225,7 +20246,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20225
20246
|
providerMetadata: {
|
|
20226
20247
|
openai: {
|
|
20227
20248
|
itemId: value.item_id,
|
|
20228
|
-
reasoningEncryptedContent: (
|
|
20249
|
+
reasoningEncryptedContent: (_e = (_d = activeReasoning[value.item_id]) == null ? void 0 : _d.encryptedContent) != null ? _e : null
|
|
20229
20250
|
}
|
|
20230
20251
|
}
|
|
20231
20252
|
});
|
|
@@ -20243,20 +20264,20 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20243
20264
|
});
|
|
20244
20265
|
} else if (isResponseFinishedChunk(value)) {
|
|
20245
20266
|
finishReason = mapOpenAIResponseFinishReason({
|
|
20246
|
-
finishReason: (
|
|
20267
|
+
finishReason: (_f = value.response.incomplete_details) == null ? void 0 : _f.reason,
|
|
20247
20268
|
hasToolCalls
|
|
20248
20269
|
});
|
|
20249
20270
|
usage.inputTokens = value.response.usage.input_tokens;
|
|
20250
20271
|
usage.outputTokens = value.response.usage.output_tokens;
|
|
20251
20272
|
usage.totalTokens = value.response.usage.input_tokens + value.response.usage.output_tokens;
|
|
20252
|
-
usage.reasoningTokens = (
|
|
20253
|
-
usage.cachedInputTokens = (
|
|
20273
|
+
usage.reasoningTokens = (_h = (_g = value.response.usage.output_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : void 0;
|
|
20274
|
+
usage.cachedInputTokens = (_j = (_i = value.response.usage.input_tokens_details) == null ? void 0 : _i.cached_tokens) != null ? _j : void 0;
|
|
20254
20275
|
} else if (isResponseAnnotationAddedChunk(value)) {
|
|
20255
20276
|
if (value.annotation.type === "url_citation") {
|
|
20256
20277
|
controller.enqueue({
|
|
20257
20278
|
type: "source",
|
|
20258
20279
|
sourceType: "url",
|
|
20259
|
-
id: (
|
|
20280
|
+
id: (_m = (_l = (_k = self.config).generateId) == null ? void 0 : _l.call(_k)) != null ? _m : generateId$1(),
|
|
20260
20281
|
url: value.annotation.url,
|
|
20261
20282
|
title: value.annotation.title
|
|
20262
20283
|
});
|
|
@@ -20264,7 +20285,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
20264
20285
|
controller.enqueue({
|
|
20265
20286
|
type: "source",
|
|
20266
20287
|
sourceType: "document",
|
|
20267
|
-
id: (
|
|
20288
|
+
id: (_p = (_o = (_n = self.config).generateId) == null ? void 0 : _o.call(_n)) != null ? _p : generateId$1(),
|
|
20268
20289
|
mediaType: "text/plain",
|
|
20269
20290
|
title: value.annotation.quote,
|
|
20270
20291
|
filename: value.annotation.file_id
|
|
@@ -20404,15 +20425,7 @@ var responseOutputItemDoneSchema = object$2({
|
|
|
20404
20425
|
arguments: string$1(),
|
|
20405
20426
|
status: literal("completed")
|
|
20406
20427
|
}),
|
|
20407
|
-
|
|
20408
|
-
type: literal("web_search_call"),
|
|
20409
|
-
id: string$1(),
|
|
20410
|
-
status: literal("completed"),
|
|
20411
|
-
action: object$2({
|
|
20412
|
-
type: literal("search"),
|
|
20413
|
-
query: string$1().optional()
|
|
20414
|
-
}).nullish()
|
|
20415
|
-
}),
|
|
20428
|
+
webSearchCallItem,
|
|
20416
20429
|
object$2({
|
|
20417
20430
|
type: literal("computer_call"),
|
|
20418
20431
|
id: string$1(),
|
|
@@ -21796,7 +21809,7 @@ var AnthropicMessagesLanguageModel = class {
|
|
|
21796
21809
|
var _a10;
|
|
21797
21810
|
this.modelId = modelId;
|
|
21798
21811
|
this.config = config2;
|
|
21799
|
-
this.generateId = (_a10 = config2.generateId) != null ? _a10 : generateId;
|
|
21812
|
+
this.generateId = (_a10 = config2.generateId) != null ? _a10 : generateId$1;
|
|
21800
21813
|
}
|
|
21801
21814
|
supportsUrl(url2) {
|
|
21802
21815
|
return url2.protocol === "https:";
|
|
@@ -21958,7 +21971,7 @@ var AnthropicMessagesLanguageModel = class {
|
|
|
21958
21971
|
headers
|
|
21959
21972
|
}) {
|
|
21960
21973
|
return combineHeaders(
|
|
21961
|
-
await resolve(this.config.headers),
|
|
21974
|
+
await resolve$1(this.config.headers),
|
|
21962
21975
|
betas.size > 0 ? { "anthropic-beta": Array.from(betas).join(",") } : {},
|
|
21963
21976
|
headers
|
|
21964
21977
|
);
|
|
@@ -22949,7 +22962,7 @@ function createAnthropic(options = {}) {
|
|
|
22949
22962
|
baseURL,
|
|
22950
22963
|
headers: getHeaders,
|
|
22951
22964
|
fetch: options.fetch,
|
|
22952
|
-
generateId: (_a22 = options.generateId) != null ? _a22 : generateId,
|
|
22965
|
+
generateId: (_a22 = options.generateId) != null ? _a22 : generateId$1,
|
|
22953
22966
|
supportedUrls: () => ({
|
|
22954
22967
|
"image/*": [/^https?:\/\/.*$/]
|
|
22955
22968
|
})
|
|
@@ -23047,7 +23060,7 @@ var GoogleGenerativeAIEmbeddingModel = class {
|
|
|
23047
23060
|
});
|
|
23048
23061
|
}
|
|
23049
23062
|
const mergedHeaders = combineHeaders(
|
|
23050
|
-
await resolve(this.config.headers),
|
|
23063
|
+
await resolve$1(this.config.headers),
|
|
23051
23064
|
headers
|
|
23052
23065
|
);
|
|
23053
23066
|
if (values.length === 1) {
|
|
@@ -23624,7 +23637,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
23624
23637
|
var _a10;
|
|
23625
23638
|
this.modelId = modelId;
|
|
23626
23639
|
this.config = config2;
|
|
23627
|
-
this.generateId = (_a10 = config2.generateId) != null ? _a10 : generateId;
|
|
23640
|
+
this.generateId = (_a10 = config2.generateId) != null ? _a10 : generateId$1;
|
|
23628
23641
|
}
|
|
23629
23642
|
get provider() {
|
|
23630
23643
|
return this.config.provider;
|
|
@@ -23716,7 +23729,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
23716
23729
|
const { args, warnings } = await this.getArgs(options);
|
|
23717
23730
|
const body = JSON.stringify(args);
|
|
23718
23731
|
const mergedHeaders = combineHeaders(
|
|
23719
|
-
await resolve(this.config.headers),
|
|
23732
|
+
await resolve$1(this.config.headers),
|
|
23720
23733
|
options.headers
|
|
23721
23734
|
);
|
|
23722
23735
|
const {
|
|
@@ -23826,7 +23839,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
|
23826
23839
|
const { args, warnings } = await this.getArgs(options);
|
|
23827
23840
|
const body = JSON.stringify(args);
|
|
23828
23841
|
const headers = combineHeaders(
|
|
23829
|
-
await resolve(this.config.headers),
|
|
23842
|
+
await resolve$1(this.config.headers),
|
|
23830
23843
|
options.headers
|
|
23831
23844
|
);
|
|
23832
23845
|
const { responseHeaders, value: response } = await postJsonToApi({
|
|
@@ -24276,7 +24289,7 @@ var GoogleGenerativeAIImageModel = class {
|
|
|
24276
24289
|
};
|
|
24277
24290
|
const { responseHeaders, value: response } = await postJsonToApi({
|
|
24278
24291
|
url: `${this.config.baseURL}/models/${this.modelId}:predict`,
|
|
24279
|
-
headers: combineHeaders(await resolve(this.config.headers), headers),
|
|
24292
|
+
headers: combineHeaders(await resolve$1(this.config.headers), headers),
|
|
24280
24293
|
body,
|
|
24281
24294
|
failedResponseHandler: googleFailedResponseHandler,
|
|
24282
24295
|
successfulResponseHandler: createJsonResponseHandler(
|
|
@@ -24329,7 +24342,7 @@ function createGoogleGenerativeAI(options = {}) {
|
|
|
24329
24342
|
provider: "google.generative-ai",
|
|
24330
24343
|
baseURL,
|
|
24331
24344
|
headers: getHeaders,
|
|
24332
|
-
generateId: (_a22 = options.generateId) != null ? _a22 : generateId,
|
|
24345
|
+
generateId: (_a22 = options.generateId) != null ? _a22 : generateId$1,
|
|
24333
24346
|
supportedUrls: () => ({
|
|
24334
24347
|
"*": [
|
|
24335
24348
|
// Google Generative Language "files" endpoint
|
|
@@ -24634,41 +24647,2393 @@ var BalanceResource = class extends BaseResource {
|
|
|
24634
24647
|
);
|
|
24635
24648
|
}
|
|
24636
24649
|
};
|
|
24637
|
-
var
|
|
24638
|
-
|
|
24639
|
-
|
|
24650
|
+
var AnthropicModels = [
|
|
24651
|
+
{
|
|
24652
|
+
model_id: "claude-3-5-haiku-20241022",
|
|
24653
|
+
input_cost_per_token: 8e-7,
|
|
24654
|
+
output_cost_per_token: 4e-6,
|
|
24655
|
+
provider: "Anthropic"
|
|
24656
|
+
},
|
|
24657
|
+
{
|
|
24658
|
+
model_id: "claude-3-5-sonnet-20240620",
|
|
24659
|
+
input_cost_per_token: 3e-6,
|
|
24660
|
+
output_cost_per_token: 15e-6,
|
|
24661
|
+
provider: "Anthropic"
|
|
24662
|
+
},
|
|
24663
|
+
{
|
|
24664
|
+
model_id: "claude-3-5-sonnet-20241022",
|
|
24665
|
+
input_cost_per_token: 3e-6,
|
|
24666
|
+
output_cost_per_token: 15e-6,
|
|
24667
|
+
provider: "Anthropic"
|
|
24668
|
+
},
|
|
24669
|
+
{
|
|
24670
|
+
model_id: "claude-3-7-sonnet-20250219",
|
|
24671
|
+
input_cost_per_token: 3e-6,
|
|
24672
|
+
output_cost_per_token: 15e-6,
|
|
24673
|
+
provider: "Anthropic"
|
|
24674
|
+
},
|
|
24675
|
+
{
|
|
24676
|
+
model_id: "claude-3-haiku-20240307",
|
|
24677
|
+
input_cost_per_token: 25e-8,
|
|
24678
|
+
output_cost_per_token: 125e-8,
|
|
24679
|
+
provider: "Anthropic"
|
|
24680
|
+
},
|
|
24681
|
+
{
|
|
24682
|
+
model_id: "claude-3-opus-20240229",
|
|
24683
|
+
input_cost_per_token: 15e-6,
|
|
24684
|
+
output_cost_per_token: 75e-6,
|
|
24685
|
+
provider: "Anthropic"
|
|
24686
|
+
},
|
|
24687
|
+
{
|
|
24688
|
+
model_id: "claude-opus-4-1-20250805",
|
|
24689
|
+
input_cost_per_token: 15e-6,
|
|
24690
|
+
output_cost_per_token: 75e-6,
|
|
24691
|
+
provider: "Anthropic"
|
|
24692
|
+
},
|
|
24693
|
+
{
|
|
24694
|
+
model_id: "claude-opus-4-20250514",
|
|
24695
|
+
input_cost_per_token: 15e-6,
|
|
24696
|
+
output_cost_per_token: 75e-6,
|
|
24697
|
+
provider: "Anthropic"
|
|
24698
|
+
},
|
|
24699
|
+
{
|
|
24700
|
+
model_id: "claude-sonnet-4-20250514",
|
|
24701
|
+
input_cost_per_token: 3e-6,
|
|
24702
|
+
output_cost_per_token: 15e-6,
|
|
24703
|
+
provider: "Anthropic"
|
|
24640
24704
|
}
|
|
24641
|
-
|
|
24642
|
-
|
|
24643
|
-
|
|
24644
|
-
|
|
24645
|
-
|
|
24646
|
-
|
|
24647
|
-
|
|
24648
|
-
|
|
24649
|
-
|
|
24705
|
+
];
|
|
24706
|
+
var GeminiModels = [
|
|
24707
|
+
{
|
|
24708
|
+
model_id: "gemini-2.0-flash",
|
|
24709
|
+
input_cost_per_token: 15e-8,
|
|
24710
|
+
output_cost_per_token: 6e-7,
|
|
24711
|
+
provider: "Gemini"
|
|
24712
|
+
},
|
|
24713
|
+
{
|
|
24714
|
+
model_id: "gemini-2.0-flash-001",
|
|
24715
|
+
input_cost_per_token: 15e-8,
|
|
24716
|
+
output_cost_per_token: 6e-7,
|
|
24717
|
+
provider: "Gemini"
|
|
24718
|
+
},
|
|
24719
|
+
{
|
|
24720
|
+
model_id: "gemini-2.0-flash-exp",
|
|
24721
|
+
input_cost_per_token: 15e-8,
|
|
24722
|
+
output_cost_per_token: 6e-7,
|
|
24723
|
+
provider: "Gemini"
|
|
24724
|
+
},
|
|
24725
|
+
{
|
|
24726
|
+
model_id: "gemini-2.0-flash-exp-image-generation",
|
|
24727
|
+
input_cost_per_token: 15e-8,
|
|
24728
|
+
output_cost_per_token: 6e-7,
|
|
24729
|
+
provider: "Gemini"
|
|
24730
|
+
},
|
|
24731
|
+
{
|
|
24732
|
+
model_id: "gemini-2.0-flash-lite",
|
|
24733
|
+
input_cost_per_token: 75e-9,
|
|
24734
|
+
output_cost_per_token: 3e-7,
|
|
24735
|
+
provider: "Gemini"
|
|
24736
|
+
},
|
|
24737
|
+
{
|
|
24738
|
+
model_id: "gemini-2.0-flash-lite-001",
|
|
24739
|
+
input_cost_per_token: 75e-9,
|
|
24740
|
+
output_cost_per_token: 3e-7,
|
|
24741
|
+
provider: "Gemini"
|
|
24742
|
+
},
|
|
24743
|
+
{
|
|
24744
|
+
model_id: "gemini-2.0-flash-lite-preview",
|
|
24745
|
+
input_cost_per_token: 75e-9,
|
|
24746
|
+
output_cost_per_token: 3e-7,
|
|
24747
|
+
provider: "Gemini"
|
|
24748
|
+
},
|
|
24749
|
+
{
|
|
24750
|
+
model_id: "gemini-2.0-flash-lite-preview-02-05",
|
|
24751
|
+
input_cost_per_token: 75e-9,
|
|
24752
|
+
output_cost_per_token: 3e-7,
|
|
24753
|
+
provider: "Gemini"
|
|
24754
|
+
},
|
|
24755
|
+
{
|
|
24756
|
+
model_id: "gemini-2.0-flash-preview-image-generation",
|
|
24757
|
+
input_cost_per_token: 15e-8,
|
|
24758
|
+
output_cost_per_token: 6e-7,
|
|
24759
|
+
provider: "Gemini"
|
|
24760
|
+
},
|
|
24761
|
+
{
|
|
24762
|
+
model_id: "gemini-2.0-flash-thinking-exp",
|
|
24763
|
+
input_cost_per_token: 15e-8,
|
|
24764
|
+
output_cost_per_token: 6e-7,
|
|
24765
|
+
provider: "Gemini"
|
|
24766
|
+
},
|
|
24767
|
+
{
|
|
24768
|
+
model_id: "gemini-2.0-flash-thinking-exp-01-21",
|
|
24769
|
+
input_cost_per_token: 15e-8,
|
|
24770
|
+
output_cost_per_token: 6e-7,
|
|
24771
|
+
provider: "Gemini"
|
|
24772
|
+
},
|
|
24773
|
+
{
|
|
24774
|
+
model_id: "gemini-2.0-flash-thinking-exp-1219",
|
|
24775
|
+
input_cost_per_token: 15e-8,
|
|
24776
|
+
output_cost_per_token: 6e-7,
|
|
24777
|
+
provider: "Gemini"
|
|
24778
|
+
},
|
|
24779
|
+
{
|
|
24780
|
+
model_id: "gemini-2.5-flash",
|
|
24781
|
+
input_cost_per_token: 3e-7,
|
|
24782
|
+
output_cost_per_token: 25e-7,
|
|
24783
|
+
provider: "Gemini"
|
|
24784
|
+
},
|
|
24785
|
+
{
|
|
24786
|
+
model_id: "gemini-2.5-flash-image-preview",
|
|
24787
|
+
input_cost_per_token: 3e-7,
|
|
24788
|
+
output_cost_per_token: 25e-7,
|
|
24789
|
+
provider: "Gemini"
|
|
24790
|
+
},
|
|
24791
|
+
{
|
|
24792
|
+
model_id: "gemini-2.5-flash-lite",
|
|
24793
|
+
input_cost_per_token: 1e-7,
|
|
24794
|
+
output_cost_per_token: 4e-7,
|
|
24795
|
+
provider: "Gemini"
|
|
24796
|
+
},
|
|
24797
|
+
{
|
|
24798
|
+
model_id: "gemini-2.5-flash-lite-preview-06-17",
|
|
24799
|
+
input_cost_per_token: 1e-7,
|
|
24800
|
+
output_cost_per_token: 4e-7,
|
|
24801
|
+
provider: "Gemini"
|
|
24802
|
+
},
|
|
24803
|
+
{
|
|
24804
|
+
model_id: "gemini-2.5-flash-preview-05-20",
|
|
24805
|
+
input_cost_per_token: 3e-7,
|
|
24806
|
+
output_cost_per_token: 25e-7,
|
|
24807
|
+
provider: "Gemini"
|
|
24808
|
+
},
|
|
24809
|
+
{
|
|
24810
|
+
model_id: "gemini-2.5-flash-preview-tts",
|
|
24811
|
+
input_cost_per_token: 3e-7,
|
|
24812
|
+
output_cost_per_token: 25e-7,
|
|
24813
|
+
provider: "Gemini"
|
|
24814
|
+
},
|
|
24815
|
+
{
|
|
24816
|
+
model_id: "gemini-2.5-pro",
|
|
24817
|
+
input_cost_per_token: 25e-7,
|
|
24818
|
+
output_cost_per_token: 1e-5,
|
|
24819
|
+
provider: "Gemini"
|
|
24820
|
+
},
|
|
24821
|
+
{
|
|
24822
|
+
model_id: "gemini-2.5-pro-preview-03-25",
|
|
24823
|
+
input_cost_per_token: 25e-7,
|
|
24824
|
+
output_cost_per_token: 1e-5,
|
|
24825
|
+
provider: "Gemini"
|
|
24826
|
+
},
|
|
24827
|
+
{
|
|
24828
|
+
model_id: "gemini-2.5-pro-preview-05-06",
|
|
24829
|
+
input_cost_per_token: 25e-7,
|
|
24830
|
+
output_cost_per_token: 1e-5,
|
|
24831
|
+
provider: "Gemini"
|
|
24832
|
+
},
|
|
24833
|
+
{
|
|
24834
|
+
model_id: "gemini-2.5-pro-preview-06-05",
|
|
24835
|
+
input_cost_per_token: 25e-7,
|
|
24836
|
+
output_cost_per_token: 1e-5,
|
|
24837
|
+
provider: "Gemini"
|
|
24838
|
+
},
|
|
24839
|
+
{
|
|
24840
|
+
model_id: "gemini-2.5-pro-preview-tts",
|
|
24841
|
+
input_cost_per_token: 25e-7,
|
|
24842
|
+
output_cost_per_token: 1e-5,
|
|
24843
|
+
provider: "Gemini"
|
|
24650
24844
|
}
|
|
24651
|
-
|
|
24652
|
-
|
|
24653
|
-
|
|
24654
|
-
|
|
24655
|
-
|
|
24656
|
-
|
|
24657
|
-
|
|
24658
|
-
|
|
24659
|
-
|
|
24660
|
-
|
|
24845
|
+
];
|
|
24846
|
+
var OpenAIModels = [
|
|
24847
|
+
{
|
|
24848
|
+
model_id: "gpt-3.5-turbo",
|
|
24849
|
+
input_cost_per_token: 5e-7,
|
|
24850
|
+
output_cost_per_token: 15e-7,
|
|
24851
|
+
provider: "OpenAI"
|
|
24852
|
+
},
|
|
24853
|
+
{
|
|
24854
|
+
model_id: "gpt-3.5-turbo-0125",
|
|
24855
|
+
input_cost_per_token: 5e-7,
|
|
24856
|
+
output_cost_per_token: 15e-7,
|
|
24857
|
+
provider: "OpenAI"
|
|
24858
|
+
},
|
|
24859
|
+
{
|
|
24860
|
+
model_id: "gpt-3.5-turbo-1106",
|
|
24861
|
+
input_cost_per_token: 5e-7,
|
|
24862
|
+
output_cost_per_token: 15e-7,
|
|
24863
|
+
provider: "OpenAI"
|
|
24864
|
+
},
|
|
24865
|
+
{
|
|
24866
|
+
model_id: "gpt-4",
|
|
24867
|
+
input_cost_per_token: 4e-7,
|
|
24868
|
+
output_cost_per_token: 16e-7,
|
|
24869
|
+
provider: "OpenAI"
|
|
24870
|
+
},
|
|
24871
|
+
{
|
|
24872
|
+
model_id: "gpt-4-0125-preview",
|
|
24873
|
+
input_cost_per_token: 4e-7,
|
|
24874
|
+
output_cost_per_token: 16e-7,
|
|
24875
|
+
provider: "OpenAI"
|
|
24876
|
+
},
|
|
24877
|
+
{
|
|
24878
|
+
model_id: "gpt-4-0613",
|
|
24879
|
+
input_cost_per_token: 4e-7,
|
|
24880
|
+
output_cost_per_token: 16e-7,
|
|
24881
|
+
provider: "OpenAI"
|
|
24882
|
+
},
|
|
24883
|
+
{
|
|
24884
|
+
model_id: "gpt-4-1106-preview",
|
|
24885
|
+
input_cost_per_token: 4e-7,
|
|
24886
|
+
output_cost_per_token: 16e-7,
|
|
24887
|
+
provider: "OpenAI"
|
|
24888
|
+
},
|
|
24889
|
+
{
|
|
24890
|
+
model_id: "gpt-4-turbo",
|
|
24891
|
+
input_cost_per_token: 1e-5,
|
|
24892
|
+
output_cost_per_token: 3e-5,
|
|
24893
|
+
provider: "OpenAI"
|
|
24894
|
+
},
|
|
24895
|
+
{
|
|
24896
|
+
model_id: "gpt-4-turbo-2024-04-09",
|
|
24897
|
+
input_cost_per_token: 1e-5,
|
|
24898
|
+
output_cost_per_token: 3e-5,
|
|
24899
|
+
provider: "OpenAI"
|
|
24900
|
+
},
|
|
24901
|
+
{
|
|
24902
|
+
model_id: "gpt-4-turbo-preview",
|
|
24903
|
+
input_cost_per_token: 1e-5,
|
|
24904
|
+
output_cost_per_token: 3e-5,
|
|
24905
|
+
provider: "OpenAI"
|
|
24906
|
+
},
|
|
24907
|
+
{
|
|
24908
|
+
model_id: "gpt-4.1",
|
|
24909
|
+
input_cost_per_token: 2e-6,
|
|
24910
|
+
output_cost_per_token: 8e-6,
|
|
24911
|
+
provider: "OpenAI"
|
|
24912
|
+
},
|
|
24913
|
+
{
|
|
24914
|
+
model_id: "gpt-4.1-2025-04-14",
|
|
24915
|
+
input_cost_per_token: 2e-6,
|
|
24916
|
+
output_cost_per_token: 8e-6,
|
|
24917
|
+
provider: "OpenAI"
|
|
24918
|
+
},
|
|
24919
|
+
{
|
|
24920
|
+
model_id: "gpt-4.1-mini",
|
|
24921
|
+
input_cost_per_token: 4e-7,
|
|
24922
|
+
output_cost_per_token: 16e-7,
|
|
24923
|
+
provider: "OpenAI"
|
|
24924
|
+
},
|
|
24925
|
+
{
|
|
24926
|
+
model_id: "gpt-4.1-mini-2025-04-14",
|
|
24927
|
+
input_cost_per_token: 4e-7,
|
|
24928
|
+
output_cost_per_token: 16e-7,
|
|
24929
|
+
provider: "OpenAI"
|
|
24930
|
+
},
|
|
24931
|
+
{
|
|
24932
|
+
model_id: "gpt-4.1-nano",
|
|
24933
|
+
input_cost_per_token: 1e-7,
|
|
24934
|
+
output_cost_per_token: 4e-7,
|
|
24935
|
+
provider: "OpenAI"
|
|
24936
|
+
},
|
|
24937
|
+
{
|
|
24938
|
+
model_id: "gpt-4.1-nano-2025-04-14",
|
|
24939
|
+
input_cost_per_token: 1e-7,
|
|
24940
|
+
output_cost_per_token: 4e-7,
|
|
24941
|
+
provider: "OpenAI"
|
|
24942
|
+
},
|
|
24943
|
+
{
|
|
24944
|
+
model_id: "gpt-4o",
|
|
24945
|
+
input_cost_per_token: 25e-7,
|
|
24946
|
+
output_cost_per_token: 1e-5,
|
|
24947
|
+
provider: "OpenAI"
|
|
24948
|
+
},
|
|
24949
|
+
{
|
|
24950
|
+
model_id: "gpt-4o-2024-05-13",
|
|
24951
|
+
input_cost_per_token: 25e-7,
|
|
24952
|
+
output_cost_per_token: 1e-5,
|
|
24953
|
+
provider: "OpenAI"
|
|
24954
|
+
},
|
|
24955
|
+
{
|
|
24956
|
+
model_id: "gpt-4o-2024-08-06",
|
|
24957
|
+
input_cost_per_token: 25e-7,
|
|
24958
|
+
output_cost_per_token: 1e-5,
|
|
24959
|
+
provider: "OpenAI"
|
|
24960
|
+
},
|
|
24961
|
+
{
|
|
24962
|
+
model_id: "gpt-4o-2024-11-20",
|
|
24963
|
+
input_cost_per_token: 25e-7,
|
|
24964
|
+
output_cost_per_token: 1e-5,
|
|
24965
|
+
provider: "OpenAI"
|
|
24966
|
+
},
|
|
24967
|
+
{
|
|
24968
|
+
model_id: "gpt-4o-mini",
|
|
24969
|
+
input_cost_per_token: 15e-8,
|
|
24970
|
+
output_cost_per_token: 6e-7,
|
|
24971
|
+
provider: "OpenAI"
|
|
24972
|
+
},
|
|
24973
|
+
{
|
|
24974
|
+
model_id: "gpt-4o-mini-2024-07-18",
|
|
24975
|
+
input_cost_per_token: 15e-8,
|
|
24976
|
+
output_cost_per_token: 6e-7,
|
|
24977
|
+
provider: "OpenAI"
|
|
24978
|
+
},
|
|
24979
|
+
{
|
|
24980
|
+
model_id: "gpt-5",
|
|
24981
|
+
input_cost_per_token: 125e-8,
|
|
24982
|
+
output_cost_per_token: 1e-5,
|
|
24983
|
+
provider: "OpenAI"
|
|
24984
|
+
},
|
|
24985
|
+
{
|
|
24986
|
+
model_id: "gpt-5-2025-08-07",
|
|
24987
|
+
input_cost_per_token: 125e-8,
|
|
24988
|
+
output_cost_per_token: 1e-5,
|
|
24989
|
+
provider: "OpenAI"
|
|
24990
|
+
},
|
|
24991
|
+
{
|
|
24992
|
+
model_id: "gpt-5-chat-latest",
|
|
24993
|
+
input_cost_per_token: 125e-8,
|
|
24994
|
+
output_cost_per_token: 1e-5,
|
|
24995
|
+
provider: "OpenAI"
|
|
24996
|
+
},
|
|
24997
|
+
{
|
|
24998
|
+
model_id: "gpt-5-mini",
|
|
24999
|
+
input_cost_per_token: 25e-8,
|
|
25000
|
+
output_cost_per_token: 2e-6,
|
|
25001
|
+
provider: "OpenAI"
|
|
25002
|
+
},
|
|
25003
|
+
{
|
|
25004
|
+
model_id: "gpt-5-mini-2025-08-07",
|
|
25005
|
+
input_cost_per_token: 25e-8,
|
|
25006
|
+
output_cost_per_token: 2e-6,
|
|
25007
|
+
provider: "OpenAI"
|
|
25008
|
+
},
|
|
25009
|
+
{
|
|
25010
|
+
model_id: "gpt-5-nano",
|
|
25011
|
+
input_cost_per_token: 5e-8,
|
|
25012
|
+
output_cost_per_token: 4e-7,
|
|
25013
|
+
provider: "OpenAI"
|
|
25014
|
+
},
|
|
25015
|
+
{
|
|
25016
|
+
model_id: "gpt-5-nano-2025-08-07",
|
|
25017
|
+
input_cost_per_token: 5e-8,
|
|
25018
|
+
output_cost_per_token: 4e-7,
|
|
25019
|
+
provider: "OpenAI"
|
|
25020
|
+
},
|
|
25021
|
+
{
|
|
25022
|
+
model_id: "o1",
|
|
25023
|
+
input_cost_per_token: 15e-6,
|
|
25024
|
+
output_cost_per_token: 6e-5,
|
|
25025
|
+
provider: "OpenAI"
|
|
25026
|
+
},
|
|
25027
|
+
{
|
|
25028
|
+
model_id: "o1-2024-12-17",
|
|
25029
|
+
input_cost_per_token: 15e-6,
|
|
25030
|
+
output_cost_per_token: 6e-5,
|
|
25031
|
+
provider: "OpenAI"
|
|
25032
|
+
},
|
|
25033
|
+
{
|
|
25034
|
+
model_id: "o1-pro",
|
|
25035
|
+
input_cost_per_token: 15e-6,
|
|
25036
|
+
output_cost_per_token: 6e-5,
|
|
25037
|
+
provider: "OpenAI"
|
|
25038
|
+
},
|
|
25039
|
+
{
|
|
25040
|
+
model_id: "o1-pro-2025-03-19",
|
|
25041
|
+
input_cost_per_token: 15e-6,
|
|
25042
|
+
output_cost_per_token: 6e-5,
|
|
25043
|
+
provider: "OpenAI"
|
|
25044
|
+
},
|
|
25045
|
+
{
|
|
25046
|
+
model_id: "o3",
|
|
25047
|
+
input_cost_per_token: 2e-6,
|
|
25048
|
+
output_cost_per_token: 8e-6,
|
|
25049
|
+
provider: "OpenAI"
|
|
25050
|
+
},
|
|
25051
|
+
{
|
|
25052
|
+
model_id: "o3-2025-04-16",
|
|
25053
|
+
input_cost_per_token: 2e-6,
|
|
25054
|
+
output_cost_per_token: 8e-6,
|
|
25055
|
+
provider: "OpenAI"
|
|
25056
|
+
},
|
|
25057
|
+
{
|
|
25058
|
+
model_id: "o3-deep-research",
|
|
25059
|
+
input_cost_per_token: 2e-6,
|
|
25060
|
+
output_cost_per_token: 8e-6,
|
|
25061
|
+
provider: "OpenAI"
|
|
25062
|
+
},
|
|
25063
|
+
{
|
|
25064
|
+
model_id: "o3-deep-research-2025-06-26",
|
|
25065
|
+
input_cost_per_token: 2e-6,
|
|
25066
|
+
output_cost_per_token: 8e-6,
|
|
25067
|
+
provider: "OpenAI"
|
|
25068
|
+
},
|
|
25069
|
+
{
|
|
25070
|
+
model_id: "o3-mini",
|
|
25071
|
+
input_cost_per_token: 11e-7,
|
|
25072
|
+
output_cost_per_token: 44e-7,
|
|
25073
|
+
provider: "OpenAI"
|
|
25074
|
+
},
|
|
25075
|
+
{
|
|
25076
|
+
model_id: "o3-mini-2025-01-31",
|
|
25077
|
+
input_cost_per_token: 11e-7,
|
|
25078
|
+
output_cost_per_token: 44e-7,
|
|
25079
|
+
provider: "OpenAI"
|
|
25080
|
+
},
|
|
25081
|
+
{
|
|
25082
|
+
model_id: "o3-pro",
|
|
25083
|
+
input_cost_per_token: 2e-6,
|
|
25084
|
+
output_cost_per_token: 8e-6,
|
|
25085
|
+
provider: "OpenAI"
|
|
25086
|
+
},
|
|
25087
|
+
{
|
|
25088
|
+
model_id: "o3-pro-2025-06-10",
|
|
25089
|
+
input_cost_per_token: 2e-6,
|
|
25090
|
+
output_cost_per_token: 8e-6,
|
|
25091
|
+
provider: "OpenAI"
|
|
24661
25092
|
}
|
|
24662
|
-
|
|
24663
|
-
|
|
24664
|
-
|
|
24665
|
-
|
|
24666
|
-
|
|
24667
|
-
|
|
24668
|
-
|
|
24669
|
-
|
|
24670
|
-
|
|
24671
|
-
|
|
25093
|
+
];
|
|
25094
|
+
var OpenRouterModels = [
|
|
25095
|
+
{
|
|
25096
|
+
model_id: "agentica-org/deepcoder-14b-preview",
|
|
25097
|
+
input_cost_per_token: 15e-9,
|
|
25098
|
+
output_cost_per_token: 15e-9,
|
|
25099
|
+
provider: "OpenRouter"
|
|
25100
|
+
},
|
|
25101
|
+
{
|
|
25102
|
+
model_id: "agentica-org/deepcoder-14b-preview:free",
|
|
25103
|
+
input_cost_per_token: 0,
|
|
25104
|
+
output_cost_per_token: 0,
|
|
25105
|
+
provider: "OpenRouter"
|
|
25106
|
+
},
|
|
25107
|
+
{
|
|
25108
|
+
model_id: "ai21/jamba-large-1.7",
|
|
25109
|
+
input_cost_per_token: 2e-6,
|
|
25110
|
+
output_cost_per_token: 8e-6,
|
|
25111
|
+
provider: "OpenRouter"
|
|
25112
|
+
},
|
|
25113
|
+
{
|
|
25114
|
+
model_id: "ai21/jamba-mini-1.7",
|
|
25115
|
+
input_cost_per_token: 2e-7,
|
|
25116
|
+
output_cost_per_token: 4e-7,
|
|
25117
|
+
provider: "OpenRouter"
|
|
25118
|
+
},
|
|
25119
|
+
{
|
|
25120
|
+
model_id: "aion-labs/aion-1.0",
|
|
25121
|
+
input_cost_per_token: 4e-6,
|
|
25122
|
+
output_cost_per_token: 8e-6,
|
|
25123
|
+
provider: "OpenRouter"
|
|
25124
|
+
},
|
|
25125
|
+
{
|
|
25126
|
+
model_id: "aion-labs/aion-1.0-mini",
|
|
25127
|
+
input_cost_per_token: 7e-7,
|
|
25128
|
+
output_cost_per_token: 14e-7,
|
|
25129
|
+
provider: "OpenRouter"
|
|
25130
|
+
},
|
|
25131
|
+
{
|
|
25132
|
+
model_id: "aion-labs/aion-rp-llama-3.1-8b",
|
|
25133
|
+
input_cost_per_token: 2e-7,
|
|
25134
|
+
output_cost_per_token: 2e-7,
|
|
25135
|
+
provider: "OpenRouter"
|
|
25136
|
+
},
|
|
25137
|
+
{
|
|
25138
|
+
model_id: "alfredpros/codellama-7b-instruct-solidity",
|
|
25139
|
+
input_cost_per_token: 7e-7,
|
|
25140
|
+
output_cost_per_token: 11e-7,
|
|
25141
|
+
provider: "OpenRouter"
|
|
25142
|
+
},
|
|
25143
|
+
{
|
|
25144
|
+
model_id: "alpindale/goliath-120b",
|
|
25145
|
+
input_cost_per_token: 4e-6,
|
|
25146
|
+
output_cost_per_token: 55e-7,
|
|
25147
|
+
provider: "OpenRouter"
|
|
25148
|
+
},
|
|
25149
|
+
{
|
|
25150
|
+
model_id: "amazon/nova-lite-v1",
|
|
25151
|
+
input_cost_per_token: 6e-8,
|
|
25152
|
+
output_cost_per_token: 24e-8,
|
|
25153
|
+
provider: "OpenRouter"
|
|
25154
|
+
},
|
|
25155
|
+
{
|
|
25156
|
+
model_id: "amazon/nova-micro-v1",
|
|
25157
|
+
input_cost_per_token: 35e-9,
|
|
25158
|
+
output_cost_per_token: 14e-8,
|
|
25159
|
+
provider: "OpenRouter"
|
|
25160
|
+
},
|
|
25161
|
+
{
|
|
25162
|
+
model_id: "amazon/nova-pro-v1",
|
|
25163
|
+
input_cost_per_token: 8e-7,
|
|
25164
|
+
output_cost_per_token: 32e-7,
|
|
25165
|
+
provider: "OpenRouter"
|
|
25166
|
+
},
|
|
25167
|
+
{
|
|
25168
|
+
model_id: "anthracite-org/magnum-v2-72b",
|
|
25169
|
+
input_cost_per_token: 3e-6,
|
|
25170
|
+
output_cost_per_token: 3e-6,
|
|
25171
|
+
provider: "OpenRouter"
|
|
25172
|
+
},
|
|
25173
|
+
{
|
|
25174
|
+
model_id: "anthracite-org/magnum-v4-72b",
|
|
25175
|
+
input_cost_per_token: 2e-6,
|
|
25176
|
+
output_cost_per_token: 5e-6,
|
|
25177
|
+
provider: "OpenRouter"
|
|
25178
|
+
},
|
|
25179
|
+
{
|
|
25180
|
+
model_id: "anthropic/claude-3-haiku",
|
|
25181
|
+
input_cost_per_token: 25e-8,
|
|
25182
|
+
output_cost_per_token: 125e-8,
|
|
25183
|
+
provider: "OpenRouter"
|
|
25184
|
+
},
|
|
25185
|
+
{
|
|
25186
|
+
model_id: "anthropic/claude-3-opus",
|
|
25187
|
+
input_cost_per_token: 15e-6,
|
|
25188
|
+
output_cost_per_token: 75e-6,
|
|
25189
|
+
provider: "OpenRouter"
|
|
25190
|
+
},
|
|
25191
|
+
{
|
|
25192
|
+
model_id: "anthropic/claude-3.5-haiku",
|
|
25193
|
+
input_cost_per_token: 8e-7,
|
|
25194
|
+
output_cost_per_token: 4e-6,
|
|
25195
|
+
provider: "OpenRouter"
|
|
25196
|
+
},
|
|
25197
|
+
{
|
|
25198
|
+
model_id: "anthropic/claude-3.5-haiku-20241022",
|
|
25199
|
+
input_cost_per_token: 8e-7,
|
|
25200
|
+
output_cost_per_token: 4e-6,
|
|
25201
|
+
provider: "OpenRouter"
|
|
25202
|
+
},
|
|
25203
|
+
{
|
|
25204
|
+
model_id: "anthropic/claude-3.5-sonnet",
|
|
25205
|
+
input_cost_per_token: 3e-6,
|
|
25206
|
+
output_cost_per_token: 15e-6,
|
|
25207
|
+
provider: "OpenRouter"
|
|
25208
|
+
},
|
|
25209
|
+
{
|
|
25210
|
+
model_id: "anthropic/claude-3.5-sonnet-20240620",
|
|
25211
|
+
input_cost_per_token: 3e-6,
|
|
25212
|
+
output_cost_per_token: 15e-6,
|
|
25213
|
+
provider: "OpenRouter"
|
|
25214
|
+
},
|
|
25215
|
+
{
|
|
25216
|
+
model_id: "anthropic/claude-3.7-sonnet",
|
|
25217
|
+
input_cost_per_token: 3e-6,
|
|
25218
|
+
output_cost_per_token: 15e-6,
|
|
25219
|
+
provider: "OpenRouter"
|
|
25220
|
+
},
|
|
25221
|
+
{
|
|
25222
|
+
model_id: "anthropic/claude-3.7-sonnet:thinking",
|
|
25223
|
+
input_cost_per_token: 3e-6,
|
|
25224
|
+
output_cost_per_token: 15e-6,
|
|
25225
|
+
provider: "OpenRouter"
|
|
25226
|
+
},
|
|
25227
|
+
{
|
|
25228
|
+
model_id: "anthropic/claude-opus-4",
|
|
25229
|
+
input_cost_per_token: 15e-6,
|
|
25230
|
+
output_cost_per_token: 75e-6,
|
|
25231
|
+
provider: "OpenRouter"
|
|
25232
|
+
},
|
|
25233
|
+
{
|
|
25234
|
+
model_id: "anthropic/claude-opus-4.1",
|
|
25235
|
+
input_cost_per_token: 15e-6,
|
|
25236
|
+
output_cost_per_token: 75e-6,
|
|
25237
|
+
provider: "OpenRouter"
|
|
25238
|
+
},
|
|
25239
|
+
{
|
|
25240
|
+
model_id: "anthropic/claude-sonnet-4",
|
|
25241
|
+
input_cost_per_token: 3e-6,
|
|
25242
|
+
output_cost_per_token: 15e-6,
|
|
25243
|
+
provider: "OpenRouter"
|
|
25244
|
+
},
|
|
25245
|
+
{
|
|
25246
|
+
model_id: "arcee-ai/coder-large",
|
|
25247
|
+
input_cost_per_token: 5e-7,
|
|
25248
|
+
output_cost_per_token: 8e-7,
|
|
25249
|
+
provider: "OpenRouter"
|
|
25250
|
+
},
|
|
25251
|
+
{
|
|
25252
|
+
model_id: "arcee-ai/maestro-reasoning",
|
|
25253
|
+
input_cost_per_token: 9e-7,
|
|
25254
|
+
output_cost_per_token: 33e-7,
|
|
25255
|
+
provider: "OpenRouter"
|
|
25256
|
+
},
|
|
25257
|
+
{
|
|
25258
|
+
model_id: "arcee-ai/spotlight",
|
|
25259
|
+
input_cost_per_token: 18e-8,
|
|
25260
|
+
output_cost_per_token: 18e-8,
|
|
25261
|
+
provider: "OpenRouter"
|
|
25262
|
+
},
|
|
25263
|
+
{
|
|
25264
|
+
model_id: "arcee-ai/virtuoso-large",
|
|
25265
|
+
input_cost_per_token: 75e-8,
|
|
25266
|
+
output_cost_per_token: 12e-7,
|
|
25267
|
+
provider: "OpenRouter"
|
|
25268
|
+
},
|
|
25269
|
+
{
|
|
25270
|
+
model_id: "arliai/qwq-32b-arliai-rpr-v1",
|
|
25271
|
+
input_cost_per_token: 1e-8,
|
|
25272
|
+
output_cost_per_token: 400032e-13,
|
|
25273
|
+
provider: "OpenRouter"
|
|
25274
|
+
},
|
|
25275
|
+
{
|
|
25276
|
+
model_id: "arliai/qwq-32b-arliai-rpr-v1:free",
|
|
25277
|
+
input_cost_per_token: 0,
|
|
25278
|
+
output_cost_per_token: 0,
|
|
25279
|
+
provider: "OpenRouter"
|
|
25280
|
+
},
|
|
25281
|
+
{
|
|
25282
|
+
model_id: "baidu/ernie-4.5-21b-a3b",
|
|
25283
|
+
input_cost_per_token: 7e-8,
|
|
25284
|
+
output_cost_per_token: 28e-8,
|
|
25285
|
+
provider: "OpenRouter"
|
|
25286
|
+
},
|
|
25287
|
+
{
|
|
25288
|
+
model_id: "baidu/ernie-4.5-300b-a47b",
|
|
25289
|
+
input_cost_per_token: 28e-8,
|
|
25290
|
+
output_cost_per_token: 11e-7,
|
|
25291
|
+
provider: "OpenRouter"
|
|
25292
|
+
},
|
|
25293
|
+
{
|
|
25294
|
+
model_id: "baidu/ernie-4.5-vl-28b-a3b",
|
|
25295
|
+
input_cost_per_token: 14e-8,
|
|
25296
|
+
output_cost_per_token: 56e-8,
|
|
25297
|
+
provider: "OpenRouter"
|
|
25298
|
+
},
|
|
25299
|
+
{
|
|
25300
|
+
model_id: "baidu/ernie-4.5-vl-424b-a47b",
|
|
25301
|
+
input_cost_per_token: 42e-8,
|
|
25302
|
+
output_cost_per_token: 125e-8,
|
|
25303
|
+
provider: "OpenRouter"
|
|
25304
|
+
},
|
|
25305
|
+
{
|
|
25306
|
+
model_id: "bytedance/ui-tars-1.5-7b",
|
|
25307
|
+
input_cost_per_token: 1e-7,
|
|
25308
|
+
output_cost_per_token: 2e-7,
|
|
25309
|
+
provider: "OpenRouter"
|
|
25310
|
+
},
|
|
25311
|
+
{
|
|
25312
|
+
model_id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
|
|
25313
|
+
input_cost_per_token: 0,
|
|
25314
|
+
output_cost_per_token: 0,
|
|
25315
|
+
provider: "OpenRouter"
|
|
25316
|
+
},
|
|
25317
|
+
{
|
|
25318
|
+
model_id: "cognitivecomputations/dolphin-mixtral-8x22b",
|
|
25319
|
+
input_cost_per_token: 9e-7,
|
|
25320
|
+
output_cost_per_token: 9e-7,
|
|
25321
|
+
provider: "OpenRouter"
|
|
25322
|
+
},
|
|
25323
|
+
{
|
|
25324
|
+
model_id: "cognitivecomputations/dolphin3.0-mistral-24b",
|
|
25325
|
+
input_cost_per_token: 37022e-12,
|
|
25326
|
+
output_cost_per_token: 14816e-11,
|
|
25327
|
+
provider: "OpenRouter"
|
|
25328
|
+
},
|
|
25329
|
+
{
|
|
25330
|
+
model_id: "cognitivecomputations/dolphin3.0-mistral-24b:free",
|
|
25331
|
+
input_cost_per_token: 0,
|
|
25332
|
+
output_cost_per_token: 0,
|
|
25333
|
+
provider: "OpenRouter"
|
|
25334
|
+
},
|
|
25335
|
+
{
|
|
25336
|
+
model_id: "cognitivecomputations/dolphin3.0-r1-mistral-24b",
|
|
25337
|
+
input_cost_per_token: 1e-8,
|
|
25338
|
+
output_cost_per_token: 340768e-13,
|
|
25339
|
+
provider: "OpenRouter"
|
|
25340
|
+
},
|
|
25341
|
+
{
|
|
25342
|
+
model_id: "cognitivecomputations/dolphin3.0-r1-mistral-24b:free",
|
|
25343
|
+
input_cost_per_token: 0,
|
|
25344
|
+
output_cost_per_token: 0,
|
|
25345
|
+
provider: "OpenRouter"
|
|
25346
|
+
},
|
|
25347
|
+
{
|
|
25348
|
+
model_id: "cohere/command",
|
|
25349
|
+
input_cost_per_token: 1e-6,
|
|
25350
|
+
output_cost_per_token: 2e-6,
|
|
25351
|
+
provider: "OpenRouter"
|
|
25352
|
+
},
|
|
25353
|
+
{
|
|
25354
|
+
model_id: "cohere/command-a",
|
|
25355
|
+
input_cost_per_token: 2e-6,
|
|
25356
|
+
output_cost_per_token: 8e-6,
|
|
25357
|
+
provider: "OpenRouter"
|
|
25358
|
+
},
|
|
25359
|
+
{
|
|
25360
|
+
model_id: "cohere/command-r",
|
|
25361
|
+
input_cost_per_token: 5e-7,
|
|
25362
|
+
output_cost_per_token: 15e-7,
|
|
25363
|
+
provider: "OpenRouter"
|
|
25364
|
+
},
|
|
25365
|
+
{
|
|
25366
|
+
model_id: "cohere/command-r-03-2024",
|
|
25367
|
+
input_cost_per_token: 5e-7,
|
|
25368
|
+
output_cost_per_token: 15e-7,
|
|
25369
|
+
provider: "OpenRouter"
|
|
25370
|
+
},
|
|
25371
|
+
{
|
|
25372
|
+
model_id: "cohere/command-r-08-2024",
|
|
25373
|
+
input_cost_per_token: 15e-8,
|
|
25374
|
+
output_cost_per_token: 6e-7,
|
|
25375
|
+
provider: "OpenRouter"
|
|
25376
|
+
},
|
|
25377
|
+
{
|
|
25378
|
+
model_id: "cohere/command-r-plus",
|
|
25379
|
+
input_cost_per_token: 3e-6,
|
|
25380
|
+
output_cost_per_token: 15e-6,
|
|
25381
|
+
provider: "OpenRouter"
|
|
25382
|
+
},
|
|
25383
|
+
{
|
|
25384
|
+
model_id: "cohere/command-r-plus-04-2024",
|
|
25385
|
+
input_cost_per_token: 3e-6,
|
|
25386
|
+
output_cost_per_token: 15e-6,
|
|
25387
|
+
provider: "OpenRouter"
|
|
25388
|
+
},
|
|
25389
|
+
{
|
|
25390
|
+
model_id: "cohere/command-r-plus-08-2024",
|
|
25391
|
+
input_cost_per_token: 25e-7,
|
|
25392
|
+
output_cost_per_token: 1e-5,
|
|
25393
|
+
provider: "OpenRouter"
|
|
25394
|
+
},
|
|
25395
|
+
{
|
|
25396
|
+
model_id: "cohere/command-r7b-12-2024",
|
|
25397
|
+
input_cost_per_token: 375e-10,
|
|
25398
|
+
output_cost_per_token: 15e-8,
|
|
25399
|
+
provider: "OpenRouter"
|
|
25400
|
+
},
|
|
25401
|
+
{
|
|
25402
|
+
model_id: "deepseek/deepseek-chat",
|
|
25403
|
+
input_cost_per_token: 1999188e-13,
|
|
25404
|
+
output_cost_per_token: 800064e-12,
|
|
25405
|
+
provider: "OpenRouter"
|
|
25406
|
+
},
|
|
25407
|
+
{
|
|
25408
|
+
model_id: "deepseek/deepseek-chat-v3-0324",
|
|
25409
|
+
input_cost_per_token: 1999188e-13,
|
|
25410
|
+
output_cost_per_token: 800064e-12,
|
|
25411
|
+
provider: "OpenRouter"
|
|
25412
|
+
},
|
|
25413
|
+
{
|
|
25414
|
+
model_id: "deepseek/deepseek-chat-v3-0324:free",
|
|
25415
|
+
input_cost_per_token: 0,
|
|
25416
|
+
output_cost_per_token: 0,
|
|
25417
|
+
provider: "OpenRouter"
|
|
25418
|
+
},
|
|
25419
|
+
{
|
|
25420
|
+
model_id: "deepseek/deepseek-chat-v3.1",
|
|
25421
|
+
input_cost_per_token: 2e-7,
|
|
25422
|
+
output_cost_per_token: 8e-7,
|
|
25423
|
+
provider: "OpenRouter"
|
|
25424
|
+
},
|
|
25425
|
+
{
|
|
25426
|
+
model_id: "deepseek/deepseek-prover-v2",
|
|
25427
|
+
input_cost_per_token: 5e-7,
|
|
25428
|
+
output_cost_per_token: 218e-8,
|
|
25429
|
+
provider: "OpenRouter"
|
|
25430
|
+
},
|
|
25431
|
+
{
|
|
25432
|
+
model_id: "deepseek/deepseek-r1",
|
|
25433
|
+
input_cost_per_token: 4e-7,
|
|
25434
|
+
output_cost_per_token: 2e-6,
|
|
25435
|
+
provider: "OpenRouter"
|
|
25436
|
+
},
|
|
25437
|
+
{
|
|
25438
|
+
model_id: "deepseek/deepseek-r1-0528",
|
|
25439
|
+
input_cost_per_token: 1999188e-13,
|
|
25440
|
+
output_cost_per_token: 800064e-12,
|
|
25441
|
+
provider: "OpenRouter"
|
|
25442
|
+
},
|
|
25443
|
+
{
|
|
25444
|
+
model_id: "deepseek/deepseek-r1-0528-qwen3-8b",
|
|
25445
|
+
input_cost_per_token: 1e-8,
|
|
25446
|
+
output_cost_per_token: 2e-8,
|
|
25447
|
+
provider: "OpenRouter"
|
|
25448
|
+
},
|
|
25449
|
+
{
|
|
25450
|
+
model_id: "deepseek/deepseek-r1-0528-qwen3-8b:free",
|
|
25451
|
+
input_cost_per_token: 0,
|
|
25452
|
+
output_cost_per_token: 0,
|
|
25453
|
+
provider: "OpenRouter"
|
|
25454
|
+
},
|
|
25455
|
+
{
|
|
25456
|
+
model_id: "deepseek/deepseek-r1-0528:free",
|
|
25457
|
+
input_cost_per_token: 0,
|
|
25458
|
+
output_cost_per_token: 0,
|
|
25459
|
+
provider: "OpenRouter"
|
|
25460
|
+
},
|
|
25461
|
+
{
|
|
25462
|
+
model_id: "deepseek/deepseek-r1-distill-llama-70b",
|
|
25463
|
+
input_cost_per_token: 259154e-13,
|
|
25464
|
+
output_cost_per_token: 103712e-12,
|
|
25465
|
+
provider: "OpenRouter"
|
|
25466
|
+
},
|
|
25467
|
+
{
|
|
25468
|
+
model_id: "deepseek/deepseek-r1-distill-llama-70b:free",
|
|
25469
|
+
input_cost_per_token: 0,
|
|
25470
|
+
output_cost_per_token: 0,
|
|
25471
|
+
provider: "OpenRouter"
|
|
25472
|
+
},
|
|
25473
|
+
{
|
|
25474
|
+
model_id: "deepseek/deepseek-r1-distill-llama-8b",
|
|
25475
|
+
input_cost_per_token: 4e-8,
|
|
25476
|
+
output_cost_per_token: 4e-8,
|
|
25477
|
+
provider: "OpenRouter"
|
|
25478
|
+
},
|
|
25479
|
+
{
|
|
25480
|
+
model_id: "deepseek/deepseek-r1-distill-qwen-1.5b",
|
|
25481
|
+
input_cost_per_token: 18e-8,
|
|
25482
|
+
output_cost_per_token: 18e-8,
|
|
25483
|
+
provider: "OpenRouter"
|
|
25484
|
+
},
|
|
25485
|
+
{
|
|
25486
|
+
model_id: "deepseek/deepseek-r1-distill-qwen-14b",
|
|
25487
|
+
input_cost_per_token: 15e-8,
|
|
25488
|
+
output_cost_per_token: 15e-8,
|
|
25489
|
+
provider: "OpenRouter"
|
|
25490
|
+
},
|
|
25491
|
+
{
|
|
25492
|
+
model_id: "deepseek/deepseek-r1-distill-qwen-14b:free",
|
|
25493
|
+
input_cost_per_token: 0,
|
|
25494
|
+
output_cost_per_token: 0,
|
|
25495
|
+
provider: "OpenRouter"
|
|
25496
|
+
},
|
|
25497
|
+
{
|
|
25498
|
+
model_id: "deepseek/deepseek-r1-distill-qwen-32b",
|
|
25499
|
+
input_cost_per_token: 75e-9,
|
|
25500
|
+
output_cost_per_token: 15e-8,
|
|
25501
|
+
provider: "OpenRouter"
|
|
25502
|
+
},
|
|
25503
|
+
{
|
|
25504
|
+
model_id: "deepseek/deepseek-r1:free",
|
|
25505
|
+
input_cost_per_token: 0,
|
|
25506
|
+
output_cost_per_token: 0,
|
|
25507
|
+
provider: "OpenRouter"
|
|
25508
|
+
},
|
|
25509
|
+
{
|
|
25510
|
+
model_id: "deepseek/deepseek-v3.1-base",
|
|
25511
|
+
input_cost_per_token: 2e-7,
|
|
25512
|
+
output_cost_per_token: 8e-7,
|
|
25513
|
+
provider: "OpenRouter"
|
|
25514
|
+
},
|
|
25515
|
+
{
|
|
25516
|
+
model_id: "eleutherai/llemma_7b",
|
|
25517
|
+
input_cost_per_token: 8e-7,
|
|
25518
|
+
output_cost_per_token: 12e-7,
|
|
25519
|
+
provider: "OpenRouter"
|
|
25520
|
+
},
|
|
25521
|
+
{
|
|
25522
|
+
model_id: "google/gemini-2.0-flash-001",
|
|
25523
|
+
input_cost_per_token: 1e-7,
|
|
25524
|
+
output_cost_per_token: 4e-7,
|
|
25525
|
+
provider: "OpenRouter"
|
|
25526
|
+
},
|
|
25527
|
+
{
|
|
25528
|
+
model_id: "google/gemini-2.0-flash-exp:free",
|
|
25529
|
+
input_cost_per_token: 0,
|
|
25530
|
+
output_cost_per_token: 0,
|
|
25531
|
+
provider: "OpenRouter"
|
|
25532
|
+
},
|
|
25533
|
+
{
|
|
25534
|
+
model_id: "google/gemini-2.0-flash-lite-001",
|
|
25535
|
+
input_cost_per_token: 75e-9,
|
|
25536
|
+
output_cost_per_token: 3e-7,
|
|
25537
|
+
provider: "OpenRouter"
|
|
25538
|
+
},
|
|
25539
|
+
{
|
|
25540
|
+
model_id: "google/gemini-2.5-flash",
|
|
25541
|
+
input_cost_per_token: 3e-7,
|
|
25542
|
+
output_cost_per_token: 25e-7,
|
|
25543
|
+
provider: "OpenRouter"
|
|
25544
|
+
},
|
|
25545
|
+
{
|
|
25546
|
+
model_id: "google/gemini-2.5-flash-lite",
|
|
25547
|
+
input_cost_per_token: 1e-7,
|
|
25548
|
+
output_cost_per_token: 4e-7,
|
|
25549
|
+
provider: "OpenRouter"
|
|
25550
|
+
},
|
|
25551
|
+
{
|
|
25552
|
+
model_id: "google/gemini-2.5-flash-lite-preview-06-17",
|
|
25553
|
+
input_cost_per_token: 1e-7,
|
|
25554
|
+
output_cost_per_token: 4e-7,
|
|
25555
|
+
provider: "OpenRouter"
|
|
25556
|
+
},
|
|
25557
|
+
{
|
|
25558
|
+
model_id: "google/gemini-2.5-pro",
|
|
25559
|
+
input_cost_per_token: 125e-8,
|
|
25560
|
+
output_cost_per_token: 1e-5,
|
|
25561
|
+
provider: "OpenRouter"
|
|
25562
|
+
},
|
|
25563
|
+
{
|
|
25564
|
+
model_id: "google/gemini-2.5-pro-exp-03-25",
|
|
25565
|
+
input_cost_per_token: 0,
|
|
25566
|
+
output_cost_per_token: 0,
|
|
25567
|
+
provider: "OpenRouter"
|
|
25568
|
+
},
|
|
25569
|
+
{
|
|
25570
|
+
model_id: "google/gemini-2.5-pro-preview",
|
|
25571
|
+
input_cost_per_token: 125e-8,
|
|
25572
|
+
output_cost_per_token: 1e-5,
|
|
25573
|
+
provider: "OpenRouter"
|
|
25574
|
+
},
|
|
25575
|
+
{
|
|
25576
|
+
model_id: "google/gemini-2.5-pro-preview-05-06",
|
|
25577
|
+
input_cost_per_token: 125e-8,
|
|
25578
|
+
output_cost_per_token: 1e-5,
|
|
25579
|
+
provider: "OpenRouter"
|
|
25580
|
+
},
|
|
25581
|
+
{
|
|
25582
|
+
model_id: "google/gemini-flash-1.5",
|
|
25583
|
+
input_cost_per_token: 75e-9,
|
|
25584
|
+
output_cost_per_token: 3e-7,
|
|
25585
|
+
provider: "OpenRouter"
|
|
25586
|
+
},
|
|
25587
|
+
{
|
|
25588
|
+
model_id: "google/gemini-flash-1.5-8b",
|
|
25589
|
+
input_cost_per_token: 375e-10,
|
|
25590
|
+
output_cost_per_token: 15e-8,
|
|
25591
|
+
provider: "OpenRouter"
|
|
25592
|
+
},
|
|
25593
|
+
{
|
|
25594
|
+
model_id: "google/gemini-pro-1.5",
|
|
25595
|
+
input_cost_per_token: 125e-8,
|
|
25596
|
+
output_cost_per_token: 5e-6,
|
|
25597
|
+
provider: "OpenRouter"
|
|
25598
|
+
},
|
|
25599
|
+
{
|
|
25600
|
+
model_id: "google/gemma-2-27b-it",
|
|
25601
|
+
input_cost_per_token: 65e-8,
|
|
25602
|
+
output_cost_per_token: 65e-8,
|
|
25603
|
+
provider: "OpenRouter"
|
|
25604
|
+
},
|
|
25605
|
+
{
|
|
25606
|
+
model_id: "google/gemma-2-9b-it",
|
|
25607
|
+
input_cost_per_token: 1e-8,
|
|
25608
|
+
output_cost_per_token: 100008e-13,
|
|
25609
|
+
provider: "OpenRouter"
|
|
25610
|
+
},
|
|
25611
|
+
{
|
|
25612
|
+
model_id: "google/gemma-2-9b-it:free",
|
|
25613
|
+
input_cost_per_token: 0,
|
|
25614
|
+
output_cost_per_token: 0,
|
|
25615
|
+
provider: "OpenRouter"
|
|
25616
|
+
},
|
|
25617
|
+
{
|
|
25618
|
+
model_id: "google/gemma-3-12b-it",
|
|
25619
|
+
input_cost_per_token: 481286e-13,
|
|
25620
|
+
output_cost_per_token: 192608e-12,
|
|
25621
|
+
provider: "OpenRouter"
|
|
25622
|
+
},
|
|
25623
|
+
{
|
|
25624
|
+
model_id: "google/gemma-3-12b-it:free",
|
|
25625
|
+
input_cost_per_token: 0,
|
|
25626
|
+
output_cost_per_token: 0,
|
|
25627
|
+
provider: "OpenRouter"
|
|
25628
|
+
},
|
|
25629
|
+
{
|
|
25630
|
+
model_id: "google/gemma-3-27b-it",
|
|
25631
|
+
input_cost_per_token: 666396e-13,
|
|
25632
|
+
output_cost_per_token: 266688e-12,
|
|
25633
|
+
provider: "OpenRouter"
|
|
25634
|
+
},
|
|
25635
|
+
{
|
|
25636
|
+
model_id: "google/gemma-3-27b-it:free",
|
|
25637
|
+
input_cost_per_token: 0,
|
|
25638
|
+
output_cost_per_token: 0,
|
|
25639
|
+
provider: "OpenRouter"
|
|
25640
|
+
},
|
|
25641
|
+
{
|
|
25642
|
+
model_id: "google/gemma-3-4b-it",
|
|
25643
|
+
input_cost_per_token: 2e-8,
|
|
25644
|
+
output_cost_per_token: 4e-8,
|
|
25645
|
+
provider: "OpenRouter"
|
|
25646
|
+
},
|
|
25647
|
+
{
|
|
25648
|
+
model_id: "google/gemma-3-4b-it:free",
|
|
25649
|
+
input_cost_per_token: 0,
|
|
25650
|
+
output_cost_per_token: 0,
|
|
25651
|
+
provider: "OpenRouter"
|
|
25652
|
+
},
|
|
25653
|
+
{
|
|
25654
|
+
model_id: "google/gemma-3n-e2b-it:free",
|
|
25655
|
+
input_cost_per_token: 0,
|
|
25656
|
+
output_cost_per_token: 0,
|
|
25657
|
+
provider: "OpenRouter"
|
|
25658
|
+
},
|
|
25659
|
+
{
|
|
25660
|
+
model_id: "google/gemma-3n-e4b-it",
|
|
25661
|
+
input_cost_per_token: 2e-8,
|
|
25662
|
+
output_cost_per_token: 4e-8,
|
|
25663
|
+
provider: "OpenRouter"
|
|
25664
|
+
},
|
|
25665
|
+
{
|
|
25666
|
+
model_id: "google/gemma-3n-e4b-it:free",
|
|
25667
|
+
input_cost_per_token: 0,
|
|
25668
|
+
output_cost_per_token: 0,
|
|
25669
|
+
provider: "OpenRouter"
|
|
25670
|
+
},
|
|
25671
|
+
{
|
|
25672
|
+
model_id: "gryphe/mythomax-l2-13b",
|
|
25673
|
+
input_cost_per_token: 6e-8,
|
|
25674
|
+
output_cost_per_token: 6e-8,
|
|
25675
|
+
provider: "OpenRouter"
|
|
25676
|
+
},
|
|
25677
|
+
{
|
|
25678
|
+
model_id: "inception/mercury",
|
|
25679
|
+
input_cost_per_token: 25e-8,
|
|
25680
|
+
output_cost_per_token: 1e-6,
|
|
25681
|
+
provider: "OpenRouter"
|
|
25682
|
+
},
|
|
25683
|
+
{
|
|
25684
|
+
model_id: "inception/mercury-coder",
|
|
25685
|
+
input_cost_per_token: 25e-8,
|
|
25686
|
+
output_cost_per_token: 1e-6,
|
|
25687
|
+
provider: "OpenRouter"
|
|
25688
|
+
},
|
|
25689
|
+
{
|
|
25690
|
+
model_id: "infermatic/mn-inferor-12b",
|
|
25691
|
+
input_cost_per_token: 6e-7,
|
|
25692
|
+
output_cost_per_token: 1e-6,
|
|
25693
|
+
provider: "OpenRouter"
|
|
25694
|
+
},
|
|
25695
|
+
{
|
|
25696
|
+
model_id: "inflection/inflection-3-pi",
|
|
25697
|
+
input_cost_per_token: 25e-7,
|
|
25698
|
+
output_cost_per_token: 1e-5,
|
|
25699
|
+
provider: "OpenRouter"
|
|
25700
|
+
},
|
|
25701
|
+
{
|
|
25702
|
+
model_id: "inflection/inflection-3-productivity",
|
|
25703
|
+
input_cost_per_token: 25e-7,
|
|
25704
|
+
output_cost_per_token: 1e-5,
|
|
25705
|
+
provider: "OpenRouter"
|
|
25706
|
+
},
|
|
25707
|
+
{
|
|
25708
|
+
model_id: "liquid/lfm-3b",
|
|
25709
|
+
input_cost_per_token: 2e-8,
|
|
25710
|
+
output_cost_per_token: 2e-8,
|
|
25711
|
+
provider: "OpenRouter"
|
|
25712
|
+
},
|
|
25713
|
+
{
|
|
25714
|
+
model_id: "liquid/lfm-7b",
|
|
25715
|
+
input_cost_per_token: 1e-8,
|
|
25716
|
+
output_cost_per_token: 1e-8,
|
|
25717
|
+
provider: "OpenRouter"
|
|
25718
|
+
},
|
|
25719
|
+
{
|
|
25720
|
+
model_id: "mancer/weaver",
|
|
25721
|
+
input_cost_per_token: 1125e-9,
|
|
25722
|
+
output_cost_per_token: 1125e-9,
|
|
25723
|
+
provider: "OpenRouter"
|
|
25724
|
+
},
|
|
25725
|
+
{
|
|
25726
|
+
model_id: "meta-llama/llama-3-70b-instruct",
|
|
25727
|
+
input_cost_per_token: 3e-7,
|
|
25728
|
+
output_cost_per_token: 4e-7,
|
|
25729
|
+
provider: "OpenRouter"
|
|
25730
|
+
},
|
|
25731
|
+
{
|
|
25732
|
+
model_id: "meta-llama/llama-3-8b-instruct",
|
|
25733
|
+
input_cost_per_token: 3e-8,
|
|
25734
|
+
output_cost_per_token: 6e-8,
|
|
25735
|
+
provider: "OpenRouter"
|
|
25736
|
+
},
|
|
25737
|
+
{
|
|
25738
|
+
model_id: "meta-llama/llama-3.1-405b",
|
|
25739
|
+
input_cost_per_token: 2e-6,
|
|
25740
|
+
output_cost_per_token: 2e-6,
|
|
25741
|
+
provider: "OpenRouter"
|
|
25742
|
+
},
|
|
25743
|
+
{
|
|
25744
|
+
model_id: "meta-llama/llama-3.1-405b-instruct",
|
|
25745
|
+
input_cost_per_token: 8e-7,
|
|
25746
|
+
output_cost_per_token: 8e-7,
|
|
25747
|
+
provider: "OpenRouter"
|
|
25748
|
+
},
|
|
25749
|
+
{
|
|
25750
|
+
model_id: "meta-llama/llama-3.1-405b-instruct:free",
|
|
25751
|
+
input_cost_per_token: 0,
|
|
25752
|
+
output_cost_per_token: 0,
|
|
25753
|
+
provider: "OpenRouter"
|
|
25754
|
+
},
|
|
25755
|
+
{
|
|
25756
|
+
model_id: "meta-llama/llama-3.1-70b-instruct",
|
|
25757
|
+
input_cost_per_token: 1e-7,
|
|
25758
|
+
output_cost_per_token: 28e-8,
|
|
25759
|
+
provider: "OpenRouter"
|
|
25760
|
+
},
|
|
25761
|
+
{
|
|
25762
|
+
model_id: "meta-llama/llama-3.1-8b-instruct",
|
|
25763
|
+
input_cost_per_token: 15e-9,
|
|
25764
|
+
output_cost_per_token: 2e-8,
|
|
25765
|
+
provider: "OpenRouter"
|
|
25766
|
+
},
|
|
25767
|
+
{
|
|
25768
|
+
model_id: "meta-llama/llama-3.2-11b-vision-instruct",
|
|
25769
|
+
input_cost_per_token: 49e-9,
|
|
25770
|
+
output_cost_per_token: 49e-9,
|
|
25771
|
+
provider: "OpenRouter"
|
|
25772
|
+
},
|
|
25773
|
+
{
|
|
25774
|
+
model_id: "meta-llama/llama-3.2-11b-vision-instruct:free",
|
|
25775
|
+
input_cost_per_token: 0,
|
|
25776
|
+
output_cost_per_token: 0,
|
|
25777
|
+
provider: "OpenRouter"
|
|
25778
|
+
},
|
|
25779
|
+
{
|
|
25780
|
+
model_id: "meta-llama/llama-3.2-1b-instruct",
|
|
25781
|
+
input_cost_per_token: 5e-9,
|
|
25782
|
+
output_cost_per_token: 1e-8,
|
|
25783
|
+
provider: "OpenRouter"
|
|
25784
|
+
},
|
|
25785
|
+
{
|
|
25786
|
+
model_id: "meta-llama/llama-3.2-3b-instruct",
|
|
25787
|
+
input_cost_per_token: 3e-9,
|
|
25788
|
+
output_cost_per_token: 6e-9,
|
|
25789
|
+
provider: "OpenRouter"
|
|
25790
|
+
},
|
|
25791
|
+
{
|
|
25792
|
+
model_id: "meta-llama/llama-3.2-3b-instruct:free",
|
|
25793
|
+
input_cost_per_token: 0,
|
|
25794
|
+
output_cost_per_token: 0,
|
|
25795
|
+
provider: "OpenRouter"
|
|
25796
|
+
},
|
|
25797
|
+
{
|
|
25798
|
+
model_id: "meta-llama/llama-3.2-90b-vision-instruct",
|
|
25799
|
+
input_cost_per_token: 12e-7,
|
|
25800
|
+
output_cost_per_token: 12e-7,
|
|
25801
|
+
provider: "OpenRouter"
|
|
25802
|
+
},
|
|
25803
|
+
{
|
|
25804
|
+
model_id: "meta-llama/llama-3.3-70b-instruct",
|
|
25805
|
+
input_cost_per_token: 38e-9,
|
|
25806
|
+
output_cost_per_token: 12e-8,
|
|
25807
|
+
provider: "OpenRouter"
|
|
25808
|
+
},
|
|
25809
|
+
{
|
|
25810
|
+
model_id: "meta-llama/llama-3.3-70b-instruct:free",
|
|
25811
|
+
input_cost_per_token: 0,
|
|
25812
|
+
output_cost_per_token: 0,
|
|
25813
|
+
provider: "OpenRouter"
|
|
25814
|
+
},
|
|
25815
|
+
{
|
|
25816
|
+
model_id: "meta-llama/llama-3.3-8b-instruct:free",
|
|
25817
|
+
input_cost_per_token: 0,
|
|
25818
|
+
output_cost_per_token: 0,
|
|
25819
|
+
provider: "OpenRouter"
|
|
25820
|
+
},
|
|
25821
|
+
{
|
|
25822
|
+
model_id: "meta-llama/llama-4-maverick",
|
|
25823
|
+
input_cost_per_token: 15e-8,
|
|
25824
|
+
output_cost_per_token: 6e-7,
|
|
25825
|
+
provider: "OpenRouter"
|
|
25826
|
+
},
|
|
25827
|
+
{
|
|
25828
|
+
model_id: "meta-llama/llama-4-maverick:free",
|
|
25829
|
+
input_cost_per_token: 0,
|
|
25830
|
+
output_cost_per_token: 0,
|
|
25831
|
+
provider: "OpenRouter"
|
|
25832
|
+
},
|
|
25833
|
+
{
|
|
25834
|
+
model_id: "meta-llama/llama-4-scout",
|
|
25835
|
+
input_cost_per_token: 8e-8,
|
|
25836
|
+
output_cost_per_token: 3e-7,
|
|
25837
|
+
provider: "OpenRouter"
|
|
25838
|
+
},
|
|
25839
|
+
{
|
|
25840
|
+
model_id: "meta-llama/llama-4-scout:free",
|
|
25841
|
+
input_cost_per_token: 0,
|
|
25842
|
+
output_cost_per_token: 0,
|
|
25843
|
+
provider: "OpenRouter"
|
|
25844
|
+
},
|
|
25845
|
+
{
|
|
25846
|
+
model_id: "meta-llama/llama-guard-2-8b",
|
|
25847
|
+
input_cost_per_token: 2e-7,
|
|
25848
|
+
output_cost_per_token: 2e-7,
|
|
25849
|
+
provider: "OpenRouter"
|
|
25850
|
+
},
|
|
25851
|
+
{
|
|
25852
|
+
model_id: "meta-llama/llama-guard-3-8b",
|
|
25853
|
+
input_cost_per_token: 2e-8,
|
|
25854
|
+
output_cost_per_token: 6e-8,
|
|
25855
|
+
provider: "OpenRouter"
|
|
25856
|
+
},
|
|
25857
|
+
{
|
|
25858
|
+
model_id: "meta-llama/llama-guard-4-12b",
|
|
25859
|
+
input_cost_per_token: 18e-8,
|
|
25860
|
+
output_cost_per_token: 18e-8,
|
|
25861
|
+
provider: "OpenRouter"
|
|
25862
|
+
},
|
|
25863
|
+
{
|
|
25864
|
+
model_id: "microsoft/mai-ds-r1",
|
|
25865
|
+
input_cost_per_token: 1999188e-13,
|
|
25866
|
+
output_cost_per_token: 800064e-12,
|
|
25867
|
+
provider: "OpenRouter"
|
|
25868
|
+
},
|
|
25869
|
+
{
|
|
25870
|
+
model_id: "microsoft/mai-ds-r1:free",
|
|
25871
|
+
input_cost_per_token: 0,
|
|
25872
|
+
output_cost_per_token: 0,
|
|
25873
|
+
provider: "OpenRouter"
|
|
25874
|
+
},
|
|
25875
|
+
{
|
|
25876
|
+
model_id: "microsoft/phi-3-medium-128k-instruct",
|
|
25877
|
+
input_cost_per_token: 1e-6,
|
|
25878
|
+
output_cost_per_token: 1e-6,
|
|
25879
|
+
provider: "OpenRouter"
|
|
25880
|
+
},
|
|
25881
|
+
{
|
|
25882
|
+
model_id: "microsoft/phi-3-mini-128k-instruct",
|
|
25883
|
+
input_cost_per_token: 1e-7,
|
|
25884
|
+
output_cost_per_token: 1e-7,
|
|
25885
|
+
provider: "OpenRouter"
|
|
25886
|
+
},
|
|
25887
|
+
{
|
|
25888
|
+
model_id: "microsoft/phi-3.5-mini-128k-instruct",
|
|
25889
|
+
input_cost_per_token: 1e-7,
|
|
25890
|
+
output_cost_per_token: 1e-7,
|
|
25891
|
+
provider: "OpenRouter"
|
|
25892
|
+
},
|
|
25893
|
+
{
|
|
25894
|
+
model_id: "microsoft/phi-4",
|
|
25895
|
+
input_cost_per_token: 6e-8,
|
|
25896
|
+
output_cost_per_token: 14e-8,
|
|
25897
|
+
provider: "OpenRouter"
|
|
25898
|
+
},
|
|
25899
|
+
{
|
|
25900
|
+
model_id: "microsoft/phi-4-multimodal-instruct",
|
|
25901
|
+
input_cost_per_token: 5e-8,
|
|
25902
|
+
output_cost_per_token: 1e-7,
|
|
25903
|
+
provider: "OpenRouter"
|
|
25904
|
+
},
|
|
25905
|
+
{
|
|
25906
|
+
model_id: "microsoft/phi-4-reasoning-plus",
|
|
25907
|
+
input_cost_per_token: 7e-8,
|
|
25908
|
+
output_cost_per_token: 35e-8,
|
|
25909
|
+
provider: "OpenRouter"
|
|
25910
|
+
},
|
|
25911
|
+
{
|
|
25912
|
+
model_id: "microsoft/wizardlm-2-8x22b",
|
|
25913
|
+
input_cost_per_token: 48e-8,
|
|
25914
|
+
output_cost_per_token: 48e-8,
|
|
25915
|
+
provider: "OpenRouter"
|
|
25916
|
+
},
|
|
25917
|
+
{
|
|
25918
|
+
model_id: "minimax/minimax-01",
|
|
25919
|
+
input_cost_per_token: 2e-7,
|
|
25920
|
+
output_cost_per_token: 11e-7,
|
|
25921
|
+
provider: "OpenRouter"
|
|
25922
|
+
},
|
|
25923
|
+
{
|
|
25924
|
+
model_id: "minimax/minimax-m1",
|
|
25925
|
+
input_cost_per_token: 3e-7,
|
|
25926
|
+
output_cost_per_token: 165e-8,
|
|
25927
|
+
provider: "OpenRouter"
|
|
25928
|
+
},
|
|
25929
|
+
{
|
|
25930
|
+
model_id: "mistralai/codestral-2501",
|
|
25931
|
+
input_cost_per_token: 3e-7,
|
|
25932
|
+
output_cost_per_token: 9e-7,
|
|
25933
|
+
provider: "OpenRouter"
|
|
25934
|
+
},
|
|
25935
|
+
{
|
|
25936
|
+
model_id: "mistralai/codestral-2508",
|
|
25937
|
+
input_cost_per_token: 3e-7,
|
|
25938
|
+
output_cost_per_token: 9e-7,
|
|
25939
|
+
provider: "OpenRouter"
|
|
25940
|
+
},
|
|
25941
|
+
{
|
|
25942
|
+
model_id: "mistralai/devstral-medium",
|
|
25943
|
+
input_cost_per_token: 4e-7,
|
|
25944
|
+
output_cost_per_token: 2e-6,
|
|
25945
|
+
provider: "OpenRouter"
|
|
25946
|
+
},
|
|
25947
|
+
{
|
|
25948
|
+
model_id: "mistralai/devstral-small",
|
|
25949
|
+
input_cost_per_token: 7e-8,
|
|
25950
|
+
output_cost_per_token: 28e-8,
|
|
25951
|
+
provider: "OpenRouter"
|
|
25952
|
+
},
|
|
25953
|
+
{
|
|
25954
|
+
model_id: "mistralai/devstral-small-2505",
|
|
25955
|
+
input_cost_per_token: 1999188e-14,
|
|
25956
|
+
output_cost_per_token: 800064e-13,
|
|
25957
|
+
provider: "OpenRouter"
|
|
25958
|
+
},
|
|
25959
|
+
{
|
|
25960
|
+
model_id: "mistralai/devstral-small-2505:free",
|
|
25961
|
+
input_cost_per_token: 0,
|
|
25962
|
+
output_cost_per_token: 0,
|
|
25963
|
+
provider: "OpenRouter"
|
|
25964
|
+
},
|
|
25965
|
+
{
|
|
25966
|
+
model_id: "mistralai/magistral-medium-2506",
|
|
25967
|
+
input_cost_per_token: 2e-6,
|
|
25968
|
+
output_cost_per_token: 5e-6,
|
|
25969
|
+
provider: "OpenRouter"
|
|
25970
|
+
},
|
|
25971
|
+
{
|
|
25972
|
+
model_id: "mistralai/magistral-medium-2506:thinking",
|
|
25973
|
+
input_cost_per_token: 2e-6,
|
|
25974
|
+
output_cost_per_token: 5e-6,
|
|
25975
|
+
provider: "OpenRouter"
|
|
25976
|
+
},
|
|
25977
|
+
{
|
|
25978
|
+
model_id: "mistralai/magistral-small-2506",
|
|
25979
|
+
input_cost_per_token: 5e-7,
|
|
25980
|
+
output_cost_per_token: 15e-7,
|
|
25981
|
+
provider: "OpenRouter"
|
|
25982
|
+
},
|
|
25983
|
+
{
|
|
25984
|
+
model_id: "mistralai/ministral-3b",
|
|
25985
|
+
input_cost_per_token: 4e-8,
|
|
25986
|
+
output_cost_per_token: 4e-8,
|
|
25987
|
+
provider: "OpenRouter"
|
|
25988
|
+
},
|
|
25989
|
+
{
|
|
25990
|
+
model_id: "mistralai/ministral-8b",
|
|
25991
|
+
input_cost_per_token: 1e-7,
|
|
25992
|
+
output_cost_per_token: 1e-7,
|
|
25993
|
+
provider: "OpenRouter"
|
|
25994
|
+
},
|
|
25995
|
+
{
|
|
25996
|
+
model_id: "mistralai/mistral-7b-instruct",
|
|
25997
|
+
input_cost_per_token: 28e-9,
|
|
25998
|
+
output_cost_per_token: 54e-9,
|
|
25999
|
+
provider: "OpenRouter"
|
|
26000
|
+
},
|
|
26001
|
+
{
|
|
26002
|
+
model_id: "mistralai/mistral-7b-instruct-v0.1",
|
|
26003
|
+
input_cost_per_token: 11e-8,
|
|
26004
|
+
output_cost_per_token: 19e-8,
|
|
26005
|
+
provider: "OpenRouter"
|
|
26006
|
+
},
|
|
26007
|
+
{
|
|
26008
|
+
model_id: "mistralai/mistral-7b-instruct-v0.3",
|
|
26009
|
+
input_cost_per_token: 28e-9,
|
|
26010
|
+
output_cost_per_token: 54e-9,
|
|
26011
|
+
provider: "OpenRouter"
|
|
26012
|
+
},
|
|
26013
|
+
{
|
|
26014
|
+
model_id: "mistralai/mistral-7b-instruct:free",
|
|
26015
|
+
input_cost_per_token: 0,
|
|
26016
|
+
output_cost_per_token: 0,
|
|
26017
|
+
provider: "OpenRouter"
|
|
26018
|
+
},
|
|
26019
|
+
{
|
|
26020
|
+
model_id: "mistralai/mistral-large",
|
|
26021
|
+
input_cost_per_token: 2e-6,
|
|
26022
|
+
output_cost_per_token: 6e-6,
|
|
26023
|
+
provider: "OpenRouter"
|
|
26024
|
+
},
|
|
26025
|
+
{
|
|
26026
|
+
model_id: "mistralai/mistral-large-2407",
|
|
26027
|
+
input_cost_per_token: 2e-6,
|
|
26028
|
+
output_cost_per_token: 6e-6,
|
|
26029
|
+
provider: "OpenRouter"
|
|
26030
|
+
},
|
|
26031
|
+
{
|
|
26032
|
+
model_id: "mistralai/mistral-large-2411",
|
|
26033
|
+
input_cost_per_token: 2e-6,
|
|
26034
|
+
output_cost_per_token: 6e-6,
|
|
26035
|
+
provider: "OpenRouter"
|
|
26036
|
+
},
|
|
26037
|
+
{
|
|
26038
|
+
model_id: "mistralai/mistral-medium-3",
|
|
26039
|
+
input_cost_per_token: 4e-7,
|
|
26040
|
+
output_cost_per_token: 2e-6,
|
|
26041
|
+
provider: "OpenRouter"
|
|
26042
|
+
},
|
|
26043
|
+
{
|
|
26044
|
+
model_id: "mistralai/mistral-medium-3.1",
|
|
26045
|
+
input_cost_per_token: 4e-7,
|
|
26046
|
+
output_cost_per_token: 2e-6,
|
|
26047
|
+
provider: "OpenRouter"
|
|
26048
|
+
},
|
|
26049
|
+
{
|
|
26050
|
+
model_id: "mistralai/mistral-nemo",
|
|
26051
|
+
input_cost_per_token: 75e-10,
|
|
26052
|
+
output_cost_per_token: 5e-8,
|
|
26053
|
+
provider: "OpenRouter"
|
|
26054
|
+
},
|
|
26055
|
+
{
|
|
26056
|
+
model_id: "mistralai/mistral-nemo:free",
|
|
26057
|
+
input_cost_per_token: 0,
|
|
26058
|
+
output_cost_per_token: 0,
|
|
26059
|
+
provider: "OpenRouter"
|
|
26060
|
+
},
|
|
26061
|
+
{
|
|
26062
|
+
model_id: "mistralai/mistral-saba",
|
|
26063
|
+
input_cost_per_token: 2e-7,
|
|
26064
|
+
output_cost_per_token: 6e-7,
|
|
26065
|
+
provider: "OpenRouter"
|
|
26066
|
+
},
|
|
26067
|
+
{
|
|
26068
|
+
model_id: "mistralai/mistral-small",
|
|
26069
|
+
input_cost_per_token: 2e-7,
|
|
26070
|
+
output_cost_per_token: 6e-7,
|
|
26071
|
+
provider: "OpenRouter"
|
|
26072
|
+
},
|
|
26073
|
+
{
|
|
26074
|
+
model_id: "mistralai/mistral-small-24b-instruct-2501",
|
|
26075
|
+
input_cost_per_token: 1999188e-14,
|
|
26076
|
+
output_cost_per_token: 800064e-13,
|
|
26077
|
+
provider: "OpenRouter"
|
|
26078
|
+
},
|
|
26079
|
+
{
|
|
26080
|
+
model_id: "mistralai/mistral-small-24b-instruct-2501:free",
|
|
26081
|
+
input_cost_per_token: 0,
|
|
26082
|
+
output_cost_per_token: 0,
|
|
26083
|
+
provider: "OpenRouter"
|
|
26084
|
+
},
|
|
26085
|
+
{
|
|
26086
|
+
model_id: "mistralai/mistral-small-3.1-24b-instruct",
|
|
26087
|
+
input_cost_per_token: 1999188e-14,
|
|
26088
|
+
output_cost_per_token: 800064e-13,
|
|
26089
|
+
provider: "OpenRouter"
|
|
26090
|
+
},
|
|
26091
|
+
{
|
|
26092
|
+
model_id: "mistralai/mistral-small-3.1-24b-instruct:free",
|
|
26093
|
+
input_cost_per_token: 0,
|
|
26094
|
+
output_cost_per_token: 0,
|
|
26095
|
+
provider: "OpenRouter"
|
|
26096
|
+
},
|
|
26097
|
+
{
|
|
26098
|
+
model_id: "mistralai/mistral-small-3.2-24b-instruct",
|
|
26099
|
+
input_cost_per_token: 5e-8,
|
|
26100
|
+
output_cost_per_token: 1e-7,
|
|
26101
|
+
provider: "OpenRouter"
|
|
26102
|
+
},
|
|
26103
|
+
{
|
|
26104
|
+
model_id: "mistralai/mistral-small-3.2-24b-instruct:free",
|
|
26105
|
+
input_cost_per_token: 0,
|
|
26106
|
+
output_cost_per_token: 0,
|
|
26107
|
+
provider: "OpenRouter"
|
|
26108
|
+
},
|
|
26109
|
+
{
|
|
26110
|
+
model_id: "mistralai/mistral-tiny",
|
|
26111
|
+
input_cost_per_token: 25e-8,
|
|
26112
|
+
output_cost_per_token: 25e-8,
|
|
26113
|
+
provider: "OpenRouter"
|
|
26114
|
+
},
|
|
26115
|
+
{
|
|
26116
|
+
model_id: "mistralai/mixtral-8x22b-instruct",
|
|
26117
|
+
input_cost_per_token: 9e-7,
|
|
26118
|
+
output_cost_per_token: 9e-7,
|
|
26119
|
+
provider: "OpenRouter"
|
|
26120
|
+
},
|
|
26121
|
+
{
|
|
26122
|
+
model_id: "mistralai/mixtral-8x7b-instruct",
|
|
26123
|
+
input_cost_per_token: 8e-8,
|
|
26124
|
+
output_cost_per_token: 24e-8,
|
|
26125
|
+
provider: "OpenRouter"
|
|
26126
|
+
},
|
|
26127
|
+
{
|
|
26128
|
+
model_id: "mistralai/pixtral-12b",
|
|
26129
|
+
input_cost_per_token: 1e-7,
|
|
26130
|
+
output_cost_per_token: 1e-7,
|
|
26131
|
+
provider: "OpenRouter"
|
|
26132
|
+
},
|
|
26133
|
+
{
|
|
26134
|
+
model_id: "mistralai/pixtral-large-2411",
|
|
26135
|
+
input_cost_per_token: 2e-6,
|
|
26136
|
+
output_cost_per_token: 6e-6,
|
|
26137
|
+
provider: "OpenRouter"
|
|
26138
|
+
},
|
|
26139
|
+
{
|
|
26140
|
+
model_id: "moonshotai/kimi-dev-72b:free",
|
|
26141
|
+
input_cost_per_token: 0,
|
|
26142
|
+
output_cost_per_token: 0,
|
|
26143
|
+
provider: "OpenRouter"
|
|
26144
|
+
},
|
|
26145
|
+
{
|
|
26146
|
+
model_id: "moonshotai/kimi-k2",
|
|
26147
|
+
input_cost_per_token: 14e-8,
|
|
26148
|
+
output_cost_per_token: 249e-8,
|
|
26149
|
+
provider: "OpenRouter"
|
|
26150
|
+
},
|
|
26151
|
+
{
|
|
26152
|
+
model_id: "moonshotai/kimi-k2:free",
|
|
26153
|
+
input_cost_per_token: 0,
|
|
26154
|
+
output_cost_per_token: 0,
|
|
26155
|
+
provider: "OpenRouter"
|
|
26156
|
+
},
|
|
26157
|
+
{
|
|
26158
|
+
model_id: "moonshotai/kimi-vl-a3b-thinking",
|
|
26159
|
+
input_cost_per_token: 2498985e-14,
|
|
26160
|
+
output_cost_per_token: 100008e-12,
|
|
26161
|
+
provider: "OpenRouter"
|
|
26162
|
+
},
|
|
26163
|
+
{
|
|
26164
|
+
model_id: "moonshotai/kimi-vl-a3b-thinking:free",
|
|
26165
|
+
input_cost_per_token: 0,
|
|
26166
|
+
output_cost_per_token: 0,
|
|
26167
|
+
provider: "OpenRouter"
|
|
26168
|
+
},
|
|
26169
|
+
{
|
|
26170
|
+
model_id: "morph/morph-v3-fast",
|
|
26171
|
+
input_cost_per_token: 9e-7,
|
|
26172
|
+
output_cost_per_token: 19e-7,
|
|
26173
|
+
provider: "OpenRouter"
|
|
26174
|
+
},
|
|
26175
|
+
{
|
|
26176
|
+
model_id: "morph/morph-v3-large",
|
|
26177
|
+
input_cost_per_token: 9e-7,
|
|
26178
|
+
output_cost_per_token: 19e-7,
|
|
26179
|
+
provider: "OpenRouter"
|
|
26180
|
+
},
|
|
26181
|
+
{
|
|
26182
|
+
model_id: "neversleep/llama-3-lumimaid-70b",
|
|
26183
|
+
input_cost_per_token: 4e-6,
|
|
26184
|
+
output_cost_per_token: 6e-6,
|
|
26185
|
+
provider: "OpenRouter"
|
|
26186
|
+
},
|
|
26187
|
+
{
|
|
26188
|
+
model_id: "neversleep/llama-3.1-lumimaid-8b",
|
|
26189
|
+
input_cost_per_token: 9e-8,
|
|
26190
|
+
output_cost_per_token: 6e-7,
|
|
26191
|
+
provider: "OpenRouter"
|
|
26192
|
+
},
|
|
26193
|
+
{
|
|
26194
|
+
model_id: "neversleep/noromaid-20b",
|
|
26195
|
+
input_cost_per_token: 1e-6,
|
|
26196
|
+
output_cost_per_token: 175e-8,
|
|
26197
|
+
provider: "OpenRouter"
|
|
26198
|
+
},
|
|
26199
|
+
{
|
|
26200
|
+
model_id: "nousresearch/deephermes-3-llama-3-8b-preview:free",
|
|
26201
|
+
input_cost_per_token: 0,
|
|
26202
|
+
output_cost_per_token: 0,
|
|
26203
|
+
provider: "OpenRouter"
|
|
26204
|
+
},
|
|
26205
|
+
{
|
|
26206
|
+
model_id: "nousresearch/deephermes-3-mistral-24b-preview",
|
|
26207
|
+
input_cost_per_token: 9329544e-14,
|
|
26208
|
+
output_cost_per_token: 3733632e-13,
|
|
26209
|
+
provider: "OpenRouter"
|
|
26210
|
+
},
|
|
26211
|
+
{
|
|
26212
|
+
model_id: "nousresearch/hermes-2-pro-llama-3-8b",
|
|
26213
|
+
input_cost_per_token: 25e-9,
|
|
26214
|
+
output_cost_per_token: 4e-8,
|
|
26215
|
+
provider: "OpenRouter"
|
|
26216
|
+
},
|
|
26217
|
+
{
|
|
26218
|
+
model_id: "nousresearch/hermes-3-llama-3.1-405b",
|
|
26219
|
+
input_cost_per_token: 7e-7,
|
|
26220
|
+
output_cost_per_token: 8e-7,
|
|
26221
|
+
provider: "OpenRouter"
|
|
26222
|
+
},
|
|
26223
|
+
{
|
|
26224
|
+
model_id: "nousresearch/hermes-3-llama-3.1-70b",
|
|
26225
|
+
input_cost_per_token: 1e-7,
|
|
26226
|
+
output_cost_per_token: 28e-8,
|
|
26227
|
+
provider: "OpenRouter"
|
|
26228
|
+
},
|
|
26229
|
+
{
|
|
26230
|
+
model_id: "nousresearch/hermes-4-405b",
|
|
26231
|
+
input_cost_per_token: 1e-6,
|
|
26232
|
+
output_cost_per_token: 3e-6,
|
|
26233
|
+
provider: "OpenRouter"
|
|
26234
|
+
},
|
|
26235
|
+
{
|
|
26236
|
+
model_id: "nousresearch/hermes-4-70b",
|
|
26237
|
+
input_cost_per_token: 13e-8,
|
|
26238
|
+
output_cost_per_token: 4e-7,
|
|
26239
|
+
provider: "OpenRouter"
|
|
26240
|
+
},
|
|
26241
|
+
{
|
|
26242
|
+
model_id: "nousresearch/nous-hermes-2-mixtral-8x7b-dpo",
|
|
26243
|
+
input_cost_per_token: 6e-7,
|
|
26244
|
+
output_cost_per_token: 6e-7,
|
|
26245
|
+
provider: "OpenRouter"
|
|
26246
|
+
},
|
|
26247
|
+
{
|
|
26248
|
+
model_id: "nvidia/llama-3.1-nemotron-70b-instruct",
|
|
26249
|
+
input_cost_per_token: 12e-8,
|
|
26250
|
+
output_cost_per_token: 3e-7,
|
|
26251
|
+
provider: "OpenRouter"
|
|
26252
|
+
},
|
|
26253
|
+
{
|
|
26254
|
+
model_id: "nvidia/llama-3.1-nemotron-ultra-253b-v1",
|
|
26255
|
+
input_cost_per_token: 6e-7,
|
|
26256
|
+
output_cost_per_token: 18e-7,
|
|
26257
|
+
provider: "OpenRouter"
|
|
26258
|
+
},
|
|
26259
|
+
{
|
|
26260
|
+
model_id: "nvidia/llama-3.1-nemotron-ultra-253b-v1:free",
|
|
26261
|
+
input_cost_per_token: 0,
|
|
26262
|
+
output_cost_per_token: 0,
|
|
26263
|
+
provider: "OpenRouter"
|
|
26264
|
+
},
|
|
26265
|
+
{
|
|
26266
|
+
model_id: "nvidia/llama-3.3-nemotron-super-49b-v1",
|
|
26267
|
+
input_cost_per_token: 13e-8,
|
|
26268
|
+
output_cost_per_token: 4e-7,
|
|
26269
|
+
provider: "OpenRouter"
|
|
26270
|
+
},
|
|
26271
|
+
{
|
|
26272
|
+
model_id: "openai/chatgpt-4o-latest",
|
|
26273
|
+
input_cost_per_token: 5e-6,
|
|
26274
|
+
output_cost_per_token: 15e-6,
|
|
26275
|
+
provider: "OpenRouter"
|
|
26276
|
+
},
|
|
26277
|
+
{
|
|
26278
|
+
model_id: "openai/codex-mini",
|
|
26279
|
+
input_cost_per_token: 15e-7,
|
|
26280
|
+
output_cost_per_token: 6e-6,
|
|
26281
|
+
provider: "OpenRouter"
|
|
26282
|
+
},
|
|
26283
|
+
{
|
|
26284
|
+
model_id: "openai/gpt-3.5-turbo",
|
|
26285
|
+
input_cost_per_token: 5e-7,
|
|
26286
|
+
output_cost_per_token: 15e-7,
|
|
26287
|
+
provider: "OpenRouter"
|
|
26288
|
+
},
|
|
26289
|
+
{
|
|
26290
|
+
model_id: "openai/gpt-3.5-turbo-0613",
|
|
26291
|
+
input_cost_per_token: 1e-6,
|
|
26292
|
+
output_cost_per_token: 2e-6,
|
|
26293
|
+
provider: "OpenRouter"
|
|
26294
|
+
},
|
|
26295
|
+
{
|
|
26296
|
+
model_id: "openai/gpt-3.5-turbo-16k",
|
|
26297
|
+
input_cost_per_token: 3e-6,
|
|
26298
|
+
output_cost_per_token: 4e-6,
|
|
26299
|
+
provider: "OpenRouter"
|
|
26300
|
+
},
|
|
26301
|
+
{
|
|
26302
|
+
model_id: "openai/gpt-3.5-turbo-instruct",
|
|
26303
|
+
input_cost_per_token: 15e-7,
|
|
26304
|
+
output_cost_per_token: 2e-6,
|
|
26305
|
+
provider: "OpenRouter"
|
|
26306
|
+
},
|
|
26307
|
+
{
|
|
26308
|
+
model_id: "openai/gpt-4",
|
|
26309
|
+
input_cost_per_token: 3e-5,
|
|
26310
|
+
output_cost_per_token: 6e-5,
|
|
26311
|
+
provider: "OpenRouter"
|
|
26312
|
+
},
|
|
26313
|
+
{
|
|
26314
|
+
model_id: "openai/gpt-4-0314",
|
|
26315
|
+
input_cost_per_token: 3e-5,
|
|
26316
|
+
output_cost_per_token: 6e-5,
|
|
26317
|
+
provider: "OpenRouter"
|
|
26318
|
+
},
|
|
26319
|
+
{
|
|
26320
|
+
model_id: "openai/gpt-4-1106-preview",
|
|
26321
|
+
input_cost_per_token: 1e-5,
|
|
26322
|
+
output_cost_per_token: 3e-5,
|
|
26323
|
+
provider: "OpenRouter"
|
|
26324
|
+
},
|
|
26325
|
+
{
|
|
26326
|
+
model_id: "openai/gpt-4-turbo",
|
|
26327
|
+
input_cost_per_token: 1e-5,
|
|
26328
|
+
output_cost_per_token: 3e-5,
|
|
26329
|
+
provider: "OpenRouter"
|
|
26330
|
+
},
|
|
26331
|
+
{
|
|
26332
|
+
model_id: "openai/gpt-4-turbo-preview",
|
|
26333
|
+
input_cost_per_token: 1e-5,
|
|
26334
|
+
output_cost_per_token: 3e-5,
|
|
26335
|
+
provider: "OpenRouter"
|
|
26336
|
+
},
|
|
26337
|
+
{
|
|
26338
|
+
model_id: "openai/gpt-4.1",
|
|
26339
|
+
input_cost_per_token: 2e-6,
|
|
26340
|
+
output_cost_per_token: 8e-6,
|
|
26341
|
+
provider: "OpenRouter"
|
|
26342
|
+
},
|
|
26343
|
+
{
|
|
26344
|
+
model_id: "openai/gpt-4.1-mini",
|
|
26345
|
+
input_cost_per_token: 4e-7,
|
|
26346
|
+
output_cost_per_token: 16e-7,
|
|
26347
|
+
provider: "OpenRouter"
|
|
26348
|
+
},
|
|
26349
|
+
{
|
|
26350
|
+
model_id: "openai/gpt-4.1-nano",
|
|
26351
|
+
input_cost_per_token: 1e-7,
|
|
26352
|
+
output_cost_per_token: 4e-7,
|
|
26353
|
+
provider: "OpenRouter"
|
|
26354
|
+
},
|
|
26355
|
+
{
|
|
26356
|
+
model_id: "openai/gpt-4o",
|
|
26357
|
+
input_cost_per_token: 25e-7,
|
|
26358
|
+
output_cost_per_token: 1e-5,
|
|
26359
|
+
provider: "OpenRouter"
|
|
26360
|
+
},
|
|
26361
|
+
{
|
|
26362
|
+
model_id: "openai/gpt-4o-2024-05-13",
|
|
26363
|
+
input_cost_per_token: 5e-6,
|
|
26364
|
+
output_cost_per_token: 15e-6,
|
|
26365
|
+
provider: "OpenRouter"
|
|
26366
|
+
},
|
|
26367
|
+
{
|
|
26368
|
+
model_id: "openai/gpt-4o-2024-08-06",
|
|
26369
|
+
input_cost_per_token: 25e-7,
|
|
26370
|
+
output_cost_per_token: 1e-5,
|
|
26371
|
+
provider: "OpenRouter"
|
|
26372
|
+
},
|
|
26373
|
+
{
|
|
26374
|
+
model_id: "openai/gpt-4o-2024-11-20",
|
|
26375
|
+
input_cost_per_token: 25e-7,
|
|
26376
|
+
output_cost_per_token: 1e-5,
|
|
26377
|
+
provider: "OpenRouter"
|
|
26378
|
+
},
|
|
26379
|
+
{
|
|
26380
|
+
model_id: "openai/gpt-4o-audio-preview",
|
|
26381
|
+
input_cost_per_token: 25e-7,
|
|
26382
|
+
output_cost_per_token: 1e-5,
|
|
26383
|
+
provider: "OpenRouter"
|
|
26384
|
+
},
|
|
26385
|
+
{
|
|
26386
|
+
model_id: "openai/gpt-4o-mini",
|
|
26387
|
+
input_cost_per_token: 15e-8,
|
|
26388
|
+
output_cost_per_token: 6e-7,
|
|
26389
|
+
provider: "OpenRouter"
|
|
26390
|
+
},
|
|
26391
|
+
{
|
|
26392
|
+
model_id: "openai/gpt-4o-mini-2024-07-18",
|
|
26393
|
+
input_cost_per_token: 15e-8,
|
|
26394
|
+
output_cost_per_token: 6e-7,
|
|
26395
|
+
provider: "OpenRouter"
|
|
26396
|
+
},
|
|
26397
|
+
{
|
|
26398
|
+
model_id: "openai/gpt-4o-mini-search-preview",
|
|
26399
|
+
input_cost_per_token: 15e-8,
|
|
26400
|
+
output_cost_per_token: 6e-7,
|
|
26401
|
+
provider: "OpenRouter"
|
|
26402
|
+
},
|
|
26403
|
+
{
|
|
26404
|
+
model_id: "openai/gpt-4o-search-preview",
|
|
26405
|
+
input_cost_per_token: 25e-7,
|
|
26406
|
+
output_cost_per_token: 1e-5,
|
|
26407
|
+
provider: "OpenRouter"
|
|
26408
|
+
},
|
|
26409
|
+
{
|
|
26410
|
+
model_id: "openai/gpt-4o:extended",
|
|
26411
|
+
input_cost_per_token: 6e-6,
|
|
26412
|
+
output_cost_per_token: 18e-6,
|
|
26413
|
+
provider: "OpenRouter"
|
|
26414
|
+
},
|
|
26415
|
+
{
|
|
26416
|
+
model_id: "openai/gpt-5",
|
|
26417
|
+
input_cost_per_token: 125e-8,
|
|
26418
|
+
output_cost_per_token: 1e-5,
|
|
26419
|
+
provider: "OpenRouter"
|
|
26420
|
+
},
|
|
26421
|
+
{
|
|
26422
|
+
model_id: "openai/gpt-5-chat",
|
|
26423
|
+
input_cost_per_token: 125e-8,
|
|
26424
|
+
output_cost_per_token: 1e-5,
|
|
26425
|
+
provider: "OpenRouter"
|
|
26426
|
+
},
|
|
26427
|
+
{
|
|
26428
|
+
model_id: "openai/gpt-5-mini",
|
|
26429
|
+
input_cost_per_token: 25e-8,
|
|
26430
|
+
output_cost_per_token: 2e-6,
|
|
26431
|
+
provider: "OpenRouter"
|
|
26432
|
+
},
|
|
26433
|
+
{
|
|
26434
|
+
model_id: "openai/gpt-5-nano",
|
|
26435
|
+
input_cost_per_token: 5e-8,
|
|
26436
|
+
output_cost_per_token: 4e-7,
|
|
26437
|
+
provider: "OpenRouter"
|
|
26438
|
+
},
|
|
26439
|
+
{
|
|
26440
|
+
model_id: "openai/gpt-oss-120b",
|
|
26441
|
+
input_cost_per_token: 72e-9,
|
|
26442
|
+
output_cost_per_token: 28e-8,
|
|
26443
|
+
provider: "OpenRouter"
|
|
26444
|
+
},
|
|
26445
|
+
{
|
|
26446
|
+
model_id: "openai/gpt-oss-20b",
|
|
26447
|
+
input_cost_per_token: 4e-8,
|
|
26448
|
+
output_cost_per_token: 15e-8,
|
|
26449
|
+
provider: "OpenRouter"
|
|
26450
|
+
},
|
|
26451
|
+
{
|
|
26452
|
+
model_id: "openai/gpt-oss-20b:free",
|
|
26453
|
+
input_cost_per_token: 0,
|
|
26454
|
+
output_cost_per_token: 0,
|
|
26455
|
+
provider: "OpenRouter"
|
|
26456
|
+
},
|
|
26457
|
+
{
|
|
26458
|
+
model_id: "openai/o1",
|
|
26459
|
+
input_cost_per_token: 15e-6,
|
|
26460
|
+
output_cost_per_token: 6e-5,
|
|
26461
|
+
provider: "OpenRouter"
|
|
26462
|
+
},
|
|
26463
|
+
{
|
|
26464
|
+
model_id: "openai/o1-mini",
|
|
26465
|
+
input_cost_per_token: 11e-7,
|
|
26466
|
+
output_cost_per_token: 44e-7,
|
|
26467
|
+
provider: "OpenRouter"
|
|
26468
|
+
},
|
|
26469
|
+
{
|
|
26470
|
+
model_id: "openai/o1-mini-2024-09-12",
|
|
26471
|
+
input_cost_per_token: 11e-7,
|
|
26472
|
+
output_cost_per_token: 44e-7,
|
|
26473
|
+
provider: "OpenRouter"
|
|
26474
|
+
},
|
|
26475
|
+
{
|
|
26476
|
+
model_id: "openai/o1-pro",
|
|
26477
|
+
input_cost_per_token: 15e-5,
|
|
26478
|
+
output_cost_per_token: 6e-4,
|
|
26479
|
+
provider: "OpenRouter"
|
|
26480
|
+
},
|
|
26481
|
+
{
|
|
26482
|
+
model_id: "openai/o3",
|
|
26483
|
+
input_cost_per_token: 2e-6,
|
|
26484
|
+
output_cost_per_token: 8e-6,
|
|
26485
|
+
provider: "OpenRouter"
|
|
26486
|
+
},
|
|
26487
|
+
{
|
|
26488
|
+
model_id: "openai/o3-mini",
|
|
26489
|
+
input_cost_per_token: 11e-7,
|
|
26490
|
+
output_cost_per_token: 44e-7,
|
|
26491
|
+
provider: "OpenRouter"
|
|
26492
|
+
},
|
|
26493
|
+
{
|
|
26494
|
+
model_id: "openai/o3-mini-high",
|
|
26495
|
+
input_cost_per_token: 11e-7,
|
|
26496
|
+
output_cost_per_token: 44e-7,
|
|
26497
|
+
provider: "OpenRouter"
|
|
26498
|
+
},
|
|
26499
|
+
{
|
|
26500
|
+
model_id: "openai/o3-pro",
|
|
26501
|
+
input_cost_per_token: 2e-5,
|
|
26502
|
+
output_cost_per_token: 8e-5,
|
|
26503
|
+
provider: "OpenRouter"
|
|
26504
|
+
},
|
|
26505
|
+
{
|
|
26506
|
+
model_id: "openai/o4-mini",
|
|
26507
|
+
input_cost_per_token: 11e-7,
|
|
26508
|
+
output_cost_per_token: 44e-7,
|
|
26509
|
+
provider: "OpenRouter"
|
|
26510
|
+
},
|
|
26511
|
+
{
|
|
26512
|
+
model_id: "openai/o4-mini-high",
|
|
26513
|
+
input_cost_per_token: 11e-7,
|
|
26514
|
+
output_cost_per_token: 44e-7,
|
|
26515
|
+
provider: "OpenRouter"
|
|
26516
|
+
},
|
|
26517
|
+
{
|
|
26518
|
+
model_id: "opengvlab/internvl3-14b",
|
|
26519
|
+
input_cost_per_token: 2e-7,
|
|
26520
|
+
output_cost_per_token: 4e-7,
|
|
26521
|
+
provider: "OpenRouter"
|
|
26522
|
+
},
|
|
26523
|
+
{
|
|
26524
|
+
model_id: "openrouter/auto",
|
|
26525
|
+
input_cost_per_token: -1,
|
|
26526
|
+
output_cost_per_token: -1,
|
|
26527
|
+
provider: "OpenRouter"
|
|
26528
|
+
},
|
|
26529
|
+
{
|
|
26530
|
+
model_id: "perplexity/r1-1776",
|
|
26531
|
+
input_cost_per_token: 2e-6,
|
|
26532
|
+
output_cost_per_token: 8e-6,
|
|
26533
|
+
provider: "OpenRouter"
|
|
26534
|
+
},
|
|
26535
|
+
{
|
|
26536
|
+
model_id: "perplexity/sonar",
|
|
26537
|
+
input_cost_per_token: 1e-6,
|
|
26538
|
+
output_cost_per_token: 1e-6,
|
|
26539
|
+
provider: "OpenRouter"
|
|
26540
|
+
},
|
|
26541
|
+
{
|
|
26542
|
+
model_id: "perplexity/sonar-deep-research",
|
|
26543
|
+
input_cost_per_token: 2e-6,
|
|
26544
|
+
output_cost_per_token: 8e-6,
|
|
26545
|
+
provider: "OpenRouter"
|
|
26546
|
+
},
|
|
26547
|
+
{
|
|
26548
|
+
model_id: "perplexity/sonar-pro",
|
|
26549
|
+
input_cost_per_token: 3e-6,
|
|
26550
|
+
output_cost_per_token: 15e-6,
|
|
26551
|
+
provider: "OpenRouter"
|
|
26552
|
+
},
|
|
26553
|
+
{
|
|
26554
|
+
model_id: "perplexity/sonar-reasoning",
|
|
26555
|
+
input_cost_per_token: 1e-6,
|
|
26556
|
+
output_cost_per_token: 5e-6,
|
|
26557
|
+
provider: "OpenRouter"
|
|
26558
|
+
},
|
|
26559
|
+
{
|
|
26560
|
+
model_id: "perplexity/sonar-reasoning-pro",
|
|
26561
|
+
input_cost_per_token: 2e-6,
|
|
26562
|
+
output_cost_per_token: 8e-6,
|
|
26563
|
+
provider: "OpenRouter"
|
|
26564
|
+
},
|
|
26565
|
+
{
|
|
26566
|
+
model_id: "pygmalionai/mythalion-13b",
|
|
26567
|
+
input_cost_per_token: 7e-7,
|
|
26568
|
+
output_cost_per_token: 11e-7,
|
|
26569
|
+
provider: "OpenRouter"
|
|
26570
|
+
},
|
|
26571
|
+
{
|
|
26572
|
+
model_id: "qwen/qwen-2-72b-instruct",
|
|
26573
|
+
input_cost_per_token: 9e-7,
|
|
26574
|
+
output_cost_per_token: 9e-7,
|
|
26575
|
+
provider: "OpenRouter"
|
|
26576
|
+
},
|
|
26577
|
+
{
|
|
26578
|
+
model_id: "qwen/qwen-2.5-72b-instruct",
|
|
26579
|
+
input_cost_per_token: 518308e-13,
|
|
26580
|
+
output_cost_per_token: 207424e-12,
|
|
26581
|
+
provider: "OpenRouter"
|
|
26582
|
+
},
|
|
26583
|
+
{
|
|
26584
|
+
model_id: "qwen/qwen-2.5-72b-instruct:free",
|
|
26585
|
+
input_cost_per_token: 0,
|
|
26586
|
+
output_cost_per_token: 0,
|
|
26587
|
+
provider: "OpenRouter"
|
|
26588
|
+
},
|
|
26589
|
+
{
|
|
26590
|
+
model_id: "qwen/qwen-2.5-7b-instruct",
|
|
26591
|
+
input_cost_per_token: 4e-8,
|
|
26592
|
+
output_cost_per_token: 1e-7,
|
|
26593
|
+
provider: "OpenRouter"
|
|
26594
|
+
},
|
|
26595
|
+
{
|
|
26596
|
+
model_id: "qwen/qwen-2.5-coder-32b-instruct",
|
|
26597
|
+
input_cost_per_token: 499797e-13,
|
|
26598
|
+
output_cost_per_token: 200016e-12,
|
|
26599
|
+
provider: "OpenRouter"
|
|
26600
|
+
},
|
|
26601
|
+
{
|
|
26602
|
+
model_id: "qwen/qwen-2.5-coder-32b-instruct:free",
|
|
26603
|
+
input_cost_per_token: 0,
|
|
26604
|
+
output_cost_per_token: 0,
|
|
26605
|
+
provider: "OpenRouter"
|
|
26606
|
+
},
|
|
26607
|
+
{
|
|
26608
|
+
model_id: "qwen/qwen-2.5-vl-7b-instruct",
|
|
26609
|
+
input_cost_per_token: 2e-7,
|
|
26610
|
+
output_cost_per_token: 2e-7,
|
|
26611
|
+
provider: "OpenRouter"
|
|
26612
|
+
},
|
|
26613
|
+
{
|
|
26614
|
+
model_id: "qwen/qwen-max",
|
|
26615
|
+
input_cost_per_token: 16e-7,
|
|
26616
|
+
output_cost_per_token: 64e-7,
|
|
26617
|
+
provider: "OpenRouter"
|
|
26618
|
+
},
|
|
26619
|
+
{
|
|
26620
|
+
model_id: "qwen/qwen-plus",
|
|
26621
|
+
input_cost_per_token: 4e-7,
|
|
26622
|
+
output_cost_per_token: 12e-7,
|
|
26623
|
+
provider: "OpenRouter"
|
|
26624
|
+
},
|
|
26625
|
+
{
|
|
26626
|
+
model_id: "qwen/qwen-turbo",
|
|
26627
|
+
input_cost_per_token: 5e-8,
|
|
26628
|
+
output_cost_per_token: 2e-7,
|
|
26629
|
+
provider: "OpenRouter"
|
|
26630
|
+
},
|
|
26631
|
+
{
|
|
26632
|
+
model_id: "qwen/qwen-vl-max",
|
|
26633
|
+
input_cost_per_token: 8e-7,
|
|
26634
|
+
output_cost_per_token: 32e-7,
|
|
26635
|
+
provider: "OpenRouter"
|
|
26636
|
+
},
|
|
26637
|
+
{
|
|
26638
|
+
model_id: "qwen/qwen-vl-plus",
|
|
26639
|
+
input_cost_per_token: 21e-8,
|
|
26640
|
+
output_cost_per_token: 63e-8,
|
|
26641
|
+
provider: "OpenRouter"
|
|
26642
|
+
},
|
|
26643
|
+
{
|
|
26644
|
+
model_id: "qwen/qwen2.5-vl-32b-instruct",
|
|
26645
|
+
input_cost_per_token: 1999188e-14,
|
|
26646
|
+
output_cost_per_token: 800064e-13,
|
|
26647
|
+
provider: "OpenRouter"
|
|
26648
|
+
},
|
|
26649
|
+
{
|
|
26650
|
+
model_id: "qwen/qwen2.5-vl-32b-instruct:free",
|
|
26651
|
+
input_cost_per_token: 0,
|
|
26652
|
+
output_cost_per_token: 0,
|
|
26653
|
+
provider: "OpenRouter"
|
|
26654
|
+
},
|
|
26655
|
+
{
|
|
26656
|
+
model_id: "qwen/qwen2.5-vl-72b-instruct",
|
|
26657
|
+
input_cost_per_token: 999594e-13,
|
|
26658
|
+
output_cost_per_token: 400032e-12,
|
|
26659
|
+
provider: "OpenRouter"
|
|
26660
|
+
},
|
|
26661
|
+
{
|
|
26662
|
+
model_id: "qwen/qwen2.5-vl-72b-instruct:free",
|
|
26663
|
+
input_cost_per_token: 0,
|
|
26664
|
+
output_cost_per_token: 0,
|
|
26665
|
+
provider: "OpenRouter"
|
|
26666
|
+
},
|
|
26667
|
+
{
|
|
26668
|
+
model_id: "qwen/qwen3-14b",
|
|
26669
|
+
input_cost_per_token: 6e-8,
|
|
26670
|
+
output_cost_per_token: 24e-8,
|
|
26671
|
+
provider: "OpenRouter"
|
|
26672
|
+
},
|
|
26673
|
+
{
|
|
26674
|
+
model_id: "qwen/qwen3-14b:free",
|
|
26675
|
+
input_cost_per_token: 0,
|
|
26676
|
+
output_cost_per_token: 0,
|
|
26677
|
+
provider: "OpenRouter"
|
|
26678
|
+
},
|
|
26679
|
+
{
|
|
26680
|
+
model_id: "qwen/qwen3-235b-a22b",
|
|
26681
|
+
input_cost_per_token: 13e-8,
|
|
26682
|
+
output_cost_per_token: 6e-7,
|
|
26683
|
+
provider: "OpenRouter"
|
|
26684
|
+
},
|
|
26685
|
+
{
|
|
26686
|
+
model_id: "qwen/qwen3-235b-a22b-2507",
|
|
26687
|
+
input_cost_per_token: 77968332e-15,
|
|
26688
|
+
output_cost_per_token: 31202496e-14,
|
|
26689
|
+
provider: "OpenRouter"
|
|
26690
|
+
},
|
|
26691
|
+
{
|
|
26692
|
+
model_id: "qwen/qwen3-235b-a22b-thinking-2507",
|
|
26693
|
+
input_cost_per_token: 77968332e-15,
|
|
26694
|
+
output_cost_per_token: 31202496e-14,
|
|
26695
|
+
provider: "OpenRouter"
|
|
26696
|
+
},
|
|
26697
|
+
{
|
|
26698
|
+
model_id: "qwen/qwen3-235b-a22b:free",
|
|
26699
|
+
input_cost_per_token: 0,
|
|
26700
|
+
output_cost_per_token: 0,
|
|
26701
|
+
provider: "OpenRouter"
|
|
26702
|
+
},
|
|
26703
|
+
{
|
|
26704
|
+
model_id: "qwen/qwen3-30b-a3b",
|
|
26705
|
+
input_cost_per_token: 1999188e-14,
|
|
26706
|
+
output_cost_per_token: 800064e-13,
|
|
26707
|
+
provider: "OpenRouter"
|
|
26708
|
+
},
|
|
26709
|
+
{
|
|
26710
|
+
model_id: "qwen/qwen3-30b-a3b-instruct-2507",
|
|
26711
|
+
input_cost_per_token: 1e-7,
|
|
26712
|
+
output_cost_per_token: 3e-7,
|
|
26713
|
+
provider: "OpenRouter"
|
|
26714
|
+
},
|
|
26715
|
+
{
|
|
26716
|
+
model_id: "qwen/qwen3-30b-a3b:free",
|
|
26717
|
+
input_cost_per_token: 0,
|
|
26718
|
+
output_cost_per_token: 0,
|
|
26719
|
+
provider: "OpenRouter"
|
|
26720
|
+
},
|
|
26721
|
+
{
|
|
26722
|
+
model_id: "qwen/qwen3-32b",
|
|
26723
|
+
input_cost_per_token: 17992692e-15,
|
|
26724
|
+
output_cost_per_token: 7200576e-14,
|
|
26725
|
+
provider: "OpenRouter"
|
|
26726
|
+
},
|
|
26727
|
+
{
|
|
26728
|
+
model_id: "qwen/qwen3-4b:free",
|
|
26729
|
+
input_cost_per_token: 0,
|
|
26730
|
+
output_cost_per_token: 0,
|
|
26731
|
+
provider: "OpenRouter"
|
|
26732
|
+
},
|
|
26733
|
+
{
|
|
26734
|
+
model_id: "qwen/qwen3-8b",
|
|
26735
|
+
input_cost_per_token: 35e-9,
|
|
26736
|
+
output_cost_per_token: 138e-9,
|
|
26737
|
+
provider: "OpenRouter"
|
|
26738
|
+
},
|
|
26739
|
+
{
|
|
26740
|
+
model_id: "qwen/qwen3-8b:free",
|
|
26741
|
+
input_cost_per_token: 0,
|
|
26742
|
+
output_cost_per_token: 0,
|
|
26743
|
+
provider: "OpenRouter"
|
|
26744
|
+
},
|
|
26745
|
+
{
|
|
26746
|
+
model_id: "qwen/qwen3-coder",
|
|
26747
|
+
input_cost_per_token: 2e-7,
|
|
26748
|
+
output_cost_per_token: 8e-7,
|
|
26749
|
+
provider: "OpenRouter"
|
|
26750
|
+
},
|
|
26751
|
+
{
|
|
26752
|
+
model_id: "qwen/qwen3-coder:free",
|
|
26753
|
+
input_cost_per_token: 0,
|
|
26754
|
+
output_cost_per_token: 0,
|
|
26755
|
+
provider: "OpenRouter"
|
|
26756
|
+
},
|
|
26757
|
+
{
|
|
26758
|
+
model_id: "qwen/qwq-32b",
|
|
26759
|
+
input_cost_per_token: 75e-9,
|
|
26760
|
+
output_cost_per_token: 15e-8,
|
|
26761
|
+
provider: "OpenRouter"
|
|
26762
|
+
},
|
|
26763
|
+
{
|
|
26764
|
+
model_id: "qwen/qwq-32b-preview",
|
|
26765
|
+
input_cost_per_token: 2e-7,
|
|
26766
|
+
output_cost_per_token: 2e-7,
|
|
26767
|
+
provider: "OpenRouter"
|
|
26768
|
+
},
|
|
26769
|
+
{
|
|
26770
|
+
model_id: "qwen/qwq-32b:free",
|
|
26771
|
+
input_cost_per_token: 0,
|
|
26772
|
+
output_cost_per_token: 0,
|
|
26773
|
+
provider: "OpenRouter"
|
|
26774
|
+
},
|
|
26775
|
+
{
|
|
26776
|
+
model_id: "raifle/sorcererlm-8x22b",
|
|
26777
|
+
input_cost_per_token: 45e-7,
|
|
26778
|
+
output_cost_per_token: 45e-7,
|
|
26779
|
+
provider: "OpenRouter"
|
|
26780
|
+
},
|
|
26781
|
+
{
|
|
26782
|
+
model_id: "rekaai/reka-flash-3:free",
|
|
26783
|
+
input_cost_per_token: 0,
|
|
26784
|
+
output_cost_per_token: 0,
|
|
26785
|
+
provider: "OpenRouter"
|
|
26786
|
+
},
|
|
26787
|
+
{
|
|
26788
|
+
model_id: "sao10k/l3-euryale-70b",
|
|
26789
|
+
input_cost_per_token: 148e-8,
|
|
26790
|
+
output_cost_per_token: 148e-8,
|
|
26791
|
+
provider: "OpenRouter"
|
|
26792
|
+
},
|
|
26793
|
+
{
|
|
26794
|
+
model_id: "sao10k/l3-lunaris-8b",
|
|
26795
|
+
input_cost_per_token: 2e-8,
|
|
26796
|
+
output_cost_per_token: 5e-8,
|
|
26797
|
+
provider: "OpenRouter"
|
|
26798
|
+
},
|
|
26799
|
+
{
|
|
26800
|
+
model_id: "sao10k/l3.1-euryale-70b",
|
|
26801
|
+
input_cost_per_token: 65e-8,
|
|
26802
|
+
output_cost_per_token: 75e-8,
|
|
26803
|
+
provider: "OpenRouter"
|
|
26804
|
+
},
|
|
26805
|
+
{
|
|
26806
|
+
model_id: "sao10k/l3.3-euryale-70b",
|
|
26807
|
+
input_cost_per_token: 65e-8,
|
|
26808
|
+
output_cost_per_token: 75e-8,
|
|
26809
|
+
provider: "OpenRouter"
|
|
26810
|
+
},
|
|
26811
|
+
{
|
|
26812
|
+
model_id: "sarvamai/sarvam-m:free",
|
|
26813
|
+
input_cost_per_token: 0,
|
|
26814
|
+
output_cost_per_token: 0,
|
|
26815
|
+
provider: "OpenRouter"
|
|
26816
|
+
},
|
|
26817
|
+
{
|
|
26818
|
+
model_id: "scb10x/llama3.1-typhoon2-70b-instruct",
|
|
26819
|
+
input_cost_per_token: 88e-8,
|
|
26820
|
+
output_cost_per_token: 88e-8,
|
|
26821
|
+
provider: "OpenRouter"
|
|
26822
|
+
},
|
|
26823
|
+
{
|
|
26824
|
+
model_id: "shisa-ai/shisa-v2-llama3.3-70b",
|
|
26825
|
+
input_cost_per_token: 1999188e-14,
|
|
26826
|
+
output_cost_per_token: 800064e-13,
|
|
26827
|
+
provider: "OpenRouter"
|
|
26828
|
+
},
|
|
26829
|
+
{
|
|
26830
|
+
model_id: "shisa-ai/shisa-v2-llama3.3-70b:free",
|
|
26831
|
+
input_cost_per_token: 0,
|
|
26832
|
+
output_cost_per_token: 0,
|
|
26833
|
+
provider: "OpenRouter"
|
|
26834
|
+
},
|
|
26835
|
+
{
|
|
26836
|
+
model_id: "sophosympatheia/midnight-rose-70b",
|
|
26837
|
+
input_cost_per_token: 8e-7,
|
|
26838
|
+
output_cost_per_token: 8e-7,
|
|
26839
|
+
provider: "OpenRouter"
|
|
26840
|
+
},
|
|
26841
|
+
{
|
|
26842
|
+
model_id: "switchpoint/router",
|
|
26843
|
+
input_cost_per_token: 85e-8,
|
|
26844
|
+
output_cost_per_token: 34e-7,
|
|
26845
|
+
provider: "OpenRouter"
|
|
26846
|
+
},
|
|
26847
|
+
{
|
|
26848
|
+
model_id: "tencent/hunyuan-a13b-instruct",
|
|
26849
|
+
input_cost_per_token: 3e-8,
|
|
26850
|
+
output_cost_per_token: 3e-8,
|
|
26851
|
+
provider: "OpenRouter"
|
|
26852
|
+
},
|
|
26853
|
+
{
|
|
26854
|
+
model_id: "tencent/hunyuan-a13b-instruct:free",
|
|
26855
|
+
input_cost_per_token: 0,
|
|
26856
|
+
output_cost_per_token: 0,
|
|
26857
|
+
provider: "OpenRouter"
|
|
26858
|
+
},
|
|
26859
|
+
{
|
|
26860
|
+
model_id: "thedrummer/anubis-70b-v1.1",
|
|
26861
|
+
input_cost_per_token: 4e-7,
|
|
26862
|
+
output_cost_per_token: 7e-7,
|
|
26863
|
+
provider: "OpenRouter"
|
|
26864
|
+
},
|
|
26865
|
+
{
|
|
26866
|
+
model_id: "thedrummer/anubis-pro-105b-v1",
|
|
26867
|
+
input_cost_per_token: 5e-7,
|
|
26868
|
+
output_cost_per_token: 1e-6,
|
|
26869
|
+
provider: "OpenRouter"
|
|
26870
|
+
},
|
|
26871
|
+
{
|
|
26872
|
+
model_id: "thedrummer/rocinante-12b",
|
|
26873
|
+
input_cost_per_token: 17e-8,
|
|
26874
|
+
output_cost_per_token: 43e-8,
|
|
26875
|
+
provider: "OpenRouter"
|
|
26876
|
+
},
|
|
26877
|
+
{
|
|
26878
|
+
model_id: "thedrummer/skyfall-36b-v2",
|
|
26879
|
+
input_cost_per_token: 481286e-13,
|
|
26880
|
+
output_cost_per_token: 192608e-12,
|
|
26881
|
+
provider: "OpenRouter"
|
|
26882
|
+
},
|
|
26883
|
+
{
|
|
26884
|
+
model_id: "thedrummer/unslopnemo-12b",
|
|
26885
|
+
input_cost_per_token: 4e-7,
|
|
26886
|
+
output_cost_per_token: 4e-7,
|
|
26887
|
+
provider: "OpenRouter"
|
|
26888
|
+
},
|
|
26889
|
+
{
|
|
26890
|
+
model_id: "thudm/glm-4-32b",
|
|
26891
|
+
input_cost_per_token: 55e-8,
|
|
26892
|
+
output_cost_per_token: 166e-8,
|
|
26893
|
+
provider: "OpenRouter"
|
|
26894
|
+
},
|
|
26895
|
+
{
|
|
26896
|
+
model_id: "thudm/glm-4.1v-9b-thinking",
|
|
26897
|
+
input_cost_per_token: 35e-9,
|
|
26898
|
+
output_cost_per_token: 138e-9,
|
|
26899
|
+
provider: "OpenRouter"
|
|
26900
|
+
},
|
|
26901
|
+
{
|
|
26902
|
+
model_id: "thudm/glm-z1-32b",
|
|
26903
|
+
input_cost_per_token: 1999188e-14,
|
|
26904
|
+
output_cost_per_token: 800064e-13,
|
|
26905
|
+
provider: "OpenRouter"
|
|
26906
|
+
},
|
|
26907
|
+
{
|
|
26908
|
+
model_id: "tngtech/deepseek-r1t-chimera",
|
|
26909
|
+
input_cost_per_token: 1999188e-13,
|
|
26910
|
+
output_cost_per_token: 800064e-12,
|
|
26911
|
+
provider: "OpenRouter"
|
|
26912
|
+
},
|
|
26913
|
+
{
|
|
26914
|
+
model_id: "tngtech/deepseek-r1t-chimera:free",
|
|
26915
|
+
input_cost_per_token: 0,
|
|
26916
|
+
output_cost_per_token: 0,
|
|
26917
|
+
provider: "OpenRouter"
|
|
26918
|
+
},
|
|
26919
|
+
{
|
|
26920
|
+
model_id: "tngtech/deepseek-r1t2-chimera:free",
|
|
26921
|
+
input_cost_per_token: 0,
|
|
26922
|
+
output_cost_per_token: 0,
|
|
26923
|
+
provider: "OpenRouter"
|
|
26924
|
+
},
|
|
26925
|
+
{
|
|
26926
|
+
model_id: "undi95/remm-slerp-l2-13b",
|
|
26927
|
+
input_cost_per_token: 45e-8,
|
|
26928
|
+
output_cost_per_token: 65e-8,
|
|
26929
|
+
provider: "OpenRouter"
|
|
26930
|
+
},
|
|
26931
|
+
{
|
|
26932
|
+
model_id: "x-ai/grok-2-1212",
|
|
26933
|
+
input_cost_per_token: 2e-6,
|
|
26934
|
+
output_cost_per_token: 1e-5,
|
|
26935
|
+
provider: "OpenRouter"
|
|
26936
|
+
},
|
|
26937
|
+
{
|
|
26938
|
+
model_id: "x-ai/grok-2-vision-1212",
|
|
26939
|
+
input_cost_per_token: 2e-6,
|
|
26940
|
+
output_cost_per_token: 1e-5,
|
|
26941
|
+
provider: "OpenRouter"
|
|
26942
|
+
},
|
|
26943
|
+
{
|
|
26944
|
+
model_id: "x-ai/grok-3",
|
|
26945
|
+
input_cost_per_token: 3e-6,
|
|
26946
|
+
output_cost_per_token: 15e-6,
|
|
26947
|
+
provider: "OpenRouter"
|
|
26948
|
+
},
|
|
26949
|
+
{
|
|
26950
|
+
model_id: "x-ai/grok-3-beta",
|
|
26951
|
+
input_cost_per_token: 3e-6,
|
|
26952
|
+
output_cost_per_token: 15e-6,
|
|
26953
|
+
provider: "OpenRouter"
|
|
26954
|
+
},
|
|
26955
|
+
{
|
|
26956
|
+
model_id: "x-ai/grok-3-mini",
|
|
26957
|
+
input_cost_per_token: 3e-7,
|
|
26958
|
+
output_cost_per_token: 5e-7,
|
|
26959
|
+
provider: "OpenRouter"
|
|
26960
|
+
},
|
|
26961
|
+
{
|
|
26962
|
+
model_id: "x-ai/grok-3-mini-beta",
|
|
26963
|
+
input_cost_per_token: 3e-7,
|
|
26964
|
+
output_cost_per_token: 5e-7,
|
|
26965
|
+
provider: "OpenRouter"
|
|
26966
|
+
},
|
|
26967
|
+
{
|
|
26968
|
+
model_id: "x-ai/grok-4",
|
|
26969
|
+
input_cost_per_token: 3e-6,
|
|
26970
|
+
output_cost_per_token: 15e-6,
|
|
26971
|
+
provider: "OpenRouter"
|
|
26972
|
+
},
|
|
26973
|
+
{
|
|
26974
|
+
model_id: "x-ai/grok-vision-beta",
|
|
26975
|
+
input_cost_per_token: 5e-6,
|
|
26976
|
+
output_cost_per_token: 15e-6,
|
|
26977
|
+
provider: "OpenRouter"
|
|
26978
|
+
},
|
|
26979
|
+
{
|
|
26980
|
+
model_id: "z-ai/glm-4-32b",
|
|
26981
|
+
input_cost_per_token: 1e-7,
|
|
26982
|
+
output_cost_per_token: 1e-7,
|
|
26983
|
+
provider: "OpenRouter"
|
|
26984
|
+
},
|
|
26985
|
+
{
|
|
26986
|
+
model_id: "z-ai/glm-4.5",
|
|
26987
|
+
input_cost_per_token: 1999188e-13,
|
|
26988
|
+
output_cost_per_token: 800064e-12,
|
|
26989
|
+
provider: "OpenRouter"
|
|
26990
|
+
},
|
|
26991
|
+
{
|
|
26992
|
+
model_id: "z-ai/glm-4.5-air",
|
|
26993
|
+
input_cost_per_token: 2e-7,
|
|
26994
|
+
output_cost_per_token: 11e-7,
|
|
26995
|
+
provider: "OpenRouter"
|
|
26996
|
+
},
|
|
26997
|
+
{
|
|
26998
|
+
model_id: "z-ai/glm-4.5-air:free",
|
|
26999
|
+
input_cost_per_token: 0,
|
|
27000
|
+
output_cost_per_token: 0,
|
|
27001
|
+
provider: "OpenRouter"
|
|
27002
|
+
},
|
|
27003
|
+
{
|
|
27004
|
+
model_id: "z-ai/glm-4.5v",
|
|
27005
|
+
input_cost_per_token: 5e-7,
|
|
27006
|
+
output_cost_per_token: 18e-7,
|
|
27007
|
+
provider: "OpenRouter"
|
|
27008
|
+
}
|
|
27009
|
+
];
|
|
27010
|
+
var OpenAIImageModels = [
|
|
27011
|
+
{
|
|
27012
|
+
model_id: "gpt-image-1",
|
|
27013
|
+
image_input_cost_per_token: 10 / 1e6,
|
|
27014
|
+
image_output_cost_per_token: 40 / 1e6,
|
|
27015
|
+
text_input_cost_per_token: 5 / 1e6,
|
|
27016
|
+
provider: "OpenAI"
|
|
27017
|
+
}
|
|
27018
|
+
];
|
|
27019
|
+
var ModelsResource = class extends BaseResource {
|
|
27020
|
+
constructor(http) {
|
|
27021
|
+
super(http);
|
|
27022
|
+
}
|
|
27023
|
+
/**
|
|
27024
|
+
* Get supported models as a flat array of model names
|
|
27025
|
+
*/
|
|
27026
|
+
async listSupportedChatModels() {
|
|
27027
|
+
const allModels = [
|
|
27028
|
+
...OpenAIModels,
|
|
27029
|
+
...AnthropicModels,
|
|
27030
|
+
...GeminiModels,
|
|
27031
|
+
...OpenRouterModels
|
|
27032
|
+
];
|
|
27033
|
+
return allModels;
|
|
27034
|
+
}
|
|
27035
|
+
async listSupportedImageModels() {
|
|
27036
|
+
return OpenAIImageModels;
|
|
24672
27037
|
}
|
|
24673
27038
|
};
|
|
24674
27039
|
var PaymentsResource = class extends BaseResource {
|
|
@@ -24991,11 +27356,16 @@ function useEchoClient({ apiUrl }) {
|
|
|
24991
27356
|
return Promise.resolve(((_a15 = auth.user) == null ? void 0 : _a15.access_token) || null);
|
|
24992
27357
|
},
|
|
24993
27358
|
refreshTokenFn: async () => {
|
|
24994
|
-
await auth.signinSilent();
|
|
27359
|
+
const user = await auth.signinSilent();
|
|
27360
|
+
if (!user) {
|
|
27361
|
+
throw new Error("Silent renew did not yield a new access token");
|
|
27362
|
+
}
|
|
27363
|
+
return user.access_token;
|
|
24995
27364
|
},
|
|
24996
|
-
onRefreshErrorFn: (error2) => {
|
|
27365
|
+
onRefreshErrorFn: async (error2) => {
|
|
24997
27366
|
console.error("Token refresh failed:", error2);
|
|
24998
|
-
auth.
|
|
27367
|
+
await auth.removeUser();
|
|
27368
|
+
await auth.clearStaleState();
|
|
24999
27369
|
}
|
|
25000
27370
|
});
|
|
25001
27371
|
const newClient = new EchoClient({
|
|
@@ -25061,7 +27431,7 @@ function EchoProviderInternal({ config: config2, children }) {
|
|
|
25061
27431
|
const auth = useAuth();
|
|
25062
27432
|
const user = auth.user;
|
|
25063
27433
|
const echoUser = user ? parseEchoUser(user) : null;
|
|
25064
|
-
const apiUrl = config2.
|
|
27434
|
+
const apiUrl = config2.baseEchoUrl || "https://echo.merit.systems";
|
|
25065
27435
|
const token = ((_a10 = auth.user) == null ? void 0 : _a10.access_token) || null;
|
|
25066
27436
|
const echoClient = useEchoClient({ apiUrl });
|
|
25067
27437
|
const {
|
|
@@ -25144,7 +27514,7 @@ function EchoProvider({ config: config2, children }) {
|
|
|
25144
27514
|
if (!isClient) {
|
|
25145
27515
|
return null;
|
|
25146
27516
|
}
|
|
25147
|
-
const apiUrl = config2.
|
|
27517
|
+
const apiUrl = config2.baseEchoUrl || "https://echo.merit.systems";
|
|
25148
27518
|
const oidcConfig = {
|
|
25149
27519
|
userManager: typeof window !== "undefined" && window.__echoUserManager || new UserManager({
|
|
25150
27520
|
authority: apiUrl,
|
|
@@ -25152,6 +27522,7 @@ function EchoProvider({ config: config2, children }) {
|
|
|
25152
27522
|
redirect_uri: config2.redirectUri || window.location.origin,
|
|
25153
27523
|
scope: config2.scope || "llm:invoke offline_access",
|
|
25154
27524
|
silentRequestTimeoutInSeconds: 10,
|
|
27525
|
+
automaticSilentRenew: true,
|
|
25155
27526
|
// Silent renewal configuration
|
|
25156
27527
|
silent_redirect_uri: config2.redirectUri || window.location.origin,
|
|
25157
27528
|
includeIdTokenInSilentRenew: false,
|
|
@@ -26655,13 +29026,7 @@ function EchoTokenPurchase({
|
|
|
26655
29026
|
className = "",
|
|
26656
29027
|
children
|
|
26657
29028
|
}) {
|
|
26658
|
-
const {
|
|
26659
|
-
createPaymentLink,
|
|
26660
|
-
user,
|
|
26661
|
-
balance,
|
|
26662
|
-
freeTierBalance,
|
|
26663
|
-
refreshBalance
|
|
26664
|
-
} = useEcho();
|
|
29029
|
+
const { createPaymentLink, user, balance, freeTierBalance, refreshBalance } = useEcho();
|
|
26665
29030
|
const [isProcessing, setIsProcessing] = useState(false);
|
|
26666
29031
|
const [purchaseError, setPurchaseError] = useState(null);
|
|
26667
29032
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
@@ -27291,6 +29656,236 @@ function useEchoChatConfig() {
|
|
|
27291
29656
|
}
|
|
27292
29657
|
return fn;
|
|
27293
29658
|
}
|
|
29659
|
+
var createIdGenerator = ({
|
|
29660
|
+
prefix,
|
|
29661
|
+
size = 16,
|
|
29662
|
+
alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
29663
|
+
separator = "-"
|
|
29664
|
+
} = {}) => {
|
|
29665
|
+
const generator = () => {
|
|
29666
|
+
const alphabetLength = alphabet.length;
|
|
29667
|
+
const chars = new Array(size);
|
|
29668
|
+
for (let i = 0; i < size; i++) {
|
|
29669
|
+
chars[i] = alphabet[Math.random() * alphabetLength | 0];
|
|
29670
|
+
}
|
|
29671
|
+
return chars.join("");
|
|
29672
|
+
};
|
|
29673
|
+
if (prefix == null) {
|
|
29674
|
+
return generator;
|
|
29675
|
+
}
|
|
29676
|
+
if (alphabet.includes(separator)) {
|
|
29677
|
+
throw new InvalidArgumentError({
|
|
29678
|
+
argument: "separator",
|
|
29679
|
+
message: `The separator "${separator}" must not be part of the alphabet "${alphabet}".`
|
|
29680
|
+
});
|
|
29681
|
+
}
|
|
29682
|
+
return () => `${prefix}${separator}${generator()}`;
|
|
29683
|
+
};
|
|
29684
|
+
var generateId = createIdGenerator();
|
|
29685
|
+
var suspectProtoRx = /"__proto__"\s*:/;
|
|
29686
|
+
var suspectConstructorRx = /"constructor"\s*:/;
|
|
29687
|
+
function _parse(text2) {
|
|
29688
|
+
const obj = JSON.parse(text2);
|
|
29689
|
+
if (obj === null || typeof obj !== "object") {
|
|
29690
|
+
return obj;
|
|
29691
|
+
}
|
|
29692
|
+
if (suspectProtoRx.test(text2) === false && suspectConstructorRx.test(text2) === false) {
|
|
29693
|
+
return obj;
|
|
29694
|
+
}
|
|
29695
|
+
return filter(obj);
|
|
29696
|
+
}
|
|
29697
|
+
function filter(obj) {
|
|
29698
|
+
let next = [obj];
|
|
29699
|
+
while (next.length) {
|
|
29700
|
+
const nodes = next;
|
|
29701
|
+
next = [];
|
|
29702
|
+
for (const node of nodes) {
|
|
29703
|
+
if (Object.prototype.hasOwnProperty.call(node, "__proto__")) {
|
|
29704
|
+
throw new SyntaxError("Object contains forbidden prototype property");
|
|
29705
|
+
}
|
|
29706
|
+
if (Object.prototype.hasOwnProperty.call(node, "constructor") && Object.prototype.hasOwnProperty.call(node.constructor, "prototype")) {
|
|
29707
|
+
throw new SyntaxError("Object contains forbidden prototype property");
|
|
29708
|
+
}
|
|
29709
|
+
for (const key in node) {
|
|
29710
|
+
const value = node[key];
|
|
29711
|
+
if (value && typeof value === "object") {
|
|
29712
|
+
next.push(value);
|
|
29713
|
+
}
|
|
29714
|
+
}
|
|
29715
|
+
}
|
|
29716
|
+
}
|
|
29717
|
+
return obj;
|
|
29718
|
+
}
|
|
29719
|
+
function secureJsonParse(text2) {
|
|
29720
|
+
const { stackTraceLimit } = Error;
|
|
29721
|
+
Error.stackTraceLimit = 0;
|
|
29722
|
+
try {
|
|
29723
|
+
return _parse(text2);
|
|
29724
|
+
} finally {
|
|
29725
|
+
Error.stackTraceLimit = stackTraceLimit;
|
|
29726
|
+
}
|
|
29727
|
+
}
|
|
29728
|
+
var validatorSymbol = Symbol.for("vercel.ai.validator");
|
|
29729
|
+
function validator(validate) {
|
|
29730
|
+
return { [validatorSymbol]: true, validate };
|
|
29731
|
+
}
|
|
29732
|
+
function isValidator(value) {
|
|
29733
|
+
return typeof value === "object" && value !== null && validatorSymbol in value && value[validatorSymbol] === true && "validate" in value;
|
|
29734
|
+
}
|
|
29735
|
+
function asValidator(value) {
|
|
29736
|
+
return isValidator(value) ? value : standardSchemaValidator(value);
|
|
29737
|
+
}
|
|
29738
|
+
function standardSchemaValidator(standardSchema) {
|
|
29739
|
+
return validator(async (value) => {
|
|
29740
|
+
const result = await standardSchema["~standard"].validate(value);
|
|
29741
|
+
return result.issues == null ? { success: true, value: result.value } : {
|
|
29742
|
+
success: false,
|
|
29743
|
+
error: new TypeValidationError({
|
|
29744
|
+
value,
|
|
29745
|
+
cause: result.issues
|
|
29746
|
+
})
|
|
29747
|
+
};
|
|
29748
|
+
});
|
|
29749
|
+
}
|
|
29750
|
+
async function validateTypes({
|
|
29751
|
+
value,
|
|
29752
|
+
schema
|
|
29753
|
+
}) {
|
|
29754
|
+
const result = await safeValidateTypes({ value, schema });
|
|
29755
|
+
if (!result.success) {
|
|
29756
|
+
throw TypeValidationError.wrap({ value, cause: result.error });
|
|
29757
|
+
}
|
|
29758
|
+
return result.value;
|
|
29759
|
+
}
|
|
29760
|
+
async function safeValidateTypes({
|
|
29761
|
+
value,
|
|
29762
|
+
schema
|
|
29763
|
+
}) {
|
|
29764
|
+
const validator2 = asValidator(schema);
|
|
29765
|
+
try {
|
|
29766
|
+
if (validator2.validate == null) {
|
|
29767
|
+
return { success: true, value, rawValue: value };
|
|
29768
|
+
}
|
|
29769
|
+
const result = await validator2.validate(value);
|
|
29770
|
+
if (result.success) {
|
|
29771
|
+
return { success: true, value: result.value, rawValue: value };
|
|
29772
|
+
}
|
|
29773
|
+
return {
|
|
29774
|
+
success: false,
|
|
29775
|
+
error: TypeValidationError.wrap({ value, cause: result.error }),
|
|
29776
|
+
rawValue: value
|
|
29777
|
+
};
|
|
29778
|
+
} catch (error2) {
|
|
29779
|
+
return {
|
|
29780
|
+
success: false,
|
|
29781
|
+
error: TypeValidationError.wrap({ value, cause: error2 }),
|
|
29782
|
+
rawValue: value
|
|
29783
|
+
};
|
|
29784
|
+
}
|
|
29785
|
+
}
|
|
29786
|
+
async function safeParseJSON({
|
|
29787
|
+
text: text2,
|
|
29788
|
+
schema
|
|
29789
|
+
}) {
|
|
29790
|
+
try {
|
|
29791
|
+
const value = secureJsonParse(text2);
|
|
29792
|
+
if (schema == null) {
|
|
29793
|
+
return { success: true, value, rawValue: value };
|
|
29794
|
+
}
|
|
29795
|
+
return await safeValidateTypes({ value, schema });
|
|
29796
|
+
} catch (error2) {
|
|
29797
|
+
return {
|
|
29798
|
+
success: false,
|
|
29799
|
+
error: JSONParseError.isInstance(error2) ? error2 : new JSONParseError({ text: text2, cause: error2 }),
|
|
29800
|
+
rawValue: void 0
|
|
29801
|
+
};
|
|
29802
|
+
}
|
|
29803
|
+
}
|
|
29804
|
+
function parseJsonEventStream({
|
|
29805
|
+
stream,
|
|
29806
|
+
schema
|
|
29807
|
+
}) {
|
|
29808
|
+
return stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(
|
|
29809
|
+
new TransformStream({
|
|
29810
|
+
async transform({ data }, controller) {
|
|
29811
|
+
if (data === "[DONE]") {
|
|
29812
|
+
return;
|
|
29813
|
+
}
|
|
29814
|
+
controller.enqueue(await safeParseJSON({ text: data, schema }));
|
|
29815
|
+
}
|
|
29816
|
+
})
|
|
29817
|
+
);
|
|
29818
|
+
}
|
|
29819
|
+
async function resolve(value) {
|
|
29820
|
+
if (typeof value === "function") {
|
|
29821
|
+
value = value();
|
|
29822
|
+
}
|
|
29823
|
+
return Promise.resolve(value);
|
|
29824
|
+
}
|
|
29825
|
+
function zod3Schema(zodSchema2, options) {
|
|
29826
|
+
var _a10;
|
|
29827
|
+
const useReferences = (_a10 = void 0) != null ? _a10 : false;
|
|
29828
|
+
return jsonSchema(
|
|
29829
|
+
zodToJsonSchema(zodSchema2, {
|
|
29830
|
+
$refStrategy: useReferences ? "root" : "none",
|
|
29831
|
+
target: "jsonSchema7"
|
|
29832
|
+
// note: openai mode breaks various gemini conversions
|
|
29833
|
+
}),
|
|
29834
|
+
{
|
|
29835
|
+
validate: async (value) => {
|
|
29836
|
+
const result = await zodSchema2.safeParseAsync(value);
|
|
29837
|
+
return result.success ? { success: true, value: result.data } : { success: false, error: result.error };
|
|
29838
|
+
}
|
|
29839
|
+
}
|
|
29840
|
+
);
|
|
29841
|
+
}
|
|
29842
|
+
function zod4Schema(zodSchema2, options) {
|
|
29843
|
+
var _a10;
|
|
29844
|
+
const useReferences = (_a10 = void 0) != null ? _a10 : false;
|
|
29845
|
+
const z4JSONSchema = toJSONSchema(zodSchema2, {
|
|
29846
|
+
target: "draft-7",
|
|
29847
|
+
io: "output",
|
|
29848
|
+
reused: useReferences ? "ref" : "inline"
|
|
29849
|
+
});
|
|
29850
|
+
return jsonSchema(z4JSONSchema, {
|
|
29851
|
+
validate: async (value) => {
|
|
29852
|
+
const result = await safeParseAsync(zodSchema2, value);
|
|
29853
|
+
return result.success ? { success: true, value: result.data } : { success: false, error: result.error };
|
|
29854
|
+
}
|
|
29855
|
+
});
|
|
29856
|
+
}
|
|
29857
|
+
function isZod4Schema(zodSchema2) {
|
|
29858
|
+
return "_zod" in zodSchema2;
|
|
29859
|
+
}
|
|
29860
|
+
function zodSchema(zodSchema2, options) {
|
|
29861
|
+
if (isZod4Schema(zodSchema2)) {
|
|
29862
|
+
return zod4Schema(zodSchema2);
|
|
29863
|
+
} else {
|
|
29864
|
+
return zod3Schema(zodSchema2);
|
|
29865
|
+
}
|
|
29866
|
+
}
|
|
29867
|
+
var schemaSymbol = Symbol.for("vercel.ai.schema");
|
|
29868
|
+
function jsonSchema(jsonSchema2, {
|
|
29869
|
+
validate
|
|
29870
|
+
} = {}) {
|
|
29871
|
+
return {
|
|
29872
|
+
[schemaSymbol]: true,
|
|
29873
|
+
_type: void 0,
|
|
29874
|
+
// should never be used directly
|
|
29875
|
+
[validatorSymbol]: true,
|
|
29876
|
+
jsonSchema: jsonSchema2,
|
|
29877
|
+
validate
|
|
29878
|
+
};
|
|
29879
|
+
}
|
|
29880
|
+
function isSchema(value) {
|
|
29881
|
+
return typeof value === "object" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && "jsonSchema" in value && "validate" in value;
|
|
29882
|
+
}
|
|
29883
|
+
function asSchema(schema) {
|
|
29884
|
+
return schema == null ? jsonSchema({
|
|
29885
|
+
properties: {},
|
|
29886
|
+
additionalProperties: false
|
|
29887
|
+
}) : isSchema(schema) ? schema : zodSchema(schema);
|
|
29888
|
+
}
|
|
27294
29889
|
var __defProp$1 = Object.defineProperty;
|
|
27295
29890
|
var __export$1 = (target, all) => {
|
|
27296
29891
|
for (var name17 in all)
|
|
@@ -29694,7 +32289,7 @@ function createToolModelOutput({
|
|
|
29694
32289
|
function toJSONValue(value) {
|
|
29695
32290
|
return value === void 0 ? null : value;
|
|
29696
32291
|
}
|
|
29697
|
-
createIdGenerator({
|
|
32292
|
+
createIdGenerator$1({
|
|
29698
32293
|
prefix: "aitxt",
|
|
29699
32294
|
size: 24
|
|
29700
32295
|
});
|
|
@@ -30173,11 +32768,11 @@ async function parsePartialJson(jsonText) {
|
|
|
30173
32768
|
if (jsonText === void 0) {
|
|
30174
32769
|
return { value: void 0, state: "undefined-input" };
|
|
30175
32770
|
}
|
|
30176
|
-
let result = await safeParseJSON({ text: jsonText });
|
|
32771
|
+
let result = await safeParseJSON$1({ text: jsonText });
|
|
30177
32772
|
if (result.success) {
|
|
30178
32773
|
return { value: result.value, state: "successful-parse" };
|
|
30179
32774
|
}
|
|
30180
|
-
result = await safeParseJSON({ text: fixJson(jsonText) });
|
|
32775
|
+
result = await safeParseJSON$1({ text: fixJson(jsonText) });
|
|
30181
32776
|
if (result.success) {
|
|
30182
32777
|
return { value: result.value, state: "repaired-parse" };
|
|
30183
32778
|
}
|
|
@@ -30189,12 +32784,12 @@ function isToolUIPart(part) {
|
|
|
30189
32784
|
function getToolName(part) {
|
|
30190
32785
|
return part.type.split("-").slice(1).join("-");
|
|
30191
32786
|
}
|
|
30192
|
-
createIdGenerator({
|
|
32787
|
+
createIdGenerator$1({
|
|
30193
32788
|
prefix: "aitxt",
|
|
30194
32789
|
size: 24
|
|
30195
32790
|
});
|
|
30196
|
-
createIdGenerator({ prefix: "aiobj", size: 24 });
|
|
30197
|
-
createIdGenerator({ prefix: "aiobj", size: 24 });
|
|
32791
|
+
createIdGenerator$1({ prefix: "aiobj", size: 24 });
|
|
32792
|
+
createIdGenerator$1({ prefix: "aiobj", size: 24 });
|
|
30198
32793
|
var output_exports = {};
|
|
30199
32794
|
__export(output_exports, {
|
|
30200
32795
|
object: () => object,
|
|
@@ -30213,7 +32808,7 @@ var text = () => ({
|
|
|
30213
32808
|
var object = ({
|
|
30214
32809
|
schema: inputSchema
|
|
30215
32810
|
}) => {
|
|
30216
|
-
const schema = asSchema(inputSchema);
|
|
32811
|
+
const schema = asSchema$1(inputSchema);
|
|
30217
32812
|
return {
|
|
30218
32813
|
type: "object",
|
|
30219
32814
|
responseFormat: {
|
|
@@ -30239,7 +32834,7 @@ var object = ({
|
|
|
30239
32834
|
}
|
|
30240
32835
|
},
|
|
30241
32836
|
async parseOutput({ text: text2 }, context) {
|
|
30242
|
-
const parseResult = await safeParseJSON({ text: text2 });
|
|
32837
|
+
const parseResult = await safeParseJSON$1({ text: text2 });
|
|
30243
32838
|
if (!parseResult.success) {
|
|
30244
32839
|
throw new NoObjectGeneratedError2({
|
|
30245
32840
|
message: "No object generated: could not parse the response.",
|
|
@@ -30250,7 +32845,7 @@ var object = ({
|
|
|
30250
32845
|
finishReason: context.finishReason
|
|
30251
32846
|
});
|
|
30252
32847
|
}
|
|
30253
|
-
const validationResult = await safeValidateTypes({
|
|
32848
|
+
const validationResult = await safeValidateTypes$1({
|
|
30254
32849
|
value: parseResult.value,
|
|
30255
32850
|
schema
|
|
30256
32851
|
});
|