@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/index.js CHANGED
@@ -4878,7 +4878,7 @@ function prettifyError(error2) {
4878
4878
  }
4879
4879
  return lines.join("\n");
4880
4880
  }
4881
- const _parse$1 = (_Err) => (schema, value, _ctx, _params) => {
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$1($ZodRealError);
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$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
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$1,
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$1,
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$1(ZodRealError);
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
- throw new UnsupportedFunctionalityError({
19240
- functionality: "PDF file parts with URLs"
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, _o, _p, _q;
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
- object$2({
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: (_k = (_j = part.action) == null ? void 0 : _j.query) != null ? _k : "",
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: (_m = response.incomplete_details) == null ? void 0 : _m.reason,
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: (_o = (_n = response.usage.output_tokens_details) == null ? void 0 : _n.reasoning_tokens) != null ? _o : void 0,
19945
- cachedInputTokens: (_q = (_p = response.usage.input_tokens_details) == null ? void 0 : _p.cached_tokens) != null ? _q : void 0
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, _q, _r, _s;
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: (_c = (_b = value.item.action) == null ? void 0 : _b.query) != null ? _c : "",
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: (_e = value.item.encrypted_content) != null ? _e : null
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
- (_f = activeReasoning[value.item_id]) == null ? void 0 : _f.summaryParts.push(
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: (_h = (_g = activeReasoning[value.item_id]) == null ? void 0 : _g.encryptedContent) != null ? _h : null
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: (_i = value.response.incomplete_details) == null ? void 0 : _i.reason,
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 = (_k = (_j = value.response.usage.output_tokens_details) == null ? void 0 : _j.reasoning_tokens) != null ? _k : void 0;
20253
- usage.cachedInputTokens = (_m = (_l = value.response.usage.input_tokens_details) == null ? void 0 : _l.cached_tokens) != null ? _m : void 0;
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: (_p = (_o = (_n = self.config).generateId) == null ? void 0 : _o.call(_n)) != null ? _p : generateId(),
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: (_s = (_r = (_q = self.config).generateId) == null ? void 0 : _r.call(_q)) != null ? _s : generateId(),
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
- object$2({
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 ModelsResource = class extends BaseResource {
24638
- constructor(http) {
24639
- super(http);
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
- * Get supported models with pricing, limits, and capabilities
24643
- */
24644
- async getSupportedModels() {
24645
- return this.handleRequest(
24646
- () => this.http.get("/api/v1/supported-models"),
24647
- "fetching supported models",
24648
- "/api/v1/supported-models"
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
- * Get supported models as a flat array
24653
- */
24654
- async listSupportedModels() {
24655
- try {
24656
- const response = await this.getSupportedModels();
24657
- return response.models;
24658
- } catch (error2) {
24659
- throw error2;
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
- * Get supported models grouped by provider
24664
- */
24665
- async getSupportedModelsByProvider() {
24666
- try {
24667
- const response = await this.getSupportedModels();
24668
- return response.models_by_provider;
24669
- } catch (error2) {
24670
- throw error2;
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.signoutSilent();
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.apiUrl || "https://echo.merit.systems";
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.apiUrl || "https://echo.merit.systems";
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
  });