sliccy 5.67.1 → 5.67.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/ui/assets/account-store-BIF64n8-.js +94 -0
  2. package/dist/ui/assets/{account-store-D7kMPjMl.js → account-store-CovklOkk.js} +1 -1
  3. package/dist/ui/assets/adobe-17vWB0a6.js +1 -0
  4. package/dist/ui/assets/adobe-TXieKYY5.js +2 -0
  5. package/dist/ui/assets/amazon-bedrock-Cg62P8pR.json +1 -0
  6. package/dist/ui/assets/anthropic-4_qTN2Mu.json +1 -0
  7. package/dist/ui/assets/anthropic-messages-6XWFkWWy.js +39 -0
  8. package/dist/ui/assets/anthropic-messages-D42B1WVl.js +39 -0
  9. package/dist/ui/assets/{apps-BoOkGG9c.js → apps-BIcLdFeM.js} +1 -1
  10. package/dist/ui/assets/azure-openai-C1W6dEpq.js +1 -0
  11. package/dist/ui/assets/azure-openai-DWOa9B_t.js +1 -0
  12. package/dist/ui/assets/azure-openai-responses-BvEv9lZE.js +1 -0
  13. package/dist/ui/assets/azure-openai-responses-DE9sINqp.json +1 -0
  14. package/dist/ui/assets/azure-openai-responses-DRSA640t.js +1 -0
  15. package/dist/ui/assets/bedrock-camp-BuUxtnu3.js +1 -0
  16. package/dist/ui/assets/bedrock-camp-Dn7pj03H.js +1 -0
  17. package/dist/ui/assets/cerebras-CztfMhyd.js +1 -0
  18. package/dist/ui/assets/cerebras-QbxVz39_.js +1 -0
  19. package/dist/ui/assets/cloudflare-ai-gateway-DDb7hKDm.json +1 -0
  20. package/dist/ui/assets/cloudflare-workers-ai-hYVOS3es.json +1 -0
  21. package/dist/ui/assets/compat-D-WVLG85.js +2 -0
  22. package/dist/ui/assets/{connect-surface-C-7W435s.js → connect-surface-CHYTf_sk.js} +1 -1
  23. package/dist/ui/assets/{context-compaction-dcYYajWb.js → context-compaction-2cZIhnSb.js} +1 -1
  24. package/dist/ui/assets/deferred-tools-C1IEsG5C.js +1 -0
  25. package/dist/ui/assets/deferred-tools-DNuoafg8.js +1 -0
  26. package/dist/ui/assets/diagnostics-BsVbaNHR.js +1 -0
  27. package/dist/ui/assets/event-stream-qbAZIAKV.js +1 -0
  28. package/dist/ui/assets/fireworks-B7kEGNCU.json +1 -0
  29. package/dist/ui/assets/{fs-D_yANcgX.js → fs-CanwjxXu.js} +2 -2
  30. package/dist/ui/assets/{fs-D5H4qV90.js → fs-DXkVA9oH.js} +1 -1
  31. package/dist/ui/assets/{github-BpqJV3zd.js → github-BuNlwy6Z.js} +1 -1
  32. package/dist/ui/assets/{github-O8AoJ7u2.js → github-Dr94t9Ca.js} +2 -2
  33. package/dist/ui/assets/github-copilot-DRg525a9.js +1 -0
  34. package/dist/ui/assets/github-copilot-K9C_HNHm.json +1 -0
  35. package/dist/ui/assets/github-copilot-WImjMwBU.js +2 -0
  36. package/dist/ui/assets/google-F4XgvJ1y.json +1 -0
  37. package/dist/ui/assets/google-generative-ai-BqEHWDKc.js +1 -0
  38. package/dist/ui/assets/google-generative-ai-DOAY2Bef.js +1 -0
  39. package/dist/ui/assets/{google-shared-CCJkdw81.js → google-shared-2WQG4pNx.js} +1 -1
  40. package/dist/ui/assets/{google-shared-p5XdfI6c.js → google-shared-CGD-JGZx.js} +1 -1
  41. package/dist/ui/assets/google-vertex-C-dQj0iH.js +1 -0
  42. package/dist/ui/assets/google-vertex-CiTExP0E.js +1 -0
  43. package/dist/ui/assets/huggingface-BjNadu0v.json +1 -0
  44. package/dist/ui/assets/{kernel-worker-uWACBBhV.js → kernel-worker-0dC64i4h.js} +592 -588
  45. package/dist/ui/assets/{legacy-api-aliases-BEwZmDvB.js → legacy-api-aliases-CI-iGRFs.js} +1 -1
  46. package/dist/ui/assets/{legacy-api-aliases-BQSsmFIS.js → legacy-api-aliases-CaOObRpi.js} +1 -1
  47. package/dist/ui/assets/{lick-ws-bridge-TTCR56gq.js → lick-ws-bridge-CZk5y_uS.js} +1 -1
  48. package/dist/ui/assets/{local-llm-DuSay7Zm.js → local-llm-CvlXyUsR.js} +1 -1
  49. package/dist/ui/assets/{local-llm-DtdiuuN-.js → local-llm-Dz9k2lTQ.js} +2 -2
  50. package/dist/ui/assets/{main-DXAgi47H.js → main-Nb-8QjGQ.js} +3 -3
  51. package/dist/ui/assets/mistral-CLEcIOtP.json +1 -0
  52. package/dist/ui/assets/{mistral-conversations-DbKikZnf.js → mistral-conversations-BIHTMTfL.js} +1 -1
  53. package/dist/ui/assets/{mistral-conversations-CLDzxp2F.js → mistral-conversations-CFKNSaPt.js} +2 -2
  54. package/dist/ui/assets/models-Bnh9VDA1.js +1 -0
  55. package/dist/ui/assets/moonshotai-8QShYhhE.json +1 -0
  56. package/dist/ui/assets/moonshotai-cn-7hHZff5z.json +1 -0
  57. package/dist/ui/assets/{mount-C5cBuZIQ.js → mount-ClX16Vqy.js} +1 -1
  58. package/dist/ui/assets/{mount-B6AQ9wuU.js → mount-DvJJTEk6.js} +2 -2
  59. package/dist/ui/assets/{mount-recovery-DUunzxUB.js → mount-recovery-_mFoJDg1.js} +1 -1
  60. package/dist/ui/assets/new-session-D0IePVky.js +2 -0
  61. package/dist/ui/assets/nvidia-dA6GzUPm.json +1 -0
  62. package/dist/ui/assets/oauth-bootstrap-zfn3CvH_.js +2 -0
  63. package/dist/ui/assets/openai-BehvdaXx.json +1 -0
  64. package/dist/ui/assets/openai-codex-Dmvgi9kk.js +1 -0
  65. package/dist/ui/assets/openai-codex-qgJYbHcs.js +1 -0
  66. package/dist/ui/assets/openai-codex-responses-B7cFMjWk.js +7 -0
  67. package/dist/ui/assets/openai-codex-responses-DqxoDEwc.js +7 -0
  68. package/dist/ui/assets/openai-completions-Z1aRkqWe.js +5 -0
  69. package/dist/ui/assets/openai-completions-o78dOizF.js +5 -0
  70. package/dist/ui/assets/openai-responses-SPfzkTJm.js +1 -0
  71. package/dist/ui/assets/openai-responses-shared-BHsJFKuB.js +10 -0
  72. package/dist/ui/assets/openai-responses-shared-Dg5Ojqlw.js +10 -0
  73. package/dist/ui/assets/openai-responses-xSdsW9lw.js +1 -0
  74. package/dist/ui/assets/opencode-4chvZrBR.json +1 -0
  75. package/dist/ui/assets/opencode-go-Chp1OOUx.json +1 -0
  76. package/dist/ui/assets/openrouter-ZLTwKIjA.json +1 -0
  77. package/dist/ui/assets/{panel-rpc-handlers-C7cI_wpd.js → panel-rpc-handlers-L5pGVFBu.js} +2 -2
  78. package/dist/ui/assets/pi-messages-DRdk3sMN.js +7 -0
  79. package/dist/ui/assets/pi-messages-fKU_b1SK.js +7 -0
  80. package/dist/ui/assets/{provider-B_beyvZ1.js → provider-DAA4g3_k.js} +1 -1
  81. package/dist/ui/assets/{provider-mNJ81Nmf.js → provider-m1X4CbVe.js} +2 -2
  82. package/dist/ui/assets/{provider-settings-Bynyth1-.js → provider-settings-Cf7eXAWa.js} +1 -1
  83. package/dist/ui/assets/{provider-settings-Br12uT6y.js → provider-settings-Cuugd-fj.js} +1 -1
  84. package/dist/ui/assets/{provider-store-access-DPdIt2P7.js → provider-store-access-CgDL1cUd.js} +2 -2
  85. package/dist/ui/assets/provider-store-access-D9WNmF0Z.js +1 -0
  86. package/dist/ui/assets/providers-BuWMF3xT.js +2 -0
  87. package/dist/ui/assets/providers-Lwh3Mkv2.js +1 -0
  88. package/dist/ui/assets/{quick-llm-DAjUwXji.js → quick-llm-CmF1euCZ.js} +1 -1
  89. package/dist/ui/assets/qwen-token-plan-BpxmzamU.json +1 -0
  90. package/dist/ui/assets/qwen-token-plan-cn-CPhDR0u_.json +1 -0
  91. package/dist/ui/assets/{session-freezer-ByN74MO5.js → session-freezer-CvrIXOah.js} +3 -3
  92. package/dist/ui/assets/setup-sudo-C9KnyJVv.js +2 -0
  93. package/dist/ui/assets/{skills-BMDzPReO.js → skills-3PZmUeNA.js} +1 -1
  94. package/dist/ui/assets/{store-Bo-VXhKX.js → store-DdPbOMzR.js} +1 -1
  95. package/dist/ui/assets/{sudo-CIRZ-EUo.js → sudo--Rx9zaD2.js} +1 -1
  96. package/dist/ui/assets/together-CYZ-lBBF.json +1 -0
  97. package/dist/ui/assets/transform-messages-Bp94o3FD.js +1 -0
  98. package/dist/ui/assets/transform-messages-wECJwtH0.js +1 -0
  99. package/dist/ui/assets/{upgrade-detection-BGS7lBbj.js → upgrade-detection-Dy4tXX0j.js} +1 -1
  100. package/dist/ui/assets/vercel-ai-gateway-ZtkcQH_C.json +1 -0
  101. package/dist/ui/assets/{wc-extension-BS1GKkBY.js → wc-extension-RKYMPCAR.js} +2 -2
  102. package/dist/ui/assets/wc-follower-Bmun4Cco.js +17 -0
  103. package/dist/ui/assets/{wc-live-BU8bhGYQ.js → wc-live-huAxuC_m.js} +3 -3
  104. package/dist/ui/assets/wc-nav-C6eP4gqM.js +2 -0
  105. package/dist/ui/assets/{wc-onboarding-oXM_3rWS.js → wc-onboarding-sj3cY89G.js} +2 -2
  106. package/dist/ui/assets/wc-placeholder-CfRJDlgb.js +4 -0
  107. package/dist/ui/assets/{wc-settings-CwYBG83C.js → wc-settings-BmoBEcXH.js} +2 -2
  108. package/dist/ui/assets/{wc-shell-APVSI6kq.js → wc-shell-BpzhLQbu.js} +2 -2
  109. package/dist/ui/assets/{wc-sprinkles-XTLYtBLP.js → wc-sprinkles-COGCgdJj.js} +2 -2
  110. package/dist/ui/assets/wc-tray-Cx2T5bzX.js +2 -0
  111. package/dist/ui/assets/xai-grok-B5OVP1_6.js +1 -0
  112. package/dist/ui/assets/xai-grok-D7tkzbHx.js +1 -0
  113. package/dist/ui/index.html +11 -10
  114. package/dist/ui/packages/webapp/index.html +11 -10
  115. package/package.json +3 -2
  116. package/dist/ui/assets/account-store-DpZitlUY.js +0 -98
  117. package/dist/ui/assets/adobe-Bmh-_khT.js +0 -2
  118. package/dist/ui/assets/adobe-DyH_9qJK.js +0 -1
  119. package/dist/ui/assets/anthropic-messages-CIsUSIzG.js +0 -39
  120. package/dist/ui/assets/anthropic-messages-_fPAePlR.js +0 -39
  121. package/dist/ui/assets/azure-openai-Dm2kMacy.js +0 -1
  122. package/dist/ui/assets/azure-openai-rcs4Z0Nm.js +0 -1
  123. package/dist/ui/assets/azure-openai-responses-DhzbC_tL.js +0 -1
  124. package/dist/ui/assets/azure-openai-responses-bHfWNMbx.js +0 -1
  125. package/dist/ui/assets/bedrock-camp-BqDUcxBp.js +0 -1
  126. package/dist/ui/assets/bedrock-camp-DdoLg8ey.js +0 -1
  127. package/dist/ui/assets/cerebras-Bb96dS8U.js +0 -1
  128. package/dist/ui/assets/cerebras-Ih70UTEx.js +0 -1
  129. package/dist/ui/assets/compat-DyT25qXb.js +0 -2
  130. package/dist/ui/assets/github-copilot-Bf-iW8mK.js +0 -2
  131. package/dist/ui/assets/github-copilot-C_R0Ma0E.js +0 -1
  132. package/dist/ui/assets/google-generative-ai-CyS9qbzb.js +0 -1
  133. package/dist/ui/assets/google-generative-ai-DkRyuoBH.js +0 -1
  134. package/dist/ui/assets/google-vertex-Cp9ldPyE.js +0 -1
  135. package/dist/ui/assets/google-vertex-D7VRnbrL.js +0 -1
  136. package/dist/ui/assets/models-CzSI8IsT.js +0 -1
  137. package/dist/ui/assets/new-session-CgnPWa_k.js +0 -2
  138. package/dist/ui/assets/oauth-bootstrap-CmurjaMI.js +0 -2
  139. package/dist/ui/assets/openai-codex-D-gmV2fj.js +0 -1
  140. package/dist/ui/assets/openai-codex-Dv3Zo1Dx.js +0 -1
  141. package/dist/ui/assets/openai-codex-responses-B_k2rCqO.js +0 -7
  142. package/dist/ui/assets/openai-codex-responses-RviMslSH.js +0 -7
  143. package/dist/ui/assets/openai-completions-CGLtJfv2.js +0 -5
  144. package/dist/ui/assets/openai-completions-COYKlBqA.js +0 -5
  145. package/dist/ui/assets/openai-responses-C4mUX6jK.js +0 -1
  146. package/dist/ui/assets/openai-responses-D02gU0ey.js +0 -1
  147. package/dist/ui/assets/openai-responses-shared-CCTyKL6A.js +0 -10
  148. package/dist/ui/assets/openai-responses-shared-bVKJbQt9.js +0 -10
  149. package/dist/ui/assets/provider-store-access-CeFzxjQ9.js +0 -1
  150. package/dist/ui/assets/providers-DiQPQy2w.js +0 -2
  151. package/dist/ui/assets/providers-t50k54fw.js +0 -1
  152. package/dist/ui/assets/setup-sudo-PBmKBl1V.js +0 -2
  153. package/dist/ui/assets/transform-messages-CVIV-EgO.js +0 -1
  154. package/dist/ui/assets/transform-messages-fFaW-DLG.js +0 -1
  155. package/dist/ui/assets/wc-follower-BWvESj7q.js +0 -17
  156. package/dist/ui/assets/wc-nav-CPVp8Fk2.js +0 -2
  157. package/dist/ui/assets/wc-placeholder-BvLEsaiK.js +0 -4
  158. package/dist/ui/assets/wc-tray-CUbKbp0U.js +0 -2
  159. package/dist/ui/assets/xai-grok-B5CWbUwl.js +0 -1
  160. package/dist/ui/assets/xai-grok-models-B0Tf--xf.js +0 -1
  161. package/dist/ui/assets/xai-grok-models-CeEBaUMC.js +0 -1
  162. package/dist/ui/assets/xai-grok-qyS7ZUXU.js +0 -1
  163. package/dist/ui/assets/xai-grok-sanitize-CR2JoOJd.js +0 -5
  164. package/dist/ui/assets/xai-grok-sanitize-CV6qvaEF.js +0 -5
@@ -0,0 +1,5 @@
1
+ import{t as e}from"./event-stream-qbAZIAKV.js";import{n as t,t as n}from"./models-Bnh9VDA1.js";import{n as r}from"./json-parse-rb7sUwcH.js";import{t as i}from"./provider-env-D37PhSJu.js";import{r as a,t as o}from"./transform-messages-wECJwtH0.js";import{t as s}from"./headers-CbDaTl3c.js";import{t as c}from"./sanitize-unicode-DmIE6hZJ.js";import{n as l,t as u}from"./github-copilot-headers-DRgtIyTm.js";import{n as d}from"./openai-BxFF4GUL.js";import{n as f,t as p}from"./error-body-C0EnfbdK.js";import{t as m}from"./openai-prompt-cache-DXo9f3w5.js";import{t as h}from"./hash-yQufAZII.js";function g(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function _(e,t,n){if(t)return t;if(g(n,`authorization`)||g(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function v(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function y(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function b(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function x(e){return e.type===`text`}function S(e){return e.type===`thinking`}function C(e){return e.type===`toolCall`}function w(e){return e.type===`image`}function T(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function E(e,t){return e||(i(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}var D=(t,n,i)=>{let a=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=_(t.provider,i?.apiKey,i?.headers),c=K(t),l=E(i?.cacheRetention,i?.env),u=l===`none`?void 0:i?.sessionId,d=k(t,n,o,i?.headers,u,c),f=A(t,n,i,c,l),p=await i?.onPayload?.(f,t);p!==void 0&&(f=p);let m={...i?.signal?{signal:i.signal}:{},...i?.timeoutMs===void 0?{}:{timeout:i.timeoutMs},maxRetries:i?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await i?.onResponse?.({status:g.status,headers:s(g.headers)},t),a.push({type:`start`,partial:e});let v=null,y=null,b=!1,x=new Map,S=new Map,C=new Map,w=e.content,D=e=>w.indexOf(e),O=t=>{let n=D(t);n!==-1&&(t.type===`text`?a.push({type:`text_end`,contentIndex:n,content:t.text,partial:e}):t.type===`thinking`?a.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e}):t.type===`toolCall`&&(t.arguments=r(t.partialArgs),delete t.partialArgs,delete t.streamIndex,a.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})))},j=()=>(v||(v={type:`text`,text:``},w.push(v),a.push({type:`text_start`,contentIndex:D(v),partial:e})),v),M=t=>(y||(y={type:`thinking`,thinking:``,thinkingSignature:t},w.push(y),a.push({type:`thinking_start`,contentIndex:D(y),partial:e})),y),N=e=>{if(!e.id)return;let t=C.get(e.id);t&&(e.thoughtSignature=t,C.delete(e.id))},P=t=>{let n=typeof t.index==`number`?t.index:void 0,r=n===void 0?void 0:x.get(n);return!r&&t.id&&(r=S.get(t.id)),r||(r={type:`toolCall`,id:t.id||``,name:t.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&x.set(n,r),t.id&&S.set(t.id,r),w.push(r),a.push({type:`toolcall_start`,contentIndex:D(r),partial:e})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,x.set(n,r)),t.id&&S.set(t.id,r),N(r),r};for await(let n of h){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=U(n.usage,t));let i=Array.isArray(n.choices)?n.choices[0]:void 0;if(i){if(!n.usage&&i.usage&&(e.usage=U(i.usage,t)),i.finish_reason){let t=W(i.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),b=!0}if(i.delta){if(i.delta.content!==null&&i.delta.content!==void 0&&i.delta.content.length>0){let t=j();t.text+=i.delta.content,a.push({type:`text_delta`,contentIndex:D(t),delta:i.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],o=i.delta,s=null;for(let e of n){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=M(t.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,a.push({type:`thinking_delta`,contentIndex:D(r),delta:n,partial:e})}}if(i?.delta?.tool_calls)for(let t of i.delta.tool_calls){let n=P(t);!n.id&&t.id&&(n.id=t.id,S.set(t.id,n)),!n.name&&t.function?.name&&(n.name=t.function.name);let i=``;t.function?.arguments&&(i=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=r(n.partialArgs)),a.push({type:`toolcall_delta`,contentIndex:D(n),delta:i,partial:e})}let c=i.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(T(e)){let t=JSON.stringify(e),n=S.get(e.id);n?n.thoughtSignature=t:C.set(e.id,t)}}}}}for(let e of w)O(e);if(i?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);a.push({type:`done`,reason:e.stopReason,message:e}),a.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.streamIndex;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=p(f(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),a.push({type:`error`,reason:e.stopReason,error:e}),a.end()}})(),a},O=(e,n,r)=>{_(e.provider,r?.apiKey,r?.headers);let i=a(e,n,r,r?.apiKey),o=r?.reasoning?t(e,r.reasoning):void 0,s=o===`off`?void 0:o,c=r?.toolChoice;return D(e,n,{...i,reasoningEffort:s,toolChoice:c})};function k(e,t,n,r,i,a=K(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(o,n)}return i&&a.sendSessionAffinityHeaders&&(a.sessionAffinityFormat===`openrouter`?o[`x-session-id`]=i:(a.sessionAffinityFormat===`openai`&&(o.session_id=i),o[`x-client-request-id`]=i,o[`x-session-affinity`]=i)),r&&Object.assign(o,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function A(e,t,n,r=K(e),i=E(n?.cacheRetention,n?.env)){let a=V(e,t,r),o=N(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?m(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature);let c=r.deferredToolsMode===`kimi`?y(t.messages):new Set,l=t.tools?.filter(e=>!c.has(e.name));if(l&&l.length>0?(s.tools=H(l,r),r.zaiToolStream&&(s.tool_stream=!0)):v(t.messages)&&(s.tools=[]),o&&P(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=s;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=j(e,n,r);t&&(s.chat_template_kwargs=t)}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?s.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(s.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function j(e,t,n){let r={};for(let[i,a]of Object.entries(n.chatTemplateKwargs)){let n=M(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function M(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function N(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function P(e,t,n){F(e,n),L(t,n),I(e,n)}function F(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){R(n,t);return}}function I(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&z(r,t))return}}function L(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function R(e,t){return B(e,t)}function z(e,t){return e.role===`user`||e.role===`assistant`?B(e,t):!1}function B(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function V(e,t,n){let r=[],i=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=h(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},a=o(t.messages,e,e=>i(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let s=null;for(let i=0;i<a.length;i++){let o=a[i];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&o.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),o.role===`user`)if(typeof o.content==`string`)r.push({role:`user`,content:c(o.content)});else{let e=o.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(o.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},i=o.content.filter(x).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),a=i.map(e=>e.text).join(``),s=o.content.filter(S).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>c(e.thinking)).join(`
2
+
3
+ `)},...i];else{a.length>0&&(t.content=a);let n=s[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=s.map(e=>e.thinking).join(`
4
+ `))}else a.length>0&&(t.content=a);let l=o.content.filter(C);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(o.role===`toolResult`){let o=[],l=new Set,u=i;for(;u<a.length&&a[u].role===`toolResult`;u++){let t=a[u],i=t.content.filter(x).map(e=>e.text).join(`
5
+ `),s=t.content.some(e=>e.type===`image`),d={role:`tool`,content:c(i.length>0?i:s?`(see attached image)`:`(no tool output)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(d.name=t.toolName),r.push(d),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])l.add(e);if(s&&e.input.includes(`image`))for(let e of t.content)w(e)&&o.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(i=u-1,o.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...o]}),s=`user`):s=`toolResult`,l.size>0){let e=b(t.tools,l);if(e.length>0){let t={role:`system`,tools:H(e,n)};r.push(t)}}continue}s=o.role}return r}function H(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function U(e,t){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return n(t,c),c}function W(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function G(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!c&&!l,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function K(e){let t=G(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{V as convertMessages,D as stream,O as streamSimple};
@@ -0,0 +1,5 @@
1
+ import{t as e}from"./event-stream-qbAZIAKV.js";import{o as t,r as n,s as r,t as i}from"./transform-messages-Bp94o3FD.js";import{n as a}from"./json-parse-CpLf0aqK.js";import{t as o}from"./provider-env-DwY8YuMk.js";import{t as s}from"./headers-CbDaTl3c.js";import{t as c}from"./sanitize-unicode-DmIE6hZJ.js";import{n as l,t as u}from"./github-copilot-headers-DRgtIyTm.js";import{n as d}from"./openai-CmTnPr9N.js";import{n as f,t as p}from"./error-body-C0EnfbdK.js";import{t as m}from"./openai-prompt-cache-DXo9f3w5.js";import{t as h}from"./hash-yQufAZII.js";function g(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function _(e,t,n){if(t)return t;if(g(n,`authorization`)||g(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function v(e){for(let t of e)if(t.role===`toolResult`||t.role===`assistant`&&t.content.some(e=>e.type===`toolCall`))return!0;return!1}function y(e){let t=new Set;for(let n of e)if(n.role===`toolResult`)for(let e of n.addedToolNames??[])t.add(e);return t}function b(e,t){if(!e)return[];let n=new Map(e.map(e=>[e.name,e]));return Array.from(t).map(e=>n.get(e)).filter(e=>e!==void 0)}function x(e){return e.type===`text`}function S(e){return e.type===`thinking`}function C(e){return e.type===`toolCall`}function w(e){return e.type===`image`}function T(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`reasoning.encrypted`&&typeof t.id==`string`&&t.id.length>0&&typeof t.data==`string`&&t.data.length>0}function E(e,t){return e||(o(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}const D=(t,n,r)=>{let i=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=_(t.provider,r?.apiKey,r?.headers),c=K(t),l=E(r?.cacheRetention,r?.env),u=l===`none`?void 0:r?.sessionId,d=k(t,n,o,r?.headers,u,c),f=A(t,n,r,c,l),p=await r?.onPayload?.(f,t);p!==void 0&&(f=p);let m={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:h,response:g}=await d.chat.completions.create(f,m).withResponse();await r?.onResponse?.({status:g.status,headers:s(g.headers)},t),i.push({type:`start`,partial:e});let v=null,y=null,b=!1,x=new Map,S=new Map,C=new Map,w=e.content,D=e=>w.indexOf(e),O=t=>{let n=D(t);n!==-1&&(t.type===`text`?i.push({type:`text_end`,contentIndex:n,content:t.text,partial:e}):t.type===`thinking`?i.push({type:`thinking_end`,contentIndex:n,content:t.thinking,partial:e}):t.type===`toolCall`&&(t.arguments=a(t.partialArgs),delete t.partialArgs,delete t.streamIndex,i.push({type:`toolcall_end`,contentIndex:n,toolCall:t,partial:e})))},j=()=>(v||(v={type:`text`,text:``},w.push(v),i.push({type:`text_start`,contentIndex:D(v),partial:e})),v),M=t=>(y||(y={type:`thinking`,thinking:``,thinkingSignature:t},w.push(y),i.push({type:`thinking_start`,contentIndex:D(y),partial:e})),y),N=e=>{if(!e.id)return;let t=C.get(e.id);t&&(e.thoughtSignature=t,C.delete(e.id))},P=t=>{let n=typeof t.index==`number`?t.index:void 0,r=n===void 0?void 0:x.get(n);return!r&&t.id&&(r=S.get(t.id)),r||(r={type:`toolCall`,id:t.id||``,name:t.function?.name||``,arguments:{},partialArgs:``,streamIndex:n},n!==void 0&&x.set(n,r),t.id&&S.set(t.id,r),w.push(r),i.push({type:`toolcall_start`,contentIndex:D(r),partial:e})),n!==void 0&&r.streamIndex===void 0&&(r.streamIndex=n,x.set(n,r)),t.id&&S.set(t.id,r),N(r),r};for await(let n of h){if(!n||typeof n!=`object`)continue;e.responseId||=n.id,typeof n.model==`string`&&n.model.length>0&&n.model!==t.id&&(e.responseModel||=n.model),n.usage&&(e.usage=U(n.usage,t));let r=Array.isArray(n.choices)?n.choices[0]:void 0;if(r){if(!n.usage&&r.usage&&(e.usage=U(r.usage,t)),r.finish_reason){let t=W(r.finish_reason);e.stopReason=t.stopReason,t.errorMessage&&(e.errorMessage=t.errorMessage),b=!0}if(r.delta){if(r.delta.content!==null&&r.delta.content!==void 0&&r.delta.content.length>0){let t=j();t.text+=r.delta.content,i.push({type:`text_delta`,contentIndex:D(t),delta:r.delta.content,partial:e})}let n=[`reasoning_content`,`reasoning`,`reasoning_text`],o=r.delta,s=null;for(let e of n){let t=o[e];if(typeof t==`string`&&t.length>0){s=e;break}}if(s){let n=o[s];if(typeof n==`string`&&n.length>0){let r=M(t.provider===`opencode-go`&&s===`reasoning`?`reasoning_content`:s);r.thinking+=n,i.push({type:`thinking_delta`,contentIndex:D(r),delta:n,partial:e})}}if(r?.delta?.tool_calls)for(let t of r.delta.tool_calls){let n=P(t);!n.id&&t.id&&(n.id=t.id,S.set(t.id,n)),!n.name&&t.function?.name&&(n.name=t.function.name);let r=``;t.function?.arguments&&(r=t.function.arguments,n.partialArgs=(n.partialArgs??``)+t.function.arguments,n.arguments=a(n.partialArgs)),i.push({type:`toolcall_delta`,contentIndex:D(n),delta:r,partial:e})}let c=r.delta.reasoning_details;if(Array.isArray(c)){for(let e of c)if(T(e)){let t=JSON.stringify(e),n=S.get(e.id);n?n.thoughtSignature=t:C.set(e.id,t)}}}}}for(let e of w)O(e);if(r?.signal?.aborted||e.stopReason===`aborted`)throw Error(`Request was aborted`);if(e.stopReason===`error`)throw Error(e.errorMessage||`Provider returned an error stop reason`);if(!b)throw Error(`Stream ended without finish_reason`);i.push({type:`done`,reason:e.stopReason,message:e}),i.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialArgs,delete t.streamIndex;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=p(f(t));let n=t?.error?.metadata?.raw;n&&!e.errorMessage.includes(String(n))&&(e.errorMessage+=`\n${n}`),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},O=(e,t,i)=>{_(e.provider,i?.apiKey,i?.headers);let a=n(e,t,i,i?.apiKey),o=i?.reasoning?r(e,i.reasoning):void 0,s=o===`off`?void 0:o,c=i?.toolChoice;return D(e,t,{...a,reasoningEffort:s,toolChoice:c})};function k(e,t,n,r,i,a=K(e)){let o={...e.headers};if(e.provider===`github-copilot`){let e=l(t.messages),n=u({messages:t.messages,hasImages:e});Object.assign(o,n)}return i&&a.sendSessionAffinityHeaders&&(a.sessionAffinityFormat===`openrouter`?o[`x-session-id`]=i:(a.sessionAffinityFormat===`openai`&&(o.session_id=i),o[`x-client-request-id`]=i,o[`x-session-affinity`]=i)),r&&Object.assign(o,r),new d({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:o})}function A(e,t,n,r=K(e),i=E(n?.cacheRetention,n?.env)){let a=V(e,t,r),o=N(r,i),s={model:e.id,messages:a,stream:!0,prompt_cache_key:e.baseUrl.includes(`api.openai.com`)&&i!==`none`||i===`long`&&r.supportsLongCacheRetention?m(n?.sessionId):void 0,prompt_cache_retention:i===`long`&&r.supportsLongCacheRetention?`24h`:void 0};r.supportsUsageInStreaming!==!1&&(s.stream_options={include_usage:!0}),r.supportsStore&&(s.store=!1),n?.maxTokens&&(r.maxTokensField===`max_tokens`?s.max_tokens=n.maxTokens:s.max_completion_tokens=n.maxTokens),n?.temperature!==void 0&&(s.temperature=n.temperature);let c=r.deferredToolsMode===`kimi`?y(t.messages):new Set,l=t.tools?.filter(e=>!c.has(e.name));if(l&&l.length>0?(s.tools=H(l,r),r.zaiToolStream&&(s.tool_stream=!0)):v(t.messages)&&(s.tools=[]),o&&P(a,s.tools,o),n?.toolChoice&&(s.tool_choice=n.toolChoice),r.thinkingFormat===`zai`&&e.reasoning){let t=s;if(t.thinking=n?.reasoningEffort?{type:`enabled`,clear_thinking:!1}:{type:`disabled`},n?.reasoningEffort&&r.supportsReasoningEffort){let r=e.thinkingLevelMap?.[n.reasoningEffort],i=r===void 0?n.reasoningEffort:r;typeof i==`string`&&(t.reasoning_effort=i)}}else if(r.thinkingFormat===`qwen`&&e.reasoning)s.enable_thinking=!!n?.reasoningEffort;else if(r.thinkingFormat===`qwen-chat-template`&&e.reasoning)s.chat_template_kwargs={enable_thinking:!!n?.reasoningEffort,preserve_thinking:!0};else if(r.thinkingFormat===`chat-template`&&e.reasoning){let t=j(e,n,r);t&&(s.chat_template_kwargs=t)}else if(r.thinkingFormat===`deepseek`&&e.reasoning)n?.reasoningEffort?s.thinking={type:`enabled`}:e.thinkingLevelMap?.off!==null&&(s.thinking={type:`disabled`}),n?.reasoningEffort&&r.supportsReasoningEffort&&(s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort);else if(r.thinkingFormat===`openrouter`&&e.reasoning){let t=s;n?.reasoningEffort?t.reasoning={effort:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort}:e.thinkingLevelMap?.off!==null&&(t.reasoning={effort:e.thinkingLevelMap?.off??`none`})}else if(r.thinkingFormat===`ant-ling`&&e.reasoning&&n?.reasoningEffort){let t=e.thinkingLevelMap?.[n.reasoningEffort];typeof t==`string`&&(s.reasoning={effort:t})}else if(r.thinkingFormat===`together`&&e.reasoning){let t=s;t.reasoning={enabled:!!n?.reasoningEffort},n?.reasoningEffort&&r.supportsReasoningEffort&&(t.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort)}else if(r.thinkingFormat===`string-thinking`&&e.reasoning){let t=s;n?.reasoningEffort?t.thinking=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:e.thinkingLevelMap?.off!==null&&(t.thinking=e.thinkingLevelMap?.off??`none`)}else if(n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort)s.reasoning_effort=e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;else if(!n?.reasoningEffort&&e.reasoning&&r.supportsReasoningEffort){let t=e.thinkingLevelMap?.off;typeof t==`string`&&(s.reasoning_effort=t)}if(e.compat?.openRouterRouting&&(s.provider=e.compat.openRouterRouting),e.compat?.vercelGatewayRouting){let t=e.compat.vercelGatewayRouting;if(t.only||t.order){let e={};t.only&&(e.only=t.only),t.order&&(e.order=t.order),s.providerOptions={gateway:e}}}return s}function j(e,t,n){let r={};for(let[i,a]of Object.entries(n.chatTemplateKwargs)){let n=M(e,t,a);n!==void 0&&(r[i]=n)}return Object.keys(r).length>0?r:void 0}function M(e,t,n){if(typeof n!=`object`||!n)return n;let r=t?.reasoningEffort;if(!r&&n.omitWhenOff)return;if(n.$var===`thinking.enabled`)return!!r;let i=r?e.thinkingLevelMap?.[r]:e.thinkingLevelMap?.off;return i===void 0?r:typeof i==`string`?i:void 0}function N(e,t){if(e.cacheControlFormat!==`anthropic`||t===`none`)return;let n=t===`long`&&e.supportsLongCacheRetention?`1h`:void 0;return{type:`ephemeral`,...n?{ttl:n}:{}}}function P(e,t,n){F(e,n),L(t,n),I(e,n)}function F(e,t){for(let n of e)if(n.role===`system`||n.role===`developer`){R(n,t);return}}function I(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if((r.role===`user`||r.role===`assistant`)&&z(r,t))return}}function L(e,t){if(!e||e.length===0)return;let n=e[e.length-1];n.cache_control=t}function R(e,t){return B(e,t)}function z(e,t){return e.role===`user`||e.role===`assistant`?B(e,t):!1}function B(e,t){let n=e.content;if(typeof n==`string`)return n.length===0?!1:(e.content=[{type:`text`,text:n,cache_control:t}],!0);if(!Array.isArray(n))return!1;for(let e=n.length-1;e>=0;e--){let r=n[e];if(r?.type===`text`){let e=r;return e.cache_control=t,!0}}return!1}function V(e,t,n){let r=[],a=t=>{if(t.includes(`|`)){let e=t.indexOf(`|`),n=t.slice(0,e).replace(/[^a-zA-Z0-9_-]/g,`_`),r=t.slice(e+1).replace(/[^a-zA-Z0-9_-]/g,`_`),i=r.length>0?`${n}_${r}`:n;if(i.length<=40)return i;let a=h(t).slice(0,8);return`${n.slice(0,Math.max(1,40-a.length-1))}_${a}`}return e.provider===`openai`&&t.length>40?t.slice(0,40):t},o=i(t.messages,e,e=>a(e));if(t.systemPrompt){let i=e.reasoning&&n.supportsDeveloperRole?`developer`:`system`;r.push({role:i,content:c(t.systemPrompt)})}let s=null;for(let i=0;i<o.length;i++){let a=o[i];if(n.requiresAssistantAfterToolResult&&s===`toolResult`&&a.role===`user`&&r.push({role:`assistant`,content:`I have processed the tool results.`}),a.role===`user`)if(typeof a.content==`string`)r.push({role:`user`,content:c(a.content)});else{let e=a.content.map(e=>e.type===`text`?{type:`text`,text:c(e.text)}:{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}});if(e.length===0)continue;r.push({role:`user`,content:e})}else if(a.role===`assistant`){let t={role:`assistant`,content:n.requiresAssistantAfterToolResult?``:null},i=a.content.filter(x).filter(e=>e.text.trim().length>0).map(e=>({type:`text`,text:c(e.text)})),o=i.map(e=>e.text).join(``),s=a.content.filter(S).filter(e=>e.thinking.trim().length>0);if(s.length>0)if(n.requiresThinkingAsText)t.content=[{type:`text`,text:s.map(e=>c(e.thinking)).join(`
2
+
3
+ `)},...i];else{o.length>0&&(t.content=o);let n=s[0].thinkingSignature;e.provider===`opencode-go`&&n===`reasoning`&&(n=`reasoning_content`),n&&n.length>0&&(t[n]=s.map(e=>e.thinking).join(`
4
+ `))}else o.length>0&&(t.content=o);let l=a.content.filter(C);if(l.length>0){t.tool_calls=l.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}));let e=l.filter(e=>e.thoughtSignature).map(e=>{try{return JSON.parse(e.thoughtSignature)}catch{return null}}).filter(Boolean);e.length>0&&(t.reasoning_details=e)}n.requiresReasoningContentOnAssistantMessages&&e.reasoning&&t.reasoning_content===void 0&&(t.reasoning_content=``);let u=t.content;if(!(u!=null&&u.length>0)&&!t.tool_calls)continue;r.push(t)}else if(a.role===`toolResult`){let a=[],l=new Set,u=i;for(;u<o.length&&o[u].role===`toolResult`;u++){let t=o[u],i=t.content.filter(x).map(e=>e.text).join(`
5
+ `),s=t.content.some(e=>e.type===`image`),d={role:`tool`,content:c(i.length>0?i:s?`(see attached image)`:`(no tool output)`),tool_call_id:t.toolCallId};if(n.requiresToolResultName&&t.toolName&&(d.name=t.toolName),r.push(d),n.deferredToolsMode===`kimi`)for(let e of t.addedToolNames??[])l.add(e);if(s&&e.input.includes(`image`))for(let e of t.content)w(e)&&a.push({type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.data}`}})}if(i=u-1,a.length>0?(n.requiresAssistantAfterToolResult&&r.push({role:`assistant`,content:`I have processed the tool results.`}),r.push({role:`user`,content:[{type:`text`,text:`Attached image(s) from tool result:`},...a]}),s=`user`):s=`toolResult`,l.size>0){let e=b(t.tools,l);if(e.length>0){let t={role:`system`,tools:H(e,n)};r.push(t)}}continue}s=a.role}return r}function H(e,t){return e.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:e.parameters,...t.supportsStrictMode!==!1&&{strict:!1}}}))}function U(e,n){let r=e.prompt_tokens||0,i=e.prompt_tokens_details?.cached_tokens??e.prompt_cache_hit_tokens??0,a=e.prompt_tokens_details?.cache_write_tokens||0,o=Math.max(0,r-i-a),s=e.completion_tokens||0,c={input:o,output:s,cacheRead:i,cacheWrite:a,reasoning:e.completion_tokens_details?.reasoning_tokens||0,totalTokens:o+s+i+a,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return t(n,c),c}function W(e){if(e===null)return{stopReason:`stop`};switch(e){case`stop`:case`end`:return{stopReason:`stop`};case`length`:return{stopReason:`length`};case`function_call`:case`tool_calls`:return{stopReason:`toolUse`};case`content_filter`:return{stopReason:`error`,errorMessage:`Provider finish_reason: content_filter`};case`network_error`:return{stopReason:`error`,errorMessage:`Provider finish_reason: network_error`};default:return{stopReason:`error`,errorMessage:`Provider finish_reason: ${e}`}}}function G(e){let t=e.provider,n=e.baseUrl,r=t===`zai`||t===`zai-coding-cn`||n.includes(`api.z.ai`)||n.includes(`open.bigmodel.cn`),i=t===`together`||n.includes(`api.together.ai`)||n.includes(`api.together.xyz`),a=t===`moonshotai`||t===`moonshotai-cn`||n.includes(`api.moonshot.`),o=t===`openrouter`||n.includes(`openrouter.ai`),s=t===`cloudflare-workers-ai`||n.includes(`api.cloudflare.com`),c=t===`cloudflare-ai-gateway`||n.includes(`gateway.ai.cloudflare.com`),l=t===`nvidia`||n.includes(`integrate.api.nvidia.com`),u=t===`ant-ling`||n.includes(`api.ant-ling.com`),d=l||t===`cerebras`||n.includes(`cerebras.ai`)||t===`xai`||n.includes(`api.x.ai`)||i||n.includes(`chutes.ai`)||n.includes(`deepseek.com`)||r||a||t===`opencode`||n.includes(`opencode.ai`)||s||c||u,f=n.includes(`chutes.ai`)||a||c||i||l||u,p=t===`xai`||n.includes(`api.x.ai`),m=t===`deepseek`||n.includes(`deepseek.com`),h=o&&(e.id.startsWith(`anthropic/`)||e.id.startsWith(`openai/`)),g=t===`openrouter`&&e.id.startsWith(`anthropic/`)?`anthropic`:void 0;return{supportsStore:!d,supportsDeveloperRole:h||!d&&!o,supportsReasoningEffort:!p&&!r&&!a&&!i&&!c&&!l&&!u,supportsUsageInStreaming:!0,maxTokensField:f?`max_tokens`:`max_completion_tokens`,requiresToolResultName:!1,requiresAssistantAfterToolResult:!1,requiresThinkingAsText:!1,requiresReasoningContentOnAssistantMessages:m,thinkingFormat:m?`deepseek`:r?`zai`:i?`together`:u?`ant-ling`:o?`openrouter`:`openai`,openRouterRouting:{},vercelGatewayRouting:{},chatTemplateKwargs:{},zaiToolStream:!1,supportsStrictMode:!a&&!i&&!c&&!l,cacheControlFormat:g,sendSessionAffinityHeaders:!1,deferredToolsMode:void 0,sessionAffinityFormat:o?`openrouter`:`openai`,supportsLongCacheRetention:!(i||s||c||l||u)}}function K(e){let t=G(e);return e.compat?{supportsStore:e.compat.supportsStore??t.supportsStore,supportsDeveloperRole:e.compat.supportsDeveloperRole??t.supportsDeveloperRole,supportsReasoningEffort:e.compat.supportsReasoningEffort??t.supportsReasoningEffort,supportsUsageInStreaming:e.compat.supportsUsageInStreaming??t.supportsUsageInStreaming,maxTokensField:e.compat.maxTokensField??t.maxTokensField,requiresToolResultName:e.compat.requiresToolResultName??t.requiresToolResultName,requiresAssistantAfterToolResult:e.compat.requiresAssistantAfterToolResult??t.requiresAssistantAfterToolResult,requiresThinkingAsText:e.compat.requiresThinkingAsText??t.requiresThinkingAsText,requiresReasoningContentOnAssistantMessages:e.compat.requiresReasoningContentOnAssistantMessages??t.requiresReasoningContentOnAssistantMessages,thinkingFormat:e.compat.thinkingFormat??t.thinkingFormat,openRouterRouting:e.compat.openRouterRouting??{},vercelGatewayRouting:e.compat.vercelGatewayRouting??t.vercelGatewayRouting,chatTemplateKwargs:e.compat.chatTemplateKwargs??t.chatTemplateKwargs,zaiToolStream:e.compat.zaiToolStream??t.zaiToolStream,supportsStrictMode:e.compat.supportsStrictMode??t.supportsStrictMode,cacheControlFormat:e.compat.cacheControlFormat??t.cacheControlFormat,sendSessionAffinityHeaders:e.compat.sendSessionAffinityHeaders??t.sendSessionAffinityHeaders,deferredToolsMode:e.compat.deferredToolsMode??t.deferredToolsMode,sessionAffinityFormat:e.compat.sessionAffinityFormat??t.sessionAffinityFormat,supportsLongCacheRetention:e.compat.supportsLongCacheRetention??t.supportsLongCacheRetention}:t}export{V as convertMessages,D as stream,O as streamSimple};
@@ -0,0 +1 @@
1
+ import{t as e}from"./event-stream-qbAZIAKV.js";import{n as t}from"./models-Bnh9VDA1.js";import{t as n}from"./provider-env-D37PhSJu.js";import{r}from"./transform-messages-wECJwtH0.js";import{t as i}from"./deferred-tools-C1IEsG5C.js";import{t as a}from"./headers-CbDaTl3c.js";import{n as o,t as s}from"./github-copilot-headers-DRgtIyTm.js";import{n as c}from"./openai-BxFF4GUL.js";import{n as l,t as u}from"./error-body-C0EnfbdK.js";import{t as d}from"./openai-prompt-cache-DXo9f3w5.js";import{n as f,r as p,t as m}from"./openai-responses-shared-BHsJFKuB.js";var h=new Set([`openai`,`openai-codex`,`opencode`]),g=16;function _(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function v(e,t,n){if(t)return t;if(_(n,`authorization`)||_(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function y(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function b(e,t){return e||(n(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function x(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??y(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsToolSearch:e.compat?.supportsToolSearch??!1}}function S(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function C(e){return u(l(e),`OpenAI API error`)}var w=(t,n,r)=>{let i=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=v(t.provider,r?.apiKey,r?.headers),s=b(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,c=E(t,n,o,r?.headers,s),l=D(t,n,r),u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let d={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:f,response:m}=await c.responses.create(l,d).withResponse();if(await r?.onResponse?.({status:m.status,headers:a(m.headers)},t),i.push({type:`start`,partial:e}),await p(f,e,i,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>k(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);i.push({type:`done`,reason:e.stopReason,message:e}),i.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=C(t),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},T=(e,n,i)=>{v(e.provider,i?.apiKey,i?.headers);let a=r(e,n,i,i?.apiKey),o=i?.reasoning?t(e,i.reasoning):void 0,s=o===`off`?void 0:o;return w(e,n,{...a,reasoningEffort:s})};function E(e,t,n,r,i){let a=x(e),l={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(l,n)}return i&&(a.sessionAffinityFormat===`openrouter`?l[`x-session-id`]=i:(a.sessionAffinityFormat===`openai`&&(l.session_id=i),l[`x-client-request-id`]=i)),r&&Object.assign(l,r),new c({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:l})}function D(e,t,n){let r=x(e),a=i(t,r.supportsToolSearch),o=m(e,t,h,{deferredTools:a.deferred}),s=b(n?.cacheRetention,n?.env),c={model:e.id,input:o,stream:!0,prompt_cache_key:s===`none`?void 0:d(n?.sessionId),prompt_cache_retention:S(r,s),store:!1};return n?.maxTokens&&(c.max_output_tokens=Math.max(n.maxTokens,g)),n?.temperature!==void 0&&(c.temperature=n?.temperature),n?.serviceTier!==void 0&&(c.service_tier=n.serviceTier),a.immediate.length>0&&(c.tools=f(a.immediate)),n?.toolChoice!==void 0&&(c.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(c.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},c.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(c.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(c.include=[`reasoning.encrypted_content`])),c}function O(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function k(e,t,n){let r=O(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{w as stream,T as streamSimple};
@@ -0,0 +1,10 @@
1
+ import{t as e}from"./models-Bnh9VDA1.js";import{n as t}from"./json-parse-rb7sUwcH.js";import{t as n}from"./transform-messages-wECJwtH0.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,t,a,s){let l=[],u=new Set,d=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},f=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},p=n(t.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return d(t);let[i,o]=t.split(`|`),s=d(i),c=r.provider!==e.provider||r.api!==e.api?f(o):d(o);return c.startsWith(`fc_`)||(c=d(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&t.systemPrompt){let n=e.compat,i=e.reasoning&&n?.supportsDeveloperRole!==!1?`developer`:`system`;l.push({role:i,content:r(t.systemPrompt)})}let m=0;for(let t of p){if(t.role===`user`)if(typeof t.content==`string`)l.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;l.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,c=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=c===0?`msg_pi_${m}`:`msg_pi_${m}_${c}`;c++;let l=a?.id;l?l.length>64&&(l=`msg_${i(l)}`):l=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:l,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;l.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
+ `),a=t.content.some(e=>e.type===`image`),o=n.length>0,[d]=t.toolCallId.split(`|`),f;if(a&&e.input.includes(`image`)){let e=[];o&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});f=e}else f=r(o?n:a?`(see attached image)`:`(no tool output)`);l.push({type:`function_call_output`,call_id:d,output:f});let p=[];for(let e of t.addedToolNames??[]){let t=s?.deferredTools?.get(e);!t||u.has(e)||(u.add(e),p.push(t))}if(p.length>0){let e=p.map(e=>e.name),n=`pi_tool_load_${i(`${t.toolCallId}:${e.join(`,`)}`)}`;l.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),l.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:c(p,{deferLoading:!0})})}}m++}return l}function c(e,t){let n=t?.strict!==void 0&&t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n,...t?.deferLoading?{defer_loading:!0}:{}}))}async function l(n,r,i,o,s){let c=!1,l=new Map,d=new Map,f=(e,t)=>{let n=l.get(e);return n?.type===t?n:void 0},p=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return l.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){let t={type:`text`,text:``};r.content.push(t);let n={type:`text`,block:t,contentIndex:r.content.length-1};return l.set(e,n),i.push({type:`text_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return l.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}},m=(e,t)=>l.get(e)??p(e,t),h=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=d.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},g=t=>{if(c=!0,h(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of n)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)p(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
3
+
4
+ `,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:`
5
+
6
+ `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let n=f(e.output_index,`toolCall`);if(!n)continue;n.block.partialJson+=e.delta,n.block.arguments=t(n.block.partialJson),i.push({type:`toolcall_delta`,contentIndex:n.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.done`){let n=f(e.output_index,`toolCall`);if(!n)continue;let a=n.block.partialJson;if(n.block.partialJson=e.arguments,n.block.arguments=t(n.block.partialJson),e.arguments.startsWith(a)){let t=e.arguments.slice(a.length);t.length>0&&i.push({type:`toolcall_delta`,contentIndex:n.contentIndex,delta:t,partial:r})}}else if(e.type===`response.output_item.done`){let n=e.item,o=m(e.output_index,n);if(n.type===`reasoning`&&o?.type===`thinking`){let t=n.summary?.map(e=>e.text).join(`
7
+
8
+ `)||``,a=n.content?.map(e=>e.text).join(`
9
+
10
+ `)||``;o.block.thinking=t||a||o.block.thinking,o.block.thinkingSignature=JSON.stringify(n),d.set(n.id,o.block),i.push({type:`thinking_end`,contentIndex:o.contentIndex,content:o.block.thinking,partial:r}),l.delete(e.output_index)}else n.type===`message`&&o?.type===`text`?(o.block.text=n.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,o.block.textSignature=a(n.id,n.phase??void 0),i.push({type:`text_end`,contentIndex:o.contentIndex,content:o.block.text,partial:r}),l.delete(e.output_index)):n.type===`function_call`&&o?.type===`toolCall`&&(o.block.arguments=t(n.arguments||o.block.partialJson||`{}`),delete o.block.partialJson,i.push({type:`toolcall_end`,contentIndex:o.contentIndex,toolCall:o.block,partial:r}),l.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)g(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){c=!0;let t=e.response?.error,n=e.response?.incomplete_details,r=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(r)}if(!c)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function u(e){if(!e)return`stop`;switch(e){case`completed`:return`stop`;case`incomplete`:return`length`;case`failed`:case`cancelled`:return`error`;case`in_progress`:case`queued`:return`stop`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{c as n,l as r,s as t};
@@ -0,0 +1,10 @@
1
+ import{o as e,t}from"./transform-messages-Bp94o3FD.js";import{n}from"./json-parse-CpLf0aqK.js";import{t as r}from"./sanitize-unicode-DmIE6hZJ.js";import{t as i}from"./hash-yQufAZII.js";function a(e,t){let n={v:1,id:e};return t&&(n.phase=t),JSON.stringify(n)}function o(e){if(e){if(e.startsWith(`{`))try{let t=JSON.parse(e);if(t.v===1&&typeof t.id==`string`)return t.phase===`commentary`||t.phase===`final_answer`?{id:t.id,phase:t.phase}:{id:t.id}}catch{}return{id:e}}}function s(e,n,a,s){let l=[],u=new Set,d=e=>{let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return(t.length>64?t.slice(0,64):t).replace(/_+$/,``)},f=e=>{let t=`fc_${i(e)}`;return t.length>64?t.slice(0,64):t},p=t(n.messages,e,(t,n,r)=>{if(!a.has(e.provider)||!t.includes(`|`))return d(t);let[i,o]=t.split(`|`),s=d(i),c=r.provider!==e.provider||r.api!==e.api?f(o):d(o);return c.startsWith(`fc_`)||(c=d(`fc_${c}`)),`${s}|${c}`});if((s?.includeSystemPrompt??!0)&&n.systemPrompt){let t=e.compat,i=e.reasoning&&t?.supportsDeveloperRole!==!1?`developer`:`system`;l.push({role:i,content:r(n.systemPrompt)})}let m=0;for(let t of p){if(t.role===`user`)if(typeof t.content==`string`)l.push({role:`user`,content:[{type:`input_text`,text:r(t.content)}]});else{let e=t.content.map(e=>e.type===`text`?{type:`input_text`,text:r(e.text)}:{type:`input_image`,detail:`auto`,image_url:`data:${e.mimeType};base64,${e.data}`});if(e.length===0)continue;l.push({role:`user`,content:e})}else if(t.role===`assistant`){let n=[],a=t,s=a.model!==e.id&&a.provider===e.provider&&a.api===e.api,c=0;for(let e of t.content)if(e.type===`thinking`){if(e.thinkingSignature){let t=JSON.parse(e.thinkingSignature);n.push(t)}}else if(e.type===`text`){let t=e,a=o(t.textSignature),s=c===0?`msg_pi_${m}`:`msg_pi_${m}_${c}`;c++;let l=a?.id;l?l.length>64&&(l=`msg_${i(l)}`):l=s,n.push({type:`message`,role:`assistant`,content:[{type:`output_text`,text:r(t.text),annotations:[]}],status:`completed`,id:l,phase:a?.phase})}else if(e.type===`toolCall`){let t=e,[r,i]=t.id.split(`|`),a=i;s&&a?.startsWith(`fc_`)&&(a=void 0),n.push({type:`function_call`,id:a,call_id:r,name:t.name,arguments:JSON.stringify(t.arguments)})}if(n.length===0)continue;l.push(...n)}else if(t.role===`toolResult`){let n=t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
2
+ `),a=t.content.some(e=>e.type===`image`),o=n.length>0,[d]=t.toolCallId.split(`|`),f;if(a&&e.input.includes(`image`)){let e=[];o&&e.push({type:`input_text`,text:r(n)});for(let n of t.content)n.type===`image`&&e.push({type:`input_image`,detail:`auto`,image_url:`data:${n.mimeType};base64,${n.data}`});f=e}else f=r(o?n:a?`(see attached image)`:`(no tool output)`);l.push({type:`function_call_output`,call_id:d,output:f});let p=[];for(let e of t.addedToolNames??[]){let t=s?.deferredTools?.get(e);!t||u.has(e)||(u.add(e),p.push(t))}if(p.length>0){let e=p.map(e=>e.name),n=`pi_tool_load_${i(`${t.toolCallId}:${e.join(`,`)}`)}`;l.push({type:`tool_search_call`,call_id:n,execution:`client`,status:`completed`,arguments:{query:e.join(` `),limit:e.length}}),l.push({type:`tool_search_output`,call_id:n,execution:`client`,status:`completed`,tools:c(p,{deferLoading:!0})})}}m++}return l}function c(e,t){let n=t?.strict!==void 0&&t.strict;return e.map(e=>({type:`function`,name:e.name,description:e.description,parameters:e.parameters,strict:n,...t?.deferLoading?{defer_loading:!0}:{}}))}async function l(t,r,i,o,s){let c=!1,l=new Map,d=new Map,f=(e,t)=>{let n=l.get(e);return n?.type===t?n:void 0},p=(e,t)=>{if(t.type===`reasoning`){let t={type:`thinking`,thinking:``};r.content.push(t);let n={type:`thinking`,block:t,contentIndex:r.content.length-1};return l.set(e,n),i.push({type:`thinking_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`message`){let t={type:`text`,text:``};r.content.push(t);let n={type:`text`,block:t,contentIndex:r.content.length-1};return l.set(e,n),i.push({type:`text_start`,contentIndex:n.contentIndex,partial:r}),n}if(t.type===`function_call`){let n={type:`toolCall`,id:`${t.call_id}|${t.id}`,name:t.name,arguments:{},partialJson:t.arguments||``};r.content.push(n);let a={type:`toolCall`,block:n,contentIndex:r.content.length-1};return l.set(e,a),i.push({type:`toolcall_start`,contentIndex:a.contentIndex,partial:r}),a}},m=(e,t)=>l.get(e)??p(e,t),h=e=>{for(let t of e){if(t.type!==`reasoning`||!t.encrypted_content)continue;let e=d.get(t.id);if(!e?.thinkingSignature)continue;let n=JSON.parse(e.thinkingSignature);n.encrypted_content||(e.thinkingSignature=JSON.stringify({...n,encrypted_content:t.encrypted_content}))}},g=t=>{if(c=!0,h(t.output??[]),t?.id&&(r.responseId=t.id),t?.usage){let e=t.usage.input_tokens_details,n=e?.cached_tokens||0,i=e?.cache_write_tokens||0;r.usage={input:Math.max(0,(t.usage.input_tokens||0)-n-i),output:t.usage.output_tokens||0,cacheRead:n,cacheWrite:i,reasoning:t.usage.output_tokens_details?.reasoning_tokens||0,totalTokens:t.usage.total_tokens||0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}}}if(e(o,r.usage),s?.applyServiceTierPricing){let e=s.resolveServiceTier?s.resolveServiceTier(t?.service_tier,s.serviceTier):t?.service_tier??s.serviceTier;s.applyServiceTierPricing(r.usage,e)}r.stopReason=u(t?.status),r.content.some(e=>e.type===`toolCall`)&&r.stopReason===`stop`&&(r.stopReason=`toolUse`)};for await(let e of t)if(e.type===`response.created`)r.responseId=e.response.id;else if(e.type===`response.output_item.added`)p(e.output_index,e.item);else if(e.type===`response.reasoning_summary_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.reasoning_summary_part.done`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=`
3
+
4
+ `,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:`
5
+
6
+ `,partial:r})}else if(e.type===`response.reasoning_text.delta`){let t=f(e.output_index,`thinking`);if(!t)continue;t.block.thinking+=e.delta,i.push({type:`thinking_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.output_text.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.refusal.delta`){let t=f(e.output_index,`text`);if(!t)continue;t.block.text+=e.delta,i.push({type:`text_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.delta`){let t=f(e.output_index,`toolCall`);if(!t)continue;t.block.partialJson+=e.delta,t.block.arguments=n(t.block.partialJson),i.push({type:`toolcall_delta`,contentIndex:t.contentIndex,delta:e.delta,partial:r})}else if(e.type===`response.function_call_arguments.done`){let t=f(e.output_index,`toolCall`);if(!t)continue;let a=t.block.partialJson;if(t.block.partialJson=e.arguments,t.block.arguments=n(t.block.partialJson),e.arguments.startsWith(a)){let n=e.arguments.slice(a.length);n.length>0&&i.push({type:`toolcall_delta`,contentIndex:t.contentIndex,delta:n,partial:r})}}else if(e.type===`response.output_item.done`){let t=e.item,o=m(e.output_index,t);if(t.type===`reasoning`&&o?.type===`thinking`){let n=t.summary?.map(e=>e.text).join(`
7
+
8
+ `)||``,a=t.content?.map(e=>e.text).join(`
9
+
10
+ `)||``;o.block.thinking=n||a||o.block.thinking,o.block.thinkingSignature=JSON.stringify(t),d.set(t.id,o.block),i.push({type:`thinking_end`,contentIndex:o.contentIndex,content:o.block.thinking,partial:r}),l.delete(e.output_index)}else t.type===`message`&&o?.type===`text`?(o.block.text=t.content?.map(e=>e.type===`output_text`?e.text:e.refusal).join(``)||``,o.block.textSignature=a(t.id,t.phase??void 0),i.push({type:`text_end`,contentIndex:o.contentIndex,content:o.block.text,partial:r}),l.delete(e.output_index)):t.type===`function_call`&&o?.type===`toolCall`&&(o.block.arguments=n(t.arguments||o.block.partialJson||`{}`),delete o.block.partialJson,i.push({type:`toolcall_end`,contentIndex:o.contentIndex,toolCall:o.block,partial:r}),l.delete(e.output_index))}else if(e.type===`response.completed`||e.type===`response.incomplete`)g(e.response);else if(e.type===`error`)throw Error(`Error Code ${e.code}: ${e.message}`||`Unknown error`);else if(e.type===`response.failed`){c=!0;let t=e.response?.error,n=e.response?.incomplete_details,r=t?`${t.code||`unknown`}: ${t.message||`no message`}`:n?.reason?`incomplete: ${n.reason}`:`Unknown error (no error details in response)`;throw Error(r)}if(!c)throw Error(`OpenAI Responses stream ended before a terminal response event`)}function u(e){if(!e)return`stop`;switch(e){case`completed`:return`stop`;case`incomplete`:return`length`;case`failed`:case`cancelled`:return`error`;case`in_progress`:case`queued`:return`stop`;default:throw Error(`Unhandled stop reason: ${e}`)}}export{c as n,l as r,s as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./event-stream-qbAZIAKV.js";import{r as t,s as n}from"./transform-messages-Bp94o3FD.js";import{t as r}from"./provider-env-DwY8YuMk.js";import{t as i}from"./deferred-tools-DNuoafg8.js";import{t as a}from"./headers-CbDaTl3c.js";import{n as o,t as s}from"./github-copilot-headers-DRgtIyTm.js";import{n as c}from"./openai-CmTnPr9N.js";import{n as l,t as u}from"./error-body-C0EnfbdK.js";import{t as d}from"./openai-prompt-cache-DXo9f3w5.js";import{n as f,r as p,t as m}from"./openai-responses-shared-Dg5Ojqlw.js";const h=new Set([`openai`,`openai-codex`,`opencode`]);function g(e,t){if(!e)return!1;let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n&&r!==null&&r.trim().length>0)return!0;return!1}function _(e,t,n){if(t)return t;if(g(n,`authorization`)||g(n,`cf-aig-authorization`))return`unused`;throw Error(`No API key for provider: ${e}`)}function v(e){return e.provider===`openrouter`||e.baseUrl.includes(`openrouter.ai`)?`openrouter`:`openai`}function y(e,t){return e||(r(`PI_CACHE_RETENTION`,t)===`long`?`long`:`short`)}function b(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??v(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsToolSearch:e.compat?.supportsToolSearch??!1}}function x(e,t){return t===`long`&&e.supportsLongCacheRetention?`24h`:void 0}function S(e){return u(l(e),`OpenAI API error`)}const C=(t,n,r)=>{let i=new e;return(async()=>{let e={role:`assistant`,content:[],api:t.api,provider:t.provider,model:t.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`stop`,timestamp:Date.now()};try{let o=_(t.provider,r?.apiKey,r?.headers),s=y(r?.cacheRetention,r?.env)===`none`?void 0:r?.sessionId,c=T(t,n,o,r?.headers,s),l=E(t,n,r),u=await r?.onPayload?.(l,t);u!==void 0&&(l=u);let d={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs===void 0?{}:{timeout:r.timeoutMs},maxRetries:r?.maxRetries??0},{data:f,response:m}=await c.responses.create(l,d).withResponse();if(await r?.onResponse?.({status:m.status,headers:a(m.headers)},t),i.push({type:`start`,partial:e}),await p(f,e,i,t,{serviceTier:r?.serviceTier,applyServiceTierPricing:(e,n)=>O(e,n,t)}),r?.signal?.aborted)throw Error(`Request was aborted`);if(e.stopReason===`aborted`||e.stopReason===`error`)throw Error(`An unknown error occurred`);i.push({type:`done`,reason:e.stopReason,message:e}),i.end()}catch(t){for(let t of e.content)delete t.index,delete t.partialJson;e.stopReason=r?.signal?.aborted?`aborted`:`error`,e.errorMessage=S(t),i.push({type:`error`,reason:e.stopReason,error:e}),i.end()}})(),i},w=(e,r,i)=>{_(e.provider,i?.apiKey,i?.headers);let a=t(e,r,i,i?.apiKey),o=i?.reasoning?n(e,i.reasoning):void 0,s=o===`off`?void 0:o;return C(e,r,{...a,reasoningEffort:s})};function T(e,t,n,r,i){let a=b(e),l={...e.headers};if(e.provider===`github-copilot`){let e=o(t.messages),n=s({messages:t.messages,hasImages:e});Object.assign(l,n)}return i&&(a.sessionAffinityFormat===`openrouter`?l[`x-session-id`]=i:(a.sessionAffinityFormat===`openai`&&(l.session_id=i),l[`x-client-request-id`]=i)),r&&Object.assign(l,r),new c({apiKey:n,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:l})}function E(e,t,n){let r=b(e),a=i(t,r.supportsToolSearch),o=m(e,t,h,{deferredTools:a.deferred}),s=y(n?.cacheRetention,n?.env),c={model:e.id,input:o,stream:!0,prompt_cache_key:s===`none`?void 0:d(n?.sessionId),prompt_cache_retention:x(r,s),store:!1};return n?.maxTokens&&(c.max_output_tokens=Math.max(n.maxTokens,16)),n?.temperature!==void 0&&(c.temperature=n?.temperature),n?.serviceTier!==void 0&&(c.service_tier=n.serviceTier),a.immediate.length>0&&(c.tools=f(a.immediate)),n?.toolChoice!==void 0&&(c.tool_choice=n.toolChoice),e.reasoning&&(n?.reasoningEffort||n?.reasoningSummary?(c.reasoning={effort:n?.reasoningEffort?e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort:`medium`,summary:n?.reasoningSummary||`auto`},c.include=[`reasoning.encrypted_content`]):e.provider!==`github-copilot`&&e.thinkingLevelMap?.off!==null&&(c.reasoning={effort:e.thinkingLevelMap?.off??`none`}),e.provider===`xai`&&(c.include=[`reasoning.encrypted_content`])),c}function D(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function O(e,t,n){let r=D(n,t);r!==1&&(e.cost.input*=r,e.cost.output*=r,e.cost.cacheRead*=r,e.cost.cacheWrite*=r,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite)}export{C as stream,w as streamSimple};
@@ -0,0 +1 @@
1
+ {"big-pickle":{"id":"big-pickle","name":"Big Pickle","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"claude-fable-5":{"id":"claude-fable-5","name":"Claude Fable 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-1":{"id":"claude-opus-4-1","name":"Claude Opus 4.1","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":15,"output":75,"cacheRead":1.5,"cacheWrite":18.75},"contextWindow":200000,"maxTokens":32000},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-opus-4-7":{"id":"claude-opus-4-7","name":"Claude Opus 4.7","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-opus-4-8":{"id":"claude-opus-4-8","name":"Claude Opus 4.8","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-sonnet-5":{"id":"claude-sonnet-5","name":"Claude Sonnet 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true}},"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.14,"output":0.28,"cacheRead":0.028,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"deepseek-v4-flash-free":{"id":"deepseek-v4-flash-free","name":"DeepSeek V4 Flash Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","requiresReasoningContentOnAssistantMessages":true},"contextWindow":200000,"maxTokens":128000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.74,"output":3.84,"cacheRead":0.145,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"glm-5":{"id":"glm-5","name":"GLM-5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1,"output":3.2,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":131072},"gpt-5":{"id":"gpt-5","name":"GPT-5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.05,"output":0.4,"cacheRead":0.005,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":2,"cacheRead":0.025,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0.075,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.25,"cacheRead":0.02,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.5-pro":{"id":"gpt-5.5-pro","name":"GPT-5.5 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","minimal":null,"low":null}},"gpt-5.6-luna":{"id":"gpt-5.6-luna","name":"GPT-5.6 Luna","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":6,"cacheRead":0.1,"cacheWrite":1.25},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":3.125},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"grok-4.5":{"id":"grok-4.5","name":"Grok 4.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000},"grok-build-0.1":{"id":"grok-build-0.1","name":"Grok Build 0.1","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":2,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens"},"contextWindow":256000,"maxTokens":256000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0.08,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"deepseek","supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":262144},"mimo-v2.5-free":{"id":"mimo-v2.5-free","name":"MiMo V2.5 Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax-M2.7","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":204800,"maxTokens":131072},"minimax-m3":{"id":"minimax-m3","name":"MiniMax-M3","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":512000,"maxTokens":128000},"nemotron-3-ultra-free":{"id":"nemotron-3-ultra-free","name":"Nemotron 3 Ultra Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":128000},"north-mini-code-free":{"id":"north-mini-code-free","name":"North Mini Code Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":256000,"maxTokens":64000},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"contextWindow":262144,"maxTokens":65536},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0.625},"contextWindow":262144,"maxTokens":65536}}
@@ -0,0 +1 @@
1
+ {"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":0.14,"output":0.28,"cacheRead":0.0028,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":0.435,"output":0.87,"cacheRead":0.003625,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":202752,"maxTokens":32768},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","max":"max"}},"grok-4.5":{"id":"grok-4.5","name":"Grok 4.5","api":"openai-responses","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"deepseek","supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536,"thinkingLevelMap":{"minimal":null,"low":null,"medium":null}},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":262144},"kimi-k3":{"id":"kimi-k3","name":"Kimi K3 (2x usage)","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1048576,"maxTokens":131072},"mimo-v2.5":{"id":"mimo-v2.5","name":"MiMo V2.5","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.14,"output":0.28,"cacheRead":0.0028,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":128000},"mimo-v2.5-pro":{"id":"mimo-v2.5-pro","name":"MiMo V2.5 Pro","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":0.435,"output":0.87,"cacheRead":0.003625,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1048576,"maxTokens":128000},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax-M2.7","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"minimax-m3":{"id":"minimax-m3","name":"MiniMax-M3","api":"anthropic-messages","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"openai-completions","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0.625},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"qwen","maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-max":{"id":"qwen3.7-max","name":"Qwen3.7 Max","api":"anthropic-messages","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go","reasoning":true,"input":["text"],"cost":{"input":2.5,"output":7.5,"cacheRead":0.5,"cacheWrite":3.125},"contextWindow":1000000,"maxTokens":65536},"qwen3.7-plus":{"id":"qwen3.7-plus","name":"Qwen3.7 Plus","api":"anthropic-messages","provider":"opencode-go","baseUrl":"https://opencode.ai/zen/go","reasoning":true,"input":["text","image"],"cost":{"input":0.4,"output":1.6,"cacheRead":0.04,"cacheWrite":0.5},"contextWindow":1000000,"maxTokens":65536}}