@exulu/frontend 1.6.0 → 1.8.0

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.
Files changed (113) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +138 -139
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +2 -2
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  7. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  8. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +2 -2
  9. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  11. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  12. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  14. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +3 -3
  15. package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
  16. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  17. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  18. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  19. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  20. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  21. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  23. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  26. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  29. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  31. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  32. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  35. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  38. package/dist/.next/server/app/_not-found.html +1 -1
  39. package/dist/.next/server/app/_not-found.rsc +1 -1
  40. package/dist/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
  41. package/dist/.next/server/app-paths-manifest.json +7 -7
  42. package/dist/.next/server/chunks/1051.js +2 -2
  43. package/dist/.next/server/chunks/2270.js +6 -0
  44. package/dist/.next/server/chunks/2948.js +1 -1
  45. package/dist/.next/server/chunks/3434.js +1 -1
  46. package/dist/.next/server/chunks/3575.js +1 -1
  47. package/dist/.next/server/chunks/5485.js +1 -0
  48. package/dist/.next/server/chunks/7471.js +1 -1
  49. package/dist/.next/server/chunks/7958.js +1 -1
  50. package/dist/.next/server/chunks/8050.js +1 -1
  51. package/dist/.next/server/chunks/8286.js +1 -1
  52. package/dist/.next/server/middleware-manifest.json +5 -5
  53. package/dist/.next/server/pages/404.html +1 -1
  54. package/dist/.next/server/pages/500.html +1 -1
  55. package/dist/.next/server/server-reference-manifest.json +1 -1
  56. package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js +2 -0
  57. package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js.map +1 -0
  58. package/dist/.next/static/chunks/1957-39a01a3915f246ab.js +2 -0
  59. package/dist/.next/static/chunks/1957-39a01a3915f246ab.js.map +1 -0
  60. package/dist/.next/static/chunks/{3750-90a213a3c7cceb29.js → 3750-f45c59ef1cc79417.js} +2 -2
  61. package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js.map +1 -0
  62. package/dist/.next/static/chunks/{7856-9fa733bdd6429ba8.js → 6066-65606593516b2a3a.js} +18 -18
  63. package/dist/.next/static/chunks/6066-65606593516b2a3a.js.map +1 -0
  64. package/dist/.next/static/chunks/{6373-1e2ef7e1f5217052.js → 6373-4c5dffaf4193621c.js} +2 -2
  65. package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js.map +1 -0
  66. package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js +2 -0
  67. package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js.map +1 -0
  68. package/dist/.next/static/chunks/{9953-abcb3d5ff5512285.js → 9953-dfb5fc0e5b74ec09.js} +2 -2
  69. package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js.map +1 -0
  70. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-29794b9c33d2bf7e.js → page-4e7e02768ed1a72a.js} +2 -2
  71. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js.map +1 -0
  72. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js +2 -0
  73. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js.map +1 -0
  74. package/dist/.next/static/chunks/app/(application)/chat/layout-093baa26f89338bc.js +2 -0
  75. package/dist/.next/static/chunks/app/(application)/chat/layout-093baa26f89338bc.js.map +1 -0
  76. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js +2 -0
  77. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js.map +1 -0
  78. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js +2 -0
  79. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js.map +1 -0
  80. package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-0b2d9832e5a023e7.js → page-bc859da58d8505f7.js} +2 -2
  81. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js.map +1 -0
  82. package/dist/.next/static/css/c8c015815c72d053.css +4 -0
  83. package/dist/.next/static/css/c8c015815c72d053.css.map +1 -0
  84. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  85. package/dist/package.json +1 -0
  86. package/package.json +1 -1
  87. package/dist/.next/server/chunks/6623.js +0 -1
  88. package/dist/.next/static/chunks/1685-39351b8a15bbecab.js +0 -2
  89. package/dist/.next/static/chunks/1685-39351b8a15bbecab.js.map +0 -1
  90. package/dist/.next/static/chunks/1957-899d0d6d0d9c11fd.js +0 -2
  91. package/dist/.next/static/chunks/1957-899d0d6d0d9c11fd.js.map +0 -1
  92. package/dist/.next/static/chunks/3750-90a213a3c7cceb29.js.map +0 -1
  93. package/dist/.next/static/chunks/6373-1e2ef7e1f5217052.js.map +0 -1
  94. package/dist/.next/static/chunks/7856-9fa733bdd6429ba8.js.map +0 -1
  95. package/dist/.next/static/chunks/8269-0e17dac508340ccf.js +0 -2
  96. package/dist/.next/static/chunks/8269-0e17dac508340ccf.js.map +0 -1
  97. package/dist/.next/static/chunks/9105-78d236e8399181e0.js +0 -2
  98. package/dist/.next/static/chunks/9105-78d236e8399181e0.js.map +0 -1
  99. package/dist/.next/static/chunks/9953-abcb3d5ff5512285.js.map +0 -1
  100. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-29794b9c33d2bf7e.js.map +0 -1
  101. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-f1f7f053f0aec4f9.js +0 -2
  102. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-f1f7f053f0aec4f9.js.map +0 -1
  103. package/dist/.next/static/chunks/app/(application)/chat/layout-42021d301fc609b6.js +0 -2
  104. package/dist/.next/static/chunks/app/(application)/chat/layout-42021d301fc609b6.js.map +0 -1
  105. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-640f50c121655487.js +0 -2
  106. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-640f50c121655487.js.map +0 -1
  107. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-c1e7e0c81ca508c3.js +0 -2
  108. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-c1e7e0c81ca508c3.js.map +0 -1
  109. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-0b2d9832e5a023e7.js.map +0 -1
  110. package/dist/.next/static/css/a181dac3df0dc7a7.css +0 -4
  111. package/dist/.next/static/css/a181dac3df0dc7a7.css.map +0 -1
  112. /package/dist/.next/static/{2bzL2j5_MmcbjxQ21egBB → GOwerAkBncYx0J8q1TqQb}/_buildManifest.js +0 -0
  113. /package/dist/.next/static/{2bzL2j5_MmcbjxQ21egBB → GOwerAkBncYx0J8q1TqQb}/_ssgManifest.js +0 -0
@@ -37,11 +37,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
37
37
  ]))`;continue}if("$"===i[e]){a+=`($|(?=[\r
38
38
  ]))`;continue}}if(o.s&&"."===i[e]){a+=s?`${i[e]}\r
39
39
  `:`[${i[e]}\r
40
- ]`;continue}a+=i[e],"\\"===i[e]?r=!0:s&&"]"===i[e]?s=!1:s||"["!==i[e]||(s=!0)}try{new RegExp(a)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return a}function s9(e,t){if("openAi"===t.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===t.target&&e.keyType?._def.typeName===tm.pA.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((o,i)=>({...o,[i]:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??sW(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let o={type:"object",additionalProperties:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if("openApi3"===t.target)return o;if(e.keyType?._def.typeName===tm.pA.ZodString&&e.keyType._def.checks?.length){let{type:i,...a}=s5(e.keyType._def,t);return{...o,propertyNames:a}}if(e.keyType?._def.typeName===tm.pA.ZodEnum)return{...o,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===tm.pA.ZodBranded&&e.keyType._def.type._def.typeName===tm.pA.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...a}=sH(e.keyType._def,t);return{...o,propertyNames:a}}return o}let ne={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},nt=(e,t)=>{let o=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${o}`]})).filter(e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return o.length?{anyOf:o}:void 0},no=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return ns(e.innerType._def,t);let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return o?{anyOf:[{not:sW(t)},o]}:sW(t)},ni=(e,t)=>{if("input"===t.pipeStrategy)return ns(e.in._def,t);if("output"===t.pipeStrategy)return ns(e.out._def,t);let o=ns(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),i=ns(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",o?"1":"0"]});return{allOf:[o,i].filter(e=>void 0!==e)}},na=(e,t)=>ns(e.innerType._def,t),nr=(e,t,o)=>{switch(t){case tm.pA.ZodString:return s5(e,o);case tm.pA.ZodNumber:return function(e,t){let o={type:"number"};if(!e.checks)return o;for(let i of e.checks)switch(i.kind){case"int":o.type="integer",sJ(o,"type",i.message,t);break;case"min":"jsonSchema7"===t.target?i.inclusive?sY(o,"minimum",i.value,i.message,t):sY(o,"exclusiveMinimum",i.value,i.message,t):(i.inclusive||(o.exclusiveMinimum=!0),sY(o,"minimum",i.value,i.message,t));break;case"max":"jsonSchema7"===t.target?i.inclusive?sY(o,"maximum",i.value,i.message,t):sY(o,"exclusiveMaximum",i.value,i.message,t):(i.inclusive||(o.exclusiveMaximum=!0),sY(o,"maximum",i.value,i.message,t));break;case"multipleOf":sY(o,"multipleOf",i.value,i.message,t)}return o}(e,o);case tm.pA.ZodObject:return function(e,t){let o="openAi"===t.target,i={type:"object",properties:{}},a=[],r=e.shape();for(let e in r){let s=r[e];if(void 0===s||void 0===s._def)continue;let n=function(e){try{return e.isOptional()}catch{return!0}}(s);n&&o&&("ZodOptional"===s._def.typeName&&(s=s._def.innerType),s.isNullable()||(s=s.nullable()),n=!1);let l=ns(s._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==l&&(i.properties[e]=l,n||a.push(e))}a.length&&(i.required=a);let s=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return ns(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==s&&(i.additionalProperties=s),i}(e,o);case tm.pA.ZodBigInt:return function(e,t){let o={type:"integer",format:"int64"};if(!e.checks)return o;for(let i of e.checks)switch(i.kind){case"min":"jsonSchema7"===t.target?i.inclusive?sY(o,"minimum",i.value,i.message,t):sY(o,"exclusiveMinimum",i.value,i.message,t):(i.inclusive||(o.exclusiveMinimum=!0),sY(o,"minimum",i.value,i.message,t));break;case"max":"jsonSchema7"===t.target?i.inclusive?sY(o,"maximum",i.value,i.message,t):sY(o,"exclusiveMaximum",i.value,i.message,t):(i.inclusive||(o.exclusiveMaximum=!0),sY(o,"maximum",i.value,i.message,t));break;case"multipleOf":sY(o,"multipleOf",i.value,i.message,t)}return o}(e,o);case tm.pA.ZodBoolean:return{type:"boolean"};case tm.pA.ZodDate:return function e(t,o,i){let a=i??o.dateStrategy;if(Array.isArray(a))return{anyOf:a.map((i,a)=>e(t,o,i))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return s0(t,o)}}(e,o);case tm.pA.ZodUndefined:return{not:sW(o)};case tm.pA.ZodNull:return"openApi3"===o.target?{enum:["null"],nullable:!0}:{type:"null"};case tm.pA.ZodArray:return function(e,t){let o={type:"array"};return e.type?._def&&e.type?._def?.typeName!==tm.pA.ZodAny&&(o.items=ns(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&sY(o,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&sY(o,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(sY(o,"minItems",e.exactLength.value,e.exactLength.message,t),sY(o,"maxItems",e.exactLength.value,e.exactLength.message,t)),o}(e,o);case tm.pA.ZodUnion:case tm.pA.ZodDiscriminatedUnion:return function(e,t){if("openApi3"===t.target)return nt(e,t);let o=e.options instanceof Map?Array.from(e.options.values()):e.options;if(o.every(e=>e._def.typeName in ne&&(!e._def.checks||!e._def.checks.length))){let e=o.reduce((e,t)=>{let o=ne[t._def.typeName];return o&&!e.includes(o)?[...e,o]:e},[]);return{type:e.length>1?e:e[0]}}if(o.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=o.reduce((e,t)=>{let o=typeof t._def.value;switch(o){case"string":case"number":case"boolean":return[...e,o];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===o.length){let t=e.filter((e,t,o)=>o.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:o.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(o.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:o.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return nt(e,t)}(e,o);case tm.pA.ZodIntersection:return function(e,t){let o=[ns(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),ns(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(e=>!!e),i="jsonSchema2019-09"===t.target?{unevaluatedProperties:!1}:void 0,a=[];return o.forEach(e=>{if(s2(e))a.push(...e.allOf),void 0===e.unevaluatedProperties&&(i=void 0);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:o,...i}=e;t=i}else i=void 0;a.push(t)}}),a.length?{allOf:a,...i}:void 0}(e,o);case tm.pA.ZodTuple:return function(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:ns(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])}}(e,o);case tm.pA.ZodRecord:return s9(e,o);case tm.pA.ZodLiteral:return function(e,t){let o=typeof e.value;return"bigint"!==o&&"number"!==o&&"boolean"!==o&&"string"!==o?{type:Array.isArray(e.value)?"array":"object"}:"openApi3"===t.target?{type:"bigint"===o?"integer":o,enum:[e.value]}:{type:"bigint"===o?"integer":o,const:e.value}}(e,o);case tm.pA.ZodEnum:return{type:"string",enum:Array.from(e.values)};case tm.pA.ZodNativeEnum:return function(e){let t=e.values,o=Object.keys(e.values).filter(e=>"number"!=typeof t[t[e]]).map(e=>t[e]),i=Array.from(new Set(o.map(e=>typeof e)));return{type:1===i.length?"string"===i[0]?"string":"number":["string","number"],enum:o}}(e);case tm.pA.ZodNullable:return function(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return"openApi3"===t.target?{type:ne[e.innerType._def.typeName],nullable:!0}:{type:[ne[e.innerType._def.typeName],"null"]};if("openApi3"===t.target){let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath]});return o&&"$ref"in o?{allOf:[o],nullable:!0}:o&&{...o,nullable:!0}}let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return o&&{anyOf:[o,{type:"null"}]}}(e,o);case tm.pA.ZodOptional:return no(e,o);case tm.pA.ZodMap:return function(e,t){return"record"===t.mapStrategy?s9(e,t):{type:"array",maxItems:125,items:{type:"array",items:[ns(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||sW(t),ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||sW(t)],minItems:2,maxItems:2}}}(e,o);case tm.pA.ZodSet:return function(e,t){let o={type:"array",uniqueItems:!0,items:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&sY(o,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&sY(o,"maxItems",e.maxSize.value,e.maxSize.message,t),o}(e,o);case tm.pA.ZodLazy:return()=>e.getter()._def;case tm.pA.ZodPromise:return ns(e.type._def,o);case tm.pA.ZodNaN:case tm.pA.ZodNever:return function(e){return"openAi"===e.target?void 0:{not:sW({...e,currentPath:[...e.currentPath,"not"]})}}(o);case tm.pA.ZodEffects:return function(e,t){return"input"===t.effectStrategy?ns(e.schema._def,t):sW(t)}(e,o);case tm.pA.ZodAny:case tm.pA.ZodUnknown:return sW(o);case tm.pA.ZodDefault:return function(e,t){return{...ns(e.innerType._def,t),default:e.defaultValue()}}(e,o);case tm.pA.ZodBranded:return sH(e,o);case tm.pA.ZodReadonly:return na(e,o);case tm.pA.ZodCatch:return sX(e,o);case tm.pA.ZodPipeline:return ni(e,o);case tm.pA.ZodFunction:case tm.pA.ZodVoid:case tm.pA.ZodSymbol:default:return}};function ns(e,t,o=!1){let i=t.seen.get(e);if(t.override){let a=t.override?.(e,t,i,o);if(a!==sQ)return a}if(i&&!o){let e=nn(i,t);if(void 0!==e)return e}let a={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,a);let r=nr(e,e.typeName,t),s="function"==typeof r?ns(r(),t):r;if(s&&nl(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}let nn=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:sK(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,o)=>t.currentPath[o]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),sW(t);return"seen"===t.$refStrategy?sW(t):void 0}},nl=(e,t,o)=>(e.description&&(o.description=e.description,t.markdownDescription&&(o.markdownDescription=e.description)),o),nd=(e,t)=>{let o=sV(t),i="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,i])=>({...e,[t]:ns(i._def,{...o,currentPath:[...o.basePath,o.definitionPath,t]},!0)??sW(o)}),{}):void 0,a="string"==typeof t?t:t?.nameStrategy==="title"?void 0:t?.name,r=ns(e._def,void 0===a?o:{...o,currentPath:[...o.basePath,o.definitionPath,a]},!1)??sW(o),s="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==s&&(r.title=s),o.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[o.openAiAnyTypeName]||(i[o.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===o.$refStrategy?"1":[...o.basePath,o.definitionPath,o.openAiAnyTypeName].join("/")}}));let n=void 0===a?i?{...r,[o.definitionPath]:i}:r:{$ref:[..."relative"===o.$refStrategy?[]:o.basePath,o.definitionPath,a].join("/"),[o.definitionPath]:{...i,[a]:r}};return"jsonSchema7"===o.target?n.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===o.target||"openAi"===o.target)&&(n.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===o.target&&("anyOf"in n||"oneOf"in n||"allOf"in n||"type"in n&&Array.isArray(n.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),n};var nc=({prefix:e,size:t=16,alphabet:o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:i="-"}={})=>{let a=()=>{let e=o.length,i=Array(t);for(let a=0;a<t;a++)i[a]=o[Math.random()*e|0];return i.join("")};if(null==e)return a;if(o.includes(i))throw new em({argument:"separator",message:`The separator "${i}" must not be part of the alphabet "${o}".`});return()=>`${e}${i}${a()}`},nu=nc(),np=/"__proto__"\s*:/,nm=/"constructor"\s*:/,ng=Symbol.for("vercel.ai.validator");async function nh({value:e,schema:t}){let o=await nv({value:e,schema:t});if(!o.success)throw eS.wrap({value:e,cause:o.error});return o.value}async function nv({value:e,schema:t}){let o="object"==typeof t&&null!==t&&ng in t&&!0===t[ng]&&"validate"in t?t:{[ng]:!0,validate:async e=>{let o=await t["~standard"].validate(e);return null==o.issues?{success:!0,value:o.value}:{success:!1,error:new eS({value:e,cause:o.issues})}}};try{if(null==o.validate)return{success:!0,value:e,rawValue:e};let t=await o.validate(e);if(t.success)return{success:!0,value:t.value,rawValue:e};return{success:!1,error:eS.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:eS.wrap({value:e,cause:t}),rawValue:e}}}async function nf({text:e,schema:t}){try{let o=function(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return function(e){let t=JSON.parse(e);return null===t||"object"!=typeof t||!1===np.test(e)&&!1===nm.test(e)?t:function(e){let t=[e];for(;t.length;){let e=t;for(let o of(t=[],e)){if(Object.prototype.hasOwnProperty.call(o,"__proto__")||Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let e in o){let i=o[e];i&&"object"==typeof i&&t.push(i)}}}return e}(t)}(e)}finally{Error.stackTraceLimit=t}}(e);if(null==t)return{success:!0,value:o,rawValue:o};return await nv({value:o,schema:t})}catch(t){return{success:!1,error:ef.isInstance(t)?t:new ef({text:e,cause:t}),rawValue:void 0}}}async function nx(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var nb=Symbol.for("vercel.ai.schema");function nk(e,{validate:t}={}){return{[nb]:!0,_type:void 0,[ng]:!0,jsonSchema:e,validate:t}}var{btoa:ny,atob:nM}=globalThis,nI=Object.defineProperty,nw="AI_NoOutputSpecifiedError",nS=`vercel.ai.error.${nw}`,nA=Symbol.for(nS),nT=class extends el{constructor({message:e="No output specified."}={}){super({name:nw,message:e}),this[S]=!0}static isInstance(e){return el.hasMarker(e,nS)}};S=nA;var nP="AI_InvalidArgumentError",nN=`vercel.ai.error.${nP}`,nO=Symbol.for(nN),n_=class extends el{constructor({parameter:e,value:t,message:o}){super({name:nP,message:`Invalid argument for parameter ${e}: ${o}`}),this[A]=!0,this.parameter=e,this.value=t}static isInstance(e){return el.hasMarker(e,nN)}};A=nO,Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");var nz="AI_InvalidToolInputError",nE=`vercel.ai.error.${nz}`,nq=Symbol.for(nE),nB=class extends el{constructor({toolInput:e,toolName:t,cause:o,message:i=`Invalid input for tool ${t}: ${ed(o)}`}){super({name:nz,message:i,cause:o}),this[T]=!0,this.toolInput=e,this.toolName=t}static isInstance(e){return el.hasMarker(e,nE)}};T=nq;var nj="vercel.ai.error.AI_MCPClientError",nC=Symbol.for(nj),nR=class extends el{constructor({name:e="MCPClientError",message:t,cause:o}){super({name:e,message:t,cause:o}),this[P]=!0}static isInstance(e){return el.hasMarker(e,nj)}};P=nC,Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");var nD="AI_NoObjectGeneratedError",nL=`vercel.ai.error.${nD}`,n$=Symbol.for(nL),nZ=class extends el{constructor({message:e="No object generated.",cause:t,text:o,response:i,usage:a,finishReason:r}){super({name:nD,message:e,cause:t}),this[O]=!0,this.text=o,this.response=i,this.usage=a,this.finishReason=r}static isInstance(e){return el.hasMarker(e,nL)}};O=n$;var nF="AI_NoOutputGeneratedError",nQ=`vercel.ai.error.${nF}`;_=Symbol.for(nQ);var nG="AI_NoSuchToolError",nU=`vercel.ai.error.${nG}`,nV=Symbol.for(nU),nK=class extends el{constructor({toolName:e,availableTools:t,message:o=`Model tried to call unavailable tool '${e}'. ${void 0===t?"No tools are available.":`Available tools: ${t.join(", ")}.`}`}){super({name:nG,message:o}),this[z]=!0,this.toolName=e,this.availableTools=t}static isInstance(e){return el.hasMarker(e,nU)}};z=nV;var nW="AI_ToolCallRepairError",nJ=`vercel.ai.error.${nW}`,nY=Symbol.for(nJ),nH=class extends el{constructor({cause:e,originalError:t,message:o=`Error repairing tool call: ${ed(e)}`}){super({name:nW,message:o,cause:e}),this[E]=!0,this.originalError=t}static isInstance(e){return el.hasMarker(e,nJ)}};E=nY;var nX=class extends el{constructor(e){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${e.version} for provider "${e.provider}" and model "${e.modelId}". AI SDK 5 only supports models that implement specification version "v2".`}),this.version=e.version,this.provider=e.provider,this.modelId=e.modelId}};Symbol.for("vercel.ai.error.AI_InvalidDataContentError");var n0="AI_InvalidMessageRoleError",n2=`vercel.ai.error.${n0}`,n1=Symbol.for(n2),n5=class extends el{constructor({role:e,message:t=`Invalid message role: '${e}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:n0,message:t}),this[B]=!0,this.role=e}static isInstance(e){return el.hasMarker(e,n2)}};B=n1,Symbol.for("vercel.ai.error.AI_MessageConversionError");var n3="AI_DownloadError",n4=`vercel.ai.error.${n3}`,n7=Symbol.for(n4),n8=class extends el{constructor({url:e,statusCode:t,statusText:o,cause:i,message:a=null==i?`Failed to download ${e}: ${t} ${o}`:`Failed to download ${e}: ${i}`}){super({name:n3,message:a,cause:i}),this[C]=!0,this.url=e,this.statusCode=t,this.statusText=o}static isInstance(e){return el.hasMarker(e,n4)}};C=n7;var n6="AI_RetryError",n9=`vercel.ai.error.${n6}`,le=Symbol.for(n9),lt=class extends el{constructor({message:e,reason:t,errors:o}){super({name:n6,message:e}),this[R]=!0,this.reason=t,this.errors=o,this.lastError=o[o.length-1]}static isInstance(e){return el.hasMarker(e,n9)}};R=le;var lo=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}],li=e=>{let t="string"==typeof e?convertBase64ToUint8Array(e):e,o=(127&t[6])<<21|(127&t[7])<<14|(127&t[8])<<7|127&t[9];return t.slice(o+10)};async function la({url:e}){var t;let o=e.toString();try{let e=await fetch(o);if(!e.ok)throw new n8({url:o,statusCode:e.status,statusText:e.statusText});return{data:new Uint8Array(await e.arrayBuffer()),mediaType:null!=(t=e.headers.get("content-type"))?t:void 0}}catch(e){if(n8.isInstance(e))throw e;throw new n8({url:o,cause:e})}}var lr=aO([i0(),a1(Uint8Array),a1(ArrayBuffer),a2(e=>{var t,o;return null!=(o=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&o},{message:"Must be a Buffer"})]);function ls(e){if(e instanceof Uint8Array)return{data:e,mediaType:void 0};if(e instanceof ArrayBuffer)return{data:new Uint8Array(e),mediaType:void 0};if("string"==typeof e)try{e=new URL(e)}catch(e){}if(e instanceof URL&&"data:"===e.protocol){let{mediaType:t,base64Content:o}=function(e){try{let[t,o]=e.split(",");return{mediaType:t.split(";")[0].split(":")[1],base64Content:o}}catch(e){return{mediaType:void 0,base64Content:void 0}}}(e.toString());if(null==t||null==o)throw new AISDKError18({name:"InvalidDataContentError",message:`Invalid data URL format in content ${e.toString()}`});return{data:o,mediaType:t}}return{data:e,mediaType:void 0}}async function ln(e,t,o){let i=e.filter(e=>"user"===e.role).map(e=>e.content).filter(e=>Array.isArray(e)).flat().filter(e=>"image"===e.type||"file"===e.type).map(e=>{var t;let o=null!=(t=e.mediaType)?t:"image"===e.type?"image/*":void 0,i="image"===e.type?e.image:e.data;if("string"==typeof i)try{i=new URL(i)}catch(e){}return{mediaType:o,data:i}}).filter(e=>e.data instanceof URL&&null!=e.mediaType&&!isUrlSupported({url:e.data.toString(),mediaType:e.mediaType,supportedUrls:o})).map(e=>e.data);return Object.fromEntries((await Promise.all(i.map(async e=>({url:e,data:await t({url:e})})))).map(({url:e,data:t})=>[e.toString(),t]))}var ll=aX(()=>aO([ax(),i0(),ap(),av(),aB(i0(),ll),aw(ll)])),ld=aB(i0(),aB(i0(),ll)),lc=aA({type:aD("text"),text:i0(),providerOptions:ld.optional()}),lu=aA({type:aD("image"),image:aO([lr,a1(URL)]),mediaType:i0().optional(),providerOptions:ld.optional()}),lp=aA({type:aD("file"),data:aO([lr,a1(URL)]),filename:i0().optional(),mediaType:i0(),providerOptions:ld.optional()}),lm=aA({type:aD("reasoning"),text:i0(),providerOptions:ld.optional()}),lg=aA({type:aD("tool-call"),toolCallId:i0(),toolName:i0(),input:ak(),providerOptions:ld.optional(),providerExecuted:av().optional()}),lh=az("type",[aA({type:aD("text"),value:i0()}),aA({type:aD("json"),value:ll}),aA({type:aD("error-text"),value:i0()}),aA({type:aD("error-json"),value:ll}),aA({type:aD("content"),value:aw(aO([aA({type:aD("text"),text:i0()}),aA({type:aD("media"),data:i0(),mediaType:i0()})]))})]),lv=aA({type:aD("tool-result"),toolCallId:i0(),toolName:i0(),output:lh,providerOptions:ld.optional()}),lf=aA({role:aD("system"),content:i0(),providerOptions:ld.optional()}),lx=aA({role:aD("user"),content:aO([i0(),aw(aO([lc,lu,lp]))]),providerOptions:ld.optional()}),lb=aA({role:aD("assistant"),content:aO([i0(),aw(aO([lc,lp,lm,lg,lv]))]),providerOptions:ld.optional()}),lk=aO([lf,lx,lb,aA({role:aD("tool"),content:aw(lv),providerOptions:ld.optional()})]),ly={startSpan:()=>lM,startActiveSpan:(e,t,o,i)=>"function"==typeof t?t(lM):"function"==typeof o?o(lM):"function"==typeof i?i(lM):void 0},lM={spanContext:()=>lI,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},lI={traceId:"",spanId:"",traceFlags:0};function lw(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:SpanStatusCode.ERROR,message:t.message})):e.setStatus({code:SpanStatusCode.ERROR})}function lS({telemetry:e,attributes:t}){return(null==e?void 0:e.isEnabled)!==!0?{}:Object.entries(t).reduce((t,[o,i])=>{if(null==i)return t;if("object"==typeof i&&"input"in i&&"function"==typeof i.input){if((null==e?void 0:e.recordInputs)===!1)return t;let a=i.input();return null==a?t:{...t,[o]:a}}if("object"==typeof i&&"output"in i&&"function"==typeof i.output){if((null==e?void 0:e.recordOutputs)===!1)return t;let a=i.output();return null==a?t:{...t,[o]:a}}return{...t,[o]:i}},{})}function lA(e,t){return null==e&&null==t?void 0:(null!=e?e:0)+(null!=t?t:0)}var lT=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:o=2,abortSignal:i}={})=>async a=>lP(a,{maxRetries:e,delayInMs:t,backoffFactor:o,abortSignal:i});async function lP(e,{maxRetries:t,delayInMs:o,backoffFactor:i,abortSignal:a},r=[]){try{return await e()}catch(d){if(isAbortError(d)||0===t)throw d;let s=getErrorMessage3(d),n=[...r,d],l=n.length;if(l>t)throw new lt({message:`Failed after ${l} attempts. Last error: ${s}`,reason:"maxRetriesExceeded",errors:n});if(d instanceof Error&&APICallError2.isInstance(d)&&!0===d.isRetryable&&l<=t)return await delay(function({error:e,exponentialBackoffDelay:t}){let o;let i=e.responseHeaders;if(!i)return t;let a=i["retry-after-ms"];if(a){let e=parseFloat(a);Number.isNaN(e)||(o=e)}let r=i["retry-after"];if(r&&void 0===o){let e=parseFloat(r);o=Number.isNaN(e)?Date.parse(r)-Date.now():1e3*e}return null!=o&&!Number.isNaN(o)&&0<=o&&(o<6e4||o<t)?o:t}({error:d,exponentialBackoffDelay:o}),{abortSignal:a}),lP(e,{maxRetries:t,delayInMs:i*o,backoffFactor:i,abortSignal:a},n);if(1===l)throw d;throw new lt({message:`Failed after ${l} attempts with non-retryable error: '${s}'`,reason:"errorNotRetryable",errors:n})}}var lN=class{constructor({data:e,mediaType:t}){let o=e instanceof Uint8Array;this.base64Data=o?void 0:e,this.uint8ArrayData=o?e:void 0,this.mediaType=t}get base64(){return null==this.base64Data&&(this.base64Data=function(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCodePoint(e[o]);return ny(t)}(this.uint8ArrayData)),this.base64Data}get uint8Array(){return null==this.uint8ArrayData&&(this.uint8ArrayData=function(e){let t=nM(e.replace(/-/g,"+").replace(/_/g,"/"));return Uint8Array.from(t,e=>e.codePointAt(0))}(this.base64Data)),this.uint8ArrayData}};async function lO({toolCall:e,tools:t}){let o=e.toolName,i=t[o];if(null==i)throw new nK({toolName:e.toolName,availableTools:Object.keys(t)});let a=asSchema2(i.inputSchema),r=""===e.input.trim()?await safeValidateTypes2({value:{},schema:a}):await safeParseJSON({text:e.input,schema:a});if(!1===r.success)throw new nB({toolName:o,toolInput:e.input,cause:r.error});return"dynamic"===i.type?{type:"tool-call",toolCallId:e.toolCallId,toolName:e.toolName,input:r.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,dynamic:!0}:{type:"tool-call",toolCallId:e.toolCallId,toolName:o,input:r.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}}function l_({output:e,tool:t,errorMode:o}){return"text"===o?{type:"error-text",value:getErrorMessage4(e)}:"json"===o?{type:"error-json",value:lz(e)}:(null==t?void 0:t.toModelOutput)?t.toModelOutput(e):"string"==typeof e?{type:"text",value:e}:{type:"json",value:lz(e)}}function lz(e){return void 0===e?null:e}nc({prefix:"aitxt",size:24});function lE(e,t){let o=new Headers(null!=e?e:{});for(let[e,i]of Object.entries(t))o.has(e)||o.set(e,i);return o}TransformStream;var lq=aO([aT({type:aD("text-start"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("text-delta"),id:i0(),delta:i0(),providerMetadata:ld.optional()}),aT({type:aD("text-end"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("error"),errorText:i0()}),aT({type:aD("tool-input-start"),toolCallId:i0(),toolName:i0(),providerExecuted:av().optional(),dynamic:av().optional()}),aT({type:aD("tool-input-delta"),toolCallId:i0(),inputTextDelta:i0()}),aT({type:aD("tool-input-available"),toolCallId:i0(),toolName:i0(),input:ak(),providerExecuted:av().optional(),providerMetadata:ld.optional(),dynamic:av().optional()}),aT({type:aD("tool-input-error"),toolCallId:i0(),toolName:i0(),input:ak(),providerExecuted:av().optional(),providerMetadata:ld.optional(),dynamic:av().optional(),errorText:i0()}),aT({type:aD("tool-output-available"),toolCallId:i0(),output:ak(),providerExecuted:av().optional(),dynamic:av().optional(),preliminary:av().optional()}),aT({type:aD("tool-output-error"),toolCallId:i0(),errorText:i0(),providerExecuted:av().optional(),dynamic:av().optional()}),aT({type:aD("reasoning"),text:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-start"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-delta"),id:i0(),delta:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-end"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-part-finish")}),aT({type:aD("source-url"),sourceId:i0(),url:i0(),title:i0().optional(),providerMetadata:ld.optional()}),aT({type:aD("source-document"),sourceId:i0(),mediaType:i0(),title:i0(),filename:i0().optional(),providerMetadata:ld.optional()}),aT({type:aD("file"),url:i0(),mediaType:i0(),providerMetadata:ld.optional()}),aT({type:i0().startsWith("data-"),id:i0().optional(),data:ak(),transient:av().optional()}),aT({type:aD("start-step")}),aT({type:aD("finish-step")}),aT({type:aD("start"),messageId:i0().optional(),messageMetadata:ak().optional()}),aT({type:aD("finish"),messageMetadata:ak().optional()}),aT({type:aD("abort")}),aT({type:aD("message-metadata"),messageMetadata:ak()})]);async function lB(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await nf({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await nf({text:function(e){let t=["ROOT"],o=-1,i=null;function a(e,a,r){switch(e){case'"':o=a,t.pop(),t.push(r),t.push("INSIDE_STRING");break;case"f":case"t":case"n":o=a,i=a,t.pop(),t.push(r),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(r),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=a,t.pop(),t.push(r),t.push("INSIDE_NUMBER");break;case"{":o=a,t.pop(),t.push(r),t.push("INSIDE_OBJECT_START");break;case"[":o=a,t.pop(),t.push(r),t.push("INSIDE_ARRAY_START")}}function r(e,i){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":o=i,t.pop()}}function s(e,i){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":o=i,t.pop()}}for(let n=0;n<e.length;n++){let l=e[n];switch(t[t.length-1]){case"ROOT":a(l,n,"FINISH");break;case"INSIDE_OBJECT_START":switch(l){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":o=n,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===l&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":a(l,n,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":r(l,n);break;case"INSIDE_STRING":switch(l){case'"':t.pop(),o=n;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:o=n}break;case"INSIDE_ARRAY_START":"]"===l?(o=n,t.pop()):(o=n,a(l,n,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(l){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":o=n,t.pop();break;default:o=n}break;case"INSIDE_ARRAY_AFTER_COMMA":a(l,n,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),o=n;break;case"INSIDE_NUMBER":switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=n;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&r(l,n);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&r(l,n);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;default:t.pop()}break;case"INSIDE_LITERAL":{let a=e.substring(i,n+1);"false".startsWith(a)||"true".startsWith(a)||"null".startsWith(a)?o=n:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?r(l,n):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n))}}}let n=e.slice(0,o+1);for(let o=t.length-1;o>=0;o--)switch(t[o]){case"INSIDE_STRING":n+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":n+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":n+="]";break;case"INSIDE_LITERAL":{let t=e.substring(i,e.length);"true".startsWith(t)?n+="true".slice(t.length):"false".startsWith(t)?n+="false".slice(t.length):"null".startsWith(t)&&(n+="null".slice(t.length))}}return n}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}function lj(e){return e.type.startsWith("tool-")}function lC(e){return e.type.split("-").slice(1).join("-")}async function lR({stream:e,onError:t}){let o=e.getReader();try{for(;;){let{done:e}=await o.read();if(e)break}}catch(e){null==t||t(e)}finally{o.releaseLock()}}function lD(){let e,t;return{promise:new Promise((o,i)=>{e=o,t=i}),resolve:e,reject:t}}nc({prefix:"aitxt",size:24});async function lL(e,t,o){let i=await safeParseJSON3({text:e});if(!i.success)throw new nZ({message:"No object generated: could not parse the response.",cause:i.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});let a=await t.validateFinalResult(i.value,{text:e,response:o.response,usage:o.usage});if(!a.success)throw new nZ({message:"No object generated: response did not match schema.",cause:a.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});return a.value}nc({prefix:"aiobj",size:24});var l$=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,o)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){o(e)}}),this.processQueue()})}};nc({prefix:"aiobj",size:24}),((e,t)=>{for(var o in t)nI(e,o,{get:t[o],enumerable:!0})})({},{object:()=>lF,text:()=>lZ});var lZ=()=>({type:"text",responseFormat:{type:"text"},parsePartial:async({text:e})=>({partial:e}),parseOutput:async({text:e})=>e}),lF=({schema:e})=>{let t=function(e){return null==e?nk({properties:{},additionalProperties:!1}):"object"==typeof e&&null!==e&&nb in e&&!0===e[nb]&&"jsonSchema"in e&&"validate"in e?e:function(e,t){return"_zod"in e?nk(e4(e,{target:"draft-7",io:"output",reused:"inline"}),{validate:async t=>{let o=await tp(e,t);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}}):nk(nd(e,{$refStrategy:"none",target:"jsonSchema7"}),{validate:async t=>{let o=await e.safeParseAsync(t);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}})}(e)}(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:e}){let t=await lB(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{let e=t.state;throw Error(`Unsupported parse state: ${e}`)}}},async parseOutput({text:e},o){let i=await nf({text:e});if(!i.success)throw new nZ({message:"No object generated: could not parse the response.",cause:i.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});let a=await nv({value:i.value,schema:t});if(!a.success)throw new nZ({message:"No object generated: response did not match schema.",cause:a.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});return a.value}}},lQ=({model:e,middleware:{transformParams:t,wrapGenerate:o,wrapStream:i,overrideProvider:a,overrideModelId:r,overrideSupportedUrls:s},modelId:n,providerId:l})=>{var d,c,u;async function p({params:o,type:i}){return t?await t({params:o,type:i,model:e}):o}return{specificationVersion:"v2",provider:null!=(d=null!=l?l:null==a?void 0:a({model:e}))?d:e.provider,modelId:null!=(c=null!=n?n:null==r?void 0:r({model:e}))?c:e.modelId,supportedUrls:null!=(u=null==s?void 0:s({model:e}))?u:e.supportedUrls,async doGenerate(t){let i=await p({params:t,type:"generate"}),a=async()=>e.doGenerate(i),r=async()=>e.doStream(i);return o?o({doGenerate:a,doStream:r,params:i,model:e}):a()},async doStream(t){let o=await p({params:t,type:"stream"}),a=async()=>e.doGenerate(o),r=async()=>e.doStream(o);return i?i({doGenerate:a,doStream:r,params:o,model:e}):r()}}},lG="AI_NoSuchProviderError",lU=`vercel.ai.error.${lG}`;D=Symbol.for(lU);var lV=aP({name:i0(),version:i0()}),lK=aP({_meta:aZ(aA({}).loose())}),lW=aA({method:i0(),params:aZ(lK)}),lJ=aP({experimental:aZ(aA({}).loose()),logging:aZ(aA({}).loose()),prompts:aZ(aP({listChanged:aZ(av())})),resources:aZ(aP({subscribe:aZ(av()),listChanged:aZ(av())})),tools:aZ(aP({listChanged:aZ(av())}))}),lY=(lK.extend({protocolVersion:i0(),capabilities:lJ,serverInfo:lV,instructions:aZ(i0())}),lK.extend({nextCursor:aZ(i0())})),lH=aA({name:i0(),description:aZ(i0()),inputSchema:aA({type:aD("object"),properties:aZ(aA({}).loose())}).loose()}).loose(),lX=(lY.extend({tools:aw(lH)}),aA({type:aD("text"),text:i0()}).loose()),l0=aA({type:aD("image"),data:iC(an,void 0),mimeType:i0()}).loose(),l2=aA({uri:i0(),mimeType:aZ(i0())}).loose(),l1=l2.extend({text:i0()}),l5=l2.extend({blob:iC(an,void 0)}),l3=aA({type:aD("resource"),resource:aO([l1,l5])}).loose(),l4=(lK.extend({content:aw(aO([lX,l0,l3])),isError:av().default(!1).optional()}).or(lK.extend({toolResult:ak()})),aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()])}).merge(lW).strict()),l7=aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()]),result:lK}).strict(),l8=aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()]),error:aA({code:ap().int(),message:i0(),data:aZ(ak())})}).strict(),l6=aO([l4,aA({jsonrpc:aD("2.0")}).merge(aA({method:i0(),params:aZ(lK)})).strict(),l7,l8]);async function l9(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:o}=e;return{type:"file",mediaType:o,filename:t,url:await new Promise((t,o)=>{let i=new FileReader;i.onload=e=>{var o;t(null==(o=e.target)?void 0:o.result)},i.onerror=e=>o(e),i.readAsDataURL(e)})}}))}var de=class{constructor({api:e="/api/chat",credentials:t,headers:o,body:i,fetch:a,prepareSendMessagesRequest:r,prepareReconnectToStreamRequest:s}){this.api=e,this.credentials=t,this.headers=o,this.body=i,this.fetch=a,this.prepareSendMessagesRequest=r,this.prepareReconnectToStreamRequest=s}async sendMessages({abortSignal:e,...t}){var o,i,a,r,s;let n=await nx(this.body),l=await nx(this.headers),d=await nx(this.credentials),c=await (null==(o=this.prepareSendMessagesRequest)?void 0:o.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...n,...t.body},headers:{...l,...t.headers},credentials:d,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),u=null!=(i=null==c?void 0:c.api)?i:this.api,p=(null==c?void 0:c.headers)!==void 0?c.headers:{...l,...t.headers},m=(null==c?void 0:c.body)!==void 0?c.body:{...n,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=null!=(a=null==c?void 0:c.credentials)?a:d,h=null!=(r=this.fetch)?r:globalThis.fetch,v=await h(u,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(m),credentials:g,signal:e});if(!v.ok)throw Error(null!=(s=await v.text())?s:"Failed to fetch the chat response.");if(!v.body)throw Error("The response body is empty.");return this.processResponseStream(v.body)}async reconnectToStream(e){var t,o,i,a,r;let s=await nx(this.body),n=await nx(this.headers),l=await nx(this.credentials),d=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...s,...e.body},headers:{...n,...e.headers},credentials:l,requestMetadata:e.metadata})),c=null!=(o=null==d?void 0:d.api)?o:`${this.api}/${e.chatId}/stream`,u=(null==d?void 0:d.headers)!==void 0?d.headers:{...n,...e.headers},p=null!=(i=null==d?void 0:d.credentials)?i:l,m=null!=(a=this.fetch)?a:globalThis.fetch,g=await m(c,{method:"GET",headers:u,credentials:p});if(204===g.status)return null;if(!g.ok)throw Error(null!=(r=await g.text())?r:"Failed to fetch the chat response.");if(!g.body)throw Error("The response body is empty.");return this.processResponseStream(g.body)}},dt=class extends de{constructor(e={}){super(e)}processResponseStream(e){return(function({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new eE).pipeThrough(new TransformStream({async transform({data:e},o){"[DONE]"!==e&&o.enqueue(await nf({text:e,schema:t}))}}))})({stream:e,schema:lq}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},di=class{constructor({generateId:e=nu,id:t=e(),transport:o=new dt,messageMetadataSchema:i,dataPartSchemas:a,state:r,onError:s,onToolCall:n,onFinish:l,onData:d,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new l$,this.sendMessage=async(e,t)=>{var o,i,a,r;let s;if(null==e){await this.makeRequest({trigger:"submit-message",messageId:null==(o=this.lastMessage)?void 0:o.id,...t});return}if(s="text"in e||"files"in e?{parts:[...Array.isArray(e.files)?e.files:await l9(e.files),..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}:e,null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...s,id:e.messageId,role:null!=(i=s.role)?i:"user",metadata:e.metadata})}else this.state.pushMessage({...s,id:null!=(a=s.id)?a:this.generateId(),role:null!=(r=s.role)?r:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let o=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===o)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[o].role?o:o+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolResult=async({tool:e,toolCallId:t,output:o})=>this.jobExecutor.run(async()=>{var e,i;let a=this.state.messages,r=a[a.length-1];this.state.replaceMessage(a.length-1,{...r,parts:r.parts.map(e=>lj(e)&&e.toolCallId===t?{...e,state:"output-available",output:o}:e)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(e=>lj(e)&&e.toolCallId===t?{...e,state:"output-available",output:o,errorText:void 0}:e)),"streaming"!==this.status&&"submitted"!==this.status&&(null==(e=this.sendAutomaticallyWhen)?void 0:e.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:null==(i=this.lastMessage)?void 0:i.id})}),this.stop=async()=>{var e;("streaming"===this.status||"submitted"===this.status)&&(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=o,this.generateId=e,this.messageMetadataSchema=i,this.dataPartSchemas=a,this.state=r,this.onError=s,this.onToolCall=n,this.onFinish=l,this.onData=d,this.sendAutomaticallyWhen=c}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:o,body:i,messageId:a}){var r,s,n;this.setStatus({status:"submitted",error:void 0});let l=this.lastMessage;try{let s;let n={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}({lastMessage:this.state.snapshot(l),messageId:this.generateId()}),abortController:new AbortController};if(this.activeResponse=n,"resume-stream"===e){let e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:o,body:i});if(null==e){this.setStatus({status:"ready"});return}s=e}else s=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:n.abortController.signal,metadata:t,headers:o,body:i,trigger:e,messageId:a});await lR({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:o,runUpdateMessageJob:i,onError:a,onToolCall:r,onData:s}){return e.pipeThrough(new TransformStream({async transform(e,n){await i(async({state:i,write:l})=>{var d,c,u,p;function m(e){let t=i.message.parts.filter(lj).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function g(e){let t=i.message.parts.filter(e=>"dynamic-tool"===e.type).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function h(e){var t;let o=i.message.parts.find(t=>lj(t)&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=e.rawInput,o.preliminary=e.preliminary,o.providerExecuted=null!=(t=e.providerExecuted)?t:o.providerExecuted,null!=e.providerMetadata&&"input-available"===o.state&&(o.callProviderMetadata=e.providerMetadata)):i.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}function v(e){var t;let o=i.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.toolName=e.toolName,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=null!=(t=e.rawInput)?t:o.rawInput,o.preliminary=e.preliminary,null!=e.providerMetadata&&"input-available"===o.state&&(o.callProviderMetadata=e.providerMetadata)):i.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}async function f(e){if(null!=e){let o=null!=i.message.metadata?function e(t,o){if(void 0===t&&void 0===o)return;if(void 0===t)return o;if(void 0===o)return t;let i={...t};for(let a in o)if(Object.prototype.hasOwnProperty.call(o,a)){let r=o[a];if(void 0===r)continue;let s=a in t?t[a]:void 0,n=null!==r&&"object"==typeof r&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),l=null!=s&&"object"==typeof s&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp);n&&l?i[a]=e(s,r):i[a]=r}return i}(i.message.metadata,e):e;null!=t&&await nh({value:o,schema:t}),i.message.metadata=o}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};i.activeTextParts[e.id]=t,i.message.parts.push(t),l();break}case"text-delta":{let t=i.activeTextParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,l();break}case"text-end":{let t=i.activeTextParts[e.id];t.state="done",t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,delete i.activeTextParts[e.id],l();break}case"reasoning-start":{let t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};i.activeReasoningParts[e.id]=t,i.message.parts.push(t),l();break}case"reasoning-delta":{let t=i.activeReasoningParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(u=e.providerMetadata)?u:t.providerMetadata,l();break}case"reasoning-end":{let t=i.activeReasoningParts[e.id];t.providerMetadata=null!=(p=e.providerMetadata)?p:t.providerMetadata,t.state="done",delete i.activeReasoningParts[e.id],l();break}case"file":i.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),l();break;case"source-url":i.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),l();break;case"source-document":i.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),l();break;case"tool-input-start":{let t=i.message.parts.filter(lj);i.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic},e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted}),l();break}case"tool-input-delta":{let t=i.partialToolCalls[e.toolCallId];t.text+=e.inputTextDelta;let{value:o}=await lB(t.text);t.dynamic?v({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:o}):h({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:o}),l();break}case"tool-input-available":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerMetadata:e.providerMetadata}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),l(),r&&!e.providerExecuted&&await r({toolCall:e});break;case"tool-input-error":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerMetadata:e.providerMetadata}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),l();break;case"tool-output-available":if(e.dynamic){let t=g(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary})}else{let t=m(e.toolCallId);h({toolCallId:e.toolCallId,toolName:lC(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary})}l();break;case"tool-output-error":if(e.dynamic){let t=g(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText})}else{let t=m(e.toolCallId);h({toolCallId:e.toolCallId,toolName:lC(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText})}l();break;case"start-step":i.message.parts.push({type:"step-start"});break;case"finish-step":i.activeTextParts={},i.activeReasoningParts={};break;case"start":null!=e.messageId&&(i.message.id=e.messageId),await f(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&l();break;case"finish":case"message-metadata":await f(e.messageMetadata),null!=e.messageMetadata&&l();break;case"error":null==a||a(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==o?void 0:o[e.type])!=null&&await nh({value:e.data,schema:o[e.type]}),e.transient){null==s||s(e);break}let t=null!=e.id?i.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:i.message.parts.push(e),null==s||s(e),l()}}n.enqueue(e)})}}))}({stream:s,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:e=>this.jobExecutor.run(()=>e({state:n.state,write:()=>{var e;this.setStatus({status:"streaming"}),n.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,n.state.message):this.state.pushMessage(n.state.message)}})),onError:e=>{throw e}}),onError:e=>{throw e}}),null==(r=this.onFinish)||r.call(this,{message:n.state.message}),this.setStatus({status:"ready"})}catch(e){if("AbortError"===e.name)return this.setStatus({status:"ready"}),null;this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{this.activeResponse=void 0}(null==(s=this.sendAutomaticallyWhen)?void 0:s.call(this,{messages:this.state.messages}))&&await this.makeRequest({trigger:"submit-message",messageId:null==(n=this.lastMessage)?void 0:n.id,metadata:t,headers:o,body:i})}},da=aA({type:aD("text"),text:i0(),state:aC(["streaming","done"]).optional(),providerMetadata:ld.optional()}),dr=aA({type:aD("reasoning"),text:i0(),state:aC(["streaming","done"]).optional(),providerMetadata:ld.optional()}),ds=aA({type:aD("source-url"),sourceId:i0(),url:i0(),title:i0().optional(),providerMetadata:ld.optional()}),dn=aA({type:aD("source-document"),sourceId:i0(),mediaType:i0(),title:i0(),filename:i0().optional(),providerMetadata:ld.optional()}),dl=aA({type:aD("file"),mediaType:i0(),filename:i0().optional(),url:i0(),providerMetadata:ld.optional()}),dd=aA({type:aD("step-start")}),dc=aA({type:i0().startsWith("data-"),id:i0().optional(),data:ak()}),du=[aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("input-streaming"),input:ak().optional(),output:aM().optional(),errorText:aM().optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("input-available"),input:ak(),output:aM().optional(),errorText:aM().optional(),callProviderMetadata:ld.optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("output-available"),input:ak(),output:ak(),errorText:aM().optional(),callProviderMetadata:ld.optional(),preliminary:av().optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("output-error"),input:ak(),output:aM().optional(),errorText:i0(),callProviderMetadata:ld.optional()})],dp=[aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("input-streaming"),input:ak().optional(),output:aM().optional(),errorText:aM().optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("input-available"),input:ak(),output:aM().optional(),errorText:aM().optional(),callProviderMetadata:ld.optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("output-available"),input:ak(),output:ak(),errorText:aM().optional(),callProviderMetadata:ld.optional(),preliminary:av().optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("output-error"),input:ak(),output:aM().optional(),errorText:i0(),callProviderMetadata:ld.optional()})],dm=(aA({id:i0(),role:aC(["system","user","assistant"]),metadata:ak().optional(),parts:aw(aO([da,dr,ds,dn,dl,dd,dc,...du,...dp]))}),o(68301)),dg=(e,t,o)=>{if(!t.has(e))throw TypeError("Cannot "+o)},dh=(e,t,o)=>(dg(e,t,"read from private field"),o?o.call(e):t.get(e)),dv=(e,t,o)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,o)},df=(e,t,o,i)=>(dg(e,t,"write to private field"),i?i.call(e,o):t.set(e,o),o),dx=class{constructor(e=[]){dv(this,L,void 0),dv(this,$,"ready"),dv(this,Z,void 0),dv(this,F,new Set),dv(this,Q,new Set),dv(this,G,new Set),this.pushMessage=e=>{df(this,L,dh(this,L).concat(e)),dh(this,U).call(this)},this.popMessage=()=>{df(this,L,dh(this,L).slice(0,-1)),dh(this,U).call(this)},this.replaceMessage=(e,t)=>{df(this,L,[...dh(this,L).slice(0,e),this.snapshot(t),...dh(this,L).slice(e+1)]),dh(this,U).call(this)},this.snapshot=e=>structuredClone(e),this["~registerMessagesCallback"]=(e,t)=>{let o=t?function(e,t){return null!=t?dm(e,t):e}(e,t):e;return dh(this,F).add(o),()=>{dh(this,F).delete(o)}},this["~registerStatusCallback"]=e=>(dh(this,Q).add(e),()=>{dh(this,Q).delete(e)}),this["~registerErrorCallback"]=e=>(dh(this,G).add(e),()=>{dh(this,G).delete(e)}),dv(this,U,()=>{dh(this,F).forEach(e=>e())}),dv(this,V,()=>{dh(this,Q).forEach(e=>e())}),dv(this,K,()=>{dh(this,G).forEach(e=>e())}),df(this,L,e)}get status(){return dh(this,$)}set status(e){df(this,$,e),dh(this,V).call(this)}get error(){return dh(this,Z)}set error(e){df(this,Z,e),dh(this,K).call(this)}get messages(){return dh(this,L)}set messages(e){df(this,L,[...e]),dh(this,U).call(this)}};L=new WeakMap,$=new WeakMap,Z=new WeakMap,F=new WeakMap,Q=new WeakMap,G=new WeakMap,U=new WeakMap,V=new WeakMap,K=new WeakMap;var db=class extends di{constructor({messages:e,...t}){let o=new dx(e);super({...t,state:o}),dv(this,W,void 0),this["~registerMessagesCallback"]=(e,t)=>dh(this,W)["~registerMessagesCallback"](e,t),this["~registerStatusCallback"]=e=>dh(this,W)["~registerStatusCallback"](e),this["~registerErrorCallback"]=e=>dh(this,W)["~registerErrorCallback"](e),df(this,W,o)}};W=new WeakMap;var dk=o(15211),dy=o(76812),dM=o(77863);let dI=({size:e=16})=>(0,H.jsxs)("svg",{height:e,strokeLinejoin:"round",style:{color:"currentcolor"},viewBox:"0 0 16 16",width:e,children:[H.jsx("title",{children:"Loader"}),(0,H.jsxs)("g",{clipPath:"url(#clip0_2393_1490)",children:[H.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),H.jsx("defs",{children:H.jsx("clipPath",{id:"clip0_2393_1490",children:H.jsx("rect",{fill:"white",height:"16",width:"16"})})})]}),dw=({className:e,size:t=16,...o})=>H.jsx("div",{className:(0,dM.cn)("inline-flex animate-spin items-center justify-center",e),...o,children:H.jsx(dI,{size:t})});var dS=o(45353),dA="undefined"!=typeof document?X.useLayoutEffect:function(){},dT=function(e){var t=ee().useRef(e);return dA(function(){t.current=e}),t},dP=function(e,t){if("function"==typeof e){e(t);return}e.current=t},dN=function(e,t){var o=ee().useRef();return ee().useCallback(function(i){e.current=i,o.current&&dP(o.current,null),o.current=t,t&&dP(t,i)},[t])},dO="undefined"!=typeof document,d_={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},dz=function(e){Object.keys(d_).forEach(function(t){e.style.setProperty(t,d_[t],"important")})},dE=null,dq=function(e,t){var o=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?o+t.borderSize:o-t.paddingSize},dB=function(){},dj=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],dC=!!dO&&!!document.documentElement.currentStyle,dR=function(e){var t=window.getComputedStyle(e);if(null===t)return null;var o=dj.reduce(function(e,o){return e[o]=t[o],e},{}),i=o.boxSizing;if(""===i)return null;dC&&"border-box"===i&&(o.width=parseFloat(o.width)+parseFloat(o.borderRightWidth)+parseFloat(o.borderLeftWidth)+parseFloat(o.paddingRight)+parseFloat(o.paddingLeft)+"px");var a=parseFloat(o.paddingBottom)+parseFloat(o.paddingTop),r=parseFloat(o.borderBottomWidth)+parseFloat(o.borderTopWidth);return{sizingStyle:o,paddingSize:a,borderSize:r}};function dD(e,t,o){var i=dT(o);X.useLayoutEffect(function(){var o=function(e){return i.current(e)};if(e)return e.addEventListener(t,o),function(){return e.removeEventListener(t,o)}},[])}var dL=function(e,t){dD(document.body,"reset",function(o){e.current.form===o.target&&t(o)})},d$=function(e){dD(window,"resize",e)},dZ=function(e){dD(document.fonts,"loadingdone",e)},dF=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],dQ=X.forwardRef(function(e,t){var o=e.cacheMeasurements,i=e.maxRows,a=e.minRows,r=e.onChange,s=void 0===r?dB:r,n=e.onHeightChange,l=void 0===n?dB:n,d=function(e,t){if(null==e)return{};var o={};for(var i in e)if(({}).hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;o[i]=e[i]}return o}(e,dF),c=void 0!==d.value,u=X.useRef(null),p=dN(u,t),m=X.useRef(0),g=X.useRef(),h=function(){var e,t,r,s,n,d,c,p,h,v,f,x=u.current,b=o&&g.current?g.current:dR(x);if(b){g.current=b;var k=(e=x.value||x.placeholder||"x",void 0===(t=a)&&(t=1),void 0===(r=i)&&(r=1/0),dE||((dE=document.createElement("textarea")).setAttribute("tabindex","-1"),dE.setAttribute("aria-hidden","true"),dz(dE)),null===dE.parentNode&&document.body.appendChild(dE),s=b.paddingSize,n=b.borderSize,c=(d=b.sizingStyle).boxSizing,Object.keys(d).forEach(function(e){dE.style[e]=d[e]}),dz(dE),dE.value=e,p=dq(dE,b),dE.value=e,p=dq(dE,b),dE.value="x",v=(h=dE.scrollHeight-s)*t,"border-box"===c&&(v=v+s+n),p=Math.max(v,p),f=h*r,"border-box"===c&&(f=f+s+n),[p=Math.min(f,p),h]),y=k[0],M=k[1];m.current!==y&&(m.current=y,x.style.setProperty("height",y+"px","important"),l(y,{rowHeight:M}))}};return dO?(X.useLayoutEffect(h),dL(u,function(){if(!c){var e=u.current.value;requestAnimationFrame(function(){var t=u.current;t&&e!==t.value&&h()})}}),d$(h),dZ(h),X.createElement("textarea",(0,dS.Z)({},d,{onChange:function(e){c||h(),s(e)},ref:p}))):X.createElement("textarea",(0,dS.Z)({},d,{onChange:s,ref:p}))}),dG=o(68232),dU=o(42270),dV=o(59161),dK=o(30463),dW=o(36283);let dJ=(0,o(76557).Z)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var dY=o(47206),dH=o(34789),dX=o(360),d0=o(90772),d2=o(33261),d1=o(33071),d5=o(5354),d3=o(13854),d4=o(15286),d7=o(24295),d8=o(37859),d6=o(567),d9=o(43641),ce=o(77961);function ct(e,t,{checkForDefaultPrevented:o=!0}={}){return function(i){if(e?.(i),!1===o||!i.defaultPrevented)return t?.(i)}}"undefined"!=typeof window&&window.document&&window.document.createElement;var co=o(93095),ci=o(52067),ca=o(48051),cr=o(77192),cs=o(87389),cn=o(92764),cl=o(45226),cd=o(55049),cc=o(65819),cu=o(2566),cp="Popper",[cm,cg]=(0,co.b)(cp),[ch,cv]=cm(cp),cf=e=>{let{__scopePopper:t,children:o}=e,[i,a]=X.useState(null);return(0,H.jsx)(ch,{scope:t,anchor:i,onAnchorChange:a,children:o})};cf.displayName=cp;var cx="PopperAnchor",cb=X.forwardRef((e,t)=>{let{__scopePopper:o,virtualRef:i,...a}=e,r=cv(cx,o),s=X.useRef(null),n=(0,ca.e)(t,s),l=X.useRef(null);return X.useEffect(()=>{let e=l.current;l.current=i?.current||s.current,e!==l.current&&r.onAnchorChange(l.current)}),i?null:(0,H.jsx)(cl.WV.div,{...a,ref:n})});cb.displayName=cx;var ck="PopperContent",[cy,cM]=cm(ck),cI=X.forwardRef((e,t)=>{let{__scopePopper:o,side:i="bottom",sideOffset:a=0,align:r="center",alignOffset:s=0,arrowPadding:n=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:c=0,sticky:u="partial",hideWhenDetached:p=!1,updatePositionStrategy:m="optimized",onPlaced:g,...h}=e,v=cv(ck,o),[f,x]=X.useState(null),b=(0,ca.e)(t,e=>x(e)),[k,y]=X.useState(null),M=(0,cu.t)(k),I=M?.width??0,w=M?.height??0,S="number"==typeof c?c:{top:0,right:0,bottom:0,left:0,...c},A=Array.isArray(d)?d:[d],T=A.length>0,P={padding:S,boundary:A.filter(cT),altBoundary:T},{refs:N,floatingStyles:O,placement:_,isPositioned:z,middlewareData:E}=(0,cr.YF)({strategy:"fixed",placement:i+("center"!==r?"-"+r:""),whileElementsMounted:(...e)=>(0,cs.Me)(...e,{animationFrame:"always"===m}),elements:{reference:v.anchor},middleware:[(0,cr.cv)({mainAxis:a+w,alignmentAxis:s}),l&&(0,cr.uY)({mainAxis:!0,crossAxis:!1,limiter:"partial"===u?(0,cr.dr)():void 0,...P}),l&&(0,cr.RR)({...P}),(0,cr.dp)({...P,apply:({elements:e,rects:t,availableWidth:o,availableHeight:i})=>{let{width:a,height:r}=t.reference,s=e.floating.style;s.setProperty("--radix-popper-available-width",`${o}px`),s.setProperty("--radix-popper-available-height",`${i}px`),s.setProperty("--radix-popper-anchor-width",`${a}px`),s.setProperty("--radix-popper-anchor-height",`${r}px`)}}),k&&(0,cr.x7)({element:k,padding:n}),cP({arrowWidth:I,arrowHeight:w}),p&&(0,cr.Cp)({strategy:"referenceHidden",...P})]}),[q,B]=cN(_),j=(0,cd.W)(g);(0,cc.b)(()=>{z&&j?.()},[z,j]);let C=E.arrow?.x,R=E.arrow?.y,D=E.arrow?.centerOffset!==0,[L,$]=X.useState();return(0,cc.b)(()=>{f&&$(window.getComputedStyle(f).zIndex)},[f]),(0,H.jsx)("div",{ref:N.setFloating,"data-radix-popper-content-wrapper":"",style:{...O,transform:z?O.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:L,"--radix-popper-transform-origin":[E.transformOrigin?.x,E.transformOrigin?.y].join(" "),...E.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,H.jsx)(cy,{scope:o,placedSide:q,onArrowChange:y,arrowX:C,arrowY:R,shouldHideArrow:D,children:(0,H.jsx)(cl.WV.div,{"data-side":q,"data-align":B,...h,ref:b,style:{...h.style,animation:z?void 0:"none"}})})})});cI.displayName=ck;var cw="PopperArrow",cS={top:"bottom",right:"left",bottom:"top",left:"right"},cA=X.forwardRef(function(e,t){let{__scopePopper:o,...i}=e,a=cM(cw,o),r=cS[a.placedSide];return(0,H.jsx)("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[r]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:(0,H.jsx)(cn.f,{...i,ref:t,style:{...i.style,display:"block"}})})});function cT(e){return null!==e}cA.displayName=cw;var cP=e=>({name:"transformOrigin",options:e,fn(t){let{placement:o,rects:i,middlewareData:a}=t,r=a.arrow?.centerOffset!==0,s=r?0:e.arrowWidth,n=r?0:e.arrowHeight,[l,d]=cN(o),c={start:"0%",center:"50%",end:"100%"}[d],u=(a.arrow?.x??0)+s/2,p=(a.arrow?.y??0)+n/2,m="",g="";return"bottom"===l?(m=r?c:`${u}px`,g=`${-n}px`):"top"===l?(m=r?c:`${u}px`,g=`${i.floating.height+n}px`):"right"===l?(m=`${-n}px`,g=r?c:`${p}px`):"left"===l&&(m=`${i.floating.width+n}px`,g=r?c:`${p}px`),{data:{x:m,y:g}}}});function cN(e){let[t,o="center"]=e.split("-");return[t,o]}o(83078);var cO=e=>{let{present:t,children:o}=e,i=function(e){var t,o;let[i,a]=X.useState(),r=X.useRef(null),s=X.useRef(e),n=X.useRef("none"),[l,d]=(t=e?"mounted":"unmounted",o={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},X.useReducer((e,t)=>o[e][t]??e,t));return X.useEffect(()=>{let e=c_(r.current);n.current="mounted"===l?e:"none"},[l]),(0,cc.b)(()=>{let t=r.current,o=s.current;if(o!==e){let i=n.current,a=c_(t);e?d("MOUNT"):"none"===a||t?.display==="none"?d("UNMOUNT"):o&&i!==a?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),(0,cc.b)(()=>{if(i){let e;let t=i.ownerDocument.defaultView??window,o=o=>{let a=c_(r.current).includes(CSS.escape(o.animationName));if(o.target===i&&a&&(d("ANIMATION_END"),!s.current)){let o=i.style.animationFillMode;i.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===i.style.animationFillMode&&(i.style.animationFillMode=o)})}},a=e=>{e.target===i&&(n.current=c_(r.current))};return i.addEventListener("animationstart",a),i.addEventListener("animationcancel",o),i.addEventListener("animationend",o),()=>{t.clearTimeout(e),i.removeEventListener("animationstart",a),i.removeEventListener("animationcancel",o),i.removeEventListener("animationend",o)}}d("ANIMATION_END")},[i,d]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:X.useCallback(e=>{r.current=e?getComputedStyle(e):null,a(e)},[])}}(t),a="function"==typeof o?o({present:i.isPresent}):X.Children.only(o),r=(0,ca.e)(i.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(o=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(a));return"function"==typeof o||i.isPresent?X.cloneElement(a,{ref:r}):null};function c_(e){return e?.animationName||"none"}cO.displayName="Presence";var cz=o(77575),cE="dismissableLayer.update",cq=X.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),cB=X.forwardRef((e,t)=>{let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:r,onInteractOutside:s,onDismiss:n,...l}=e,d=X.useContext(cq),[c,u]=X.useState(null),p=c?.ownerDocument??globalThis?.document,[,m]=X.useState({}),g=(0,ca.e)(t,e=>u(e)),h=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),f=h.indexOf(v),x=c?h.indexOf(c):-1,b=d.layersWithOutsidePointerEventsDisabled.size>0,k=x>=f,y=function(e,t=globalThis?.document){let o=(0,cd.W)(e),i=X.useRef(!1),a=X.useRef(()=>{});return X.useEffect(()=>{let e=e=>{if(e.target&&!i.current){let i=function(){cC("dismissableLayer.pointerDownOutside",o,r,{discrete:!0})},r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=i,t.addEventListener("click",a.current,{once:!0})):i()}else t.removeEventListener("click",a.current);i.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,o]),{onPointerDownCapture:()=>i.current=!0}}(e=>{let t=e.target,o=[...d.branches].some(e=>e.contains(t));!k||o||(a?.(e),s?.(e),e.defaultPrevented||n?.())},p),M=function(e,t=globalThis?.document){let o=(0,cd.W)(e),i=X.useRef(!1);return X.useEffect(()=>{let e=e=>{e.target&&!i.current&&cC("dismissableLayer.focusOutside",o,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,o]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}(e=>{let t=e.target;[...d.branches].some(e=>e.contains(t))||(r?.(e),s?.(e),e.defaultPrevented||n?.())},p);return(0,cz.e)(e=>{x!==d.layers.size-1||(i?.(e),!e.defaultPrevented&&n&&(e.preventDefault(),n()))},p),X.useEffect(()=>{if(c)return o&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(J=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(c)),d.layers.add(c),cj(),()=>{o&&1===d.layersWithOutsidePointerEventsDisabled.size&&(p.body.style.pointerEvents=J)}},[c,p,o,d]),X.useEffect(()=>()=>{c&&(d.layers.delete(c),d.layersWithOutsidePointerEventsDisabled.delete(c),cj())},[c,d]),X.useEffect(()=>{let e=()=>m({});return document.addEventListener(cE,e),()=>document.removeEventListener(cE,e)},[]),(0,H.jsx)(cl.WV.div,{...l,ref:g,style:{pointerEvents:b?k?"auto":"none":void 0,...e.style},onFocusCapture:ct(e.onFocusCapture,M.onFocusCapture),onBlurCapture:ct(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:ct(e.onPointerDownCapture,y.onPointerDownCapture)})});function cj(){let e=new CustomEvent(cE);document.dispatchEvent(e)}function cC(e,t,o,{discrete:i}){let a=o.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:o});t&&a.addEventListener(e,t,{once:!0}),i?(0,cl.jH)(a,r):a.dispatchEvent(r)}cB.displayName="DismissableLayer",X.forwardRef((e,t)=>{let o=X.useContext(cq),i=X.useRef(null),a=(0,ca.e)(t,i);return X.useEffect(()=>{let e=i.current;if(e)return o.branches.add(e),()=>{o.branches.delete(e)}},[o.branches]),(0,H.jsx)(cl.WV.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var cR="HoverCard",[cD,cL]=(0,co.b)(cR,[cg]),c$=cg(),[cZ,cF]=cD(cR),cQ=e=>{let{__scopeHoverCard:t,children:o,open:i,defaultOpen:a,onOpenChange:r,openDelay:s=700,closeDelay:n=300}=e,l=c$(t),d=X.useRef(0),c=X.useRef(0),u=X.useRef(!1),p=X.useRef(!1),[m,g]=(0,ci.T)({prop:i,defaultProp:a??!1,onChange:r,caller:cR}),h=X.useCallback(()=>{clearTimeout(c.current),d.current=window.setTimeout(()=>g(!0),s)},[s,g]),v=X.useCallback(()=>{clearTimeout(d.current),u.current||p.current||(c.current=window.setTimeout(()=>g(!1),n))},[n,g]),f=X.useCallback(()=>g(!1),[g]);return X.useEffect(()=>()=>{clearTimeout(d.current),clearTimeout(c.current)},[]),(0,H.jsx)(cZ,{scope:t,open:m,onOpenChange:g,onOpen:h,onClose:v,onDismiss:f,hasSelectionRef:u,isPointerDownOnContentRef:p,children:(0,H.jsx)(cf,{...l,children:o})})};cQ.displayName=cR;var cG="HoverCardTrigger",cU=X.forwardRef((e,t)=>{let{__scopeHoverCard:o,...i}=e,a=cF(cG,o),r=c$(o);return(0,H.jsx)(cb,{asChild:!0,...r,children:(0,H.jsx)(cl.WV.a,{"data-state":a.open?"open":"closed",...i,ref:t,onPointerEnter:ct(e.onPointerEnter,cH(a.onOpen)),onPointerLeave:ct(e.onPointerLeave,cH(a.onClose)),onFocus:ct(e.onFocus,a.onOpen),onBlur:ct(e.onBlur,a.onClose),onTouchStart:ct(e.onTouchStart,e=>e.preventDefault())})})});cU.displayName=cG;var[cV,cK]=cD("HoverCardPortal",{forceMount:void 0}),cW="HoverCardContent",cJ=X.forwardRef((e,t)=>{let o=cK(cW,e.__scopeHoverCard),{forceMount:i=o.forceMount,...a}=e,r=cF(cW,e.__scopeHoverCard);return(0,H.jsx)(cO,{present:i||r.open,children:(0,H.jsx)(cY,{"data-state":r.open?"open":"closed",...a,onPointerEnter:ct(e.onPointerEnter,cH(r.onOpen)),onPointerLeave:ct(e.onPointerLeave,cH(r.onClose)),ref:t})})});cJ.displayName=cW;var cY=X.forwardRef((e,t)=>{let{__scopeHoverCard:o,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:r,onInteractOutside:s,...n}=e,l=cF(cW,o),d=c$(o),c=X.useRef(null),u=(0,ca.e)(t,c),[p,m]=X.useState(!1);return X.useEffect(()=>{if(p){let e=document.body;return Y=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=Y,e.style.webkitUserSelect=Y}}},[p]),X.useEffect(()=>{if(c.current){let e=()=>{m(!1),l.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(l.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!1}}},[l.isPointerDownOnContentRef,l.hasSelectionRef]),X.useEffect(()=>{c.current&&(function(e){let t=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;o.nextNode();)t.push(o.currentNode);return t})(c.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,H.jsx)(cB,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:s,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:ct(r,e=>{e.preventDefault()}),onDismiss:l.onDismiss,children:(0,H.jsx)(cI,{...d,...n,onPointerDown:ct(n.onPointerDown,e=>{e.currentTarget.contains(e.target)&&m(!0),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!0}),ref:u,style:{...n.style,userSelect:p?"text":void 0,WebkitUserSelect:p?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function cH(e){return t=>"touch"===t.pointerType?void 0:e()}X.forwardRef((e,t)=>{let{__scopeHoverCard:o,...i}=e,a=c$(o);return(0,H.jsx)(cA,{...a,...i,ref:t})}).displayName="HoverCardArrow";let cX=X.forwardRef(({className:e,align:t="center",sideOffset:o=4,...i},a)=>H.jsx(cJ,{ref:a,align:t,sideOffset:o,className:(0,dM.cn)("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i}));cX.displayName=cJ.displayName;var c0="Progress",[c2,c1]=(0,co.b)(c0),[c5,c3]=c2(c0),c4=X.forwardRef((e,t)=>{var o,i;let{__scopeProgress:a,value:r=null,max:s,getValueLabel:n=c6,...l}=e;(s||0===s)&&!ut(s)&&console.error((o=`${s}`,`Invalid prop \`max\` of value \`${o}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let d=ut(s)?s:100;null===r||uo(r,d)||console.error((i=`${r}`,`Invalid prop \`value\` of value \`${i}\` supplied to \`Progress\`. The \`value\` prop must be:
40
+ ]`;continue}a+=i[e],"\\"===i[e]?r=!0:s&&"]"===i[e]?s=!1:s||"["!==i[e]||(s=!0)}try{new RegExp(a)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return a}function s9(e,t){if("openAi"===t.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===t.target&&e.keyType?._def.typeName===tm.pA.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((o,i)=>({...o,[i]:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??sW(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let o={type:"object",additionalProperties:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if("openApi3"===t.target)return o;if(e.keyType?._def.typeName===tm.pA.ZodString&&e.keyType._def.checks?.length){let{type:i,...a}=s5(e.keyType._def,t);return{...o,propertyNames:a}}if(e.keyType?._def.typeName===tm.pA.ZodEnum)return{...o,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===tm.pA.ZodBranded&&e.keyType._def.type._def.typeName===tm.pA.ZodString&&e.keyType._def.type._def.checks?.length){let{type:i,...a}=sH(e.keyType._def,t);return{...o,propertyNames:a}}return o}let ne={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"},nt=(e,t)=>{let o=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${o}`]})).filter(e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0));return o.length?{anyOf:o}:void 0},no=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return ns(e.innerType._def,t);let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return o?{anyOf:[{not:sW(t)},o]}:sW(t)},ni=(e,t)=>{if("input"===t.pipeStrategy)return ns(e.in._def,t);if("output"===t.pipeStrategy)return ns(e.out._def,t);let o=ns(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),i=ns(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",o?"1":"0"]});return{allOf:[o,i].filter(e=>void 0!==e)}},na=(e,t)=>ns(e.innerType._def,t),nr=(e,t,o)=>{switch(t){case tm.pA.ZodString:return s5(e,o);case tm.pA.ZodNumber:return function(e,t){let o={type:"number"};if(!e.checks)return o;for(let i of e.checks)switch(i.kind){case"int":o.type="integer",sJ(o,"type",i.message,t);break;case"min":"jsonSchema7"===t.target?i.inclusive?sY(o,"minimum",i.value,i.message,t):sY(o,"exclusiveMinimum",i.value,i.message,t):(i.inclusive||(o.exclusiveMinimum=!0),sY(o,"minimum",i.value,i.message,t));break;case"max":"jsonSchema7"===t.target?i.inclusive?sY(o,"maximum",i.value,i.message,t):sY(o,"exclusiveMaximum",i.value,i.message,t):(i.inclusive||(o.exclusiveMaximum=!0),sY(o,"maximum",i.value,i.message,t));break;case"multipleOf":sY(o,"multipleOf",i.value,i.message,t)}return o}(e,o);case tm.pA.ZodObject:return function(e,t){let o="openAi"===t.target,i={type:"object",properties:{}},a=[],r=e.shape();for(let e in r){let s=r[e];if(void 0===s||void 0===s._def)continue;let n=function(e){try{return e.isOptional()}catch{return!0}}(s);n&&o&&("ZodOptional"===s._def.typeName&&(s=s._def.innerType),s.isNullable()||(s=s.nullable()),n=!1);let l=ns(s._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==l&&(i.properties[e]=l,n||a.push(e))}a.length&&(i.required=a);let s=function(e,t){if("ZodNever"!==e.catchall._def.typeName)return ns(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}(e,t);return void 0!==s&&(i.additionalProperties=s),i}(e,o);case tm.pA.ZodBigInt:return function(e,t){let o={type:"integer",format:"int64"};if(!e.checks)return o;for(let i of e.checks)switch(i.kind){case"min":"jsonSchema7"===t.target?i.inclusive?sY(o,"minimum",i.value,i.message,t):sY(o,"exclusiveMinimum",i.value,i.message,t):(i.inclusive||(o.exclusiveMinimum=!0),sY(o,"minimum",i.value,i.message,t));break;case"max":"jsonSchema7"===t.target?i.inclusive?sY(o,"maximum",i.value,i.message,t):sY(o,"exclusiveMaximum",i.value,i.message,t):(i.inclusive||(o.exclusiveMaximum=!0),sY(o,"maximum",i.value,i.message,t));break;case"multipleOf":sY(o,"multipleOf",i.value,i.message,t)}return o}(e,o);case tm.pA.ZodBoolean:return{type:"boolean"};case tm.pA.ZodDate:return function e(t,o,i){let a=i??o.dateStrategy;if(Array.isArray(a))return{anyOf:a.map((i,a)=>e(t,o,i))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return s0(t,o)}}(e,o);case tm.pA.ZodUndefined:return{not:sW(o)};case tm.pA.ZodNull:return"openApi3"===o.target?{enum:["null"],nullable:!0}:{type:"null"};case tm.pA.ZodArray:return function(e,t){let o={type:"array"};return e.type?._def&&e.type?._def?.typeName!==tm.pA.ZodAny&&(o.items=ns(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&sY(o,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&sY(o,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(sY(o,"minItems",e.exactLength.value,e.exactLength.message,t),sY(o,"maxItems",e.exactLength.value,e.exactLength.message,t)),o}(e,o);case tm.pA.ZodUnion:case tm.pA.ZodDiscriminatedUnion:return function(e,t){if("openApi3"===t.target)return nt(e,t);let o=e.options instanceof Map?Array.from(e.options.values()):e.options;if(o.every(e=>e._def.typeName in ne&&(!e._def.checks||!e._def.checks.length))){let e=o.reduce((e,t)=>{let o=ne[t._def.typeName];return o&&!e.includes(o)?[...e,o]:e},[]);return{type:e.length>1?e:e[0]}}if(o.every(e=>"ZodLiteral"===e._def.typeName&&!e.description)){let e=o.reduce((e,t)=>{let o=typeof t._def.value;switch(o){case"string":case"number":case"boolean":return[...e,o];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}},[]);if(e.length===o.length){let t=e.filter((e,t,o)=>o.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:o.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(o.every(e=>"ZodEnum"===e._def.typeName))return{type:"string",enum:o.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return nt(e,t)}(e,o);case tm.pA.ZodIntersection:return function(e,t){let o=[ns(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),ns(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(e=>!!e),i="jsonSchema2019-09"===t.target?{unevaluatedProperties:!1}:void 0,a=[];return o.forEach(e=>{if(s2(e))a.push(...e.allOf),void 0===e.unevaluatedProperties&&(i=void 0);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){let{additionalProperties:o,...i}=e;t=i}else i=void 0;a.push(t)}}),a.length?{allOf:a,...i}:void 0}(e,o);case tm.pA.ZodTuple:return function(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[]),additionalItems:ns(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,o)=>ns(e._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((e,t)=>void 0===t?e:[...e,t],[])}}(e,o);case tm.pA.ZodRecord:return s9(e,o);case tm.pA.ZodLiteral:return function(e,t){let o=typeof e.value;return"bigint"!==o&&"number"!==o&&"boolean"!==o&&"string"!==o?{type:Array.isArray(e.value)?"array":"object"}:"openApi3"===t.target?{type:"bigint"===o?"integer":o,enum:[e.value]}:{type:"bigint"===o?"integer":o,const:e.value}}(e,o);case tm.pA.ZodEnum:return{type:"string",enum:Array.from(e.values)};case tm.pA.ZodNativeEnum:return function(e){let t=e.values,o=Object.keys(e.values).filter(e=>"number"!=typeof t[t[e]]).map(e=>t[e]),i=Array.from(new Set(o.map(e=>typeof e)));return{type:1===i.length?"string"===i[0]?"string":"number":["string","number"],enum:o}}(e);case tm.pA.ZodNullable:return function(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return"openApi3"===t.target?{type:ne[e.innerType._def.typeName],nullable:!0}:{type:[ne[e.innerType._def.typeName],"null"]};if("openApi3"===t.target){let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath]});return o&&"$ref"in o?{allOf:[o],nullable:!0}:o&&{...o,nullable:!0}}let o=ns(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return o&&{anyOf:[o,{type:"null"}]}}(e,o);case tm.pA.ZodOptional:return no(e,o);case tm.pA.ZodMap:return function(e,t){return"record"===t.mapStrategy?s9(e,t):{type:"array",maxItems:125,items:{type:"array",items:[ns(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||sW(t),ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||sW(t)],minItems:2,maxItems:2}}}(e,o);case tm.pA.ZodSet:return function(e,t){let o={type:"array",uniqueItems:!0,items:ns(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&sY(o,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&sY(o,"maxItems",e.maxSize.value,e.maxSize.message,t),o}(e,o);case tm.pA.ZodLazy:return()=>e.getter()._def;case tm.pA.ZodPromise:return ns(e.type._def,o);case tm.pA.ZodNaN:case tm.pA.ZodNever:return function(e){return"openAi"===e.target?void 0:{not:sW({...e,currentPath:[...e.currentPath,"not"]})}}(o);case tm.pA.ZodEffects:return function(e,t){return"input"===t.effectStrategy?ns(e.schema._def,t):sW(t)}(e,o);case tm.pA.ZodAny:case tm.pA.ZodUnknown:return sW(o);case tm.pA.ZodDefault:return function(e,t){return{...ns(e.innerType._def,t),default:e.defaultValue()}}(e,o);case tm.pA.ZodBranded:return sH(e,o);case tm.pA.ZodReadonly:return na(e,o);case tm.pA.ZodCatch:return sX(e,o);case tm.pA.ZodPipeline:return ni(e,o);case tm.pA.ZodFunction:case tm.pA.ZodVoid:case tm.pA.ZodSymbol:default:return}};function ns(e,t,o=!1){let i=t.seen.get(e);if(t.override){let a=t.override?.(e,t,i,o);if(a!==sQ)return a}if(i&&!o){let e=nn(i,t);if(void 0!==e)return e}let a={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,a);let r=nr(e,e.typeName,t),s="function"==typeof r?ns(r(),t):r;if(s&&nl(e,t,s),t.postProcess){let o=t.postProcess(s,e,t);return a.jsonSchema=s,o}return a.jsonSchema=s,s}let nn=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:sK(t.currentPath,e.path)};case"none":case"seen":if(e.path.length<t.currentPath.length&&e.path.every((e,o)=>t.currentPath[o]===e))return console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),sW(t);return"seen"===t.$refStrategy?sW(t):void 0}},nl=(e,t,o)=>(e.description&&(o.description=e.description,t.markdownDescription&&(o.markdownDescription=e.description)),o),nd=(e,t)=>{let o=sV(t),i="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce((e,[t,i])=>({...e,[t]:ns(i._def,{...o,currentPath:[...o.basePath,o.definitionPath,t]},!0)??sW(o)}),{}):void 0,a="string"==typeof t?t:t?.nameStrategy==="title"?void 0:t?.name,r=ns(e._def,void 0===a?o:{...o,currentPath:[...o.basePath,o.definitionPath,a]},!1)??sW(o),s="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==s&&(r.title=s),o.flags.hasReferencedOpenAiAnyType&&(i||(i={}),i[o.openAiAnyTypeName]||(i[o.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===o.$refStrategy?"1":[...o.basePath,o.definitionPath,o.openAiAnyTypeName].join("/")}}));let n=void 0===a?i?{...r,[o.definitionPath]:i}:r:{$ref:[..."relative"===o.$refStrategy?[]:o.basePath,o.definitionPath,a].join("/"),[o.definitionPath]:{...i,[a]:r}};return"jsonSchema7"===o.target?n.$schema="http://json-schema.org/draft-07/schema#":("jsonSchema2019-09"===o.target||"openAi"===o.target)&&(n.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===o.target&&("anyOf"in n||"oneOf"in n||"allOf"in n||"type"in n&&Array.isArray(n.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),n};var nc=({prefix:e,size:t=16,alphabet:o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:i="-"}={})=>{let a=()=>{let e=o.length,i=Array(t);for(let a=0;a<t;a++)i[a]=o[Math.random()*e|0];return i.join("")};if(null==e)return a;if(o.includes(i))throw new em({argument:"separator",message:`The separator "${i}" must not be part of the alphabet "${o}".`});return()=>`${e}${i}${a()}`},nu=nc(),np=/"__proto__"\s*:/,nm=/"constructor"\s*:/,ng=Symbol.for("vercel.ai.validator");async function nh({value:e,schema:t}){let o=await nv({value:e,schema:t});if(!o.success)throw eS.wrap({value:e,cause:o.error});return o.value}async function nv({value:e,schema:t}){let o="object"==typeof t&&null!==t&&ng in t&&!0===t[ng]&&"validate"in t?t:{[ng]:!0,validate:async e=>{let o=await t["~standard"].validate(e);return null==o.issues?{success:!0,value:o.value}:{success:!1,error:new eS({value:e,cause:o.issues})}}};try{if(null==o.validate)return{success:!0,value:e,rawValue:e};let t=await o.validate(e);if(t.success)return{success:!0,value:t.value,rawValue:e};return{success:!1,error:eS.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:eS.wrap({value:e,cause:t}),rawValue:e}}}async function nf({text:e,schema:t}){try{let o=function(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return function(e){let t=JSON.parse(e);return null===t||"object"!=typeof t||!1===np.test(e)&&!1===nm.test(e)?t:function(e){let t=[e];for(;t.length;){let e=t;for(let o of(t=[],e)){if(Object.prototype.hasOwnProperty.call(o,"__proto__")||Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let e in o){let i=o[e];i&&"object"==typeof i&&t.push(i)}}}return e}(t)}(e)}finally{Error.stackTraceLimit=t}}(e);if(null==t)return{success:!0,value:o,rawValue:o};return await nv({value:o,schema:t})}catch(t){return{success:!1,error:ef.isInstance(t)?t:new ef({text:e,cause:t}),rawValue:void 0}}}async function nx(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var nb=Symbol.for("vercel.ai.schema");function nk(e,{validate:t}={}){return{[nb]:!0,_type:void 0,[ng]:!0,jsonSchema:e,validate:t}}var{btoa:ny,atob:nM}=globalThis,nI=Object.defineProperty,nw="AI_NoOutputSpecifiedError",nS=`vercel.ai.error.${nw}`,nA=Symbol.for(nS),nT=class extends el{constructor({message:e="No output specified."}={}){super({name:nw,message:e}),this[S]=!0}static isInstance(e){return el.hasMarker(e,nS)}};S=nA;var nP="AI_InvalidArgumentError",nN=`vercel.ai.error.${nP}`,nO=Symbol.for(nN),n_=class extends el{constructor({parameter:e,value:t,message:o}){super({name:nP,message:`Invalid argument for parameter ${e}: ${o}`}),this[A]=!0,this.parameter=e,this.value=t}static isInstance(e){return el.hasMarker(e,nN)}};A=nO,Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");var nz="AI_InvalidToolInputError",nE=`vercel.ai.error.${nz}`,nq=Symbol.for(nE),nB=class extends el{constructor({toolInput:e,toolName:t,cause:o,message:i=`Invalid input for tool ${t}: ${ed(o)}`}){super({name:nz,message:i,cause:o}),this[T]=!0,this.toolInput=e,this.toolName=t}static isInstance(e){return el.hasMarker(e,nE)}};T=nq;var nj="vercel.ai.error.AI_MCPClientError",nC=Symbol.for(nj),nR=class extends el{constructor({name:e="MCPClientError",message:t,cause:o}){super({name:e,message:t,cause:o}),this[P]=!0}static isInstance(e){return el.hasMarker(e,nj)}};P=nC,Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");var nD="AI_NoObjectGeneratedError",nL=`vercel.ai.error.${nD}`,n$=Symbol.for(nL),nZ=class extends el{constructor({message:e="No object generated.",cause:t,text:o,response:i,usage:a,finishReason:r}){super({name:nD,message:e,cause:t}),this[O]=!0,this.text=o,this.response=i,this.usage=a,this.finishReason=r}static isInstance(e){return el.hasMarker(e,nL)}};O=n$;var nF="AI_NoOutputGeneratedError",nQ=`vercel.ai.error.${nF}`;_=Symbol.for(nQ);var nG="AI_NoSuchToolError",nU=`vercel.ai.error.${nG}`,nV=Symbol.for(nU),nK=class extends el{constructor({toolName:e,availableTools:t,message:o=`Model tried to call unavailable tool '${e}'. ${void 0===t?"No tools are available.":`Available tools: ${t.join(", ")}.`}`}){super({name:nG,message:o}),this[z]=!0,this.toolName=e,this.availableTools=t}static isInstance(e){return el.hasMarker(e,nU)}};z=nV;var nW="AI_ToolCallRepairError",nJ=`vercel.ai.error.${nW}`,nY=Symbol.for(nJ),nH=class extends el{constructor({cause:e,originalError:t,message:o=`Error repairing tool call: ${ed(e)}`}){super({name:nW,message:o,cause:e}),this[E]=!0,this.originalError=t}static isInstance(e){return el.hasMarker(e,nJ)}};E=nY;var nX=class extends el{constructor(e){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${e.version} for provider "${e.provider}" and model "${e.modelId}". AI SDK 5 only supports models that implement specification version "v2".`}),this.version=e.version,this.provider=e.provider,this.modelId=e.modelId}};Symbol.for("vercel.ai.error.AI_InvalidDataContentError");var n0="AI_InvalidMessageRoleError",n2=`vercel.ai.error.${n0}`,n1=Symbol.for(n2),n5=class extends el{constructor({role:e,message:t=`Invalid message role: '${e}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:n0,message:t}),this[B]=!0,this.role=e}static isInstance(e){return el.hasMarker(e,n2)}};B=n1,Symbol.for("vercel.ai.error.AI_MessageConversionError");var n3="AI_DownloadError",n4=`vercel.ai.error.${n3}`,n7=Symbol.for(n4),n8=class extends el{constructor({url:e,statusCode:t,statusText:o,cause:i,message:a=null==i?`Failed to download ${e}: ${t} ${o}`:`Failed to download ${e}: ${i}`}){super({name:n3,message:a,cause:i}),this[C]=!0,this.url=e,this.statusCode=t,this.statusText=o}static isInstance(e){return el.hasMarker(e,n4)}};C=n7;var n6="AI_RetryError",n9=`vercel.ai.error.${n6}`,le=Symbol.for(n9),lt=class extends el{constructor({message:e,reason:t,errors:o}){super({name:n6,message:e}),this[R]=!0,this.reason=t,this.errors=o,this.lastError=o[o.length-1]}static isInstance(e){return el.hasMarker(e,n9)}};R=le;var lo=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}],li=e=>{let t="string"==typeof e?convertBase64ToUint8Array(e):e,o=(127&t[6])<<21|(127&t[7])<<14|(127&t[8])<<7|127&t[9];return t.slice(o+10)};async function la({url:e}){var t;let o=e.toString();try{let e=await fetch(o);if(!e.ok)throw new n8({url:o,statusCode:e.status,statusText:e.statusText});return{data:new Uint8Array(await e.arrayBuffer()),mediaType:null!=(t=e.headers.get("content-type"))?t:void 0}}catch(e){if(n8.isInstance(e))throw e;throw new n8({url:o,cause:e})}}var lr=aO([i0(),a1(Uint8Array),a1(ArrayBuffer),a2(e=>{var t,o;return null!=(o=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&o},{message:"Must be a Buffer"})]);function ls(e){if(e instanceof Uint8Array)return{data:e,mediaType:void 0};if(e instanceof ArrayBuffer)return{data:new Uint8Array(e),mediaType:void 0};if("string"==typeof e)try{e=new URL(e)}catch(e){}if(e instanceof URL&&"data:"===e.protocol){let{mediaType:t,base64Content:o}=function(e){try{let[t,o]=e.split(",");return{mediaType:t.split(";")[0].split(":")[1],base64Content:o}}catch(e){return{mediaType:void 0,base64Content:void 0}}}(e.toString());if(null==t||null==o)throw new AISDKError18({name:"InvalidDataContentError",message:`Invalid data URL format in content ${e.toString()}`});return{data:o,mediaType:t}}return{data:e,mediaType:void 0}}async function ln(e,t,o){let i=e.filter(e=>"user"===e.role).map(e=>e.content).filter(e=>Array.isArray(e)).flat().filter(e=>"image"===e.type||"file"===e.type).map(e=>{var t;let o=null!=(t=e.mediaType)?t:"image"===e.type?"image/*":void 0,i="image"===e.type?e.image:e.data;if("string"==typeof i)try{i=new URL(i)}catch(e){}return{mediaType:o,data:i}}).filter(e=>e.data instanceof URL&&null!=e.mediaType&&!isUrlSupported({url:e.data.toString(),mediaType:e.mediaType,supportedUrls:o})).map(e=>e.data);return Object.fromEntries((await Promise.all(i.map(async e=>({url:e,data:await t({url:e})})))).map(({url:e,data:t})=>[e.toString(),t]))}var ll=aX(()=>aO([ax(),i0(),ap(),av(),aB(i0(),ll),aw(ll)])),ld=aB(i0(),aB(i0(),ll)),lc=aA({type:aD("text"),text:i0(),providerOptions:ld.optional()}),lu=aA({type:aD("image"),image:aO([lr,a1(URL)]),mediaType:i0().optional(),providerOptions:ld.optional()}),lp=aA({type:aD("file"),data:aO([lr,a1(URL)]),filename:i0().optional(),mediaType:i0(),providerOptions:ld.optional()}),lm=aA({type:aD("reasoning"),text:i0(),providerOptions:ld.optional()}),lg=aA({type:aD("tool-call"),toolCallId:i0(),toolName:i0(),input:ak(),providerOptions:ld.optional(),providerExecuted:av().optional()}),lh=az("type",[aA({type:aD("text"),value:i0()}),aA({type:aD("json"),value:ll}),aA({type:aD("error-text"),value:i0()}),aA({type:aD("error-json"),value:ll}),aA({type:aD("content"),value:aw(aO([aA({type:aD("text"),text:i0()}),aA({type:aD("media"),data:i0(),mediaType:i0()})]))})]),lv=aA({type:aD("tool-result"),toolCallId:i0(),toolName:i0(),output:lh,providerOptions:ld.optional()}),lf=aA({role:aD("system"),content:i0(),providerOptions:ld.optional()}),lx=aA({role:aD("user"),content:aO([i0(),aw(aO([lc,lu,lp]))]),providerOptions:ld.optional()}),lb=aA({role:aD("assistant"),content:aO([i0(),aw(aO([lc,lp,lm,lg,lv]))]),providerOptions:ld.optional()}),lk=aO([lf,lx,lb,aA({role:aD("tool"),content:aw(lv),providerOptions:ld.optional()})]),ly={startSpan:()=>lM,startActiveSpan:(e,t,o,i)=>"function"==typeof t?t(lM):"function"==typeof o?o(lM):"function"==typeof i?i(lM):void 0},lM={spanContext:()=>lI,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},lI={traceId:"",spanId:"",traceFlags:0};function lw(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:SpanStatusCode.ERROR,message:t.message})):e.setStatus({code:SpanStatusCode.ERROR})}function lS({telemetry:e,attributes:t}){return(null==e?void 0:e.isEnabled)!==!0?{}:Object.entries(t).reduce((t,[o,i])=>{if(null==i)return t;if("object"==typeof i&&"input"in i&&"function"==typeof i.input){if((null==e?void 0:e.recordInputs)===!1)return t;let a=i.input();return null==a?t:{...t,[o]:a}}if("object"==typeof i&&"output"in i&&"function"==typeof i.output){if((null==e?void 0:e.recordOutputs)===!1)return t;let a=i.output();return null==a?t:{...t,[o]:a}}return{...t,[o]:i}},{})}function lA(e,t){return null==e&&null==t?void 0:(null!=e?e:0)+(null!=t?t:0)}var lT=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:o=2,abortSignal:i}={})=>async a=>lP(a,{maxRetries:e,delayInMs:t,backoffFactor:o,abortSignal:i});async function lP(e,{maxRetries:t,delayInMs:o,backoffFactor:i,abortSignal:a},r=[]){try{return await e()}catch(d){if(isAbortError(d)||0===t)throw d;let s=getErrorMessage3(d),n=[...r,d],l=n.length;if(l>t)throw new lt({message:`Failed after ${l} attempts. Last error: ${s}`,reason:"maxRetriesExceeded",errors:n});if(d instanceof Error&&APICallError2.isInstance(d)&&!0===d.isRetryable&&l<=t)return await delay(function({error:e,exponentialBackoffDelay:t}){let o;let i=e.responseHeaders;if(!i)return t;let a=i["retry-after-ms"];if(a){let e=parseFloat(a);Number.isNaN(e)||(o=e)}let r=i["retry-after"];if(r&&void 0===o){let e=parseFloat(r);o=Number.isNaN(e)?Date.parse(r)-Date.now():1e3*e}return null!=o&&!Number.isNaN(o)&&0<=o&&(o<6e4||o<t)?o:t}({error:d,exponentialBackoffDelay:o}),{abortSignal:a}),lP(e,{maxRetries:t,delayInMs:i*o,backoffFactor:i,abortSignal:a},n);if(1===l)throw d;throw new lt({message:`Failed after ${l} attempts with non-retryable error: '${s}'`,reason:"errorNotRetryable",errors:n})}}var lN=class{constructor({data:e,mediaType:t}){let o=e instanceof Uint8Array;this.base64Data=o?void 0:e,this.uint8ArrayData=o?e:void 0,this.mediaType=t}get base64(){return null==this.base64Data&&(this.base64Data=function(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCodePoint(e[o]);return ny(t)}(this.uint8ArrayData)),this.base64Data}get uint8Array(){return null==this.uint8ArrayData&&(this.uint8ArrayData=function(e){let t=nM(e.replace(/-/g,"+").replace(/_/g,"/"));return Uint8Array.from(t,e=>e.codePointAt(0))}(this.base64Data)),this.uint8ArrayData}};async function lO({toolCall:e,tools:t}){let o=e.toolName,i=t[o];if(null==i)throw new nK({toolName:e.toolName,availableTools:Object.keys(t)});let a=asSchema2(i.inputSchema),r=""===e.input.trim()?await safeValidateTypes2({value:{},schema:a}):await safeParseJSON({text:e.input,schema:a});if(!1===r.success)throw new nB({toolName:o,toolInput:e.input,cause:r.error});return"dynamic"===i.type?{type:"tool-call",toolCallId:e.toolCallId,toolName:e.toolName,input:r.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,dynamic:!0}:{type:"tool-call",toolCallId:e.toolCallId,toolName:o,input:r.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}}function l_({output:e,tool:t,errorMode:o}){return"text"===o?{type:"error-text",value:getErrorMessage4(e)}:"json"===o?{type:"error-json",value:lz(e)}:(null==t?void 0:t.toModelOutput)?t.toModelOutput(e):"string"==typeof e?{type:"text",value:e}:{type:"json",value:lz(e)}}function lz(e){return void 0===e?null:e}nc({prefix:"aitxt",size:24});function lE(e,t){let o=new Headers(null!=e?e:{});for(let[e,i]of Object.entries(t))o.has(e)||o.set(e,i);return o}TransformStream;var lq=aO([aT({type:aD("text-start"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("text-delta"),id:i0(),delta:i0(),providerMetadata:ld.optional()}),aT({type:aD("text-end"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("error"),errorText:i0()}),aT({type:aD("tool-input-start"),toolCallId:i0(),toolName:i0(),providerExecuted:av().optional(),dynamic:av().optional()}),aT({type:aD("tool-input-delta"),toolCallId:i0(),inputTextDelta:i0()}),aT({type:aD("tool-input-available"),toolCallId:i0(),toolName:i0(),input:ak(),providerExecuted:av().optional(),providerMetadata:ld.optional(),dynamic:av().optional()}),aT({type:aD("tool-input-error"),toolCallId:i0(),toolName:i0(),input:ak(),providerExecuted:av().optional(),providerMetadata:ld.optional(),dynamic:av().optional(),errorText:i0()}),aT({type:aD("tool-output-available"),toolCallId:i0(),output:ak(),providerExecuted:av().optional(),dynamic:av().optional(),preliminary:av().optional()}),aT({type:aD("tool-output-error"),toolCallId:i0(),errorText:i0(),providerExecuted:av().optional(),dynamic:av().optional()}),aT({type:aD("reasoning"),text:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-start"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-delta"),id:i0(),delta:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-end"),id:i0(),providerMetadata:ld.optional()}),aT({type:aD("reasoning-part-finish")}),aT({type:aD("source-url"),sourceId:i0(),url:i0(),title:i0().optional(),providerMetadata:ld.optional()}),aT({type:aD("source-document"),sourceId:i0(),mediaType:i0(),title:i0(),filename:i0().optional(),providerMetadata:ld.optional()}),aT({type:aD("file"),url:i0(),mediaType:i0(),providerMetadata:ld.optional()}),aT({type:i0().startsWith("data-"),id:i0().optional(),data:ak(),transient:av().optional()}),aT({type:aD("start-step")}),aT({type:aD("finish-step")}),aT({type:aD("start"),messageId:i0().optional(),messageMetadata:ak().optional()}),aT({type:aD("finish"),messageMetadata:ak().optional()}),aT({type:aD("abort")}),aT({type:aD("message-metadata"),messageMetadata:ak()})]);async function lB(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await nf({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await nf({text:function(e){let t=["ROOT"],o=-1,i=null;function a(e,a,r){switch(e){case'"':o=a,t.pop(),t.push(r),t.push("INSIDE_STRING");break;case"f":case"t":case"n":o=a,i=a,t.pop(),t.push(r),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(r),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=a,t.pop(),t.push(r),t.push("INSIDE_NUMBER");break;case"{":o=a,t.pop(),t.push(r),t.push("INSIDE_OBJECT_START");break;case"[":o=a,t.pop(),t.push(r),t.push("INSIDE_ARRAY_START")}}function r(e,i){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":o=i,t.pop()}}function s(e,i){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":o=i,t.pop()}}for(let n=0;n<e.length;n++){let l=e[n];switch(t[t.length-1]){case"ROOT":a(l,n,"FINISH");break;case"INSIDE_OBJECT_START":switch(l){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":o=n,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===l&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===l&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":a(l,n,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":r(l,n);break;case"INSIDE_STRING":switch(l){case'"':t.pop(),o=n;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:o=n}break;case"INSIDE_ARRAY_START":"]"===l?(o=n,t.pop()):(o=n,a(l,n,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(l){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":o=n,t.pop();break;default:o=n}break;case"INSIDE_ARRAY_AFTER_COMMA":a(l,n,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),o=n;break;case"INSIDE_NUMBER":switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=n;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&r(l,n);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&r(l,n);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n);break;default:t.pop()}break;case"INSIDE_LITERAL":{let a=e.substring(i,n+1);"false".startsWith(a)||"true".startsWith(a)||"null".startsWith(a)?o=n:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?r(l,n):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(l,n))}}}let n=e.slice(0,o+1);for(let o=t.length-1;o>=0;o--)switch(t[o]){case"INSIDE_STRING":n+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":n+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":n+="]";break;case"INSIDE_LITERAL":{let t=e.substring(i,e.length);"true".startsWith(t)?n+="true".slice(t.length):"false".startsWith(t)?n+="false".slice(t.length):"null".startsWith(t)&&(n+="null".slice(t.length))}}return n}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}function lj(e){return e.type.startsWith("tool-")}function lC(e){return e.type.split("-").slice(1).join("-")}async function lR({stream:e,onError:t}){let o=e.getReader();try{for(;;){let{done:e}=await o.read();if(e)break}}catch(e){null==t||t(e)}finally{o.releaseLock()}}function lD(){let e,t;return{promise:new Promise((o,i)=>{e=o,t=i}),resolve:e,reject:t}}nc({prefix:"aitxt",size:24});async function lL(e,t,o){let i=await safeParseJSON3({text:e});if(!i.success)throw new nZ({message:"No object generated: could not parse the response.",cause:i.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});let a=await t.validateFinalResult(i.value,{text:e,response:o.response,usage:o.usage});if(!a.success)throw new nZ({message:"No object generated: response did not match schema.",cause:a.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});return a.value}nc({prefix:"aiobj",size:24});var l$=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,o)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){o(e)}}),this.processQueue()})}};nc({prefix:"aiobj",size:24}),((e,t)=>{for(var o in t)nI(e,o,{get:t[o],enumerable:!0})})({},{object:()=>lF,text:()=>lZ});var lZ=()=>({type:"text",responseFormat:{type:"text"},parsePartial:async({text:e})=>({partial:e}),parseOutput:async({text:e})=>e}),lF=({schema:e})=>{let t=function(e){return null==e?nk({properties:{},additionalProperties:!1}):"object"==typeof e&&null!==e&&nb in e&&!0===e[nb]&&"jsonSchema"in e&&"validate"in e?e:function(e,t){return"_zod"in e?nk(e4(e,{target:"draft-7",io:"output",reused:"inline"}),{validate:async t=>{let o=await tp(e,t);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}}):nk(nd(e,{$refStrategy:"none",target:"jsonSchema7"}),{validate:async t=>{let o=await e.safeParseAsync(t);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}})}(e)}(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:e}){let t=await lB(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{let e=t.state;throw Error(`Unsupported parse state: ${e}`)}}},async parseOutput({text:e},o){let i=await nf({text:e});if(!i.success)throw new nZ({message:"No object generated: could not parse the response.",cause:i.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});let a=await nv({value:i.value,schema:t});if(!a.success)throw new nZ({message:"No object generated: response did not match schema.",cause:a.error,text:e,response:o.response,usage:o.usage,finishReason:o.finishReason});return a.value}}},lQ=({model:e,middleware:{transformParams:t,wrapGenerate:o,wrapStream:i,overrideProvider:a,overrideModelId:r,overrideSupportedUrls:s},modelId:n,providerId:l})=>{var d,c,u;async function p({params:o,type:i}){return t?await t({params:o,type:i,model:e}):o}return{specificationVersion:"v2",provider:null!=(d=null!=l?l:null==a?void 0:a({model:e}))?d:e.provider,modelId:null!=(c=null!=n?n:null==r?void 0:r({model:e}))?c:e.modelId,supportedUrls:null!=(u=null==s?void 0:s({model:e}))?u:e.supportedUrls,async doGenerate(t){let i=await p({params:t,type:"generate"}),a=async()=>e.doGenerate(i),r=async()=>e.doStream(i);return o?o({doGenerate:a,doStream:r,params:i,model:e}):a()},async doStream(t){let o=await p({params:t,type:"stream"}),a=async()=>e.doGenerate(o),r=async()=>e.doStream(o);return i?i({doGenerate:a,doStream:r,params:o,model:e}):r()}}},lG="AI_NoSuchProviderError",lU=`vercel.ai.error.${lG}`;D=Symbol.for(lU);var lV=aP({name:i0(),version:i0()}),lK=aP({_meta:aZ(aA({}).loose())}),lW=aA({method:i0(),params:aZ(lK)}),lJ=aP({experimental:aZ(aA({}).loose()),logging:aZ(aA({}).loose()),prompts:aZ(aP({listChanged:aZ(av())})),resources:aZ(aP({subscribe:aZ(av()),listChanged:aZ(av())})),tools:aZ(aP({listChanged:aZ(av())}))}),lY=(lK.extend({protocolVersion:i0(),capabilities:lJ,serverInfo:lV,instructions:aZ(i0())}),lK.extend({nextCursor:aZ(i0())})),lH=aA({name:i0(),description:aZ(i0()),inputSchema:aA({type:aD("object"),properties:aZ(aA({}).loose())}).loose()}).loose(),lX=(lY.extend({tools:aw(lH)}),aA({type:aD("text"),text:i0()}).loose()),l0=aA({type:aD("image"),data:iC(an,void 0),mimeType:i0()}).loose(),l2=aA({uri:i0(),mimeType:aZ(i0())}).loose(),l1=l2.extend({text:i0()}),l5=l2.extend({blob:iC(an,void 0)}),l3=aA({type:aD("resource"),resource:aO([l1,l5])}).loose(),l4=(lK.extend({content:aw(aO([lX,l0,l3])),isError:av().default(!1).optional()}).or(lK.extend({toolResult:ak()})),aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()])}).merge(lW).strict()),l7=aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()]),result:lK}).strict(),l8=aA({jsonrpc:aD("2.0"),id:aO([i0(),ap().int()]),error:aA({code:ap().int(),message:i0(),data:aZ(ak())})}).strict(),l6=aO([l4,aA({jsonrpc:aD("2.0")}).merge(aA({method:i0(),params:aZ(lK)})).strict(),l7,l8]);async function l9(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:o}=e;return{type:"file",mediaType:o,filename:t,url:await new Promise((t,o)=>{let i=new FileReader;i.onload=e=>{var o;t(null==(o=e.target)?void 0:o.result)},i.onerror=e=>o(e),i.readAsDataURL(e)})}}))}var de=class{constructor({api:e="/api/chat",credentials:t,headers:o,body:i,fetch:a,prepareSendMessagesRequest:r,prepareReconnectToStreamRequest:s}){this.api=e,this.credentials=t,this.headers=o,this.body=i,this.fetch=a,this.prepareSendMessagesRequest=r,this.prepareReconnectToStreamRequest=s}async sendMessages({abortSignal:e,...t}){var o,i,a,r,s;let n=await nx(this.body),l=await nx(this.headers),d=await nx(this.credentials),c=await (null==(o=this.prepareSendMessagesRequest)?void 0:o.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...n,...t.body},headers:{...l,...t.headers},credentials:d,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),u=null!=(i=null==c?void 0:c.api)?i:this.api,p=(null==c?void 0:c.headers)!==void 0?c.headers:{...l,...t.headers},m=(null==c?void 0:c.body)!==void 0?c.body:{...n,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=null!=(a=null==c?void 0:c.credentials)?a:d,h=null!=(r=this.fetch)?r:globalThis.fetch,v=await h(u,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(m),credentials:g,signal:e});if(!v.ok)throw Error(null!=(s=await v.text())?s:"Failed to fetch the chat response.");if(!v.body)throw Error("The response body is empty.");return this.processResponseStream(v.body)}async reconnectToStream(e){var t,o,i,a,r;let s=await nx(this.body),n=await nx(this.headers),l=await nx(this.credentials),d=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...s,...e.body},headers:{...n,...e.headers},credentials:l,requestMetadata:e.metadata})),c=null!=(o=null==d?void 0:d.api)?o:`${this.api}/${e.chatId}/stream`,u=(null==d?void 0:d.headers)!==void 0?d.headers:{...n,...e.headers},p=null!=(i=null==d?void 0:d.credentials)?i:l,m=null!=(a=this.fetch)?a:globalThis.fetch,g=await m(c,{method:"GET",headers:u,credentials:p});if(204===g.status)return null;if(!g.ok)throw Error(null!=(r=await g.text())?r:"Failed to fetch the chat response.");if(!g.body)throw Error("The response body is empty.");return this.processResponseStream(g.body)}},dt=class extends de{constructor(e={}){super(e)}processResponseStream(e){return(function({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new eE).pipeThrough(new TransformStream({async transform({data:e},o){"[DONE]"!==e&&o.enqueue(await nf({text:e,schema:t}))}}))})({stream:e,schema:lq}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},di=class{constructor({generateId:e=nu,id:t=e(),transport:o=new dt,messageMetadataSchema:i,dataPartSchemas:a,state:r,onError:s,onToolCall:n,onFinish:l,onData:d,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new l$,this.sendMessage=async(e,t)=>{var o,i,a,r;let s;if(null==e){await this.makeRequest({trigger:"submit-message",messageId:null==(o=this.lastMessage)?void 0:o.id,...t});return}if(s="text"in e||"files"in e?{parts:[...Array.isArray(e.files)?e.files:await l9(e.files),..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}:e,null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...s,id:e.messageId,role:null!=(i=s.role)?i:"user",metadata:e.metadata})}else this.state.pushMessage({...s,id:null!=(a=s.id)?a:this.generateId(),role:null!=(r=s.role)?r:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let o=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===o)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[o].role?o:o+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolResult=async({tool:e,toolCallId:t,output:o})=>this.jobExecutor.run(async()=>{var e,i;let a=this.state.messages,r=a[a.length-1];this.state.replaceMessage(a.length-1,{...r,parts:r.parts.map(e=>lj(e)&&e.toolCallId===t?{...e,state:"output-available",output:o}:e)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(e=>lj(e)&&e.toolCallId===t?{...e,state:"output-available",output:o,errorText:void 0}:e)),"streaming"!==this.status&&"submitted"!==this.status&&(null==(e=this.sendAutomaticallyWhen)?void 0:e.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:null==(i=this.lastMessage)?void 0:i.id})}),this.stop=async()=>{var e;("streaming"===this.status||"submitted"===this.status)&&(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=o,this.generateId=e,this.messageMetadataSchema=i,this.dataPartSchemas=a,this.state=r,this.onError=s,this.onToolCall=n,this.onFinish=l,this.onData=d,this.sendAutomaticallyWhen=c}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:o,body:i,messageId:a}){var r,s,n;this.setStatus({status:"submitted",error:void 0});let l=this.lastMessage;try{let s;let n={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}({lastMessage:this.state.snapshot(l),messageId:this.generateId()}),abortController:new AbortController};if(this.activeResponse=n,"resume-stream"===e){let e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:o,body:i});if(null==e){this.setStatus({status:"ready"});return}s=e}else s=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:n.abortController.signal,metadata:t,headers:o,body:i,trigger:e,messageId:a});await lR({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:o,runUpdateMessageJob:i,onError:a,onToolCall:r,onData:s}){return e.pipeThrough(new TransformStream({async transform(e,n){await i(async({state:i,write:l})=>{var d,c,u,p;function m(e){let t=i.message.parts.filter(lj).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function g(e){let t=i.message.parts.filter(e=>"dynamic-tool"===e.type).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function h(e){var t;let o=i.message.parts.find(t=>lj(t)&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=e.rawInput,o.preliminary=e.preliminary,o.providerExecuted=null!=(t=e.providerExecuted)?t:o.providerExecuted,null!=e.providerMetadata&&"input-available"===o.state&&(o.callProviderMetadata=e.providerMetadata)):i.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}function v(e){var t;let o=i.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);null!=o?(o.state=e.state,o.toolName=e.toolName,o.input=e.input,o.output=e.output,o.errorText=e.errorText,o.rawInput=null!=(t=e.rawInput)?t:o.rawInput,o.preliminary=e.preliminary,null!=e.providerMetadata&&"input-available"===o.state&&(o.callProviderMetadata=e.providerMetadata)):i.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,preliminary:e.preliminary,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}async function f(e){if(null!=e){let o=null!=i.message.metadata?function e(t,o){if(void 0===t&&void 0===o)return;if(void 0===t)return o;if(void 0===o)return t;let i={...t};for(let a in o)if(Object.prototype.hasOwnProperty.call(o,a)){let r=o[a];if(void 0===r)continue;let s=a in t?t[a]:void 0,n=null!==r&&"object"==typeof r&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),l=null!=s&&"object"==typeof s&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp);n&&l?i[a]=e(s,r):i[a]=r}return i}(i.message.metadata,e):e;null!=t&&await nh({value:o,schema:t}),i.message.metadata=o}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};i.activeTextParts[e.id]=t,i.message.parts.push(t),l();break}case"text-delta":{let t=i.activeTextParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,l();break}case"text-end":{let t=i.activeTextParts[e.id];t.state="done",t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,delete i.activeTextParts[e.id],l();break}case"reasoning-start":{let t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};i.activeReasoningParts[e.id]=t,i.message.parts.push(t),l();break}case"reasoning-delta":{let t=i.activeReasoningParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(u=e.providerMetadata)?u:t.providerMetadata,l();break}case"reasoning-end":{let t=i.activeReasoningParts[e.id];t.providerMetadata=null!=(p=e.providerMetadata)?p:t.providerMetadata,t.state="done",delete i.activeReasoningParts[e.id],l();break}case"file":i.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),l();break;case"source-url":i.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),l();break;case"source-document":i.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),l();break;case"tool-input-start":{let t=i.message.parts.filter(lj);i.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic},e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted}),l();break}case"tool-input-delta":{let t=i.partialToolCalls[e.toolCallId];t.text+=e.inputTextDelta;let{value:o}=await lB(t.text);t.dynamic?v({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:o}):h({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:o}),l();break}case"tool-input-available":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerMetadata:e.providerMetadata}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),l(),r&&!e.providerExecuted&&await r({toolCall:e});break;case"tool-input-error":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerMetadata:e.providerMetadata}):h({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),l();break;case"tool-output-available":if(e.dynamic){let t=g(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output,preliminary:e.preliminary})}else{let t=m(e.toolCallId);h({toolCallId:e.toolCallId,toolName:lC(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted,preliminary:e.preliminary})}l();break;case"tool-output-error":if(e.dynamic){let t=g(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText})}else{let t=m(e.toolCallId);h({toolCallId:e.toolCallId,toolName:lC(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText})}l();break;case"start-step":i.message.parts.push({type:"step-start"});break;case"finish-step":i.activeTextParts={},i.activeReasoningParts={};break;case"start":null!=e.messageId&&(i.message.id=e.messageId),await f(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&l();break;case"finish":case"message-metadata":await f(e.messageMetadata),null!=e.messageMetadata&&l();break;case"error":null==a||a(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==o?void 0:o[e.type])!=null&&await nh({value:e.data,schema:o[e.type]}),e.transient){null==s||s(e);break}let t=null!=e.id?i.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:i.message.parts.push(e),null==s||s(e),l()}}n.enqueue(e)})}}))}({stream:s,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:e=>this.jobExecutor.run(()=>e({state:n.state,write:()=>{var e;this.setStatus({status:"streaming"}),n.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,n.state.message):this.state.pushMessage(n.state.message)}})),onError:e=>{throw e}}),onError:e=>{throw e}}),null==(r=this.onFinish)||r.call(this,{message:n.state.message}),this.setStatus({status:"ready"})}catch(e){if("AbortError"===e.name)return this.setStatus({status:"ready"}),null;this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{this.activeResponse=void 0}(null==(s=this.sendAutomaticallyWhen)?void 0:s.call(this,{messages:this.state.messages}))&&await this.makeRequest({trigger:"submit-message",messageId:null==(n=this.lastMessage)?void 0:n.id,metadata:t,headers:o,body:i})}},da=aA({type:aD("text"),text:i0(),state:aC(["streaming","done"]).optional(),providerMetadata:ld.optional()}),dr=aA({type:aD("reasoning"),text:i0(),state:aC(["streaming","done"]).optional(),providerMetadata:ld.optional()}),ds=aA({type:aD("source-url"),sourceId:i0(),url:i0(),title:i0().optional(),providerMetadata:ld.optional()}),dn=aA({type:aD("source-document"),sourceId:i0(),mediaType:i0(),title:i0(),filename:i0().optional(),providerMetadata:ld.optional()}),dl=aA({type:aD("file"),mediaType:i0(),filename:i0().optional(),url:i0(),providerMetadata:ld.optional()}),dd=aA({type:aD("step-start")}),dc=aA({type:i0().startsWith("data-"),id:i0().optional(),data:ak()}),du=[aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("input-streaming"),input:ak().optional(),output:aM().optional(),errorText:aM().optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("input-available"),input:ak(),output:aM().optional(),errorText:aM().optional(),callProviderMetadata:ld.optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("output-available"),input:ak(),output:ak(),errorText:aM().optional(),callProviderMetadata:ld.optional(),preliminary:av().optional()}),aA({type:aD("dynamic-tool"),toolName:i0(),toolCallId:i0(),state:aD("output-error"),input:ak(),output:aM().optional(),errorText:i0(),callProviderMetadata:ld.optional()})],dp=[aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("input-streaming"),input:ak().optional(),output:aM().optional(),errorText:aM().optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("input-available"),input:ak(),output:aM().optional(),errorText:aM().optional(),callProviderMetadata:ld.optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("output-available"),input:ak(),output:ak(),errorText:aM().optional(),callProviderMetadata:ld.optional(),preliminary:av().optional()}),aA({type:i0().startsWith("tool-"),toolCallId:i0(),state:aD("output-error"),input:ak(),output:aM().optional(),errorText:i0(),callProviderMetadata:ld.optional()})],dm=(aA({id:i0(),role:aC(["system","user","assistant"]),metadata:ak().optional(),parts:aw(aO([da,dr,ds,dn,dl,dd,dc,...du,...dp]))}),o(68301)),dg=(e,t,o)=>{if(!t.has(e))throw TypeError("Cannot "+o)},dh=(e,t,o)=>(dg(e,t,"read from private field"),o?o.call(e):t.get(e)),dv=(e,t,o)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,o)},df=(e,t,o,i)=>(dg(e,t,"write to private field"),i?i.call(e,o):t.set(e,o),o),dx=class{constructor(e=[]){dv(this,L,void 0),dv(this,$,"ready"),dv(this,Z,void 0),dv(this,F,new Set),dv(this,Q,new Set),dv(this,G,new Set),this.pushMessage=e=>{df(this,L,dh(this,L).concat(e)),dh(this,U).call(this)},this.popMessage=()=>{df(this,L,dh(this,L).slice(0,-1)),dh(this,U).call(this)},this.replaceMessage=(e,t)=>{df(this,L,[...dh(this,L).slice(0,e),this.snapshot(t),...dh(this,L).slice(e+1)]),dh(this,U).call(this)},this.snapshot=e=>structuredClone(e),this["~registerMessagesCallback"]=(e,t)=>{let o=t?function(e,t){return null!=t?dm(e,t):e}(e,t):e;return dh(this,F).add(o),()=>{dh(this,F).delete(o)}},this["~registerStatusCallback"]=e=>(dh(this,Q).add(e),()=>{dh(this,Q).delete(e)}),this["~registerErrorCallback"]=e=>(dh(this,G).add(e),()=>{dh(this,G).delete(e)}),dv(this,U,()=>{dh(this,F).forEach(e=>e())}),dv(this,V,()=>{dh(this,Q).forEach(e=>e())}),dv(this,K,()=>{dh(this,G).forEach(e=>e())}),df(this,L,e)}get status(){return dh(this,$)}set status(e){df(this,$,e),dh(this,V).call(this)}get error(){return dh(this,Z)}set error(e){df(this,Z,e),dh(this,K).call(this)}get messages(){return dh(this,L)}set messages(e){df(this,L,[...e]),dh(this,U).call(this)}};L=new WeakMap,$=new WeakMap,Z=new WeakMap,F=new WeakMap,Q=new WeakMap,G=new WeakMap,U=new WeakMap,V=new WeakMap,K=new WeakMap;var db=class extends di{constructor({messages:e,...t}){let o=new dx(e);super({...t,state:o}),dv(this,W,void 0),this["~registerMessagesCallback"]=(e,t)=>dh(this,W)["~registerMessagesCallback"](e,t),this["~registerStatusCallback"]=e=>dh(this,W)["~registerStatusCallback"](e),this["~registerErrorCallback"]=e=>dh(this,W)["~registerErrorCallback"](e),df(this,W,o)}};W=new WeakMap;var dk=o(15211),dy=o(76812),dM=o(77863);let dI=({size:e=16})=>(0,H.jsxs)("svg",{height:e,strokeLinejoin:"round",style:{color:"currentcolor"},viewBox:"0 0 16 16",width:e,children:[H.jsx("title",{children:"Loader"}),(0,H.jsxs)("g",{clipPath:"url(#clip0_2393_1490)",children:[H.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),H.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),H.jsx("defs",{children:H.jsx("clipPath",{id:"clip0_2393_1490",children:H.jsx("rect",{fill:"white",height:"16",width:"16"})})})]}),dw=({className:e,size:t=16,...o})=>H.jsx("div",{className:(0,dM.cn)("inline-flex animate-spin items-center justify-center",e),...o,children:H.jsx(dI,{size:t})});var dS=o(45353),dA="undefined"!=typeof document?X.useLayoutEffect:function(){},dT=function(e){var t=ee().useRef(e);return dA(function(){t.current=e}),t},dP=function(e,t){if("function"==typeof e){e(t);return}e.current=t},dN=function(e,t){var o=ee().useRef();return ee().useCallback(function(i){e.current=i,o.current&&dP(o.current,null),o.current=t,t&&dP(t,i)},[t])},dO="undefined"!=typeof document,d_={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},dz=function(e){Object.keys(d_).forEach(function(t){e.style.setProperty(t,d_[t],"important")})},dE=null,dq=function(e,t){var o=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?o+t.borderSize:o-t.paddingSize},dB=function(){},dj=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],dC=!!dO&&!!document.documentElement.currentStyle,dR=function(e){var t=window.getComputedStyle(e);if(null===t)return null;var o=dj.reduce(function(e,o){return e[o]=t[o],e},{}),i=o.boxSizing;if(""===i)return null;dC&&"border-box"===i&&(o.width=parseFloat(o.width)+parseFloat(o.borderRightWidth)+parseFloat(o.borderLeftWidth)+parseFloat(o.paddingRight)+parseFloat(o.paddingLeft)+"px");var a=parseFloat(o.paddingBottom)+parseFloat(o.paddingTop),r=parseFloat(o.borderBottomWidth)+parseFloat(o.borderTopWidth);return{sizingStyle:o,paddingSize:a,borderSize:r}};function dD(e,t,o){var i=dT(o);X.useLayoutEffect(function(){var o=function(e){return i.current(e)};if(e)return e.addEventListener(t,o),function(){return e.removeEventListener(t,o)}},[])}var dL=function(e,t){dD(document.body,"reset",function(o){e.current.form===o.target&&t(o)})},d$=function(e){dD(window,"resize",e)},dZ=function(e){dD(document.fonts,"loadingdone",e)},dF=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],dQ=X.forwardRef(function(e,t){var o=e.cacheMeasurements,i=e.maxRows,a=e.minRows,r=e.onChange,s=void 0===r?dB:r,n=e.onHeightChange,l=void 0===n?dB:n,d=function(e,t){if(null==e)return{};var o={};for(var i in e)if(({}).hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;o[i]=e[i]}return o}(e,dF),c=void 0!==d.value,u=X.useRef(null),p=dN(u,t),m=X.useRef(0),g=X.useRef(),h=function(){var e,t,r,s,n,d,c,p,h,v,f,x=u.current,b=o&&g.current?g.current:dR(x);if(b){g.current=b;var k=(e=x.value||x.placeholder||"x",void 0===(t=a)&&(t=1),void 0===(r=i)&&(r=1/0),dE||((dE=document.createElement("textarea")).setAttribute("tabindex","-1"),dE.setAttribute("aria-hidden","true"),dz(dE)),null===dE.parentNode&&document.body.appendChild(dE),s=b.paddingSize,n=b.borderSize,c=(d=b.sizingStyle).boxSizing,Object.keys(d).forEach(function(e){dE.style[e]=d[e]}),dz(dE),dE.value=e,p=dq(dE,b),dE.value=e,p=dq(dE,b),dE.value="x",v=(h=dE.scrollHeight-s)*t,"border-box"===c&&(v=v+s+n),p=Math.max(v,p),f=h*r,"border-box"===c&&(f=f+s+n),[p=Math.min(f,p),h]),y=k[0],M=k[1];m.current!==y&&(m.current=y,x.style.setProperty("height",y+"px","important"),l(y,{rowHeight:M}))}};return dO?(X.useLayoutEffect(h),dL(u,function(){if(!c){var e=u.current.value;requestAnimationFrame(function(){var t=u.current;t&&e!==t.value&&h()})}}),d$(h),dZ(h),X.createElement("textarea",(0,dS.Z)({},d,{onChange:function(e){c||h(),s(e)},ref:p}))):X.createElement("textarea",(0,dS.Z)({},d,{onChange:s,ref:p}))}),dG=o(68232),dU=o(42270),dV=o(59161),dK=o(30463),dW=o(36283);let dJ=(0,o(76557).Z)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var dY=o(47206),dH=o(34789),dX=o(360),d0=o(90772),d2=o(33261),d1=o(33071),d5=o(15728),d3=o(13854),d4=o(15286),d7=o(24295),d8=o(37859),d6=o(567),d9=o(43641),ce=o(77961);function ct(e,t,{checkForDefaultPrevented:o=!0}={}){return function(i){if(e?.(i),!1===o||!i.defaultPrevented)return t?.(i)}}"undefined"!=typeof window&&window.document&&window.document.createElement;var co=o(93095),ci=o(52067),ca=o(48051),cr=o(77192),cs=o(87389),cn=o(92764),cl=o(45226),cd=o(55049),cc=o(65819),cu=o(2566),cp="Popper",[cm,cg]=(0,co.b)(cp),[ch,cv]=cm(cp),cf=e=>{let{__scopePopper:t,children:o}=e,[i,a]=X.useState(null);return(0,H.jsx)(ch,{scope:t,anchor:i,onAnchorChange:a,children:o})};cf.displayName=cp;var cx="PopperAnchor",cb=X.forwardRef((e,t)=>{let{__scopePopper:o,virtualRef:i,...a}=e,r=cv(cx,o),s=X.useRef(null),n=(0,ca.e)(t,s),l=X.useRef(null);return X.useEffect(()=>{let e=l.current;l.current=i?.current||s.current,e!==l.current&&r.onAnchorChange(l.current)}),i?null:(0,H.jsx)(cl.WV.div,{...a,ref:n})});cb.displayName=cx;var ck="PopperContent",[cy,cM]=cm(ck),cI=X.forwardRef((e,t)=>{let{__scopePopper:o,side:i="bottom",sideOffset:a=0,align:r="center",alignOffset:s=0,arrowPadding:n=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:c=0,sticky:u="partial",hideWhenDetached:p=!1,updatePositionStrategy:m="optimized",onPlaced:g,...h}=e,v=cv(ck,o),[f,x]=X.useState(null),b=(0,ca.e)(t,e=>x(e)),[k,y]=X.useState(null),M=(0,cu.t)(k),I=M?.width??0,w=M?.height??0,S="number"==typeof c?c:{top:0,right:0,bottom:0,left:0,...c},A=Array.isArray(d)?d:[d],T=A.length>0,P={padding:S,boundary:A.filter(cT),altBoundary:T},{refs:N,floatingStyles:O,placement:_,isPositioned:z,middlewareData:E}=(0,cr.YF)({strategy:"fixed",placement:i+("center"!==r?"-"+r:""),whileElementsMounted:(...e)=>(0,cs.Me)(...e,{animationFrame:"always"===m}),elements:{reference:v.anchor},middleware:[(0,cr.cv)({mainAxis:a+w,alignmentAxis:s}),l&&(0,cr.uY)({mainAxis:!0,crossAxis:!1,limiter:"partial"===u?(0,cr.dr)():void 0,...P}),l&&(0,cr.RR)({...P}),(0,cr.dp)({...P,apply:({elements:e,rects:t,availableWidth:o,availableHeight:i})=>{let{width:a,height:r}=t.reference,s=e.floating.style;s.setProperty("--radix-popper-available-width",`${o}px`),s.setProperty("--radix-popper-available-height",`${i}px`),s.setProperty("--radix-popper-anchor-width",`${a}px`),s.setProperty("--radix-popper-anchor-height",`${r}px`)}}),k&&(0,cr.x7)({element:k,padding:n}),cP({arrowWidth:I,arrowHeight:w}),p&&(0,cr.Cp)({strategy:"referenceHidden",...P})]}),[q,B]=cN(_),j=(0,cd.W)(g);(0,cc.b)(()=>{z&&j?.()},[z,j]);let C=E.arrow?.x,R=E.arrow?.y,D=E.arrow?.centerOffset!==0,[L,$]=X.useState();return(0,cc.b)(()=>{f&&$(window.getComputedStyle(f).zIndex)},[f]),(0,H.jsx)("div",{ref:N.setFloating,"data-radix-popper-content-wrapper":"",style:{...O,transform:z?O.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:L,"--radix-popper-transform-origin":[E.transformOrigin?.x,E.transformOrigin?.y].join(" "),...E.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,H.jsx)(cy,{scope:o,placedSide:q,onArrowChange:y,arrowX:C,arrowY:R,shouldHideArrow:D,children:(0,H.jsx)(cl.WV.div,{"data-side":q,"data-align":B,...h,ref:b,style:{...h.style,animation:z?void 0:"none"}})})})});cI.displayName=ck;var cw="PopperArrow",cS={top:"bottom",right:"left",bottom:"top",left:"right"},cA=X.forwardRef(function(e,t){let{__scopePopper:o,...i}=e,a=cM(cw,o),r=cS[a.placedSide];return(0,H.jsx)("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[r]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:(0,H.jsx)(cn.f,{...i,ref:t,style:{...i.style,display:"block"}})})});function cT(e){return null!==e}cA.displayName=cw;var cP=e=>({name:"transformOrigin",options:e,fn(t){let{placement:o,rects:i,middlewareData:a}=t,r=a.arrow?.centerOffset!==0,s=r?0:e.arrowWidth,n=r?0:e.arrowHeight,[l,d]=cN(o),c={start:"0%",center:"50%",end:"100%"}[d],u=(a.arrow?.x??0)+s/2,p=(a.arrow?.y??0)+n/2,m="",g="";return"bottom"===l?(m=r?c:`${u}px`,g=`${-n}px`):"top"===l?(m=r?c:`${u}px`,g=`${i.floating.height+n}px`):"right"===l?(m=`${-n}px`,g=r?c:`${p}px`):"left"===l&&(m=`${i.floating.width+n}px`,g=r?c:`${p}px`),{data:{x:m,y:g}}}});function cN(e){let[t,o="center"]=e.split("-");return[t,o]}o(83078);var cO=e=>{let{present:t,children:o}=e,i=function(e){var t,o;let[i,a]=X.useState(),r=X.useRef(null),s=X.useRef(e),n=X.useRef("none"),[l,d]=(t=e?"mounted":"unmounted",o={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},X.useReducer((e,t)=>o[e][t]??e,t));return X.useEffect(()=>{let e=c_(r.current);n.current="mounted"===l?e:"none"},[l]),(0,cc.b)(()=>{let t=r.current,o=s.current;if(o!==e){let i=n.current,a=c_(t);e?d("MOUNT"):"none"===a||t?.display==="none"?d("UNMOUNT"):o&&i!==a?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),(0,cc.b)(()=>{if(i){let e;let t=i.ownerDocument.defaultView??window,o=o=>{let a=c_(r.current).includes(CSS.escape(o.animationName));if(o.target===i&&a&&(d("ANIMATION_END"),!s.current)){let o=i.style.animationFillMode;i.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===i.style.animationFillMode&&(i.style.animationFillMode=o)})}},a=e=>{e.target===i&&(n.current=c_(r.current))};return i.addEventListener("animationstart",a),i.addEventListener("animationcancel",o),i.addEventListener("animationend",o),()=>{t.clearTimeout(e),i.removeEventListener("animationstart",a),i.removeEventListener("animationcancel",o),i.removeEventListener("animationend",o)}}d("ANIMATION_END")},[i,d]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:X.useCallback(e=>{r.current=e?getComputedStyle(e):null,a(e)},[])}}(t),a="function"==typeof o?o({present:i.isPresent}):X.Children.only(o),r=(0,ca.e)(i.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(o=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(a));return"function"==typeof o||i.isPresent?X.cloneElement(a,{ref:r}):null};function c_(e){return e?.animationName||"none"}cO.displayName="Presence";var cz=o(77575),cE="dismissableLayer.update",cq=X.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),cB=X.forwardRef((e,t)=>{let{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:r,onInteractOutside:s,onDismiss:n,...l}=e,d=X.useContext(cq),[c,u]=X.useState(null),p=c?.ownerDocument??globalThis?.document,[,m]=X.useState({}),g=(0,ca.e)(t,e=>u(e)),h=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),f=h.indexOf(v),x=c?h.indexOf(c):-1,b=d.layersWithOutsidePointerEventsDisabled.size>0,k=x>=f,y=function(e,t=globalThis?.document){let o=(0,cd.W)(e),i=X.useRef(!1),a=X.useRef(()=>{});return X.useEffect(()=>{let e=e=>{if(e.target&&!i.current){let i=function(){cC("dismissableLayer.pointerDownOutside",o,r,{discrete:!0})},r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=i,t.addEventListener("click",a.current,{once:!0})):i()}else t.removeEventListener("click",a.current);i.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,o]),{onPointerDownCapture:()=>i.current=!0}}(e=>{let t=e.target,o=[...d.branches].some(e=>e.contains(t));!k||o||(a?.(e),s?.(e),e.defaultPrevented||n?.())},p),M=function(e,t=globalThis?.document){let o=(0,cd.W)(e),i=X.useRef(!1);return X.useEffect(()=>{let e=e=>{e.target&&!i.current&&cC("dismissableLayer.focusOutside",o,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,o]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}(e=>{let t=e.target;[...d.branches].some(e=>e.contains(t))||(r?.(e),s?.(e),e.defaultPrevented||n?.())},p);return(0,cz.e)(e=>{x!==d.layers.size-1||(i?.(e),!e.defaultPrevented&&n&&(e.preventDefault(),n()))},p),X.useEffect(()=>{if(c)return o&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(J=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(c)),d.layers.add(c),cj(),()=>{o&&1===d.layersWithOutsidePointerEventsDisabled.size&&(p.body.style.pointerEvents=J)}},[c,p,o,d]),X.useEffect(()=>()=>{c&&(d.layers.delete(c),d.layersWithOutsidePointerEventsDisabled.delete(c),cj())},[c,d]),X.useEffect(()=>{let e=()=>m({});return document.addEventListener(cE,e),()=>document.removeEventListener(cE,e)},[]),(0,H.jsx)(cl.WV.div,{...l,ref:g,style:{pointerEvents:b?k?"auto":"none":void 0,...e.style},onFocusCapture:ct(e.onFocusCapture,M.onFocusCapture),onBlurCapture:ct(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:ct(e.onPointerDownCapture,y.onPointerDownCapture)})});function cj(){let e=new CustomEvent(cE);document.dispatchEvent(e)}function cC(e,t,o,{discrete:i}){let a=o.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:o});t&&a.addEventListener(e,t,{once:!0}),i?(0,cl.jH)(a,r):a.dispatchEvent(r)}cB.displayName="DismissableLayer",X.forwardRef((e,t)=>{let o=X.useContext(cq),i=X.useRef(null),a=(0,ca.e)(t,i);return X.useEffect(()=>{let e=i.current;if(e)return o.branches.add(e),()=>{o.branches.delete(e)}},[o.branches]),(0,H.jsx)(cl.WV.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var cR="HoverCard",[cD,cL]=(0,co.b)(cR,[cg]),c$=cg(),[cZ,cF]=cD(cR),cQ=e=>{let{__scopeHoverCard:t,children:o,open:i,defaultOpen:a,onOpenChange:r,openDelay:s=700,closeDelay:n=300}=e,l=c$(t),d=X.useRef(0),c=X.useRef(0),u=X.useRef(!1),p=X.useRef(!1),[m,g]=(0,ci.T)({prop:i,defaultProp:a??!1,onChange:r,caller:cR}),h=X.useCallback(()=>{clearTimeout(c.current),d.current=window.setTimeout(()=>g(!0),s)},[s,g]),v=X.useCallback(()=>{clearTimeout(d.current),u.current||p.current||(c.current=window.setTimeout(()=>g(!1),n))},[n,g]),f=X.useCallback(()=>g(!1),[g]);return X.useEffect(()=>()=>{clearTimeout(d.current),clearTimeout(c.current)},[]),(0,H.jsx)(cZ,{scope:t,open:m,onOpenChange:g,onOpen:h,onClose:v,onDismiss:f,hasSelectionRef:u,isPointerDownOnContentRef:p,children:(0,H.jsx)(cf,{...l,children:o})})};cQ.displayName=cR;var cG="HoverCardTrigger",cU=X.forwardRef((e,t)=>{let{__scopeHoverCard:o,...i}=e,a=cF(cG,o),r=c$(o);return(0,H.jsx)(cb,{asChild:!0,...r,children:(0,H.jsx)(cl.WV.a,{"data-state":a.open?"open":"closed",...i,ref:t,onPointerEnter:ct(e.onPointerEnter,cH(a.onOpen)),onPointerLeave:ct(e.onPointerLeave,cH(a.onClose)),onFocus:ct(e.onFocus,a.onOpen),onBlur:ct(e.onBlur,a.onClose),onTouchStart:ct(e.onTouchStart,e=>e.preventDefault())})})});cU.displayName=cG;var[cV,cK]=cD("HoverCardPortal",{forceMount:void 0}),cW="HoverCardContent",cJ=X.forwardRef((e,t)=>{let o=cK(cW,e.__scopeHoverCard),{forceMount:i=o.forceMount,...a}=e,r=cF(cW,e.__scopeHoverCard);return(0,H.jsx)(cO,{present:i||r.open,children:(0,H.jsx)(cY,{"data-state":r.open?"open":"closed",...a,onPointerEnter:ct(e.onPointerEnter,cH(r.onOpen)),onPointerLeave:ct(e.onPointerLeave,cH(r.onClose)),ref:t})})});cJ.displayName=cW;var cY=X.forwardRef((e,t)=>{let{__scopeHoverCard:o,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:r,onInteractOutside:s,...n}=e,l=cF(cW,o),d=c$(o),c=X.useRef(null),u=(0,ca.e)(t,c),[p,m]=X.useState(!1);return X.useEffect(()=>{if(p){let e=document.body;return Y=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=Y,e.style.webkitUserSelect=Y}}},[p]),X.useEffect(()=>{if(c.current){let e=()=>{m(!1),l.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(l.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!1}}},[l.isPointerDownOnContentRef,l.hasSelectionRef]),X.useEffect(()=>{c.current&&(function(e){let t=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;o.nextNode();)t.push(o.currentNode);return t})(c.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,H.jsx)(cB,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:s,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:ct(r,e=>{e.preventDefault()}),onDismiss:l.onDismiss,children:(0,H.jsx)(cI,{...d,...n,onPointerDown:ct(n.onPointerDown,e=>{e.currentTarget.contains(e.target)&&m(!0),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!0}),ref:u,style:{...n.style,userSelect:p?"text":void 0,WebkitUserSelect:p?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function cH(e){return t=>"touch"===t.pointerType?void 0:e()}X.forwardRef((e,t)=>{let{__scopeHoverCard:o,...i}=e,a=c$(o);return(0,H.jsx)(cA,{...a,...i,ref:t})}).displayName="HoverCardArrow";let cX=X.forwardRef(({className:e,align:t="center",sideOffset:o=4,...i},a)=>H.jsx(cJ,{ref:a,align:t,sideOffset:o,className:(0,dM.cn)("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i}));cX.displayName=cJ.displayName;var c0="Progress",[c2,c1]=(0,co.b)(c0),[c5,c3]=c2(c0),c4=X.forwardRef((e,t)=>{var o,i;let{__scopeProgress:a,value:r=null,max:s,getValueLabel:n=c6,...l}=e;(s||0===s)&&!ut(s)&&console.error((o=`${s}`,`Invalid prop \`max\` of value \`${o}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let d=ut(s)?s:100;null===r||uo(r,d)||console.error((i=`${r}`,`Invalid prop \`value\` of value \`${i}\` supplied to \`Progress\`. The \`value\` prop must be:
41
41
  - a positive number
42
42
  - less than the value passed to \`max\` (or 100 if no \`max\` prop is set)
43
43
  - \`null\` or \`undefined\` if the progress is indeterminate.
44
44
 
45
45
  Defaulting to \`null\`.`));let c=uo(r,d)?r:null,u=ue(c)?n(c,d):void 0;return(0,H.jsx)(c5,{scope:a,value:c,max:d,children:(0,H.jsx)(cl.WV.div,{"aria-valuemax":d,"aria-valuemin":0,"aria-valuenow":ue(c)?c:void 0,"aria-valuetext":u,role:"progressbar","data-state":c9(c,d),"data-value":c??void 0,"data-max":d,...l,ref:t})})});c4.displayName=c0;var c7="ProgressIndicator",c8=X.forwardRef((e,t)=>{let{__scopeProgress:o,...i}=e,a=c3(c7,o);return(0,H.jsx)(cl.WV.div,{"data-state":c9(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...i,ref:t})});function c6(e,t){return`${Math.round(e/t*100)}%`}function c9(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function ue(e){return"number"==typeof e}function ut(e){return ue(e)&&!isNaN(e)&&e>0}function uo(e,t){return ue(e)&&!isNaN(e)&&e<=t&&e>=0}c8.displayName=c7;let ui=X.forwardRef(({className:e,value:t,...o},i)=>H.jsx(c4,{ref:i,className:(0,dM.cn)("relative h-4 w-full overflow-hidden rounded-full bg-secondary",e),...o,children:H.jsx(c8,{className:"size-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));ui.displayName=c4.displayName;let ua=[{id:"alibaba:qwen3-coder-plus",provider:"alibaba",vendorId:"qwen3-coder-plus",displayName:"Qwen3 Coder Plus",family:"qwen3-coder-plus",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:5},pricingSource:"models.dev",aliases:["alibaba/qwen3-coder-plus"],releasedAt:"2025-07-23",source:"https://www.alibabacloud.com/help/en/model-studio/models",contextSource:"https://www.alibabacloud.com/help/en/model-studio/models",verifiedAt:"2025-07-23"},{id:"amazon-bedrock:ai21.jamba-1-5-large-v1:0",provider:"amazon-bedrock",vendorId:"ai21.jamba-1-5-large-v1:0",displayName:"Jamba 1.5 Large",family:"ai21.jamba-1-5-large-v1:0",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["amazon-bedrock/ai21.jamba-1-5-large-v1:0"],releasedAt:"2024-08-15",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-08-15"},{id:"amazon-bedrock:ai21.jamba-1-5-mini-v1:0",provider:"amazon-bedrock",vendorId:"ai21.jamba-1-5-mini-v1:0",displayName:"Jamba 1.5 Mini",family:"ai21.jamba-1-5-mini-v1:0",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["amazon-bedrock/ai21.jamba-1-5-mini-v1:0"],releasedAt:"2024-08-15",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-08-15"},{id:"amazon-bedrock:amazon.nova-lite-v1:0",provider:"amazon-bedrock",vendorId:"amazon.nova-lite-v1:0",displayName:"Nova Lite",family:"amazon.nova-lite-v1:0",status:"stable",context:{combinedMax:3e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.06,outputPerMTokens:.24},pricingSource:"models.dev",aliases:["amazon-bedrock/amazon.nova-lite-v1:0"],releasedAt:"2024-12-03",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-12-03"},{id:"amazon-bedrock:amazon.nova-micro-v1:0",provider:"amazon-bedrock",vendorId:"amazon.nova-micro-v1:0",displayName:"Nova Micro",family:"amazon.nova-micro-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.035,outputPerMTokens:.14},pricingSource:"models.dev",aliases:["amazon-bedrock/amazon.nova-micro-v1:0"],releasedAt:"2024-12-03",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-12-03"},{id:"amazon-bedrock:amazon.nova-premier-v1:0",provider:"amazon-bedrock",vendorId:"amazon.nova-premier-v1:0",displayName:"Nova Premier",family:"amazon.nova-premier-v1:0",status:"stable",context:{combinedMax:1e6,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2.5,outputPerMTokens:12.5},pricingSource:"models.dev",aliases:["amazon-bedrock/amazon.nova-premier-v1:0"],releasedAt:"2024-12-03",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-12-03"},{id:"amazon-bedrock:amazon.nova-pro-v1:0",provider:"amazon-bedrock",vendorId:"amazon.nova-pro-v1:0",displayName:"Nova Pro",family:"amazon.nova-pro-v1:0",status:"stable",context:{combinedMax:3e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:3.2},pricingSource:"models.dev",aliases:["amazon-bedrock/amazon.nova-pro-v1:0"],releasedAt:"2024-12-03",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-12-03"},{id:"amazon-bedrock:anthropic.claude-3-5-haiku-20241022-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-5-haiku-20241022-v1:0",displayName:"Claude Haiku 3.5",family:"anthropic.claude-3-5-haiku-20241022-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-5-haiku-20241022-v1:0"],releasedAt:"2024-10-22",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-10-22"},{id:"amazon-bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-5-sonnet-20240620-v1:0",displayName:"Claude Sonnet 3.5",family:"anthropic.claude-3-5-sonnet-20240620-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0"],releasedAt:"2024-06-20",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-06-20"},{id:"amazon-bedrock:anthropic.claude-3-5-sonnet-20241022-v2:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-5-sonnet-20241022-v2:0",displayName:"Claude Sonnet 3.5 v2",family:"anthropic.claude-3-5-sonnet-20241022-v2:0",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0"],releasedAt:"2024-10-22",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-10-22"},{id:"amazon-bedrock:anthropic.claude-3-7-sonnet-20250219-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-7-sonnet-20250219-v1:0",displayName:"Claude Sonnet 3.7",family:"anthropic.claude-3-7-sonnet-20250219-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-7-sonnet-20250219-v1:0"],releasedAt:"2025-02-19",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-02-19"},{id:"amazon-bedrock:anthropic.claude-3-haiku-20240307-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-haiku-20240307-v1:0",displayName:"Claude Haiku 3",family:"anthropic.claude-3-haiku-20240307-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-haiku-20240307-v1:0"],releasedAt:"2024-03-13",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-03-13"},{id:"amazon-bedrock:anthropic.claude-3-opus-20240229-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-opus-20240229-v1:0",displayName:"Claude Opus 3",family:"anthropic.claude-3-opus-20240229-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-opus-20240229-v1:0"],releasedAt:"2024-02-29",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-02-29"},{id:"amazon-bedrock:anthropic.claude-3-sonnet-20240229-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-3-sonnet-20240229-v1:0",displayName:"Claude Sonnet 3",family:"anthropic.claude-3-sonnet-20240229-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-3-sonnet-20240229-v1:0"],releasedAt:"2024-03-04",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-03-04"},{id:"amazon-bedrock:anthropic.claude-instant-v1",provider:"amazon-bedrock",vendorId:"anthropic.claude-instant-v1",displayName:"Claude Instant",family:"anthropic.claude-instant-v1",status:"stable",context:{combinedMax:1e5,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:2.4},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-instant-v1"],releasedAt:"2023-03-01",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2023-03-01"},{id:"amazon-bedrock:anthropic.claude-opus-4-1-20250805-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-opus-4-1-20250805-v1:0",displayName:"Claude Opus 4.1",family:"anthropic.claude-opus-4-1-20250805-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-opus-4-1-20250805-v1:0"],releasedAt:"2025-08-05",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-08-05"},{id:"amazon-bedrock:anthropic.claude-opus-4-20250514-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-opus-4-20250514-v1:0",displayName:"Claude Opus 4",family:"anthropic.claude-opus-4-20250514-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-opus-4-20250514-v1:0"],releasedAt:"2025-05-22",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-05-22"},{id:"amazon-bedrock:anthropic.claude-sonnet-4-20250514-v1:0",provider:"amazon-bedrock",vendorId:"anthropic.claude-sonnet-4-20250514-v1:0",displayName:"Claude Sonnet 4",family:"anthropic.claude-sonnet-4-20250514-v1:0",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-sonnet-4-20250514-v1:0"],releasedAt:"2025-05-22",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-05-22"},{id:"amazon-bedrock:anthropic.claude-v2",provider:"amazon-bedrock",vendorId:"anthropic.claude-v2",displayName:"Claude 2",family:"anthropic.claude-v2",status:"stable",context:{combinedMax:1e5,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:8,outputPerMTokens:24},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-v2"],releasedAt:"2023-07-11",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2023-07-11"},{id:"amazon-bedrock:anthropic.claude-v2:1",provider:"amazon-bedrock",vendorId:"anthropic.claude-v2:1",displayName:"Claude 2.1",family:"anthropic.claude-v2:1",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:8,outputPerMTokens:24},pricingSource:"models.dev",aliases:["amazon-bedrock/anthropic.claude-v2:1"],releasedAt:"2023-11-21",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2023-11-21"},{id:"amazon-bedrock:cohere.command-light-text-v14",provider:"amazon-bedrock",vendorId:"cohere.command-light-text-v14",displayName:"Command Light",family:"cohere.command-light-text-v14",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["amazon-bedrock/cohere.command-light-text-v14"],releasedAt:"2023-11-01",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2023-11-01"},{id:"amazon-bedrock:cohere.command-r-plus-v1:0",provider:"amazon-bedrock",vendorId:"cohere.command-r-plus-v1:0",displayName:"Command R+",family:"cohere.command-r-plus-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["amazon-bedrock/cohere.command-r-plus-v1:0"],releasedAt:"2024-04-04",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-04-04"},{id:"amazon-bedrock:cohere.command-r-v1:0",provider:"amazon-bedrock",vendorId:"cohere.command-r-v1:0",displayName:"Command R",family:"cohere.command-r-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["amazon-bedrock/cohere.command-r-v1:0"],releasedAt:"2024-03-11",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-03-11"},{id:"amazon-bedrock:cohere.command-text-v14",provider:"amazon-bedrock",vendorId:"cohere.command-text-v14",displayName:"Command",family:"cohere.command-text-v14",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["amazon-bedrock/cohere.command-text-v14"],releasedAt:"2023-11-01",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2023-11-01"},{id:"amazon-bedrock:deepseek.r1-v1:0",provider:"amazon-bedrock",vendorId:"deepseek.r1-v1:0",displayName:"DeepSeek-R1",family:"deepseek.r1-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.35,outputPerMTokens:5.4},pricingSource:"models.dev",aliases:["amazon-bedrock/deepseek.r1-v1:0"],releasedAt:"2025-01-20",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-05-29"},{id:"amazon-bedrock:meta.llama3-1-70b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-1-70b-instruct-v1:0",displayName:"Llama 3.1 70B Instruct",family:"meta.llama3-1-70b-instruct-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.72,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-1-70b-instruct-v1:0"],releasedAt:"2024-07-23",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-07-23"},{id:"amazon-bedrock:meta.llama3-1-8b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-1-8b-instruct-v1:0",displayName:"Llama 3.1 8B Instruct",family:"meta.llama3-1-8b-instruct-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.22,outputPerMTokens:.22},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-1-8b-instruct-v1:0"],releasedAt:"2024-07-23",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-07-23"},{id:"amazon-bedrock:meta.llama3-2-11b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-2-11b-instruct-v1:0",displayName:"Llama 3.2 11B Instruct",family:"meta.llama3-2-11b-instruct-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.16,outputPerMTokens:.16},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-2-11b-instruct-v1:0"],releasedAt:"2024-09-25",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-09-25"},{id:"amazon-bedrock:meta.llama3-2-1b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-2-1b-instruct-v1:0",displayName:"Llama 3.2 1B Instruct",family:"meta.llama3-2-1b-instruct-v1:0",status:"stable",context:{combinedMax:131e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-2-1b-instruct-v1:0"],releasedAt:"2024-09-25",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-09-25"},{id:"amazon-bedrock:meta.llama3-2-3b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-2-3b-instruct-v1:0",displayName:"Llama 3.2 3B Instruct",family:"meta.llama3-2-3b-instruct-v1:0",status:"stable",context:{combinedMax:131e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-2-3b-instruct-v1:0"],releasedAt:"2024-09-25",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-09-25"},{id:"amazon-bedrock:meta.llama3-2-90b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-2-90b-instruct-v1:0",displayName:"Llama 3.2 90B Instruct",family:"meta.llama3-2-90b-instruct-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.72,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-2-90b-instruct-v1:0"],releasedAt:"2024-09-25",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-09-25"},{id:"amazon-bedrock:meta.llama3-3-70b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-3-70b-instruct-v1:0",displayName:"Llama 3.3 70B Instruct",family:"meta.llama3-3-70b-instruct-v1:0",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.72,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-3-70b-instruct-v1:0"],releasedAt:"2024-12-06",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-12-06"},{id:"amazon-bedrock:meta.llama3-70b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-70b-instruct-v1:0",displayName:"Llama 3 70B Instruct",family:"meta.llama3-70b-instruct-v1:0",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2.65,outputPerMTokens:3.5},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-70b-instruct-v1:0"],releasedAt:"2024-07-23",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-07-23"},{id:"amazon-bedrock:meta.llama3-8b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama3-8b-instruct-v1:0",displayName:"Llama 3 8B Instruct",family:"meta.llama3-8b-instruct-v1:0",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama3-8b-instruct-v1:0"],releasedAt:"2024-07-23",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2024-07-23"},{id:"amazon-bedrock:meta.llama4-maverick-17b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama4-maverick-17b-instruct-v1:0",displayName:"Llama 4 Maverick 17B Instruct",family:"meta.llama4-maverick-17b-instruct-v1:0",status:"stable",context:{combinedMax:1e6,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.24,outputPerMTokens:.97},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama4-maverick-17b-instruct-v1:0"],releasedAt:"2025-04-05",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-04-05"},{id:"amazon-bedrock:meta.llama4-scout-17b-instruct-v1:0",provider:"amazon-bedrock",vendorId:"meta.llama4-scout-17b-instruct-v1:0",displayName:"Llama 4 Scout 17B Instruct",family:"meta.llama4-scout-17b-instruct-v1:0",status:"stable",context:{combinedMax:35e5,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.17,outputPerMTokens:.66},pricingSource:"models.dev",aliases:["amazon-bedrock/meta.llama4-scout-17b-instruct-v1:0"],releasedAt:"2025-04-05",source:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",contextSource:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html",verifiedAt:"2025-04-05"},{id:"anthropic:claude-3-5-haiku-20241022",provider:"anthropic",vendorId:"claude-3-5-haiku-20241022",displayName:"Claude Haiku 3.5",family:"claude-3-5-haiku-20241022",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["anthropic/claude-3-5-haiku-20241022"],releasedAt:"2024-10-22",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-10-22"},{id:"anthropic:claude-3-5-sonnet-20240620",provider:"anthropic",vendorId:"claude-3-5-sonnet-20240620",displayName:"Claude Sonnet 3.5",family:"claude-3-5-sonnet-20240620",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["anthropic/claude-3-5-sonnet-20240620"],releasedAt:"2024-06-20",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-06-20"},{id:"anthropic:claude-3-5-sonnet-20241022",provider:"anthropic",vendorId:"claude-3-5-sonnet-20241022",displayName:"Claude Sonnet 3.5 v2",family:"claude-3-5-sonnet-20241022",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["anthropic/claude-3-5-sonnet-20241022"],releasedAt:"2024-10-22",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-10-22"},{id:"anthropic:claude-3-7-sonnet-20250219",provider:"anthropic",vendorId:"claude-3-7-sonnet-20250219",displayName:"Claude Sonnet 3.7",family:"claude-3-7-sonnet-20250219",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["anthropic/claude-3-7-sonnet-20250219"],releasedAt:"2025-02-19",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2025-02-19"},{id:"anthropic:claude-3-haiku-20240307",provider:"anthropic",vendorId:"claude-3-haiku-20240307",displayName:"Claude Haiku 3",family:"claude-3-haiku-20240307",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["anthropic/claude-3-haiku-20240307"],releasedAt:"2024-03-13",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-03-13"},{id:"anthropic:claude-3-opus-20240229",provider:"anthropic",vendorId:"claude-3-opus-20240229",displayName:"Claude Opus 3",family:"claude-3-opus-20240229",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["anthropic/claude-3-opus-20240229"],releasedAt:"2024-02-29",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-02-29"},{id:"anthropic:claude-3-sonnet-20240229",provider:"anthropic",vendorId:"claude-3-sonnet-20240229",displayName:"Claude Sonnet 3",family:"claude-3-sonnet-20240229",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["anthropic/claude-3-sonnet-20240229"],releasedAt:"2024-03-04",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2024-03-04"},{id:"anthropic:claude-opus-4-1-20250805",provider:"anthropic",vendorId:"claude-opus-4-1-20250805",displayName:"Claude Opus 4.1",family:"claude-opus-4-1-20250805",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["anthropic/claude-opus-4-1-20250805"],releasedAt:"2025-08-05",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2025-08-05"},{id:"anthropic:claude-opus-4-20250514",provider:"anthropic",vendorId:"claude-opus-4-20250514",displayName:"Claude Opus 4",family:"claude-opus-4-20250514",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["anthropic/claude-opus-4-20250514"],releasedAt:"2025-05-22",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2025-05-22"},{id:"anthropic:claude-sonnet-4-20250514",provider:"anthropic",vendorId:"claude-sonnet-4-20250514",displayName:"Claude Sonnet 4",family:"claude-sonnet-4-20250514",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["anthropic/claude-sonnet-4-20250514"],releasedAt:"2025-05-22",source:"https://docs.anthropic.com/en/docs/about-claude/models",contextSource:"https://docs.anthropic.com/en/docs/about-claude/models",verifiedAt:"2025-05-22"},{id:"azure:codex-mini",provider:"azure",vendorId:"codex-mini",displayName:"Codex Mini",family:"codex-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:6},pricingSource:"models.dev",aliases:["azure/codex-mini"],releasedAt:"2025-05-16",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-05-16"},{id:"azure:gpt-3.5-turbo-0125",provider:"azure",vendorId:"gpt-3.5-turbo-0125",displayName:"GPT-3.5 Turbo 0125",family:"gpt-3.5-turbo-0125",status:"stable",context:{combinedMax:16384,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["azure/gpt-3.5-turbo-0125"],releasedAt:"2024-01-25",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-01-25"},{id:"azure:gpt-3.5-turbo-0301",provider:"azure",vendorId:"gpt-3.5-turbo-0301",displayName:"GPT-3.5 Turbo 0301",family:"gpt-3.5-turbo-0301",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["azure/gpt-3.5-turbo-0301"],releasedAt:"2023-03-01",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-03-01"},{id:"azure:gpt-3.5-turbo-0613",provider:"azure",vendorId:"gpt-3.5-turbo-0613",displayName:"GPT-3.5 Turbo 0613",family:"gpt-3.5-turbo-0613",status:"stable",context:{combinedMax:16384,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:4},pricingSource:"models.dev",aliases:["azure/gpt-3.5-turbo-0613"],releasedAt:"2023-06-13",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-06-13"},{id:"azure:gpt-3.5-turbo-1106",provider:"azure",vendorId:"gpt-3.5-turbo-1106",displayName:"GPT-3.5 Turbo 1106",family:"gpt-3.5-turbo-1106",status:"stable",context:{combinedMax:16384,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:2},pricingSource:"models.dev",aliases:["azure/gpt-3.5-turbo-1106"],releasedAt:"2023-11-06",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-11-06"},{id:"azure:gpt-3.5-turbo-instruct",provider:"azure",vendorId:"gpt-3.5-turbo-instruct",displayName:"GPT-3.5 Turbo Instruct",family:"gpt-3.5-turbo-instruct",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["azure/gpt-3.5-turbo-instruct"],releasedAt:"2023-09-21",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-09-21"},{id:"azure:gpt-4",provider:"azure",vendorId:"gpt-4",displayName:"GPT-4",family:"gpt-4",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:60,outputPerMTokens:120},pricingSource:"models.dev",aliases:["azure/gpt-4"],releasedAt:"2023-03-14",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-03-14"},{id:"azure:gpt-4-32k",provider:"azure",vendorId:"gpt-4-32k",displayName:"GPT-4 32K",family:"gpt-4-32k",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:60,outputPerMTokens:120},pricingSource:"models.dev",aliases:["azure/gpt-4-32k"],releasedAt:"2023-03-14",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2023-03-14"},{id:"azure:gpt-4-turbo",provider:"azure",vendorId:"gpt-4-turbo",displayName:"GPT-4 Turbo",family:"gpt-4-turbo",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:10,outputPerMTokens:30},pricingSource:"models.dev",aliases:["azure/gpt-4-turbo"],releasedAt:"2023-11-06",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-04-09"},{id:"azure:gpt-4-turbo-vision",provider:"azure",vendorId:"gpt-4-turbo-vision",displayName:"GPT-4 Turbo Vision",family:"gpt-4-turbo-vision",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:10,outputPerMTokens:30},pricingSource:"models.dev",aliases:["azure/gpt-4-turbo-vision"],releasedAt:"2023-11-06",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-04-09"},{id:"azure:gpt-4.1",provider:"azure",vendorId:"gpt-4.1",displayName:"GPT-4.1",family:"gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["azure/gpt-4.1"],releasedAt:"2025-04-14",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-04-14"},{id:"azure:gpt-4.1-mini",provider:"azure",vendorId:"gpt-4.1-mini",displayName:"GPT-4.1 mini",family:"gpt-4.1-mini",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["azure/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-04-14"},{id:"azure:gpt-4.1-nano",provider:"azure",vendorId:"gpt-4.1-nano",displayName:"GPT-4.1 nano",family:"gpt-4.1-nano",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["azure/gpt-4.1-nano"],releasedAt:"2025-04-14",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-04-14"},{id:"azure:gpt-4o",provider:"azure",vendorId:"gpt-4o",displayName:"GPT-4o",family:"gpt-4o",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2.5,outputPerMTokens:10},pricingSource:"models.dev",aliases:["azure/gpt-4o"],releasedAt:"2024-05-13",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-05-13"},{id:"azure:gpt-4o-mini",provider:"azure",vendorId:"gpt-4o-mini",displayName:"GPT-4o mini",family:"gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["azure/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-07-18"},{id:"azure:gpt-5",provider:"azure",vendorId:"gpt-5",displayName:"GPT-5",family:"gpt-5",status:"stable",context:{combinedMax:272e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["azure/gpt-5"],releasedAt:"2025-08-07",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-08-07"},{id:"azure:gpt-5-chat",provider:"azure",vendorId:"gpt-5-chat",displayName:"GPT-5 Chat",family:"gpt-5-chat",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["azure/gpt-5-chat"],releasedAt:"2025-08-07",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-08-07"},{id:"azure:gpt-5-mini",provider:"azure",vendorId:"gpt-5-mini",displayName:"GPT-5 Mini",family:"gpt-5-mini",status:"stable",context:{combinedMax:272e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["azure/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-08-07"},{id:"azure:gpt-5-nano",provider:"azure",vendorId:"gpt-5-nano",displayName:"GPT-5 Nano",family:"gpt-5-nano",status:"stable",context:{combinedMax:272e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["azure/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-08-07"},{id:"azure:o1",provider:"azure",vendorId:"o1",displayName:"o1",family:"o1",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:60},pricingSource:"models.dev",aliases:["azure/o1"],releasedAt:"2024-12-05",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-12-05"},{id:"azure:o1-mini",provider:"azure",vendorId:"o1-mini",displayName:"o1-mini",family:"o1-mini",status:"stable",context:{combinedMax:128e3,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["azure/o1-mini"],releasedAt:"2024-09-12",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-09-12"},{id:"azure:o1-preview",provider:"azure",vendorId:"o1-preview",displayName:"o1-preview",family:"o1-preview",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:16.5,outputPerMTokens:66},pricingSource:"models.dev",aliases:["azure/o1-preview"],releasedAt:"2024-09-12",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2024-09-12"},{id:"azure:o3",provider:"azure",vendorId:"o3",displayName:"o3",family:"o3",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["azure/o3"],releasedAt:"2025-04-16",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-04-16"},{id:"azure:o3-mini",provider:"azure",vendorId:"o3-mini",displayName:"o3-mini",family:"o3-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["azure/o3-mini"],releasedAt:"2024-12-20",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-01-29"},{id:"azure:o4-mini",provider:"azure",vendorId:"o4-mini",displayName:"o4-mini",family:"o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["azure/o4-mini"],releasedAt:"2025-04-16",source:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",contextSource:"https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models",verifiedAt:"2025-04-16"},{id:"baseten:Moonshotai-Kimi-K2-Instruct-0905",provider:"baseten",vendorId:"Moonshotai-Kimi-K2-Instruct-0905",displayName:"moonshotai/Kimi-K2-Instruct-0905",family:"Moonshotai-Kimi-K2-Instruct-0905",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["baseten/Moonshotai-Kimi-K2-Instruct-0905"],releasedAt:"2025-09-05",source:"https://docs.baseten.co/development/model-apis/overview",contextSource:"https://docs.baseten.co/development/model-apis/overview",verifiedAt:"2025-09-05"},{id:"baseten:Qwen-Qwen3-Coder-480B-A35B-Instruct",provider:"baseten",vendorId:"Qwen-Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen/Qwen3-Coder-480B-A35B-Instruct",family:"Qwen-Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.38,outputPerMTokens:1.53},pricingSource:"models.dev",aliases:["baseten/Qwen-Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://docs.baseten.co/development/model-apis/overview",contextSource:"https://docs.baseten.co/development/model-apis/overview",verifiedAt:"2025-07-23"},{id:"cerebras:gpt-oss-120b",provider:"cerebras",vendorId:"gpt-oss-120b",displayName:"GPT OSS 120B",family:"gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:.69},pricingSource:"models.dev",aliases:["cerebras/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://inference-docs.cerebras.ai/models/overview",contextSource:"https://inference-docs.cerebras.ai/models/overview",verifiedAt:"2025-08-05"},{id:"cerebras:qwen-3-235b-a22b-instruct-2507",provider:"cerebras",vendorId:"qwen-3-235b-a22b-instruct-2507",displayName:"Qwen 3 235B Instruct",family:"qwen-3-235b-a22b-instruct-2507",status:"stable",context:{combinedMax:131e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["cerebras/qwen-3-235b-a22b-instruct-2507"],releasedAt:"2025-07-22",source:"https://inference-docs.cerebras.ai/models/overview",contextSource:"https://inference-docs.cerebras.ai/models/overview",verifiedAt:"2025-07-22"},{id:"cerebras:qwen-3-coder-480b",provider:"cerebras",vendorId:"qwen-3-coder-480b",displayName:"Qwen 3 Coder 480B",family:"qwen-3-coder-480b",status:"stable",context:{combinedMax:131e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:2},pricingSource:"models.dev",aliases:["cerebras/qwen-3-coder-480b"],releasedAt:"2025-07-23",source:"https://inference-docs.cerebras.ai/models/overview",contextSource:"https://inference-docs.cerebras.ai/models/overview",verifiedAt:"2025-07-23"},{id:"chutes:chutesai/Devstral-Small-2505",provider:"chutes",vendorId:"chutesai/Devstral-Small-2505",displayName:"Devstral Small (2505)",family:"chutesai/Devstral-Small-2505",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.02,outputPerMTokens:.08},pricingSource:"models.dev",aliases:["chutes/chutesai/Devstral-Small-2505"],releasedAt:"2025-05-21",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-05-21"},{id:"chutes:chutesai/Mistral-Small-3.2-24B-Instruct-2506",provider:"chutes",vendorId:"chutesai/Mistral-Small-3.2-24B-Instruct-2506",displayName:"Mistral Small 3.2 24B Instruct (2506)",family:"chutesai/Mistral-Small-3.2-24B-Instruct-2506",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.02,outputPerMTokens:.08},pricingSource:"models.dev",aliases:["chutes/chutesai/Mistral-Small-3.2-24B-Instruct-2506"],releasedAt:"2025-06-20",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-06-20"},{id:"chutes:deepseek-ai/DeepSeek-R1-0528",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-R1-0528",displayName:"DeepSeek R1 (0528)",family:"deepseek-ai/DeepSeek-R1-0528",status:"stable",context:{combinedMax:75e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.18,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-R1-0528"],releasedAt:"2025-08-01",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-01"},{id:"chutes:deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",displayName:"DeepSeek R1 0528 Qwen3 8B",family:"deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.02,outputPerMTokens:.07},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B"],releasedAt:"2025-05-29",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-05-29"},{id:"chutes:deepseek-ai/DeepSeek-R1-Distill-Llama-70B",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-R1-Distill-Llama-70B",displayName:"DeepSeek R1 Distill Llama 70B",family:"deepseek-ai/DeepSeek-R1-Distill-Llama-70B",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.03,outputPerMTokens:.14},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-R1-Distill-Llama-70B"],releasedAt:"2025-01-23",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-01-23"},{id:"chutes:deepseek-ai/DeepSeek-V3-0324",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-V3-0324",displayName:"DeepSeek V3 (0324)",family:"deepseek-ai/DeepSeek-V3-0324",status:"stable",context:{combinedMax:75e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.18,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-V3-0324"],releasedAt:"2025-08-01",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-01"},{id:"chutes:deepseek-ai/DeepSeek-V3.1",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-V3.1",displayName:"DeepSeek V3.1",family:"deepseek-ai/DeepSeek-V3.1",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-V3.1"],releasedAt:"2025-08-21",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-21"},{id:"chutes:deepseek-ai/DeepSeek-V3.1:THINKING",provider:"chutes",vendorId:"deepseek-ai/DeepSeek-V3.1:THINKING",displayName:"DeepSeek V3.1 Reasoning",family:"deepseek-ai/DeepSeek-V3.1:THINKING",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["chutes/deepseek-ai/DeepSeek-V3.1:THINKING"],releasedAt:"2025-08-21",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-21"},{id:"chutes:moonshotai/Kimi-K2-Instruct-75k",provider:"chutes",vendorId:"moonshotai/Kimi-K2-Instruct-75k",displayName:"Kimi K2 Instruct",family:"moonshotai/Kimi-K2-Instruct-75k",status:"stable",context:{combinedMax:75e3,outputMax:75e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.59},pricingSource:"models.dev",aliases:["chutes/moonshotai/Kimi-K2-Instruct-75k"],releasedAt:"2025-08-01",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-01"},{id:"chutes:openai/gpt-oss-120b",provider:"chutes",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.41},pricingSource:"models.dev",aliases:["chutes/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-05"},{id:"chutes:Qwen/Qwen3-235B-A22B-Instruct-2507",provider:"chutes",vendorId:"Qwen/Qwen3-235B-A22B-Instruct-2507",displayName:"Qwen3 235B A22B Instruct 2507",family:"Qwen/Qwen3-235B-A22B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.078,outputPerMTokens:.312},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-235B-A22B-Instruct-2507"],releasedAt:"2025-04-28",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-21"},{id:"chutes:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"chutes",vendorId:"Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3-235B-A22B-Thinking-2507",family:"Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.078,outputPerMTokens:.312},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-07-25",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-25"},{id:"chutes:Qwen/Qwen3-30B-A3B",provider:"chutes",vendorId:"Qwen/Qwen3-30B-A3B",displayName:"Qwen3 30B A3B",family:"Qwen/Qwen3-30B-A3B",status:"stable",context:{combinedMax:40960,outputMax:40960},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.02,outputPerMTokens:.08},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-30B-A3B"],releasedAt:"2025-04-28",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-04-28"},{id:"chutes:Qwen/Qwen3-30B-A3B-Instruct-2507",provider:"chutes",vendorId:"Qwen/Qwen3-30B-A3B-Instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",family:"Qwen/Qwen3-30B-A3B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-30B-A3B-Instruct-2507"],releasedAt:"2025-07-25",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-25"},{id:"chutes:Qwen/Qwen3-Coder-30B-A3B-Instruct",provider:"chutes",vendorId:"Qwen/Qwen3-Coder-30B-A3B-Instruct",displayName:"Qwen3 Coder 30B A3B Instruct",family:"Qwen/Qwen3-Coder-30B-A3B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-Coder-30B-A3B-Instruct"],releasedAt:"2025-07-25",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-25"},{id:"chutes:Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",provider:"chutes",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",displayName:"Qwen3 Coder 480B A35B Instruct (FP8)",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["chutes/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"],releasedAt:"2025-08-01",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-08-01"},{id:"chutes:tngtech/DeepSeek-R1T-Chimera",provider:"chutes",vendorId:"tngtech/DeepSeek-R1T-Chimera",displayName:"DeepSeek R1T Chimera",family:"tngtech/DeepSeek-R1T-Chimera",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.18,outputPerMTokens:.72},pricingSource:"models.dev",aliases:["chutes/tngtech/DeepSeek-R1T-Chimera"],releasedAt:"2025-04-26",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-04-26"},{id:"chutes:tngtech/DeepSeek-TNG-R1T2-Chimera",provider:"chutes",vendorId:"tngtech/DeepSeek-TNG-R1T2-Chimera",displayName:"DeepSeek TNG R1T2 Chimera",family:"tngtech/DeepSeek-TNG-R1T2-Chimera",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["chutes/tngtech/DeepSeek-TNG-R1T2-Chimera"],releasedAt:"2025-07-08",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-08"},{id:"chutes:zai-org/GLM-4.5-Air",provider:"chutes",vendorId:"zai-org/GLM-4.5-Air",displayName:"GLM 4.5 Air",family:"zai-org/GLM-4.5-Air",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["chutes/zai-org/GLM-4.5-Air"],releasedAt:"2025-07-28",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-28"},{id:"chutes:zai-org/GLM-4.5-FP8",provider:"chutes",vendorId:"zai-org/GLM-4.5-FP8",displayName:"GLM 4.5 FP8",family:"zai-org/GLM-4.5-FP8",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["chutes/zai-org/GLM-4.5-FP8"],releasedAt:"2025-07-28",source:"https://llm.chutes.ai/v1/models",contextSource:"https://llm.chutes.ai/v1/models",verifiedAt:"2025-07-28"},{id:"cloudflare-workers-ai:bart-large-cnn",provider:"cloudflare-workers-ai",vendorId:"bart-large-cnn",displayName:"@cf/facebook/bart-large-cnn",family:"bart-large-cnn",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/bart-large-cnn"],releasedAt:"2022-03-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-13"},{id:"cloudflare-workers-ai:deepseek-coder-6.7b-base-awq",provider:"cloudflare-workers-ai",vendorId:"deepseek-coder-6.7b-base-awq",displayName:"@hf/thebloke/deepseek-coder-6.7b-base-awq",family:"deepseek-coder-6.7b-base-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/deepseek-coder-6.7b-base-awq"],releasedAt:"2023-11-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-09"},{id:"cloudflare-workers-ai:deepseek-coder-6.7b-instruct-awq",provider:"cloudflare-workers-ai",vendorId:"deepseek-coder-6.7b-instruct-awq",displayName:"@hf/thebloke/deepseek-coder-6.7b-instruct-awq",family:"deepseek-coder-6.7b-instruct-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/deepseek-coder-6.7b-instruct-awq"],releasedAt:"2023-11-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-13"},{id:"cloudflare-workers-ai:deepseek-math-7b-instruct",provider:"cloudflare-workers-ai",vendorId:"deepseek-math-7b-instruct",displayName:"@cf/deepseek-ai/deepseek-math-7b-instruct",family:"deepseek-math-7b-instruct",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/deepseek-math-7b-instruct"],releasedAt:"2024-02-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-06"},{id:"cloudflare-workers-ai:deepseek-r1-distill-qwen-32b",provider:"cloudflare-workers-ai",vendorId:"deepseek-r1-distill-qwen-32b",displayName:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",family:"deepseek-r1-distill-qwen-32b",status:"stable",context:{combinedMax:8e4,outputMax:8e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:4.88},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/deepseek-r1-distill-qwen-32b"],releasedAt:"2025-01-20",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-02-24"},{id:"cloudflare-workers-ai:discolm-german-7b-v1-awq",provider:"cloudflare-workers-ai",vendorId:"discolm-german-7b-v1-awq",displayName:"@cf/thebloke/discolm-german-7b-v1-awq",family:"discolm-german-7b-v1-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/discolm-german-7b-v1-awq"],releasedAt:"2024-01-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-01-24"},{id:"cloudflare-workers-ai:dreamshaper-8-lcm",provider:"cloudflare-workers-ai",vendorId:"dreamshaper-8-lcm",displayName:"@cf/lykon/dreamshaper-8-lcm",family:"dreamshaper-8-lcm",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/dreamshaper-8-lcm"],releasedAt:"2023-12-06",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-12-07"},{id:"cloudflare-workers-ai:falcon-7b-instruct",provider:"cloudflare-workers-ai",vendorId:"falcon-7b-instruct",displayName:"@cf/tiiuae/falcon-7b-instruct",family:"falcon-7b-instruct",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/falcon-7b-instruct"],releasedAt:"2023-04-25",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-10-12"},{id:"cloudflare-workers-ai:flux-1-schnell",provider:"cloudflare-workers-ai",vendorId:"flux-1-schnell",displayName:"@cf/black-forest-labs/flux-1-schnell",family:"flux-1-schnell",status:"stable",context:{combinedMax:2048,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:53e-6,outputPerMTokens:11e-5},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/flux-1-schnell"],releasedAt:"2024-07-31",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-08-16"},{id:"cloudflare-workers-ai:gemma-2b-it-lora",provider:"cloudflare-workers-ai",vendorId:"gemma-2b-it-lora",displayName:"@cf/google/gemma-2b-it-lora",family:"gemma-2b-it-lora",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gemma-2b-it-lora"],releasedAt:"2024-04-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-02"},{id:"cloudflare-workers-ai:gemma-3-12b-it",provider:"cloudflare-workers-ai",vendorId:"gemma-3-12b-it",displayName:"@cf/google/gemma-3-12b-it",family:"gemma-3-12b-it",status:"stable",context:{combinedMax:8e4,outputMax:8e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.35,outputPerMTokens:.56},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gemma-3-12b-it"],releasedAt:"2025-03-01",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-03-21"},{id:"cloudflare-workers-ai:gemma-7b-it",provider:"cloudflare-workers-ai",vendorId:"gemma-7b-it",displayName:"@hf/google/gemma-7b-it",family:"gemma-7b-it",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gemma-7b-it"],releasedAt:"2024-02-13",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-08-14"},{id:"cloudflare-workers-ai:gemma-7b-it-lora",provider:"cloudflare-workers-ai",vendorId:"gemma-7b-it-lora",displayName:"@cf/google/gemma-7b-it-lora",family:"gemma-7b-it-lora",status:"stable",context:{combinedMax:3500,outputMax:3500},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gemma-7b-it-lora"],releasedAt:"2024-04-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-02"},{id:"cloudflare-workers-ai:gpt-oss-120b",provider:"cloudflare-workers-ai",vendorId:"gpt-oss-120b",displayName:"@cf/openai/gpt-oss-120b",family:"gpt-oss-120b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.35,outputPerMTokens:.75},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gpt-oss-120b"],releasedAt:"2025-08-04",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-08-14"},{id:"cloudflare-workers-ai:gpt-oss-20b",provider:"cloudflare-workers-ai",vendorId:"gpt-oss-20b",displayName:"@cf/openai/gpt-oss-20b",family:"gpt-oss-20b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/gpt-oss-20b"],releasedAt:"2025-08-04",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-08-14"},{id:"cloudflare-workers-ai:hermes-2-pro-mistral-7b",provider:"cloudflare-workers-ai",vendorId:"hermes-2-pro-mistral-7b",displayName:"@hf/nousresearch/hermes-2-pro-mistral-7b",family:"hermes-2-pro-mistral-7b",status:"stable",context:{combinedMax:24e3,outputMax:24e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/hermes-2-pro-mistral-7b"],releasedAt:"2024-03-11",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-09-08"},{id:"cloudflare-workers-ai:llama-2-13b-chat-awq",provider:"cloudflare-workers-ai",vendorId:"llama-2-13b-chat-awq",displayName:"@hf/thebloke/llama-2-13b-chat-awq",family:"llama-2-13b-chat-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-2-13b-chat-awq"],releasedAt:"2023-09-19",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-09"},{id:"cloudflare-workers-ai:llama-2-7b-chat-fp16",provider:"cloudflare-workers-ai",vendorId:"llama-2-7b-chat-fp16",displayName:"@cf/meta/llama-2-7b-chat-fp16",family:"llama-2-7b-chat-fp16",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.56,outputPerMTokens:6.67},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-2-7b-chat-fp16"],releasedAt:"2023-07-26",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-07-26"},{id:"cloudflare-workers-ai:llama-2-7b-chat-hf-lora",provider:"cloudflare-workers-ai",vendorId:"llama-2-7b-chat-hf-lora",displayName:"@cf/meta-llama/llama-2-7b-chat-hf-lora",family:"llama-2-7b-chat-hf-lora",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-2-7b-chat-hf-lora"],releasedAt:"2023-07-13",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-17"},{id:"cloudflare-workers-ai:llama-2-7b-chat-int8",provider:"cloudflare-workers-ai",vendorId:"llama-2-7b-chat-int8",displayName:"@cf/meta/llama-2-7b-chat-int8",family:"llama-2-7b-chat-int8",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-2-7b-chat-int8"],releasedAt:"2023-09-25",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-09-25"},{id:"cloudflare-workers-ai:llama-3-8b-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3-8b-instruct",displayName:"@cf/meta/llama-3-8b-instruct",family:"llama-3-8b-instruct",status:"stable",context:{combinedMax:7968,outputMax:7968},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.28,outputPerMTokens:.83},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3-8b-instruct"],releasedAt:"2024-04-17",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-06-19"},{id:"cloudflare-workers-ai:llama-3-8b-instruct-awq",provider:"cloudflare-workers-ai",vendorId:"llama-3-8b-instruct-awq",displayName:"@cf/meta/llama-3-8b-instruct-awq",family:"llama-3-8b-instruct-awq",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.12,outputPerMTokens:.27},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3-8b-instruct-awq"],releasedAt:"2024-05-09",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-05-09"},{id:"cloudflare-workers-ai:llama-3.1-70b-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3.1-70b-instruct",displayName:"@cf/meta/llama-3.1-70b-instruct",family:"llama-3.1-70b-instruct",status:"stable",context:{combinedMax:24e3,outputMax:24e3},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.1-70b-instruct"],releasedAt:"2024-07-16",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-12-15"},{id:"cloudflare-workers-ai:llama-3.1-8b-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3.1-8b-instruct",displayName:"@cf/meta/llama-3.1-8b-instruct",family:"llama-3.1-8b-instruct",status:"stable",context:{combinedMax:7968,outputMax:7968},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.28,outputPerMTokens:.83},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.1-8b-instruct"],releasedAt:"2024-07-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-09-25"},{id:"cloudflare-workers-ai:llama-3.1-8b-instruct-awq",provider:"cloudflare-workers-ai",vendorId:"llama-3.1-8b-instruct-awq",displayName:"@cf/meta/llama-3.1-8b-instruct-awq",family:"llama-3.1-8b-instruct-awq",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.12,outputPerMTokens:.27},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.1-8b-instruct-awq"],releasedAt:"2024-07-25",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-07-25"},{id:"cloudflare-workers-ai:llama-3.1-8b-instruct-fast",provider:"cloudflare-workers-ai",vendorId:"llama-3.1-8b-instruct-fast",displayName:"@cf/meta/llama-3.1-8b-instruct-fast",family:"llama-3.1-8b-instruct-fast",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.1-8b-instruct-fast"],releasedAt:"2024-07-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-09-25"},{id:"cloudflare-workers-ai:llama-3.1-8b-instruct-fp8",provider:"cloudflare-workers-ai",vendorId:"llama-3.1-8b-instruct-fp8",displayName:"@cf/meta/llama-3.1-8b-instruct-fp8",family:"llama-3.1-8b-instruct-fp8",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.29},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.1-8b-instruct-fp8"],releasedAt:"2024-07-25",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-07-25"},{id:"cloudflare-workers-ai:llama-3.2-11b-vision-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3.2-11b-vision-instruct",displayName:"@cf/meta/llama-3.2-11b-vision-instruct",family:"llama-3.2-11b-vision-instruct",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.049,outputPerMTokens:.68},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.2-11b-vision-instruct"],releasedAt:"2024-09-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-12-04"},{id:"cloudflare-workers-ai:llama-3.2-1b-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3.2-1b-instruct",displayName:"@cf/meta/llama-3.2-1b-instruct",family:"llama-3.2-1b-instruct",status:"stable",context:{combinedMax:6e4,outputMax:6e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.027,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.2-1b-instruct"],releasedAt:"2024-09-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-10-24"},{id:"cloudflare-workers-ai:llama-3.2-3b-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-3.2-3b-instruct",displayName:"@cf/meta/llama-3.2-3b-instruct",family:"llama-3.2-3b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.051,outputPerMTokens:.34},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.2-3b-instruct"],releasedAt:"2024-09-18",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-10-24"},{id:"cloudflare-workers-ai:llama-3.3-70b-instruct-fp8-fast",provider:"cloudflare-workers-ai",vendorId:"llama-3.3-70b-instruct-fp8-fast",displayName:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",family:"llama-3.3-70b-instruct-fp8-fast",status:"stable",context:{combinedMax:24e3,outputMax:24e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.29,outputPerMTokens:2.25},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-3.3-70b-instruct-fp8-fast"],releasedAt:"2024-12-06",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-12-06"},{id:"cloudflare-workers-ai:llama-4-scout-17b-16e-instruct",provider:"cloudflare-workers-ai",vendorId:"llama-4-scout-17b-16e-instruct",displayName:"@cf/meta/llama-4-scout-17b-16e-instruct",family:"llama-4-scout-17b-16e-instruct",status:"stable",context:{combinedMax:131e3,outputMax:131e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.27,outputPerMTokens:.85},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-4-scout-17b-16e-instruct"],releasedAt:"2025-04-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-05-23"},{id:"cloudflare-workers-ai:llama-guard-3-8b",provider:"cloudflare-workers-ai",vendorId:"llama-guard-3-8b",displayName:"@cf/meta/llama-guard-3-8b",family:"llama-guard-3-8b",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.48,outputPerMTokens:.03},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llama-guard-3-8b"],releasedAt:"2024-07-22",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-10-11"},{id:"cloudflare-workers-ai:llamaguard-7b-awq",provider:"cloudflare-workers-ai",vendorId:"llamaguard-7b-awq",displayName:"@hf/thebloke/llamaguard-7b-awq",family:"llamaguard-7b-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llamaguard-7b-awq"],releasedAt:"2023-12-11",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-12-11"},{id:"cloudflare-workers-ai:llava-1.5-7b-hf",provider:"cloudflare-workers-ai",vendorId:"llava-1.5-7b-hf",displayName:"@cf/llava-hf/llava-1.5-7b-hf",family:"llava-1.5-7b-hf",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/llava-1.5-7b-hf"],releasedAt:"2023-12-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-06-06"},{id:"cloudflare-workers-ai:m2m100-1.2b",provider:"cloudflare-workers-ai",vendorId:"m2m100-1.2b",displayName:"@cf/meta/m2m100-1.2b",family:"m2m100-1.2b",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.34,outputPerMTokens:.34},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/m2m100-1.2b"],releasedAt:"2022-03-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-16"},{id:"cloudflare-workers-ai:melotts",provider:"cloudflare-workers-ai",vendorId:"melotts",displayName:"@cf/myshell-ai/melotts",family:"melotts",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:2e-4,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/melotts"],releasedAt:"2024-07-19",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-07-19"},{id:"cloudflare-workers-ai:mistral-7b-instruct-v0.1",provider:"cloudflare-workers-ai",vendorId:"mistral-7b-instruct-v0.1",displayName:"@cf/mistral/mistral-7b-instruct-v0.1",family:"mistral-7b-instruct-v0.1",status:"stable",context:{combinedMax:2824,outputMax:2824},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.11,outputPerMTokens:.19},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/mistral-7b-instruct-v0.1"],releasedAt:"2023-09-27",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-07-24"},{id:"cloudflare-workers-ai:mistral-7b-instruct-v0.1-awq",provider:"cloudflare-workers-ai",vendorId:"mistral-7b-instruct-v0.1-awq",displayName:"@hf/thebloke/mistral-7b-instruct-v0.1-awq",family:"mistral-7b-instruct-v0.1-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/mistral-7b-instruct-v0.1-awq"],releasedAt:"2023-09-27",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-09"},{id:"cloudflare-workers-ai:mistral-7b-instruct-v0.2",provider:"cloudflare-workers-ai",vendorId:"mistral-7b-instruct-v0.2",displayName:"@hf/mistral/mistral-7b-instruct-v0.2",family:"mistral-7b-instruct-v0.2",status:"stable",context:{combinedMax:3072,outputMax:3072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/mistral-7b-instruct-v0.2"],releasedAt:"2023-12-11",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-07-24"},{id:"cloudflare-workers-ai:mistral-7b-instruct-v0.2-lora",provider:"cloudflare-workers-ai",vendorId:"mistral-7b-instruct-v0.2-lora",displayName:"@cf/mistral/mistral-7b-instruct-v0.2-lora",family:"mistral-7b-instruct-v0.2-lora",status:"stable",context:{combinedMax:15e3,outputMax:15e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/mistral-7b-instruct-v0.2-lora"],releasedAt:"2024-04-01",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-01"},{id:"cloudflare-workers-ai:mistral-small-3.1-24b-instruct",provider:"cloudflare-workers-ai",vendorId:"mistral-small-3.1-24b-instruct",displayName:"@cf/mistralai/mistral-small-3.1-24b-instruct",family:"mistral-small-3.1-24b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.35,outputPerMTokens:.56},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/mistral-small-3.1-24b-instruct"],releasedAt:"2025-03-11",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-07-28"},{id:"cloudflare-workers-ai:neural-chat-7b-v3-1-awq",provider:"cloudflare-workers-ai",vendorId:"neural-chat-7b-v3-1-awq",displayName:"@hf/thebloke/neural-chat-7b-v3-1-awq",family:"neural-chat-7b-v3-1-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/neural-chat-7b-v3-1-awq"],releasedAt:"2023-11-15",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-17"},{id:"cloudflare-workers-ai:openchat-3.5-0106",provider:"cloudflare-workers-ai",vendorId:"openchat-3.5-0106",displayName:"@cf/openchat/openchat-3.5-0106",family:"openchat-3.5-0106",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/openchat-3.5-0106"],releasedAt:"2024-01-07",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-05-18"},{id:"cloudflare-workers-ai:openhermes-2.5-mistral-7b-awq",provider:"cloudflare-workers-ai",vendorId:"openhermes-2.5-mistral-7b-awq",displayName:"@hf/thebloke/openhermes-2.5-mistral-7b-awq",family:"openhermes-2.5-mistral-7b-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/openhermes-2.5-mistral-7b-awq"],releasedAt:"2023-11-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-09"},{id:"cloudflare-workers-ai:phi-2",provider:"cloudflare-workers-ai",vendorId:"phi-2",displayName:"@cf/microsoft/phi-2",family:"phi-2",status:"stable",context:{combinedMax:2048,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/phi-2"],releasedAt:"2023-12-13",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-29"},{id:"cloudflare-workers-ai:qwen1.5-0.5b-chat",provider:"cloudflare-workers-ai",vendorId:"qwen1.5-0.5b-chat",displayName:"@cf/qwen/qwen1.5-0.5b-chat",family:"qwen1.5-0.5b-chat",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwen1.5-0.5b-chat"],releasedAt:"2024-01-31",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-30"},{id:"cloudflare-workers-ai:qwen1.5-1.8b-chat",provider:"cloudflare-workers-ai",vendorId:"qwen1.5-1.8b-chat",displayName:"@cf/qwen/qwen1.5-1.8b-chat",family:"qwen1.5-1.8b-chat",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwen1.5-1.8b-chat"],releasedAt:"2024-01-30",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-30"},{id:"cloudflare-workers-ai:qwen1.5-14b-chat-awq",provider:"cloudflare-workers-ai",vendorId:"qwen1.5-14b-chat-awq",displayName:"@cf/qwen/qwen1.5-14b-chat-awq",family:"qwen1.5-14b-chat-awq",status:"stable",context:{combinedMax:7500,outputMax:7500},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwen1.5-14b-chat-awq"],releasedAt:"2024-02-03",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-30"},{id:"cloudflare-workers-ai:qwen1.5-7b-chat-awq",provider:"cloudflare-workers-ai",vendorId:"qwen1.5-7b-chat-awq",displayName:"@cf/qwen/qwen1.5-7b-chat-awq",family:"qwen1.5-7b-chat-awq",status:"stable",context:{combinedMax:2e4,outputMax:2e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwen1.5-7b-chat-awq"],releasedAt:"2024-02-03",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-30"},{id:"cloudflare-workers-ai:qwen2.5-coder-32b-instruct",provider:"cloudflare-workers-ai",vendorId:"qwen2.5-coder-32b-instruct",displayName:"@cf/qwen/qwen2.5-coder-32b-instruct",family:"qwen2.5-coder-32b-instruct",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.66,outputPerMTokens:1},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwen2.5-coder-32b-instruct"],releasedAt:"2024-11-06",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-01-12"},{id:"cloudflare-workers-ai:qwq-32b",provider:"cloudflare-workers-ai",vendorId:"qwq-32b",displayName:"@cf/qwen/qwq-32b",family:"qwq-32b",status:"stable",context:{combinedMax:24e3,outputMax:24e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.66,outputPerMTokens:1},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/qwq-32b"],releasedAt:"2025-03-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2025-03-11"},{id:"cloudflare-workers-ai:resnet-50",provider:"cloudflare-workers-ai",vendorId:"resnet-50",displayName:"@cf/microsoft/resnet-50",family:"resnet-50",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textOut:!0,imageIn:!0},pricing:{inputPerMTokens:25e-7,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/resnet-50"],releasedAt:"2022-03-16",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-13"},{id:"cloudflare-workers-ai:sqlcoder-7b-2",provider:"cloudflare-workers-ai",vendorId:"sqlcoder-7b-2",displayName:"@cf/defog/sqlcoder-7b-2",family:"sqlcoder-7b-2",status:"stable",context:{combinedMax:1e4,outputMax:1e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/sqlcoder-7b-2"],releasedAt:"2024-02-05",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-12"},{id:"cloudflare-workers-ai:stable-diffusion-v1-5-img2img",provider:"cloudflare-workers-ai",vendorId:"stable-diffusion-v1-5-img2img",displayName:"@cf/runwayml/stable-diffusion-v1-5-img2img",family:"stable-diffusion-v1-5-img2img",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/stable-diffusion-v1-5-img2img"],releasedAt:"2024-02-27",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-27"},{id:"cloudflare-workers-ai:stable-diffusion-v1-5-inpainting",provider:"cloudflare-workers-ai",vendorId:"stable-diffusion-v1-5-inpainting",displayName:"@cf/runwayml/stable-diffusion-v1-5-inpainting",family:"stable-diffusion-v1-5-inpainting",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/stable-diffusion-v1-5-inpainting"],releasedAt:"2024-02-27",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-02-27"},{id:"cloudflare-workers-ai:stable-diffusion-xl-base-1.0",provider:"cloudflare-workers-ai",vendorId:"stable-diffusion-xl-base-1.0",displayName:"@cf/stabilityai/stable-diffusion-xl-base-1.0",family:"stable-diffusion-xl-base-1.0",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/stable-diffusion-xl-base-1.0"],releasedAt:"2023-07-25",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-10-30"},{id:"cloudflare-workers-ai:stable-diffusion-xl-lightning",provider:"cloudflare-workers-ai",vendorId:"stable-diffusion-xl-lightning",displayName:"@cf/bytedance/stable-diffusion-xl-lightning",family:"stable-diffusion-xl-lightning",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/stable-diffusion-xl-lightning"],releasedAt:"2024-02-20",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-03"},{id:"cloudflare-workers-ai:starling-lm-7b-beta",provider:"cloudflare-workers-ai",vendorId:"starling-lm-7b-beta",displayName:"@hf/nexusflow/starling-lm-7b-beta",family:"starling-lm-7b-beta",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/starling-lm-7b-beta"],releasedAt:"2024-03-19",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-03"},{id:"cloudflare-workers-ai:tinyllama-1.1b-chat-v1.0",provider:"cloudflare-workers-ai",vendorId:"tinyllama-1.1b-chat-v1.0",displayName:"@cf/tinyllama/tinyllama-1.1b-chat-v1.0",family:"tinyllama-1.1b-chat-v1.0",status:"stable",context:{combinedMax:2048,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/tinyllama-1.1b-chat-v1.0"],releasedAt:"2023-12-30",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-03-17"},{id:"cloudflare-workers-ai:uform-gen2-qwen-500m",provider:"cloudflare-workers-ai",vendorId:"uform-gen2-qwen-500m",displayName:"@cf/unum/uform-gen2-qwen-500m",family:"uform-gen2-qwen-500m",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/uform-gen2-qwen-500m"],releasedAt:"2024-02-15",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-04-24"},{id:"cloudflare-workers-ai:una-cybertron-7b-v2-bf16",provider:"cloudflare-workers-ai",vendorId:"una-cybertron-7b-v2-bf16",displayName:"@cf/fblgit/una-cybertron-7b-v2-bf16",family:"una-cybertron-7b-v2-bf16",status:"stable",context:{combinedMax:15e3,outputMax:15e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/una-cybertron-7b-v2-bf16"],releasedAt:"2023-12-02",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-03-08"},{id:"cloudflare-workers-ai:whisper",provider:"cloudflare-workers-ai",vendorId:"whisper",displayName:"@cf/openai/whisper",family:"whisper",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textOut:!0},pricing:{inputPerMTokens:45e-5,outputPerMTokens:45e-5},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/whisper"],releasedAt:"2023-11-07",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-08-12"},{id:"cloudflare-workers-ai:whisper-large-v3-turbo",provider:"cloudflare-workers-ai",vendorId:"whisper-large-v3-turbo",displayName:"@cf/openai/whisper-large-v3-turbo",family:"whisper-large-v3-turbo",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textOut:!0},pricing:{inputPerMTokens:51e-5,outputPerMTokens:51e-5},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/whisper-large-v3-turbo"],releasedAt:"2024-10-01",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-10-04"},{id:"cloudflare-workers-ai:whisper-tiny-en",provider:"cloudflare-workers-ai",vendorId:"whisper-tiny-en",displayName:"@cf/openai/whisper-tiny-en",family:"whisper-tiny-en",status:"stable",context:{combinedMax:0,outputMax:0},modalities:{textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/whisper-tiny-en"],releasedAt:"2022-09-26",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2024-01-22"},{id:"cloudflare-workers-ai:zephyr-7b-beta-awq",provider:"cloudflare-workers-ai",vendorId:"zephyr-7b-beta-awq",displayName:"@hf/thebloke/zephyr-7b-beta-awq",family:"zephyr-7b-beta-awq",status:"stable",context:{combinedMax:4096,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["cloudflare-workers-ai/zephyr-7b-beta-awq"],releasedAt:"2023-10-27",source:"https://developers.cloudflare.com/workers-ai/models/",contextSource:"https://developers.cloudflare.com/workers-ai/models/",verifiedAt:"2023-11-09"},{id:"deepinfra:moonshotai/Kimi-K2-Instruct",provider:"deepinfra",vendorId:"moonshotai/Kimi-K2-Instruct",displayName:"Kimi K2",family:"moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["deepinfra/moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-11",source:"https://deepinfra.com/models",contextSource:"https://deepinfra.com/models",verifiedAt:"2025-07-11"},{id:"deepinfra:Qwen/Qwen3-Coder-480B-A35B-Instruct",provider:"deepinfra",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen3 Coder 480B A35B Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://deepinfra.com/models",contextSource:"https://deepinfra.com/models",verifiedAt:"2025-07-23"},{id:"deepinfra:Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",provider:"deepinfra",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",displayName:"Qwen3 Coder 480B A35B Instruct Turbo",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["deepinfra/Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo"],releasedAt:"2025-07-23",source:"https://deepinfra.com/models",contextSource:"https://deepinfra.com/models",verifiedAt:"2025-07-23"},{id:"deepinfra:zai-org/GLM-4.5",provider:"deepinfra",vendorId:"zai-org/GLM-4.5",displayName:"GLM-4.5",family:"zai-org/GLM-4.5",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["deepinfra/zai-org/GLM-4.5"],releasedAt:"2025-07-28",source:"https://deepinfra.com/models",contextSource:"https://deepinfra.com/models",verifiedAt:"2025-07-28"},{id:"deepseek:deepseek-chat",provider:"deepseek",vendorId:"deepseek-chat",displayName:"DeepSeek Chat",family:"deepseek-chat",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.57,outputPerMTokens:1.68},pricingSource:"models.dev",aliases:["deepseek/deepseek-chat"],releasedAt:"2024-12-26",source:"https://platform.deepseek.com/api-docs/pricing",contextSource:"https://platform.deepseek.com/api-docs/pricing",verifiedAt:"2025-08-21"},{id:"deepseek:deepseek-reasoner",provider:"deepseek",vendorId:"deepseek-reasoner",displayName:"DeepSeek Reasoner",family:"deepseek-reasoner",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.57,outputPerMTokens:1.68},pricingSource:"models.dev",aliases:["deepseek/deepseek-reasoner"],releasedAt:"2025-01-20",source:"https://platform.deepseek.com/api-docs/pricing",contextSource:"https://platform.deepseek.com/api-docs/pricing",verifiedAt:"2025-08-21"},{id:"fastrouter:anthropic/claude-opus-4.1",provider:"fastrouter",vendorId:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1",family:"anthropic/claude-opus-4.1",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["fastrouter/anthropic/claude-opus-4.1"],releasedAt:"2025-08-05",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-05"},{id:"fastrouter:anthropic/claude-sonnet-4",provider:"fastrouter",vendorId:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",family:"anthropic/claude-sonnet-4",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["fastrouter/anthropic/claude-sonnet-4"],releasedAt:"2025-05-22",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-05-22"},{id:"fastrouter:deepseek-ai/deepseek-r1-distill-llama-70b",provider:"fastrouter",vendorId:"deepseek-ai/deepseek-r1-distill-llama-70b",displayName:"DeepSeek R1 Distill Llama 70B",family:"deepseek-ai/deepseek-r1-distill-llama-70b",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.03,outputPerMTokens:.14},pricingSource:"models.dev",aliases:["fastrouter/deepseek-ai/deepseek-r1-distill-llama-70b"],releasedAt:"2025-01-23",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-01-23"},{id:"fastrouter:google/gemini-2.5-flash",provider:"fastrouter",vendorId:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"google/gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["fastrouter/google/gemini-2.5-flash"],releasedAt:"2025-06-17",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-06-17"},{id:"fastrouter:google/gemini-2.5-pro",provider:"fastrouter",vendorId:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"google/gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["fastrouter/google/gemini-2.5-pro"],releasedAt:"2025-06-17",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-06-17"},{id:"fastrouter:moonshotai/kimi-k2",provider:"fastrouter",vendorId:"moonshotai/kimi-k2",displayName:"Kimi K2",family:"moonshotai/kimi-k2",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.55,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["fastrouter/moonshotai/kimi-k2"],releasedAt:"2025-07-11",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-07-11"},{id:"fastrouter:openai/gpt-4.1",provider:"fastrouter",vendorId:"openai/gpt-4.1",displayName:"GPT-4.1",family:"openai/gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-04-14"},{id:"fastrouter:openai/gpt-5",provider:"fastrouter",vendorId:"openai/gpt-5",displayName:"GPT-5",family:"openai/gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-5"],releasedAt:"2025-08-07",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-07"},{id:"fastrouter:openai/gpt-5-mini",provider:"fastrouter",vendorId:"openai/gpt-5-mini",displayName:"GPT-5 Mini",family:"openai/gpt-5-mini",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-07"},{id:"fastrouter:openai/gpt-5-nano",provider:"fastrouter",vendorId:"openai/gpt-5-nano",displayName:"GPT-5 Nano",family:"openai/gpt-5-nano",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-07"},{id:"fastrouter:openai/gpt-oss-120b",provider:"fastrouter",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-05"},{id:"fastrouter:openai/gpt-oss-20b",provider:"fastrouter",vendorId:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",family:"openai/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["fastrouter/openai/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-08-05"},{id:"fastrouter:qwen/qwen3-coder",provider:"fastrouter",vendorId:"qwen/qwen3-coder",displayName:"Qwen3 Coder",family:"qwen/qwen3-coder",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["fastrouter/qwen/qwen3-coder"],releasedAt:"2025-07-23",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-07-23"},{id:"fastrouter:x-ai/grok-4",provider:"fastrouter",vendorId:"x-ai/grok-4",displayName:"Grok 4",family:"x-ai/grok-4",status:"stable",context:{combinedMax:256e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["fastrouter/x-ai/grok-4"],releasedAt:"2025-07-09",source:"https://fastrouter.ai/models",contextSource:"https://fastrouter.ai/models",verifiedAt:"2025-07-09"},{id:"fireworks-ai:accounts/fireworks/gpt-oss-120b",provider:"fireworks-ai",vendorId:"accounts/fireworks/gpt-oss-120b",displayName:"GPT OSS 120B",family:"accounts/fireworks/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-08-05"},{id:"fireworks-ai:accounts/fireworks/gpt-oss-20b",provider:"fireworks-ai",vendorId:"accounts/fireworks/gpt-oss-20b",displayName:"GPT OSS 20B",family:"accounts/fireworks/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-08-05"},{id:"fireworks-ai:accounts/fireworks/models/deepseek-r1-0528",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/deepseek-r1-0528",displayName:"Deepseek R1 05/28",family:"accounts/fireworks/models/deepseek-r1-0528",status:"stable",context:{combinedMax:16e4,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:8},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/deepseek-r1-0528"],releasedAt:"2025-05-28",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-05-28"},{id:"fireworks-ai:accounts/fireworks/models/deepseek-v3-0324",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/deepseek-v3-0324",displayName:"Deepseek V3 03-24",family:"accounts/fireworks/models/deepseek-v3-0324",status:"stable",context:{combinedMax:16e4,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.9,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/deepseek-v3-0324"],releasedAt:"2025-03-24",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-03-24"},{id:"fireworks-ai:accounts/fireworks/models/deepseek-v3p1",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/deepseek-v3p1",displayName:"DeepSeek V3.1",family:"accounts/fireworks/models/deepseek-v3p1",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.56,outputPerMTokens:1.68},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/deepseek-v3p1"],releasedAt:"2025-08-21",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-08-21"},{id:"fireworks-ai:accounts/fireworks/models/glm-4p5",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/glm-4p5",displayName:"GLM 4.5",family:"accounts/fireworks/models/glm-4p5",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.55,outputPerMTokens:2.19},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/glm-4p5"],releasedAt:"2025-07-29",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-07-29"},{id:"fireworks-ai:accounts/fireworks/models/glm-4p5-air",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/glm-4p5-air",displayName:"GLM 4.5 Air",family:"accounts/fireworks/models/glm-4p5-air",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.22,outputPerMTokens:.88},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/glm-4p5-air"],releasedAt:"2025-08-01",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-08-01"},{id:"fireworks-ai:accounts/fireworks/models/kimi-k2-instruct",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/kimi-k2-instruct",displayName:"Kimi K2 Instruct",family:"accounts/fireworks/models/kimi-k2-instruct",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/kimi-k2-instruct"],releasedAt:"2025-07-11",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-07-11"},{id:"fireworks-ai:accounts/fireworks/models/qwen3-235b-a22b",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/qwen3-235b-a22b",displayName:"Qwen3 235B-A22B",family:"accounts/fireworks/models/qwen3-235b-a22b",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.22,outputPerMTokens:.88},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/qwen3-235b-a22b"],releasedAt:"2025-04-29",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-04-29"},{id:"fireworks-ai:accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",provider:"fireworks-ai",vendorId:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",displayName:"Qwen3 Coder 480B A35B Instruct",family:"accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",status:"stable",context:{combinedMax:256e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.45,outputPerMTokens:1.8},pricingSource:"models.dev",aliases:["fireworks-ai/accounts/fireworks/models/qwen3-coder-480b-a35b-instruct"],releasedAt:"2025-07-22",source:"https://fireworks.ai/docs/",contextSource:"https://fireworks.ai/docs/",verifiedAt:"2025-07-22"},{id:"github-copilot:claude-3.5-sonnet",provider:"github-copilot",vendorId:"claude-3.5-sonnet",displayName:"Claude Sonnet 3.5",family:"claude-3.5-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-3.5-sonnet"],releasedAt:"2024-10-22",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2024-10-22"},{id:"github-copilot:claude-3.7-sonnet",provider:"github-copilot",vendorId:"claude-3.7-sonnet",displayName:"Claude Sonnet 3.7",family:"claude-3.7-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-3.7-sonnet"],releasedAt:"2025-02-19",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-02-19"},{id:"github-copilot:claude-3.7-sonnet-thought",provider:"github-copilot",vendorId:"claude-3.7-sonnet-thought",displayName:"Claude Sonnet 3.7 Thinking",family:"claude-3.7-sonnet-thought",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-3.7-sonnet-thought"],releasedAt:"2025-02-19",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-02-19"},{id:"github-copilot:claude-opus-4",provider:"github-copilot",vendorId:"claude-opus-4",displayName:"Claude Opus 4",family:"claude-opus-4",status:"stable",context:{combinedMax:8e4,outputMax:16e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-opus-4"],releasedAt:"2025-05-22",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-05-22"},{id:"github-copilot:claude-opus-41",provider:"github-copilot",vendorId:"claude-opus-41",displayName:"Claude Opus 4.1",family:"claude-opus-41",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-opus-41"],releasedAt:"2025-08-05",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-08-05"},{id:"github-copilot:claude-sonnet-4",provider:"github-copilot",vendorId:"claude-sonnet-4",displayName:"Claude Sonnet 4",family:"claude-sonnet-4",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/claude-sonnet-4"],releasedAt:"2025-05-22",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-05-22"},{id:"github-copilot:gemini-2.0-flash-001",provider:"github-copilot",vendorId:"gemini-2.0-flash-001",displayName:"Gemini 2.0 Flash",family:"gemini-2.0-flash-001",status:"stable",context:{combinedMax:1e6,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gemini-2.0-flash-001"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2024-12-11"},{id:"github-copilot:gemini-2.5-pro",provider:"github-copilot",vendorId:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gemini-2.5-pro"],releasedAt:"2025-03-20",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-06-05"},{id:"github-copilot:gpt-4.1",provider:"github-copilot",vendorId:"gpt-4.1",displayName:"GPT-4.1",family:"gpt-4.1",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gpt-4.1"],releasedAt:"2025-04-14",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-04-14"},{id:"github-copilot:gpt-4o",provider:"github-copilot",vendorId:"gpt-4o",displayName:"GPT-4o",family:"gpt-4o",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gpt-4o"],releasedAt:"2024-05-13",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2024-05-13"},{id:"github-copilot:gpt-5",provider:"github-copilot",vendorId:"gpt-5",displayName:"GPT-5",family:"gpt-5",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gpt-5"],releasedAt:"2025-08-07",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-08-07"},{id:"github-copilot:gpt-5-mini",provider:"github-copilot",vendorId:"gpt-5-mini",displayName:"GPT-5-mini",family:"gpt-5-mini",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/gpt-5-mini"],releasedAt:"2025-08-13",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-08-13"},{id:"github-copilot:grok-code-fast-1",provider:"github-copilot",vendorId:"grok-code-fast-1",displayName:"Grok Code Fast 1",family:"grok-code-fast-1",status:"stable",context:{combinedMax:256e3,outputMax:1e4},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["github-copilot/grok-code-fast-1"],releasedAt:"2025-08-27",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-08-27"},{id:"github-copilot:o3",provider:"github-copilot",vendorId:"o3",displayName:"o3 (Preview)",family:"o3",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricingSource:"models.dev",aliases:["github-copilot/o3"],releasedAt:"2025-04-16",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-04-16"},{id:"github-copilot:o3-mini",provider:"github-copilot",vendorId:"o3-mini",displayName:"o3-mini",family:"o3-mini",status:"stable",context:{combinedMax:128e3,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["github-copilot/o3-mini"],releasedAt:"2024-12-20",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-01-29"},{id:"github-copilot:o4-mini",provider:"github-copilot",vendorId:"o4-mini",displayName:"o4-mini (Preview)",family:"o4-mini",status:"stable",context:{combinedMax:128e3,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricingSource:"models.dev",aliases:["github-copilot/o4-mini"],releasedAt:"2025-04-16",source:"https://docs.github.com/en/copilot",contextSource:"https://docs.github.com/en/copilot",verifiedAt:"2025-04-16"},{id:"github-models:ai21-labs/ai21-jamba-1.5-large",provider:"github-models",vendorId:"ai21-labs/ai21-jamba-1.5-large",displayName:"AI21 Jamba 1.5 Large",family:"ai21-labs/ai21-jamba-1.5-large",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/ai21-labs/ai21-jamba-1.5-large"],releasedAt:"2024-08-29",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-29"},{id:"github-models:ai21-labs/ai21-jamba-1.5-mini",provider:"github-models",vendorId:"ai21-labs/ai21-jamba-1.5-mini",displayName:"AI21 Jamba 1.5 Mini",family:"ai21-labs/ai21-jamba-1.5-mini",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/ai21-labs/ai21-jamba-1.5-mini"],releasedAt:"2024-08-29",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-29"},{id:"github-models:cohere/cohere-command-a",provider:"github-models",vendorId:"cohere/cohere-command-a",displayName:"Cohere Command A",family:"cohere/cohere-command-a",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/cohere/cohere-command-a"],releasedAt:"2024-11-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-11-01"},{id:"github-models:cohere/cohere-command-r",provider:"github-models",vendorId:"cohere/cohere-command-r",displayName:"Cohere Command R",family:"cohere/cohere-command-r",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/cohere/cohere-command-r"],releasedAt:"2024-03-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-01"},{id:"github-models:cohere/cohere-command-r-08-2024",provider:"github-models",vendorId:"cohere/cohere-command-r-08-2024",displayName:"Cohere Command R 08-2024",family:"cohere/cohere-command-r-08-2024",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/cohere/cohere-command-r-08-2024"],releasedAt:"2024-08-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-01"},{id:"github-models:cohere/cohere-command-r-plus",provider:"github-models",vendorId:"cohere/cohere-command-r-plus",displayName:"Cohere Command R+",family:"cohere/cohere-command-r-plus",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/cohere/cohere-command-r-plus"],releasedAt:"2024-04-04",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-01"},{id:"github-models:cohere/cohere-command-r-plus-08-2024",provider:"github-models",vendorId:"cohere/cohere-command-r-plus-08-2024",displayName:"Cohere Command R+ 08-2024",family:"cohere/cohere-command-r-plus-08-2024",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/cohere/cohere-command-r-plus-08-2024"],releasedAt:"2024-08-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-01"},{id:"github-models:core42/jais-30b-chat",provider:"github-models",vendorId:"core42/jais-30b-chat",displayName:"JAIS 30b Chat",family:"core42/jais-30b-chat",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/core42/jais-30b-chat"],releasedAt:"2023-08-30",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2023-08-30"},{id:"github-models:deepseek/deepseek-r1",provider:"github-models",vendorId:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",family:"deepseek/deepseek-r1",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/deepseek/deepseek-r1"],releasedAt:"2025-01-20",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-20"},{id:"github-models:deepseek/deepseek-r1-0528",provider:"github-models",vendorId:"deepseek/deepseek-r1-0528",displayName:"DeepSeek-R1-0528",family:"deepseek/deepseek-r1-0528",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/deepseek/deepseek-r1-0528"],releasedAt:"2025-05-28",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-05-28"},{id:"github-models:deepseek/deepseek-v3-0324",provider:"github-models",vendorId:"deepseek/deepseek-v3-0324",displayName:"DeepSeek-V3-0324",family:"deepseek/deepseek-v3-0324",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/deepseek/deepseek-v3-0324"],releasedAt:"2025-03-24",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-03-24"},{id:"github-models:meta/llama-3.2-11b-vision-instruct",provider:"github-models",vendorId:"meta/llama-3.2-11b-vision-instruct",displayName:"Llama-3.2-11B-Vision-Instruct",family:"meta/llama-3.2-11b-vision-instruct",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/llama-3.2-11b-vision-instruct"],releasedAt:"2024-09-25",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-09-25"},{id:"github-models:meta/llama-3.2-90b-vision-instruct",provider:"github-models",vendorId:"meta/llama-3.2-90b-vision-instruct",displayName:"Llama-3.2-90B-Vision-Instruct",family:"meta/llama-3.2-90b-vision-instruct",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/llama-3.2-90b-vision-instruct"],releasedAt:"2024-09-25",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-09-25"},{id:"github-models:meta/llama-3.3-70b-instruct",provider:"github-models",vendorId:"meta/llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",family:"meta/llama-3.3-70b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/llama-3.3-70b-instruct"],releasedAt:"2024-12-06",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-06"},{id:"github-models:meta/llama-4-maverick-17b-128e-instruct-fp8",provider:"github-models",vendorId:"meta/llama-4-maverick-17b-128e-instruct-fp8",displayName:"Llama 4 Maverick 17B 128E Instruct FP8",family:"meta/llama-4-maverick-17b-128e-instruct-fp8",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/llama-4-maverick-17b-128e-instruct-fp8"],releasedAt:"2025-01-31",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-31"},{id:"github-models:meta/llama-4-scout-17b-16e-instruct",provider:"github-models",vendorId:"meta/llama-4-scout-17b-16e-instruct",displayName:"Llama 4 Scout 17B 16E Instruct",family:"meta/llama-4-scout-17b-16e-instruct",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/llama-4-scout-17b-16e-instruct"],releasedAt:"2025-01-31",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-31"},{id:"github-models:meta/meta-llama-3-70b-instruct",provider:"github-models",vendorId:"meta/meta-llama-3-70b-instruct",displayName:"Meta-Llama-3-70B-Instruct",family:"meta/meta-llama-3-70b-instruct",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/meta-llama-3-70b-instruct"],releasedAt:"2024-04-18",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-18"},{id:"github-models:meta/meta-llama-3-8b-instruct",provider:"github-models",vendorId:"meta/meta-llama-3-8b-instruct",displayName:"Meta-Llama-3-8B-Instruct",family:"meta/meta-llama-3-8b-instruct",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/meta-llama-3-8b-instruct"],releasedAt:"2024-04-18",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-18"},{id:"github-models:meta/meta-llama-3.1-405b-instruct",provider:"github-models",vendorId:"meta/meta-llama-3.1-405b-instruct",displayName:"Meta-Llama-3.1-405B-Instruct",family:"meta/meta-llama-3.1-405b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/meta-llama-3.1-405b-instruct"],releasedAt:"2024-07-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-07-23"},{id:"github-models:meta/meta-llama-3.1-70b-instruct",provider:"github-models",vendorId:"meta/meta-llama-3.1-70b-instruct",displayName:"Meta-Llama-3.1-70B-Instruct",family:"meta/meta-llama-3.1-70b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/meta-llama-3.1-70b-instruct"],releasedAt:"2024-07-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-07-23"},{id:"github-models:meta/meta-llama-3.1-8b-instruct",provider:"github-models",vendorId:"meta/meta-llama-3.1-8b-instruct",displayName:"Meta-Llama-3.1-8B-Instruct",family:"meta/meta-llama-3.1-8b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/meta/meta-llama-3.1-8b-instruct"],releasedAt:"2024-07-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-07-23"},{id:"github-models:microsoft/mai-ds-r1",provider:"github-models",vendorId:"microsoft/mai-ds-r1",displayName:"MAI-DS-R1",family:"microsoft/mai-ds-r1",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/mai-ds-r1"],releasedAt:"2025-01-20",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-20"},{id:"github-models:microsoft/phi-3-medium-128k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-medium-128k-instruct",displayName:"Phi-3-medium instruct (128k)",family:"microsoft/phi-3-medium-128k-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-medium-128k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3-medium-4k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-medium-4k-instruct",displayName:"Phi-3-medium instruct (4k)",family:"microsoft/phi-3-medium-4k-instruct",status:"stable",context:{combinedMax:4096,outputMax:1024},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-medium-4k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3-mini-128k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-mini-128k-instruct",displayName:"Phi-3-mini instruct (128k)",family:"microsoft/phi-3-mini-128k-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-mini-128k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3-mini-4k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-mini-4k-instruct",displayName:"Phi-3-mini instruct (4k)",family:"microsoft/phi-3-mini-4k-instruct",status:"stable",context:{combinedMax:4096,outputMax:1024},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-mini-4k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3-small-128k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-small-128k-instruct",displayName:"Phi-3-small instruct (128k)",family:"microsoft/phi-3-small-128k-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-small-128k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3-small-8k-instruct",provider:"github-models",vendorId:"microsoft/phi-3-small-8k-instruct",displayName:"Phi-3-small instruct (8k)",family:"microsoft/phi-3-small-8k-instruct",status:"stable",context:{combinedMax:8192,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3-small-8k-instruct"],releasedAt:"2024-04-23",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-04-23"},{id:"github-models:microsoft/phi-3.5-mini-instruct",provider:"github-models",vendorId:"microsoft/phi-3.5-mini-instruct",displayName:"Phi-3.5-mini instruct (128k)",family:"microsoft/phi-3.5-mini-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3.5-mini-instruct"],releasedAt:"2024-08-20",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-20"},{id:"github-models:microsoft/phi-3.5-moe-instruct",provider:"github-models",vendorId:"microsoft/phi-3.5-moe-instruct",displayName:"Phi-3.5-MoE instruct (128k)",family:"microsoft/phi-3.5-moe-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3.5-moe-instruct"],releasedAt:"2024-08-20",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-20"},{id:"github-models:microsoft/phi-3.5-vision-instruct",provider:"github-models",vendorId:"microsoft/phi-3.5-vision-instruct",displayName:"Phi-3.5-vision instruct (128k)",family:"microsoft/phi-3.5-vision-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-3.5-vision-instruct"],releasedAt:"2024-08-20",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-08-20"},{id:"github-models:microsoft/phi-4",provider:"github-models",vendorId:"microsoft/phi-4",displayName:"Phi-4",family:"microsoft/phi-4",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-4"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-11"},{id:"github-models:microsoft/phi-4-mini-instruct",provider:"github-models",vendorId:"microsoft/phi-4-mini-instruct",displayName:"Phi-4-mini-instruct",family:"microsoft/phi-4-mini-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-4-mini-instruct"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-11"},{id:"github-models:microsoft/phi-4-mini-reasoning",provider:"github-models",vendorId:"microsoft/phi-4-mini-reasoning",displayName:"Phi-4-mini-reasoning",family:"microsoft/phi-4-mini-reasoning",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-4-mini-reasoning"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-11"},{id:"github-models:microsoft/phi-4-multimodal-instruct",provider:"github-models",vendorId:"microsoft/phi-4-multimodal-instruct",displayName:"Phi-4-multimodal-instruct",family:"microsoft/phi-4-multimodal-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-4-multimodal-instruct"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-11"},{id:"github-models:microsoft/phi-4-reasoning",provider:"github-models",vendorId:"microsoft/phi-4-reasoning",displayName:"Phi-4-Reasoning",family:"microsoft/phi-4-reasoning",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/microsoft/phi-4-reasoning"],releasedAt:"2024-12-11",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-11"},{id:"github-models:mistral-ai/codestral-2501",provider:"github-models",vendorId:"mistral-ai/codestral-2501",displayName:"Codestral 25.01",family:"mistral-ai/codestral-2501",status:"stable",context:{combinedMax:32e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/codestral-2501"],releasedAt:"2025-01-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-01"},{id:"github-models:mistral-ai/ministral-3b",provider:"github-models",vendorId:"mistral-ai/ministral-3b",displayName:"Ministral 3B",family:"mistral-ai/ministral-3b",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/ministral-3b"],releasedAt:"2024-10-22",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-10-22"},{id:"github-models:mistral-ai/mistral-large-2411",provider:"github-models",vendorId:"mistral-ai/mistral-large-2411",displayName:"Mistral Large 24.11",family:"mistral-ai/mistral-large-2411",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/mistral-large-2411"],releasedAt:"2024-11-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-11-01"},{id:"github-models:mistral-ai/mistral-medium-2505",provider:"github-models",vendorId:"mistral-ai/mistral-medium-2505",displayName:"Mistral Medium 3 (25.05)",family:"mistral-ai/mistral-medium-2505",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/mistral-medium-2505"],releasedAt:"2025-05-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-05-01"},{id:"github-models:mistral-ai/mistral-nemo",provider:"github-models",vendorId:"mistral-ai/mistral-nemo",displayName:"Mistral Nemo",family:"mistral-ai/mistral-nemo",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/mistral-nemo"],releasedAt:"2024-07-18",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-07-18"},{id:"github-models:mistral-ai/mistral-small-2503",provider:"github-models",vendorId:"mistral-ai/mistral-small-2503",displayName:"Mistral Small 3.1",family:"mistral-ai/mistral-small-2503",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/mistral-ai/mistral-small-2503"],releasedAt:"2025-03-01",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-03-01"},{id:"github-models:openai/gpt-4.1",provider:"github-models",vendorId:"openai/gpt-4.1",displayName:"GPT-4.1",family:"openai/gpt-4.1",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-04-14"},{id:"github-models:openai/gpt-4.1-mini",provider:"github-models",vendorId:"openai/gpt-4.1-mini",displayName:"GPT-4.1-mini",family:"openai/gpt-4.1-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-04-14"},{id:"github-models:openai/gpt-4.1-nano",provider:"github-models",vendorId:"openai/gpt-4.1-nano",displayName:"GPT-4.1-nano",family:"openai/gpt-4.1-nano",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/gpt-4.1-nano"],releasedAt:"2025-04-14",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-04-14"},{id:"github-models:openai/gpt-4o",provider:"github-models",vendorId:"openai/gpt-4o",displayName:"GPT-4o",family:"openai/gpt-4o",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/gpt-4o"],releasedAt:"2024-05-13",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-05-13"},{id:"github-models:openai/gpt-4o-mini",provider:"github-models",vendorId:"openai/gpt-4o-mini",displayName:"GPT-4o mini",family:"openai/gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-07-18"},{id:"github-models:openai/o1",provider:"github-models",vendorId:"openai/o1",displayName:"OpenAI o1",family:"openai/o1",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o1"],releasedAt:"2024-09-12",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-17"},{id:"github-models:openai/o1-mini",provider:"github-models",vendorId:"openai/o1-mini",displayName:"OpenAI o1-mini",family:"openai/o1-mini",status:"stable",context:{combinedMax:128e3,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o1-mini"],releasedAt:"2024-09-12",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-17"},{id:"github-models:openai/o1-preview",provider:"github-models",vendorId:"openai/o1-preview",displayName:"OpenAI o1-preview",family:"openai/o1-preview",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o1-preview"],releasedAt:"2024-09-12",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-09-12"},{id:"github-models:openai/o3",provider:"github-models",vendorId:"openai/o3",displayName:"OpenAI o3",family:"openai/o3",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o3"],releasedAt:"2025-01-31",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-31"},{id:"github-models:openai/o3-mini",provider:"github-models",vendorId:"openai/o3-mini",displayName:"OpenAI o3-mini",family:"openai/o3-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o3-mini"],releasedAt:"2025-01-31",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-31"},{id:"github-models:openai/o4-mini",provider:"github-models",vendorId:"openai/o4-mini",displayName:"OpenAI o4-mini",family:"openai/o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/openai/o4-mini"],releasedAt:"2025-01-31",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2025-01-31"},{id:"github-models:xai/grok-3",provider:"github-models",vendorId:"xai/grok-3",displayName:"Grok 3",family:"xai/grok-3",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/xai/grok-3"],releasedAt:"2024-12-09",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-09"},{id:"github-models:xai/grok-3-mini",provider:"github-models",vendorId:"xai/grok-3-mini",displayName:"Grok 3 Mini",family:"xai/grok-3-mini",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["github-models/xai/grok-3-mini"],releasedAt:"2024-12-09",source:"https://docs.github.com/en/github-models",contextSource:"https://docs.github.com/en/github-models",verifiedAt:"2024-12-09"},{id:"google:gemini-1.5-flash",provider:"google",vendorId:"gemini-1.5-flash",displayName:"Gemini 1.5 Flash",family:"gemini-1.5-flash",status:"stable",context:{combinedMax:1e6,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.075,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["google/gemini-1.5-flash"],releasedAt:"2024-05-14",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2024-05-14"},{id:"google:gemini-1.5-flash-8b",provider:"google",vendorId:"gemini-1.5-flash-8b",displayName:"Gemini 1.5 Flash-8B",family:"gemini-1.5-flash-8b",status:"stable",context:{combinedMax:1e6,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.0375,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["google/gemini-1.5-flash-8b"],releasedAt:"2024-10-03",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2024-10-03"},{id:"google:gemini-1.5-pro",provider:"google",vendorId:"gemini-1.5-pro",displayName:"Gemini 1.5 Pro",family:"gemini-1.5-pro",status:"stable",context:{combinedMax:1e6,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:5},pricingSource:"models.dev",aliases:["google/gemini-1.5-pro"],releasedAt:"2024-02-15",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2024-02-15"},{id:"google:gemini-2.0-flash",provider:"google",vendorId:"gemini-2.0-flash",displayName:"Gemini 2.0 Flash",family:"gemini-2.0-flash",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["google/gemini-2.0-flash"],releasedAt:"2024-12-11",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2024-12-11"},{id:"google:gemini-2.0-flash-lite",provider:"google",vendorId:"gemini-2.0-flash-lite",displayName:"Gemini 2.0 Flash Lite",family:"gemini-2.0-flash-lite",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.075,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["google/gemini-2.0-flash-lite"],releasedAt:"2024-12-11",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2024-12-11"},{id:"google:gemini-2.5-flash",provider:"google",vendorId:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["google/gemini-2.5-flash"],releasedAt:"2025-03-20",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-06-05"},{id:"google:gemini-2.5-flash-lite-preview-06-17",provider:"google",vendorId:"gemini-2.5-flash-lite-preview-06-17",displayName:"Gemini 2.5 Flash Lite Preview 06-17",family:"gemini-2.5-flash-lite-preview-06-17",status:"stable",context:{combinedMax:65536,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["google/gemini-2.5-flash-lite-preview-06-17"],releasedAt:"2025-06-17",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-06-17"},{id:"google:gemini-2.5-flash-preview-04-17",provider:"google",vendorId:"gemini-2.5-flash-preview-04-17",displayName:"Gemini 2.5 Flash Preview 04-17",family:"gemini-2.5-flash-preview-04-17",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["google/gemini-2.5-flash-preview-04-17"],releasedAt:"2025-04-17",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-04-17"},{id:"google:gemini-2.5-flash-preview-05-20",provider:"google",vendorId:"gemini-2.5-flash-preview-05-20",displayName:"Gemini 2.5 Flash Preview 05-20",family:"gemini-2.5-flash-preview-05-20",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["google/gemini-2.5-flash-preview-05-20"],releasedAt:"2025-05-20",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-05-20"},{id:"google:gemini-2.5-pro",provider:"google",vendorId:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google/gemini-2.5-pro"],releasedAt:"2025-03-20",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-06-05"},{id:"google:gemini-2.5-pro-preview-05-06",provider:"google",vendorId:"gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",family:"gemini-2.5-pro-preview-05-06",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google/gemini-2.5-pro-preview-05-06"],releasedAt:"2025-05-06",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-05-06"},{id:"google:gemini-2.5-pro-preview-06-05",provider:"google",vendorId:"gemini-2.5-pro-preview-06-05",displayName:"Gemini 2.5 Pro Preview 06-05",family:"gemini-2.5-pro-preview-06-05",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google/gemini-2.5-pro-preview-06-05"],releasedAt:"2025-06-05",source:"https://ai.google.dev/gemini-api/docs/pricing",contextSource:"https://ai.google.dev/gemini-api/docs/pricing",verifiedAt:"2025-06-05"},{id:"google-vertex:gemini-2.0-flash",provider:"google-vertex",vendorId:"gemini-2.0-flash",displayName:"Gemini 2.0 Flash",family:"gemini-2.0-flash",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.0-flash"],releasedAt:"2024-12-11",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2024-12-11"},{id:"google-vertex:gemini-2.0-flash-lite",provider:"google-vertex",vendorId:"gemini-2.0-flash-lite",displayName:"Gemini 2.0 Flash Lite",family:"gemini-2.0-flash-lite",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.075,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.0-flash-lite"],releasedAt:"2024-12-11",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2024-12-11"},{id:"google-vertex:gemini-2.5-flash",provider:"google-vertex",vendorId:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-flash"],releasedAt:"2025-06-17",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-06-17"},{id:"google-vertex:gemini-2.5-flash-lite-preview-06-17",provider:"google-vertex",vendorId:"gemini-2.5-flash-lite-preview-06-17",displayName:"Gemini 2.5 Flash Lite Preview 06-17",family:"gemini-2.5-flash-lite-preview-06-17",status:"stable",context:{combinedMax:65536,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-flash-lite-preview-06-17"],releasedAt:"2025-06-17",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-06-17"},{id:"google-vertex:gemini-2.5-flash-preview-04-17",provider:"google-vertex",vendorId:"gemini-2.5-flash-preview-04-17",displayName:"Gemini 2.5 Flash Preview 04-17",family:"gemini-2.5-flash-preview-04-17",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-flash-preview-04-17"],releasedAt:"2025-04-17",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-04-17"},{id:"google-vertex:gemini-2.5-flash-preview-05-20",provider:"google-vertex",vendorId:"gemini-2.5-flash-preview-05-20",displayName:"Gemini 2.5 Flash Preview 05-20",family:"gemini-2.5-flash-preview-05-20",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-flash-preview-05-20"],releasedAt:"2025-05-20",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-05-20"},{id:"google-vertex:gemini-2.5-pro",provider:"google-vertex",vendorId:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-pro"],releasedAt:"2025-03-20",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-06-05"},{id:"google-vertex:gemini-2.5-pro-preview-05-06",provider:"google-vertex",vendorId:"gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",family:"gemini-2.5-pro-preview-05-06",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-pro-preview-05-06"],releasedAt:"2025-05-06",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-05-06"},{id:"google-vertex:gemini-2.5-pro-preview-06-05",provider:"google-vertex",vendorId:"gemini-2.5-pro-preview-06-05",displayName:"Gemini 2.5 Pro Preview 06-05",family:"gemini-2.5-pro-preview-06-05",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["google-vertex/gemini-2.5-pro-preview-06-05"],releasedAt:"2025-06-05",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/models",verifiedAt:"2025-06-05"},{id:"google-vertex-anthropic:claude-3-5-haiku@20241022",provider:"google-vertex-anthropic",vendorId:"claude-3-5-haiku@20241022",displayName:"Claude Haiku 3.5",family:"claude-3-5-haiku@20241022",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-3-5-haiku@20241022"],releasedAt:"2024-10-22",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2024-10-22"},{id:"google-vertex-anthropic:claude-3-5-sonnet@20241022",provider:"google-vertex-anthropic",vendorId:"claude-3-5-sonnet@20241022",displayName:"Claude Sonnet 3.5 v2",family:"claude-3-5-sonnet@20241022",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-3-5-sonnet@20241022"],releasedAt:"2024-10-22",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2024-10-22"},{id:"google-vertex-anthropic:claude-3-7-sonnet@20250219",provider:"google-vertex-anthropic",vendorId:"claude-3-7-sonnet@20250219",displayName:"Claude Sonnet 3.7",family:"claude-3-7-sonnet@20250219",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-3-7-sonnet@20250219"],releasedAt:"2025-02-19",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2025-02-19"},{id:"google-vertex-anthropic:claude-opus-4-1@20250805",provider:"google-vertex-anthropic",vendorId:"claude-opus-4-1@20250805",displayName:"Claude Opus 4.1",family:"claude-opus-4-1@20250805",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-opus-4-1@20250805"],releasedAt:"2025-08-05",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2025-08-05"},{id:"google-vertex-anthropic:claude-opus-4@20250514",provider:"google-vertex-anthropic",vendorId:"claude-opus-4@20250514",displayName:"Claude Opus 4",family:"claude-opus-4@20250514",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-opus-4@20250514"],releasedAt:"2025-05-22",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2025-05-22"},{id:"google-vertex-anthropic:claude-sonnet-4@20250514",provider:"google-vertex-anthropic",vendorId:"claude-sonnet-4@20250514",displayName:"Claude Sonnet 4",family:"claude-sonnet-4@20250514",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["google-vertex-anthropic/claude-sonnet-4@20250514"],releasedAt:"2025-05-22",source:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",contextSource:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude",verifiedAt:"2025-05-22"},{id:"groq:deepseek-r1-distill-llama-70b",provider:"groq",vendorId:"deepseek-r1-distill-llama-70b",displayName:"DeepSeek R1 Distill Llama 70B",family:"deepseek-r1-distill-llama-70b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.75,outputPerMTokens:.99},pricingSource:"models.dev",aliases:["groq/deepseek-r1-distill-llama-70b"],releasedAt:"2025-01-20",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-01-20"},{id:"groq:gemma2-9b-it",provider:"groq",vendorId:"gemma2-9b-it",displayName:"Gemma 2 9B",family:"gemma2-9b-it",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["groq/gemma2-9b-it"],releasedAt:"2024-06-27",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-06-27"},{id:"groq:llama-3.1-8b-instant",provider:"groq",vendorId:"llama-3.1-8b-instant",displayName:"Llama 3.1 8B Instant",family:"llama-3.1-8b-instant",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.08},pricingSource:"models.dev",aliases:["groq/llama-3.1-8b-instant"],releasedAt:"2024-07-23",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-07-23"},{id:"groq:llama-3.3-70b-versatile",provider:"groq",vendorId:"llama-3.3-70b-versatile",displayName:"Llama 3.3 70B Versatile",family:"llama-3.3-70b-versatile",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.59,outputPerMTokens:.79},pricingSource:"models.dev",aliases:["groq/llama-3.3-70b-versatile"],releasedAt:"2024-12-06",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-12-06"},{id:"groq:llama-guard-3-8b",provider:"groq",vendorId:"llama-guard-3-8b",displayName:"Llama Guard 3 8B",family:"llama-guard-3-8b",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["groq/llama-guard-3-8b"],releasedAt:"2024-07-23",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-07-23"},{id:"groq:llama3-70b-8192",provider:"groq",vendorId:"llama3-70b-8192",displayName:"Llama 3 70B",family:"llama3-70b-8192",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.59,outputPerMTokens:.79},pricingSource:"models.dev",aliases:["groq/llama3-70b-8192"],releasedAt:"2024-04-18",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-04-18"},{id:"groq:llama3-8b-8192",provider:"groq",vendorId:"llama3-8b-8192",displayName:"Llama 3 8B",family:"llama3-8b-8192",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.08},pricingSource:"models.dev",aliases:["groq/llama3-8b-8192"],releasedAt:"2024-04-18",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-04-18"},{id:"groq:meta-llama/llama-4-maverick-17b-128e-instruct",provider:"groq",vendorId:"meta-llama/llama-4-maverick-17b-128e-instruct",displayName:"Llama 4 Maverick 17B",family:"meta-llama/llama-4-maverick-17b-128e-instruct",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["groq/meta-llama/llama-4-maverick-17b-128e-instruct"],releasedAt:"2025-04-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-04-05"},{id:"groq:meta-llama/llama-4-scout-17b-16e-instruct",provider:"groq",vendorId:"meta-llama/llama-4-scout-17b-16e-instruct",displayName:"Llama 4 Scout 17B",family:"meta-llama/llama-4-scout-17b-16e-instruct",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.11,outputPerMTokens:.34},pricingSource:"models.dev",aliases:["groq/meta-llama/llama-4-scout-17b-16e-instruct"],releasedAt:"2025-04-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-04-05"},{id:"groq:meta-llama/llama-guard-4-12b",provider:"groq",vendorId:"meta-llama/llama-guard-4-12b",displayName:"Llama Guard 4 12B",family:"meta-llama/llama-guard-4-12b",status:"stable",context:{combinedMax:131072,outputMax:128},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["groq/meta-llama/llama-guard-4-12b"],releasedAt:"2025-04-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-04-05"},{id:"groq:mistral-saba-24b",provider:"groq",vendorId:"mistral-saba-24b",displayName:"Mistral Saba 24B",family:"mistral-saba-24b",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.79,outputPerMTokens:.79},pricingSource:"models.dev",aliases:["groq/mistral-saba-24b"],releasedAt:"2025-02-06",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-02-06"},{id:"groq:moonshotai/kimi-k2-instruct",provider:"groq",vendorId:"moonshotai/kimi-k2-instruct",displayName:"Kimi K2 Instruct",family:"moonshotai/kimi-k2-instruct",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["groq/moonshotai/kimi-k2-instruct"],releasedAt:"2025-07-14",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-07-14"},{id:"groq:moonshotai/kimi-k2-instruct-0905",provider:"groq",vendorId:"moonshotai/kimi-k2-instruct-0905",displayName:"Kimi K2 Instruct 0905",family:"moonshotai/kimi-k2-instruct-0905",status:"stable",context:{combinedMax:262144,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["groq/moonshotai/kimi-k2-instruct-0905"],releasedAt:"2025-09-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-09-05"},{id:"groq:openai/gpt-oss-120b",provider:"groq",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.75},pricingSource:"models.dev",aliases:["groq/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-08-05"},{id:"groq:openai/gpt-oss-20b",provider:"groq",vendorId:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",family:"openai/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["groq/openai/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2025-08-05"},{id:"groq:qwen-qwq-32b",provider:"groq",vendorId:"qwen-qwq-32b",displayName:"Qwen QwQ 32B",family:"qwen-qwq-32b",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.29,outputPerMTokens:.39},pricingSource:"models.dev",aliases:["groq/qwen-qwq-32b"],releasedAt:"2024-11-27",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-11-27"},{id:"groq:qwen/qwen3-32b",provider:"groq",vendorId:"qwen/qwen3-32b",displayName:"Qwen3 32B",family:"qwen/qwen3-32b",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.29,outputPerMTokens:.59},pricingSource:"models.dev",aliases:["groq/qwen/qwen3-32b"],releasedAt:"2024-12-23",source:"https://console.groq.com/docs/models",contextSource:"https://console.groq.com/docs/models",verifiedAt:"2024-12-23"},{id:"huggingface:deepseek-ai/DeepSeek-R1-0528",provider:"huggingface",vendorId:"deepseek-ai/DeepSeek-R1-0528",displayName:"DeepSeek-R1-0528",family:"deepseek-ai/DeepSeek-R1-0528",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:5},pricingSource:"models.dev",aliases:["huggingface/deepseek-ai/DeepSeek-R1-0528"],releasedAt:"2025-05-28",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-05-28"},{id:"huggingface:deepseek-ai/Deepseek-V3-0324",provider:"huggingface",vendorId:"deepseek-ai/Deepseek-V3-0324",displayName:"DeepSeek-V3-0324",family:"deepseek-ai/Deepseek-V3-0324",status:"stable",context:{combinedMax:16384,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["huggingface/deepseek-ai/Deepseek-V3-0324"],releasedAt:"2025-03-24",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-03-24"},{id:"huggingface:moonshotai/Kimi-K2-Instruct",provider:"huggingface",vendorId:"moonshotai/Kimi-K2-Instruct",displayName:"Kimi-K2-Instruct",family:"moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["huggingface/moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-14",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-07-14"},{id:"huggingface:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"huggingface",vendorId:"Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3-235B-A22B-Thinking-2507",family:"Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:3},pricingSource:"models.dev",aliases:["huggingface/Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-07-25",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-07-25"},{id:"huggingface:Qwen/Qwen3-Coder-480B-A35B-Instruct",provider:"huggingface",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen3-Coder-480B-A35B-Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:2},pricingSource:"models.dev",aliases:["huggingface/Qwen/Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-07-23"},{id:"huggingface:zai-org/GLM-4.5",provider:"huggingface",vendorId:"zai-org/GLM-4.5",displayName:"GLM-4.5",family:"zai-org/GLM-4.5",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["huggingface/zai-org/GLM-4.5"],releasedAt:"2025-07-28",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-07-28"},{id:"huggingface:zai-org/GLM-4.5-Air",provider:"huggingface",vendorId:"zai-org/GLM-4.5-Air",displayName:"GLM-4.5-Air",family:"zai-org/GLM-4.5-Air",status:"stable",context:{combinedMax:128e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:1.1},pricingSource:"models.dev",aliases:["huggingface/zai-org/GLM-4.5-Air"],releasedAt:"2025-07-28",source:"https://huggingface.co/docs/inference-providers",contextSource:"https://huggingface.co/docs/inference-providers",verifiedAt:"2025-07-28"},{id:"inception:mercury",provider:"inception",vendorId:"mercury",displayName:"Mercury",family:"mercury",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:1},pricingSource:"models.dev",aliases:["inception/mercury"],releasedAt:"2025-06-26",source:"https://platform.inceptionlabs.ai/docs",contextSource:"https://platform.inceptionlabs.ai/docs",verifiedAt:"2025-07-31"},{id:"inception:mercury-coder",provider:"inception",vendorId:"mercury-coder",displayName:"Mercury Coder",family:"mercury-coder",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:1},pricingSource:"models.dev",aliases:["inception/mercury-coder"],releasedAt:"2025-02-26",source:"https://platform.inceptionlabs.ai/docs",contextSource:"https://platform.inceptionlabs.ai/docs",verifiedAt:"2025-07-31"},{id:"inference:google/gemma-3",provider:"inference",vendorId:"google/gemma-3",displayName:"Google Gemma 3",family:"google/gemma-3",status:"stable",context:{combinedMax:125e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["inference/google/gemma-3"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:meta/llama-3.1-8b-instruct",provider:"inference",vendorId:"meta/llama-3.1-8b-instruct",displayName:"Llama 3.1 8B Instruct",family:"meta/llama-3.1-8b-instruct",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.025,outputPerMTokens:.025},pricingSource:"models.dev",aliases:["inference/meta/llama-3.1-8b-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:meta/llama-3.2-11b-vision-instruct",provider:"inference",vendorId:"meta/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",family:"meta/llama-3.2-11b-vision-instruct",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.055,outputPerMTokens:.055},pricingSource:"models.dev",aliases:["inference/meta/llama-3.2-11b-vision-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:meta/llama-3.2-1b-instruct",provider:"inference",vendorId:"meta/llama-3.2-1b-instruct",displayName:"Llama 3.2 1B Instruct",family:"meta/llama-3.2-1b-instruct",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.01,outputPerMTokens:.01},pricingSource:"models.dev",aliases:["inference/meta/llama-3.2-1b-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:meta/llama-3.2-3b-instruct",provider:"inference",vendorId:"meta/llama-3.2-3b-instruct",displayName:"Llama 3.2 3B Instruct",family:"meta/llama-3.2-3b-instruct",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.02,outputPerMTokens:.02},pricingSource:"models.dev",aliases:["inference/meta/llama-3.2-3b-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:mistral/mistral-nemo-12b-instruct",provider:"inference",vendorId:"mistral/mistral-nemo-12b-instruct",displayName:"Mistral Nemo 12B Instruct",family:"mistral/mistral-nemo-12b-instruct",status:"stable",context:{combinedMax:16e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.038,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["inference/mistral/mistral-nemo-12b-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:osmosis/osmosis-structure-0.6b",provider:"inference",vendorId:"osmosis/osmosis-structure-0.6b",displayName:"Osmosis Structure 0.6B",family:"osmosis/osmosis-structure-0.6b",status:"stable",context:{combinedMax:4e3,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["inference/osmosis/osmosis-structure-0.6b"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:qwen/qwen-2.5-7b-vision-instruct",provider:"inference",vendorId:"qwen/qwen-2.5-7b-vision-instruct",displayName:"Qwen 2.5 7B Vision Instruct",family:"qwen/qwen-2.5-7b-vision-instruct",status:"stable",context:{combinedMax:125e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["inference/qwen/qwen-2.5-7b-vision-instruct"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"inference:qwen/qwen3-embedding-4b",provider:"inference",vendorId:"qwen/qwen3-embedding-4b",displayName:"Qwen 3 Embedding 4B",family:"qwen/qwen3-embedding-4b",status:"stable",context:{combinedMax:32e3,outputMax:2048},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.01,outputPerMTokens:0},pricingSource:"models.dev",aliases:["inference/qwen/qwen3-embedding-4b"],releasedAt:"2025-01-01",source:"https://inference.net/models",contextSource:"https://inference.net/models",verifiedAt:"2025-01-01"},{id:"llama:cerebras-llama-4-maverick-17b-128e-instruct",provider:"llama",vendorId:"cerebras-llama-4-maverick-17b-128e-instruct",displayName:"Cerebras-Llama-4-Maverick-17B-128E-Instruct",family:"cerebras-llama-4-maverick-17b-128e-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/cerebras-llama-4-maverick-17b-128e-instruct"],releasedAt:"2025-04-05",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2025-04-05"},{id:"llama:cerebras-llama-4-scout-17b-16e-instruct",provider:"llama",vendorId:"cerebras-llama-4-scout-17b-16e-instruct",displayName:"Cerebras-Llama-4-Scout-17B-16E-Instruct",family:"cerebras-llama-4-scout-17b-16e-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/cerebras-llama-4-scout-17b-16e-instruct"],releasedAt:"2025-04-05",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2025-04-05"},{id:"llama:groq-llama-4-maverick-17b-128e-instruct",provider:"llama",vendorId:"groq-llama-4-maverick-17b-128e-instruct",displayName:"Groq-Llama-4-Maverick-17B-128E-Instruct",family:"groq-llama-4-maverick-17b-128e-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/groq-llama-4-maverick-17b-128e-instruct"],releasedAt:"2025-04-05",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2025-04-05"},{id:"llama:llama-3.3-70b-instruct",provider:"llama",vendorId:"llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",family:"llama-3.3-70b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/llama-3.3-70b-instruct"],releasedAt:"2024-12-06",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2024-12-06"},{id:"llama:llama-3.3-8b-instruct",provider:"llama",vendorId:"llama-3.3-8b-instruct",displayName:"Llama-3.3-8B-Instruct",family:"llama-3.3-8b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/llama-3.3-8b-instruct"],releasedAt:"2024-12-06",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2024-12-06"},{id:"llama:llama-4-maverick-17b-128e-instruct-fp8",provider:"llama",vendorId:"llama-4-maverick-17b-128e-instruct-fp8",displayName:"Llama-4-Maverick-17B-128E-Instruct-FP8",family:"llama-4-maverick-17b-128e-instruct-fp8",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/llama-4-maverick-17b-128e-instruct-fp8"],releasedAt:"2025-04-05",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2025-04-05"},{id:"llama:llama-4-scout-17b-16e-instruct-fp8",provider:"llama",vendorId:"llama-4-scout-17b-16e-instruct-fp8",displayName:"Llama-4-Scout-17B-16E-Instruct-FP8",family:"llama-4-scout-17b-16e-instruct-fp8",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["llama/llama-4-scout-17b-16e-instruct-fp8"],releasedAt:"2025-04-05",source:"https://llama.developer.meta.com/docs/models",contextSource:"https://llama.developer.meta.com/docs/models",verifiedAt:"2025-04-05"},{id:"lmstudio:openai/gpt-oss-20b",provider:"lmstudio",vendorId:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",family:"openai/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["lmstudio/openai/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://lmstudio.ai/models",contextSource:"https://lmstudio.ai/models",verifiedAt:"2025-08-05"},{id:"lmstudio:qwen/qwen3-30b-a3b-2507",provider:"lmstudio",vendorId:"qwen/qwen3-30b-a3b-2507",displayName:"Qwen3 30B A3B 2507",family:"qwen/qwen3-30b-a3b-2507",status:"stable",context:{combinedMax:262144,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["lmstudio/qwen/qwen3-30b-a3b-2507"],releasedAt:"2025-07-30",source:"https://lmstudio.ai/models",contextSource:"https://lmstudio.ai/models",verifiedAt:"2025-07-30"},{id:"lmstudio:qwen/qwen3-coder-30b",provider:"lmstudio",vendorId:"qwen/qwen3-coder-30b",displayName:"Qwen3 Coder 30B",family:"qwen/qwen3-coder-30b",status:"stable",context:{combinedMax:262144,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["lmstudio/qwen/qwen3-coder-30b"],releasedAt:"2025-07-23",source:"https://lmstudio.ai/models",contextSource:"https://lmstudio.ai/models",verifiedAt:"2025-07-23"},{id:"mistral:codestral-latest",provider:"mistral",vendorId:"codestral-latest",displayName:"Codestral",family:"codestral-latest",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["mistral/codestral-latest"],releasedAt:"2024-05-29",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-01-04"},{id:"mistral:devstral-medium-2507",provider:"mistral",vendorId:"devstral-medium-2507",displayName:"Devstral Medium",family:"devstral-medium-2507",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["mistral/devstral-medium-2507"],releasedAt:"2025-07-10",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-07-10"},{id:"mistral:devstral-small-2505",provider:"mistral",vendorId:"devstral-small-2505",displayName:"Devstral Small 2505",family:"devstral-small-2505",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["mistral/devstral-small-2505"],releasedAt:"2025-05-07",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-05-07"},{id:"mistral:devstral-small-2507",provider:"mistral",vendorId:"devstral-small-2507",displayName:"Devstral Small",family:"devstral-small-2507",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["mistral/devstral-small-2507"],releasedAt:"2025-07-10",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-07-10"},{id:"mistral:magistral-medium-latest",provider:"mistral",vendorId:"magistral-medium-latest",displayName:"Magistral Medium",family:"magistral-medium-latest",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:5},pricingSource:"models.dev",aliases:["mistral/magistral-medium-latest"],releasedAt:"2025-03-17",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-03-20"},{id:"mistral:magistral-small",provider:"mistral",vendorId:"magistral-small",displayName:"Magistral Small",family:"magistral-small",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["mistral/magistral-small"],releasedAt:"2025-03-17",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-03-17"},{id:"mistral:ministral-3b-latest",provider:"mistral",vendorId:"ministral-3b-latest",displayName:"Ministral 3B",family:"ministral-3b-latest",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.04,outputPerMTokens:.04},pricingSource:"models.dev",aliases:["mistral/ministral-3b-latest"],releasedAt:"2024-10-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-10-04"},{id:"mistral:ministral-8b-latest",provider:"mistral",vendorId:"ministral-8b-latest",displayName:"Ministral 8B",family:"ministral-8b-latest",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["mistral/ministral-8b-latest"],releasedAt:"2024-10-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-10-04"},{id:"mistral:mistral-large-latest",provider:"mistral",vendorId:"mistral-large-latest",displayName:"Mistral Large",family:"mistral-large-latest",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["mistral/mistral-large-latest"],releasedAt:"2024-11-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-11-04"},{id:"mistral:mistral-medium-2505",provider:"mistral",vendorId:"mistral-medium-2505",displayName:"Mistral Medium 3",family:"mistral-medium-2505",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["mistral/mistral-medium-2505"],releasedAt:"2025-05-07",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-05-07"},{id:"mistral:mistral-medium-2508",provider:"mistral",vendorId:"mistral-medium-2508",displayName:"Mistral Medium 3.1",family:"mistral-medium-2508",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["mistral/mistral-medium-2508"],releasedAt:"2025-08-12",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-08-12"},{id:"mistral:mistral-medium-latest",provider:"mistral",vendorId:"mistral-medium-latest",displayName:"Mistral Medium",family:"mistral-medium-latest",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["mistral/mistral-medium-latest"],releasedAt:"2025-05-07",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2025-05-10"},{id:"mistral:mistral-nemo",provider:"mistral",vendorId:"mistral-nemo",displayName:"Mistral Nemo",family:"mistral-nemo",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["mistral/mistral-nemo"],releasedAt:"2024-07-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-07-01"},{id:"mistral:mistral-small-latest",provider:"mistral",vendorId:"mistral-small-latest",displayName:"Mistral Small",family:"mistral-small-latest",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["mistral/mistral-small-latest"],releasedAt:"2024-09-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-09-04"},{id:"mistral:open-mistral-7b",provider:"mistral",vendorId:"open-mistral-7b",displayName:"Mistral 7B",family:"open-mistral-7b",status:"stable",context:{combinedMax:8e3,outputMax:8e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:.25},pricingSource:"models.dev",aliases:["mistral/open-mistral-7b"],releasedAt:"2023-09-27",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2023-09-27"},{id:"mistral:open-mixtral-8x22b",provider:"mistral",vendorId:"open-mixtral-8x22b",displayName:"Mixtral 8x22B",family:"open-mixtral-8x22b",status:"stable",context:{combinedMax:64e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["mistral/open-mixtral-8x22b"],releasedAt:"2024-04-17",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-04-17"},{id:"mistral:open-mixtral-8x7b",provider:"mistral",vendorId:"open-mixtral-8x7b",displayName:"Mixtral 8x7B",family:"open-mixtral-8x7b",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.7,outputPerMTokens:.7},pricingSource:"models.dev",aliases:["mistral/open-mixtral-8x7b"],releasedAt:"2023-12-11",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2023-12-11"},{id:"mistral:pixtral-12b",provider:"mistral",vendorId:"pixtral-12b",displayName:"Pixtral 12B",family:"pixtral-12b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["mistral/pixtral-12b"],releasedAt:"2024-09-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-09-01"},{id:"mistral:pixtral-large-latest",provider:"mistral",vendorId:"pixtral-large-latest",displayName:"Pixtral Large",family:"pixtral-large-latest",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["mistral/pixtral-large-latest"],releasedAt:"2024-11-01",source:"https://docs.mistral.ai/getting-started/models/",contextSource:"https://docs.mistral.ai/getting-started/models/",verifiedAt:"2024-11-04"},{id:"modelscope:moonshotai/Kimi-K2-Instruct",provider:"modelscope",vendorId:"moonshotai/Kimi-K2-Instruct",displayName:"Kimi-K2-Instruct",family:"moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-14",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-14"},{id:"modelscope:Qwen/Qwen3-235B-A22B-Instruct-2507",provider:"modelscope",vendorId:"Qwen/Qwen3-235B-A22B-Instruct-2507",displayName:"Qwen3 235B A22B Instruct 2507",family:"Qwen/Qwen3-235B-A22B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-235B-A22B-Instruct-2507"],releasedAt:"2025-04-28",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-21"},{id:"modelscope:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"modelscope",vendorId:"Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3-235B-A22B-Thinking-2507",family:"Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-07-25",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-25"},{id:"modelscope:Qwen/Qwen3-30B-A3B-Instruct-2507",provider:"modelscope",vendorId:"Qwen/Qwen3-30B-A3B-Instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",family:"Qwen/Qwen3-30B-A3B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-30B-A3B-Instruct-2507"],releasedAt:"2025-07-30",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-30"},{id:"modelscope:Qwen/Qwen3-30B-A3B-Thinking-2507",provider:"modelscope",vendorId:"Qwen/Qwen3-30B-A3B-Thinking-2507",displayName:"Qwen3 30B A3B Thinking 2507",family:"Qwen/Qwen3-30B-A3B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-30B-A3B-Thinking-2507"],releasedAt:"2025-07-30",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-30"},{id:"modelscope:Qwen/Qwen3-Coder-30B-A3B-Instruct",provider:"modelscope",vendorId:"Qwen/Qwen3-Coder-30B-A3B-Instruct",displayName:"Qwen3 Coder 30B A3B Instruct",family:"Qwen/Qwen3-Coder-30B-A3B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-Coder-30B-A3B-Instruct"],releasedAt:"2025-07-31",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-31"},{id:"modelscope:Qwen/Qwen3-Coder-480B-A35B-Instruct",provider:"modelscope",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen3-Coder-480B-A35B-Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/Qwen/Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-23"},{id:"modelscope:ZhipuAI/GLM-4.5",provider:"modelscope",vendorId:"ZhipuAI/GLM-4.5",displayName:"GLM-4.5",family:"ZhipuAI/GLM-4.5",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["modelscope/ZhipuAI/GLM-4.5"],releasedAt:"2025-07-28",source:"https://modelscope.cn/docs/model-service/API-Inference/intro",contextSource:"https://modelscope.cn/docs/model-service/API-Inference/intro",verifiedAt:"2025-07-28"},{id:"moonshotai:kimi-k2-0711-preview",provider:"moonshotai",vendorId:"kimi-k2-0711-preview",displayName:"Kimi K2 0711",family:"kimi-k2-0711-preview",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["moonshotai/kimi-k2-0711-preview"],releasedAt:"2025-07-14",source:"https://platform.moonshot.ai/docs/api/chat",contextSource:"https://platform.moonshot.ai/docs/api/chat",verifiedAt:"2025-07-14"},{id:"moonshotai:kimi-k2-0905-preview",provider:"moonshotai",vendorId:"kimi-k2-0905-preview",displayName:"Kimi K2 0905",family:"kimi-k2-0905-preview",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["moonshotai/kimi-k2-0905-preview"],releasedAt:"2025-09-05",source:"https://platform.moonshot.ai/docs/api/chat",contextSource:"https://platform.moonshot.ai/docs/api/chat",verifiedAt:"2025-09-05"},{id:"moonshotai:kimi-k2-turbo-preview",provider:"moonshotai",vendorId:"kimi-k2-turbo-preview",displayName:"Kimi K2 Turbo",family:"kimi-k2-turbo-preview",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2.4,outputPerMTokens:10},pricingSource:"models.dev",aliases:["moonshotai/kimi-k2-turbo-preview"],releasedAt:"2025-07-14",source:"https://platform.moonshot.ai/docs/api/chat",contextSource:"https://platform.moonshot.ai/docs/api/chat",verifiedAt:"2025-07-14"},{id:"moonshotai-cn:kimi-k2-0711-preview",provider:"moonshotai-cn",vendorId:"kimi-k2-0711-preview",displayName:"Kimi K2 0711",family:"kimi-k2-0711-preview",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["moonshotai-cn/kimi-k2-0711-preview"],releasedAt:"2025-07-14",source:"https://platform.moonshot.cn/docs/api/chat",contextSource:"https://platform.moonshot.cn/docs/api/chat",verifiedAt:"2025-07-14"},{id:"moonshotai-cn:kimi-k2-0905-preview",provider:"moonshotai-cn",vendorId:"kimi-k2-0905-preview",displayName:"Kimi K2 0905",family:"kimi-k2-0905-preview",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["moonshotai-cn/kimi-k2-0905-preview"],releasedAt:"2025-09-05",source:"https://platform.moonshot.cn/docs/api/chat",contextSource:"https://platform.moonshot.cn/docs/api/chat",verifiedAt:"2025-09-05"},{id:"moonshotai-cn:kimi-k2-turbo-preview",provider:"moonshotai-cn",vendorId:"kimi-k2-turbo-preview",displayName:"Kimi K2 Turbo",family:"kimi-k2-turbo-preview",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2.4,outputPerMTokens:10},pricingSource:"models.dev",aliases:["moonshotai-cn/kimi-k2-turbo-preview"],releasedAt:"2025-07-14",source:"https://platform.moonshot.cn/docs/api/chat",contextSource:"https://platform.moonshot.cn/docs/api/chat",verifiedAt:"2025-07-14"},{id:"morph:auto",provider:"morph",vendorId:"auto",displayName:"Auto",family:"auto",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.85,outputPerMTokens:1.55},pricingSource:"models.dev",aliases:["morph/auto"],releasedAt:"2024-06-01",source:"https://docs.morphllm.com/api-reference/introduction",contextSource:"https://docs.morphllm.com/api-reference/introduction",verifiedAt:"2024-06-01"},{id:"morph:morph-v3-fast",provider:"morph",vendorId:"morph-v3-fast",displayName:"Morph v3 Fast",family:"morph-v3-fast",status:"stable",context:{combinedMax:16e3,outputMax:16e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["morph/morph-v3-fast"],releasedAt:"2024-08-15",source:"https://docs.morphllm.com/api-reference/introduction",contextSource:"https://docs.morphllm.com/api-reference/introduction",verifiedAt:"2024-08-15"},{id:"morph:morph-v3-large",provider:"morph",vendorId:"morph-v3-large",displayName:"Morph v3 Large",family:"morph-v3-large",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.9,outputPerMTokens:1.9},pricingSource:"models.dev",aliases:["morph/morph-v3-large"],releasedAt:"2024-08-15",source:"https://docs.morphllm.com/api-reference/introduction",contextSource:"https://docs.morphllm.com/api-reference/introduction",verifiedAt:"2024-08-15"},{id:"nvidia:cosmos-nemotron-34b",provider:"nvidia",vendorId:"cosmos-nemotron-34b",displayName:"Cosmos Nemotron 34B",family:"cosmos-nemotron-34b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/cosmos-nemotron-34b"],releasedAt:"2024-01-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:deepseek-r1",provider:"nvidia",vendorId:"deepseek-r1",displayName:"DeepSeek R1",family:"deepseek-r1",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/deepseek-r1"],releasedAt:"2024-11-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:deepseek-v3.1",provider:"nvidia",vendorId:"deepseek-v3.1",displayName:"DeepSeek V3.1",family:"deepseek-v3.1",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/deepseek-v3.1"],releasedAt:"2025-08-20",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-08-26"},{id:"nvidia:flux_1-dev",provider:"nvidia",vendorId:"flux_1-dev",displayName:"FLUX.1-dev",family:"flux_1-dev",status:"stable",context:{combinedMax:4096,outputMax:0},modalities:{textIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/flux_1-dev"],releasedAt:"2024-08-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:gemma-3-27b-it",provider:"nvidia",vendorId:"gemma-3-27b-it",displayName:"Gemma-3-27B-IT",family:"gemma-3-27b-it",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/gemma-3-27b-it"],releasedAt:"2024-12-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:llama-3.1-nemotron-ultra-253b-v1",provider:"nvidia",vendorId:"llama-3.1-nemotron-ultra-253b-v1",displayName:"Llama-3.1-Nemotron-Ultra-253B-v1",family:"llama-3.1-nemotron-ultra-253b-v1",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/llama-3.1-nemotron-ultra-253b-v1"],releasedAt:"2024-07-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:llama-3.3-nemotron-super-49b-v1.5",provider:"nvidia",vendorId:"llama-3.3-nemotron-super-49b-v1.5",displayName:"Llama-3.3-Nemotron-Super-49B-v1.5",family:"llama-3.3-nemotron-super-49b-v1.5",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/llama-3.3-nemotron-super-49b-v1.5"],releasedAt:"2025-07-25",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:mistral-small-3.1-24b-instruct-2503",provider:"nvidia",vendorId:"mistral-small-3.1-24b-instruct-2503",displayName:"Mistral-Small-3.1-24B-Instruct-2503",family:"mistral-small-3.1-24b-instruct-2503",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/mistral-small-3.1-24b-instruct-2503"],releasedAt:"2025-04-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:nemoretriever-ocr-v1",provider:"nvidia",vendorId:"nemoretriever-ocr-v1",displayName:"NeMo Retriever OCR v1",family:"nemoretriever-ocr-v1",status:"stable",context:{combinedMax:0,outputMax:4096},modalities:{textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/nemoretriever-ocr-v1"],releasedAt:"2024-01-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:parakeet-tdt-0.6b-v2",provider:"nvidia",vendorId:"parakeet-tdt-0.6b-v2",displayName:"Parakeet TDT 0.6B v2",family:"parakeet-tdt-0.6b-v2",status:"stable",context:{combinedMax:0,outputMax:4096},modalities:{textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/parakeet-tdt-0.6b-v2"],releasedAt:"2024-01-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:phi-4-multimodal-instruct",provider:"nvidia",vendorId:"phi-4-multimodal-instruct",displayName:"Phi-4-Multimodal-Instruct",family:"phi-4-multimodal-instruct",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/phi-4-multimodal-instruct"],releasedAt:"2024-12-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:qwen3-235b-a22b",provider:"nvidia",vendorId:"qwen3-235b-a22b",displayName:"Qwen3-235B-A22B",family:"qwen3-235b-a22b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/qwen3-235b-a22b"],releasedAt:"2024-12-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"nvidia:qwen3-coder-480b-a35b-instruct",provider:"nvidia",vendorId:"qwen3-coder-480b-a35b-instruct",displayName:"Qwen3 Coder 480B A35B Instruct",family:"qwen3-coder-480b-a35b-instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/qwen3-coder-480b-a35b-instruct"],releasedAt:"2025-07-23",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-07-23"},{id:"nvidia:whisper-large-v3",provider:"nvidia",vendorId:"whisper-large-v3",displayName:"Whisper Large v3",family:"whisper-large-v3",status:"stable",context:{combinedMax:0,outputMax:4096},modalities:{textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["nvidia/whisper-large-v3"],releasedAt:"2023-09-01",source:"https://docs.api.nvidia.com/nim/",contextSource:"https://docs.api.nvidia.com/nim/",verifiedAt:"2025-09-05"},{id:"openai:codex-mini-latest",provider:"openai",vendorId:"codex-mini-latest",displayName:"Codex Mini",family:"codex-mini-latest",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:6},pricingSource:"models.dev",aliases:["openai/codex-mini-latest"],releasedAt:"2025-05-16",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-05-16"},{id:"openai:gpt-3.5-turbo",provider:"openai",vendorId:"gpt-3.5-turbo",displayName:"GPT-3.5-turbo",family:"gpt-3.5-turbo",status:"stable",context:{combinedMax:16385,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["openai/gpt-3.5-turbo"],releasedAt:"2023-03-01",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2023-11-06"},{id:"openai:gpt-4",provider:"openai",vendorId:"gpt-4",displayName:"GPT-4",family:"gpt-4",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:30,outputPerMTokens:60},pricingSource:"models.dev",aliases:["openai/gpt-4"],releasedAt:"2023-11-06",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-04-09"},{id:"openai:gpt-4-turbo",provider:"openai",vendorId:"gpt-4-turbo",displayName:"GPT-4 Turbo",family:"gpt-4-turbo",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:10,outputPerMTokens:30},pricingSource:"models.dev",aliases:["openai/gpt-4-turbo"],releasedAt:"2023-11-06",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-04-09"},{id:"openai:gpt-4.1",provider:"openai",vendorId:"gpt-4.1",displayName:"GPT-4.1",family:"gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-04-14"},{id:"openai:gpt-4.1-mini",provider:"openai",vendorId:"gpt-4.1-mini",displayName:"GPT-4.1 mini",family:"gpt-4.1-mini",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["openai/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-04-14"},{id:"openai:gpt-4.1-nano",provider:"openai",vendorId:"gpt-4.1-nano",displayName:"GPT-4.1 nano",family:"gpt-4.1-nano",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["openai/gpt-4.1-nano"],releasedAt:"2025-04-14",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-04-14"},{id:"openai:gpt-4o",provider:"openai",vendorId:"gpt-4o",displayName:"GPT-4o",family:"gpt-4o",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2.5,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openai/gpt-4o"],releasedAt:"2024-05-13",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-05-13"},{id:"openai:gpt-4o-mini",provider:"openai",vendorId:"gpt-4o-mini",displayName:"GPT-4o mini",family:"gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["openai/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-07-18"},{id:"openai:gpt-5",provider:"openai",vendorId:"gpt-5",displayName:"GPT-5",family:"gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openai/gpt-5"],releasedAt:"2025-08-07",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-08-07"},{id:"openai:gpt-5-chat-latest",provider:"openai",vendorId:"gpt-5-chat-latest",displayName:"GPT-5 Chat (latest)",family:"gpt-5-chat-latest",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openai/gpt-5-chat-latest"],releasedAt:"2025-08-07",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-08-07"},{id:"openai:gpt-5-mini",provider:"openai",vendorId:"gpt-5-mini",displayName:"GPT-5 Mini",family:"gpt-5-mini",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["openai/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-08-07"},{id:"openai:gpt-5-nano",provider:"openai",vendorId:"gpt-5-nano",displayName:"GPT-5 Nano",family:"gpt-5-nano",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["openai/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-08-07"},{id:"openai:o1",provider:"openai",vendorId:"o1",displayName:"o1",family:"o1",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:60},pricingSource:"models.dev",aliases:["openai/o1"],releasedAt:"2024-12-05",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-12-05"},{id:"openai:o1-mini",provider:"openai",vendorId:"o1-mini",displayName:"o1-mini",family:"o1-mini",status:"stable",context:{combinedMax:128e3,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["openai/o1-mini"],releasedAt:"2024-09-12",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-09-12"},{id:"openai:o1-preview",provider:"openai",vendorId:"o1-preview",displayName:"o1-preview",family:"o1-preview",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:15,outputPerMTokens:60},pricingSource:"models.dev",aliases:["openai/o1-preview"],releasedAt:"2024-09-12",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-09-12"},{id:"openai:o1-pro",provider:"openai",vendorId:"o1-pro",displayName:"o1-pro",family:"o1-pro",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:150,outputPerMTokens:600},pricingSource:"models.dev",aliases:["openai/o1-pro"],releasedAt:"2025-03-19",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-03-19"},{id:"openai:o3",provider:"openai",vendorId:"o3",displayName:"o3",family:"o3",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["openai/o3"],releasedAt:"2025-04-16",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-04-16"},{id:"openai:o3-deep-research",provider:"openai",vendorId:"o3-deep-research",displayName:"o3-deep-research",family:"o3-deep-research",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:10,outputPerMTokens:40},pricingSource:"models.dev",aliases:["openai/o3-deep-research"],releasedAt:"2024-06-26",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-06-26"},{id:"openai:o3-mini",provider:"openai",vendorId:"o3-mini",displayName:"o3-mini",family:"o3-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["openai/o3-mini"],releasedAt:"2024-12-20",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-01-29"},{id:"openai:o3-pro",provider:"openai",vendorId:"o3-pro",displayName:"o3-pro",family:"o3-pro",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:20,outputPerMTokens:80},pricingSource:"models.dev",aliases:["openai/o3-pro"],releasedAt:"2025-06-10",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-06-10"},{id:"openai:o4-mini",provider:"openai",vendorId:"o4-mini",displayName:"o4-mini",family:"o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["openai/o4-mini"],releasedAt:"2025-04-16",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2025-04-16"},{id:"openai:o4-mini-deep-research",provider:"openai",vendorId:"o4-mini-deep-research",displayName:"o4-mini-deep-research",family:"o4-mini-deep-research",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["openai/o4-mini-deep-research"],releasedAt:"2024-06-26",source:"https://platform.openai.com/docs/models",contextSource:"https://platform.openai.com/docs/models",verifiedAt:"2024-06-26"},{id:"opencode:claude-3.5-haiku",provider:"opencode",vendorId:"claude-3.5-haiku",displayName:"Claude Haiku 3.5",family:"claude-3.5-haiku",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["opencode/claude-3.5-haiku"],releasedAt:"2024-10-22",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2024-10-22"},{id:"opencode:claude-opus-4.1",provider:"opencode",vendorId:"claude-opus-4.1",displayName:"Claude Opus 4.1",family:"claude-opus-4.1",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["opencode/claude-opus-4.1"],releasedAt:"2025-08-05",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-08-05"},{id:"opencode:claude-sonnet-4",provider:"opencode",vendorId:"claude-sonnet-4",displayName:"Claude Sonnet 4",family:"claude-sonnet-4",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["opencode/claude-sonnet-4"],releasedAt:"2025-05-22",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-05-22"},{id:"opencode:gpt-5",provider:"opencode",vendorId:"gpt-5",displayName:"GPT-5",family:"gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["opencode/gpt-5"],releasedAt:"2025-08-07",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-08-07"},{id:"opencode:grok-code",provider:"opencode",vendorId:"grok-code",displayName:"Grok Code Fast 1",family:"grok-code",status:"stable",context:{combinedMax:256e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["opencode/grok-code"],releasedAt:"2025-08-20",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-08-20"},{id:"opencode:kimi-k2",provider:"opencode",vendorId:"kimi-k2",displayName:"Kimi K2",family:"kimi-k2",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["opencode/kimi-k2"],releasedAt:"2025-09-05",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-09-05"},{id:"opencode:qwen3-coder",provider:"opencode",vendorId:"qwen3-coder",displayName:"Qwen3 Coder",family:"qwen3-coder",status:"stable",context:{combinedMax:262144,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["opencode/qwen3-coder"],releasedAt:"2025-07-23",source:"https://opencode.ai/docs",contextSource:"https://opencode.ai/docs",verifiedAt:"2025-07-23"},{id:"openrouter:anthropic/claude-3.5-haiku",provider:"openrouter",vendorId:"anthropic/claude-3.5-haiku",displayName:"Claude Haiku 3.5",family:"anthropic/claude-3.5-haiku",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["openrouter/anthropic/claude-3.5-haiku"],releasedAt:"2024-10-22",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-10-22"},{id:"openrouter:anthropic/claude-3.7-sonnet",provider:"openrouter",vendorId:"anthropic/claude-3.7-sonnet",displayName:"Claude Sonnet 3.7",family:"anthropic/claude-3.7-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["openrouter/anthropic/claude-3.7-sonnet"],releasedAt:"2025-02-19",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-19"},{id:"openrouter:anthropic/claude-opus-4",provider:"openrouter",vendorId:"anthropic/claude-opus-4",displayName:"Claude Opus 4",family:"anthropic/claude-opus-4",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["openrouter/anthropic/claude-opus-4"],releasedAt:"2025-05-22",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-22"},{id:"openrouter:anthropic/claude-opus-4.1",provider:"openrouter",vendorId:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1",family:"anthropic/claude-opus-4.1",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["openrouter/anthropic/claude-opus-4.1"],releasedAt:"2025-08-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-05"},{id:"openrouter:anthropic/claude-sonnet-4",provider:"openrouter",vendorId:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",family:"anthropic/claude-sonnet-4",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["openrouter/anthropic/claude-sonnet-4"],releasedAt:"2025-05-22",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-22"},{id:"openrouter:cognitivecomputations/dolphin3.0-mistral-24b",provider:"openrouter",vendorId:"cognitivecomputations/dolphin3.0-mistral-24b",displayName:"Dolphin3.0 Mistral 24B",family:"cognitivecomputations/dolphin3.0-mistral-24b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/cognitivecomputations/dolphin3.0-mistral-24b"],releasedAt:"2025-02-13",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-13"},{id:"openrouter:cognitivecomputations/dolphin3.0-r1-mistral-24b",provider:"openrouter",vendorId:"cognitivecomputations/dolphin3.0-r1-mistral-24b",displayName:"Dolphin3.0 R1 Mistral 24B",family:"cognitivecomputations/dolphin3.0-r1-mistral-24b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/cognitivecomputations/dolphin3.0-r1-mistral-24b"],releasedAt:"2025-02-13",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-13"},{id:"openrouter:deepseek/deepseek-chat-v3-0324",provider:"openrouter",vendorId:"deepseek/deepseek-chat-v3-0324",displayName:"DeepSeek V3 0324",family:"deepseek/deepseek-chat-v3-0324",status:"stable",context:{combinedMax:16384,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-chat-v3-0324"],releasedAt:"2025-03-24",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-24"},{id:"openrouter:deepseek/deepseek-chat-v3.1",provider:"openrouter",vendorId:"deepseek/deepseek-chat-v3.1",displayName:"DeepSeek-V3.1",family:"deepseek/deepseek-chat-v3.1",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-chat-v3.1"],releasedAt:"2025-08-21",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-21"},{id:"openrouter:deepseek/deepseek-r1-0528-qwen3-8b:free",provider:"openrouter",vendorId:"deepseek/deepseek-r1-0528-qwen3-8b:free",displayName:"Deepseek R1 0528 Qwen3 8B (free)",family:"deepseek/deepseek-r1-0528-qwen3-8b:free",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-r1-0528-qwen3-8b:free"],releasedAt:"2025-05-29",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-29"},{id:"openrouter:deepseek/deepseek-r1-0528:free",provider:"openrouter",vendorId:"deepseek/deepseek-r1-0528:free",displayName:"R1 0528 (free)",family:"deepseek/deepseek-r1-0528:free",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-r1-0528:free"],releasedAt:"2025-05-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-28"},{id:"openrouter:deepseek/deepseek-r1-distill-llama-70b",provider:"openrouter",vendorId:"deepseek/deepseek-r1-distill-llama-70b",displayName:"DeepSeek R1 Distill Llama 70B",family:"deepseek/deepseek-r1-distill-llama-70b",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-r1-distill-llama-70b"],releasedAt:"2025-01-23",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-01-23"},{id:"openrouter:deepseek/deepseek-r1-distill-qwen-14b",provider:"openrouter",vendorId:"deepseek/deepseek-r1-distill-qwen-14b",displayName:"DeepSeek R1 Distill Qwen 14B",family:"deepseek/deepseek-r1-distill-qwen-14b",status:"stable",context:{combinedMax:64e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-r1-distill-qwen-14b"],releasedAt:"2025-01-29",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-01-29"},{id:"openrouter:deepseek/deepseek-r1:free",provider:"openrouter",vendorId:"deepseek/deepseek-r1:free",displayName:"R1 (free)",family:"deepseek/deepseek-r1:free",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-r1:free"],releasedAt:"2025-01-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-01-20"},{id:"openrouter:deepseek/deepseek-v3-base:free",provider:"openrouter",vendorId:"deepseek/deepseek-v3-base:free",displayName:"DeepSeek V3 Base (free)",family:"deepseek/deepseek-v3-base:free",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/deepseek/deepseek-v3-base:free"],releasedAt:"2025-03-29",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-29"},{id:"openrouter:featherless/qwerky-72b",provider:"openrouter",vendorId:"featherless/qwerky-72b",displayName:"Qwerky 72B",family:"featherless/qwerky-72b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/featherless/qwerky-72b"],releasedAt:"2025-03-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-20"},{id:"openrouter:google/gemini-2.0-flash-001",provider:"openrouter",vendorId:"google/gemini-2.0-flash-001",displayName:"Gemini 2.0 Flash",family:"google/gemini-2.0-flash-001",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.0-flash-001"],releasedAt:"2024-12-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-12-11"},{id:"openrouter:google/gemini-2.0-flash-exp:free",provider:"openrouter",vendorId:"google/gemini-2.0-flash-exp:free",displayName:"Gemini 2.0 Flash Experimental (free)",family:"google/gemini-2.0-flash-exp:free",status:"stable",context:{combinedMax:1048576,outputMax:1048576},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.0-flash-exp:free"],releasedAt:"2024-12-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-12-11"},{id:"openrouter:google/gemini-2.5-flash",provider:"openrouter",vendorId:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"google/gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.5-flash"],releasedAt:"2025-07-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-17"},{id:"openrouter:google/gemini-2.5-pro",provider:"openrouter",vendorId:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"google/gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.5-pro"],releasedAt:"2025-03-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-06-05"},{id:"openrouter:google/gemini-2.5-pro-preview-05-06",provider:"openrouter",vendorId:"google/gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",family:"google/gemini-2.5-pro-preview-05-06",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.5-pro-preview-05-06"],releasedAt:"2025-05-06",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-06"},{id:"openrouter:google/gemini-2.5-pro-preview-06-05",provider:"openrouter",vendorId:"google/gemini-2.5-pro-preview-06-05",displayName:"Gemini 2.5 Pro Preview 06-05",family:"google/gemini-2.5-pro-preview-06-05",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openrouter/google/gemini-2.5-pro-preview-06-05"],releasedAt:"2025-06-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-06-05"},{id:"openrouter:google/gemma-2-9b-it:free",provider:"openrouter",vendorId:"google/gemma-2-9b-it:free",displayName:"Gemma 2 9B (free)",family:"google/gemma-2-9b-it:free",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemma-2-9b-it:free"],releasedAt:"2024-06-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-06-28"},{id:"openrouter:google/gemma-3-12b-it",provider:"openrouter",vendorId:"google/gemma-3-12b-it",displayName:"Gemma 3 12B IT",family:"google/gemma-3-12b-it",status:"stable",context:{combinedMax:96e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemma-3-12b-it"],releasedAt:"2025-03-13",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-13"},{id:"openrouter:google/gemma-3-27b-it",provider:"openrouter",vendorId:"google/gemma-3-27b-it",displayName:"Gemma 3 27B IT",family:"google/gemma-3-27b-it",status:"stable",context:{combinedMax:96e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemma-3-27b-it"],releasedAt:"2025-03-12",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-12"},{id:"openrouter:google/gemma-3n-e4b-it",provider:"openrouter",vendorId:"google/gemma-3n-e4b-it",displayName:"Gemma 3n E4B IT",family:"google/gemma-3n-e4b-it",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemma-3n-e4b-it"],releasedAt:"2025-05-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-20"},{id:"openrouter:google/gemma-3n-e4b-it:free",provider:"openrouter",vendorId:"google/gemma-3n-e4b-it:free",displayName:"Gemma 3n 4B (free)",family:"google/gemma-3n-e4b-it:free",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/google/gemma-3n-e4b-it:free"],releasedAt:"2025-05-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-20"},{id:"openrouter:meta-llama/llama-3.2-11b-vision-instruct",provider:"openrouter",vendorId:"meta-llama/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",family:"meta-llama/llama-3.2-11b-vision-instruct",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/meta-llama/llama-3.2-11b-vision-instruct"],releasedAt:"2024-09-25",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-09-25"},{id:"openrouter:meta-llama/llama-3.3-70b-instruct:free",provider:"openrouter",vendorId:"meta-llama/llama-3.3-70b-instruct:free",displayName:"Llama 3.3 70B Instruct (free)",family:"meta-llama/llama-3.3-70b-instruct:free",status:"stable",context:{combinedMax:65536,outputMax:65536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/meta-llama/llama-3.3-70b-instruct:free"],releasedAt:"2024-12-06",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-12-06"},{id:"openrouter:meta-llama/llama-4-scout:free",provider:"openrouter",vendorId:"meta-llama/llama-4-scout:free",displayName:"Llama 4 Scout (free)",family:"meta-llama/llama-4-scout:free",status:"stable",context:{combinedMax:64e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/meta-llama/llama-4-scout:free"],releasedAt:"2025-04-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-05"},{id:"openrouter:microsoft/mai-ds-r1:free",provider:"openrouter",vendorId:"microsoft/mai-ds-r1:free",displayName:"MAI DS R1 (free)",family:"microsoft/mai-ds-r1:free",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/microsoft/mai-ds-r1:free"],releasedAt:"2025-04-21",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-21"},{id:"openrouter:mistralai/codestral-2508",provider:"openrouter",vendorId:"mistralai/codestral-2508",displayName:"Codestral 2508",family:"mistralai/codestral-2508",status:"stable",context:{combinedMax:256e3,outputMax:256e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["openrouter/mistralai/codestral-2508"],releasedAt:"2025-08-01",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-01"},{id:"openrouter:mistralai/devstral-medium-2507",provider:"openrouter",vendorId:"mistralai/devstral-medium-2507",displayName:"Devstral Medium",family:"mistralai/devstral-medium-2507",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["openrouter/mistralai/devstral-medium-2507"],releasedAt:"2025-07-10",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-10"},{id:"openrouter:mistralai/devstral-small-2505",provider:"openrouter",vendorId:"mistralai/devstral-small-2505",displayName:"Devstral Small",family:"mistralai/devstral-small-2505",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.06,outputPerMTokens:.12},pricingSource:"models.dev",aliases:["openrouter/mistralai/devstral-small-2505"],releasedAt:"2025-05-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-07"},{id:"openrouter:mistralai/devstral-small-2505:free",provider:"openrouter",vendorId:"mistralai/devstral-small-2505:free",displayName:"Devstral Small 2505 (free)",family:"mistralai/devstral-small-2505:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/devstral-small-2505:free"],releasedAt:"2025-05-21",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-21"},{id:"openrouter:mistralai/devstral-small-2507",provider:"openrouter",vendorId:"mistralai/devstral-small-2507",displayName:"Devstral Small 1.1",family:"mistralai/devstral-small-2507",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["openrouter/mistralai/devstral-small-2507"],releasedAt:"2025-07-10",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-10"},{id:"openrouter:mistralai/mistral-7b-instruct:free",provider:"openrouter",vendorId:"mistralai/mistral-7b-instruct:free",displayName:"Mistral 7B Instruct (free)",family:"mistralai/mistral-7b-instruct:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-7b-instruct:free"],releasedAt:"2024-05-27",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-05-27"},{id:"openrouter:mistralai/mistral-medium-3",provider:"openrouter",vendorId:"mistralai/mistral-medium-3",displayName:"Mistral Medium 3",family:"mistralai/mistral-medium-3",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-medium-3"],releasedAt:"2025-05-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-07"},{id:"openrouter:mistralai/mistral-medium-3.1",provider:"openrouter",vendorId:"mistralai/mistral-medium-3.1",displayName:"Mistral Medium 3.1",family:"mistralai/mistral-medium-3.1",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:2},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-medium-3.1"],releasedAt:"2025-08-12",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-12"},{id:"openrouter:mistralai/mistral-nemo:free",provider:"openrouter",vendorId:"mistralai/mistral-nemo:free",displayName:"Mistral Nemo (free)",family:"mistralai/mistral-nemo:free",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-nemo:free"],releasedAt:"2024-07-19",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-07-19"},{id:"openrouter:mistralai/mistral-small-3.1-24b-instruct",provider:"openrouter",vendorId:"mistralai/mistral-small-3.1-24b-instruct",displayName:"Mistral Small 3.1 24B Instruct",family:"mistralai/mistral-small-3.1-24b-instruct",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-small-3.1-24b-instruct"],releasedAt:"2025-03-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-17"},{id:"openrouter:mistralai/mistral-small-3.2-24b-instruct",provider:"openrouter",vendorId:"mistralai/mistral-small-3.2-24b-instruct",displayName:"Mistral Small 3.2 24B Instruct",family:"mistralai/mistral-small-3.2-24b-instruct",status:"stable",context:{combinedMax:96e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-small-3.2-24b-instruct"],releasedAt:"2025-06-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-06-20"},{id:"openrouter:mistralai/mistral-small-3.2-24b-instruct:free",provider:"openrouter",vendorId:"mistralai/mistral-small-3.2-24b-instruct:free",displayName:"Mistral Small 3.2 24B (free)",family:"mistralai/mistral-small-3.2-24b-instruct:free",status:"stable",context:{combinedMax:96e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/mistralai/mistral-small-3.2-24b-instruct:free"],releasedAt:"2025-06-20",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-06-20"},{id:"openrouter:moonshotai/kimi-dev-72b:free",provider:"openrouter",vendorId:"moonshotai/kimi-dev-72b:free",displayName:"Kimi Dev 72b (free)",family:"moonshotai/kimi-dev-72b:free",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/moonshotai/kimi-dev-72b:free"],releasedAt:"2025-06-16",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-06-16"},{id:"openrouter:moonshotai/kimi-k2",provider:"openrouter",vendorId:"moonshotai/kimi-k2",displayName:"Kimi K2",family:"moonshotai/kimi-k2",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.55,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["openrouter/moonshotai/kimi-k2"],releasedAt:"2025-07-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-11"},{id:"openrouter:moonshotai/kimi-k2-0905",provider:"openrouter",vendorId:"moonshotai/kimi-k2-0905",displayName:"Kimi K2 Instruct 0905",family:"moonshotai/kimi-k2-0905",status:"stable",context:{combinedMax:262144,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["openrouter/moonshotai/kimi-k2-0905"],releasedAt:"2025-09-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-09-05"},{id:"openrouter:moonshotai/kimi-k2:free",provider:"openrouter",vendorId:"moonshotai/kimi-k2:free",displayName:"Kimi K2 (free)",family:"moonshotai/kimi-k2:free",status:"stable",context:{combinedMax:32800,outputMax:32800},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/moonshotai/kimi-k2:free"],releasedAt:"2025-07-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-11"},{id:"openrouter:nousresearch/deephermes-3-llama-3-8b-preview",provider:"openrouter",vendorId:"nousresearch/deephermes-3-llama-3-8b-preview",displayName:"DeepHermes 3 Llama 3 8B Preview",family:"nousresearch/deephermes-3-llama-3-8b-preview",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/nousresearch/deephermes-3-llama-3-8b-preview"],releasedAt:"2025-02-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-28"},{id:"openrouter:nousresearch/hermes-4-405b",provider:"openrouter",vendorId:"nousresearch/hermes-4-405b",displayName:"Hermes 4 405B",family:"nousresearch/hermes-4-405b",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["openrouter/nousresearch/hermes-4-405b"],releasedAt:"2025-08-25",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-25"},{id:"openrouter:nousresearch/hermes-4-70b",provider:"openrouter",vendorId:"nousresearch/hermes-4-70b",displayName:"Hermes 4 70B",family:"nousresearch/hermes-4-70b",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.13,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["openrouter/nousresearch/hermes-4-70b"],releasedAt:"2025-08-25",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-25"},{id:"openrouter:openai/gpt-4.1",provider:"openrouter",vendorId:"openai/gpt-4.1",displayName:"GPT-4.1",family:"openai/gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-14"},{id:"openrouter:openai/gpt-4.1-mini",provider:"openrouter",vendorId:"openai/gpt-4.1-mini",displayName:"GPT-4.1 Mini",family:"openai/gpt-4.1-mini",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-14"},{id:"openrouter:openai/gpt-4o-mini",provider:"openrouter",vendorId:"openai/gpt-4o-mini",displayName:"GPT-4o-mini",family:"openai/gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-07-18"},{id:"openrouter:openai/gpt-5",provider:"openrouter",vendorId:"openai/gpt-5",displayName:"GPT-5",family:"openai/gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-5"],releasedAt:"2025-08-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-07"},{id:"openrouter:openai/gpt-5-chat",provider:"openrouter",vendorId:"openai/gpt-5-chat",displayName:"GPT-5 Chat (latest)",family:"openai/gpt-5-chat",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-5-chat"],releasedAt:"2025-08-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-07"},{id:"openrouter:openai/gpt-5-mini",provider:"openrouter",vendorId:"openai/gpt-5-mini",displayName:"GPT-5 Mini",family:"openai/gpt-5-mini",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-07"},{id:"openrouter:openai/gpt-5-nano",provider:"openrouter",vendorId:"openai/gpt-5-nano",displayName:"GPT-5 Nano",family:"openai/gpt-5-nano",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-07"},{id:"openrouter:openai/gpt-oss-120b",provider:"openrouter",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-05"},{id:"openrouter:openai/gpt-oss-20b",provider:"openrouter",vendorId:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",family:"openai/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["openrouter/openai/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-05"},{id:"openrouter:openai/o4-mini",provider:"openrouter",vendorId:"openai/o4-mini",displayName:"o4 Mini",family:"openai/o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["openrouter/openai/o4-mini"],releasedAt:"2025-04-16",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-16"},{id:"openrouter:openrouter/cypher-alpha:free",provider:"openrouter",vendorId:"openrouter/cypher-alpha:free",displayName:"Cypher Alpha (free)",family:"openrouter/cypher-alpha:free",status:"stable",context:{combinedMax:1e6,outputMax:1e6},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/openrouter/cypher-alpha:free"],releasedAt:"2025-07-01",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-01"},{id:"openrouter:openrouter/horizon-alpha",provider:"openrouter",vendorId:"openrouter/horizon-alpha",displayName:"Horizon Alpha",family:"openrouter/horizon-alpha",status:"stable",context:{combinedMax:256e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/openrouter/horizon-alpha"],releasedAt:"2025-07-30",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-30"},{id:"openrouter:openrouter/horizon-beta",provider:"openrouter",vendorId:"openrouter/horizon-beta",displayName:"Horizon Beta",family:"openrouter/horizon-beta",status:"stable",context:{combinedMax:256e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/openrouter/horizon-beta"],releasedAt:"2025-08-01",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-01"},{id:"openrouter:openrouter/sonoma-dusk-alpha",provider:"openrouter",vendorId:"openrouter/sonoma-dusk-alpha",displayName:"Sonoma Dusk Alpha",family:"openrouter/sonoma-dusk-alpha",status:"stable",context:{combinedMax:2e6,outputMax:2e6},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/openrouter/sonoma-dusk-alpha"],releasedAt:"2024-09-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-09-05"},{id:"openrouter:openrouter/sonoma-sky-alpha",provider:"openrouter",vendorId:"openrouter/sonoma-sky-alpha",displayName:"Sonoma Sky Alpha",family:"openrouter/sonoma-sky-alpha",status:"stable",context:{combinedMax:2e6,outputMax:2e6},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/openrouter/sonoma-sky-alpha"],releasedAt:"2024-09-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-09-05"},{id:"openrouter:qwen/qwen-2.5-coder-32b-instruct",provider:"openrouter",vendorId:"qwen/qwen-2.5-coder-32b-instruct",displayName:"Qwen2.5 Coder 32B Instruct",family:"qwen/qwen-2.5-coder-32b-instruct",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen-2.5-coder-32b-instruct"],releasedAt:"2024-11-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2024-11-11"},{id:"openrouter:qwen/qwen2.5-vl-32b-instruct:free",provider:"openrouter",vendorId:"qwen/qwen2.5-vl-32b-instruct:free",displayName:"Qwen2.5 VL 32B Instruct (free)",family:"qwen/qwen2.5-vl-32b-instruct:free",status:"stable",context:{combinedMax:8192,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen2.5-vl-32b-instruct:free"],releasedAt:"2025-03-24",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-24"},{id:"openrouter:qwen/qwen2.5-vl-72b-instruct",provider:"openrouter",vendorId:"qwen/qwen2.5-vl-72b-instruct",displayName:"Qwen2.5 VL 72B Instruct",family:"qwen/qwen2.5-vl-72b-instruct",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen2.5-vl-72b-instruct"],releasedAt:"2025-02-01",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-01"},{id:"openrouter:qwen/qwen2.5-vl-72b-instruct:free",provider:"openrouter",vendorId:"qwen/qwen2.5-vl-72b-instruct:free",displayName:"Qwen2.5 VL 72B Instruct (free)",family:"qwen/qwen2.5-vl-72b-instruct:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen2.5-vl-72b-instruct:free"],releasedAt:"2025-02-01",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-01"},{id:"openrouter:qwen/qwen3-14b:free",provider:"openrouter",vendorId:"qwen/qwen3-14b:free",displayName:"Qwen3 14B (free)",family:"qwen/qwen3-14b:free",status:"stable",context:{combinedMax:40960,outputMax:40960},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-14b:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-28"},{id:"openrouter:qwen/qwen3-235b-a22b-07-25",provider:"openrouter",vendorId:"qwen/qwen3-235b-a22b-07-25",displayName:"Qwen3 235B A22B Instruct 2507",family:"qwen/qwen3-235b-a22b-07-25",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.85},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-235b-a22b-07-25"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-21"},{id:"openrouter:qwen/qwen3-235b-a22b-07-25:free",provider:"openrouter",vendorId:"qwen/qwen3-235b-a22b-07-25:free",displayName:"Qwen3 235B A22B Instruct 2507 (free)",family:"qwen/qwen3-235b-a22b-07-25:free",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-235b-a22b-07-25:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-21"},{id:"openrouter:qwen/qwen3-235b-a22b-thinking-2507",provider:"openrouter",vendorId:"qwen/qwen3-235b-a22b-thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",family:"qwen/qwen3-235b-a22b-thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:81920},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.078,outputPerMTokens:.312},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-235b-a22b-thinking-2507"],releasedAt:"2025-07-25",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-25"},{id:"openrouter:qwen/qwen3-235b-a22b:free",provider:"openrouter",vendorId:"qwen/qwen3-235b-a22b:free",displayName:"Qwen3 235B A22B (free)",family:"qwen/qwen3-235b-a22b:free",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-235b-a22b:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-28"},{id:"openrouter:qwen/qwen3-30b-a3b-instruct-2507",provider:"openrouter",vendorId:"qwen/qwen3-30b-a3b-instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",family:"qwen/qwen3-30b-a3b-instruct-2507",status:"stable",context:{combinedMax:131072,outputMax:33e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-30b-a3b-instruct-2507"],releasedAt:"2025-07-29",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-29"},{id:"openrouter:qwen/qwen3-30b-a3b:free",provider:"openrouter",vendorId:"qwen/qwen3-30b-a3b:free",displayName:"Qwen3 30B A3B (free)",family:"qwen/qwen3-30b-a3b:free",status:"stable",context:{combinedMax:40960,outputMax:40960},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-30b-a3b:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-28"},{id:"openrouter:qwen/qwen3-32b:free",provider:"openrouter",vendorId:"qwen/qwen3-32b:free",displayName:"Qwen3 32B (free)",family:"qwen/qwen3-32b:free",status:"stable",context:{combinedMax:40960,outputMax:40960},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-32b:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-28"},{id:"openrouter:qwen/qwen3-8b:free",provider:"openrouter",vendorId:"qwen/qwen3-8b:free",displayName:"Qwen3 8B (free)",family:"qwen/qwen3-8b:free",status:"stable",context:{combinedMax:40960,outputMax:40960},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-8b:free"],releasedAt:"2025-04-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-28"},{id:"openrouter:qwen/qwen3-coder",provider:"openrouter",vendorId:"qwen/qwen3-coder",displayName:"Qwen3 Coder",family:"qwen/qwen3-coder",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-coder"],releasedAt:"2025-07-23",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-23"},{id:"openrouter:qwen/qwen3-coder:free",provider:"openrouter",vendorId:"qwen/qwen3-coder:free",displayName:"Qwen3 Coder 480B A35B Instruct (free)",family:"qwen/qwen3-coder:free",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-coder:free"],releasedAt:"2025-07-23",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-23"},{id:"openrouter:qwen/qwen3-max",provider:"openrouter",vendorId:"qwen/qwen3-max",displayName:"Qwen3 Max",family:"qwen/qwen3-max",status:"stable",context:{combinedMax:262144,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["openrouter/qwen/qwen3-max"],releasedAt:"2025-09-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-09-05"},{id:"openrouter:qwen/qwq-32b:free",provider:"openrouter",vendorId:"qwen/qwq-32b:free",displayName:"QwQ 32B (free)",family:"qwen/qwq-32b:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/qwen/qwq-32b:free"],releasedAt:"2025-03-05",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-05"},{id:"openrouter:rekaai/reka-flash-3",provider:"openrouter",vendorId:"rekaai/reka-flash-3",displayName:"Reka Flash 3",family:"rekaai/reka-flash-3",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/rekaai/reka-flash-3"],releasedAt:"2025-03-12",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-03-12"},{id:"openrouter:sarvamai/sarvam-m:free",provider:"openrouter",vendorId:"sarvamai/sarvam-m:free",displayName:"Sarvam-M (free)",family:"sarvamai/sarvam-m:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/sarvamai/sarvam-m:free"],releasedAt:"2025-05-25",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-05-25"},{id:"openrouter:thudm/glm-z1-32b:free",provider:"openrouter",vendorId:"thudm/glm-z1-32b:free",displayName:"GLM Z1 32B (free)",family:"thudm/glm-z1-32b:free",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/thudm/glm-z1-32b:free"],releasedAt:"2025-04-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-04-17"},{id:"openrouter:tngtech/deepseek-r1t2-chimera:free",provider:"openrouter",vendorId:"tngtech/deepseek-r1t2-chimera:free",displayName:"DeepSeek R1T2 Chimera (free)",family:"tngtech/deepseek-r1t2-chimera:free",status:"stable",context:{combinedMax:163840,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/tngtech/deepseek-r1t2-chimera:free"],releasedAt:"2025-07-08",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-08"},{id:"openrouter:x-ai/grok-3",provider:"openrouter",vendorId:"x-ai/grok-3",displayName:"Grok 3",family:"x-ai/grok-3",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-3"],releasedAt:"2025-02-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-17"},{id:"openrouter:x-ai/grok-3-beta",provider:"openrouter",vendorId:"x-ai/grok-3-beta",displayName:"Grok 3 Beta",family:"x-ai/grok-3-beta",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-3-beta"],releasedAt:"2025-02-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-17"},{id:"openrouter:x-ai/grok-3-mini",provider:"openrouter",vendorId:"x-ai/grok-3-mini",displayName:"Grok 3 Mini",family:"x-ai/grok-3-mini",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-3-mini"],releasedAt:"2025-02-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-17"},{id:"openrouter:x-ai/grok-3-mini-beta",provider:"openrouter",vendorId:"x-ai/grok-3-mini-beta",displayName:"Grok 3 Mini Beta",family:"x-ai/grok-3-mini-beta",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-3-mini-beta"],releasedAt:"2025-02-17",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-02-17"},{id:"openrouter:x-ai/grok-4",provider:"openrouter",vendorId:"x-ai/grok-4",displayName:"Grok 4",family:"x-ai/grok-4",status:"stable",context:{combinedMax:256e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-4"],releasedAt:"2025-07-09",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-09"},{id:"openrouter:x-ai/grok-code-fast-1",provider:"openrouter",vendorId:"x-ai/grok-code-fast-1",displayName:"Grok Code Fast 1",family:"x-ai/grok-code-fast-1",status:"stable",context:{combinedMax:256e3,outputMax:1e4},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["openrouter/x-ai/grok-code-fast-1"],releasedAt:"2025-08-26",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-26"},{id:"openrouter:z-ai/glm-4.5",provider:"openrouter",vendorId:"z-ai/glm-4.5",displayName:"GLM 4.5",family:"z-ai/glm-4.5",status:"stable",context:{combinedMax:128e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["openrouter/z-ai/glm-4.5"],releasedAt:"2025-07-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-28"},{id:"openrouter:z-ai/glm-4.5-air",provider:"openrouter",vendorId:"z-ai/glm-4.5-air",displayName:"GLM 4.5 Air",family:"z-ai/glm-4.5-air",status:"stable",context:{combinedMax:128e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:1.1},pricingSource:"models.dev",aliases:["openrouter/z-ai/glm-4.5-air"],releasedAt:"2025-07-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-28"},{id:"openrouter:z-ai/glm-4.5-air:free",provider:"openrouter",vendorId:"z-ai/glm-4.5-air:free",displayName:"GLM 4.5 Air (free)",family:"z-ai/glm-4.5-air:free",status:"stable",context:{combinedMax:128e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["openrouter/z-ai/glm-4.5-air:free"],releasedAt:"2025-07-28",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-07-28"},{id:"openrouter:z-ai/glm-4.5v",provider:"openrouter",vendorId:"z-ai/glm-4.5v",displayName:"GLM 4.5V",family:"z-ai/glm-4.5v",status:"stable",context:{combinedMax:64e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:1.8},pricingSource:"models.dev",aliases:["openrouter/z-ai/glm-4.5v"],releasedAt:"2025-08-11",source:"https://openrouter.ai/models",contextSource:"https://openrouter.ai/models",verifiedAt:"2025-08-11"},{id:"requesty:anthropic/claude-3-7-sonnet",provider:"requesty",vendorId:"anthropic/claude-3-7-sonnet",displayName:"Claude Sonnet 3.7",family:"anthropic/claude-3-7-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["requesty/anthropic/claude-3-7-sonnet"],releasedAt:"2025-02-19",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-02-19"},{id:"requesty:anthropic/claude-4-sonnet-20250522",provider:"requesty",vendorId:"anthropic/claude-4-sonnet-20250522",displayName:"Claude Sonnet 4",family:"anthropic/claude-4-sonnet-20250522",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["requesty/anthropic/claude-4-sonnet-20250522"],releasedAt:"2025-05-22",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-05-22"},{id:"requesty:anthropic/claude-opus-4",provider:"requesty",vendorId:"anthropic/claude-opus-4",displayName:"Claude Opus 4",family:"anthropic/claude-opus-4",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["requesty/anthropic/claude-opus-4"],releasedAt:"2025-05-22",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-05-22"},{id:"requesty:anthropic/claude-opus-4-1-20250805",provider:"requesty",vendorId:"anthropic/claude-opus-4-1-20250805",displayName:"Claude Opus 4.1",family:"anthropic/claude-opus-4-1-20250805",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["requesty/anthropic/claude-opus-4-1-20250805"],releasedAt:"2025-08-05",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-08-05"},{id:"requesty:google/gemini-2.5-flash",provider:"requesty",vendorId:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"google/gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["requesty/google/gemini-2.5-flash"],releasedAt:"2025-06-17",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-06-17"},{id:"requesty:google/gemini-2.5-pro",provider:"requesty",vendorId:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"google/gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["requesty/google/gemini-2.5-pro"],releasedAt:"2025-06-17",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-06-17"},{id:"requesty:openai/gpt-4.1",provider:"requesty",vendorId:"openai/gpt-4.1",displayName:"GPT-4.1",family:"openai/gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["requesty/openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-04-14"},{id:"requesty:openai/gpt-4.1-mini",provider:"requesty",vendorId:"openai/gpt-4.1-mini",displayName:"GPT-4.1 Mini",family:"openai/gpt-4.1-mini",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["requesty/openai/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-04-14"},{id:"requesty:openai/gpt-4o-mini",provider:"requesty",vendorId:"openai/gpt-4o-mini",displayName:"GPT-4o Mini",family:"openai/gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["requesty/openai/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2024-07-18"},{id:"requesty:openai/gpt-5",provider:"requesty",vendorId:"openai/gpt-5",displayName:"GPT-5",family:"openai/gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["requesty/openai/gpt-5"],releasedAt:"2025-08-07",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-08-07"},{id:"requesty:openai/gpt-5-mini",provider:"requesty",vendorId:"openai/gpt-5-mini",displayName:"GPT-5 Mini",family:"openai/gpt-5-mini",status:"stable",context:{combinedMax:128e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["requesty/openai/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-08-07"},{id:"requesty:openai/gpt-5-nano",provider:"requesty",vendorId:"openai/gpt-5-nano",displayName:"GPT-5 Nano",family:"openai/gpt-5-nano",status:"stable",context:{combinedMax:16e3,outputMax:4e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["requesty/openai/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-08-07"},{id:"requesty:openai/o4-mini",provider:"requesty",vendorId:"openai/o4-mini",displayName:"o4 Mini",family:"openai/o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["requesty/openai/o4-mini"],releasedAt:"2025-04-16",source:"https://requesty.ai/solution/llm-routing/models",contextSource:"https://requesty.ai/solution/llm-routing/models",verifiedAt:"2025-04-16"},{id:"submodel:deepseek-ai/DeepSeek-R1-0528",provider:"submodel",vendorId:"deepseek-ai/DeepSeek-R1-0528",displayName:"DeepSeek R1 0528",family:"deepseek-ai/DeepSeek-R1-0528",status:"stable",context:{combinedMax:75e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2.15},pricingSource:"models.dev",aliases:["submodel/deepseek-ai/DeepSeek-R1-0528"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:deepseek-ai/DeepSeek-V3-0324",provider:"submodel",vendorId:"deepseek-ai/DeepSeek-V3-0324",displayName:"DeepSeek V3 0324",family:"deepseek-ai/DeepSeek-V3-0324",status:"stable",context:{combinedMax:75e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["submodel/deepseek-ai/DeepSeek-V3-0324"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:deepseek-ai/DeepSeek-V3.1",provider:"submodel",vendorId:"deepseek-ai/DeepSeek-V3.1",displayName:"DeepSeek V3.1",family:"deepseek-ai/DeepSeek-V3.1",status:"stable",context:{combinedMax:75e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["submodel/deepseek-ai/DeepSeek-V3.1"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:openai/gpt-oss-120b",provider:"submodel",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["submodel/openai/gpt-oss-120b"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:Qwen/Qwen3-235B-A22B-Instruct-2507",provider:"submodel",vendorId:"Qwen/Qwen3-235B-A22B-Instruct-2507",displayName:"Qwen3 235B A22B Instruct 2507",family:"Qwen/Qwen3-235B-A22B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["submodel/Qwen/Qwen3-235B-A22B-Instruct-2507"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"submodel",vendorId:"Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",family:"Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["submodel/Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",provider:"submodel",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",displayName:"Qwen3 Coder 480B A35B Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",status:"stable",context:{combinedMax:262144,outputMax:262144},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["submodel/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"],releasedAt:"2025-08-23",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-08-23"},{id:"submodel:zai-org/GLM-4.5-Air",provider:"submodel",vendorId:"zai-org/GLM-4.5-Air",displayName:"GLM 4.5 Air",family:"zai-org/GLM-4.5-Air",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["submodel/zai-org/GLM-4.5-Air"],releasedAt:"2025-07-28",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-07-28"},{id:"submodel:zai-org/GLM-4.5-FP8",provider:"submodel",vendorId:"zai-org/GLM-4.5-FP8",displayName:"GLM 4.5 FP8",family:"zai-org/GLM-4.5-FP8",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["submodel/zai-org/GLM-4.5-FP8"],releasedAt:"2025-07-28",source:"https://submodel.gitbook.io",contextSource:"https://submodel.gitbook.io",verifiedAt:"2025-07-28"},{id:"synthetic:hf:deepseek-ai/DeepSeek-R1",provider:"synthetic",vendorId:"hf:deepseek-ai/DeepSeek-R1",displayName:"DeepSeek R1",family:"hf:deepseek-ai/DeepSeek-R1",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.55,outputPerMTokens:2.19},pricingSource:"models.dev",aliases:["synthetic/hf:deepseek-ai/DeepSeek-R1"],releasedAt:"2025-01-20",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-01-20"},{id:"synthetic:hf:deepseek-ai/DeepSeek-R1-0528",provider:"synthetic",vendorId:"hf:deepseek-ai/DeepSeek-R1-0528",displayName:"DeepSeek R1 (0528)",family:"hf:deepseek-ai/DeepSeek-R1-0528",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:8},pricingSource:"models.dev",aliases:["synthetic/hf:deepseek-ai/DeepSeek-R1-0528"],releasedAt:"2025-08-01",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-08-01"},{id:"synthetic:hf:deepseek-ai/DeepSeek-V3",provider:"synthetic",vendorId:"hf:deepseek-ai/DeepSeek-V3",displayName:"DeepSeek V3",family:"hf:deepseek-ai/DeepSeek-V3",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["synthetic/hf:deepseek-ai/DeepSeek-V3"],releasedAt:"2025-01-20",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-05-29"},{id:"synthetic:hf:deepseek-ai/DeepSeek-V3-0324",provider:"synthetic",vendorId:"hf:deepseek-ai/DeepSeek-V3-0324",displayName:"DeepSeek V3 (0324)",family:"hf:deepseek-ai/DeepSeek-V3-0324",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.2,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["synthetic/hf:deepseek-ai/DeepSeek-V3-0324"],releasedAt:"2025-08-01",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-08-01"},{id:"synthetic:hf:deepseek-ai/DeepSeek-V3.1",provider:"synthetic",vendorId:"hf:deepseek-ai/DeepSeek-V3.1",displayName:"DeepSeek V3.1",family:"hf:deepseek-ai/DeepSeek-V3.1",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.56,outputPerMTokens:1.68},pricingSource:"models.dev",aliases:["synthetic/hf:deepseek-ai/DeepSeek-V3.1"],releasedAt:"2025-08-21",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-08-21"},{id:"synthetic:hf:meta-llama/Llama-3.1-405B-Instruct",provider:"synthetic",vendorId:"hf:meta-llama/Llama-3.1-405B-Instruct",displayName:"Llama-3.1-405B-Instruct",family:"hf:meta-llama/Llama-3.1-405B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:3},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-3.1-405B-Instruct"],releasedAt:"2024-07-23",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2024-07-23"},{id:"synthetic:hf:meta-llama/Llama-3.1-70B-Instruct",provider:"synthetic",vendorId:"hf:meta-llama/Llama-3.1-70B-Instruct",displayName:"Llama-3.1-70B-Instruct",family:"hf:meta-llama/Llama-3.1-70B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.9,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-3.1-70B-Instruct"],releasedAt:"2024-07-23",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2024-07-23"},{id:"synthetic:hf:meta-llama/Llama-3.1-8B-Instruct",provider:"synthetic",vendorId:"hf:meta-llama/Llama-3.1-8B-Instruct",displayName:"Llama-3.1-8B-Instruct",family:"hf:meta-llama/Llama-3.1-8B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.2},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-3.1-8B-Instruct"],releasedAt:"2024-07-23",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2024-07-23"},{id:"synthetic:hf:meta-llama/Llama-3.3-70B-Instruct",provider:"synthetic",vendorId:"hf:meta-llama/Llama-3.3-70B-Instruct",displayName:"Llama-3.3-70B-Instruct",family:"hf:meta-llama/Llama-3.3-70B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.9,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-3.3-70B-Instruct"],releasedAt:"2024-12-06",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2024-12-06"},{id:"synthetic:hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",provider:"synthetic",vendorId:"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",displayName:"Llama-4-Maverick-17B-128E-Instruct-FP8",family:"hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",status:"stable",context:{combinedMax:524e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.22,outputPerMTokens:.88},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"],releasedAt:"2025-04-05",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-04-05"},{id:"synthetic:hf:meta-llama/Llama-4-Scout-17B-16E-Instruct",provider:"synthetic",vendorId:"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct",displayName:"Llama-4-Scout-17B-16E-Instruct",family:"hf:meta-llama/Llama-4-Scout-17B-16E-Instruct",status:"stable",context:{combinedMax:328e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["synthetic/hf:meta-llama/Llama-4-Scout-17B-16E-Instruct"],releasedAt:"2025-04-05",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-04-05"},{id:"synthetic:hf:moonshotai/Kimi-K2-Instruct",provider:"synthetic",vendorId:"hf:moonshotai/Kimi-K2-Instruct",displayName:"Kimi K2",family:"hf:moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["synthetic/hf:moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-11",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-07-11"},{id:"synthetic:hf:moonshotai/Kimi-K2-Instruct-0905",provider:"synthetic",vendorId:"hf:moonshotai/Kimi-K2-Instruct-0905",displayName:"Kimi K2 0905",family:"hf:moonshotai/Kimi-K2-Instruct-0905",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.2,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["synthetic/hf:moonshotai/Kimi-K2-Instruct-0905"],releasedAt:"2025-09-05",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-09-05"},{id:"synthetic:hf:openai/gpt-oss-120b",provider:"synthetic",vendorId:"hf:openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"hf:openai/gpt-oss-120b",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["synthetic/hf:openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-08-05"},{id:"synthetic:hf:Qwen/Qwen2.5-Coder-32B-Instruct",provider:"synthetic",vendorId:"hf:Qwen/Qwen2.5-Coder-32B-Instruct",displayName:"Qwen2.5-Coder-32B-Instruct",family:"hf:Qwen/Qwen2.5-Coder-32B-Instruct",status:"stable",context:{combinedMax:32768,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:.8},pricingSource:"models.dev",aliases:["synthetic/hf:Qwen/Qwen2.5-Coder-32B-Instruct"],releasedAt:"2024-11-11",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2024-11-11"},{id:"synthetic:hf:Qwen/Qwen3-235B-A22B-Instruct-2507",provider:"synthetic",vendorId:"hf:Qwen/Qwen3-235B-A22B-Instruct-2507",displayName:"Qwen 3 235B Instruct",family:"hf:Qwen/Qwen3-235B-A22B-Instruct-2507",status:"stable",context:{combinedMax:256e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["synthetic/hf:Qwen/Qwen3-235B-A22B-Instruct-2507"],releasedAt:"2025-04-28",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-07-21"},{id:"synthetic:hf:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"synthetic",vendorId:"hf:Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",family:"hf:Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:256e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.65,outputPerMTokens:3},pricingSource:"models.dev",aliases:["synthetic/hf:Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-07-25",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-07-25"},{id:"synthetic:hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",provider:"synthetic",vendorId:"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen 3 Coder 480B",family:"hf:Qwen/Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:256e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:2},pricingSource:"models.dev",aliases:["synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-07-23"},{id:"synthetic:hf:zai-org/GLM-4.5",provider:"synthetic",vendorId:"hf:zai-org/GLM-4.5",displayName:"GLM 4.5",family:"hf:zai-org/GLM-4.5",status:"stable",context:{combinedMax:128e3,outputMax:96e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.55,outputPerMTokens:2.19},pricingSource:"models.dev",aliases:["synthetic/hf:zai-org/GLM-4.5"],releasedAt:"2025-07-28",source:"https://synthetic.new/pricing",contextSource:"https://synthetic.new/pricing",verifiedAt:"2025-07-28"},{id:"togetherai:deepseek-ai/DeepSeek-R1",provider:"togetherai",vendorId:"deepseek-ai/DeepSeek-R1",displayName:"DeepSeek R1",family:"deepseek-ai/DeepSeek-R1",status:"stable",context:{combinedMax:163839,outputMax:12288},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:7},pricingSource:"models.dev",aliases:["togetherai/deepseek-ai/DeepSeek-R1"],releasedAt:"2024-12-26",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2025-03-24"},{id:"togetherai:deepseek-ai/DeepSeek-V3",provider:"togetherai",vendorId:"deepseek-ai/DeepSeek-V3",displayName:"DeepSeek V3",family:"deepseek-ai/DeepSeek-V3",status:"stable",context:{combinedMax:131072,outputMax:12288},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["togetherai/deepseek-ai/DeepSeek-V3"],releasedAt:"2025-01-20",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2025-05-29"},{id:"togetherai:meta-llama/Llama-3.3-70B-Instruct-Turbo",provider:"togetherai",vendorId:"meta-llama/Llama-3.3-70B-Instruct-Turbo",displayName:"Llama 3.3 70B",family:"meta-llama/Llama-3.3-70B-Instruct-Turbo",status:"stable",context:{combinedMax:131072,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.88,outputPerMTokens:.88},pricingSource:"models.dev",aliases:["togetherai/meta-llama/Llama-3.3-70B-Instruct-Turbo"],releasedAt:"2024-12-06",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2024-12-06"},{id:"togetherai:moonshotai/Kimi-K2-Instruct",provider:"togetherai",vendorId:"moonshotai/Kimi-K2-Instruct",displayName:"Kimi K2 Instruct",family:"moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["togetherai/moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-14",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2025-07-14"},{id:"togetherai:openai/gpt-oss-120b",provider:"togetherai",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["togetherai/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2025-08-05"},{id:"togetherai:Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",provider:"togetherai",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",displayName:"Qwen3 Coder 480B A35B Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:2},pricingSource:"models.dev",aliases:["togetherai/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"],releasedAt:"2025-07-23",source:"https://docs.together.ai/docs/serverless-models",contextSource:"https://docs.together.ai/docs/serverless-models",verifiedAt:"2025-07-23"},{id:"upstage:solar-mini",provider:"upstage",vendorId:"solar-mini",displayName:"solar-mini",family:"solar-mini",status:"stable",context:{combinedMax:32768,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["upstage/solar-mini"],releasedAt:"2024-06-12",source:"https://developers.upstage.ai/docs/apis/chat",contextSource:"https://developers.upstage.ai/docs/apis/chat",verifiedAt:"2025-04-22"},{id:"upstage:solar-pro2",provider:"upstage",vendorId:"solar-pro2",displayName:"solar-pro2",family:"solar-pro2",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:.25},pricingSource:"models.dev",aliases:["upstage/solar-pro2"],releasedAt:"2025-05-20",source:"https://developers.upstage.ai/docs/apis/chat",contextSource:"https://developers.upstage.ai/docs/apis/chat",verifiedAt:"2025-05-20"},{id:"v0:v0-1.0-md",provider:"v0",vendorId:"v0-1.0-md",displayName:"v0-1.0-md",family:"v0-1.0-md",status:"stable",context:{combinedMax:128e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["v0/v0-1.0-md"],releasedAt:"2025-05-22",source:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",contextSource:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",verifiedAt:"2025-05-22"},{id:"v0:v0-1.5-lg",provider:"v0",vendorId:"v0-1.5-lg",displayName:"v0-1.5-lg",family:"v0-1.5-lg",status:"stable",context:{combinedMax:512e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["v0/v0-1.5-lg"],releasedAt:"2025-06-09",source:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",contextSource:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",verifiedAt:"2025-06-09"},{id:"v0:v0-1.5-md",provider:"v0",vendorId:"v0-1.5-md",displayName:"v0-1.5-md",family:"v0-1.5-md",status:"stable",context:{combinedMax:128e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["v0/v0-1.5-md"],releasedAt:"2025-06-09",source:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",contextSource:"https://sdk.vercel.ai/providers/ai-sdk-providers/vercel",verifiedAt:"2025-06-09"},{id:"venice:deepseek-coder-v2-lite",provider:"venice",vendorId:"deepseek-coder-v2-lite",displayName:"DeepSeek Coder V2 Lite",family:"deepseek-coder-v2-lite",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["venice/deepseek-coder-v2-lite"],releasedAt:"2025-06-22",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-22"},{id:"venice:deepseek-r1-671b",provider:"venice",vendorId:"deepseek-r1-671b",displayName:"DeepSeek R1 671B",family:"deepseek-r1-671b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3.5,outputPerMTokens:14},pricingSource:"models.dev",aliases:["venice/deepseek-r1-671b"],releasedAt:"2025-06-05",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-05"},{id:"venice:dolphin-2.9.2-qwen2-72b",provider:"venice",vendorId:"dolphin-2.9.2-qwen2-72b",displayName:"Dolphin 72B",family:"dolphin-2.9.2-qwen2-72b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.7,outputPerMTokens:2.8},pricingSource:"models.dev",aliases:["venice/dolphin-2.9.2-qwen2-72b"],releasedAt:"2025-05-21",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-05-21"},{id:"venice:llama-3.1-405b",provider:"venice",vendorId:"llama-3.1-405b",displayName:"Llama 3.1 405B",family:"llama-3.1-405b",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:6},pricingSource:"models.dev",aliases:["venice/llama-3.1-405b"],releasedAt:"2025-06-30",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-30"},{id:"venice:llama-3.2-3b",provider:"venice",vendorId:"llama-3.2-3b",displayName:"Llama 3.2 3B",family:"llama-3.2-3b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["venice/llama-3.2-3b"],releasedAt:"2025-05-23",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-05-23"},{id:"venice:llama-3.3-70b",provider:"venice",vendorId:"llama-3.3-70b",displayName:"Llama 3.3 70B",family:"llama-3.3-70b",status:"stable",context:{combinedMax:65536,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.7,outputPerMTokens:2.8},pricingSource:"models.dev",aliases:["venice/llama-3.3-70b"],releasedAt:"2025-06-09",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-09"},{id:"venice:mistral-31-24b",provider:"venice",vendorId:"mistral-31-24b",displayName:"Venice Medium",family:"mistral-31-24b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["venice/mistral-31-24b"],releasedAt:"2025-07-15",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-07-15"},{id:"venice:qwen-2.5-coder-32b",provider:"venice",vendorId:"qwen-2.5-coder-32b",displayName:"Qwen 2.5 Coder 32B",family:"qwen-2.5-coder-32b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["venice/qwen-2.5-coder-32b"],releasedAt:"2025-06-14",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-14"},{id:"venice:qwen-2.5-qwq-32b",provider:"venice",vendorId:"qwen-2.5-qwq-32b",displayName:"Venice Reasoning",family:"qwen-2.5-qwq-32b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["venice/qwen-2.5-qwq-32b"],releasedAt:"2025-07-08",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-07-08"},{id:"venice:qwen-2.5-vl",provider:"venice",vendorId:"qwen-2.5-vl",displayName:"Qwen 2.5 VL 72B",family:"qwen-2.5-vl",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.7,outputPerMTokens:2.8},pricingSource:"models.dev",aliases:["venice/qwen-2.5-vl"],releasedAt:"2025-06-09",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-06-09"},{id:"venice:qwen3-235b",provider:"venice",vendorId:"qwen3-235b",displayName:"Venice Large",family:"qwen3-235b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.5,outputPerMTokens:6},pricingSource:"models.dev",aliases:["venice/qwen3-235b"],releasedAt:"2025-07-27",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-07-27"},{id:"venice:qwen3-4b",provider:"venice",vendorId:"qwen3-4b",displayName:"Venice Small",family:"qwen3-4b",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["venice/qwen3-4b"],releasedAt:"2025-07-27",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-07-27"},{id:"venice:venice-uncensored",provider:"venice",vendorId:"venice-uncensored",displayName:"Venice Uncensored 1.1",family:"venice-uncensored",status:"stable",context:{combinedMax:32768,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:2},pricingSource:"models.dev",aliases:["venice/venice-uncensored"],releasedAt:"2025-07-15",source:"https://docs.venice.ai",contextSource:"https://docs.venice.ai",verifiedAt:"2025-07-15"},{id:"vercel:amazon/nova-lite",provider:"vercel",vendorId:"amazon/nova-lite",displayName:"Nova Lite",family:"amazon/nova-lite",status:"stable",context:{combinedMax:3e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.06,outputPerMTokens:.24},pricingSource:"models.dev",aliases:["vercel/amazon/nova-lite"],releasedAt:"2024-12-03",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-03"},{id:"vercel:amazon/nova-micro",provider:"vercel",vendorId:"amazon/nova-micro",displayName:"Nova Micro",family:"amazon/nova-micro",status:"stable",context:{combinedMax:128e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.035,outputPerMTokens:.14},pricingSource:"models.dev",aliases:["vercel/amazon/nova-micro"],releasedAt:"2024-12-03",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-03"},{id:"vercel:amazon/nova-pro",provider:"vercel",vendorId:"amazon/nova-pro",displayName:"Nova Pro",family:"amazon/nova-pro",status:"stable",context:{combinedMax:3e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:3.2},pricingSource:"models.dev",aliases:["vercel/amazon/nova-pro"],releasedAt:"2024-12-03",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-03"},{id:"vercel:anthropic/claude-3-5-haiku",provider:"vercel",vendorId:"anthropic/claude-3-5-haiku",displayName:"Claude Haiku 3.5",family:"anthropic/claude-3-5-haiku",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:4},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-3-5-haiku"],releasedAt:"2024-10-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-10-22"},{id:"vercel:anthropic/claude-3-haiku",provider:"vercel",vendorId:"anthropic/claude-3-haiku",displayName:"Claude Haiku 3",family:"anthropic/claude-3-haiku",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:1.25},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-3-haiku"],releasedAt:"2024-03-13",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-03-13"},{id:"vercel:anthropic/claude-3-opus",provider:"vercel",vendorId:"anthropic/claude-3-opus",displayName:"Claude Opus 3",family:"anthropic/claude-3-opus",status:"stable",context:{combinedMax:2e5,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-3-opus"],releasedAt:"2024-02-29",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-02-29"},{id:"vercel:anthropic/claude-3.5-sonnet",provider:"vercel",vendorId:"anthropic/claude-3.5-sonnet",displayName:"Claude Sonnet 3.5 v2",family:"anthropic/claude-3.5-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-3.5-sonnet"],releasedAt:"2024-10-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-10-22"},{id:"vercel:anthropic/claude-3.7-sonnet",provider:"vercel",vendorId:"anthropic/claude-3.7-sonnet",displayName:"Claude Sonnet 3.7",family:"anthropic/claude-3.7-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-3.7-sonnet"],releasedAt:"2025-02-19",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-02-19"},{id:"vercel:anthropic/claude-4-1-opus",provider:"vercel",vendorId:"anthropic/claude-4-1-opus",displayName:"Claude Opus 4",family:"anthropic/claude-4-1-opus",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-4-1-opus"],releasedAt:"2025-05-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-05-22"},{id:"vercel:anthropic/claude-4-opus",provider:"vercel",vendorId:"anthropic/claude-4-opus",displayName:"Claude Opus 4",family:"anthropic/claude-4-opus",status:"stable",context:{combinedMax:2e5,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:75},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-4-opus"],releasedAt:"2025-05-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-05-22"},{id:"vercel:anthropic/claude-4-sonnet",provider:"vercel",vendorId:"anthropic/claude-4-sonnet",displayName:"Claude Sonnet 4",family:"anthropic/claude-4-sonnet",status:"stable",context:{combinedMax:2e5,outputMax:64e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/anthropic/claude-4-sonnet"],releasedAt:"2025-05-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-05-22"},{id:"vercel:cerebras/qwen3-coder",provider:"vercel",vendorId:"cerebras/qwen3-coder",displayName:"Qwen 3 Coder 480B",family:"cerebras/qwen3-coder",status:"stable",context:{combinedMax:131e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:2},pricingSource:"models.dev",aliases:["vercel/cerebras/qwen3-coder"],releasedAt:"2025-07-23",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-07-23"},{id:"vercel:deepseek/deepseek-r1",provider:"vercel",vendorId:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",family:"deepseek/deepseek-r1",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.35,outputPerMTokens:5.4},pricingSource:"models.dev",aliases:["vercel/deepseek/deepseek-r1"],releasedAt:"2025-01-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-05-29"},{id:"vercel:deepseek/deepseek-r1-distill-llama-70b",provider:"vercel",vendorId:"deepseek/deepseek-r1-distill-llama-70b",displayName:"DeepSeek R1 Distill Llama 70B",family:"deepseek/deepseek-r1-distill-llama-70b",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.75,outputPerMTokens:.99},pricingSource:"models.dev",aliases:["vercel/deepseek/deepseek-r1-distill-llama-70b"],releasedAt:"2025-01-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-01-20"},{id:"vercel:google/gemini-2.0-flash",provider:"vercel",vendorId:"google/gemini-2.0-flash",displayName:"Gemini 2.0 Flash",family:"google/gemini-2.0-flash",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["vercel/google/gemini-2.0-flash"],releasedAt:"2024-12-11",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-11"},{id:"vercel:google/gemini-2.0-flash-lite",provider:"vercel",vendorId:"google/gemini-2.0-flash-lite",displayName:"Gemini 2.0 Flash Lite",family:"google/gemini-2.0-flash-lite",status:"stable",context:{combinedMax:1048576,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.075,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["vercel/google/gemini-2.0-flash-lite"],releasedAt:"2024-12-11",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-11"},{id:"vercel:google/gemini-2.5-flash",provider:"vercel",vendorId:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",family:"google/gemini-2.5-flash",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:2.5},pricingSource:"models.dev",aliases:["vercel/google/gemini-2.5-flash"],releasedAt:"2025-03-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-06-05"},{id:"vercel:google/gemini-2.5-pro",provider:"vercel",vendorId:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",family:"google/gemini-2.5-pro",status:"stable",context:{combinedMax:1048576,outputMax:65536},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["vercel/google/gemini-2.5-pro"],releasedAt:"2025-03-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-06-05"},{id:"vercel:meta/llama-3.3-70b",provider:"vercel",vendorId:"meta/llama-3.3-70b",displayName:"Llama-3.3-70B-Instruct",family:"meta/llama-3.3-70b",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["vercel/meta/llama-3.3-70b"],releasedAt:"2024-12-06",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-06"},{id:"vercel:meta/llama-4-maverick",provider:"vercel",vendorId:"meta/llama-4-maverick",displayName:"Llama-4-Maverick-17B-128E-Instruct-FP8",family:"meta/llama-4-maverick",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["vercel/meta/llama-4-maverick"],releasedAt:"2025-04-05",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-05"},{id:"vercel:meta/llama-4-scout",provider:"vercel",vendorId:"meta/llama-4-scout",displayName:"Llama-4-Scout-17B-16E-Instruct-FP8",family:"meta/llama-4-scout",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["vercel/meta/llama-4-scout"],releasedAt:"2025-04-05",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-05"},{id:"vercel:mistral/codestral",provider:"vercel",vendorId:"mistral/codestral",displayName:"Codestral",family:"mistral/codestral",status:"stable",context:{combinedMax:256e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.9},pricingSource:"models.dev",aliases:["vercel/mistral/codestral"],releasedAt:"2024-05-29",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-01-04"},{id:"vercel:mistral/magistral-medium",provider:"vercel",vendorId:"mistral/magistral-medium",displayName:"Magistral Medium",family:"mistral/magistral-medium",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:5},pricingSource:"models.dev",aliases:["vercel/mistral/magistral-medium"],releasedAt:"2025-03-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-03-20"},{id:"vercel:mistral/magistral-small",provider:"vercel",vendorId:"mistral/magistral-small",displayName:"Magistral Small",family:"mistral/magistral-small",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.5,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["vercel/mistral/magistral-small"],releasedAt:"2025-03-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-03-17"},{id:"vercel:mistral/ministral-3b",provider:"vercel",vendorId:"mistral/ministral-3b",displayName:"Ministral 3B",family:"mistral/ministral-3b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.04,outputPerMTokens:.04},pricingSource:"models.dev",aliases:["vercel/mistral/ministral-3b"],releasedAt:"2024-10-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-10-04"},{id:"vercel:mistral/ministral-8b",provider:"vercel",vendorId:"mistral/ministral-8b",displayName:"Ministral 8B",family:"mistral/ministral-8b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["vercel/mistral/ministral-8b"],releasedAt:"2024-10-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-10-04"},{id:"vercel:mistral/mistral-large",provider:"vercel",vendorId:"mistral/mistral-large",displayName:"Mistral Large",family:"mistral/mistral-large",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["vercel/mistral/mistral-large"],releasedAt:"2024-11-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-11-04"},{id:"vercel:mistral/mistral-small",provider:"vercel",vendorId:"mistral/mistral-small",displayName:"Mistral Small",family:"mistral/mistral-small",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["vercel/mistral/mistral-small"],releasedAt:"2024-09-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-09-04"},{id:"vercel:mistral/mixtral-8x22b-instruct",provider:"vercel",vendorId:"mistral/mixtral-8x22b-instruct",displayName:"Mixtral 8x22B",family:"mistral/mixtral-8x22b-instruct",status:"stable",context:{combinedMax:64e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["vercel/mistral/mixtral-8x22b-instruct"],releasedAt:"2024-04-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-04-17"},{id:"vercel:mistral/pixtral-12b",provider:"vercel",vendorId:"mistral/pixtral-12b",displayName:"Pixtral 12B",family:"mistral/pixtral-12b",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.15},pricingSource:"models.dev",aliases:["vercel/mistral/pixtral-12b"],releasedAt:"2024-09-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-09-01"},{id:"vercel:mistral/pixtral-large",provider:"vercel",vendorId:"mistral/pixtral-large",displayName:"Pixtral Large",family:"mistral/pixtral-large",status:"stable",context:{combinedMax:128e3,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:6},pricingSource:"models.dev",aliases:["vercel/mistral/pixtral-large"],releasedAt:"2024-11-01",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-11-04"},{id:"vercel:moonshotai/kimi-k2",provider:"vercel",vendorId:"moonshotai/kimi-k2",displayName:"Kimi K2 Instruct",family:"moonshotai/kimi-k2",status:"stable",context:{combinedMax:131072,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:3},pricingSource:"models.dev",aliases:["vercel/moonshotai/kimi-k2"],releasedAt:"2025-07-14",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-07-14"},{id:"vercel:morph/morph-v3-fast",provider:"vercel",vendorId:"morph/morph-v3-fast",displayName:"Morph v3 Fast",family:"morph/morph-v3-fast",status:"stable",context:{combinedMax:16e3,outputMax:16e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.8,outputPerMTokens:1.2},pricingSource:"models.dev",aliases:["vercel/morph/morph-v3-fast"],releasedAt:"2024-08-15",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-08-15"},{id:"vercel:morph/morph-v3-large",provider:"vercel",vendorId:"morph/morph-v3-large",displayName:"Morph v3 Large",family:"morph/morph-v3-large",status:"stable",context:{combinedMax:32e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.9,outputPerMTokens:1.9},pricingSource:"models.dev",aliases:["vercel/morph/morph-v3-large"],releasedAt:"2024-08-15",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-08-15"},{id:"vercel:openai/gpt-4-turbo",provider:"vercel",vendorId:"openai/gpt-4-turbo",displayName:"GPT-4 Turbo",family:"openai/gpt-4-turbo",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:10,outputPerMTokens:30},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4-turbo"],releasedAt:"2023-11-06",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-04-09"},{id:"vercel:openai/gpt-4.1",provider:"vercel",vendorId:"openai/gpt-4.1",displayName:"GPT-4.1",family:"openai/gpt-4.1",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4.1"],releasedAt:"2025-04-14",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-14"},{id:"vercel:openai/gpt-4.1-mini",provider:"vercel",vendorId:"openai/gpt-4.1-mini",displayName:"GPT-4.1 mini",family:"openai/gpt-4.1-mini",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.4,outputPerMTokens:1.6},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4.1-mini"],releasedAt:"2025-04-14",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-14"},{id:"vercel:openai/gpt-4.1-nano",provider:"vercel",vendorId:"openai/gpt-4.1-nano",displayName:"GPT-4.1 nano",family:"openai/gpt-4.1-nano",status:"stable",context:{combinedMax:1047576,outputMax:32768},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4.1-nano"],releasedAt:"2025-04-14",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-14"},{id:"vercel:openai/gpt-4o",provider:"vercel",vendorId:"openai/gpt-4o",displayName:"GPT-4o",family:"openai/gpt-4o",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2.5,outputPerMTokens:10},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4o"],releasedAt:"2024-05-13",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-05-13"},{id:"vercel:openai/gpt-4o-mini",provider:"vercel",vendorId:"openai/gpt-4o-mini",displayName:"GPT-4o mini",family:"openai/gpt-4o-mini",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.15,outputPerMTokens:.6},pricingSource:"models.dev",aliases:["vercel/openai/gpt-4o-mini"],releasedAt:"2024-07-18",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-07-18"},{id:"vercel:openai/gpt-5",provider:"vercel",vendorId:"openai/gpt-5",displayName:"GPT-5",family:"openai/gpt-5",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.25,outputPerMTokens:10},pricingSource:"models.dev",aliases:["vercel/openai/gpt-5"],releasedAt:"2025-08-07",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-08-07"},{id:"vercel:openai/gpt-5-mini",provider:"vercel",vendorId:"openai/gpt-5-mini",displayName:"GPT-5 Mini",family:"openai/gpt-5-mini",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.25,outputPerMTokens:2},pricingSource:"models.dev",aliases:["vercel/openai/gpt-5-mini"],releasedAt:"2025-08-07",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-08-07"},{id:"vercel:openai/gpt-5-nano",provider:"vercel",vendorId:"openai/gpt-5-nano",displayName:"GPT-5 Nano",family:"openai/gpt-5-nano",status:"stable",context:{combinedMax:4e5,outputMax:128e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.05,outputPerMTokens:.4},pricingSource:"models.dev",aliases:["vercel/openai/gpt-5-nano"],releasedAt:"2025-08-07",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-08-07"},{id:"vercel:openai/gpt-oss-120b",provider:"vercel",vendorId:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",family:"openai/gpt-oss-120b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["vercel/openai/gpt-oss-120b"],releasedAt:"2025-08-05",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-08-05"},{id:"vercel:openai/gpt-oss-20b",provider:"vercel",vendorId:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",family:"openai/gpt-oss-20b",status:"stable",context:{combinedMax:131072,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.07,outputPerMTokens:.3},pricingSource:"models.dev",aliases:["vercel/openai/gpt-oss-20b"],releasedAt:"2025-08-05",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-08-05"},{id:"vercel:openai/o1",provider:"vercel",vendorId:"openai/o1",displayName:"o1",family:"openai/o1",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:15,outputPerMTokens:60},pricingSource:"models.dev",aliases:["vercel/openai/o1"],releasedAt:"2024-12-05",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-12-05"},{id:"vercel:openai/o3",provider:"vercel",vendorId:"openai/o3",displayName:"o3",family:"openai/o3",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:8},pricingSource:"models.dev",aliases:["vercel/openai/o3"],releasedAt:"2025-04-16",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-16"},{id:"vercel:openai/o3-mini",provider:"vercel",vendorId:"openai/o3-mini",displayName:"o3-mini",family:"openai/o3-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["vercel/openai/o3-mini"],releasedAt:"2024-12-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-01-29"},{id:"vercel:openai/o4-mini",provider:"vercel",vendorId:"openai/o4-mini",displayName:"o4-mini",family:"openai/o4-mini",status:"stable",context:{combinedMax:2e5,outputMax:1e5},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:1.1,outputPerMTokens:4.4},pricingSource:"models.dev",aliases:["vercel/openai/o4-mini"],releasedAt:"2025-04-16",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-04-16"},{id:"vercel:vercel/v0-1.0-md",provider:"vercel",vendorId:"vercel/v0-1.0-md",displayName:"v0-1.0-md",family:"vercel/v0-1.0-md",status:"stable",context:{combinedMax:128e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/vercel/v0-1.0-md"],releasedAt:"2025-05-22",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-05-22"},{id:"vercel:vercel/v0-1.5-md",provider:"vercel",vendorId:"vercel/v0-1.5-md",displayName:"v0-1.5-md",family:"vercel/v0-1.5-md",status:"stable",context:{combinedMax:128e3,outputMax:32e3},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/vercel/v0-1.5-md"],releasedAt:"2025-06-09",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-06-09"},{id:"vercel:xai/grok-2",provider:"vercel",vendorId:"xai/grok-2",displayName:"Grok 2",family:"xai/grok-2",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["vercel/xai/grok-2"],releasedAt:"2024-08-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-08-20"},{id:"vercel:xai/grok-2-vision",provider:"vercel",vendorId:"xai/grok-2-vision",displayName:"Grok 2 Vision",family:"xai/grok-2-vision",status:"stable",context:{combinedMax:8192,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["vercel/xai/grok-2-vision"],releasedAt:"2024-08-20",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2024-08-20"},{id:"vercel:xai/grok-3",provider:"vercel",vendorId:"xai/grok-3",displayName:"Grok 3",family:"xai/grok-3",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/xai/grok-3"],releasedAt:"2025-02-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-02-17"},{id:"vercel:xai/grok-3-fast",provider:"vercel",vendorId:"xai/grok-3-fast",displayName:"Grok 3 Fast",family:"xai/grok-3-fast",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:5,outputPerMTokens:25},pricingSource:"models.dev",aliases:["vercel/xai/grok-3-fast"],releasedAt:"2025-02-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-02-17"},{id:"vercel:xai/grok-3-mini",provider:"vercel",vendorId:"xai/grok-3-mini",displayName:"Grok 3 Mini",family:"xai/grok-3-mini",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["vercel/xai/grok-3-mini"],releasedAt:"2025-02-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-02-17"},{id:"vercel:xai/grok-3-mini-fast",provider:"vercel",vendorId:"xai/grok-3-mini-fast",displayName:"Grok 3 Mini Fast",family:"xai/grok-3-mini-fast",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:4},pricingSource:"models.dev",aliases:["vercel/xai/grok-3-mini-fast"],releasedAt:"2025-02-17",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-02-17"},{id:"vercel:xai/grok-4",provider:"vercel",vendorId:"xai/grok-4",displayName:"Grok 4",family:"xai/grok-4",status:"stable",context:{combinedMax:256e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["vercel/xai/grok-4"],releasedAt:"2025-07-09",source:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",contextSource:"https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway",verifiedAt:"2025-07-09"},{id:"wandb:deepseek-ai/DeepSeek-R1-0528",provider:"wandb",vendorId:"deepseek-ai/DeepSeek-R1-0528",displayName:"DeepSeek-R1-0528",family:"deepseek-ai/DeepSeek-R1-0528",status:"stable",context:{combinedMax:161e3,outputMax:163840},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.35,outputPerMTokens:5.4},pricingSource:"models.dev",aliases:["wandb/deepseek-ai/DeepSeek-R1-0528"],releasedAt:"2025-05-28",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-05-28"},{id:"wandb:deepseek-ai/DeepSeek-V3-0324",provider:"wandb",vendorId:"deepseek-ai/DeepSeek-V3-0324",displayName:"DeepSeek-V3-0324",family:"deepseek-ai/DeepSeek-V3-0324",status:"stable",context:{combinedMax:161e3,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.14,outputPerMTokens:2.75},pricingSource:"models.dev",aliases:["wandb/deepseek-ai/DeepSeek-V3-0324"],releasedAt:"2025-03-24",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-03-24"},{id:"wandb:meta-llama/Llama-3.1-8B-Instruct",provider:"wandb",vendorId:"meta-llama/Llama-3.1-8B-Instruct",displayName:"Meta-Llama-3.1-8B-Instruct",family:"meta-llama/Llama-3.1-8B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.22,outputPerMTokens:.22},pricingSource:"models.dev",aliases:["wandb/meta-llama/Llama-3.1-8B-Instruct"],releasedAt:"2024-07-23",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2024-07-23"},{id:"wandb:meta-llama/Llama-3.3-70B-Instruct",provider:"wandb",vendorId:"meta-llama/Llama-3.3-70B-Instruct",displayName:"Llama-3.3-70B-Instruct",family:"meta-llama/Llama-3.3-70B-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:32768},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.71,outputPerMTokens:.71},pricingSource:"models.dev",aliases:["wandb/meta-llama/Llama-3.3-70B-Instruct"],releasedAt:"2024-12-06",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2024-12-06"},{id:"wandb:meta-llama/Llama-4-Scout-17B-16E-Instruct",provider:"wandb",vendorId:"meta-llama/Llama-4-Scout-17B-16E-Instruct",displayName:"Llama 4 Scout 17B 16E Instruct",family:"meta-llama/Llama-4-Scout-17B-16E-Instruct",status:"stable",context:{combinedMax:64e3,outputMax:8192},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.17,outputPerMTokens:.66},pricingSource:"models.dev",aliases:["wandb/meta-llama/Llama-4-Scout-17B-16E-Instruct"],releasedAt:"2025-01-31",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-01-31"},{id:"wandb:microsoft/Phi-4-mini-instruct",provider:"wandb",vendorId:"microsoft/Phi-4-mini-instruct",displayName:"Phi-4-mini-instruct",family:"microsoft/Phi-4-mini-instruct",status:"stable",context:{combinedMax:128e3,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.08,outputPerMTokens:.35},pricingSource:"models.dev",aliases:["wandb/microsoft/Phi-4-mini-instruct"],releasedAt:"2024-12-11",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2024-12-11"},{id:"wandb:moonshotai/Kimi-K2-Instruct",provider:"wandb",vendorId:"moonshotai/Kimi-K2-Instruct",displayName:"Kimi-K2-Instruct",family:"moonshotai/Kimi-K2-Instruct",status:"stable",context:{combinedMax:128e3,outputMax:16384},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1.35,outputPerMTokens:4},pricingSource:"models.dev",aliases:["wandb/moonshotai/Kimi-K2-Instruct"],releasedAt:"2025-07-14",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-07-14"},{id:"wandb:Qwen/Qwen3-235B-A22B-Instruct-2507",provider:"wandb",vendorId:"Qwen/Qwen3-235B-A22B-Instruct-2507",displayName:"Qwen3 235B A22B Instruct 2507",family:"Qwen/Qwen3-235B-A22B-Instruct-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["wandb/Qwen/Qwen3-235B-A22B-Instruct-2507"],releasedAt:"2025-04-28",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-07-21"},{id:"wandb:Qwen/Qwen3-235B-A22B-Thinking-2507",provider:"wandb",vendorId:"Qwen/Qwen3-235B-A22B-Thinking-2507",displayName:"Qwen3-235B-A22B-Thinking-2507",family:"Qwen/Qwen3-235B-A22B-Thinking-2507",status:"stable",context:{combinedMax:262144,outputMax:131072},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.1,outputPerMTokens:.1},pricingSource:"models.dev",aliases:["wandb/Qwen/Qwen3-235B-A22B-Thinking-2507"],releasedAt:"2025-07-25",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-07-25"},{id:"wandb:Qwen/Qwen3-Coder-480B-A35B-Instruct",provider:"wandb",vendorId:"Qwen/Qwen3-Coder-480B-A35B-Instruct",displayName:"Qwen3-Coder-480B-A35B-Instruct",family:"Qwen/Qwen3-Coder-480B-A35B-Instruct",status:"stable",context:{combinedMax:262144,outputMax:66536},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:1,outputPerMTokens:1.5},pricingSource:"models.dev",aliases:["wandb/Qwen/Qwen3-Coder-480B-A35B-Instruct"],releasedAt:"2025-07-23",source:"https://weave-docs.wandb.ai/guides/integrations/inference/",contextSource:"https://weave-docs.wandb.ai/guides/integrations/inference/",verifiedAt:"2025-07-23"},{id:"xai:grok-2",provider:"xai",vendorId:"grok-2",displayName:"Grok 2",family:"grok-2",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2"],releasedAt:"2024-08-20",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-08-20"},{id:"xai:grok-2-1212",provider:"xai",vendorId:"grok-2-1212",displayName:"Grok 2 (1212)",family:"grok-2-1212",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2-1212"],releasedAt:"2024-12-12",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-12-12"},{id:"xai:grok-2-latest",provider:"xai",vendorId:"grok-2-latest",displayName:"Grok 2 Latest",family:"grok-2-latest",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2-latest"],releasedAt:"2024-08-20",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-12-12"},{id:"xai:grok-2-vision",provider:"xai",vendorId:"grok-2-vision",displayName:"Grok 2 Vision",family:"grok-2-vision",status:"stable",context:{combinedMax:8192,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2-vision"],releasedAt:"2024-08-20",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-08-20"},{id:"xai:grok-2-vision-1212",provider:"xai",vendorId:"grok-2-vision-1212",displayName:"Grok 2 Vision (1212)",family:"grok-2-vision-1212",status:"stable",context:{combinedMax:8192,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2-vision-1212"],releasedAt:"2024-08-20",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-12-12"},{id:"xai:grok-2-vision-latest",provider:"xai",vendorId:"grok-2-vision-latest",displayName:"Grok 2 Vision Latest",family:"grok-2-vision-latest",status:"stable",context:{combinedMax:8192,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:2,outputPerMTokens:10},pricingSource:"models.dev",aliases:["xai/grok-2-vision-latest"],releasedAt:"2024-08-20",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-12-12"},{id:"xai:grok-3",provider:"xai",vendorId:"grok-3",displayName:"Grok 3",family:"grok-3",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["xai/grok-3"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-fast",provider:"xai",vendorId:"grok-3-fast",displayName:"Grok 3 Fast",family:"grok-3-fast",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:5,outputPerMTokens:25},pricingSource:"models.dev",aliases:["xai/grok-3-fast"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-fast-latest",provider:"xai",vendorId:"grok-3-fast-latest",displayName:"Grok 3 Fast Latest",family:"grok-3-fast-latest",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:5,outputPerMTokens:25},pricingSource:"models.dev",aliases:["xai/grok-3-fast-latest"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-latest",provider:"xai",vendorId:"grok-3-latest",displayName:"Grok 3 Latest",family:"grok-3-latest",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["xai/grok-3-latest"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-mini",provider:"xai",vendorId:"grok-3-mini",displayName:"Grok 3 Mini",family:"grok-3-mini",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["xai/grok-3-mini"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-mini-fast",provider:"xai",vendorId:"grok-3-mini-fast",displayName:"Grok 3 Mini Fast",family:"grok-3-mini-fast",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:4},pricingSource:"models.dev",aliases:["xai/grok-3-mini-fast"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-mini-fast-latest",provider:"xai",vendorId:"grok-3-mini-fast-latest",displayName:"Grok 3 Mini Fast Latest",family:"grok-3-mini-fast-latest",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:4},pricingSource:"models.dev",aliases:["xai/grok-3-mini-fast-latest"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-3-mini-latest",provider:"xai",vendorId:"grok-3-mini-latest",displayName:"Grok 3 Mini Latest",family:"grok-3-mini-latest",status:"stable",context:{combinedMax:131072,outputMax:8192},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.3,outputPerMTokens:.5},pricingSource:"models.dev",aliases:["xai/grok-3-mini-latest"],releasedAt:"2025-02-17",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-02-17"},{id:"xai:grok-4",provider:"xai",vendorId:"grok-4",displayName:"Grok 4",family:"grok-4",status:"stable",context:{combinedMax:256e3,outputMax:64e3},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:3,outputPerMTokens:15},pricingSource:"models.dev",aliases:["xai/grok-4"],releasedAt:"2025-07-09",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2025-07-09"},{id:"xai:grok-beta",provider:"xai",vendorId:"grok-beta",displayName:"Grok Beta",family:"grok-beta",status:"stable",context:{combinedMax:131072,outputMax:4096},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:5,outputPerMTokens:15},pricingSource:"models.dev",aliases:["xai/grok-beta"],releasedAt:"2024-11-01",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-11-01"},{id:"xai:grok-vision-beta",provider:"xai",vendorId:"grok-vision-beta",displayName:"Grok Vision Beta",family:"grok-vision-beta",status:"stable",context:{combinedMax:8192,outputMax:4096},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:5,outputPerMTokens:15},pricingSource:"models.dev",aliases:["xai/grok-vision-beta"],releasedAt:"2024-11-01",source:"https://docs.x.ai/docs/models",contextSource:"https://docs.x.ai/docs/models",verifiedAt:"2024-11-01"},{id:"zai:glm-4.5",provider:"zai",vendorId:"glm-4.5",displayName:"GLM-4.5",family:"glm-4.5",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["zai/glm-4.5"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zai:glm-4.5-air",provider:"zai",vendorId:"glm-4.5-air",displayName:"GLM-4.5-Air",family:"glm-4.5-air",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:1.1},pricingSource:"models.dev",aliases:["zai/glm-4.5-air"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zai:glm-4.5-flash",provider:"zai",vendorId:"glm-4.5-flash",displayName:"GLM-4.5-Flash",family:"glm-4.5-flash",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["zai/glm-4.5-flash"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zai:glm-4.5v",provider:"zai",vendorId:"glm-4.5v",displayName:"GLM 4.5V",family:"glm-4.5v",status:"stable",context:{combinedMax:64e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:1.8},pricingSource:"models.dev",aliases:["zai/glm-4.5v"],releasedAt:"2025-08-11",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-08-11"},{id:"zhipuai:glm-4.5",provider:"zhipuai",vendorId:"glm-4.5",displayName:"GLM-4.5",family:"glm-4.5",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:2.2},pricingSource:"models.dev",aliases:["zhipuai/glm-4.5"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zhipuai:glm-4.5-air",provider:"zhipuai",vendorId:"glm-4.5-air",displayName:"GLM-4.5-Air",family:"glm-4.5-air",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:.2,outputPerMTokens:1.1},pricingSource:"models.dev",aliases:["zhipuai/glm-4.5-air"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zhipuai:glm-4.5-flash",provider:"zhipuai",vendorId:"glm-4.5-flash",displayName:"GLM-4.5-Flash",family:"glm-4.5-flash",status:"stable",context:{combinedMax:131072,outputMax:98304},modalities:{textIn:!0,textOut:!0},pricing:{inputPerMTokens:0,outputPerMTokens:0},pricingSource:"models.dev",aliases:["zhipuai/glm-4.5-flash"],releasedAt:"2025-07-28",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-07-28"},{id:"zhipuai:glm-4.5v",provider:"zhipuai",vendorId:"glm-4.5v",displayName:"GLM 4.5V",family:"glm-4.5v",status:"stable",context:{combinedMax:64e3,outputMax:16384},modalities:{textIn:!0,textOut:!0,imageIn:!0},pricing:{inputPerMTokens:.6,outputPerMTokens:1.8},pricingSource:"models.dev",aliases:["zhipuai/glm-4.5v"],releasedAt:"2025-08-11",source:"https://docs.z.ai/guides/overview/pricing",contextSource:"https://docs.z.ai/guides/overview/pricing",verifiedAt:"2025-08-11"}],ur=(ua.map(e=>e.id),Object.freeze(Object.fromEntries(ua.map(e=>[e.id,e])))),us=[];for(let e of ua){let t=e.provider+":";for(let o of(e.vendorId&&us.push([e.vendorId.toLowerCase(),e.id]),e.family&&us.push([e.family.toLowerCase(),e.id]),e.id.startsWith(t)&&us.push([e.id.slice(t.length).toLowerCase(),e.id]),e.aliases??[]))us.push([o.toLowerCase(),e.id])}let un=new Map;for(let[e,t]of us)un.has(e)||un.set(e,t);let ul=Object.freeze(Object.fromEntries(un));function ud(e){if(!e)return{input:0,output:0,total:0};if("number"==typeof e.input&&"number"==typeof e.output)return{input:e.input,output:e.output,total:e.total??e.input+e.output};let t=[e.input_tokens,e.prompt_tokens,e.promptTokens,e.inputTokens].filter(e=>"number"==typeof e),o=[e.output_tokens,e.completion_tokens,e.completionTokens,e.outputTokens].filter(e=>"number"==typeof e),i=[e.total_tokens,e.totalTokens,e.totalTokens].filter(e=>"number"==typeof e),a=t[0]??0,r=o[0]??0,s=i[0];return void 0!==s?{input:a,output:r,total:s}:{input:a,output:r,total:a+r}}function uc({modelId:e,usage:t}){let o=function(e){let t=e.trim().toLowerCase(),o=ur[t]?t:ul[t];return o?ur[o]:void 0}(e);if(!o?.pricing)return{};let i=ud(t),a=function(e){if(!e)return{input:0,output:0,total:0,cacheReads:0,cacheWrites:0,reasoningTokens:0};if("number"==typeof e.input&&"number"==typeof e.output&&("cacheReads"in e||"cacheWrites"in e||"total"in e))return{input:e.input,output:e.output,total:e.total??e.input+e.output,cacheReads:e.cacheReads,cacheWrites:e.cacheWrites,reasoningTokens:e.reasoningTokens};let t=ud(e),o=[e.cache_read_input_tokens,e.cache_read_tokens,e.prompt_cache_hit_tokens,e.prompt_tokens_details?.cached_tokens,e.promptTokensDetails?.cachedTokens,e.cachedInputTokens].filter(e=>"number"==typeof e),i=[e.cache_creation_input_tokens,e.cache_creation_tokens,e.prompt_cache_write_tokens,e.promptTokensDetails?.cacheCreationTokens].filter(e=>"number"==typeof e),a=o[0],r=i[0],s=[e.reasoning_tokens,e.reasoningTokens].filter(e=>"number"==typeof e)[0];return{...t,cacheReads:a,cacheWrites:r,reasoningTokens:s}}(t),r=void 0!==o.pricing.inputPerMTokens?i.input/1e6*o.pricing.inputPerMTokens:void 0,s=void 0!==o.pricing.outputPerMTokens?i.output/1e6*o.pricing.outputPerMTokens:void 0,n=void 0!==o.pricing.reasoningPerMTokens&&"number"==typeof a.reasoningTokens?a.reasoningTokens/1e6*o.pricing.reasoningPerMTokens:void 0,l=void 0!==o.pricing.cacheReadPerMTokens&&"number"==typeof a.cacheReads?a.cacheReads/1e6*o.pricing.cacheReadPerMTokens:void 0,d=void 0!==o.pricing.cacheWritePerMTokens&&"number"==typeof a.cacheWrites?a.cacheWrites/1e6*o.pricing.cacheWritePerMTokens:void 0,c=[r,s,n,l,d].filter(e=>"number"==typeof e);return{inputUSD:r,outputUSD:s,reasoningUSD:n,cacheReadUSD:l,cacheWriteUSD:d,totalUSD:c.length?c.reduce((e,t)=>e+t,0):void 0}}let uu=(0,X.createContext)(null),up=()=>{let e=(0,X.useContext)(uu);if(!e)throw Error("Context components must be used within Context");return e},um=({usedTokens:e,maxTokens:t,usage:o,modelId:i,...a})=>H.jsx(uu.Provider,{value:{usedTokens:e,maxTokens:t,usage:o,modelId:i},children:H.jsx(cQ,{closeDelay:0,openDelay:0,...a})}),ug=()=>{let{usedTokens:e,maxTokens:t}=up(),o=2*Math.PI*10;return(0,H.jsxs)("svg",{"aria-label":"Model context usage",height:"20",role:"img",style:{color:"currentcolor"},viewBox:"0 0 24 24",width:"20",children:[H.jsx("circle",{cx:12,cy:12,fill:"none",opacity:"0.25",r:10,stroke:"currentColor",strokeWidth:2}),H.jsx("circle",{cx:12,cy:12,fill:"none",opacity:"0.7",r:10,stroke:"currentColor",strokeDasharray:`${o} ${o}`,strokeDashoffset:o*(1-e/t),strokeLinecap:"round",strokeWidth:2,style:{transformOrigin:"center",transform:"rotate(-90deg)"}})]})},uh=({children:e,...t})=>{let{usedTokens:o,maxTokens:i}=up(),a=new Intl.NumberFormat("en-US",{style:"percent",maximumFractionDigits:1}).format(o/i);return H.jsx(cU,{asChild:!0,children:e??(0,H.jsxs)(d0.z,{type:"button",variant:"ghost",...t,children:[H.jsx("span",{className:"font-medium text-muted-foreground",children:a}),H.jsx(ug,{})]})})},uv=({className:e,...t})=>H.jsx(cX,{className:(0,dM.cn)("min-w-[240px] divide-y overflow-hidden p-0",e),...t}),uf=({children:e,className:t,...o})=>{let{usedTokens:i,maxTokens:a}=up(),r=i/a,s=new Intl.NumberFormat("en-US",{style:"percent",maximumFractionDigits:1}).format(r),n=new Intl.NumberFormat("en-US",{notation:"compact"}).format(i),l=new Intl.NumberFormat("en-US",{notation:"compact"}).format(a);return H.jsx("div",{className:(0,dM.cn)("w-full space-y-2 p-3",t),...o,children:e??(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)("div",{className:"flex items-center justify-between gap-3 text-xs",children:[H.jsx("p",{children:s}),(0,H.jsxs)("p",{className:"font-mono text-muted-foreground",children:[n," / ",l]})]}),H.jsx("div",{className:"space-y-2",children:H.jsx(ui,{className:"bg-muted",value:100*r})})]})})},ux=({children:e,className:t,...o})=>H.jsx("div",{className:(0,dM.cn)("w-full p-3",t),...o,children:e}),ub=({className:e,children:t,...o})=>{let{usage:i,modelId:a}=up(),r=i?.inputTokens??0;if(t)return t;if(!r)return null;let s=a?uc({modelId:a,usage:{input:r,output:0}}).totalUSD:void 0,n=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(s??0);return(0,H.jsxs)("div",{className:(0,dM.cn)("flex items-center justify-between text-xs",e),...o,children:[H.jsx("span",{className:"text-muted-foreground",children:"Input"}),H.jsx(uI,{costText:n,tokens:r})]})},uk=({className:e,children:t,...o})=>{let{usage:i,modelId:a}=up(),r=i?.outputTokens??0;if(t)return t;if(!r)return null;let s=a?uc({modelId:a,usage:{input:0,output:r}}).totalUSD:void 0,n=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(s??0);return(0,H.jsxs)("div",{className:(0,dM.cn)("flex items-center justify-between text-xs",e),...o,children:[H.jsx("span",{className:"text-muted-foreground",children:"Output"}),H.jsx(uI,{costText:n,tokens:r})]})},uy=({className:e,children:t,...o})=>{let{usage:i,modelId:a}=up(),r=i?.reasoningTokens??0;if(t)return t;if(!r)return null;let s=a?uc({modelId:a,usage:{reasoningTokens:r}}).totalUSD:void 0,n=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(s??0);return(0,H.jsxs)("div",{className:(0,dM.cn)("flex items-center justify-between text-xs",e),...o,children:[H.jsx("span",{className:"text-muted-foreground",children:"Reasoning"}),H.jsx(uI,{costText:n,tokens:r})]})},uM=({className:e,children:t,...o})=>{let{usage:i,modelId:a}=up(),r=i?.cachedInputTokens??0;if(t)return t;if(!r)return null;let s=a?uc({modelId:a,usage:{cacheReads:r,input:0,output:0}}).totalUSD:void 0,n=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(s??0);return(0,H.jsxs)("div",{className:(0,dM.cn)("flex items-center justify-between text-xs",e),...o,children:[H.jsx("span",{className:"text-muted-foreground",children:"Cache"}),H.jsx(uI,{costText:n,tokens:r})]})},uI=({tokens:e,costText:t})=>(0,H.jsxs)("span",{children:[void 0===e?"—":new Intl.NumberFormat("en-US",{notation:"compact"}).format(e),t?(0,H.jsxs)("span",{className:"ml-2 text-muted-foreground",children:["• ",t]}):null]});var uw=o(53982),uS=o(48998),uA=o(54659),uT=o(91470),uP=o(67048),uN=o(941),uO=o(51602);let u_=({className:e,...t})=>H.jsx(d7.zF,{className:(0,dM.cn)("not-prose mb-4 w-full rounded-md border",e),...t}),uz=e=>{let t={"input-streaming":H.jsx(uw.Z,{className:"size-4 mr-2"}),"input-available":H.jsx(uS.Z,{className:"size-4 animate-pulse mr-2"}),"output-available":H.jsx(uA.Z,{className:"size-4 text-green-600 mr-2"}),"output-error":H.jsx(uT.Z,{className:"size-4 text-red-600 mr-2"})};return(0,H.jsxs)(d6.C,{className:"rounded-full text-xs",variant:"secondary",children:[t[e],{"input-streaming":"Pending","input-available":"Running","output-available":"Completed","output-error":"Error"}[e]]})},uE=({className:e,type:t,state:o,...i})=>(0,H.jsxs)(d7.wy,{className:(0,dM.cn)("flex w-full items-center justify-between gap-4 p-3",e),...i,children:[(0,H.jsxs)("div",{className:"flex items-center gap-2",children:[H.jsx(uP.Z,{className:"size-4 text-muted-foreground"}),H.jsx("span",{className:"font-medium text-sm",children:t}),uz(o)]}),H.jsx(uN.Z,{className:"size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180"})]}),uq=({className:e,...t})=>H.jsx(d7.Fw,{className:(0,dM.cn)("data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...t}),uB=({className:e,input:t,...o})=>(0,H.jsxs)("div",{className:(0,dM.cn)("space-y-2 overflow-hidden p-4",e),...o,children:[H.jsx("h4",{className:"font-medium text-muted-foreground text-xs uppercase tracking-wide",children:"Parameters"}),H.jsx("div",{className:"rounded-md bg-muted/50",children:H.jsx(uO.d,{code:JSON.stringify(t,null,2),language:"json"})})]}),uj=({className:e,output:t,errorText:o,...i})=>t||o?(0,H.jsxs)("div",{className:(0,dM.cn)("space-y-2 p-4",e),...i,children:[H.jsx("h4",{className:"font-medium text-muted-foreground text-xs tracking-wide",children:o?"Error":"Result"}),(0,H.jsxs)("div",{className:(0,dM.cn)("overflow-x-auto rounded-md text-xs [&_table]:w-full p-5",o?"bg-destructive/10 text-destructive":"bg-muted/50 text-foreground"),children:[o&&H.jsx("div",{children:o}),t&&H.jsx("div",{children:t})]})]}):H.jsx(H.Fragment,{});var uC=o(65304),uR=o(87599),uD=o(36931),uL=o(14331),u$=o(3574),uZ=o(2424),uF=o(62288),uQ=o(54432),uG=o(88307),uU=o(59593),uV=o(12714),uK=o(52227),uW=o(3151),uJ=o(65685);function uY({open:e,onOpenChange:t,onSelectPrompt:o,agentId:i}){let[a,r]=(0,X.useState)(""),s=[];a&&s.push({or:[{name:{contains:a}},{description:{contains:a}},{content:{contains:a}}]});let{data:n,loading:l}=(0,uK.Sh)({page:1,limit:50,filters:s,sort:{field:"favorite_count",direction:"DESC"}}),d=n?.prompt_libraryPagination?.items||[],c=i?d.filter(e=>e.assigned_agents&&e.assigned_agents.includes(i)):[],u=i?d.filter(e=>!e.assigned_agents||!e.assigned_agents.includes(i)):d,p=e=>{o(e),t(!1),r("")};return H.jsx(uF.Vq,{open:e,onOpenChange:t,children:(0,H.jsxs)(uF.cZ,{className:"max-w-2xl max-h-[80vh]",children:[(0,H.jsxs)(uF.fK,{children:[H.jsx(uF.$N,{children:"Select a Prompt"}),H.jsx(uF.Be,{children:"Choose a prompt template to insert into your message"})]}),(0,H.jsxs)("div",{className:"relative",children:[H.jsx(uG.Z,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),H.jsx(uQ.I,{placeholder:"Search prompts...",value:a,onChange:e=>r(e.target.value),className:"pl-10"})]}),H.jsx(uJ.x,{className:"h-[400px] pr-4",children:l?H.jsx("div",{className:"space-y-3",children:[1,2,3].map(e=>H.jsx(uC.O,{className:"h-24 w-full"},e))}):(0,H.jsxs)("div",{className:"space-y-4",children:[c.length>0&&(0,H.jsxs)("div",{children:[(0,H.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[H.jsx(uU.Z,{className:"h-4 w-4 text-yellow-500"}),H.jsx("h3",{className:"text-sm font-medium",children:"Recommended for this agent"})]}),H.jsx("div",{className:"space-y-2",children:c.map(e=>H.jsx(uH,{prompt:e,onSelect:p},e.id))})]}),u.length>0&&(0,H.jsxs)("div",{children:[c.length>0&&H.jsx("h3",{className:"text-sm font-medium mb-2",children:"All Prompts"}),H.jsx("div",{className:"space-y-2",children:u.map(e=>H.jsx(uH,{prompt:e,onSelect:p},e.id))})]}),0===d.length&&!l&&(0,H.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[H.jsx(dW.Z,{className:"h-12 w-12 text-muted-foreground mb-3"}),H.jsx("h3",{className:"text-lg font-medium",children:"No prompts found"}),H.jsx("p",{className:"text-sm text-muted-foreground",children:a?"Try a different search term":"Create your first prompt in the Prompt Library"})]})]})})]})})}function uH({prompt:e,onSelect:t}){let o=(0,uW.H)(e.content);return(0,H.jsxs)("button",{onClick:()=>t(e),className:"w-full text-left p-3 rounded-lg border hover:bg-accent transition-colors",children:[(0,H.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-1",children:[H.jsx("h4",{className:"font-medium text-sm",children:e.name}),(0,H.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground flex-shrink-0",children:[(0,H.jsxs)("div",{className:"flex items-center gap-0.5",children:[H.jsx(uU.Z,{className:"h-3 w-3"}),H.jsx("span",{children:e.favorite_count||0})]}),(0,H.jsxs)("div",{className:"flex items-center gap-0.5",children:[H.jsx(uV.Z,{className:"h-3 w-3"}),H.jsx("span",{children:e.usage_count||0})]})]})]}),e.description&&H.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2 mb-2",children:e.description}),(0,H.jsxs)("div",{className:"flex flex-wrap gap-1",children:[o.length>0&&(0,H.jsxs)(d6.C,{variant:"outline",className:"text-xs",children:[o.length," variable",1!==o.length?"s":""]}),e.tags?.slice(0,2).map(e=>H.jsx(d6.C,{variant:"secondary",className:"text-xs",children:e},e)),e.tags&&e.tags.length>2&&(0,H.jsxs)(d6.C,{variant:"secondary",className:"text-xs",children:["+",e.tags.length-2]})]})]})}var uX=o(31048);function u0(e){return e?e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):""}function u2({open:e,onOpenChange:t,variables:o,promptName:i,onSubmit:a}){let[r,s]=(0,X.useState)({}),n=(e,t)=>{s(o=>({...o,[e]:t}))},l=o.every(e=>r[e]?.trim());return H.jsx(uF.Vq,{open:e,onOpenChange:t,children:(0,H.jsxs)(uF.cZ,{className:"max-w-md",children:[(0,H.jsxs)(uF.fK,{children:[H.jsx(uF.$N,{children:"Fill in Variables"}),(0,H.jsxs)(uF.Be,{children:['Complete the following fields for "',i,'"']})]}),H.jsx("div",{className:"space-y-4 py-4",children:o.map(e=>(0,H.jsxs)("div",{className:"space-y-2",children:[H.jsx(uX._,{htmlFor:e,children:u0(e)}),H.jsx(uQ.I,{id:e,placeholder:`Enter ${u0(e).toLowerCase()}...`,value:r[e]||"",onChange:t=>n(e,t.target.value)})]},e))}),(0,H.jsxs)(uF.cN,{children:[H.jsx(d0.z,{variant:"outline",onClick:()=>t(!1),children:"Cancel"}),H.jsx(d0.z,{onClick:()=>{a(r),s({})},disabled:!l,children:"Insert Prompt"})]})]})})}function u1({session:e,agent:t,initialPromptId:o}){let[i,a]=(0,X.useState)(null),r=X.useContext(dK.E);(0,d3.d)();let{theme:s}=(0,u$.F)(),[n,l]=(0,X.useState)(null),[d,c]=(0,X.useState)(null),{user:u}=(0,X.useContext)(dk.S),[p,m]=(0,X.useState)(null),[g,h]=(0,X.useState)(!1),[v,f]=(0,X.useState)(""),[x,b]=(0,X.useState)([]),k=X.useRef(null),{toast:y}=(0,dH.pm)(),[M,I]=(0,X.useState)(!1),[w,S]=(0,X.useState)(!1),[A,T]=(0,X.useState)(null),[P]=(0,uK.VR)(),[N,O]=(0,X.useState)({rights_mode:e?.rights_mode||"private",users:e?.RBAC?.users||[],roles:e?.RBAC?.roles||[],projects:e?.RBAC?.projects||[]}),_=(0,ei.aM)(dU.L5,{variables:{id:e.created_by},skip:!e.created_by}),{data:z}=(0,ei.aM)(dU.X0,{variables:{id:o},skip:!o}),[E,q]=(0,X.useState)(!1),[B,j]=(0,ea.D)(dU.r1),[C,R]=(0,X.useState)({totalTokens:0,reasoningTokens:0,inputTokens:0,outputTokens:0,cachedInputTokens:0});(0,ei.aM)(dU.N,{returnPartialData:!0,fetchPolicy:"network-only",nextFetchPolicy:"network-only",variables:{page:1,limit:50,filters:{session:{eq:e.id}}},onCompleted:e=>{e?.agent_messagesPagination&&Q(e?.agent_messagesPagination.items.map(e=>JSON.parse(e.content)))}});let{messages:D,sendMessage:L,status:$,stop:Z,regenerate:F,setMessages:Q,addToolResult:G}=function({experimental_throttle:e,resume:t=!1,...o}={}){let i=(0,X.useRef)("chat"in o?o.chat:new db(o));("chat"in o&&o.chat!==i.current||"id"in o&&i.current.id!==o.id)&&(i.current="chat"in o?o.chat:new db(o));let a="id"in o?o.id:null,r=(0,X.useCallback)(t=>i.current["~registerMessagesCallback"](t,e),[e,a]),s=(0,X.useSyncExternalStore)(r,()=>i.current.messages,()=>i.current.messages),n=(0,X.useSyncExternalStore)(i.current["~registerStatusCallback"],()=>i.current.status,()=>i.current.status),l=(0,X.useSyncExternalStore)(i.current["~registerErrorCallback"],()=>i.current.error,()=>i.current.error),d=(0,X.useCallback)(e=>{"function"==typeof e&&(e=e(i.current.messages)),i.current.messages=e},[i]);return(0,X.useEffect)(()=>{t&&i.current.resumeStream()},[t,i]),{id:i.current.id,messages:s,setMessages:d,sendMessage:i.current.sendMessage,regenerate:i.current.regenerate,clearError:i.current.clearError,stop:i.current.stop,error:l,resumeStream:i.current.resumeStream,status:n,addToolResult:i.current.addToolResult}}({sendAutomaticallyWhen:sq,experimental_throttle:50,async onToolCall({toolCall:e}){if(!e.dynamic&&"getLocation"===e.toolName){let t=["New York","Los Angeles","Chicago","San Francisco"];G({tool:"confirm-tool-call",toolCallId:e.toolCallId,output:t[Math.floor(Math.random()*t.length)]})}},onError:e=>{console.log("error!!",e?.message);try{let{message:t}=JSON.parse(e?.message);a(t)}catch(t){a(e.message)}},transport:new sE({api:`${r?.backend}${t.slug}/${t.id}`,prepareSendMessagesRequest:async({messages:t,id:o,body:i})=>{let a=await (0,dV.LP)();if(!a)throw Error("No valid session token available.");return{body:{...i,message:t[t.length-1],id:o,session:e.id},headers:{User:u.id,Session:e.id,Authorization:`Bearer ${a}`,Stream:"true"}}}})}),U=((0,X.useMemo)(()=>{let e=D?.filter(e=>"user"===e.role)||[],t=D?.filter(e=>"assistant"===e.role)||[];return e.length>=1&&t.length>=1},[D]),e=>{f(t=>t?`${t}
46
46
 
47
- ${e}`:e),k.current?.focus()}),V=async(e,t)=>{e.preventDefault(),L({text:v,files:n||[]},{body:{disabledTools:x}}),f("")},K=e=>{b(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},W=(0,d9.I)(e,u);return H.jsx("div",{className:"flex flex-col w-full",children:H.jsx("div",{className:"mx-auto relative size-full",children:(0,H.jsxs)("div",{className:"flex h-full w-full",children:[(0,H.jsxs)("div",{className:"flex flex-col flex-1 pb-6",children:[(0,H.jsxs)(d5.ri,{className:"overflow-y-hidden",children:[t.maxContextLength?H.jsx(dG.pn,{children:(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:(0,H.jsxs)("div",{className:"absolute w-full top-0",children:[H.jsx(ui,{className:"w-full rounded-none",value:C.totalTokens/t.maxContextLength*100}),(0,H.jsxs)("div",{className:"justify-between flex felx-row",children:[H.jsx("div",{}),(0,H.jsxs)(um,{maxTokens:t.maxContextLength||0,usedTokens:C.totalTokens,usage:{inputTokens:C.inputTokens,outputTokens:C.outputTokens,totalTokens:C.totalTokens,cachedInputTokens:C.cachedInputTokens,reasoningTokens:C.reasoningTokens},children:[H.jsx(uh,{}),(0,H.jsxs)(uv,{children:[H.jsx(uf,{}),(0,H.jsxs)(ux,{children:[H.jsx(ub,{}),H.jsx(uk,{}),H.jsx(uy,{}),H.jsx(uM,{})]})]})]})]})]})}),H.jsx(dG._v,{children:(0,H.jsxs)("p",{children:[Intl.NumberFormat("en-US").format(C.totalTokens)," / ",Intl.NumberFormat("en-US").format(t.maxContextLength)," tokens in the context window used."]})})]})}):null,D?.length===0?H.jsx("div",{className:"size-full flex justify-center items-center",children:(0,H.jsxs)("div",{className:"flex flex-col gap-4 items-center max-w-2xl w-full px-4 my-auto",children:[H.jsx(uZ.default,{alt:"Logo",width:120,height:120,className:"h-30 w-40 object-contain"}),H.jsx("p",{className:"text-center text-lg text-muted-foreground",children:"How can I help you today?"}),H.jsx(uL.Z,{agent:t,status:$,className:"w-80"})]})}):null,(0,H.jsxs)(d5.iG,{className:"px-6",children:[D?.length>0&&H.jsx(uR.K,{messages:D,config:{marginTopFirstMessage:"mt-12"},status:$,onRegenerate:F,onAddToolResult:G,UntypedToolPartComponent:u5,addToContext:e=>{c([...d||[],e])},writeAccess:W}),"streaming"===$?H.jsx(dw,{}):null]})]}),!W&&H.jsx("div",{className:"px-6 mx-auto mt-3",children:H.jsx(d6.C,{variant:"outline",children:"Read access only"})}),i&&H.jsx("div",{className:"mx-5",children:(0,H.jsxs)(eo.bZ,{className:"mb-3",variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),H.jsx(eo.X,{children:i})]})}),W&&(0,H.jsxs)("form",{onSubmit:V,className:"px-6 border-input border rounded flex mx-5 p-5 flex-col gap-2",children:[(0,H.jsxs)("div",{className:"items-center flex relative gap-2 w-full",children:[r?.fileUploads?.s3endpoint&&H.jsx(ce.ZP,{id:`chat-${e.id}`,selectionLimit:10,allowedFileTypes:[...t.capabilities?.audio||[],...t.capabilities?.video||[],...t.capabilities?.files||[],...t.capabilities?.images||[]],dependencies:[],onConfirm:e=>{c(e)}}),H.jsx(dG.pn,{children:(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:H.jsx(d0.z,{type:"button",variant:"outline",size:"icon",className:"shrink-0",onClick:()=>I(!0),children:H.jsx(dW.Z,{className:"h-5 w-5 text-muted-foreground"})})}),H.jsx(dG._v,{children:H.jsx("p",{children:"Insert prompt from library"})})]})}),H.jsx(dQ,{autoComplete:"off",autoFocus:!0,minRows:1,value:v,ref:k,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),V(e))},onChange:e=>f(e.target.value),name:"message",placeholder:"Ask me anything...",className:"max-h-40 px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 w-full items-center h-28 resize-none overflow-hidden dark:bg-card/35"}),"streaming"!==$?H.jsx(d0.z,{className:"shrink-0",variant:"secondary",size:"icon",disabled:"submitted"===$||!v?.trim(),children:H.jsx(dJ,{className:" size-6 text-muted-foreground"})}):H.jsx(d0.z,{className:"shrink-0",variant:"secondary",size:"icon",onClick:Z,children:H.jsx(dy.wNq,{className:"size-6 text-muted-foreground"})})]}),H.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-3",children:d?.map(e=>H.jsx(ce.jU,{s3Key:e,disabled:!0,active:!1,onRemove:()=>{c(d?.filter(t=>t!==e))}}))})]}),H.jsx(dX.x,{isOpen:g,onClose:()=>h(!1),messages:D||[],sessionTitle:e.title}),H.jsx(uY,{open:M,onOpenChange:I,onSelectPrompt:e=>{(0,uW.H)(e.content).length>0?(T(e),S(!0)):(U(e.content),P({variables:{id:e.id,usage_count:(e.usage_count||0)+1}}))},agentId:t.id}),A&&H.jsx(u2,{open:w,onOpenChange:S,variables:(0,uW.H)(A.content),promptName:A.name,onSubmit:e=>{A&&(U(function(e,t){if(!e)return"";if(!t||0===Object.keys(t).length)return e;let o=e;for(let[e,i]of Object.entries(t)){let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=RegExp(`\\{\\{${t}\\}\\}`,"g");o=o.replace(a,i||"")}return o}(A.content,e)),P({variables:{id:A.id,usage_count:(A.usage_count||0)+1}}),S(!1),T(null))}})]}),W&&(0,H.jsxs)("div",{className:"w-80 border-l bg-muted/20 p-4 space-y-4",children:[D?.length>0&&H.jsx("div",{children:H.jsx(uL.Z,{agent:t,status:$,className:"w-80"})}),H.jsx("div",{children:H.jsx("p",{className:"text-sm font-medium text-center",children:t.name})}),t.description&&H.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t.description}),H.jsx("hr",{className:"my-2"}),H.jsx("div",{className:"mt-1",children:(0,H.jsxs)("div",{className:"border rounded",children:[_.loading&&(0,H.jsxs)("div",{className:"flex flex-row justify-between p-3",children:[H.jsx("p",{className:"text-sm font-medium",children:"Session created by"}),H.jsx(d8.g,{className:"ml-2"})]}),_.data?.userById&&!_.loading&&(0,H.jsxs)("div",{className:"flex flex-row justify-between p-3",children:[H.jsx("p",{className:"text-sm font-medium",children:"Session created by"}),H.jsx("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:H.jsx("p",{className:"text-sm font-medium capitalize",children:_.data.userById.name})})]})]})}),(0,H.jsxs)("div",{children:[H.jsx("p",{className:"text-xs font-medium text-muted-foreground pt-2",children:"You can disable tools for individual messages in this session by clicking the switch:"}),H.jsx(dG.pn,{children:H.jsx("div",{className:"space-y-1 pt-2",children:t.tools&&t.tools.length>0?t.tools.map(e=>{let t=!x.includes(e.id);return(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:(0,H.jsxs)("div",{className:"p-2 rounded-md border text-xs bg-background flex items-center justify-between",children:[H.jsx("p",{className:"font-medium flex items-center gap-2",children:e.name}),H.jsx(d2.r,{checked:t,onCheckedChange:()=>K(e.id)})]})}),H.jsx(dG._v,{children:H.jsx("p",{className:"max-w-[200px] text-wrap",children:e.description})})]},e.name)}):H.jsx("p",{className:"text-xs text-muted-foreground",children:"No tools enabled."})})})]}),H.jsx("div",{className:"mt-1",children:(0,H.jsxs)(d7.zF,{className:"border rounded",children:[H.jsx(d1.Ol,{className:"px-3 py-1",children:(0,H.jsxs)("div",{className:"flex items-center justify-between",children:[H.jsx("div",{className:"flex flex-col",children:(0,H.jsxs)("p",{className:"text-sm font-medium",children:["Access control (",e.rights_mode,")"]})}),H.jsx(d7.wy,{asChild:!0,children:(0,H.jsxs)(d0.z,{variant:"ghost",size:"icon",className:"size-8",children:[H.jsx(dY.Z,{className:"size-4"}),H.jsx("span",{className:"sr-only",children:"Toggle"})]})})]})}),H.jsx(d7.Fw,{children:(0,H.jsxs)(d1.aY,{className:"space-y-4 p-3",children:[H.jsx(d4.P,{allowedModes:["private","users","roles","projects"],initialRightsMode:e.rights_mode,initialUsers:e.RBAC?.users,initialRoles:e.RBAC?.roles,initialProjects:e.RBAC?.projects,onChange:(e,t,o,i)=>{O({rights_mode:e,users:t,roles:o,projects:i})}}),(0,H.jsxs)(d0.z,{disabled:j.loading,onClick:()=>{B({variables:{id:e.id,rights_mode:N.rights_mode,RBAC:{users:N.users,roles:N.roles,projects:N.projects}}})},children:["Save access rights ",j.loading&&H.jsx(d8.g,{className:"ml-2"})," "]})]})})]})})]})]})})})}let u5=({untypedToolPart:e,callId:t,addToContext:o})=>{let i=e.output;console.log("output",i);let a=e.type?.replace(/ /g,"-");return a=a?.replace(/tool-/g,""),a=a?.replace(/_/g," "),a=a?.charAt(0).toUpperCase()+a?.slice(1),(0,H.jsxs)(u_,{className:"mt-3",defaultOpen:!1,children:[H.jsx(uE,{className:"capitalize",type:a,state:e.state}),(0,H.jsxs)(uq,{children:[H.jsx(uB,{input:e.input}),i?.items?.length?H.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-3 px-4 pb-4",children:i.items.map(e=>H.jsx(ce.jU,{addToContext:e=>{o(e)},s3Key:e,disabled:!0,active:!1}))}):H.jsx(uj,{output:i?H.jsx(uD.H,{children:"string"==typeof i?i:JSON.stringify(i,null,2)}):!e.errorText&&H.jsx(uC.O,{className:"h-4 w-full"}),errorText:e.errorText})]})]},t)},u3="force-dynamic";function u4({params:e}){let t=(0,et.useSearchParams)().get("promptId"),{data:o,loading:i,error:a}=(0,ei.aM)(dU.as,{variables:{id:e.agent}}),{data:r,loading:s,error:n}=(0,ei.aM)(dU.lk,{returnPartialData:!0,fetchPolicy:"network-only",nextFetchPolicy:"network-only",variables:{id:e.session}});return s||i?H.jsx("div",{children:H.jsx(uC.O,{className:"w-full h-full"})}):n||a?(0,H.jsxs)(eo.bZ,{variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),(0,H.jsxs)(eo.X,{children:["Error loading agent ",a?.message||n?.message,"."]})]}):o?.agentById&&r?.agent_sessionById?H.jsx(u1,{session:r?.agent_sessionById,agent:o.agentById,initialPromptId:t||void 0}):(0,H.jsxs)(eo.bZ,{variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),H.jsx(eo.X,{children:"Agent or session not found."})]})}},30574:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>a});var i=o(10326);function a({children:e,params:t}){return i.jsx(i.Fragment,{children:e})}o(17577)},14331:(e,t,o)=>{"use strict";o.d(t,{Z:()=>l});var i=o(10326),a=o(19245),r=o(20108),s=o(77961);let n=({agent:e,status:t,className:o})=>{let{data:n}=(0,r.a)({queryKey:["defaultAnimation","idle"],queryFn:async()=>(await fetch("/agent-idle.json")).json(),staleTime:36e5,enabled:!e.animation_idle}),{data:l}=(0,r.a)({queryKey:["defaultAnimation","responding"],queryFn:async()=>(await fetch("/agent-responding.json")).json(),staleTime:36e5,enabled:!e.animation_responding}),{data:d}=(0,r.a)({queryKey:["customAnimation",e.animation_idle],queryFn:async()=>{if(!e.animation_idle)return null;let t=await (0,s.NF)(e.animation_idle);return(await fetch(t)).json()},enabled:!!e.animation_idle,staleTime:3e5}),{data:c}=(0,r.a)({queryKey:["customAnimation",e.animation_responding],queryFn:async()=>{if(!e.animation_responding)return null;let t=await (0,s.NF)(e.animation_responding);return(await fetch(t)).json()},enabled:!!e.animation_responding,staleTime:3e5}),{View:u}=(0,a.kJ)((()=>{switch(t){case"submitted":case"ready":case"error":default:return{animationData:d||n,loop:!0,autoplay:!0};case"streaming":return{animationData:c||l,loop:!0,autoplay:!0}}})());return i.jsx(i.Fragment,{children:i.jsx("div",{className:"",children:i.jsx("div",{className:o,children:u})})})},l=({agent:e,status:t,className:o})=>i.jsx(n,{className:o,agent:e,status:t})},33261:(e,t,o)=>{"use strict";o.d(t,{r:()=>n});var i=o(10326),a=o(41959),r=o(17577),s=o(77863);let n=r.forwardRef(({className:e,...t},o)=>i.jsx(a.fC,{className:(0,s.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:o,children:i.jsx(a.bU,{className:(0,s.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));n.displayName=a.fC.displayName},52227:(e,t,o)=>{"use strict";o.d(t,{EE:()=>n,Lq:()=>m,Sh:()=>s,VR:()=>c,er:()=>l,iJ:()=>d});var i=o(39167),a=o(18753),r=o(42270);let s=e=>(0,i.aM)(r.xx,{variables:{page:e?.page??1,limit:e?.limit??20,filters:e?.filters??[],sort:e?.sort??{field:"updatedAt",direction:"DESC"}}}),n=()=>(0,a.D)(r.Iv,{refetchQueries:[{query:r.xx,variables:{page:1,limit:20}}]}),l=()=>(0,a.D)(r.jA),d=()=>(0,a.D)(r.Ll,{refetchQueries:[{query:r.xx,variables:{page:1,limit:20}}]}),c=()=>(0,a.D)(r.re),u=()=>(0,a.D)(r.Nl),p=()=>(0,a.D)(r.m8),m=()=>{let[e]=u(),[t]=p(),[o]=(0,a.D)(r.UK);return{toggleFavorite:async(i,a,r,s,n)=>{r&&n?(await t({variables:{id:n}}),await o({variables:{id:i,favorite_count:Math.max(0,s-1)}})):(await e({variables:{user_id:a,prompt_id:i}}),await o({variables:{id:i,favorite_count:s+1}}))}}}},3151:(e,t,o)=>{"use strict";function i(e){if(!e)return[];let t=e.matchAll(/\{\{([a-zA-Z0-9_]+)\}\}/g),o=new Set;for(let e of Array.from(t))o.add(e[1]);return Array.from(o).sort()}o.d(t,{H:()=>i})},68301:e=>{e.exports=function(e,t){let o;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let i=0;return function(...a){clearTimeout(o);let r=Date.now(),s=t-(r-i);s<=0?(i=r,e.apply(this,a)):o=setTimeout(()=>{i=Date.now(),e.apply(this,a)},s)}}},40281:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>r,dynamic:()=>a});var i=o(68570);let a=(0,i.createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/[session]/page.tsx#dynamic`),r=(0,i.createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/[session]/page.tsx#default`)},25436:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>i});let i=(0,o(68570).createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/layout.tsx#default`)}};var t=require("../../../../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),i=t.X(0,[9276,3543,9049,590,814,931,6812,7344,1729,3738,5237,8212,108,4552,3679,3702,6226,38,8315,1051,7944,2270,5600,8050,510,2948,3575,3434],()=>o(91223));module.exports=i})();
47
+ ${e}`:e),k.current?.focus()}),V=async(e,t)=>{e.preventDefault(),L({text:v,files:n||[]},{body:{disabledTools:x}}),f(""),l(null),c(null)},K=e=>{b(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},W=(0,d9.I)(e,u);return H.jsx("div",{className:"flex flex-col w-full mx-auto relative size-full",children:H.jsx("div",{className:"mx-auto relative size-full",children:(0,H.jsxs)("div",{className:"flex h-full w-full max-h-[calc(100vh)] overflow-y-auto overflow-x-hidden",children:[(0,H.jsxs)("div",{className:"flex flex-col flex-1 pb-6",children:[(0,H.jsxs)(d5.ri,{className:"overflow-y-hidden",children:[t.maxContextLength?H.jsx(dG.pn,{children:(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:(0,H.jsxs)("div",{className:"absolute w-full top-0",children:[H.jsx(ui,{className:"w-full rounded-none",value:C.totalTokens/t.maxContextLength*100}),(0,H.jsxs)("div",{className:"justify-between flex felx-row",children:[H.jsx("div",{}),(0,H.jsxs)(um,{maxTokens:t.maxContextLength||0,usedTokens:C.totalTokens,usage:{inputTokens:C.inputTokens,outputTokens:C.outputTokens,totalTokens:C.totalTokens,cachedInputTokens:C.cachedInputTokens,reasoningTokens:C.reasoningTokens},children:[H.jsx(uh,{}),(0,H.jsxs)(uv,{children:[H.jsx(uf,{}),(0,H.jsxs)(ux,{children:[H.jsx(ub,{}),H.jsx(uk,{}),H.jsx(uy,{}),H.jsx(uM,{})]})]})]})]})]})}),H.jsx(dG._v,{children:(0,H.jsxs)("p",{children:[Intl.NumberFormat("en-US").format(C.totalTokens)," / ",Intl.NumberFormat("en-US").format(t.maxContextLength)," tokens in the context window used."]})})]})}):null,D?.length===0?H.jsx("div",{className:"size-full flex justify-center items-center",children:(0,H.jsxs)("div",{className:"flex flex-col gap-4 items-center max-w-2xl w-full px-4 my-auto",children:[H.jsx(uZ.default,{alt:"Logo",width:120,height:120,className:"h-30 w-40 object-contain"}),H.jsx("p",{className:"text-center text-lg text-muted-foreground",children:"How can I help you today?"}),H.jsx(uL.Z,{agent:t,status:$,className:"w-80"})]})}):null,(0,H.jsxs)(d5.iG,{className:"px-6",children:[D?.length>0&&H.jsx(uR.K,{messages:D,config:{marginTopFirstMessage:"mt-12"},status:$,onRegenerate:F,onAddToolResult:G,UntypedToolPartComponent:u5,addToContext:e=>{c([...d||[],e])},writeAccess:W}),"streaming"===$?H.jsx(dw,{}):null]})]}),!W&&H.jsx("div",{className:"px-6 mx-auto mt-3",children:H.jsx(d6.C,{variant:"outline",children:"Read access only"})}),i&&H.jsx("div",{className:"mx-5",children:(0,H.jsxs)(eo.bZ,{className:"mb-3",variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),H.jsx(eo.X,{children:i})]})}),W&&(0,H.jsxs)("form",{onSubmit:V,className:"px-6 border-input border rounded flex mx-5 p-5 flex-col gap-2",children:[(0,H.jsxs)("div",{className:"items-center flex relative gap-2 w-full",children:[r?.fileUploads?.s3endpoint&&H.jsx(ce.ZP,{id:`chat-${e.id}`,selectionLimit:10,allowedFileTypes:[...t.capabilities?.audio||[],...t.capabilities?.video||[],...t.capabilities?.files||[],...t.capabilities?.images||[]],dependencies:[],onConfirm:e=>{c(e)}}),H.jsx(dG.pn,{children:(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:H.jsx(d0.z,{type:"button",variant:"outline",size:"icon",className:"shrink-0",onClick:()=>I(!0),children:H.jsx(dW.Z,{className:"h-5 w-5 text-muted-foreground"})})}),H.jsx(dG._v,{children:H.jsx("p",{children:"Insert prompt from library"})})]})}),H.jsx(dQ,{autoComplete:"off",autoFocus:!0,minRows:1,value:v,ref:k,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),V(e))},onChange:e=>f(e.target.value),name:"message",placeholder:"Ask me anything...",className:"max-h-40 px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 w-full items-center h-28 resize-none overflow-hidden dark:bg-card/35"}),"streaming"!==$?H.jsx(d0.z,{className:"shrink-0",variant:"secondary",size:"icon",disabled:"submitted"===$||!v?.trim(),children:H.jsx(dJ,{className:" size-6 text-muted-foreground"})}):H.jsx(d0.z,{className:"shrink-0",variant:"secondary",size:"icon",onClick:Z,children:H.jsx(dy.wNq,{className:"size-6 text-muted-foreground"})})]}),H.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-3",children:d?.map(e=>H.jsx(ce.jU,{s3Key:e,disabled:!0,active:!1,onRemove:()=>{c(d?.filter(t=>t!==e))}}))})]}),H.jsx(dX.x,{isOpen:g,onClose:()=>h(!1),messages:D||[],sessionTitle:e.title}),H.jsx(uY,{open:M,onOpenChange:I,onSelectPrompt:e=>{(0,uW.H)(e.content).length>0?(T(e),S(!0)):(U(e.content),P({variables:{id:e.id,usage_count:(e.usage_count||0)+1}}))},agentId:t.id}),A&&H.jsx(u2,{open:w,onOpenChange:S,variables:(0,uW.H)(A.content),promptName:A.name,onSubmit:e=>{A&&(U(function(e,t){if(!e)return"";if(!t||0===Object.keys(t).length)return e;let o=e;for(let[e,i]of Object.entries(t)){let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=RegExp(`\\{\\{${t}\\}\\}`,"g");o=o.replace(a,i||"")}return o}(A.content,e)),P({variables:{id:A.id,usage_count:(A.usage_count||0)+1}}),S(!1),T(null))}})]}),W&&(0,H.jsxs)("div",{className:"w-80 border-l bg-muted/20 p-4 space-y-4",children:[D?.length>0&&H.jsx("div",{children:H.jsx(uL.Z,{agent:t,status:$,className:"w-80"})}),H.jsx("div",{children:H.jsx("p",{className:"text-sm font-medium text-center",children:t.name})}),t.description&&H.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t.description}),H.jsx("hr",{className:"my-2"}),H.jsx("div",{className:"mt-1",children:(0,H.jsxs)("div",{className:"border rounded",children:[_.loading&&(0,H.jsxs)("div",{className:"flex flex-row justify-between p-3",children:[H.jsx("p",{className:"text-sm font-medium",children:"Session created by"}),H.jsx(d8.g,{className:"ml-2"})]}),_.data?.userById&&!_.loading&&(0,H.jsxs)("div",{className:"flex flex-row justify-between p-3",children:[H.jsx("p",{className:"text-sm font-medium",children:"Session created by"}),H.jsx("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:H.jsx("p",{className:"text-sm font-medium capitalize",children:_.data.userById.name})})]})]})}),(0,H.jsxs)("div",{children:[H.jsx("p",{className:"text-xs font-medium text-muted-foreground pt-2",children:"You can disable tools for individual messages in this session by clicking the switch:"}),H.jsx(dG.pn,{children:H.jsx("div",{className:"space-y-1 pt-2",children:t.tools&&t.tools.length>0?t.tools.map(e=>{let t=!x.includes(e.id);return(0,H.jsxs)(dG.u,{children:[H.jsx(dG.aJ,{asChild:!0,children:(0,H.jsxs)("div",{className:"p-2 rounded-md border text-xs bg-background flex items-center justify-between",children:[H.jsx("p",{className:"font-medium flex items-center gap-2",children:e.name}),H.jsx(d2.r,{checked:t,onCheckedChange:()=>K(e.id)})]})}),H.jsx(dG._v,{children:H.jsx("p",{className:"max-w-[200px] text-wrap",children:e.description})})]},e.name)}):H.jsx("p",{className:"text-xs text-muted-foreground",children:"No tools enabled."})})})]}),H.jsx("div",{className:"mt-1",children:(0,H.jsxs)(d7.zF,{className:"border rounded",children:[H.jsx(d1.Ol,{className:"px-3 py-1",children:(0,H.jsxs)("div",{className:"flex items-center justify-between",children:[H.jsx("div",{className:"flex flex-col",children:(0,H.jsxs)("p",{className:"text-sm font-medium",children:["Access control (",e.rights_mode,")"]})}),H.jsx(d7.wy,{asChild:!0,children:(0,H.jsxs)(d0.z,{variant:"ghost",size:"icon",className:"size-8",children:[H.jsx(dY.Z,{className:"size-4"}),H.jsx("span",{className:"sr-only",children:"Toggle"})]})})]})}),H.jsx(d7.Fw,{children:(0,H.jsxs)(d1.aY,{className:"space-y-4 p-3",children:[H.jsx(d4.P,{allowedModes:["private","users","roles","projects"],initialRightsMode:e.rights_mode,initialUsers:e.RBAC?.users,initialRoles:e.RBAC?.roles,initialProjects:e.RBAC?.projects,onChange:(e,t,o,i)=>{O({rights_mode:e,users:t,roles:o,projects:i})}}),(0,H.jsxs)(d0.z,{disabled:j.loading,onClick:()=>{B({variables:{id:e.id,rights_mode:N.rights_mode,RBAC:{users:N.users,roles:N.roles,projects:N.projects}}})},children:["Save access rights ",j.loading&&H.jsx(d8.g,{className:"ml-2"})," "]})]})})]})})]})]})})})}let u5=({untypedToolPart:e,callId:t,addToContext:o})=>{let i=e.output;console.log("output",i);let a=e.type?.replace(/ /g,"-");return a=a?.replace(/tool-/g,""),a=a?.replace(/_/g," "),a=a?.charAt(0).toUpperCase()+a?.slice(1),(0,H.jsxs)(u_,{className:"mt-3",defaultOpen:!1,children:[H.jsx(uE,{className:"capitalize",type:a,state:e.state}),(0,H.jsxs)(uq,{children:[H.jsx(uB,{input:e.input}),H.jsx(uj,{output:i?H.jsx(uD.H,{children:"string"==typeof i?i:JSON.stringify(i,null,2)}):!e.errorText&&H.jsx(uC.O,{className:"h-4 w-full"}),errorText:e.errorText})]})]},t)},u3="force-dynamic";function u4({params:e}){let t=(0,et.useSearchParams)().get("promptId"),{data:o,loading:i,error:a}=(0,ei.aM)(dU.as,{variables:{id:e.agent}}),{data:r,loading:s,error:n}=(0,ei.aM)(dU.lk,{returnPartialData:!0,fetchPolicy:"network-only",nextFetchPolicy:"network-only",variables:{id:e.session}});return s||i?H.jsx("div",{children:H.jsx(uC.O,{className:"w-full h-full"})}):n||a?(0,H.jsxs)(eo.bZ,{variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),(0,H.jsxs)(eo.X,{children:["Error loading agent ",a?.message||n?.message,"."]})]}):o?.agentById&&r?.agent_sessionById?H.jsx(u1,{session:r?.agent_sessionById,agent:o.agentById,initialPromptId:t||void 0}):(0,H.jsxs)(eo.bZ,{variant:"destructive",children:[H.jsx(dy.LPM,{className:"size-4"}),H.jsx(eo.Cd,{children:"Error"}),H.jsx(eo.X,{children:"Agent or session not found."})]})}},30574:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>a});var i=o(10326);function a({children:e,params:t}){return i.jsx(i.Fragment,{children:e})}o(17577)},14331:(e,t,o)=>{"use strict";o.d(t,{Z:()=>l});var i=o(10326),a=o(19245),r=o(20108),s=o(77961);let n=({agent:e,status:t,className:o})=>{let{data:n}=(0,r.a)({queryKey:["defaultAnimation","idle"],queryFn:async()=>(await fetch("/agent-idle.json")).json(),staleTime:36e5,enabled:!e.animation_idle}),{data:l}=(0,r.a)({queryKey:["defaultAnimation","responding"],queryFn:async()=>(await fetch("/agent-responding.json")).json(),staleTime:36e5,enabled:!e.animation_responding}),{data:d}=(0,r.a)({queryKey:["customAnimation",e.animation_idle],queryFn:async()=>{if(!e.animation_idle)return null;let t=await (0,s.NF)(e.animation_idle);return(await fetch(t)).json()},enabled:!!e.animation_idle,staleTime:3e5}),{data:c}=(0,r.a)({queryKey:["customAnimation",e.animation_responding],queryFn:async()=>{if(!e.animation_responding)return null;let t=await (0,s.NF)(e.animation_responding);return(await fetch(t)).json()},enabled:!!e.animation_responding,staleTime:3e5}),{View:u}=(0,a.kJ)((()=>{switch(t){case"submitted":case"ready":case"error":default:return{animationData:d||n,loop:!0,autoplay:!0};case"streaming":return{animationData:c||l,loop:!0,autoplay:!0}}})());return i.jsx(i.Fragment,{children:i.jsx("div",{className:"",children:i.jsx("div",{className:o,children:u})})})},l=({agent:e,status:t,className:o})=>i.jsx(n,{className:o,agent:e,status:t})},33261:(e,t,o)=>{"use strict";o.d(t,{r:()=>n});var i=o(10326),a=o(41959),r=o(17577),s=o(77863);let n=r.forwardRef(({className:e,...t},o)=>i.jsx(a.fC,{className:(0,s.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:o,children:i.jsx(a.bU,{className:(0,s.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));n.displayName=a.fC.displayName},52227:(e,t,o)=>{"use strict";o.d(t,{EE:()=>n,Lq:()=>m,Sh:()=>s,VR:()=>c,er:()=>l,iJ:()=>d});var i=o(39167),a=o(18753),r=o(42270);let s=e=>(0,i.aM)(r.xx,{variables:{page:e?.page??1,limit:e?.limit??20,filters:e?.filters??[],sort:e?.sort??{field:"updatedAt",direction:"DESC"}}}),n=()=>(0,a.D)(r.Iv,{refetchQueries:[{query:r.xx,variables:{page:1,limit:20}}]}),l=()=>(0,a.D)(r.jA),d=()=>(0,a.D)(r.Ll,{refetchQueries:[{query:r.xx,variables:{page:1,limit:20}}]}),c=()=>(0,a.D)(r.re),u=()=>(0,a.D)(r.Nl),p=()=>(0,a.D)(r.m8),m=()=>{let[e]=u(),[t]=p(),[o]=(0,a.D)(r.UK);return{toggleFavorite:async(i,a,r,s,n)=>{r&&n?(await t({variables:{id:n}}),await o({variables:{id:i,favorite_count:Math.max(0,s-1)}})):(await e({variables:{user_id:a,prompt_id:i}}),await o({variables:{id:i,favorite_count:s+1}}))}}}},3151:(e,t,o)=>{"use strict";function i(e){if(!e)return[];let t=e.matchAll(/\{\{([a-zA-Z0-9_]+)\}\}/g),o=new Set;for(let e of Array.from(t))o.add(e[1]);return Array.from(o).sort()}o.d(t,{H:()=>i})},68301:e=>{e.exports=function(e,t){let o;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let i=0;return function(...a){clearTimeout(o);let r=Date.now(),s=t-(r-i);s<=0?(i=r,e.apply(this,a)):o=setTimeout(()=>{i=Date.now(),e.apply(this,a)},s)}}},40281:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>r,dynamic:()=>a});var i=o(68570);let a=(0,i.createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/[session]/page.tsx#dynamic`),r=(0,i.createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/[session]/page.tsx#default`)},25436:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>i});let i=(0,o(68570).createProxy)(String.raw`/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/chat/[agent]/layout.tsx#default`)}};var t=require("../../../../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),i=t.X(0,[9276,3543,9049,590,814,931,6812,7344,1729,3738,5237,8212,108,4552,3679,3702,6226,38,8315,1051,7944,2270,5600,8050,510,2948,3575,3434],()=>o(91223));module.exports=i})();