@ottocode/web-ui 0.1.197 → 0.1.198

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.
@@ -94,7 +94,7 @@ ${d.url}`).join(`
94
94
 
95
95
  `),maxHeight:"max-h-80",children:t.jsx("div",{className:"divide-y divide-border/50",children:I.map((d,D)=>t.jsxs("div",{className:"px-3 py-2 hover:bg-muted/20",children:[t.jsxs("a",{href:d.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-blue-600 dark:text-blue-400 hover:underline font-medium",children:[d.title,t.jsx(KA,{className:"h-3 w-3 flex-shrink-0"})]}),t.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:d.snippet}),t.jsx("p",{className:"text-xs text-muted-foreground/60 truncate mt-0.5",children:d.url})]},`${d.url}-${D}`))})}),I.length===0&&t.jsx(lA,{title:"results",maxHeight:"",children:t.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No results found"})})]})]});const c=n&&n.length>50?`${n.slice(0,50)}...`:n;return t.jsxs("div",{className:"text-xs",children:[t.jsxs(he,{toolName:"web fetch",isExpanded:g,onToggle:Q,isError:E,colorVariant:"purple",canExpand:!0,children:[c&&t.jsxs(t.Fragment,{children:[t.jsx(oA,{}),t.jsx("span",{className:"text-foreground/70 truncate min-w-0",title:n,children:c})]}),t.jsx(oA,{}),t.jsx(se,{children:o})]}),g&&E&&a&&t.jsx(vA,{error:a,stack:i,showStack:!0}),g&&!E&&t.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[t.jsx(lA,{title:"url",icon:t.jsx(To,{className:"h-3 w-3"}),copyText:n,maxHeight:"",children:t.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:t.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:underline",children:n})})}),l.content&&t.jsx(lA,{title:"content",copyText:l.content,maxHeight:"max-h-80",children:t.jsx("div",{className:"px-3 py-2 text-xs text-foreground/80 whitespace-pre-wrap break-words",children:l.content})}),!l.content&&t.jsx(lA,{title:"content",maxHeight:"",children:t.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No content returned"})})]})]})}function Tn({contentJson:e,debug:A,sessionId:g,onRetry:Q,onCompact:B}){const[s,o]=u.useState(!1),E=e.type==="balance_low"||e.errorType==="balance_low",a=e.type==="context_length_exceeded"||e.errorType==="context_length_exceeded";e.isRetryable;let i,C,I,l=!1;e.error&&typeof e.error=="object"?(i=e.error,i.message&&typeof i.message=="string"&&(C=i.message),i.type&&typeof i.type=="string"&&(I=i.type)):e.details&&typeof e.details=="object"?(i=e.details,e.message&&typeof e.message=="string"&&(C=e.message),e.type&&typeof e.type=="string"&&(I=e.type),e.isAborted===!0&&(l=!0)):(e.message&&typeof e.message=="string"&&(C=e.message),e.type&&typeof e.type=="string"&&(I=e.type),e.isAborted===!0&&(l=!0),i=e);let r;if(i?.responseBody&&typeof i.responseBody=="string")try{const h=JSON.parse(i.responseBody);h.error&&typeof h.error=="object"&&(r={type:typeof h.error.type=="string"?h.error.type:void 0,message:typeof h.error.message=="string"?h.error.message:void 0,code:typeof h.error.code=="string"?h.error.code:void 0})}catch{}const n=(r?.code==="model_not_supported"||r?.message?.toLowerCase().includes("model is not supported"))&&(String(i?.url??"").includes("githubcopilot.com")||e.type==="api_error");if(r?.message?.toLowerCase().includes("not accessible via the /chat/completions")&&String(i?.url??"").includes("githubcopilot.com")){const h=i?.requestBodyValues?.model;return t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"font-medium text-amber-600 dark:text-amber-400",children:"Model requires Responses API"}),t.jsx("p",{className:"text-sm text-foreground",children:h?t.jsxs(t.Fragment,{children:[t.jsx("code",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:String(h)})," ","is only available via the Responses API, which is not yet supported."]}):"This model is only available via the Responses API, which is not yet supported."}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Codex models (gpt-5.1-codex, gpt-5.2-codex, etc.) require the Responses API. Try a chat-compatible model like gpt-5, claude-sonnet-4, or gpt-4.1."})]}),Q&&t.jsx("div",{className:"pt-1",children:t.jsxs("button",{type:"button",onClick:Q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[t.jsx(PA,{className:"w-3 h-3"}),"Retry"]})})]})}if(n){const h=i?.requestBodyValues?.model;return t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"font-medium text-amber-600 dark:text-amber-400",children:"Model not available"}),t.jsx("p",{className:"text-sm text-foreground",children:h?t.jsxs(t.Fragment,{children:[t.jsx("code",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:String(h)})," ","is not available. You need a Copilot Pro (or higher) plan and the model must be enabled in your settings."]}):"The requested model is not available. You need a Copilot Pro (or higher) plan and the model must be enabled in your settings."}),t.jsxs("p",{className:"text-xs text-muted-foreground",children:["Enable models at"," ",t.jsx("a",{href:"https://github.com/settings/copilot",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground transition-colors",onClick:m=>{m.preventDefault(),Ze("https://github.com/settings/copilot")},children:"github.com/settings/copilot"})]})]}),Q&&t.jsx("div",{className:"pt-1",children:t.jsxs("button",{type:"button",onClick:Q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[t.jsx(PA,{className:"w-3 h-3"}),"Retry"]})})]})}if(E)return t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(it,{className:"h-4 w-4 text-amber-500"}),t.jsx("span",{className:"font-medium text-foreground",children:"Balance too low"})]}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Complete your top-up in the modal, then retry your request."}),Q&&t.jsx("div",{className:"pt-1",children:t.jsxs("button",{type:"button",onClick:Q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[t.jsx(PA,{className:"w-3 h-3"}),"Retry"]})})]});if(a)return t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(fQ,{className:"h-4 w-4 text-amber-500"}),t.jsx("span",{className:"font-medium text-foreground",children:"Context window exceeded"})]}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"The conversation is too long for the model. Compact to reduce context size, then retry."}),t.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[B&&t.jsxs("button",{type:"button",onClick:B,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[t.jsx(fQ,{className:"w-3 h-3"}),"Compact"]}),Q&&t.jsxs("button",{type:"button",onClick:Q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border text-foreground hover:bg-muted transition-colors",children:[t.jsx(PA,{className:"w-3 h-3"}),"Retry"]})]})]});const d=h=>{if(h==null)return t.jsx("span",{className:"text-muted-foreground",children:"null"});if(typeof h=="boolean")return t.jsx("span",{className:"text-amber-600 dark:text-amber-400",children:String(h)});if(typeof h=="number")return t.jsx("span",{className:"text-blue-600 dark:text-blue-400",children:h});if(typeof h=="string"){if(h.startsWith("{")||h.startsWith("["))try{const m=JSON.parse(h);return t.jsx("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs overflow-x-auto",children:t.jsx("code",{children:JSON.stringify(m,null,2)})})}catch{}return t.jsx("span",{className:"text-foreground",children:h})}return typeof h=="object"?t.jsx("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs overflow-x-auto",children:t.jsx("code",{children:JSON.stringify(h,null,2)})}):t.jsx("span",{className:"text-foreground",children:String(h)})},D=["name","statusCode","url","model","isRetryable","cause"],p=new Set;return t.jsxs("div",{className:"space-y-2 text-sm",children:[l&&t.jsx("div",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Request aborted"}),r?.message&&t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:"API Error:"}),t.jsx("div",{className:"text-foreground",children:r.message}),r.type&&t.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",r.type]})]}),!r?.message&&C&&t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:"Error:"}),t.jsx("div",{className:"text-foreground",children:C}),I&&t.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",I]})]}),Q&&t.jsx("div",{className:"pt-2",children:t.jsxs("button",{type:"button",onClick:Q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[t.jsx(PA,{className:"w-3 h-3"}),"Retry"]})}),i&&t.jsx("div",{className:"space-y-1.5",children:D.map(h=>{const m=i[h];return m==null?null:(p.add(h),t.jsxs("div",{className:"flex gap-2",children:[t.jsxs("span",{className:"font-medium text-muted-foreground min-w-[100px]",children:[h,":"]}),d(m)]},h))})}),i&&t.jsxs("div",{className:"mt-3 border-t border-border pt-2",children:[t.jsxs("button",{type:"button",onClick:()=>o(!s),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[s?t.jsx(ee,{className:"h-3 w-3"}):t.jsx(FA,{className:"h-3 w-3"}),s?"Hide":"View"," Raw Error Details"]}),s&&t.jsx("div",{className:"mt-2",children:t.jsx("pre",{className:"p-3 bg-muted/50 rounded text-xs overflow-x-auto max-h-96 overflow-y-auto",children:t.jsx("code",{children:JSON.stringify(i,null,2)})})})]}),A&&t.jsxs("details",{className:"mt-4 text-xs",children:[t.jsx("summary",{className:"cursor-pointer text-muted-foreground",children:"Debug Info"}),t.jsx("pre",{className:"mt-2 p-2 bg-muted/30 rounded overflow-x-auto",children:t.jsx("code",{children:JSON.stringify({contentJson:e,errorDetails:i,apiError:r},null,2)})})]})]})}function Ts(e){return e?new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function pg({session:e,onNavigate:A,compact:g}){return g?t.jsxs("button",{type:"button",onClick:()=>A?.(e.id),disabled:!A,className:"w-full text-left py-1 px-2 rounded text-xs hover:bg-muted/50 transition-colors flex items-center justify-between gap-2",children:[t.jsx("span",{className:"truncate text-foreground",children:e.title||"Untitled"}),A&&t.jsx(KA,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"})]}):t.jsxs("button",{type:"button",onClick:()=>A?.(e.id),disabled:!A,className:"w-full text-left p-2 rounded-md border border-border hover:bg-muted/50 transition-colors group",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("span",{className:"font-medium text-sm truncate text-foreground",children:e.title||"Untitled"}),A&&t.jsx(KA,{className:"w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground mt-1",children:[e.agent&&t.jsx("span",{className:"text-violet-600 dark:text-violet-400",children:e.agent}),e.agent&&e.provider&&t.jsx("span",{children:"·"}),e.provider&&t.jsx("span",{children:e.provider}),e.messageCount!==void 0&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsxs("span",{children:[e.messageCount," msgs"]})]}),e.createdAt&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsx("span",{children:Ts(e.createdAt)})]})]})]})}function EB({message:e,onNavigate:A,compact:g}){const Q="sessionId"in e?e.sessionId:"",B="sessionTitle"in e?e.sessionTitle:null,s="content"in e?e.content:"contentPreview"in e?e.contentPreview:"matchedContent"in e?e.matchedContent:"";return g?t.jsxs("button",{type:"button",onClick:()=>A?.(Q),disabled:!A||!Q,className:"w-full text-left py-1 px-2 rounded text-xs hover:bg-muted/50 transition-colors flex items-center justify-between gap-2",children:[t.jsx("span",{className:"truncate text-foreground/80",children:s?.slice(0,50)||B||Q.slice(0,8)}),A&&Q&&t.jsx(KA,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"})]}):t.jsxs("button",{type:"button",onClick:()=>A?.(Q),disabled:!A||!Q,className:"w-full text-left p-2 rounded-md border border-border hover:bg-muted/50 transition-colors group",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("span",{className:"text-xs text-muted-foreground",children:B||Q.slice(0,8)}),A&&Q&&t.jsx(KA,{className:"w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),s&&t.jsx("div",{className:"text-xs text-foreground/80 mt-1 line-clamp-2",children:s}),t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground mt-1",children:[e.role&&t.jsx("span",{className:"capitalize",children:e.role}),e.createdAt&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsx("span",{children:Ts(e.createdAt)})]})]})]})}function iB({args:e,toolName:A}){const g=(o,E)=>E==null||typeof E=="boolean"&&!E||Array.isArray(E)&&E.length===0?null:t.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded bg-muted text-muted-foreground",children:[t.jsxs("span",{className:"opacity-60",children:[o,":"]}),t.jsx("span",{className:"text-foreground/80",children:typeof E=="string"?E:JSON.stringify(E)})]},o),s=({query_sessions:["agent","sessionType","startDate","endDate"],query_messages:["sessionId","role","search","toolName"],search_history:["query"],get_session_context:["sessionId","includeMessages"],get_parent_session:["includeMessages"]}[A]||Object.keys(e).slice(0,3)).filter(o=>e[o]!==void 0&&e[o]!==null).map(o=>g(o,e[o])).filter(Boolean);return s.length===0?null:t.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap text-xs mb-2 pb-2 border-b border-border",children:[t.jsx(jo,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),s]})}function Yn({toolName:e,contentJson:A,toolDurationMs:g,isExpanded:Q,onToggle:B,onNavigateToSession:s,compact:o}){const E=A.result||{},a=A.args||{},i=typeof E=="object"&&"ok"in E&&E.ok===!1,C=i&&"error"in E&&typeof E.error=="string"?E.error:null,I=JA(g);if(e==="present_action"){const n=E.links||[],c=E.summary,d=E.title;return n.length===0&&!c?null:t.jsxs("div",{className:"mt-2 mb-1",children:[d&&t.jsx("div",{className:"text-sm font-medium text-foreground mb-1.5",children:d}),c&&t.jsxs("div",{className:"text-xs text-muted-foreground mb-2 flex items-center gap-1.5",children:[t.jsx(Yo,{className:"w-3.5 h-3.5 text-teal-500"}),t.jsx("span",{children:c})]}),n.length>0&&t.jsx("div",{className:"space-y-1.5",children:n.map(D=>t.jsxs("button",{type:"button",onClick:()=>s?.(D.sessionId),disabled:!s,className:"w-full text-left px-3 py-2 rounded-lg border border-teal-500/30 bg-teal-500/5 hover:bg-teal-500/10 transition-colors group flex items-center justify-between gap-2",children:[t.jsxs("div",{children:[t.jsx("div",{className:"font-medium text-sm text-foreground",children:D.title}),D.description&&t.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:D.description})]}),s&&t.jsx(KA,{className:"w-4 h-4 text-teal-600 dark:text-teal-400 opacity-60 group-hover:opacity-100 transition-opacity flex-shrink-0"})]},D.sessionId))})]})}const l=()=>{switch(e){case"query_sessions":{const n=E.sessions||[],c=E.total;return`${n.length} session${n.length!==1?"s":""}${c?` of ${c}`:""}`}case"query_messages":{const n=E.messages||[];return`${n.length} message${n.length!==1?"s":""}`}case"search_history":{const n=a.query,c=E.results||[],d=n?`"${n.slice(0,20)}${n.length>20?"…":""}"`:"";return`${c.length} result${c.length!==1?"s":""}${d?` for ${d}`:""}`}case"get_session_context":return E.session?.title||a.sessionId?.slice(0,8)||"session";case"get_parent_session":return E.parentSession?.title||"parent session";default:return e}},r=()=>{const n=Object.keys(a).length>0&&!o;switch(e){case"query_sessions":{const c=E.sessions||[];return t.jsxs("div",{className:o?"p-1":"p-2",children:[n&&t.jsx(iB,{args:a,toolName:e}),c.length===0?t.jsx("div",{className:"text-xs text-muted-foreground",children:"No sessions found"}):t.jsxs("div",{className:o?"space-y-0.5":"space-y-2",children:[c.slice(0,o?5:10).map(d=>t.jsx(pg,{session:d,onNavigate:s,compact:o},d.id)),c.length>(o?5:10)&&t.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",c.length-(o?5:10)," more"]})]})]})}case"query_messages":{const c=E.messages||[];return t.jsxs("div",{className:o?"p-1":"p-2",children:[n&&t.jsx(iB,{args:a,toolName:e}),c.length===0?t.jsx("div",{className:"text-xs text-muted-foreground",children:"No messages found"}):t.jsxs("div",{className:o?"space-y-0.5":"space-y-2",children:[c.slice(0,o?5:10).map(d=>t.jsx(EB,{message:d,onNavigate:s,compact:o},d.id)),c.length>(o?5:10)&&t.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",c.length-(o?5:10)," more"]})]})]})}case"search_history":{const c=E.results||[],d=a.query;return t.jsxs("div",{className:o?"p-1":"p-2",children:[d&&!o&&t.jsxs("div",{className:"flex items-center gap-1.5 text-xs mb-2 pb-2 border-b border-border",children:[t.jsx(at,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),t.jsx("span",{className:"text-muted-foreground",children:"Query:"}),t.jsxs("span",{className:"text-foreground font-medium",children:['"',d,'"']})]}),c.length===0?t.jsx("div",{className:"text-xs text-muted-foreground",children:"No results found"}):t.jsxs("div",{className:o?"space-y-0.5":"space-y-2",children:[c.slice(0,o?5:10).map((D,p)=>t.jsx(EB,{message:D,onNavigate:s,compact:o},`${D.sessionId}-${D.messageId}-${p}`)),c.length>(o?5:10)&&t.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",c.length-(o?5:10)," more"]})]})]})}case"get_session_context":case"get_parent_session":{const c=e==="get_parent_session"?E.parentSession:E.session,d=E.stats,D=E.messages;return c?o?t.jsx("div",{className:"p-1",children:t.jsx(pg,{session:c,onNavigate:s,compact:!0})}):t.jsxs("div",{className:"p-2 space-y-3",children:[t.jsx(pg,{session:c,onNavigate:s}),d&&t.jsxs("div",{className:"flex gap-4 text-xs text-muted-foreground",children:[d.totalMessages!==void 0&&t.jsxs("span",{children:[d.totalMessages," messages"]}),d.totalToolCalls!==void 0&&t.jsxs("span",{children:[d.totalToolCalls," tool calls"]})]}),D&&D.length>0&&t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:"Recent messages:"}),t.jsx("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:D.slice(0,5).map(p=>t.jsxs("div",{className:"text-xs p-1.5 rounded bg-muted/30",children:[t.jsxs("span",{className:"font-medium capitalize text-foreground/70",children:[p.role,":"," "]}),t.jsx("span",{className:"text-foreground/60 line-clamp-2",children:p.content})]},p.id))})]})]}):t.jsx("div",{className:`text-xs text-muted-foreground ${o?"p-1":"p-2"}`,children:"Session not found"})}default:return t.jsx("pre",{className:"text-xs p-2 overflow-auto max-h-48",children:JSON.stringify(E,null,2)})}};return t.jsxs("div",{className:"text-xs",children:[t.jsxs(he,{toolName:e,isExpanded:Q,onToggle:B,isError:i,colorVariant:"default",canExpand:!0,children:[!o&&t.jsxs(t.Fragment,{children:[t.jsx(oA,{}),t.jsx("span",{className:"text-foreground/70 min-w-0 truncate",children:l()})]}),!i&&!o&&t.jsxs(t.Fragment,{children:[t.jsx(oA,{}),t.jsx(dQ,{children:"Done"}),t.jsx(oA,{}),t.jsx(se,{children:I})]}),i&&!o&&t.jsxs(t.Fragment,{children:[t.jsx(oA,{}),t.jsx(uQ,{children:"Error"}),t.jsxs(se,{children:["· ",I]})]})]}),Q&&i&&C&&t.jsx(vA,{error:C}),Q&&!i&&t.jsx("div",{className:o?"mt-1 ml-3":"mt-2 ml-5",children:o?t.jsx("div",{className:"border border-border rounded-md overflow-hidden max-h-48 overflow-y-auto",children:r()}):t.jsx(lA,{title:"results",maxHeight:"max-h-96",children:r()})})]})}function jn({part:e}){const[A,g]=u.useState(!0),Q=u.useRef(null),B=u.useRef(!1);let s="";const o=e.contentJson||e.content;return o&&typeof o=="object"&&"text"in o?s=String(o.text):typeof o=="string"&&(s=o),u.useEffect(()=>{Q.current&&A&&!e.completedAt&&!B.current&&(Q.current.scrollTop=Q.current.scrollHeight)},[s,A,e.completedAt]),!s||!s.trim()?null:t.jsxs("div",{className:"w-full",children:[t.jsxs("button",{type:"button",onClick:()=>g(!A),className:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors w-full",children:[A?t.jsx(ee,{className:"h-3 w-3 flex-shrink-0"}):t.jsx(FA,{className:"h-3 w-3 flex-shrink-0"}),t.jsx("span",{className:"font-medium",children:"Reasoning"}),!e.completedAt&&t.jsx("span",{className:"text-muted-foreground/60 animate-pulse",children:"thinking..."})]}),A&&t.jsx("div",{ref:Q,className:"mt-2 p-3 bg-muted/30 rounded-md border border-border max-h-48 overflow-y-auto",role:"log",onMouseEnter:()=>{B.current=!0},onMouseLeave:()=>{B.current=!1},children:t.jsx("div",{className:"text-sm text-muted-foreground whitespace-pre-wrap font-mono",children:s})})]})}const Hn={Read:"read",Write:"write",Edit:"edit",Ls:"ls",Tree:"tree",Cd:"cd",Pwd:"pwd",Glob:"glob",Grep:"ripgrep",Bash:"bash",Terminal:"terminal",GitStatus:"git_status",GitDiff:"git_diff",GitCommit:"git_commit",ApplyPatch:"apply_patch",UpdateTodos:"update_todos",UpdatePlan:"update_todos",ProgressUpdate:"progress_update",Finish:"finish",WebSearch:"websearch"};function Pn(e){return Hn[e]??e}function aB({toolName:e,contentJson:A,toolDurationMs:g,debug:Q,onNavigateToSession:B,compact:s,sessionId:o,onRetry:E,onCompact:a}){const[i,C]=u.useState(!1),I=Pn(e),r={contentJson:A,toolDurationMs:g??void 0,isExpanded:i,onToggle:()=>C(!i),compact:s};if(Q)return t.jsx(Ln,{...r,toolName:e});switch(I){case"read":return t.jsx(Dn,{...r});case"write":return t.jsx(wn,{...r});case"edit":return t.jsx(pn,{...r});case"bash":return t.jsx(fn,{...r});case"git_status":return t.jsx(yn,{...r});case"git_diff":return t.jsx(Gn,{...r});case"git_commit":return t.jsx(Fn,{...r});case"apply_patch":return t.jsx(bn,{...r});case"ls":return t.jsx(Un,{...r});case"tree":return t.jsx(Kn,{...r});case"ripgrep":case"grep":case"glob":return t.jsx(Jn,{...r});case"websearch":return t.jsx(vn,{...r});case"finish":return t.jsx(Sn,{...r});case"update_todos":case"update_plan":return t.jsx(qn,{...r});case"progress_update":return t.jsx(On,{...r});case"error":return t.jsx(Tn,{...r,sessionId:o,onRetry:E,onCompact:a});case"query_sessions":case"query_messages":case"search_history":case"get_session_context":case"get_parent_session":case"present_action":return t.jsx(Yn,{toolName:e,...r,onNavigateToSession:B});default:return t.jsx(Rn,{...r,toolName:e})}}function Hg(e){const A=e.contentJson;if(A&&typeof A=="object")return A;try{if(e.content){const g=JSON.parse(e.content);if(g&&typeof g=="object"&&!Array.isArray(g))return g}}catch{}return null}function Wn(e){const A=Hg(e);if(!A)return;const g=A.args;if(g&&typeof g=="object"&&!Array.isArray(g))return g}function zn(e){if(!e)return null;const A=["cmd","command","script","input"];for(const g of A){const Q=e[g];if(typeof Q=="string"&&Q.trim().length>0)return Q.trim()}return null}function Vn(e,A){if(!A)return null;const g=[{key:"path",match:!0},{key:"file",match:!0},{key:"target",match:!0},{key:"cwd",match:!0},{key:"query",match:!0},{key:"pattern",match:!0},{key:"glob",match:!0},{key:"dir",match:!0}];for(const{key:Q}of g){const B=A[Q];if(typeof B=="string"&&B.trim().length>0)return{key:Q,value:B.trim()}}if(e==="bash"){const Q=A.command;if(typeof Q=="string"&&Q.trim().length>0)return{key:"command",value:Q.trim()}}return null}function Zn(e,A){if(!e)return null;const g=[];for(const[B,s]of Object.entries(e))if(!(A&&B===A)){if(typeof s=="string"||typeof s=="number"){const o=`${B}=${String(s)}`;g.push(o)}if(g.length>=3)break}if(!g.length)return null;const Q=g.join(" ");return Q.length>120?`${Q.slice(0,117)}…`:Q}const CB=u.memo(function({part:A,showLine:g,isLastToolCall:Q,isLastProgressUpdate:B,onNavigateToSession:s,compact:o,pendingApproval:E,onApprove:a,onReject:i,sessionId:C,onRetry:I,onCompact:l}){if(A.type==="tool_call"&&!Q&&!E||A.type==="tool_result"&&A.toolName==="progress_update"&&!B)return null;if(A.type==="text"){const h=A.contentJson||A.content;let m="";if(h&&typeof h=="object"&&"text"in h?m=String(h.text):typeof h=="string"&&(m=h),!m||!m.trim())return null}if(A.type==="reasoning"){const h=A.contentJson||A.content;let m="";if(h&&typeof h=="object"&&"text"in h?m=String(h.text):typeof h=="string"&&(m=h),!m||!m.trim())return null}const r=A.type==="tool_call"||A.type==="tool_result",n=["flex-1","min-w-0","max-w-full"];r||A.type==="reasoning"?n.push("pt-1"):A.type==="error"?n.push("pt-0.5"):A.type==="text"?(n.push("pt-0"),n.push("-mt-0.5")):n.push("pt-0");const c=n.join(" "),d=()=>{if(A.type==="reasoning")return t.jsx($g,{className:"h-4 w-4 text-indigo-600 dark:text-indigo-300"});if(A.type==="tool_call")return t.jsx(nA,{className:"h-4 w-4 text-amber-600 dark:text-amber-300 animate-spin"});if(A.type==="error")return Hg(A)?.isAborted===!0?t.jsx(Ho,{className:"h-4 w-4 text-amber-600 dark:text-amber-400"}):t.jsx(oe,{className:"h-4 w-4 text-red-600 dark:text-red-400"});if(A.type==="tool_result"){const h=A.toolName||"";return h==="read"?t.jsx(Vt,{className:"h-4 w-4 text-blue-600 dark:text-blue-300"}):h==="write"?t.jsx(Le,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):h==="edit"?t.jsx(Le,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):h==="ls"?t.jsx(Po,{className:"h-4 w-4 text-cyan-600 dark:text-cyan-300"}):h==="tree"?t.jsx(JB,{className:"h-4 w-4 text-cyan-600 dark:text-cyan-300"}):h==="bash"?t.jsx(Je,{className:"h-4 w-4 text-muted-foreground"}):h==="ripgrep"||h==="grep"||h==="glob"?t.jsx(at,{className:"h-4 w-4 text-amber-600 dark:text-amber-300"}):h==="apply_patch"?t.jsx(NQ,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):h==="git_status"?t.jsx(zA,{className:"h-4 w-4 text-blue-600 dark:text-blue-300"}):h==="git_diff"?t.jsx(NQ,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):h==="git_commit"?t.jsx(Ot,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):h==="finish"?t.jsx(VA,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):h==="query_sessions"||h==="query_messages"||h==="search_history"||h==="get_session_context"||h==="get_parent_session"?t.jsx(Wo,{className:"h-4 w-4 text-teal-600 dark:text-teal-300"}):t.jsx(Je,{className:"h-4 w-4 text-muted-foreground"})}return t.jsx(Se,{className:"h-4 w-4 text-violet-600 dark:text-violet-300"})},D=()=>{const h=A.toolName||"";let m;try{A.contentJson&&typeof A.contentJson=="object"?m=A.contentJson:typeof A.content=="string"?m=JSON.parse(A.content):m={}}catch{m={result:A.content}}return t.jsx(aB,{toolName:h,contentJson:m,toolDurationMs:A.toolDurationMs,debug:!1,onNavigateToSession:s,compact:o})},p=()=>{if(A.type==="reasoning")return t.jsx(jn,{part:A});if(A.type==="text"){let h="";const m=A.contentJson||A.content;return m&&typeof m=="object"&&"text"in m?h=String(m.text):typeof m=="string"?h=m:m&&(h=JSON.stringify(m,null,2)),t.jsxs("div",{className:"relative group",children:[t.jsx("div",{className:"absolute -top-1 right-0 opacity-0 group-hover:opacity-100 transition-opacity z-10",children:t.jsx(Rt,{text:h,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"md"})}),t.jsx("div",{className:"text-base text-foreground leading-relaxed markdown-content max-w-full overflow-hidden",children:t.jsx(jB,{remarkPlugins:[HB],components:{a:({href:k,children:f,...M})=>t.jsx("a",{href:k,target:"_blank",rel:"noopener noreferrer",onClick:N=>{window.self!==window.top&&k&&(N.preventDefault(),window.parent.postMessage({type:"otto-open-url",url:k},"*"))},...M,children:f}),pre:({children:k,...f})=>{const M=(()=>{if(!k)return"";const N=Array.isArray(k)?k[0]:k;if(N&&typeof N=="object"&&"props"in N){const x=N.props;if(typeof x.children=="string")return x.children}return""})();return t.jsxs("div",{className:"relative group/code my-3",children:[t.jsx("div",{className:"absolute top-2 right-2 opacity-0 group-hover/code:opacity-100 transition-opacity z-10",children:t.jsx(Rt,{text:M,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"sm"})}),t.jsx("pre",{...f,className:"overflow-x-auto",children:k})]})}},children:h})}),h.length>500&&t.jsx("div",{className:"absolute -bottom-1 right-0 opacity-0 group-hover:opacity-100 transition-opacity z-10",children:t.jsx(Rt,{text:h,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"md"})})]})}if(A.type==="error"){let h;try{A.contentJson&&typeof A.contentJson=="object"?h=A.contentJson:typeof A.content=="string"?h=JSON.parse(A.content):h={}}catch{h={message:A.content||"Unknown error"}}return t.jsx(aB,{toolName:"error",contentJson:h,toolDurationMs:A.toolDurationMs,debug:!1,compact:o,sessionId:C,onRetry:I,onCompact:l})}if(A.type==="tool_call"){const h=Hg(A),m=A.toolName||(typeof h?.name=="string"?h.name:"tool"),k=m.replace(/_/g," "),f=Wn(A),M=E?.args,N=f||M,x=Vn(m,N),G=Zn(N,x?.key),w=m==="bash"?zn(N):null,F=[];if(w?F.push({key:"cmd",node:t.jsx("code",{className:"font-mono text-foreground/90 truncate max-w-xs",children:w})}):x&&F.push({key:"primary",node:t.jsx("code",{className:"font-mono text-foreground/85 truncate max-w-xs",children:x.value})}),G&&F.push({key:"args",node:t.jsx("span",{className:"text-muted-foreground/80 truncate max-w-xs",children:G})}),E&&E.callId===A.toolCallId&&a&&i)return t.jsx(dn,{toolName:m,args:N,pendingApproval:E,onApprove:a,onReject:i});F.length===0&&F.push({key:"running",node:t.jsx("span",{className:"text-muted-foreground/75",children:"running…"})});const S=["flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-foreground/80 max-w-full"];return A.ephemeral&&S.push("animate-pulse"),t.jsxs("div",{className:S.join(" "),children:[t.jsx("span",{className:"font-medium text-foreground",children:k}),F.map(K=>t.jsxs(u.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground/65",children:"·"}),K.node]},K.key))]})}return A.type==="tool_result"?D():null};return t.jsxs("div",{className:"flex gap-3 pb-2 relative max-w-full overflow-hidden",children:[t.jsxs("div",{className:"flex-shrink-0 w-6 flex items-start justify-center relative pt-0.5",children:[t.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-background",children:d()}),g&&t.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 w-[2px] bg-border z-0",style:{top:"1.25rem",bottom:"-0.5rem"}})]}),t.jsx("div",{className:c,children:p()})]})},(e,A)=>e.part.id===A.part.id&&e.part.content===A.part.content&&e.part.contentJson===A.part.contentJson&&e.part.ephemeral===A.part.ephemeral&&e.part.completedAt===A.part.completedAt&&e.showLine===A.showLine&&e.isLastToolCall===A.isLastToolCall&&e.isLastProgressUpdate===A.isLastProgressUpdate&&e.onNavigateToSession===A.onNavigateToSession&&e.pendingApproval?.callId===A.pendingApproval?.callId&&e.onApprove===A.onApprove&&e.onReject===A.onReject),mg={currentMessageId:null,queuedMessages:[],queueLength:0};function Xn(e){const{data:A}=ZA({queryKey:["queueState",e],queryFn:()=>mg,enabled:!!e,initialData:mg,staleTime:1/0});return A??mg}function Ys(e,A){const g=Xn(e);if(!e||!g)return{isQueued:!1,isRunning:!1,position:null};if(g.currentMessageId===A)return{isQueued:!1,isRunning:!0,position:null};const Q=g.queuedMessages.find(B=>B.messageId===A);return Q?{isQueued:!0,isRunning:!1,position:Q.position}:{isQueued:!1,isRunning:!1,position:null}}function _n(e){const A=CA();return hA({mutationFn:g=>{if(!e)throw new Error("No session ID");return v.createBranch(e,g)},onSuccess:()=>{A.invalidateQueries({queryKey:ue}),e&&A.invalidateQueries({queryKey:["branches",e]})}})}function js(e){return ZA({queryKey:["parentSession",e],queryFn:()=>{if(!e)throw new Error("No session ID");return v.getParentSession(e)},enabled:!!e})}function $n({isOpen:e,onClose:A,sessionId:g,message:Q,onBranchCreated:B}){const s=lQ(g),o=_n(g),[E,a]=u.useState(""),[i,C]=u.useState(!0),I=u.useId(),l=u.useId(),r=Q.parts?.find(d=>d.type==="text")?.content||"",n=(()=>{try{return JSON.parse(r)?.text?.slice(0,100)||""}catch{return r.slice(0,100)}})(),c=async d=>{d.preventDefault();try{const D=await o.mutateAsync({fromMessageId:Q.id,title:E.trim()||void 0,provider:i?s?.provider:void 0,model:i?s?.model:void 0,agent:i?s?.agent:void 0});A(),B&&D.session&&B(D.session.id)}catch(D){console.error("Failed to create branch:",D)}};return t.jsx(Ye,{isOpen:e,onClose:A,title:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(zA,{className:"h-5 w-5 text-primary"}),t.jsx("span",{children:"Branch Session"})]}),maxWidth:"md",children:t.jsxs("form",{onSubmit:c,className:"space-y-4",children:[t.jsxs("div",{className:"text-sm text-muted-foreground",children:[t.jsx("p",{children:"Creating branch from message:"}),t.jsxs("p",{className:"mt-1 p-2 bg-muted/50 rounded text-foreground italic truncate",children:['"',n,'..."']})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{htmlFor:I,className:"block text-sm font-medium text-foreground",children:"Branch Title (optional)"}),t.jsx("input",{id:I,type:"text",value:E,onChange:d=>a(d.target.value),placeholder:`Branch of ${s?.title||"Untitled"}`,className:"w-full px-3 py-2 bg-background border border-border rounded-md text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/50"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("input",{id:l,type:"checkbox",checked:i,onChange:d=>C(d.target.checked),className:"h-4 w-4 rounded border-border text-primary focus:ring-primary/50"}),t.jsx("label",{htmlFor:l,className:"text-sm text-foreground",children:"Use same provider/model/agent as parent"})]}),s&&t.jsx("div",{className:"text-xs text-muted-foreground bg-muted/30 rounded p-2",children:t.jsxs("div",{className:"flex gap-4",children:[t.jsxs("span",{children:[t.jsx("strong",{children:"Provider:"})," ",s.provider]}),t.jsxs("span",{children:[t.jsx("strong",{children:"Model:"})," ",s.model]}),t.jsxs("span",{children:[t.jsx("strong",{children:"Agent:"})," ",s.agent]})]})}),t.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[t.jsx("button",{type:"button",onClick:A,className:"px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:"Cancel"}),t.jsx("button",{type:"submit",disabled:o.isPending,className:"px-4 py-2 text-sm bg-primary text-primary-foreground rounded-md hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:o.isPending?t.jsxs(t.Fragment,{children:[t.jsx(nA,{className:"h-4 w-4 animate-spin"}),"Creating..."]}):t.jsxs(t.Fragment,{children:[t.jsx(zA,{className:"h-4 w-4"}),"Create Branch"]})})]}),o.isError&&t.jsx("p",{className:"text-sm text-red-500",children:o.error?.message||"Failed to create branch"})]})})}const rB=["Generating...","Cooking up something...","Thinking...","Processing...","Working on it...","Crafting response...","Brewing magic...","Computing..."];function AI(e){const A=e.split("").reduce((g,Q)=>g+Q.charCodeAt(0),0);return rB[A%rB.length]}const Hs=u.memo(function({sessionId:A,message:g,showHeader:Q,hasNextAssistantMessage:B,onBranchCreated:s,compact:o,showBranchButton:E=!0,onNavigateToSession:a,onRetry:i,onCompact:C}){const{isQueued:I}=Ys(A,g.id),[l,r]=u.useState(!1),[n,c]=u.useState(!1),[d,D]=u.useState(!1),{pendingApprovals:p,removePendingApproval:h}=rQ(),m=u.useCallback(async J=>{if(A)try{await v.approveToolCall(A,J,!0),h(J)}catch(H){console.error("Failed to approve tool call:",H)}},[A,h]),k=u.useCallback(async J=>{if(A)try{await v.approveToolCall(A,J,!1),h(J)}catch(H){console.error("Failed to reject tool call:",H)}},[A,h]),f=u.useMemo(()=>p.filter(J=>J.messageId===g.id),[p,g.id]),M=u.useCallback(async()=>{if(A)try{await Promise.all(f.map(J=>v.approveToolCall(A,J.callId,!0)));for(const J of f)h(J.callId)}catch(J){console.error("Failed to approve all tool calls:",J)}},[A,f,h]),N=u.useMemo(()=>[...g.parts||[]].sort((H,W)=>{const Z=(H.index??0)-(W.index??0);return Z!==0?Z:(H.startedAt??0)-(W.startedAt??0)}),[g.parts]),x=N.some(J=>J.toolName==="finish"),G=N.reduce((J,H,W)=>H.type==="tool_result"&&H.toolName==="progress_update"?W:J,-1),w=G>=0?N[G]:null,F=N.some(J=>!(J.type==="tool_result"&&J.toolName==="progress_update")),y=N.findIndex(J=>!(J.type==="tool_result"&&J.toolName==="progress_update")),S=g.status==="pending"&&!x&&!!w,K=g.status==="pending"&&!x&&!w&&!I,T=J=>J?new Date(J).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",R=g.status==="complete",L=u.useCallback(()=>{const J=N.filter(H=>H.type==="text").map(H=>{try{return JSON.parse(H.content||"{}")?.text||""}catch{return H.content||""}}).join(`
96
96
  `);navigator.clipboard.writeText(J),D(!0),setTimeout(()=>D(!1),2e3)},[N]),q=u.useCallback(()=>{c(!0)},[]);return I?null:t.jsxs("div",{className:"relative group",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[Q&&t.jsxs("div",{className:"pb-2 flex items-center justify-between",children:[t.jsxs("div",{className:"inline-flex items-center bg-violet-500/10 border border-violet-500/30 dark:bg-violet-500/5 dark:border-violet-500/20 rounded-full pr-3 md:pr-4 flex-shrink min-w-0",children:[t.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-violet-500/50 bg-violet-500/20 dark:bg-violet-500/10",children:t.jsx(Se,{className:"h-3.5 w-3.5 text-violet-700 dark:text-violet-300"})}),t.jsxs("div",{className:"flex items-center gap-x-1.5 md:gap-x-2 text-xs md:text-sm text-muted-foreground pl-2 md:pl-3 min-w-0",children:[g.agent&&!o&&t.jsx("span",{className:"font-medium text-violet-700 dark:text-violet-300 whitespace-nowrap",children:g.agent}),g.provider&&t.jsxs(t.Fragment,{children:[!o&&g.agent&&t.jsx("span",{className:"text-muted-foreground/50",children:"·"}),t.jsx(RA,{provider:g.provider,size:14,className:"opacity-70"})]}),g.model&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"hidden md:inline text-muted-foreground/50",children:"·"}),t.jsx("span",{className:`hidden md:inline text-muted-foreground ${o?"truncate max-w-[120px]":""}`,title:g.model,children:g.model})]}),g.createdAt&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground/50",children:"·"}),t.jsx("span",{className:"text-muted-foreground whitespace-nowrap",children:T(g.createdAt)})]})]})]}),l&&R&&A&&E&&t.jsx("button",{type:"button",onClick:q,className:"ml-4 p-1.5 text-muted-foreground hover:text-primary transition-colors flex-shrink-0",title:"Branch from this message",children:t.jsx(zA,{className:"h-4 w-4"})})]}),t.jsxs("div",{className:"relative ml-1",children:[N.map((J,H)=>{const W=H===N.length-1,Z=J.type==="tool_call"&&J.toolCallId?p.find(eA=>eA.callId===J.toolCallId)??null:null,iA=J.type==="tool_result"&&J.toolName==="finish",rA=(!W||B)&&!iA,bA=J.type==="tool_call"&&W;return J.type==="tool_result"&&J.toolName==="progress_update"?null:t.jsx(CB,{part:J,showLine:rA,isFirstPart:H===y&&!Q,isLastToolCall:bA,onNavigateToSession:a,compact:o,pendingApproval:Z,onApprove:m,onReject:k,sessionId:A,onRetry:i,onCompact:C},J.id)}),f.length>1&&t.jsxs("div",{className:"flex items-center gap-3 py-2 px-3 my-2 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg",children:[t.jsx(KB,{className:"h-4 w-4 text-amber-600 dark:text-amber-400 flex-shrink-0"}),t.jsxs("span",{className:"text-sm text-amber-800 dark:text-amber-200 flex-1",children:[f.length," tools waiting for approval"]}),t.jsxs("button",{type:"button",onClick:M,title:"Approve All (A)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors",children:[t.jsx(zo,{className:"w-3.5 h-3.5"}),"Approve All",t.jsx("kbd",{className:"ml-1 text-[10px] opacity-70",children:"A"})]})]}),S&&w&&t.jsx(CB,{part:w,showLine:B,isFirstPart:!F&&!Q,isLastProgressUpdate:!0,compact:o},w.id),K&&t.jsxs("div",{className:"flex gap-3 pb-2 relative",children:[t.jsx("div",{className:"flex-shrink-0 w-6 flex items-start justify-center relative pt-0.5",children:t.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-card text-violet-700 dark:bg-background dark:text-violet-300",children:t.jsx(Se,{className:"h-4 w-4"})})}),t.jsx("div",{className:"flex-1 pt-0.5",children:t.jsx("div",{className:"text-base text-foreground animate-pulse",children:AI(g.id)})})]})]}),R&&A&&t.jsx("div",{className:"grid ml-7 transition-[grid-template-rows] duration-200 ease-out",style:{gridTemplateRows:l?"1fr":"0fr"},children:t.jsx("div",{className:"overflow-hidden",children:t.jsxs("div",{className:"flex gap-2 mt-2",children:[E&&t.jsxs("button",{type:"button",onClick:q,className:"flex items-center gap-1.5 px-2 py-1 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded transition-colors",children:[t.jsx(zA,{className:"h-3 w-3"}),"Branch"]}),t.jsx("button",{type:"button",onClick:L,className:"flex items-center gap-1.5 px-2 py-1 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded transition-colors",children:d?t.jsxs(t.Fragment,{children:[t.jsx(VA,{className:"h-3 w-3 text-green-500"}),"Copied"]}):t.jsxs(t.Fragment,{children:[t.jsx(Re,{className:"h-3 w-3"}),"Copy"]})})]})})}),n&&A&&t.jsx($n,{isOpen:n,onClose:()=>c(!1),sessionId:A,message:g,onBranchCreated:s})]})},(e,A)=>{const g=e.message.parts||[],Q=A.message.parts||[];if(g.length!==Q.length)return!1;for(let B=0;B<g.length;B++){const s=g[B],o=Q[B];if(s.id!==o.id||s.content!==o.content||s.contentJson!==o.contentJson||s.ephemeral!==o.ephemeral||s.completedAt!==o.completedAt)return!1}return e.message.id===A.message.id&&e.message.status===A.message.status&&e.message.completedAt===A.message.completedAt&&e.showHeader===A.showHeader&&e.hasNextAssistantMessage===A.hasNextAssistantMessage&&e.isLastMessage===A.isLastMessage&&e.sessionId===A.sessionId&&e.compact===A.compact&&e.onNavigateToSession===A.onNavigateToSession}),Ps=u.memo(function({sessionId:A,message:g,nextAssistantMessageId:Q}){const[B,s]=u.useState(null),o=g.parts||[],E=CA(),{isQueued:a,position:i}=Ys(A,Q??""),C=jg(w=>w.setPendingRestoreText),I=o.filter(w=>w.type==="text"),l=o.filter(w=>w.type==="image"),r=o.filter(w=>w.type==="file"),n=I[0];let c="";if(n){const w=n.contentJson||n.content;w&&typeof w=="object"&&"text"in w?c=String(w.text):typeof w=="string"?c=w:w&&(c=JSON.stringify(w,null,2))}const{researchContexts:d,cleanContent:D}=Bn(c),p=[];for(const w of l)try{const F=w.contentJson||JSON.parse(w.content||"{}");if(F&&typeof F=="object"&&"data"in F){const y=F,S=`data:${y.mediaType};base64,${y.data}`;p.push({id:w.id,src:S})}}catch{}const h=[];for(const w of r)try{const F=w.contentJson||JSON.parse(w.content||"{}");if(F&&typeof F=="object"&&"type"in F){const y=F;if(y.type==="image"&&y.data){const S=`data:${y.mediaType};base64,${y.data}`;p.push({id:w.id,src:S})}else h.push({id:w.id,type:y.type,name:y.name})}}catch{}const m=w=>w?new Date(w).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",k=D.trim().length>0,f=p.length>0,M=h.length>0,N=d.length>0;if(!k&&!f&&!M&&!N)return null;const x=async()=>{if(!(!A||!Q)){C(D);try{await v.removeFromQueue(A,Q),E.invalidateQueries({queryKey:["messages",A]})}catch(w){console.error("Failed to cancel queued message:",w)}}},G=async()=>{if(!(!A||!Q))try{await v.removeFromQueue(A,Q),E.invalidateQueries({queryKey:["messages",A]})}catch(w){console.error("Failed to delete queued message:",w)}};return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"relative pb-8 pt-6",children:t.jsxs("div",{className:"flex gap-3 md:gap-4 justify-end",children:[t.jsxs("div",{className:"flex flex-col items-end min-w-0 flex-1 max-w-[calc(100%-3rem)] md:max-w-2xl",children:[t.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end",children:[t.jsx("span",{className:"font-medium text-emerald-700 dark:text-emerald-300",children:"You"}),g.createdAt&&t.jsx("span",{children:"·"}),g.createdAt&&t.jsx("span",{children:m(g.createdAt)}),a&&t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"·"}),t.jsxs("span",{className:"inline-flex items-center gap-1 text-amber-600 dark:text-amber-400",children:[t.jsx(tQ,{className:"h-3 w-3"}),"Queued",i!==null&&i>0?` #${i+1}`:""]})]})]}),t.jsxs("div",{className:"inline-block max-w-full text-sm text-foreground leading-relaxed bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 [word-break:break-word] overflow-hidden",children:[f&&t.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:p.map(w=>t.jsx("button",{type:"button",onClick:()=>s(w.src),className:"w-16 h-16 rounded-lg overflow-hidden bg-muted hover:ring-2 hover:ring-primary/50 transition-all",children:t.jsx("img",{src:w.src,alt:"Attachment",className:"w-full h-full object-cover"})},w.id))}),M&&t.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:h.map(w=>t.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-muted/50 border border-border",children:[w.type==="pdf"?t.jsx(fe,{className:"w-4 h-4 text-red-500 flex-shrink-0"}):t.jsx(Vt,{className:"w-4 h-4 text-blue-500 flex-shrink-0"}),t.jsx("span",{className:"text-xs truncate max-w-[150px]",children:w.name})]},w.id))}),N&&t.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:d.map(w=>t.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-teal-500/10 border border-teal-500/30",children:[t.jsx(Et,{className:"w-4 h-4 text-teal-500 flex-shrink-0"}),t.jsx("span",{className:"text-xs text-teal-600 dark:text-teal-400",children:w.label})]},w.id))}),k&&t.jsx("div",{className:"prose prose-invert prose-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_*]:[word-break:break-word] [&_*]:overflow-wrap-anywhere whitespace-pre-wrap",children:t.jsx(jB,{remarkPlugins:[HB],components:{a:({href:w,children:F,...y})=>t.jsx("a",{href:w,target:"_blank",rel:"noopener noreferrer",onClick:S=>{window.self!==window.top&&w&&(S.preventDefault(),window.parent.postMessage({type:"otto-open-url",url:w},"*"))},...y,children:F})},children:D.replace(/\n/g,`
97
- `)})})]}),a&&t.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[t.jsxs("button",{type:"button",onClick:x,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground transition-colors",title:"Cancel and restore to input",children:[t.jsx(RB,{className:"h-3 w-3"}),"Cancel"]}),t.jsxs("button",{type:"button",onClick:G,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-destructive/10 hover:bg-destructive/20 text-destructive transition-colors",title:"Delete from queue",children:[t.jsx(AQ,{className:"h-3 w-3"}),"Delete"]})]})]}),t.jsx("div",{className:"flex-shrink-0 w-8 flex items-start justify-center",children:t.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative bg-background",children:t.jsx(Xg,{className:"h-4 w-4 text-emerald-700 dark:text-emerald-300"})})})]})}),B&&t.jsxs("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4",onClick:()=>s(null),onKeyDown:w=>w.key==="Escape"&&s(null),tabIndex:-1,children:[t.jsx("button",{type:"button",onClick:()=>s(null),className:"absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 transition-colors",children:t.jsx(GA,{className:"w-6 h-6 text-white"})}),t.jsx("img",{src:B,alt:"Expanded attachment",className:"max-w-full max-h-full object-contain rounded-lg",onClick:w=>w.stopPropagation(),onKeyDown:w=>w.key==="Enter"&&w.stopPropagation()})]})]})},(e,A)=>{const g=e.message.parts?.[0],Q=A.message.parts?.[0];return e.message.id===A.message.id&&g?.content===Q?.content&&g?.contentJson===Q?.contentJson&&e.message.createdAt===A.message.createdAt&&e.message.parts?.length===A.message.parts?.length&&e.sessionId===A.sessionId&&e.nextAssistantMessageId===A.nextAssistantMessageId}),eI={openai:{id:"openai",models:[{id:"codex-mini-latest",label:"Codex Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-04",releaseDate:"2025-05-16",lastUpdated:"2025-05-16",openWeights:!1,cost:{input:1.5,output:6,cacheRead:.375},limit:{context:2e5,output:1e5}},{id:"gpt-3.5-turbo",label:"GPT-3.5-turbo",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2021-09-01",releaseDate:"2023-03-01",lastUpdated:"2023-11-06",openWeights:!1,cost:{input:.5,output:1.5,cacheRead:1.25},limit:{context:16385,output:4096}},{id:"gpt-4",label:"GPT-4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-11",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:30,output:60},limit:{context:8192,output:8192}},{id:"gpt-4-turbo",label:"GPT-4 Turbo",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:10,output:30},limit:{context:128e3,output:4096}},{id:"gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"gpt-4.1-mini",label:"GPT-4.1 mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"gpt-4.1-nano",label:"GPT-4.1 nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.03},limit:{context:1047576,output:32768}},{id:"gpt-4o",label:"GPT-4o",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-05-13",label:"GPT-4o (2024-05-13)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:5,output:15},limit:{context:128e3,output:4096}},{id:"gpt-4o-2024-08-06",label:"GPT-4o (2024-08-06)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-08-06",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-11-20",label:"GPT-4o (2024-11-20)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-11-20",lastUpdated:"2024-11-20",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-mini",label:"GPT-4o mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-chat-latest",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"gpt-5-codex",label:"GPT-5-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-mini",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4,cacheRead:.005},limit:{context:4e5,output:128e3}},{id:"gpt-5-pro",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.13},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-chat-latest",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"gpt-5.1-codex",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-chat-latest",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-pro",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-codex",label:"GPT-5.3 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"o1",label:"o1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2024-12-05",lastUpdated:"2024-12-05",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:2e5,output:1e5}},{id:"o1-mini",label:"o1-mini",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:128e3,output:65536}},{id:"o1-preview",label:"o1-preview",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:128e3,output:32768}},{id:"o1-pro",label:"o1-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2025-03-19",lastUpdated:"2025-03-19",openWeights:!1,cost:{input:150,output:600},limit:{context:2e5,output:1e5}},{id:"o3",label:"o3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"o3-deep-research",label:"o3-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:10,output:40,cacheRead:2.5},limit:{context:2e5,output:1e5}},{id:"o3-mini",label:"o3-mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-05",releaseDate:"2024-12-20",lastUpdated:"2025-01-29",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:2e5,output:1e5}},{id:"o3-pro",label:"o3-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-06-10",lastUpdated:"2025-06-10",openWeights:!1,cost:{input:20,output:80},limit:{context:2e5,output:1e5}},{id:"o4-mini",label:"o4-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"o4-mini-deep-research",label:"o4-mini-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"text-embedding-3-large",label:"text-embedding-3-large",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.13,output:0},limit:{context:8191,output:3072}},{id:"text-embedding-3-small",label:"text-embedding-3-small",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.02,output:0},limit:{context:8191,output:1536}},{id:"text-embedding-ada-002",label:"text-embedding-ada-002",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2022-12",releaseDate:"2022-12-15",lastUpdated:"2022-12-15",openWeights:!1,cost:{input:.1,output:0},limit:{context:8192,output:1536}}],label:"OpenAI",env:["OPENAI_API_KEY"],npm:"@ai-sdk/openai",doc:"https://platform.openai.com/docs/models"},anthropic:{id:"anthropic",models:[{id:"claude-3-5-haiku-20241022",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-haiku-latest",label:"Claude Haiku 3.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20240620",label:"Claude Sonnet 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-06-20",lastUpdated:"2024-06-20",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20241022",label:"Claude Sonnet 3.5 v2",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-7-sonnet-20250219",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-31",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-3-7-sonnet-latest",label:"Claude Sonnet 3.7 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-31",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-3-haiku-20240307",label:"Claude Haiku 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-13",lastUpdated:"2024-03-13",openWeights:!1,cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-3-opus-20240229",label:"Claude Opus 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-02-29",lastUpdated:"2024-02-29",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:4096}},{id:"claude-3-sonnet-20240229",label:"Claude Sonnet 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-04",lastUpdated:"2024-03-04",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-0",label:"Claude Opus 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1",label:"Claude Opus 4.1 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1-20250805",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-20250514",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-5",label:"Claude Opus 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-5-20251101",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-01",lastUpdated:"2025-11-01",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:128e3}},{id:"claude-sonnet-4-0",label:"Claude Sonnet 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-20250514",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5",label:"Claude Sonnet 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5-20250929",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}}],label:"Anthropic",env:["ANTHROPIC_API_KEY"],npm:"@ai-sdk/anthropic",doc:"https://docs.anthropic.com/en/docs/about-claude/models"},google:{id:"google",models:[{id:"gemini-1.5-flash",label:"Gemini 1.5 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-05-14",lastUpdated:"2024-05-14",openWeights:!1,cost:{input:.075,output:.3,cacheRead:.01875},limit:{context:1e6,output:8192}},{id:"gemini-1.5-flash-8b",label:"Gemini 1.5 Flash-8B",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-10-03",lastUpdated:"2024-10-03",openWeights:!1,cost:{input:.0375,output:.15,cacheRead:.01},limit:{context:1e6,output:8192}},{id:"gemini-1.5-pro",label:"Gemini 1.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-02-15",lastUpdated:"2024-02-15",openWeights:!1,cost:{input:1.25,output:5,cacheRead:.3125},limit:{context:1e6,output:8192}},{id:"gemini-2.0-flash",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"gemini-2.0-flash-lite",label:"Gemini 2.0 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.075,output:.3},limit:{context:1048576,output:8192}},{id:"gemini-2.5-flash",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-image",label:"Gemini 2.5 Flash Image",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-image-preview",label:"Gemini 2.5 Flash Image (Preview)",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-06-17",label:"Gemini 2.5 Flash Lite Preview 06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-09-2025",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-04-17",label:"Gemini 2.5 Flash Preview 04-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-04-17",lastUpdated:"2025-04-17",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-05-20",label:"Gemini 2.5 Flash Preview 05-20",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-09-2025",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-tts",label:"Gemini 2.5 Flash Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:.5,output:10},limit:{context:8e3,output:16e3}},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-05-06",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-06-05",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-tts",label:"Gemini 2.5 Pro Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:1,output:20},limit:{context:8e3,output:16e3}},{id:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1e6,output:64e3}},{id:"gemini-embedding-001",label:"Gemini Embedding 001",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-05",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:0},limit:{context:2048,output:3072}},{id:"gemini-flash-latest",label:"Gemini Flash Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-flash-lite-latest",label:"Gemini Flash-Lite Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-live-2.5-flash",label:"Gemini Live 2.5 Flash",modalities:{input:["text","image","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-01",lastUpdated:"2025-09-01",openWeights:!1,cost:{input:.5,output:2},limit:{context:128e3,output:8e3}},{id:"gemini-live-2.5-flash-preview-native-audio",label:"Gemini Live 2.5 Flash Preview Native Audio",modalities:{input:["text","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-09-18",openWeights:!1,cost:{input:.5,output:2},limit:{context:131072,output:65536}}],label:"Google",env:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],npm:"@ai-sdk/google",doc:"https://ai.google.dev/gemini-api/docs/pricing"},openrouter:{id:"openrouter",models:[{id:"allenai/molmo-2-8b:free",label:"Molmo2 8B (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-09",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:36864,output:36864}},{id:"anthropic/claude-3.5-haiku",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"anthropic/claude-3.7-sonnet",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-01",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:128e3}},{id:"anthropic/claude-haiku-4.5",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-opus-4",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.1",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.5",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-30",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-30",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"anthropic/claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-sonnet-4.5",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3}},{id:"arcee-ai/trinity-large-preview:free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"arcee-ai/trinity-mini:free",label:"Trinity Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"black-forest-labs/flux.2-flex",label:"FLUX.2 Flex",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:67344,output:67344}},{id:"black-forest-labs/flux.2-klein-4b",label:"FLUX.2 Klein 4B",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"black-forest-labs/flux.2-max",label:"FLUX.2 Max",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-16",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"black-forest-labs/flux.2-pro",label:"FLUX.2 Pro",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"bytedance-seed/seedream-4.5",label:"Seedream 4.5",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-23",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:4096,output:4096}},{id:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",label:"Uncensored (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-07-09",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"cognitivecomputations/dolphin3.0-mistral-24b",label:"Dolphin3.0 Mistral 24B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-13",lastUpdated:"2025-02-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"cognitivecomputations/dolphin3.0-r1-mistral-24b",label:"Dolphin3.0 R1 Mistral 24B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-13",lastUpdated:"2025-02-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"deepseek/deepseek-chat-v3-0324",label:"DeepSeek V3 0324",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-24",lastUpdated:"2025-03-24",openWeights:!0,cost:{input:0,output:0},limit:{context:16384,output:8192}},{id:"deepseek/deepseek-chat-v3.1",label:"DeepSeek-V3.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-08-21",lastUpdated:"2025-08-21",openWeights:!0,cost:{input:.2,output:.8},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-r1-0528-qwen3-8b:free",label:"Deepseek R1 0528 Qwen3 8B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-29",lastUpdated:"2025-05-29",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"deepseek/deepseek-r1-0528:free",label:"R1 0528 (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-28",lastUpdated:"2025-05-28",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-r1-distill-llama-70b",label:"DeepSeek R1 Distill Llama 70B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-23",lastUpdated:"2025-01-23",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"deepseek/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Distill Qwen 14B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-29",lastUpdated:"2025-01-29",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:8192}},{id:"deepseek/deepseek-r1:free",label:"R1 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-01-20",lastUpdated:"2025-01-20",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-v3-base:free",label:"DeepSeek V3 Base (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-29",lastUpdated:"2025-03-29",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-v3.1-terminus",label:"DeepSeek V3.1 Terminus",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.1-terminus:exacto",label:"DeepSeek V3.1 Terminus (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.2",label:"DeepSeek V3.2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.28,output:.4},limit:{context:163840,output:65536}},{id:"deepseek/deepseek-v3.2-speciale",label:"DeepSeek V3.2 Speciale",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.27,output:.41},limit:{context:163840,output:65536}},{id:"featherless/qwerky-72b",label:"Qwerky 72B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-20",lastUpdated:"2025-03-20",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemini-2.0-flash-001",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"google/gemini-2.0-flash-exp:free",label:"Gemini 2.0 Flash Experimental (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:1048576,output:1048576}},{id:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-07-17",lastUpdated:"2025-07-17",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite-preview-09-2025",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-preview-09-2025",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.031},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-05-06",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-06-05",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-3-flash-preview",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"google/gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11",openWeights:!1,cost:{input:2,output:12},limit:{context:105e4,output:66e3}},{id:"google/gemma-2-9b-it",label:"Gemma 2 9B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-06",releaseDate:"2024-06-28",lastUpdated:"2024-06-28",openWeights:!0,cost:{input:.03,output:.09},limit:{context:8192,output:8192}},{id:"google/gemma-3-12b-it",label:"Gemma 3 12B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.03,output:.1},limit:{context:131072,output:131072}},{id:"google/gemma-3-12b-it:free",label:"Gemma 3 12B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3-27b-it",label:"Gemma 3 27B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:.04,output:.15},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-27b-it:free",label:"Gemma 3 27B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"google/gemma-3-4b-it",label:"Gemma 3 4B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.01703,output:.06815},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-4b-it:free",label:"Gemma 3 4B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3n-e2b-it:free",label:"Gemma 3n 2B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"google/gemma-3n-e4b-it",label:"Gemma 3n 4B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:.02,output:.04},limit:{context:32768,output:32768}},{id:"google/gemma-3n-e4b-it:free",label:"Gemma 3n 4B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"kwaipilot/kat-coder-pro:free",label:"Kat Coder Pro (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-10",lastUpdated:"2025-11-10",openWeights:!1,cost:{input:0,output:0},limit:{context:256e3,output:65536}},{id:"liquid/lfm-2.5-1.2b-instruct:free",label:"LFM2.5-1.2B-Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"liquid/lfm-2.5-1.2b-thinking:free",label:"LFM2.5-1.2B-Thinking (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"meta-llama/llama-3.1-405b-instruct:free",label:"Llama 3.1 405B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-07-23",lastUpdated:"2025-04-05",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-3.2-11b-vision-instruct",label:"Llama 3.2 11B Vision Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"meta-llama/llama-3.2-3b-instruct:free",label:"Llama 3.2 3B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-3.3-70b-instruct:free",label:"Llama 3.3 70B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2024-12-06",lastUpdated:"2024-12-06",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-4-scout:free",label:"Llama 4 Scout (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2025-04-05",lastUpdated:"2025-04-05",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:64e3}},{id:"microsoft/mai-ds-r1:free",label:"MAI DS R1 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-21",lastUpdated:"2025-04-21",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"minimax/minimax-01",label:"MiniMax-01",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-01-15",lastUpdated:"2025-01-15",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:1e6,output:1e6}},{id:"minimax/minimax-m1",label:"MiniMax M1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!0,cost:{input:.4,output:2.2},limit:{context:1e6,output:4e4}},{id:"minimax/minimax-m2",label:"MiniMax M2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-23",lastUpdated:"2025-10-23",openWeights:!0,cost:{input:.28,output:1.15,cacheRead:.28,cacheWrite:1.15},limit:{context:196600,output:118e3}},{id:"minimax/minimax-m2.1",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:204800,output:131072}},{id:"mistralai/codestral-2508",label:"Codestral 2508",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-01",lastUpdated:"2025-08-01",openWeights:!0,cost:{input:.3,output:.9},limit:{context:256e3,output:256e3}},{id:"mistralai/devstral-2512",label:"Devstral 2 2512",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-12",releaseDate:"2025-09-12",lastUpdated:"2025-09-12",openWeights:!0,cost:{input:.15,output:.6},limit:{context:262144,output:262144}},{id:"mistralai/devstral-2512:free",label:"Devstral 2 2512 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-12",releaseDate:"2025-09-12",lastUpdated:"2025-09-12",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:262144}},{id:"mistralai/devstral-medium-2507",label:"Devstral Medium",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/devstral-small-2505",label:"Devstral Small",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!0,cost:{input:.06,output:.12},limit:{context:128e3,output:128e3}},{id:"mistralai/devstral-small-2505:free",label:"Devstral Small 2505 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-21",lastUpdated:"2025-05-21",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"mistralai/devstral-small-2507",label:"Devstral Small 1.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.1,output:.3},limit:{context:131072,output:131072}},{id:"mistralai/mistral-7b-instruct:free",label:"Mistral 7B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-05",releaseDate:"2024-05-27",lastUpdated:"2024-05-27",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"mistralai/mistral-medium-3",label:"Mistral Medium 3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!1,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/mistral-medium-3.1",label:"Mistral Medium 3.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-12",lastUpdated:"2025-08-12",openWeights:!1,cost:{input:.4,output:2},limit:{context:262144,output:262144}},{id:"mistralai/mistral-nemo:free",label:"Mistral Nemo (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2024-07-19",lastUpdated:"2024-07-19",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"mistralai/mistral-small-3.1-24b-instruct",label:"Mistral Small 3.1 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-17",lastUpdated:"2025-03-17",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:8192}},{id:"mistralai/mistral-small-3.2-24b-instruct",label:"Mistral Small 3.2 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-06-20",lastUpdated:"2025-06-20",openWeights:!0,cost:{input:0,output:0},limit:{context:96e3,output:8192}},{id:"mistralai/mistral-small-3.2-24b-instruct:free",label:"Mistral Small 3.2 24B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-06-20",lastUpdated:"2025-06-20",openWeights:!0,cost:{input:0,output:0},limit:{context:96e3,output:96e3}},{id:"moonshotai/kimi-dev-72b:free",label:"Kimi Dev 72b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-06-16",lastUpdated:"2025-06-16",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"moonshotai/kimi-k2",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-11",lastUpdated:"2025-07-11",openWeights:!0,cost:{input:.55,output:2.2},limit:{context:131072,output:32768}},{id:"moonshotai/kimi-k2-0905",label:"Kimi K2 Instruct 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-0905:exacto",label:"Kimi K2 Instruct 0905 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"moonshotai/kimi-k2:free",label:"Kimi K2 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-11",lastUpdated:"2025-07-11",openWeights:!0,cost:{input:0,output:0},limit:{context:32800,output:32800}},{id:"moonshotai/kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}},{id:"nousresearch/deephermes-3-llama-3-8b-preview",label:"DeepHermes 3 Llama 3 8B Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-04",releaseDate:"2025-02-28",lastUpdated:"2025-02-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"nousresearch/hermes-3-llama-3.1-405b:free",label:"Hermes 3 405B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2024-08-16",lastUpdated:"2024-08-16",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-405b",label:"Hermes 4 405B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:1,output:3},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-70b",label:"Hermes 4 70B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:.13,output:.4},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-3-nano-30b-a3b:free",label:"Nemotron 3 Nano 30B A3B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-12-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:256e3,output:256e3}},{id:"nvidia/nemotron-nano-12b-v2-vl:free",label:"Nemotron Nano 12B 2 VL (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-10-28",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"nvidia/nemotron-nano-9b-v2",label:"nvidia-nemotron-nano-9b-v2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-08-18",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:.04,output:.16},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-nano-9b-v2:free",label:"Nemotron Nano 9B V2 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-09-05",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"openai/gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"openai/gpt-4.1-mini",label:"GPT-4.1 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"openai/gpt-4o-mini",label:"GPT-4o-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"openai/gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-chat",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-codex",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-image",label:"GPT-5 Image",modalities:{input:["text","image","pdf"],output:["text","image"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-10-14",lastUpdated:"2025-10-14",openWeights:!1,cost:{input:5,output:10,cacheRead:1.25},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-mini",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-pro",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"openai/gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-chat",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.1-codex",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-max",label:"GPT-5.1-Codex-Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.1,output:9,cacheRead:.11},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-mini",label:"GPT-5.1-Codex-Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:1e5}},{id:"openai/gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-chat",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.2-codex",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-pro",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.072,output:.28},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:exacto",label:"GPT OSS 120B (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.24},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:free",label:"gpt-oss-120b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b",label:"GPT OSS 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.2},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b:free",label:"gpt-oss-20b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-safeguard-20b",label:"GPT OSS Safeguard 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-29",lastUpdated:"2025-10-29",openWeights:!1,cost:{input:.075,output:.3},limit:{context:131072,output:65536}},{id:"openai/o4-mini",label:"o4 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"openrouter/pony-alpha",label:"Pony Alpha",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-06",lastUpdated:"2026-02-06",openWeights:!1,cost:{input:0,output:0},limit:{context:2e5,output:131e3}},{id:"openrouter/sherlock-dash-alpha",label:"Sherlock Dash Alpha",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-15",lastUpdated:"2025-12-14",openWeights:!1,cost:{input:0,output:0},limit:{context:184e4,output:0}},{id:"openrouter/sherlock-think-alpha",label:"Sherlock Think Alpha",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-15",lastUpdated:"2025-12-14",openWeights:!1,cost:{input:0,output:0},limit:{context:184e4,output:0}},{id:"qwen/qwen-2.5-coder-32b-instruct",label:"Qwen2.5 Coder 32B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2024-11-11",lastUpdated:"2024-11-11",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen-2.5-vl-7b-instruct:free",label:"Qwen2.5-VL 7B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-02",releaseDate:"2024-08-28",lastUpdated:"2024-08-28",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"qwen/qwen2.5-vl-32b-instruct:free",label:"Qwen2.5 VL 32B Instruct (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-24",lastUpdated:"2025-03-24",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"qwen/qwen2.5-vl-72b-instruct",label:"Qwen2.5 VL 72B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-01",lastUpdated:"2025-02-01",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen2.5-vl-72b-instruct:free",label:"Qwen2.5 VL 72B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-02",releaseDate:"2025-02-01",lastUpdated:"2025-02-01",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"qwen/qwen3-14b:free",label:"Qwen3 14B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-235b-a22b-07-25",label:"Qwen3 235B A22B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-07-21",openWeights:!0,cost:{input:.15,output:.85},limit:{context:262144,output:131072}},{id:"qwen/qwen3-235b-a22b-07-25:free",label:"Qwen3 235B A22B Instruct 2507 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-07-21",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:131072}},{id:"qwen/qwen3-235b-a22b-thinking-2507",label:"Qwen3 235B A22B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-25",lastUpdated:"2025-07-25",openWeights:!0,cost:{input:.078,output:.312},limit:{context:262144,output:81920}},{id:"qwen/qwen3-235b-a22b:free",label:"Qwen3 235B A22B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"qwen/qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-30b-a3b-thinking-2507",label:"Qwen3 30B A3B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-30b-a3b:free",label:"Qwen3 30B A3B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-32b:free",label:"Qwen3 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-4b:free",label:"Qwen3 4B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-30",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-8b:free",label:"Qwen3 8B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:262144,output:66536}},{id:"qwen/qwen3-coder-30b-a3b-instruct",label:"Qwen3 Coder 30B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-31",lastUpdated:"2025-07-31",openWeights:!0,cost:{input:.07,output:.27},limit:{context:16e4,output:65536}},{id:"qwen/qwen3-coder-flash",label:"Qwen3 Coder Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!1,cost:{input:.3,output:1.5},limit:{context:128e3,output:66536}},{id:"qwen/qwen3-coder:exacto",label:"Qwen3 Coder (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.38,output:1.53},limit:{context:131072,output:32768}},{id:"qwen/qwen3-coder:free",label:"Qwen3 Coder 480B A35B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:66536}},{id:"qwen/qwen3-max",label:"Qwen3 Max",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!1,cost:{input:1.2,output:6},limit:{context:262144,output:32768}},{id:"qwen/qwen3-next-80b-a3b-instruct",label:"Qwen3 Next 80B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwen3-next-80b-a3b-instruct:free",label:"Qwen3 Next 80B A3B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:262144}},{id:"qwen/qwen3-next-80b-a3b-thinking",label:"Qwen3 Next 80B A3B Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwq-32b:free",label:"QwQ 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-05",lastUpdated:"2025-03-05",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"rekaai/reka-flash-3",label:"Reka Flash 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"sarvamai/sarvam-m:free",label:"Sarvam-M (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-25",lastUpdated:"2025-05-25",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"sourceful/riverflow-v2-fast-preview",label:"Riverflow V2 Fast Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-max-preview",label:"Riverflow V2 Max Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-standard-preview",label:"Riverflow V2 Standard Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"thudm/glm-z1-32b:free",label:"GLM Z1 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-17",lastUpdated:"2025-04-17",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"tngtech/deepseek-r1t2-chimera:free",label:"DeepSeek R1T2 Chimera (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-08",lastUpdated:"2025-07-08",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"tngtech/tng-r1t-chimera:free",label:"R1T Chimera (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-11-26",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"x-ai/grok-3",label:"Grok 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-beta",label:"Grok 3 Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini",label:"Grok 3 Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini-beta",label:"Grok 3 Mini Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-4",label:"Grok 4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:256e3,output:64e3}},{id:"x-ai/grok-4-fast",label:"Grok 4 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-08-19",lastUpdated:"2025-08-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.1-fast",label:"Grok 4.1 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-11-19",lastUpdated:"2025-11-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-code-fast-1",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.2,output:1.5,cacheRead:.02},limit:{context:256e3,output:1e4}},{id:"xiaomi/mimo-v2-flash",label:"MiMo-V2-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2025-12-14",lastUpdated:"2025-12-14",openWeights:!0,cost:{input:.1,output:.3,cacheRead:.01},limit:{context:262144,output:65536}},{id:"z-ai/glm-4.5",label:"GLM 4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air",label:"GLM 4.5 Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air:free",label:"GLM 4.5 Air (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5v",label:"GLM 4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"z-ai/glm-4.6",label:"GLM 4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.6:exacto",label:"GLM 4.6 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:1.9,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:204800,output:131072}},{id:"z-ai/glm-4.7-flash",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:.07,output:.4},limit:{context:2e5,output:65535}}],label:"OpenRouter",env:["OPENROUTER_API_KEY"],npm:"@openrouter/ai-sdk-provider",api:"https://openrouter.ai/api/v1",doc:"https://openrouter.ai/models"},opencode:{id:"opencode",models:[{id:"big-pickle",label:"Big Pickle",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-10-17",lastUpdated:"2025-10-17",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:128e3}},{id:"claude-3-5-haiku",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-1",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-5",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4-5",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"gemini-3-flash",label:"Gemini 3 Flash",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"gemini-3-pro",label:"Gemini 3 Pro",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7-free",label:"GLM-4.7 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-codex",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0,cacheRead:0},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"grok-code",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-08-20",lastUpdated:"2025-08-20",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:256e3,output:256e3}},{id:"kimi-k2",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.08},limit:{context:262144,output:262144}},{id:"kimi-k2.5-free",label:"Kimi K2.5 Free",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:262144,output:262144}},{id:"minimax-m2.1",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"minimax-m2.1-free",label:"MiniMax M2.1 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072},provider:{npm:"@ai-sdk/anthropic"}},{id:"qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.45,output:1.8},limit:{context:262144,output:65536}},{id:"trinity-large-preview-free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}}],label:"OpenCode Zen",env:["OPENCODE_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://opencode.ai/zen/v1",doc:"https://opencode.ai/docs/zen"},zai:{id:"zai",models:[{id:"glm-4.5",label:"GLM-4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-air",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1,cacheRead:.03,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-flash",label:"GLM-4.5-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5v",label:"GLM-4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.6v",label:"GLM-4.6V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-08",lastUpdated:"2025-12-08",openWeights:!0,cost:{input:.3,output:.9},limit:{context:128e3,output:32768}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.7-flash",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}}],label:"Z.AI",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/paas/v4",doc:"https://docs.z.ai/guides/overview/pricing"},"zai-coding":{id:"zai-coding",models:[{id:"glm-4.5",label:"GLM-4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-air",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-flash",label:"GLM-4.5-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5v",label:"GLM-4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:16384}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.6v",label:"GLM-4.6V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-08",lastUpdated:"2025-12-08",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:32768}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.7-flash",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}}],label:"Z.AI Coding Plan",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/coding/paas/v4",doc:"https://docs.z.ai/devpack/overview"},moonshot:{id:"moonshot",models:[{id:"kimi-k2-0711-preview",label:"Kimi K2 0711",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-14",lastUpdated:"2025-07-14",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:131072,output:16384}},{id:"kimi-k2-0905-preview",label:"Kimi K2 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking-turbo",label:"Kimi K2 Thinking Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:1.15,output:8,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-turbo-preview",label:"Kimi K2 Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:2.4,output:10,cacheRead:.6},limit:{context:262144,output:262144}},{id:"kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2026-01",lastUpdated:"2026-01",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}}],label:"Moonshot AI",env:["MOONSHOT_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.moonshot.ai/v1",doc:"https://platform.moonshot.ai/docs/api/chat"},copilot:{id:"copilot",models:[{id:"claude-haiku-4.5",label:"Claude Haiku 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16e3}},{id:"claude-opus-4.5",label:"Claude Opus 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-08-01",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16e3}},{id:"claude-opus-4.6",label:"Claude Opus 4.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"claude-opus-41",label:"Claude Opus 4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:0,output:0},limit:{context:8e4,output:16e3}},{id:"claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16e3}},{id:"claude-sonnet-4.5",label:"Claude Sonnet 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16e3}},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-flash-preview",label:"Gemini 3 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16384}},{id:"gpt-4o",label:"GPT-4o",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:0,output:0},limit:{context:64e3,output:16384}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5-mini",label:"GPT-5-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-08-13",lastUpdated:"2025-08-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.1-codex",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.1-codex-max",label:"GPT-5.1-Codex-max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-12-04",lastUpdated:"2025-12-04",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1-Codex-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:1e5}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-5.2-codex",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:272e3,output:128e3}},{id:"grok-code-fast-1",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-27",lastUpdated:"2025-08-27",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}}],label:"GitHub Copilot",env:["GITHUB_TOKEN"],npm:"@ai-sdk/openai-compatible",api:"https://api.githubcopilot.com",doc:"https://docs.github.com/en/copilot"}},Ws="setu",tI=e=>e==="codex-mini-latest"?!0:e==="gpt-5.3"||e.startsWith("gpt-5.3-")?!1:!!(e.startsWith("gpt-5")||e.includes("codex")),gI=e=>!!(e.includes("-3-5-")||e.includes("-3.5-")||e.match(/claude-(haiku|sonnet|opus)-3/)||e.includes("-4-")||e.includes("-4.")||e.match(/claude-(haiku|sonnet|opus)-4/)),QI=e=>!!e.startsWith("gemini-3"),BI=[{id:"openai",npm:"@ai-sdk/openai",family:"openai"},{id:"anthropic",npm:"@ai-sdk/anthropic",family:"anthropic"},{id:"moonshot",npm:"@ai-sdk/openai-compatible",family:"moonshot"},{id:"google",npm:"@ai-sdk/google",family:"google"}];function sI(e){return{...e,modalities:e.modalities?{input:e.modalities.input?[...e.modalities.input]:void 0,output:e.modalities.output?[...e.modalities.output]:void 0}:void 0,cost:e.cost?{...e.cost}:void 0,limit:e.limit?{...e.limit}:void 0,provider:e.provider?{...e.provider}:void 0}}function oI(e){const A=BI.flatMap(({id:B,npm:s,family:o})=>(e[B]?.models??[]).filter(i=>B==="openai"?tI(i.id):B==="anthropic"?gI(i.id):B==="google"?QI(i.id):!0).map(i=>{const C=sI(i);return C.provider={...C.provider??{},npm:s,family:o},C}));if(!A.length)return null;A.sort((B,s)=>{const o=B.provider?.npm??"",E=s.provider?.npm??"";return o===E?B.id.localeCompare(s.id):o==="@ai-sdk/openai"?-1:E==="@ai-sdk/openai"?1:o.localeCompare(E)});const g="codex-mini-latest",Q=A.findIndex(B=>B.id===g);if(Q>0){const[B]=A.splice(Q,1);A.unshift(B)}return{id:Ws,label:"Setu",env:["SETU_PRIVATE_KEY"],api:"https://setu.ottocode.io/v1",doc:"https://setu.ottocode.io/docs",models:A}}function EI(e){const A=oI(e),g={...e};return A&&(g[Ws]=A),g}const zs=EI(eI),iI={openai:[{match:e=>e.includes("gpt-4o-mini"),inputPerMillion:.15,outputPerMillion:.6},{match:e=>e.includes("gpt-4o"),inputPerMillion:5,outputPerMillion:15},{match:e=>e.includes("gpt-4.1-mini"),inputPerMillion:1,outputPerMillion:4},{match:e=>e.includes("gpt-4.1"),inputPerMillion:5,outputPerMillion:15}],anthropic:[{match:e=>e.includes("claude-3-haiku"),inputPerMillion:.25,outputPerMillion:1.25},{match:e=>e.includes("claude-3-sonnet"),inputPerMillion:3,outputPerMillion:15},{match:e=>e.includes("claude-3-opus"),inputPerMillion:15,outputPerMillion:75}],google:[{match:e=>e.includes("gemini-1.5-flash"),inputPerMillion:.35,outputPerMillion:1.05},{match:e=>e.includes("gemini-1.5-pro"),inputPerMillion:3.5,outputPerMillion:10.5}],openrouter:[],opencode:[],setu:[],zai:[],"zai-coding":[],moonshot:[],copilot:[]};function aI(e,A){const g=iI[e];if(g)return g.find(Q=>{try{return Q.match(A)}catch{return!1}})}function CI(e,A){const g=zs[e];if(!g)return;const Q=A.toLowerCase();return g.models.find(B=>B.id?.toLowerCase()===Q)}function Vs(e,A,g){const Q=typeof g.inputTokens=="number"?g.inputTokens:0,B=typeof g.outputTokens=="number"?g.outputTokens:0,s=typeof g.cachedInputTokens=="number"?g.cachedInputTokens:0,o=typeof g.cacheCreationInputTokens=="number"?g.cacheCreationInputTokens:0;if(!Q&&!B&&!s&&!o)return;const E=CI(e,A);if(E?.cost?.input!=null||E?.cost?.output!=null){const r=typeof E.cost?.input=="number"?E.cost.input:0,n=typeof E.cost?.output=="number"?E.cost.output:0,c=typeof E.cost?.cacheRead=="number"?E.cost.cacheRead:0,d=typeof E.cost?.cacheWrite=="number"?E.cost.cacheWrite:0,p=Math.max(0,Q-s-o)*r/1e6,h=B*n/1e6,m=s*c/1e6,k=o*d/1e6,f=p+h+m+k;return Number.isFinite(f)?Number(f.toFixed(6)):void 0}const a=aI(e,A.toLowerCase());if(!a)return;const C=Math.max(0,Q-s-o)*a.inputPerMillion/1e6,I=B*a.outputPerMillion/1e6,l=C+I;return Number.isFinite(l)?Number(l.toFixed(6)):void 0}function Zs(e,A){const g=zs[e];if(g)return g.models?.find(Q=>Q.id===A)}function rI({session:e,onNavigateToSession:A}){const{data:g}=js(e.sessionType==="branch"?e.id:void 0),{data:Q}=IQ(e.id),B=u.useMemo(()=>{const c=e.totalInputTokens||0,d=e.totalOutputTokens||0,D=e.totalCachedTokens||0,p=e.totalCacheCreationTokens||0;return Vs(e.provider,e.model,{inputTokens:c,outputTokens:d,cachedInputTokens:D,cacheCreationInputTokens:p})??0},[e.provider,e.model,e.totalInputTokens,e.totalOutputTokens,e.totalCachedTokens,e.totalCacheCreationTokens]),s=c=>{if(!c)return"0s";const d=Math.floor(c/1e3),D=Math.floor(d/60),p=Math.floor(D/60);return p>0?`${p}h ${D%60}m`:D>0?`${D}m ${d%60}s`:`${d}s`},o=c=>c.toLocaleString("en-US"),E=c=>c>=1e6?`${(c/1e6).toFixed(1)}M`:c>=1e3?`${(c/1e3).toFixed(1)}K`:c.toString(),a=e.currentContextTokens||0,i=e.totalOutputTokens||0,C=e.sessionType==="branch",I=g?.parent,l=u.useMemo(()=>Zs(e.provider,e.model)?.limit?.context,[e.provider,e.model]),r=l?a/l*100:0,n=()=>r>=90?"text-red-600 dark:text-red-400":r>=70?"text-amber-600 dark:text-amber-400":"text-foreground";return t.jsx("div",{className:"border-b border-border bg-background/95 backdrop-blur-sm",children:t.jsxs("div",{className:"max-w-3xl mx-auto px-6 py-6",children:[C&&t.jsxs("div",{className:"flex items-center gap-2 mb-3 text-sm",children:[t.jsx(zA,{className:"h-4 w-4 text-violet-500"}),t.jsx("span",{className:"text-violet-600 dark:text-violet-400 font-medium",children:"Branch"}),I&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground",children:"from"}),t.jsxs("button",{type:"button",onClick:()=>A?.(I.id),className:"text-primary hover:underline flex items-center gap-1",children:[I.title||`Session ${I.id.slice(0,8)}`,t.jsx(LB,{className:"h-3 w-3"})]})]}),!I&&e.parentSessionId&&t.jsx("span",{className:"text-muted-foreground italic text-xs",children:"(parent deleted)"})]}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("h1",{className:"text-2xl font-semibold text-foreground leading-tight truncate",children:e.title||"Untitled Session"}),Q?.shared&&t.jsxs("button",{type:"button",onClick:()=>Ze(Q.url),className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[t.jsx(eQ,{className:"h-3 w-3"}),t.jsx("span",{children:"Shared"}),Q.pendingMessages&&Q.pendingMessages>0?t.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[t.jsx(PA,{className:"h-2.5 w-2.5"}),Q.pendingMessages]}):t.jsx(KA,{className:"h-2.5 w-2.5 opacity-60"})]})]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 mt-4 text-sm text-muted-foreground",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("div",{className:"flex items-center gap-1.5",title:`Current context window: ${o(a)} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),t.jsx("span",{className:`font-medium ${n()}`,children:E(a)})]}),t.jsxs("div",{className:"flex items-center gap-1.5",title:`Total output: ${o(i)} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"out"}),t.jsx("span",{className:"font-medium text-foreground",children:E(i)})]})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(tQ,{className:"w-4 h-4"}),t.jsx("span",{className:"font-medium text-foreground",children:s(e.totalToolTimeMs)})]}),B>0&&t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx(qB,{className:"w-4 h-4"}),t.jsx("span",{className:"font-medium text-foreground",children:B.toFixed(4)})]}),t.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[t.jsx(RA,{provider:e.provider,size:18}),t.jsx("span",{className:"font-medium text-foreground truncate max-w-48",children:e.model})]})]})]})})}const re=NA(e=>({usage:{},isLoading:{},lastFetched:{},isModalOpen:!1,modalProvider:null,setUsage:(A,g)=>e(Q=>({usage:{...Q.usage,[A]:g}})),setLoading:(A,g)=>e(Q=>({isLoading:{...Q.isLoading,[A]:g}})),setLastFetched:(A,g)=>e(Q=>({lastFetched:{...Q.lastFetched,[A]:g}})),openModal:A=>e({isModalOpen:!0,modalProvider:A}),closeModal:()=>e({isModalOpen:!1,modalProvider:null})})),Fe=22,Pg=2.5,Wg=(Fe-Pg)/2,xg=2*Math.PI*Wg;function nI(e){return e>=90?"#ef4444":e>=70?"#f59e0b":"#3b82f6"}const II=u.memo(function({usage:A,provider:g}){const Q=re(E=>E.openModal),B=A.primaryWindow?.usedPercent??0,s=xg-B/100*xg,o=nI(B);return t.jsxs("button",{type:"button",onClick:()=>Q(g),className:"relative flex items-center hover:opacity-80 transition-opacity cursor-pointer",title:`Usage: ${Math.round(B)}% (5h window) — Click for details`,children:[t.jsxs("svg",{width:Fe,height:Fe,className:"-rotate-90",role:"img","aria-label":"Usage ring",children:[t.jsx("circle",{cx:Fe/2,cy:Fe/2,r:Wg,fill:"none",stroke:"hsl(var(--muted))",strokeWidth:Pg}),t.jsx("circle",{cx:Fe/2,cy:Fe/2,r:Wg,fill:"none",stroke:o,strokeWidth:Pg,strokeDasharray:xg,strokeDashoffset:s,strokeLinecap:"round",className:"transition-all duration-500"})]}),t.jsx("span",{className:"absolute inset-0 flex items-center justify-center rotate-0 font-medium text-muted-foreground",style:{fontSize:7},children:"5h"})]})});function lI(e){if(!e)return"Unknown";const A=Date.now(),Q=new Date(e).getTime()-A;if(Q<=0)return"Now";const B=Math.floor(Q/864e5),s=Math.floor(Q%864e5/36e5),o=Math.floor(Q%36e5/6e4);return B>0?`${B}d ${s}h`:s>0?`${s}h ${o}m`:`${o}m`}function nB(e){return e<=18e3?"5 Hour":e<=86400?"24 Hour":"7 Day"}function fg({label:e,window:A}){const g=Math.min(A.usedPercent,100),Q=g>=90?"bg-red-500":g>=70?"bg-amber-500":"bg-blue-500";return t.jsxs("div",{className:"space-y-1.5",children:[t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:e}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("span",{className:"font-medium text-foreground",children:[Math.round(g),"%"]}),A.resetsAt&&t.jsxs("span",{className:"text-xs text-muted-foreground",children:["resets in ",lI(A.resetsAt)]})]})]}),t.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:t.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${Q}`,style:{width:`${g}%`}})})]})}const cI=u.memo(function(){const A=re(o=>o.isModalOpen),g=re(o=>o.modalProvider),Q=re(o=>o.closeModal),B=re(o=>g?o.usage[g]:void 0),s=u.useMemo(()=>t.jsxs("div",{className:"flex items-center gap-2",children:[g&&t.jsx(RA,{provider:g,size:20}),t.jsx("span",{children:"Usage & Limits"})]}),[g]);return B?t.jsx(Ye,{isOpen:A,onClose:Q,title:s,maxWidth:"sm",children:t.jsxs("div",{className:"space-y-5",children:[B.limitReached&&t.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md bg-red-500/10 border border-red-500/20",children:[t.jsx("span",{className:"w-2 h-2 rounded-full bg-red-500 flex-shrink-0"}),t.jsx("span",{className:"text-sm text-red-600 dark:text-red-400 font-medium",children:"Rate limit reached"})]}),B.primaryWindow&&t.jsx(fg,{label:`${nB(B.primaryWindow.windowSeconds)} Window`,window:B.primaryWindow}),B.secondaryWindow&&t.jsx(fg,{label:`${nB(B.secondaryWindow.windowSeconds)} Window`,window:B.secondaryWindow}),B.sonnetWindow&&B.sonnetWindow.usedPercent>0&&t.jsx(fg,{label:"Sonnet (7 Day)",window:{usedPercent:B.sonnetWindow.usedPercent,windowSeconds:604800,resetsAt:B.sonnetWindow.resetsAt}}),B.extraUsage?.is_enabled&&t.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Extra Credits"}),t.jsxs("span",{className:"font-medium text-foreground",children:["$",B.extraUsage.used_credits.toFixed(2)," / $",B.extraUsage.monthly_limit]})]})}),B.credits?.has_credits&&t.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Credits"}),t.jsx("span",{className:"font-medium text-foreground",children:B.credits.balance!==null?`$${B.credits.balance.toFixed(2)}`:"Available"})]})}),B.planType&&t.jsx("div",{className:"pt-2 border-t border-border",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Plan"}),t.jsx("span",{className:"font-medium text-foreground capitalize",children:B.planType})]})})]})}):null}),dI=6e4,uI=3e4;function hI(e,A){const g=re(i=>i.setUsage),Q=re(i=>i.setLoading),B=re(i=>i.setLastFetched),s=re(i=>e?i.usage[e]:void 0),o=re(i=>e?i.lastFetched[e]:0),E=A==="oauth"&&(e==="anthropic"||e==="openai"),a=u.useCallback(async()=>{if(!(!e||!E)){Q(e,!0);try{const i=await v.getProviderUsage(e);g(e,i),B(e,Date.now())}catch{}finally{Q(e,!1)}}},[e,E,g,Q,B]);return u.useEffect(()=>{if(!E)return;(!o||Date.now()-o>uI)&&a();const C=setInterval(a,dI);return()=>clearInterval(C)},[E,a,o]),{usage:s,fetchUsage:a,isOAuthProvider:E}}function DI({session:e,isVisible:A,isGenerating:g,onNavigateToSession:Q}){const{data:B}=js(e.sessionType==="branch"?e.id:void 0),{data:s}=IQ(e.id),o=u.useMemo(()=>{const p=e.totalInputTokens||0,h=e.totalOutputTokens||0,m=e.totalCachedTokens||0,k=e.totalCacheCreationTokens||0;return Vs(e.provider,e.model,{inputTokens:p,outputTokens:h,cachedInputTokens:m,cacheCreationInputTokens:k})??0},[e.provider,e.model,e.totalInputTokens,e.totalOutputTokens,e.totalCachedTokens,e.totalCacheCreationTokens]),E=p=>p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString(),a=e.currentContextTokens||0,i=e.sessionType==="branch",C=B?.parent,I=u.useMemo(()=>Zs(e.provider,e.model)?.limit?.context,[e.provider,e.model]),l=I?a/I*100:0,r=()=>l>=90?"text-red-600 dark:text-red-400":l>=70?"text-amber-600 dark:text-amber-400":"text-foreground",{data:n}=ut(),c=n?.[e.provider]?.authType,{usage:d,isOAuthProvider:D}=hI(e.provider,c);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`absolute top-0 left-0 right-0 h-14 border-b border-border bg-background/95 backdrop-blur-sm z-10 transition-transform duration-200 ${A?"translate-y-0":"-translate-y-full"}`,children:t.jsxs("div",{className:"h-full px-6 flex items-center justify-between gap-4 text-sm",children:[t.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2 text-muted-foreground",children:[i?t.jsx(zA,{className:"w-4 h-4 flex-shrink-0 text-violet-500"}):t.jsx(OB,{className:"w-4 h-4 flex-shrink-0"}),t.jsx("span",{className:"text-foreground font-medium truncate",children:e.title||"Untitled Session"}),s?.shared&&t.jsxs("button",{type:"button",onClick:()=>Ze(s.url),className:"flex items-center gap-1 px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[t.jsx(eQ,{className:"h-3 w-3"}),s.pendingMessages&&s.pendingMessages>0?t.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[t.jsx(PA,{className:"h-2.5 w-2.5"}),s.pendingMessages]}):t.jsx(KA,{className:"h-2.5 w-2.5 opacity-60"})]}),i&&C&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground hidden sm:inline",children:"from"}),t.jsxs("button",{type:"button",onClick:()=>Q?.(C.id),className:"text-primary hover:underline flex items-center gap-0.5 truncate max-w-32",title:C.title||`Session ${C.id.slice(0,8)}`,children:[t.jsx("span",{className:"truncate",children:C.title||`Session ${C.id.slice(0,8)}`}),t.jsx(LB,{className:"h-3 w-3 flex-shrink-0"})]})]})]}),t.jsxs("div",{className:"flex-shrink-0 flex items-center gap-5 text-muted-foreground",children:[g&&t.jsx(Cn,{sessionId:e.id}),D&&d&&t.jsx(II,{usage:d,provider:e.provider}),t.jsx("div",{className:"flex items-center gap-3",children:t.jsxs("div",{className:"flex items-center gap-1",title:`Current context window: ${a.toLocaleString()} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),t.jsx("span",{className:`font-medium ${r()}`,children:E(a)})]})}),o>0&&t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx(qB,{className:"w-4 h-4"}),t.jsx("span",{className:"text-foreground font-medium",children:o.toFixed(4)})]}),t.jsxs("div",{className:"hidden sm:flex items-center gap-2",children:[t.jsx(RA,{provider:e.provider,size:16}),t.jsx("span",{className:"font-medium text-foreground truncate max-w-40",children:e.model})]})]})]})}),t.jsx(cI,{})]})}const wI=u.memo(function({pendingTopup:A,onMethodSelected:g,onCancel:Q}){const[B,s]=u.useState(!1),[o,E]=u.useState(null),a=EA(l=>l.openTopupModal),i=async()=>{E("crypto"),s(!0);try{await v.selectTopupMethod(A.sessionId,"crypto"),g("crypto")}catch(l){AA.error(l instanceof Error?l.message:"Failed to process payment"),s(!1),E(null)}},C=async()=>{E("fiat"),a(),v.selectTopupMethod(A.sessionId,"fiat").catch(()=>{}),g("fiat")},I=async()=>{s(!0);try{await v.cancelTopup(A.sessionId),Q()}catch(l){AA.error(l instanceof Error?l.message:"Failed to cancel"),s(!1)}};return t.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(oe,{className:"h-4 w-4 text-amber-500 flex-shrink-0"}),t.jsx("span",{className:"font-medium text-foreground text-sm",children:"Insufficient Balance"}),t.jsx("span",{className:"text-amber-600 dark:text-amber-400 font-medium text-sm",children:"payment required"})]}),t.jsxs("div",{className:"ml-6 bg-muted/30 rounded-lg p-3 space-y-2 text-sm",children:[t.jsxs("div",{className:"flex justify-between",children:[t.jsx("span",{className:"text-muted-foreground",children:"Request cost"}),t.jsxs("span",{className:"font-mono",children:["~$",A.amountUsd.toFixed(4)]})]}),t.jsxs("div",{className:"flex justify-between",children:[t.jsx("span",{className:"text-muted-foreground",children:"Current balance"}),t.jsxs("span",{className:"font-mono",children:["$",A.currentBalance.toFixed(4)]})]})]}),t.jsxs("div",{className:"ml-6 flex flex-wrap items-center gap-2",children:[t.jsxs("button",{type:"button",onClick:I,disabled:B,title:"Cancel request",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50",children:[t.jsx(GA,{className:"w-3 h-3"}),"Cancel"]}),t.jsxs("button",{type:"button",onClick:i,disabled:B,title:"Pay with USDC from your wallet",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-violet-600 text-white hover:bg-violet-700 transition-colors disabled:opacity-50",children:[o==="crypto"&&B?t.jsx(nA,{className:"w-3 h-3 animate-spin"}):t.jsx(gQ,{className:"w-3 h-3"}),"Pay with USDC"]}),t.jsxs("button",{type:"button",onClick:C,disabled:B,title:"Top up balance with card (min $5)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-violet-500 text-violet-600 dark:text-violet-400 hover:bg-violet-500/10 transition-colors disabled:opacity-50",children:[o==="fiat"&&B?t.jsx(nA,{className:"w-3 h-3 animate-spin"}):t.jsx(it,{className:"w-3 h-3"}),"Top up with Card",t.jsx("span",{className:"text-[10px] opacity-70",children:"(min $5)"})]})]}),t.jsx("p",{className:"ml-6 text-xs text-muted-foreground",children:o==="crypto"?"Processing USDC payment from your wallet...":o==="fiat"?"Opening Polar checkout...":"Select a payment method to continue your request."})]})}),Wt=NA(e=>({pendingTopup:null,isProcessing:!1,selectedMethod:null,setPendingTopup:A=>e({pendingTopup:A,isProcessing:!1,selectedMethod:null}),setProcessing:A=>e({isProcessing:A}),setSelectedMethod:A=>e({selectedMethod:A}),clearPendingTopup:()=>e({pendingTopup:null,isProcessing:!1,selectedMethod:null})})),pI=u.memo(function({messages:A,session:g,sessionId:Q,isGenerating:B,disableAutoScroll:s=!1,onSelectSession:o}){const E=CA(),a=u.useRef(null),i=u.useRef(null),C=u.useRef(null),[I,l]=u.useState(!0),r=u.useRef(!0),[n,c]=u.useState(!1),d=u.useRef(!1),D=u.useRef(void 0),p=u.useRef(0),h=u.useRef(void 0),m=u.useRef(!1),k=u.useRef(g?.id),f=u.useRef(A.length),M=u.useRef(B),N=u.useRef(0),x=u.useRef(0),G=Wt(L=>L.pendingTopup),w=Wt(L=>L.clearPendingTopup),F=G&&G.sessionId===Q,y=u.useCallback(()=>{const L=i.current;if(!L)return;const{scrollTop:q,scrollHeight:J,clientHeight:H}=L,W=J-q-H,Z=J>N.current,iA=q<x.current-5;N.current=J,x.current=q,W<100?(r.current=!0,l(!0)):iA?(r.current=!1,l(!1),d.current=!0):!Z&&r.current&&(r.current=!1,l(!1)),(iA||!r.current&&W>=100)&&(D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{d.current=!1},150));const rA=C.current;if(rA){const bA=rA.getBoundingClientRect(),j=L.getBoundingClientRect();c(bA.bottom<j.top)}},[]);u.useEffect(()=>{if(s)return;const L=g?.id!==k.current;if(k.current=g?.id,L&&(m.current=!1),!m.current&&A.length>0){m.current=!0;const q=i.current;q&&(q.scrollTop=q.scrollHeight)}},[A.length,g?.id,s]),u.useEffect(()=>{if(s)return;const L=B&&!M.current,q=A.length>f.current;M.current=B,f.current=A.length,L?(d.current=!1,r.current=!0,l(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{const J=i.current;J&&(J.scrollTop=J.scrollHeight)})})):q&&!d.current&&!B&&(r.current=!0,l(!0))},[A.length,B,s]),u.useEffect(()=>{if(s)return;const L=i.current;if(!L||!I||d.current)return;p.current=L.scrollHeight-L.clientHeight;const q=()=>{const J=i.current;if(!J||d.current)return;const H=J.scrollTop,Z=J.scrollHeight-J.clientHeight-H;if(Math.abs(Z)<1){J.scrollTop=J.scrollHeight-J.clientHeight;return}if(Math.abs(Z)<10){J.scrollTop=J.scrollHeight-J.clientHeight;return}J.scrollTop=H+Z*.15,h.current=requestAnimationFrame(q)};h.current&&cancelAnimationFrame(h.current),h.current=requestAnimationFrame(q)},[A,I]),u.useEffect(()=>()=>{D.current&&clearTimeout(D.current),h.current&&cancelAnimationFrame(h.current)},[]);const S=()=>{d.current=!1,r.current=!0,l(!0);const L=i.current;L&&(L.scrollTop=L.scrollHeight)},K=u.useMemo(()=>A.filter(L=>L.role!=="system"),[A]),T=u.useCallback(L=>async()=>{if(Q&&L){E.setQueryData(["messages",Q],q=>q&&q.map(J=>{if(J.id!==L)return J;const H=J.parts?.filter(W=>!(W.type==="error"||W.type==="tool_call"&&W.toolName==="finish"))??[];return{...J,status:"pending",parts:H,error:null}}));try{await v.retryMessage(Q,L)}catch(q){AA.error(q instanceof Error?q.message:"Failed to retry")}}},[Q,E]),R=u.useCallback(async()=>{if(Q)try{await v.sendMessage(Q,{content:"/compact"})}catch(L){AA.error(L instanceof Error?L.message:"Failed to compact")}},[Q]);return A.length===0?t.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground text-sm",children:"No messages yet. Start a conversation below."}):t.jsxs("div",{className:"absolute inset-0 flex flex-col",children:[g&&t.jsx(DI,{session:g,isVisible:n,isGenerating:B,onNavigateToSession:o}),t.jsxs("div",{ref:i,className:"flex-1 overflow-y-auto",onScroll:y,children:[t.jsx("div",{ref:C,children:g&&t.jsx(rI,{session:g,onNavigateToSession:o})}),t.jsx("div",{className:"p-6 pb-64",children:t.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[K.map((L,q)=>{const J=K[q-1],H=K[q+1],W=q===K.length-1;if(L.role==="user"){const Z=H&&H.role==="assistant"?H:void 0;return t.jsx(Ps,{sessionId:Q,message:L,isFirst:q===0,nextAssistantMessageId:Z?.id},L.id)}if(L.role==="assistant"){const Z=!J||J.role!=="assistant",iA=H&&H.role==="assistant";return t.jsx(Hs,{sessionId:Q,message:L,showHeader:Z,hasNextAssistantMessage:iA,isLastMessage:W,onBranchCreated:o,onRetry:W?T(L.id):void 0,onCompact:W?R:void 0},L.id)}return null}),F&&G&&t.jsx("div",{className:"py-4",children:t.jsx(wI,{pendingTopup:G,onMethodSelected:()=>w(),onCancel:()=>w()})}),t.jsx("div",{ref:a})]})})]}),!I&&t.jsxs("button",{type:"button",onClick:S,className:"absolute bottom-36 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 bg-background border border-border rounded-full shadow-lg hover:bg-muted/50 transition-all text-sm text-foreground z-10",children:[t.jsx(Vo,{className:"w-4 h-4"}),t.jsx("span",{children:"Scroll to bottom"})]})]})});class Xs{abortController=null;handlers=new Map;running=!1;async connect(A){this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.running=!0;try{const g=await fetch(A,{headers:{Accept:"text/event-stream"},signal:this.abortController.signal});if(!g.ok){console.error("[SSE] Connection failed:",g.status);return}const Q=g.body?.getReader();if(!Q){console.error("[SSE] No response body");return}const B=new TextDecoder;let s="";for(;this.running;){const{done:o,value:E}=await Q.read();if(o)break;s+=B.decode(E,{stream:!0});let a=s.indexOf(`
97
+ `)})})]}),a&&t.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[t.jsxs("button",{type:"button",onClick:x,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground transition-colors",title:"Cancel and restore to input",children:[t.jsx(RB,{className:"h-3 w-3"}),"Cancel"]}),t.jsxs("button",{type:"button",onClick:G,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-destructive/10 hover:bg-destructive/20 text-destructive transition-colors",title:"Delete from queue",children:[t.jsx(AQ,{className:"h-3 w-3"}),"Delete"]})]})]}),t.jsx("div",{className:"flex-shrink-0 w-8 flex items-start justify-center",children:t.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative bg-background",children:t.jsx(Xg,{className:"h-4 w-4 text-emerald-700 dark:text-emerald-300"})})})]})}),B&&t.jsxs("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4",onClick:()=>s(null),onKeyDown:w=>w.key==="Escape"&&s(null),tabIndex:-1,children:[t.jsx("button",{type:"button",onClick:()=>s(null),className:"absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 transition-colors",children:t.jsx(GA,{className:"w-6 h-6 text-white"})}),t.jsx("img",{src:B,alt:"Expanded attachment",className:"max-w-full max-h-full object-contain rounded-lg",onClick:w=>w.stopPropagation(),onKeyDown:w=>w.key==="Enter"&&w.stopPropagation()})]})]})},(e,A)=>{const g=e.message.parts?.[0],Q=A.message.parts?.[0];return e.message.id===A.message.id&&g?.content===Q?.content&&g?.contentJson===Q?.contentJson&&e.message.createdAt===A.message.createdAt&&e.message.parts?.length===A.message.parts?.length&&e.sessionId===A.sessionId&&e.nextAssistantMessageId===A.nextAssistantMessageId}),eI={openai:{id:"openai",models:[{id:"codex-mini-latest",label:"Codex Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-04",releaseDate:"2025-05-16",lastUpdated:"2025-05-16",openWeights:!1,cost:{input:1.5,output:6,cacheRead:.375},limit:{context:2e5,output:1e5}},{id:"gpt-3.5-turbo",label:"GPT-3.5-turbo",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2021-09-01",releaseDate:"2023-03-01",lastUpdated:"2023-11-06",openWeights:!1,cost:{input:.5,output:1.5,cacheRead:1.25},limit:{context:16385,output:4096}},{id:"gpt-4",label:"GPT-4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-11",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:30,output:60},limit:{context:8192,output:8192}},{id:"gpt-4-turbo",label:"GPT-4 Turbo",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:10,output:30},limit:{context:128e3,output:4096}},{id:"gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"gpt-4.1-mini",label:"GPT-4.1 mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"gpt-4.1-nano",label:"GPT-4.1 nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.03},limit:{context:1047576,output:32768}},{id:"gpt-4o",label:"GPT-4o",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-05-13",label:"GPT-4o (2024-05-13)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:5,output:15},limit:{context:128e3,output:4096}},{id:"gpt-4o-2024-08-06",label:"GPT-4o (2024-08-06)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-08-06",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-11-20",label:"GPT-4o (2024-11-20)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-11-20",lastUpdated:"2024-11-20",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-mini",label:"GPT-4o mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-chat-latest",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"gpt-5-codex",label:"GPT-5-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-mini",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4,cacheRead:.005},limit:{context:4e5,output:128e3}},{id:"gpt-5-pro",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.13},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-chat-latest",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"gpt-5.1-codex",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-chat-latest",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-pro",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-codex",label:"GPT-5.3 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-codex-spark",label:"GPT-5.3 Codex Spark",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:32e3}},{id:"o1",label:"o1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2024-12-05",lastUpdated:"2024-12-05",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:2e5,output:1e5}},{id:"o1-mini",label:"o1-mini",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:128e3,output:65536}},{id:"o1-preview",label:"o1-preview",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:128e3,output:32768}},{id:"o1-pro",label:"o1-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2025-03-19",lastUpdated:"2025-03-19",openWeights:!1,cost:{input:150,output:600},limit:{context:2e5,output:1e5}},{id:"o3",label:"o3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"o3-deep-research",label:"o3-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:10,output:40,cacheRead:2.5},limit:{context:2e5,output:1e5}},{id:"o3-mini",label:"o3-mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-05",releaseDate:"2024-12-20",lastUpdated:"2025-01-29",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:2e5,output:1e5}},{id:"o3-pro",label:"o3-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-06-10",lastUpdated:"2025-06-10",openWeights:!1,cost:{input:20,output:80},limit:{context:2e5,output:1e5}},{id:"o4-mini",label:"o4-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"o4-mini-deep-research",label:"o4-mini-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"text-embedding-3-large",label:"text-embedding-3-large",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.13,output:0},limit:{context:8191,output:3072}},{id:"text-embedding-3-small",label:"text-embedding-3-small",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.02,output:0},limit:{context:8191,output:1536}},{id:"text-embedding-ada-002",label:"text-embedding-ada-002",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2022-12",releaseDate:"2022-12-15",lastUpdated:"2022-12-15",openWeights:!1,cost:{input:.1,output:0},limit:{context:8192,output:1536}}],label:"OpenAI",env:["OPENAI_API_KEY"],npm:"@ai-sdk/openai",doc:"https://platform.openai.com/docs/models"},anthropic:{id:"anthropic",models:[{id:"claude-3-5-haiku-20241022",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-haiku-latest",label:"Claude Haiku 3.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20240620",label:"Claude Sonnet 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-06-20",lastUpdated:"2024-06-20",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20241022",label:"Claude Sonnet 3.5 v2",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-7-sonnet-20250219",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-31",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-3-7-sonnet-latest",label:"Claude Sonnet 3.7 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-31",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-3-haiku-20240307",label:"Claude Haiku 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-13",lastUpdated:"2024-03-13",openWeights:!1,cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-3-opus-20240229",label:"Claude Opus 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-02-29",lastUpdated:"2024-02-29",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:4096}},{id:"claude-3-sonnet-20240229",label:"Claude Sonnet 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-04",lastUpdated:"2024-03-04",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-0",label:"Claude Opus 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1",label:"Claude Opus 4.1 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1-20250805",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-20250514",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-5",label:"Claude Opus 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-5-20251101",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-01",lastUpdated:"2025-11-01",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:128e3}},{id:"claude-sonnet-4-0",label:"Claude Sonnet 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-20250514",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5",label:"Claude Sonnet 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5-20250929",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}}],label:"Anthropic",env:["ANTHROPIC_API_KEY"],npm:"@ai-sdk/anthropic",doc:"https://docs.anthropic.com/en/docs/about-claude/models"},google:{id:"google",models:[{id:"gemini-1.5-flash",label:"Gemini 1.5 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-05-14",lastUpdated:"2024-05-14",openWeights:!1,cost:{input:.075,output:.3,cacheRead:.01875},limit:{context:1e6,output:8192}},{id:"gemini-1.5-flash-8b",label:"Gemini 1.5 Flash-8B",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-10-03",lastUpdated:"2024-10-03",openWeights:!1,cost:{input:.0375,output:.15,cacheRead:.01},limit:{context:1e6,output:8192}},{id:"gemini-1.5-pro",label:"Gemini 1.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-02-15",lastUpdated:"2024-02-15",openWeights:!1,cost:{input:1.25,output:5,cacheRead:.3125},limit:{context:1e6,output:8192}},{id:"gemini-2.0-flash",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"gemini-2.0-flash-lite",label:"Gemini 2.0 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.075,output:.3},limit:{context:1048576,output:8192}},{id:"gemini-2.5-flash",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-image",label:"Gemini 2.5 Flash Image",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-image-preview",label:"Gemini 2.5 Flash Image (Preview)",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-06-17",label:"Gemini 2.5 Flash Lite Preview 06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-09-2025",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-04-17",label:"Gemini 2.5 Flash Preview 04-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-04-17",lastUpdated:"2025-04-17",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-05-20",label:"Gemini 2.5 Flash Preview 05-20",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-09-2025",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-tts",label:"Gemini 2.5 Flash Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:.5,output:10},limit:{context:8e3,output:16e3}},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-05-06",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-06-05",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-tts",label:"Gemini 2.5 Pro Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:1,output:20},limit:{context:8e3,output:16e3}},{id:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1e6,output:64e3}},{id:"gemini-embedding-001",label:"Gemini Embedding 001",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-05",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:0},limit:{context:2048,output:3072}},{id:"gemini-flash-latest",label:"Gemini Flash Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-flash-lite-latest",label:"Gemini Flash-Lite Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-live-2.5-flash",label:"Gemini Live 2.5 Flash",modalities:{input:["text","image","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-01",lastUpdated:"2025-09-01",openWeights:!1,cost:{input:.5,output:2},limit:{context:128e3,output:8e3}},{id:"gemini-live-2.5-flash-preview-native-audio",label:"Gemini Live 2.5 Flash Preview Native Audio",modalities:{input:["text","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-09-18",openWeights:!1,cost:{input:.5,output:2},limit:{context:131072,output:65536}}],label:"Google",env:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],npm:"@ai-sdk/google",doc:"https://ai.google.dev/gemini-api/docs/pricing"},openrouter:{id:"openrouter",models:[{id:"allenai/molmo-2-8b:free",label:"Molmo2 8B (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-09",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:36864,output:36864}},{id:"anthropic/claude-3.5-haiku",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"anthropic/claude-3.7-sonnet",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-01",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:128e3}},{id:"anthropic/claude-haiku-4.5",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-opus-4",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.1",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.5",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-30",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-30",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"anthropic/claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-sonnet-4.5",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3}},{id:"arcee-ai/trinity-large-preview:free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"arcee-ai/trinity-mini:free",label:"Trinity Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"black-forest-labs/flux.2-flex",label:"FLUX.2 Flex",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:67344,output:67344}},{id:"black-forest-labs/flux.2-klein-4b",label:"FLUX.2 Klein 4B",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"black-forest-labs/flux.2-max",label:"FLUX.2 Max",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-16",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"black-forest-labs/flux.2-pro",label:"FLUX.2 Pro",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"bytedance-seed/seedream-4.5",label:"Seedream 4.5",modalities:{input:["image","text"],output:["image","text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-23",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:4096,output:4096}},{id:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",label:"Uncensored (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-07-09",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"cognitivecomputations/dolphin3.0-mistral-24b",label:"Dolphin3.0 Mistral 24B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-13",lastUpdated:"2025-02-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"cognitivecomputations/dolphin3.0-r1-mistral-24b",label:"Dolphin3.0 R1 Mistral 24B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-13",lastUpdated:"2025-02-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"deepseek/deepseek-chat-v3-0324",label:"DeepSeek V3 0324",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-24",lastUpdated:"2025-03-24",openWeights:!0,cost:{input:0,output:0},limit:{context:16384,output:8192}},{id:"deepseek/deepseek-chat-v3.1",label:"DeepSeek-V3.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-08-21",lastUpdated:"2025-08-21",openWeights:!0,cost:{input:.2,output:.8},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-r1-0528-qwen3-8b:free",label:"Deepseek R1 0528 Qwen3 8B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-29",lastUpdated:"2025-05-29",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"deepseek/deepseek-r1-0528:free",label:"R1 0528 (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-28",lastUpdated:"2025-05-28",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-r1-distill-llama-70b",label:"DeepSeek R1 Distill Llama 70B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-23",lastUpdated:"2025-01-23",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"deepseek/deepseek-r1-distill-qwen-14b",label:"DeepSeek R1 Distill Qwen 14B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-29",lastUpdated:"2025-01-29",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:8192}},{id:"deepseek/deepseek-r1:free",label:"R1 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-01-20",lastUpdated:"2025-01-20",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-v3-base:free",label:"DeepSeek V3 Base (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-29",lastUpdated:"2025-03-29",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-v3.1-terminus",label:"DeepSeek V3.1 Terminus",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.1-terminus:exacto",label:"DeepSeek V3.1 Terminus (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.2",label:"DeepSeek V3.2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.28,output:.4},limit:{context:163840,output:65536}},{id:"deepseek/deepseek-v3.2-speciale",label:"DeepSeek V3.2 Speciale",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.27,output:.41},limit:{context:163840,output:65536}},{id:"featherless/qwerky-72b",label:"Qwerky 72B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-20",lastUpdated:"2025-03-20",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemini-2.0-flash-001",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"google/gemini-2.0-flash-exp:free",label:"Gemini 2.0 Flash Experimental (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:1048576,output:1048576}},{id:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-07-17",lastUpdated:"2025-07-17",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite-preview-09-2025",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-preview-09-2025",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.031},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-05-06",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-06-05",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-3-flash-preview",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"google/gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11",openWeights:!1,cost:{input:2,output:12},limit:{context:105e4,output:66e3}},{id:"google/gemma-2-9b-it",label:"Gemma 2 9B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-06",releaseDate:"2024-06-28",lastUpdated:"2024-06-28",openWeights:!0,cost:{input:.03,output:.09},limit:{context:8192,output:8192}},{id:"google/gemma-3-12b-it",label:"Gemma 3 12B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.03,output:.1},limit:{context:131072,output:131072}},{id:"google/gemma-3-12b-it:free",label:"Gemma 3 12B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3-27b-it",label:"Gemma 3 27B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:.04,output:.15},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-27b-it:free",label:"Gemma 3 27B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"google/gemma-3-4b-it",label:"Gemma 3 4B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.01703,output:.06815},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-4b-it:free",label:"Gemma 3 4B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3n-e2b-it:free",label:"Gemma 3n 2B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"google/gemma-3n-e4b-it",label:"Gemma 3n 4B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:.02,output:.04},limit:{context:32768,output:32768}},{id:"google/gemma-3n-e4b-it:free",label:"Gemma 3n 4B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"kwaipilot/kat-coder-pro:free",label:"Kat Coder Pro (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-10",lastUpdated:"2025-11-10",openWeights:!1,cost:{input:0,output:0},limit:{context:256e3,output:65536}},{id:"liquid/lfm-2.5-1.2b-instruct:free",label:"LFM2.5-1.2B-Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"liquid/lfm-2.5-1.2b-thinking:free",label:"LFM2.5-1.2B-Thinking (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"meta-llama/llama-3.1-405b-instruct:free",label:"Llama 3.1 405B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-07-23",lastUpdated:"2025-04-05",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-3.2-11b-vision-instruct",label:"Llama 3.2 11B Vision Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"meta-llama/llama-3.2-3b-instruct:free",label:"Llama 3.2 3B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-3.3-70b-instruct:free",label:"Llama 3.3 70B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2024-12-06",lastUpdated:"2024-12-06",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-4-scout:free",label:"Llama 4 Scout (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2025-04-05",lastUpdated:"2025-04-05",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:64e3}},{id:"microsoft/mai-ds-r1:free",label:"MAI DS R1 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-21",lastUpdated:"2025-04-21",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"minimax/minimax-01",label:"MiniMax-01",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-01-15",lastUpdated:"2025-01-15",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:1e6,output:1e6}},{id:"minimax/minimax-m1",label:"MiniMax M1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!0,cost:{input:.4,output:2.2},limit:{context:1e6,output:4e4}},{id:"minimax/minimax-m2",label:"MiniMax M2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-23",lastUpdated:"2025-10-23",openWeights:!0,cost:{input:.28,output:1.15,cacheRead:.28,cacheWrite:1.15},limit:{context:196600,output:118e3}},{id:"minimax/minimax-m2.1",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:204800,output:131072}},{id:"mistralai/codestral-2508",label:"Codestral 2508",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-01",lastUpdated:"2025-08-01",openWeights:!0,cost:{input:.3,output:.9},limit:{context:256e3,output:256e3}},{id:"mistralai/devstral-2512",label:"Devstral 2 2512",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-12",releaseDate:"2025-09-12",lastUpdated:"2025-09-12",openWeights:!0,cost:{input:.15,output:.6},limit:{context:262144,output:262144}},{id:"mistralai/devstral-2512:free",label:"Devstral 2 2512 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-12",releaseDate:"2025-09-12",lastUpdated:"2025-09-12",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:262144}},{id:"mistralai/devstral-medium-2507",label:"Devstral Medium",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/devstral-small-2505",label:"Devstral Small",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!0,cost:{input:.06,output:.12},limit:{context:128e3,output:128e3}},{id:"mistralai/devstral-small-2505:free",label:"Devstral Small 2505 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-21",lastUpdated:"2025-05-21",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"mistralai/devstral-small-2507",label:"Devstral Small 1.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.1,output:.3},limit:{context:131072,output:131072}},{id:"mistralai/mistral-7b-instruct:free",label:"Mistral 7B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-05",releaseDate:"2024-05-27",lastUpdated:"2024-05-27",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"mistralai/mistral-medium-3",label:"Mistral Medium 3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!1,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/mistral-medium-3.1",label:"Mistral Medium 3.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-12",lastUpdated:"2025-08-12",openWeights:!1,cost:{input:.4,output:2},limit:{context:262144,output:262144}},{id:"mistralai/mistral-nemo:free",label:"Mistral Nemo (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2024-07-19",lastUpdated:"2024-07-19",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"mistralai/mistral-small-3.1-24b-instruct",label:"Mistral Small 3.1 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-17",lastUpdated:"2025-03-17",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:8192}},{id:"mistralai/mistral-small-3.2-24b-instruct",label:"Mistral Small 3.2 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-06-20",lastUpdated:"2025-06-20",openWeights:!0,cost:{input:0,output:0},limit:{context:96e3,output:8192}},{id:"mistralai/mistral-small-3.2-24b-instruct:free",label:"Mistral Small 3.2 24B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-06-20",lastUpdated:"2025-06-20",openWeights:!0,cost:{input:0,output:0},limit:{context:96e3,output:96e3}},{id:"moonshotai/kimi-dev-72b:free",label:"Kimi Dev 72b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-06-16",lastUpdated:"2025-06-16",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"moonshotai/kimi-k2",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-11",lastUpdated:"2025-07-11",openWeights:!0,cost:{input:.55,output:2.2},limit:{context:131072,output:32768}},{id:"moonshotai/kimi-k2-0905",label:"Kimi K2 Instruct 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-0905:exacto",label:"Kimi K2 Instruct 0905 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"moonshotai/kimi-k2:free",label:"Kimi K2 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-11",lastUpdated:"2025-07-11",openWeights:!0,cost:{input:0,output:0},limit:{context:32800,output:32800}},{id:"moonshotai/kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}},{id:"nousresearch/deephermes-3-llama-3-8b-preview",label:"DeepHermes 3 Llama 3 8B Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-04",releaseDate:"2025-02-28",lastUpdated:"2025-02-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"nousresearch/hermes-3-llama-3.1-405b:free",label:"Hermes 3 405B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2024-08-16",lastUpdated:"2024-08-16",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-405b",label:"Hermes 4 405B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:1,output:3},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-70b",label:"Hermes 4 70B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:.13,output:.4},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-3-nano-30b-a3b:free",label:"Nemotron 3 Nano 30B A3B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-12-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:256e3,output:256e3}},{id:"nvidia/nemotron-nano-12b-v2-vl:free",label:"Nemotron Nano 12B 2 VL (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-10-28",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"nvidia/nemotron-nano-9b-v2",label:"nvidia-nemotron-nano-9b-v2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-08-18",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:.04,output:.16},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-nano-9b-v2:free",label:"Nemotron Nano 9B V2 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-09-05",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"openai/gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"openai/gpt-4.1-mini",label:"GPT-4.1 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"openai/gpt-4o-mini",label:"GPT-4o-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"openai/gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-chat",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-codex",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-image",label:"GPT-5 Image",modalities:{input:["text","image","pdf"],output:["text","image"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-10-14",lastUpdated:"2025-10-14",openWeights:!1,cost:{input:5,output:10,cacheRead:1.25},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-mini",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-pro",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"openai/gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-chat",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.1-codex",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-max",label:"GPT-5.1-Codex-Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.1,output:9,cacheRead:.11},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-mini",label:"GPT-5.1-Codex-Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:1e5}},{id:"openai/gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-chat",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.2-codex",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-pro",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.072,output:.28},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:exacto",label:"GPT OSS 120B (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.24},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:free",label:"gpt-oss-120b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b",label:"GPT OSS 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.2},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b:free",label:"gpt-oss-20b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-safeguard-20b",label:"GPT OSS Safeguard 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-29",lastUpdated:"2025-10-29",openWeights:!1,cost:{input:.075,output:.3},limit:{context:131072,output:65536}},{id:"openai/o4-mini",label:"o4 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"openrouter/sherlock-dash-alpha",label:"Sherlock Dash Alpha",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-15",lastUpdated:"2025-12-14",openWeights:!1,cost:{input:0,output:0},limit:{context:184e4,output:0}},{id:"openrouter/sherlock-think-alpha",label:"Sherlock Think Alpha",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-11",releaseDate:"2025-11-15",lastUpdated:"2025-12-14",openWeights:!1,cost:{input:0,output:0},limit:{context:184e4,output:0}},{id:"qwen/qwen-2.5-coder-32b-instruct",label:"Qwen2.5 Coder 32B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2024-11-11",lastUpdated:"2024-11-11",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen-2.5-vl-7b-instruct:free",label:"Qwen2.5-VL 7B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-02",releaseDate:"2024-08-28",lastUpdated:"2024-08-28",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"qwen/qwen2.5-vl-32b-instruct:free",label:"Qwen2.5 VL 32B Instruct (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-24",lastUpdated:"2025-03-24",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"qwen/qwen2.5-vl-72b-instruct",label:"Qwen2.5 VL 72B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-01",lastUpdated:"2025-02-01",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen2.5-vl-72b-instruct:free",label:"Qwen2.5 VL 72B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-02",releaseDate:"2025-02-01",lastUpdated:"2025-02-01",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"qwen/qwen3-14b:free",label:"Qwen3 14B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-235b-a22b-07-25",label:"Qwen3 235B A22B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-07-21",openWeights:!0,cost:{input:.15,output:.85},limit:{context:262144,output:131072}},{id:"qwen/qwen3-235b-a22b-07-25:free",label:"Qwen3 235B A22B Instruct 2507 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-07-21",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:131072}},{id:"qwen/qwen3-235b-a22b-thinking-2507",label:"Qwen3 235B A22B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-25",lastUpdated:"2025-07-25",openWeights:!0,cost:{input:.078,output:.312},limit:{context:262144,output:81920}},{id:"qwen/qwen3-235b-a22b:free",label:"Qwen3 235B A22B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"qwen/qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-30b-a3b-thinking-2507",label:"Qwen3 30B A3B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-30b-a3b:free",label:"Qwen3 30B A3B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-32b:free",label:"Qwen3 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-4b:free",label:"Qwen3 4B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-30",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-8b:free",label:"Qwen3 8B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"qwen/qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:262144,output:66536}},{id:"qwen/qwen3-coder-30b-a3b-instruct",label:"Qwen3 Coder 30B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-31",lastUpdated:"2025-07-31",openWeights:!0,cost:{input:.07,output:.27},limit:{context:16e4,output:65536}},{id:"qwen/qwen3-coder-flash",label:"Qwen3 Coder Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!1,cost:{input:.3,output:1.5},limit:{context:128e3,output:66536}},{id:"qwen/qwen3-coder:exacto",label:"Qwen3 Coder (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.38,output:1.53},limit:{context:131072,output:32768}},{id:"qwen/qwen3-coder:free",label:"Qwen3 Coder 480B A35B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:66536}},{id:"qwen/qwen3-max",label:"Qwen3 Max",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!1,cost:{input:1.2,output:6},limit:{context:262144,output:32768}},{id:"qwen/qwen3-next-80b-a3b-instruct",label:"Qwen3 Next 80B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwen3-next-80b-a3b-instruct:free",label:"Qwen3 Next 80B A3B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:262144}},{id:"qwen/qwen3-next-80b-a3b-thinking",label:"Qwen3 Next 80B A3B Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwq-32b:free",label:"QwQ 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-03",releaseDate:"2025-03-05",lastUpdated:"2025-03-05",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"rekaai/reka-flash-3",label:"Reka Flash 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"sarvamai/sarvam-m:free",label:"Sarvam-M (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-25",lastUpdated:"2025-05-25",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"sourceful/riverflow-v2-fast-preview",label:"Riverflow V2 Fast Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-max-preview",label:"Riverflow V2 Max Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-standard-preview",label:"Riverflow V2 Standard Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"stepfun/step-3.5-flash",label:"Step 3.5 Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-29",lastUpdated:"2026-01-29",openWeights:!0,cost:{input:.1,output:.3,cacheRead:.02},limit:{context:256e3,output:256e3}},{id:"stepfun/step-3.5-flash:free",label:"Step 3.5 Flash (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-29",lastUpdated:"2026-01-29",openWeights:!0,cost:{input:0,output:0},limit:{context:256e3,output:256e3}},{id:"thudm/glm-z1-32b:free",label:"GLM Z1 32B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-17",lastUpdated:"2025-04-17",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"tngtech/deepseek-r1t2-chimera:free",label:"DeepSeek R1T2 Chimera (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-08",lastUpdated:"2025-07-08",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"tngtech/tng-r1t-chimera:free",label:"R1T Chimera (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-11-26",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:163840,output:163840}},{id:"x-ai/grok-3",label:"Grok 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-beta",label:"Grok 3 Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini",label:"Grok 3 Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini-beta",label:"Grok 3 Mini Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-4",label:"Grok 4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:256e3,output:64e3}},{id:"x-ai/grok-4-fast",label:"Grok 4 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-08-19",lastUpdated:"2025-08-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.1-fast",label:"Grok 4.1 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-11-19",lastUpdated:"2025-11-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-code-fast-1",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.2,output:1.5,cacheRead:.02},limit:{context:256e3,output:1e4}},{id:"xiaomi/mimo-v2-flash",label:"MiMo-V2-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2025-12-14",lastUpdated:"2025-12-14",openWeights:!0,cost:{input:.1,output:.3,cacheRead:.01},limit:{context:262144,output:65536}},{id:"z-ai/glm-4.5",label:"GLM 4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air",label:"GLM 4.5 Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air:free",label:"GLM 4.5 Air (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5v",label:"GLM 4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"z-ai/glm-4.6",label:"GLM 4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.6:exacto",label:"GLM 4.6 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:1.9,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:204800,output:131072}},{id:"z-ai/glm-4.7-flash",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:.07,output:.4},limit:{context:2e5,output:65535}},{id:"z-ai/glm-5",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:1,output:3.2,cacheRead:.2},limit:{context:202752,output:131e3}}],label:"OpenRouter",env:["OPENROUTER_API_KEY"],npm:"@openrouter/ai-sdk-provider",api:"https://openrouter.ai/api/v1",doc:"https://openrouter.ai/models"},opencode:{id:"opencode",models:[{id:"big-pickle",label:"Big Pickle",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-10-17",lastUpdated:"2025-10-17",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:128e3}},{id:"claude-3-5-haiku",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-1",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-5",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-6",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4-5",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"gemini-3-flash",label:"Gemini 3 Flash",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"gemini-3-pro",label:"Gemini 3 Pro",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7-free",label:"GLM-4.7 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-codex",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-nano",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0,cacheRead:0},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2-codex",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"grok-code",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-08-20",lastUpdated:"2025-08-20",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:256e3,output:256e3}},{id:"kimi-k2",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.08},limit:{context:262144,output:262144}},{id:"kimi-k2.5-free",label:"Kimi K2.5 Free",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:262144,output:262144}},{id:"minimax-m2.1",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"minimax-m2.1-free",label:"MiniMax M2.1 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072},provider:{npm:"@ai-sdk/anthropic"}},{id:"minimax-m2.5-free",label:"MiniMax M2.5 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072}},{id:"qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.45,output:1.8},limit:{context:262144,output:65536}},{id:"trinity-large-preview-free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}}],label:"OpenCode Zen",env:["OPENCODE_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://opencode.ai/zen/v1",doc:"https://opencode.ai/docs/zen"},zai:{id:"zai",models:[{id:"glm-4.5",label:"GLM-4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-air",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1,cacheRead:.03,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-flash",label:"GLM-4.5-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5v",label:"GLM-4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.6v",label:"GLM-4.6V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-08",lastUpdated:"2025-12-08",openWeights:!0,cost:{input:.3,output:.9},limit:{context:128e3,output:32768}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.7-flash",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!1,cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},limit:{context:204800,output:131072}}],label:"Z.AI",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/paas/v4",doc:"https://docs.z.ai/guides/overview/pricing"},"zai-coding":{id:"zai-coding",models:[{id:"glm-4.5",label:"GLM-4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-air",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-flash",label:"GLM-4.5-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5v",label:"GLM-4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:0,output:0},limit:{context:64e3,output:16384}},{id:"glm-4.6",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.6v",label:"GLM-4.6V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-08",lastUpdated:"2025-12-08",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:32768}},{id:"glm-4.7",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.7-flash",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}}],label:"Z.AI Coding Plan",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/coding/paas/v4",doc:"https://docs.z.ai/devpack/overview"},moonshot:{id:"moonshot",models:[{id:"kimi-k2-0711-preview",label:"Kimi K2 0711",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-14",lastUpdated:"2025-07-14",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:131072,output:16384}},{id:"kimi-k2-0905-preview",label:"Kimi K2 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking-turbo",label:"Kimi K2 Thinking Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:1.15,output:8,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-turbo-preview",label:"Kimi K2 Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:2.4,output:10,cacheRead:.6},limit:{context:262144,output:262144}},{id:"kimi-k2.5",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2026-01",lastUpdated:"2026-01",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}}],label:"Moonshot AI",env:["MOONSHOT_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.moonshot.ai/v1",doc:"https://platform.moonshot.ai/docs/api/chat"},copilot:{id:"copilot",models:[{id:"claude-haiku-4.5",label:"Claude Haiku 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:32e3}},{id:"claude-opus-4.5",label:"Claude Opus 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-08-01",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:32e3}},{id:"claude-opus-4.6",label:"Claude Opus 4.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"claude-opus-41",label:"Claude Opus 4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:0,output:0},limit:{context:8e4,output:16e3}},{id:"claude-sonnet-4",label:"Claude Sonnet 4",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16e3}},{id:"claude-sonnet-4.5",label:"Claude Sonnet 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:32e3}},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-flash-preview",label:"Gemini 3 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-4.1",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:0,output:0},limit:{context:64e3,output:16384}},{id:"gpt-4o",label:"GPT-4o",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:0,output:0},limit:{context:64e3,output:16384}},{id:"gpt-5",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5-mini",label:"GPT-5-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-08-13",lastUpdated:"2025-08-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-5.1",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-5.1-codex",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.1-codex-max",label:"GPT-5.1-Codex-max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-12-04",lastUpdated:"2025-12-04",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.1-codex-mini",label:"GPT-5.1-Codex-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5.2",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-5.2-codex",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:272e3,output:128e3}},{id:"grok-code-fast-1",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-27",lastUpdated:"2025-08-27",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}}],label:"GitHub Copilot",env:["GITHUB_TOKEN"],npm:"@ai-sdk/openai-compatible",api:"https://api.githubcopilot.com",doc:"https://docs.github.com/en/copilot"}},Ws="setu",tI=e=>e==="codex-mini-latest"?!0:e==="gpt-5.3"||e.startsWith("gpt-5.3-")?!1:!!(e.startsWith("gpt-5")||e.includes("codex")),gI=e=>!!(e.includes("-3-5-")||e.includes("-3.5-")||e.match(/claude-(haiku|sonnet|opus)-3/)||e.includes("-4-")||e.includes("-4.")||e.match(/claude-(haiku|sonnet|opus)-4/)),QI=e=>!!e.startsWith("gemini-3"),BI=[{id:"openai",npm:"@ai-sdk/openai",family:"openai"},{id:"anthropic",npm:"@ai-sdk/anthropic",family:"anthropic"},{id:"moonshot",npm:"@ai-sdk/openai-compatible",family:"moonshot"},{id:"google",npm:"@ai-sdk/google",family:"google"}];function sI(e){return{...e,modalities:e.modalities?{input:e.modalities.input?[...e.modalities.input]:void 0,output:e.modalities.output?[...e.modalities.output]:void 0}:void 0,cost:e.cost?{...e.cost}:void 0,limit:e.limit?{...e.limit}:void 0,provider:e.provider?{...e.provider}:void 0}}function oI(e){const A=BI.flatMap(({id:B,npm:s,family:o})=>(e[B]?.models??[]).filter(i=>B==="openai"?tI(i.id):B==="anthropic"?gI(i.id):B==="google"?QI(i.id):!0).map(i=>{const C=sI(i);return C.provider={...C.provider??{},npm:s,family:o},C}));if(!A.length)return null;A.sort((B,s)=>{const o=B.provider?.npm??"",E=s.provider?.npm??"";return o===E?B.id.localeCompare(s.id):o==="@ai-sdk/openai"?-1:E==="@ai-sdk/openai"?1:o.localeCompare(E)});const g="codex-mini-latest",Q=A.findIndex(B=>B.id===g);if(Q>0){const[B]=A.splice(Q,1);A.unshift(B)}return{id:Ws,label:"Setu",env:["SETU_PRIVATE_KEY"],api:"https://setu.ottocode.io/v1",doc:"https://setu.ottocode.io/docs",models:A}}function EI(e){const A=oI(e),g={...e};return A&&(g[Ws]=A),g}const zs=EI(eI),iI={openai:[{match:e=>e.includes("gpt-4o-mini"),inputPerMillion:.15,outputPerMillion:.6},{match:e=>e.includes("gpt-4o"),inputPerMillion:5,outputPerMillion:15},{match:e=>e.includes("gpt-4.1-mini"),inputPerMillion:1,outputPerMillion:4},{match:e=>e.includes("gpt-4.1"),inputPerMillion:5,outputPerMillion:15}],anthropic:[{match:e=>e.includes("claude-3-haiku"),inputPerMillion:.25,outputPerMillion:1.25},{match:e=>e.includes("claude-3-sonnet"),inputPerMillion:3,outputPerMillion:15},{match:e=>e.includes("claude-3-opus"),inputPerMillion:15,outputPerMillion:75}],google:[{match:e=>e.includes("gemini-1.5-flash"),inputPerMillion:.35,outputPerMillion:1.05},{match:e=>e.includes("gemini-1.5-pro"),inputPerMillion:3.5,outputPerMillion:10.5}],openrouter:[],opencode:[],setu:[],zai:[],"zai-coding":[],moonshot:[],copilot:[]};function aI(e,A){const g=iI[e];if(g)return g.find(Q=>{try{return Q.match(A)}catch{return!1}})}function CI(e,A){const g=zs[e];if(!g)return;const Q=A.toLowerCase();return g.models.find(B=>B.id?.toLowerCase()===Q)}function Vs(e,A,g){const Q=typeof g.inputTokens=="number"?g.inputTokens:0,B=typeof g.outputTokens=="number"?g.outputTokens:0,s=typeof g.cachedInputTokens=="number"?g.cachedInputTokens:0,o=typeof g.cacheCreationInputTokens=="number"?g.cacheCreationInputTokens:0;if(!Q&&!B&&!s&&!o)return;const E=CI(e,A);if(E?.cost?.input!=null||E?.cost?.output!=null){const r=typeof E.cost?.input=="number"?E.cost.input:0,n=typeof E.cost?.output=="number"?E.cost.output:0,c=typeof E.cost?.cacheRead=="number"?E.cost.cacheRead:0,d=typeof E.cost?.cacheWrite=="number"?E.cost.cacheWrite:0,p=Math.max(0,Q-s-o)*r/1e6,h=B*n/1e6,m=s*c/1e6,k=o*d/1e6,f=p+h+m+k;return Number.isFinite(f)?Number(f.toFixed(6)):void 0}const a=aI(e,A.toLowerCase());if(!a)return;const C=Math.max(0,Q-s-o)*a.inputPerMillion/1e6,I=B*a.outputPerMillion/1e6,l=C+I;return Number.isFinite(l)?Number(l.toFixed(6)):void 0}function Zs(e,A){const g=zs[e];if(g)return g.models?.find(Q=>Q.id===A)}function rI({session:e,onNavigateToSession:A}){const{data:g}=js(e.sessionType==="branch"?e.id:void 0),{data:Q}=IQ(e.id),B=u.useMemo(()=>{const c=e.totalInputTokens||0,d=e.totalOutputTokens||0,D=e.totalCachedTokens||0,p=e.totalCacheCreationTokens||0;return Vs(e.provider,e.model,{inputTokens:c,outputTokens:d,cachedInputTokens:D,cacheCreationInputTokens:p})??0},[e.provider,e.model,e.totalInputTokens,e.totalOutputTokens,e.totalCachedTokens,e.totalCacheCreationTokens]),s=c=>{if(!c)return"0s";const d=Math.floor(c/1e3),D=Math.floor(d/60),p=Math.floor(D/60);return p>0?`${p}h ${D%60}m`:D>0?`${D}m ${d%60}s`:`${d}s`},o=c=>c.toLocaleString("en-US"),E=c=>c>=1e6?`${(c/1e6).toFixed(1)}M`:c>=1e3?`${(c/1e3).toFixed(1)}K`:c.toString(),a=e.currentContextTokens||0,i=e.totalOutputTokens||0,C=e.sessionType==="branch",I=g?.parent,l=u.useMemo(()=>Zs(e.provider,e.model)?.limit?.context,[e.provider,e.model]),r=l?a/l*100:0,n=()=>r>=90?"text-red-600 dark:text-red-400":r>=70?"text-amber-600 dark:text-amber-400":"text-foreground";return t.jsx("div",{className:"border-b border-border bg-background/95 backdrop-blur-sm",children:t.jsxs("div",{className:"max-w-3xl mx-auto px-6 py-6",children:[C&&t.jsxs("div",{className:"flex items-center gap-2 mb-3 text-sm",children:[t.jsx(zA,{className:"h-4 w-4 text-violet-500"}),t.jsx("span",{className:"text-violet-600 dark:text-violet-400 font-medium",children:"Branch"}),I&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground",children:"from"}),t.jsxs("button",{type:"button",onClick:()=>A?.(I.id),className:"text-primary hover:underline flex items-center gap-1",children:[I.title||`Session ${I.id.slice(0,8)}`,t.jsx(LB,{className:"h-3 w-3"})]})]}),!I&&e.parentSessionId&&t.jsx("span",{className:"text-muted-foreground italic text-xs",children:"(parent deleted)"})]}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("h1",{className:"text-2xl font-semibold text-foreground leading-tight truncate",children:e.title||"Untitled Session"}),Q?.shared&&t.jsxs("button",{type:"button",onClick:()=>Ze(Q.url),className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[t.jsx(eQ,{className:"h-3 w-3"}),t.jsx("span",{children:"Shared"}),Q.pendingMessages&&Q.pendingMessages>0?t.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[t.jsx(PA,{className:"h-2.5 w-2.5"}),Q.pendingMessages]}):t.jsx(KA,{className:"h-2.5 w-2.5 opacity-60"})]})]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 mt-4 text-sm text-muted-foreground",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("div",{className:"flex items-center gap-1.5",title:`Current context window: ${o(a)} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),t.jsx("span",{className:`font-medium ${n()}`,children:E(a)})]}),t.jsxs("div",{className:"flex items-center gap-1.5",title:`Total output: ${o(i)} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"out"}),t.jsx("span",{className:"font-medium text-foreground",children:E(i)})]})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(tQ,{className:"w-4 h-4"}),t.jsx("span",{className:"font-medium text-foreground",children:s(e.totalToolTimeMs)})]}),B>0&&t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx(qB,{className:"w-4 h-4"}),t.jsx("span",{className:"font-medium text-foreground",children:B.toFixed(4)})]}),t.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[t.jsx(RA,{provider:e.provider,size:18}),t.jsx("span",{className:"font-medium text-foreground truncate max-w-48",children:e.model})]})]})]})})}const re=NA(e=>({usage:{},isLoading:{},lastFetched:{},isModalOpen:!1,modalProvider:null,setUsage:(A,g)=>e(Q=>({usage:{...Q.usage,[A]:g}})),setLoading:(A,g)=>e(Q=>({isLoading:{...Q.isLoading,[A]:g}})),setLastFetched:(A,g)=>e(Q=>({lastFetched:{...Q.lastFetched,[A]:g}})),openModal:A=>e({isModalOpen:!0,modalProvider:A}),closeModal:()=>e({isModalOpen:!1,modalProvider:null})})),Fe=22,Pg=2.5,Wg=(Fe-Pg)/2,xg=2*Math.PI*Wg;function nI(e){return e>=90?"#ef4444":e>=70?"#f59e0b":"#3b82f6"}const II=u.memo(function({usage:A,provider:g}){const Q=re(E=>E.openModal),B=A.primaryWindow?.usedPercent??0,s=xg-B/100*xg,o=nI(B);return t.jsxs("button",{type:"button",onClick:()=>Q(g),className:"relative flex items-center hover:opacity-80 transition-opacity cursor-pointer",title:`Usage: ${Math.round(B)}% (5h window) — Click for details`,children:[t.jsxs("svg",{width:Fe,height:Fe,className:"-rotate-90",role:"img","aria-label":"Usage ring",children:[t.jsx("circle",{cx:Fe/2,cy:Fe/2,r:Wg,fill:"none",stroke:"hsl(var(--muted))",strokeWidth:Pg}),t.jsx("circle",{cx:Fe/2,cy:Fe/2,r:Wg,fill:"none",stroke:o,strokeWidth:Pg,strokeDasharray:xg,strokeDashoffset:s,strokeLinecap:"round",className:"transition-all duration-500"})]}),t.jsx("span",{className:"absolute inset-0 flex items-center justify-center rotate-0 font-medium text-muted-foreground",style:{fontSize:7},children:"5h"})]})});function lI(e){if(!e)return"Unknown";const A=Date.now(),Q=new Date(e).getTime()-A;if(Q<=0)return"Now";const B=Math.floor(Q/864e5),s=Math.floor(Q%864e5/36e5),o=Math.floor(Q%36e5/6e4);return B>0?`${B}d ${s}h`:s>0?`${s}h ${o}m`:`${o}m`}function nB(e){return e<=18e3?"5 Hour":e<=86400?"24 Hour":"7 Day"}function fg({label:e,window:A}){const g=Math.min(A.usedPercent,100),Q=g>=90?"bg-red-500":g>=70?"bg-amber-500":"bg-blue-500";return t.jsxs("div",{className:"space-y-1.5",children:[t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:e}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("span",{className:"font-medium text-foreground",children:[Math.round(g),"%"]}),A.resetsAt&&t.jsxs("span",{className:"text-xs text-muted-foreground",children:["resets in ",lI(A.resetsAt)]})]})]}),t.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:t.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${Q}`,style:{width:`${g}%`}})})]})}const cI=u.memo(function(){const A=re(o=>o.isModalOpen),g=re(o=>o.modalProvider),Q=re(o=>o.closeModal),B=re(o=>g?o.usage[g]:void 0),s=u.useMemo(()=>t.jsxs("div",{className:"flex items-center gap-2",children:[g&&t.jsx(RA,{provider:g,size:20}),t.jsx("span",{children:"Usage & Limits"})]}),[g]);return B?t.jsx(Ye,{isOpen:A,onClose:Q,title:s,maxWidth:"sm",children:t.jsxs("div",{className:"space-y-5",children:[B.limitReached&&t.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md bg-red-500/10 border border-red-500/20",children:[t.jsx("span",{className:"w-2 h-2 rounded-full bg-red-500 flex-shrink-0"}),t.jsx("span",{className:"text-sm text-red-600 dark:text-red-400 font-medium",children:"Rate limit reached"})]}),B.primaryWindow&&t.jsx(fg,{label:`${nB(B.primaryWindow.windowSeconds)} Window`,window:B.primaryWindow}),B.secondaryWindow&&t.jsx(fg,{label:`${nB(B.secondaryWindow.windowSeconds)} Window`,window:B.secondaryWindow}),B.sonnetWindow&&B.sonnetWindow.usedPercent>0&&t.jsx(fg,{label:"Sonnet (7 Day)",window:{usedPercent:B.sonnetWindow.usedPercent,windowSeconds:604800,resetsAt:B.sonnetWindow.resetsAt}}),B.extraUsage?.is_enabled&&t.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Extra Credits"}),t.jsxs("span",{className:"font-medium text-foreground",children:["$",B.extraUsage.used_credits.toFixed(2)," / $",B.extraUsage.monthly_limit]})]})}),B.credits?.has_credits&&t.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Credits"}),t.jsx("span",{className:"font-medium text-foreground",children:B.credits.balance!==null?`$${B.credits.balance.toFixed(2)}`:"Available"})]})}),B.planType&&t.jsx("div",{className:"pt-2 border-t border-border",children:t.jsxs("div",{className:"flex items-center justify-between text-sm",children:[t.jsx("span",{className:"text-muted-foreground",children:"Plan"}),t.jsx("span",{className:"font-medium text-foreground capitalize",children:B.planType})]})})]})}):null}),dI=6e4,uI=3e4;function hI(e,A){const g=re(i=>i.setUsage),Q=re(i=>i.setLoading),B=re(i=>i.setLastFetched),s=re(i=>e?i.usage[e]:void 0),o=re(i=>e?i.lastFetched[e]:0),E=A==="oauth"&&(e==="anthropic"||e==="openai"),a=u.useCallback(async()=>{if(!(!e||!E)){Q(e,!0);try{const i=await v.getProviderUsage(e);g(e,i),B(e,Date.now())}catch{}finally{Q(e,!1)}}},[e,E,g,Q,B]);return u.useEffect(()=>{if(!E)return;(!o||Date.now()-o>uI)&&a();const C=setInterval(a,dI);return()=>clearInterval(C)},[E,a,o]),{usage:s,fetchUsage:a,isOAuthProvider:E}}function DI({session:e,isVisible:A,isGenerating:g,onNavigateToSession:Q}){const{data:B}=js(e.sessionType==="branch"?e.id:void 0),{data:s}=IQ(e.id),o=u.useMemo(()=>{const p=e.totalInputTokens||0,h=e.totalOutputTokens||0,m=e.totalCachedTokens||0,k=e.totalCacheCreationTokens||0;return Vs(e.provider,e.model,{inputTokens:p,outputTokens:h,cachedInputTokens:m,cacheCreationInputTokens:k})??0},[e.provider,e.model,e.totalInputTokens,e.totalOutputTokens,e.totalCachedTokens,e.totalCacheCreationTokens]),E=p=>p>=1e6?`${(p/1e6).toFixed(1)}M`:p>=1e3?`${(p/1e3).toFixed(1)}K`:p.toString(),a=e.currentContextTokens||0,i=e.sessionType==="branch",C=B?.parent,I=u.useMemo(()=>Zs(e.provider,e.model)?.limit?.context,[e.provider,e.model]),l=I?a/I*100:0,r=()=>l>=90?"text-red-600 dark:text-red-400":l>=70?"text-amber-600 dark:text-amber-400":"text-foreground",{data:n}=ut(),c=n?.[e.provider]?.authType,{usage:d,isOAuthProvider:D}=hI(e.provider,c);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`absolute top-0 left-0 right-0 h-14 border-b border-border bg-background/95 backdrop-blur-sm z-10 transition-transform duration-200 ${A?"translate-y-0":"-translate-y-full"}`,children:t.jsxs("div",{className:"h-full px-6 flex items-center justify-between gap-4 text-sm",children:[t.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-2 text-muted-foreground",children:[i?t.jsx(zA,{className:"w-4 h-4 flex-shrink-0 text-violet-500"}):t.jsx(OB,{className:"w-4 h-4 flex-shrink-0"}),t.jsx("span",{className:"text-foreground font-medium truncate",children:e.title||"Untitled Session"}),s?.shared&&t.jsxs("button",{type:"button",onClick:()=>Ze(s.url),className:"flex items-center gap-1 px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[t.jsx(eQ,{className:"h-3 w-3"}),s.pendingMessages&&s.pendingMessages>0?t.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[t.jsx(PA,{className:"h-2.5 w-2.5"}),s.pendingMessages]}):t.jsx(KA,{className:"h-2.5 w-2.5 opacity-60"})]}),i&&C&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground hidden sm:inline",children:"from"}),t.jsxs("button",{type:"button",onClick:()=>Q?.(C.id),className:"text-primary hover:underline flex items-center gap-0.5 truncate max-w-32",title:C.title||`Session ${C.id.slice(0,8)}`,children:[t.jsx("span",{className:"truncate",children:C.title||`Session ${C.id.slice(0,8)}`}),t.jsx(LB,{className:"h-3 w-3 flex-shrink-0"})]})]})]}),t.jsxs("div",{className:"flex-shrink-0 flex items-center gap-5 text-muted-foreground",children:[g&&t.jsx(Cn,{sessionId:e.id}),D&&d&&t.jsx(II,{usage:d,provider:e.provider}),t.jsx("div",{className:"flex items-center gap-3",children:t.jsxs("div",{className:"flex items-center gap-1",title:`Current context window: ${a.toLocaleString()} tokens`,children:[t.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),t.jsx("span",{className:`font-medium ${r()}`,children:E(a)})]})}),o>0&&t.jsxs("div",{className:"flex items-center gap-1.5",children:[t.jsx(qB,{className:"w-4 h-4"}),t.jsx("span",{className:"text-foreground font-medium",children:o.toFixed(4)})]}),t.jsxs("div",{className:"hidden sm:flex items-center gap-2",children:[t.jsx(RA,{provider:e.provider,size:16}),t.jsx("span",{className:"font-medium text-foreground truncate max-w-40",children:e.model})]})]})]})}),t.jsx(cI,{})]})}const wI=u.memo(function({pendingTopup:A,onMethodSelected:g,onCancel:Q}){const[B,s]=u.useState(!1),[o,E]=u.useState(null),a=EA(l=>l.openTopupModal),i=async()=>{E("crypto"),s(!0);try{await v.selectTopupMethod(A.sessionId,"crypto"),g("crypto")}catch(l){AA.error(l instanceof Error?l.message:"Failed to process payment"),s(!1),E(null)}},C=async()=>{E("fiat"),a(),v.selectTopupMethod(A.sessionId,"fiat").catch(()=>{}),g("fiat")},I=async()=>{s(!0);try{await v.cancelTopup(A.sessionId),Q()}catch(l){AA.error(l instanceof Error?l.message:"Failed to cancel"),s(!1)}};return t.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(oe,{className:"h-4 w-4 text-amber-500 flex-shrink-0"}),t.jsx("span",{className:"font-medium text-foreground text-sm",children:"Insufficient Balance"}),t.jsx("span",{className:"text-amber-600 dark:text-amber-400 font-medium text-sm",children:"payment required"})]}),t.jsxs("div",{className:"ml-6 bg-muted/30 rounded-lg p-3 space-y-2 text-sm",children:[t.jsxs("div",{className:"flex justify-between",children:[t.jsx("span",{className:"text-muted-foreground",children:"Request cost"}),t.jsxs("span",{className:"font-mono",children:["~$",A.amountUsd.toFixed(4)]})]}),t.jsxs("div",{className:"flex justify-between",children:[t.jsx("span",{className:"text-muted-foreground",children:"Current balance"}),t.jsxs("span",{className:"font-mono",children:["$",A.currentBalance.toFixed(4)]})]})]}),t.jsxs("div",{className:"ml-6 flex flex-wrap items-center gap-2",children:[t.jsxs("button",{type:"button",onClick:I,disabled:B,title:"Cancel request",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50",children:[t.jsx(GA,{className:"w-3 h-3"}),"Cancel"]}),t.jsxs("button",{type:"button",onClick:i,disabled:B,title:"Pay with USDC from your wallet",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-violet-600 text-white hover:bg-violet-700 transition-colors disabled:opacity-50",children:[o==="crypto"&&B?t.jsx(nA,{className:"w-3 h-3 animate-spin"}):t.jsx(gQ,{className:"w-3 h-3"}),"Pay with USDC"]}),t.jsxs("button",{type:"button",onClick:C,disabled:B,title:"Top up balance with card (min $5)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-violet-500 text-violet-600 dark:text-violet-400 hover:bg-violet-500/10 transition-colors disabled:opacity-50",children:[o==="fiat"&&B?t.jsx(nA,{className:"w-3 h-3 animate-spin"}):t.jsx(it,{className:"w-3 h-3"}),"Top up with Card",t.jsx("span",{className:"text-[10px] opacity-70",children:"(min $5)"})]})]}),t.jsx("p",{className:"ml-6 text-xs text-muted-foreground",children:o==="crypto"?"Processing USDC payment from your wallet...":o==="fiat"?"Opening Polar checkout...":"Select a payment method to continue your request."})]})}),Wt=NA(e=>({pendingTopup:null,isProcessing:!1,selectedMethod:null,setPendingTopup:A=>e({pendingTopup:A,isProcessing:!1,selectedMethod:null}),setProcessing:A=>e({isProcessing:A}),setSelectedMethod:A=>e({selectedMethod:A}),clearPendingTopup:()=>e({pendingTopup:null,isProcessing:!1,selectedMethod:null})})),pI=u.memo(function({messages:A,session:g,sessionId:Q,isGenerating:B,disableAutoScroll:s=!1,onSelectSession:o}){const E=CA(),a=u.useRef(null),i=u.useRef(null),C=u.useRef(null),[I,l]=u.useState(!0),r=u.useRef(!0),[n,c]=u.useState(!1),d=u.useRef(!1),D=u.useRef(void 0),p=u.useRef(0),h=u.useRef(void 0),m=u.useRef(!1),k=u.useRef(g?.id),f=u.useRef(A.length),M=u.useRef(B),N=u.useRef(0),x=u.useRef(0),G=Wt(L=>L.pendingTopup),w=Wt(L=>L.clearPendingTopup),F=G&&G.sessionId===Q,y=u.useCallback(()=>{const L=i.current;if(!L)return;const{scrollTop:q,scrollHeight:J,clientHeight:H}=L,W=J-q-H,Z=J>N.current,iA=q<x.current-5;N.current=J,x.current=q,W<100?(r.current=!0,l(!0)):iA?(r.current=!1,l(!1),d.current=!0):!Z&&r.current&&(r.current=!1,l(!1)),(iA||!r.current&&W>=100)&&(D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{d.current=!1},150));const rA=C.current;if(rA){const bA=rA.getBoundingClientRect(),j=L.getBoundingClientRect();c(bA.bottom<j.top)}},[]);u.useEffect(()=>{if(s)return;const L=g?.id!==k.current;if(k.current=g?.id,L&&(m.current=!1),!m.current&&A.length>0){m.current=!0;const q=i.current;q&&(q.scrollTop=q.scrollHeight)}},[A.length,g?.id,s]),u.useEffect(()=>{if(s)return;const L=B&&!M.current,q=A.length>f.current;M.current=B,f.current=A.length,L?(d.current=!1,r.current=!0,l(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{const J=i.current;J&&(J.scrollTop=J.scrollHeight)})})):q&&!d.current&&!B&&(r.current=!0,l(!0))},[A.length,B,s]),u.useEffect(()=>{if(s)return;const L=i.current;if(!L||!I||d.current)return;p.current=L.scrollHeight-L.clientHeight;const q=()=>{const J=i.current;if(!J||d.current)return;const H=J.scrollTop,Z=J.scrollHeight-J.clientHeight-H;if(Math.abs(Z)<1){J.scrollTop=J.scrollHeight-J.clientHeight;return}if(Math.abs(Z)<10){J.scrollTop=J.scrollHeight-J.clientHeight;return}J.scrollTop=H+Z*.15,h.current=requestAnimationFrame(q)};h.current&&cancelAnimationFrame(h.current),h.current=requestAnimationFrame(q)},[A,I]),u.useEffect(()=>()=>{D.current&&clearTimeout(D.current),h.current&&cancelAnimationFrame(h.current)},[]);const S=()=>{d.current=!1,r.current=!0,l(!0);const L=i.current;L&&(L.scrollTop=L.scrollHeight)},K=u.useMemo(()=>A.filter(L=>L.role!=="system"),[A]),T=u.useCallback(L=>async()=>{if(Q&&L){E.setQueryData(["messages",Q],q=>q&&q.map(J=>{if(J.id!==L)return J;const H=J.parts?.filter(W=>!(W.type==="error"||W.type==="tool_call"&&W.toolName==="finish"))??[];return{...J,status:"pending",parts:H,error:null}}));try{await v.retryMessage(Q,L)}catch(q){AA.error(q instanceof Error?q.message:"Failed to retry")}}},[Q,E]),R=u.useCallback(async()=>{if(Q)try{await v.sendMessage(Q,{content:"/compact"})}catch(L){AA.error(L instanceof Error?L.message:"Failed to compact")}},[Q]);return A.length===0?t.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground text-sm",children:"No messages yet. Start a conversation below."}):t.jsxs("div",{className:"absolute inset-0 flex flex-col",children:[g&&t.jsx(DI,{session:g,isVisible:n,isGenerating:B,onNavigateToSession:o}),t.jsxs("div",{ref:i,className:"flex-1 overflow-y-auto",onScroll:y,children:[t.jsx("div",{ref:C,children:g&&t.jsx(rI,{session:g,onNavigateToSession:o})}),t.jsx("div",{className:"p-6 pb-64",children:t.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[K.map((L,q)=>{const J=K[q-1],H=K[q+1],W=q===K.length-1;if(L.role==="user"){const Z=H&&H.role==="assistant"?H:void 0;return t.jsx(Ps,{sessionId:Q,message:L,isFirst:q===0,nextAssistantMessageId:Z?.id},L.id)}if(L.role==="assistant"){const Z=!J||J.role!=="assistant",iA=H&&H.role==="assistant";return t.jsx(Hs,{sessionId:Q,message:L,showHeader:Z,hasNextAssistantMessage:iA,isLastMessage:W,onBranchCreated:o,onRetry:W?T(L.id):void 0,onCompact:W?R:void 0},L.id)}return null}),F&&G&&t.jsx("div",{className:"py-4",children:t.jsx(wI,{pendingTopup:G,onMethodSelected:()=>w(),onCancel:()=>w()})}),t.jsx("div",{ref:a})]})})]}),!I&&t.jsxs("button",{type:"button",onClick:S,className:"absolute bottom-36 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 bg-background border border-border rounded-full shadow-lg hover:bg-muted/50 transition-all text-sm text-foreground z-10",children:[t.jsx(Vo,{className:"w-4 h-4"}),t.jsx("span",{children:"Scroll to bottom"})]})]})});class Xs{abortController=null;handlers=new Map;running=!1;async connect(A){this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.running=!0;try{const g=await fetch(A,{headers:{Accept:"text/event-stream"},signal:this.abortController.signal});if(!g.ok){console.error("[SSE] Connection failed:",g.status);return}const Q=g.body?.getReader();if(!Q){console.error("[SSE] No response body");return}const B=new TextDecoder;let s="";for(;this.running;){const{done:o,value:E}=await Q.read();if(o)break;s+=B.decode(E,{stream:!0});let a=s.indexOf(`
98
98
 
99
99
  `);for(;a!==-1;){const i=s.slice(0,a);s=s.slice(a+2);const C=i.split(`
100
100
  `);let I="message",l="";for(const r of C)r.startsWith("event: ")?I=r.slice(7).trim():r.startsWith("data: ")?l+=(l?`