sliccy 5.73.2 → 5.73.4

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 (154) hide show
  1. package/dist/ui/assets/account-store-DwSzwLW8.js +43 -0
  2. package/dist/ui/assets/account-store-DzwZMcTg.js +101 -0
  3. package/dist/ui/assets/{adobe-DES2cp-y.js → adobe-ChyPg00A.js} +1 -1
  4. package/dist/ui/assets/{adobe-DHUcvdyP.js → adobe-h2gWq2z2.js} +1 -1
  5. package/dist/ui/assets/anthropic-messages-BFic5zKY.js +39 -0
  6. package/dist/ui/assets/anthropic-messages-C8dDJE2X.js +39 -0
  7. package/dist/ui/assets/{apps-DJx3akpR.js → apps-C86xnKLs.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-D7xJ5VET.js → azure-openai-CjkdyGG4.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-C3DSYzL8.js → azure-openai-DMNa-Eup.js} +1 -1
  10. package/dist/ui/assets/azure-openai-responses-B_twhN44.js +1 -0
  11. package/dist/ui/assets/azure-openai-responses-CzG7X9qb.js +1 -0
  12. package/dist/ui/assets/bedrock-camp-BO4bvAKs.js +1 -0
  13. package/dist/ui/assets/{bedrock-camp-PMQ4Iu6f.js → bedrock-camp-CVignIdH.js} +1 -1
  14. package/dist/ui/assets/{cerebras-CnOHiorM.js → cerebras-B0gvSD27.js} +1 -1
  15. package/dist/ui/assets/{cerebras-EsczMAGe.js → cerebras-CvSC_Q2O.js} +1 -1
  16. package/dist/ui/assets/compat-aVSWLlYQ.js +2 -0
  17. package/dist/ui/assets/{connect-surface-BTk8oHjU.js → connect-surface-3UvT0SF3.js} +1 -1
  18. package/dist/ui/assets/constrained-sampling-DafcjXU6.js +1 -0
  19. package/dist/ui/assets/{context-compaction-CW5AQ9bv.js → context-compaction-_UkD06XB.js} +1 -1
  20. package/dist/ui/assets/{fs-C_SqCSvP.js → fs-DC3MEAD4.js} +2 -2
  21. package/dist/ui/assets/{fs-PoNPHaXB.js → fs-DgMOH-Zj.js} +1 -1
  22. package/dist/ui/assets/{github-DF16zQXQ.js → github-HKW-k0Oh.js} +1 -1
  23. package/dist/ui/assets/{github-copilot-DiGxn4oA.js → github-copilot-C7lsRXxS.js} +1 -1
  24. package/dist/ui/assets/{github-copilot-DeMLYZUN.js → github-copilot-CBv0T4_S.js} +1 -1
  25. package/dist/ui/assets/{github-DjE0FC03.js → github-mH266f8L.js} +2 -2
  26. package/dist/ui/assets/google-generative-ai-4YtIu_sJ.js +1 -0
  27. package/dist/ui/assets/google-generative-ai-DzD1vsXe.js +1 -0
  28. package/dist/ui/assets/google-shared-BAKd3aSn.js +371 -0
  29. package/dist/ui/assets/google-shared-CCLlnqMF.js +11 -0
  30. package/dist/ui/assets/google-vertex-8lUayXF0.js +1 -0
  31. package/dist/ui/assets/google-vertex-oQOD3HKr.js +1 -0
  32. package/dist/ui/assets/js-realm-worker-BIrkB9d8.js +48 -0
  33. package/dist/ui/assets/{kernel-worker-C-tryBGn.js → kernel-worker-CHs5yDJo.js} +589 -591
  34. package/dist/ui/assets/{legacy-api-aliases-CRTuRAqQ.js → legacy-api-aliases-IllWZ-uu.js} +1 -1
  35. package/dist/ui/assets/{legacy-api-aliases-CdGTJw-r.js → legacy-api-aliases-sqlB2uHc.js} +1 -1
  36. package/dist/ui/assets/{lick-ws-bridge-C3foeWDS.js → lick-ws-bridge-DbbdXQSp.js} +1 -1
  37. package/dist/ui/assets/{local-llm-CWi0ZprP.js → local-llm-DcKgaorK.js} +2 -2
  38. package/dist/ui/assets/{local-llm-Dq9HBaqe.js → local-llm-DpBDM1Dm.js} +1 -1
  39. package/dist/ui/assets/{main-BMElPt_b.js → main-CBUfGcTh.js} +3 -3
  40. package/dist/ui/assets/mistral-conversations-C57IiFrP.js +8 -0
  41. package/dist/ui/assets/mistral-conversations-CzEm7KNl.js +7 -0
  42. package/dist/ui/assets/{mount-CAFjW1QS.js → mount-BHqxxbwU.js} +1 -1
  43. package/dist/ui/assets/{mount-C7OeghLh.js → mount-BRSg0FIY.js} +2 -2
  44. package/dist/ui/assets/{mount-recovery-B8VdqP8T.js → mount-recovery-Beig7gzz.js} +1 -1
  45. package/dist/ui/assets/{new-session-BwNVjrlp.js → new-session-UPnjrqyz.js} +2 -2
  46. package/dist/ui/assets/oauth-bootstrap-DUaR-il_.js +2 -0
  47. package/dist/ui/assets/{openai-codex-D9LHZUcr.js → openai-codex-CZit4W_R.js} +1 -1
  48. package/dist/ui/assets/openai-codex-D0W343kX.js +1 -0
  49. package/dist/ui/assets/openai-codex-responses-DRR6raXn.js +7 -0
  50. package/dist/ui/assets/openai-codex-responses-DU5CHdDQ.js +7 -0
  51. package/dist/ui/assets/openai-completions-B9S6450Q.js +5 -0
  52. package/dist/ui/assets/openai-completions-DhKgaAgM.js +5 -0
  53. package/dist/ui/assets/openai-responses-C4_jiYtu.js +1 -0
  54. package/dist/ui/assets/openai-responses-DmKhLxzV.js +1 -0
  55. package/dist/ui/assets/openai-responses-shared-CiIL52L-.js +10 -0
  56. package/dist/ui/assets/openai-responses-shared-IJFiSqdz.js +10 -0
  57. package/dist/ui/assets/{openrouter-BmRdV9UY.js → openrouter-D4iz9RSI.js} +1 -1
  58. package/dist/ui/assets/{openrouter-BIvugNQ1.js → openrouter-XorTuzAh.js} +1 -1
  59. package/dist/ui/assets/openrouter-images-6_MxZkJZ.js +1 -0
  60. package/dist/ui/assets/openrouter-images-BixC5B6a.js +1 -0
  61. package/dist/ui/assets/{openrouter-models-DM9v24kQ.js → openrouter-models-Bu1Cy5AD.js} +1 -1
  62. package/dist/ui/assets/{openrouter-models-B8MWxzTa.js → openrouter-models-CfnkMx5-.js} +1 -1
  63. package/dist/ui/assets/{openrouter-oauth-lGTI8QBz.js → openrouter-oauth-BGOdgzqm.js} +1 -1
  64. package/dist/ui/assets/{openrouter-oauth-QExY6Qo3.js → openrouter-oauth-BLGBWXoP.js} +1 -1
  65. package/dist/ui/assets/openrouter.models-DS1_VkCm.js +1 -0
  66. package/dist/ui/assets/openrouter.models-HnnH-abS.js +1 -0
  67. package/dist/ui/assets/{panel-rpc-handlers-SvYz4p6A.js → panel-rpc-handlers-BPMsj1iE.js} +2 -2
  68. package/dist/ui/assets/{provider-dLnW_Qmu.js → provider-DZ7x1aM4.js} +1 -1
  69. package/dist/ui/assets/{provider-CDDFVleF.js → provider-YxK-lzhm.js} +2 -2
  70. package/dist/ui/assets/provider-retry-C8PJzY_l.js +1 -0
  71. package/dist/ui/assets/{provider-settings-BonXlQHx.js → provider-settings-CmJnFmK2.js} +1 -1
  72. package/dist/ui/assets/provider-settings-D6FC6-Ws.js +2 -0
  73. package/dist/ui/assets/{provider-store-access-CDUXoK9n.js → provider-store-access-Bqa_EvEK.js} +2 -2
  74. package/dist/ui/assets/provider-store-access-Dw2dlNIf.js +1 -0
  75. package/dist/ui/assets/{providers-BE5wq_hp.js → providers-7r6dA4ra.js} +1 -1
  76. package/dist/ui/assets/{providers-B8AC4r1K.js → providers-Bklgdp4G.js} +2 -2
  77. package/dist/ui/assets/quick-llm-BHegEzYY.js +1 -0
  78. package/dist/ui/assets/{session-freezer-jCi1eAnA.js → session-freezer-oYKtZTY0.js} +3 -3
  79. package/dist/ui/assets/{setup-sudo-CglheNlM.js → setup-sudo-DGrMEyR3.js} +2 -2
  80. package/dist/ui/assets/{skills-B6K9VVT7.js → skills-DkHenAsV.js} +1 -1
  81. package/dist/ui/assets/{store-Dpqwm0j1.js → store-DICK08O4.js} +1 -1
  82. package/dist/ui/assets/{sudo-Bfbjy3cy.js → sudo-9mYhdwPD.js} +1 -1
  83. package/dist/ui/assets/{upgrade-detection-DdRKki36.js → upgrade-detection-B8LfSgMb.js} +1 -1
  84. package/dist/ui/assets/{wc-extension-K9Yoj8xX.js → wc-extension-grYSDyJN.js} +2 -2
  85. package/dist/ui/assets/{wc-follower-BmFSgVpW.js → wc-follower-B6JesvuH.js} +3 -3
  86. package/dist/ui/assets/{wc-live-FQiVeP5H.js → wc-live-OHBNpb_A.js} +3 -3
  87. package/dist/ui/assets/{wc-nav-CPTHD9Gm.js → wc-nav-DcxqwpAS.js} +2 -2
  88. package/dist/ui/assets/{wc-onboarding-Du7r32Nc.js → wc-onboarding-t5pRxVjL.js} +2 -2
  89. package/dist/ui/assets/{wc-placeholder-qw9xzwIX.js → wc-placeholder-XW-qi_GD.js} +2 -2
  90. package/dist/ui/assets/{wc-settings-Dsqf_wFN.js → wc-settings-7Jj2UM15.js} +2 -2
  91. package/dist/ui/assets/{wc-shell-LFcAIFJQ.js → wc-shell-CoYCAmK-.js} +2 -2
  92. package/dist/ui/assets/{wc-sprinkles-CYSiEKaU.js → wc-sprinkles-CFaUt2sb.js} +2 -2
  93. package/dist/ui/assets/{wc-tray-Dg2nqNkH.js → wc-tray-C_yJiqov.js} +2 -2
  94. package/dist/ui/assets/xai-grok-CrEqywR8.js +1 -0
  95. package/dist/ui/assets/{xai-grok-D-owzioC.js → xai-grok-QulUPZS-.js} +1 -1
  96. package/dist/ui/index.html +10 -10
  97. package/dist/ui/packages/webapp/index.html +10 -10
  98. package/package.json +1 -1
  99. package/dist/ui/assets/account-store-1sWsdBXV.js +0 -38
  100. package/dist/ui/assets/account-store-DWKDZbQl.js +0 -94
  101. package/dist/ui/assets/amazon-bedrock-Cg62P8pR.json +0 -1
  102. package/dist/ui/assets/anthropic-4_qTN2Mu.json +0 -1
  103. package/dist/ui/assets/anthropic-messages-6XWFkWWy.js +0 -39
  104. package/dist/ui/assets/anthropic-messages-D42B1WVl.js +0 -39
  105. package/dist/ui/assets/azure-openai-responses-BvEv9lZE.js +0 -1
  106. package/dist/ui/assets/azure-openai-responses-DE9sINqp.json +0 -1
  107. package/dist/ui/assets/azure-openai-responses-DRSA640t.js +0 -1
  108. package/dist/ui/assets/bedrock-camp-D_7EbOFH.js +0 -1
  109. package/dist/ui/assets/cloudflare-ai-gateway-DDb7hKDm.json +0 -1
  110. package/dist/ui/assets/cloudflare-workers-ai-hYVOS3es.json +0 -1
  111. package/dist/ui/assets/compat-Spvv5tCW.js +0 -2
  112. package/dist/ui/assets/fireworks-B7kEGNCU.json +0 -1
  113. package/dist/ui/assets/github-copilot-K9C_HNHm.json +0 -1
  114. package/dist/ui/assets/google-F4XgvJ1y.json +0 -1
  115. package/dist/ui/assets/google-generative-ai-BqEHWDKc.js +0 -1
  116. package/dist/ui/assets/google-generative-ai-DOAY2Bef.js +0 -1
  117. package/dist/ui/assets/google-shared-2WQG4pNx.js +0 -11
  118. package/dist/ui/assets/google-shared-CGD-JGZx.js +0 -371
  119. package/dist/ui/assets/google-vertex-C-dQj0iH.js +0 -1
  120. package/dist/ui/assets/google-vertex-CiTExP0E.js +0 -1
  121. package/dist/ui/assets/huggingface-BjNadu0v.json +0 -1
  122. package/dist/ui/assets/js-realm-worker-BCzouR_m.js +0 -48
  123. package/dist/ui/assets/mistral-CLEcIOtP.json +0 -1
  124. package/dist/ui/assets/mistral-conversations-BIHTMTfL.js +0 -7
  125. package/dist/ui/assets/mistral-conversations-CFKNSaPt.js +0 -8
  126. package/dist/ui/assets/moonshotai-8QShYhhE.json +0 -1
  127. package/dist/ui/assets/moonshotai-cn-7hHZff5z.json +0 -1
  128. package/dist/ui/assets/nvidia-dA6GzUPm.json +0 -1
  129. package/dist/ui/assets/oauth-bootstrap-Bf7Ewk3g.js +0 -2
  130. package/dist/ui/assets/openai-BehvdaXx.json +0 -1
  131. package/dist/ui/assets/openai-codex-je7irmYi.js +0 -1
  132. package/dist/ui/assets/openai-codex-responses-B7cFMjWk.js +0 -7
  133. package/dist/ui/assets/openai-codex-responses-DqxoDEwc.js +0 -7
  134. package/dist/ui/assets/openai-completions-Z1aRkqWe.js +0 -5
  135. package/dist/ui/assets/openai-completions-o78dOizF.js +0 -5
  136. package/dist/ui/assets/openai-responses-SPfzkTJm.js +0 -1
  137. package/dist/ui/assets/openai-responses-shared-BHsJFKuB.js +0 -10
  138. package/dist/ui/assets/openai-responses-shared-Dg5Ojqlw.js +0 -10
  139. package/dist/ui/assets/openai-responses-xSdsW9lw.js +0 -1
  140. package/dist/ui/assets/opencode-4chvZrBR.json +0 -1
  141. package/dist/ui/assets/opencode-go-Chp1OOUx.json +0 -1
  142. package/dist/ui/assets/openrouter-ZLTwKIjA.json +0 -1
  143. package/dist/ui/assets/openrouter-images-BrQDTa3_.js +0 -1
  144. package/dist/ui/assets/openrouter-images-DtvjLeGK.js +0 -1
  145. package/dist/ui/assets/openrouter.models-Bi9GV7Zn.js +0 -1
  146. package/dist/ui/assets/openrouter.models-D41M1z_D.js +0 -1
  147. package/dist/ui/assets/provider-settings-BQ_ViD6o.js +0 -2
  148. package/dist/ui/assets/provider-store-access-B_M384kS.js +0 -1
  149. package/dist/ui/assets/quick-llm-j8Lw8DXh.js +0 -1
  150. package/dist/ui/assets/qwen-token-plan-BpxmzamU.json +0 -1
  151. package/dist/ui/assets/qwen-token-plan-cn-CPhDR0u_.json +0 -1
  152. package/dist/ui/assets/together-CYZ-lBBF.json +0 -1
  153. package/dist/ui/assets/vercel-ai-gateway-ZtkcQH_C.json +0 -1
  154. package/dist/ui/assets/xai-grok-BvvyCW-L.js +0 -1
@@ -1 +0,0 @@
1
- {"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":false,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":131072,"maxTokens":16384,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":false,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text"],"cost":{"input":1.15,"output":8,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":false,"input":["text"],"cost":{"input":2.4,"output":10,"cacheRead":0.6,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0.1,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},"thinkingLevelMap":{"off":null}},"kimi-k2.7-code-highspeed":{"id":"kimi-k2.7-code-highspeed","name":"Kimi K2.7 Code HighSpeed","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.9,"output":8,"cacheRead":0.38,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},"thinkingLevelMap":{"off":null}},"kimi-k3":{"id":"kimi-k3","name":"Kimi K3","api":"openai-completions","provider":"moonshotai","baseUrl":"https://api.moonshot.ai/v1","reasoning":true,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"openai","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"}}}
@@ -1 +0,0 @@
1
- {"kimi-k2-0711-preview":{"id":"kimi-k2-0711-preview","name":"Kimi K2 0711","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":false,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":131072,"maxTokens":16384,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-0905-preview":{"id":"kimi-k2-0905-preview","name":"Kimi K2 0905","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":false,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-thinking":{"id":"kimi-k2-thinking","name":"Kimi K2 Thinking","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-thinking-turbo":{"id":"kimi-k2-thinking-turbo","name":"Kimi K2 Thinking Turbo","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text"],"cost":{"input":1.15,"output":8,"cacheRead":0.15,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2-turbo-preview":{"id":"kimi-k2-turbo-preview","name":"Kimi K2 Turbo","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":false,"input":["text"],"cost":{"input":2.4,"output":10,"cacheRead":0.6,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0.1,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"}},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},"thinkingLevelMap":{"off":null}},"kimi-k2.7-code-highspeed":{"id":"kimi-k2.7-code-highspeed","name":"Kimi K2.7 Code HighSpeed","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.9,"output":8,"cacheRead":0.38,"cacheWrite":0},"contextWindow":262144,"maxTokens":262144,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},"thinkingLevelMap":{"off":null}},"kimi-k3":{"id":"kimi-k3","name":"Kimi K3","api":"openai-completions","provider":"moonshotai-cn","baseUrl":"https://api.moonshot.cn/v1","reasoning":true,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"},"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"contextWindow":1048576,"maxTokens":131072,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":true,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"openai","requiresReasoningContentOnAssistantMessages":true,"deferredToolsMode":"kimi"}}}
@@ -1 +0,0 @@
1
- {"meta/llama-3.1-70b-instruct":{"id":"meta/llama-3.1-70b-instruct","name":"Llama 3.1 70b Instruct","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":4096},"meta/llama-3.1-8b-instruct":{"id":"meta/llama-3.1-8b-instruct","name":"Llama 3.1 8B Instruct","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":16000,"maxTokens":4096},"meta/llama-3.2-11b-vision-instruct":{"id":"meta/llama-3.2-11b-vision-instruct","name":"Llama 3.2 11b Vision Instruct","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":4096},"meta/llama-3.2-90b-vision-instruct":{"id":"meta/llama-3.2-90b-vision-instruct","name":"Llama-3.2-90B-Vision-Instruct","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":8192},"meta/llama-3.3-70b-instruct":{"id":"meta/llama-3.3-70b-instruct","name":"Llama 3.3 70b Instruct","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":4096},"minimaxai/minimax-m3":{"id":"minimaxai/minimax-m3","name":"MiniMax-M3","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":1000000,"maxTokens":16384},"mistralai/mistral-large-3-675b-instruct-2512":{"id":"mistralai/mistral-large-3-675b-instruct-2512","name":"Mistral Large 3 675B Instruct 2512","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":false,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":262144},"mistralai/mistral-small-4-119b-2603":{"id":"mistralai/mistral-small-4-119b-2603","name":"mistral-small-4-119b-2603","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":8192},"moonshotai/kimi-k2.6":{"id":"moonshotai/kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":262144},"nvidia/nemotron-3-nano-30b-a3b":{"id":"nvidia/nemotron-3-nano-30b-a3b","name":"nemotron-3-nano-30b-a3b","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":131072},"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning":{"id":"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning","name":"Nemotron 3 Nano Omni","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":256000,"maxTokens":65536},"nvidia/nemotron-3-super-120b-a12b":{"id":"nvidia/nemotron-3-super-120b-a12b","name":"Nemotron 3 Super","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0.2,"output":0.8,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":262144},"nvidia/nemotron-3-ultra-550b-a55b":{"id":"nvidia/nemotron-3-ultra-550b-a55b","name":"Nemotron 3 Ultra 550B A55B","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0.5,"output":2.5,"cacheRead":0.15,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":1000000,"maxTokens":65536},"nvidia/nvidia-nemotron-nano-9b-v2":{"id":"nvidia/nvidia-nemotron-nano-9b-v2","name":"nvidia-nemotron-nano-9b-v2","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":131072},"openai/gpt-oss-120b":{"id":"openai/gpt-oss-120b","name":"GPT-OSS-120B","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":128000,"maxTokens":8192},"openai/gpt-oss-20b":{"id":"openai/gpt-oss-20b","name":"GPT OSS 20B","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":131072,"maxTokens":32768},"stepfun-ai/step-3.5-flash":{"id":"stepfun-ai/step-3.5-flash","name":"Step 3.5 Flash","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":256000,"maxTokens":16384},"stepfun-ai/step-3.7-flash":{"id":"stepfun-ai/step-3.7-flash","name":"Step 3.7 Flash","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":256000,"maxTokens":16384},"z-ai/glm-5.2":{"id":"z-ai/glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"nvidia","baseUrl":"https://integrate.api.nvidia.com/v1","headers":{"NVCF-POLL-SECONDS":"3600"},"reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false},"contextWindow":1000000,"maxTokens":131072}}
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/provider-CDDFVleF.js","assets/preload-helper-Czpn1I53.js","assets/account-store-1sWsdBXV.js","assets/rolldown-runtime-aKtaBQYM.js","assets/compat-Spvv5tCW.js","assets/models-Bnh9VDA1.js","assets/event-stream-qbAZIAKV.js","assets/provider-env-D37PhSJu.js","assets/__vite-browser-external-SwrSgYTf.js","assets/openrouter.models-D41M1z_D.js","assets/context-compaction-CW5AQ9bv.js","assets/logger-DDBAeTLF.js","assets/src-CS5gSDhT.js","assets/proxied-fetch-D5h5REZy.js","assets/base64-DpPqYZJF.js","assets/runtime-env-DH4NDw4t.js","assets/fetch-body-D2PwksUW.js","assets/secret-topology-CptRwAX3.js","assets/secrets-bridge-client-D6nwnBvr.js","assets/port-bridge-client-CoFZLSYm.js","assets/tool-ui-DfXu6quJ.js","assets/providers-B8AC4r1K.js","assets/panel-rpc-DmJSNs0I.js","assets/bedrock-camp-PMQ4Iu6f.js","assets/transform-messages-wECJwtH0.js","assets/provider-store-access-CDUXoK9n.js","assets/global-db-CbuLl-zx.js","assets/types-idfTVsM8.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";import{R as t,d as n}from"./account-store-1sWsdBXV.js";import{t as r}from"./logger-DDBAeTLF.js";import{t as i}from"./providers-B8AC4r1K.js";import"./provider-settings-BQ_ViD6o.js";var a=r(`oauth-bootstrap`),o=6e4;async function s(){try{let{ensureAllMcpProvidersRegistered:t}=await e(async()=>{let{ensureAllMcpProvidersRegistered:e}=await import(`./provider-CDDFVleF.js`);return{ensureAllMcpProvidersRegistered:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])),n=await t();n.length>0&&a.debug(`Pre-registered MCP providers for OAuth bootstrap`,{count:n.length})}catch(e){a.warn(`Failed to pre-register MCP providers for OAuth bootstrap`,{error:e instanceof Error?e.message:String(e)})}let r=n();a.info(`Bootstrap OAuth replicas`,{count:r.length});for(let e of r){if(!e.accessToken){a.debug(`Skipping account without token`,{providerId:e.providerId});continue}if((e.tokenExpiresAt??1/0)-Date.now()<=o){let t=i(e.providerId);if(t?.onSilentRenew)try{if(await t.onSilentRenew()){a.info(`Silently renewed OAuth token`,{providerId:e.providerId});continue}a.warn(`Silent renewal yielded no token; user must re-authenticate`,{providerId:e.providerId});continue}catch(t){a.warn(`Silent renewal failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)});continue}a.debug(`Skipping expired account (no silent-renew hook)`,{providerId:e.providerId});continue}try{await t({providerId:e.providerId,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar}),a.debug(`Bootstrapped OAuth replica`,{providerId:e.providerId})}catch(t){a.error(`OAuth bootstrap failed`,{providerId:e.providerId,error:t instanceof Error?t.message:String(t)})}}}export{s as bootstrapOAuthReplicas};
@@ -1 +0,0 @@
1
- {"gpt-4":{"id":"gpt-4","name":"GPT-4","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text"],"cost":{"input":30,"output":60,"cacheRead":0,"cacheWrite":0},"contextWindow":8192,"maxTokens":8192},"gpt-4-turbo":{"id":"gpt-4-turbo","name":"GPT-4 Turbo","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":10,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"gpt-4.1":{"id":"gpt-4.1","name":"GPT-4.1","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":2,"output":8,"cacheRead":0.5,"cacheWrite":0},"contextWindow":1047576,"maxTokens":32768},"gpt-4.1-mini":{"id":"gpt-4.1-mini","name":"GPT-4.1 mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":0.4,"output":1.6,"cacheRead":0.1,"cacheWrite":0},"contextWindow":1047576,"maxTokens":32768},"gpt-4.1-nano":{"id":"gpt-4.1-nano","name":"GPT-4.1 nano","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1047576,"maxTokens":32768},"gpt-4o":{"id":"gpt-4o","name":"GPT-4o","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":2.5,"output":10,"cacheRead":1.25,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384},"gpt-4o-2024-05-13":{"id":"gpt-4o-2024-05-13","name":"GPT-4o (2024-05-13)","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":5,"output":15,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"gpt-4o-2024-08-06":{"id":"gpt-4o-2024-08-06","name":"GPT-4o (2024-08-06)","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":2.5,"output":10,"cacheRead":1.25,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384},"gpt-4o-2024-11-20":{"id":"gpt-4o-2024-11-20","name":"GPT-4o (2024-11-20)","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":2.5,"output":10,"cacheRead":1.25,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384},"gpt-4o-mini":{"id":"gpt-4o-mini","name":"GPT-4o mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":0.15,"output":0.6,"cacheRead":0.075,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384},"gpt-5":{"id":"gpt-5","name":"GPT-5","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-chat-latest":{"id":"gpt-5-chat-latest","name":"GPT-5 Chat Latest","api":"openai-responses","baseUrl":"https://api.openai.com/v1","provider":"openai","reasoning":false,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"thinkingLevelMap":{"off":null}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5-Codex","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-mini":{"id":"gpt-5-mini","name":"GPT-5 Mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":2,"cacheRead":0.025,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.05,"output":0.4,"cacheRead":0.005,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5-pro":{"id":"gpt-5-pro","name":"GPT-5 Pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":15,"output":120,"cacheRead":0,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":"none"}},"gpt-5.1-chat-latest":{"id":"gpt-5.1-chat-latest","name":"GPT-5.1 Chat","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"thinkingLevelMap":{"off":null}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"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":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"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":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":2,"cacheRead":0.025,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh"}},"gpt-5.2-chat-latest":{"id":"gpt-5.2-chat-latest","name":"GPT-5.2 Chat","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.2-pro":{"id":"gpt-5.2-pro","name":"GPT-5.2 Pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":21,"output":168,"cacheRead":0,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.3-chat-latest":{"id":"gpt-5.3-chat-latest","name":"GPT-5.3 Chat (latest)","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":false,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh"}},"gpt-5.3-codex-spark":{"id":"gpt-5.3-codex-spark","name":"GPT-5.3 Codex Spark","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"contextWindow":128000,"maxTokens":32000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":5,"output":22.5,"cacheRead":0.5,"cacheWrite":0}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh"},"compat":{"supportsToolSearch":true}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0.075,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh"},"compat":{"supportsToolSearch":true}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 nano","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.25,"cacheRead":0.02,"cacheWrite":0},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh"}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":0,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":60,"output":270,"cacheRead":0,"cacheWrite":0}]},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh"},"compat":{"supportsToolSearch":true}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":0}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh","minimal":null},"compat":{"supportsToolSearch":true}},"gpt-5.5-pro":{"id":"gpt-5.5-pro","name":"GPT-5.5 Pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":0,"cacheWrite":0,"tiers":[{"inputTokensAbove":272000,"input":60,"output":270,"cacheRead":0,"cacheWrite":0}]},"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":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":6,"cacheRead":0.1,"cacheWrite":1.25,"tiers":[{"inputTokensAbove":272000,"input":2,"output":9,"cacheRead":0.2,"cacheWrite":2.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh","max":"max"},"compat":{"supportsToolSearch":true}},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":6.25,"tiers":[{"inputTokensAbove":272000,"input":10,"output":45,"cacheRead":1,"cacheWrite":12.5}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh","max":"max"},"compat":{"supportsToolSearch":true}},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":3.125,"tiers":[{"inputTokensAbove":272000,"input":5,"output":22.5,"cacheRead":0.5,"cacheWrite":6.25}]},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":"none","xhigh":"xhigh","max":"max"},"compat":{"supportsToolSearch":true}},"gpt-realtime-2.1":{"id":"gpt-realtime-2.1","name":"GPT-Realtime-2.1","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":4,"output":24,"cacheRead":0.4,"cacheWrite":0},"contextWindow":128000,"maxTokens":32000},"o1":{"id":"o1","name":"o1","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":15,"output":60,"cacheRead":7.5,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o1-pro":{"id":"o1-pro","name":"o1-pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":150,"output":600,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o3":{"id":"o3","name":"o3","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":8,"cacheRead":0.5,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o3-deep-research":{"id":"o3-deep-research","name":"o3-deep-research","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":40,"cacheRead":2.5,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o3-mini":{"id":"o3-mini","name":"o3-mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text"],"cost":{"input":1.1,"output":4.4,"cacheRead":0.55,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o3-pro":{"id":"o3-pro","name":"o3-pro","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":20,"output":80,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o4-mini":{"id":"o4-mini","name":"o4-mini","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.1,"output":4.4,"cacheRead":0.275,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000},"o4-mini-deep-research":{"id":"o4-mini-deep-research","name":"o4-mini-deep-research","api":"openai-responses","provider":"openai","baseUrl":"https://api.openai.com/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":8,"cacheRead":0.5,"cacheWrite":0},"contextWindow":200000,"maxTokens":100000}}
@@ -1 +0,0 @@
1
- import{n as e}from"./event-stream-qbAZIAKV.js";import{a as t}from"./compat-Spvv5tCW.js";import{R as n,d as r}from"./account-store-1sWsdBXV.js";import{n as i,o as a}from"./legacy-api-aliases-CRTuRAqQ.js";import"./provider-settings-BQ_ViD6o.js";var o=`openai-codex`,s=`app_EMoamEEZ73f0CkXaXp7hrann`,c=`https://auth.openai.com/oauth/authorize`,l=`https://auth.openai.com/oauth/token`,u=`openid profile email offline_access`,d=`http://localhost:1455/auth/callback`,f=`http://localhost:1455/auth/callback*`,p=`https://chatgpt.com/backend-api`,m=`openai-codex-responses`,h=`${o}-openai`,g={xhigh:`xhigh`,minimal:`low`},_=[{id:`gpt-5.5`,name:`GPT-5.5`,input:[`text`,`image`]},{id:`gpt-5.4`,name:`GPT-5.4`,input:[`text`,`image`]},{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,input:[`text`,`image`]},{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,input:[`text`,`image`]},{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,input:[`text`]},{id:`gpt-5.2`,name:`GPT-5.2`,input:[`text`,`image`]}].map(e=>({...e,api:`openai`,reasoning:!0,context_window:272e3,max_tokens:128e3,thinkingLevelMap:g}));function v(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function y(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),t}function b(){return v(y(32))}async function x(e){let t=new TextEncoder().encode(e);return v(new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)))}function S(){return v(y(16))}async function C(e,t){let n=new URLSearchParams({grant_type:`authorization_code`,client_id:s,code:e,code_verifier:t,redirect_uri:d}),r=await fetch(l,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:n});if(!r.ok)throw Error(`OpenAI Codex token exchange failed: ${r.status} ${await r.text()}`);let i=await r.json();if(!i.access_token)throw Error(`OpenAI Codex token exchange did not return access_token.`);return i}async function w(e){try{let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e,client_id:s}),n=await fetch(l,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});return n.ok?await n.json():(console.error(`[openai-codex] refresh failed:`,n.status,await n.text()),null)}catch(e){return console.error(`[openai-codex] refresh error:`,e instanceof Error?e.message:String(e)),null}}function T(e){try{let t=e.split(`.`);if(t.length!==3)return;let n=t[1].replace(/-/g,`+`).replace(/_/g,`/`);return n.length%4&&(n+=`=`.repeat(4-n.length%4)),JSON.parse(atob(n))}catch{return}}function E(e){let t=T(e)?.[`https://api.openai.com/profile`];return typeof t?.email==`string`?t.email:void 0}function D(e){let t=T(e)?.[`https://api.openai.com/auth`],n=E(e),r=typeof t?.chatgpt_plan_type==`string`?t.chatgpt_plan_type:void 0,i=r?r.charAt(0).toUpperCase()+r.slice(1):void 0;if(n&&i)return`${n} (${i})`;if(n)return n;if(i)return`ChatGPT ${i}`}async function O(e){let t=E(e);if(t)try{let e=t.trim().toLowerCase(),n=new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)));return`https://www.gravatar.com/avatar/${Array.from(n).map(e=>e.toString(16).padStart(2,`0`)).join(``)}?s=128&d=404`}catch{return}}function k(){return r().find(e=>e.providerId===o)}async function A(){let e=k();if(!e?.accessToken)throw Error("Not signed in to OpenAI Codex — run `oauth-token openai-codex` or /login");let t=e.tokenExpiresAt??0;if(t&&Date.now()+6e4<t)return e.accessToken;if(e.refreshToken){let t=await w(e.refreshToken);if(t?.access_token)return await n({providerId:o,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:p,userName:D(t.access_token),userAvatar:await O(t.access_token)}),t.access_token}return e.accessToken}function j(e,t){return{type:`error`,reason:`error`,error:{role:`assistant`,content:[],api:h,provider:o,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}}var M=(t,n,r={})=>{let a=e();return(async()=>{try{let e=await A(),o=i({...t,baseUrl:p,api:m},n,{...r,apiKey:e,transport:`sse`});for await(let e of o)a.push(e);a.end()}catch(e){console.error(`[openai-codex] Stream error:`,e instanceof Error?e.message:String(e)),a.push(j(t,e)),a.end()}})(),a},N=(t,n,r)=>{let i=e();return(async()=>{try{let e=await A(),o=a({...t,baseUrl:p,api:m},n,{...r,apiKey:e,transport:`sse`});for await(let e of o)i.push(e);i.end()}catch(e){console.error(`[openai-codex] Stream error:`,e instanceof Error?e.message:String(e)),i.push(j(t,e)),i.end()}})(),i},P={id:o,name:`OpenAI Codex (ChatGPT Subscription)`,description:`GPT-5 Codex via your ChatGPT Plus/Pro/Business subscription — OAuth login, no API key needed. Default model is GPT-5.5.`,requiresApiKey:!1,requiresBaseUrl:!1,isOAuth:!0,defaultModelId:`gpt-5.5`,oauthTokenDomains:[`chatgpt.com`,`*.chatgpt.com`,`auth.openai.com`,`api.openai.com`],getModelIds:()=>_,onOAuthLoginIntercepted:async(e,t,r)=>{let i=b(),a=await x(i),l=S(),m=new URL(c);m.searchParams.set(`response_type`,`code`),m.searchParams.set(`client_id`,s),m.searchParams.set(`redirect_uri`,d),m.searchParams.set(`scope`,r?.scopes??u),m.searchParams.set(`code_challenge`,a),m.searchParams.set(`code_challenge_method`,`S256`),m.searchParams.set(`state`,l),m.searchParams.set(`id_token_add_organizations`,`true`),m.searchParams.set(`codex_cli_simplified_flow`,`true`),m.searchParams.set(`originator`,`pi`);let h=await e({authorizeUrl:m.toString(),redirectUriPattern:f,onCapture:`close`});if(!h)throw Error(`OpenAI Codex OAuth login was cancelled or timed out`);let g=new URL(h),_=g.searchParams.get(`code`),v=g.searchParams.get(`state`);if(!_)throw Error(`OpenAI Codex OAuth redirect did not include a code`);if(v!==l)throw Error(`OpenAI Codex OAuth state mismatch — possible CSRF, aborting`);let y=await C(_,i);await n({providerId:o,accessToken:y.access_token,refreshToken:y.refresh_token,tokenExpiresAt:Date.now()+(y.expires_in??3600)*1e3,baseUrl:p,userName:D(y.access_token),userAvatar:await O(y.access_token)}),t()},onOAuthLogout:async()=>{await n({providerId:o,accessToken:``})},onSilentRenew:async()=>{let e=k();if(!e?.refreshToken)return null;let t=await w(e.refreshToken);return t?.access_token?(await n({providerId:o,accessToken:t.access_token,refreshToken:t.refresh_token??e.refreshToken,tokenExpiresAt:Date.now()+(t.expires_in??3600)*1e3,baseUrl:p,userName:D(t.access_token),userAvatar:await O(t.access_token)}),t.access_token):null}};function F(){t({api:h,stream:M,streamSimple:N})}export{P as config,F as register};
@@ -1,7 +0,0 @@
1
- import{t as e}from"./event-stream-qbAZIAKV.js";import{r as t,s as n}from"./transform-messages-Bp94o3FD.js";import{n as r,r as i,t as a}from"./diagnostics-BsVbaNHR.js";import{t as o}from"./provider-env-DwY8YuMk.js";import{t as s}from"./deferred-tools-DNuoafg8.js";import{t as c}from"./headers-CbDaTl3c.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;function g(e){return h.add(e),()=>{h.delete(e)}}let _=-1/0,v=0;function y(e){if(globalThis.crypto?.getRandomValues){globalThis.crypto.getRandomValues(e);return}for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256)}function b(){let e=new Uint8Array(16);y(e);let t=Date.now();t>_?(v=e[6]*16777216+e[7]*65536+e[8]*256+e[9],_=t):(v=v+1>>>0,v===0&&_++);let n=new Uint8Array(16);n[0]=_/1099511627776&255,n[1]=_/4294967296&255,n[2]=_/16777216&255,n[3]=_/65536&255,n[4]=_/256&255,n[5]=_&255,n[6]=112|v>>>28&15,n[7]=v>>>20&255,n[8]=128|v>>>14&63,n[9]=v>>>6&255,n[10]=(v&63)<<2|e[10]&3,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15];let r=Array.from(n,e=>e.toString(16).padStart(2,`0`));return`${r.slice(0,4).join(``)}-${r.slice(4,6).join(``)}-${r.slice(6,8).join(``)}-${r.slice(8,10).join(``)}-${r.slice(10,16).join(``)}`}function ee(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}const x={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function S(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||o(n)||o(r)||``}function C(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function w(e,t,n){let r=S(`no_proxy`,n).toLowerCase();return!r||r!==`*`&&r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i})}function T(e,t){let n=C(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!w(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||x[r]||0,t))return``;let i=S(`${r}_proxy`,t)||S(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}function E(e,t){let n=T(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL. Got ${r.protocol}`);return r}function D(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:os`)??null}const O=D(),k=1e3,A=new Set([`openai`,`openai-codex`,`opencode`]),te=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function ne(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function re(e,t){return e===429&&ne(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function ie(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function ae(e,t){let n=t?.maxRetryDelayMs??6e4;return n>0?Math.min(e,n):e}function j(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function M(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function oe(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function se(e){let t=oe();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:3}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}const N=(t,n,i)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,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 s=i?.apiKey;if(!s)throw Error(`No API key for provider: ${t.provider}`);let l=Ie(s),u=le(t,n,i),f=await i?.onPayload?.(u,t);f!==void 0&&(u=f);let p=d(i?.sessionId),m=p||b(),h=Re(t.headers,i?.headers,l,s,p),g=ze(t.headers,i?.headers,l,s,m),_=JSON.stringify(u),v=M(i?.timeoutMs),y=M(i?.websocketConnectTimeoutMs),x=i?.transport||`auto`,S=x!==`sse`&&G(i?.sessionId);if(S&&K(i?.sessionId),x!==`sse`&&!S){let n=!1,s=!1;for(;;){n=!1;try{if(await Pe(de(t.baseUrl),u,g,e,o,t,()=>{n=!0},v,y,i),i?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end();return}catch(t){let o=i?.signal?.aborted,c=!n&&me(t);if(!o&&c&&!s){s=!0;continue}if(o||pe(t)&&!c||(a(e,r(`provider_transport_failure`,t,{configuredTransport:x,fallbackTransport:n?void 0:`sse`,eventsEmitted:n,phase:n?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(_).byteLength})),be(i?.sessionId,t),n))throw t;K(i?.sessionId);break}}}let C=se(_);C&&h.set(`content-encoding`,`zstd`);let w=C??_,T,E,D=i?.maxRetries??0;for(let e=0;e<=D;e++){if(i?.signal?.aborted)throw Error(`Request was aborted`);try{let n=v!==void 0&&v>0?AbortSignal.timeout(v):void 0,r=ee([i?.signal,n]);try{T=await fetch(I(t.baseUrl),{method:`POST`,headers:h,body:w,signal:r.signal})}catch(e){throw n?.aborted&&!i?.signal?.aborted?Error(`Codex SSE response headers timed out after ${v}ms`):e}finally{r.cleanup()}if(await i?.onResponse?.({status:T.status,headers:c(T.headers)},t),T.ok)break;let a=await T.text();if(e<D&&re(T.status,a)){let t=ie(T.headers);await j(t===void 0?k*2**e:T.status===429?ae(t,i):t,i?.signal);continue}let o=await Fe(new Response(a,{status:T.status,statusText:T.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(E=t instanceof Error?t:Error(String(t)),e<D&&!E.message.includes(`usage limit`)){await j(k*2**e,i?.signal);continue}throw E}}if(!T?.ok)throw E??Error(`Failed after retries`);if(!T.body)throw Error(`No response body`);if(o.push({type:`start`,partial:e}),await fe(T,e,o,t,i),i?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)delete t.partialJson;e.stopReason=i?.signal?.aborted?`aborted`:`error`,e.errorMessage=u(l(t)),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},ce=(e,r,i)=>{let a=i?.apiKey;if(!a)throw Error(`No API key for provider: ${e.provider}`);let o=t(e,r,i,a),s=i?.reasoning?n(e,i.reasoning):void 0,c=s===`off`?void 0:s;return N(e,r,{...o,reasoningEffort:c})};function le(e,t,n){let r=s(t,e.compat?.supportsToolSearch??!1),i=m(e,t,A,{includeSystemPrompt:!1,deferredTools:r.deferred}),a={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:i,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:d(n?.sessionId),tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(a.temperature=n.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),r.immediate.length>0&&(a.tools=f(r.immediate,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(a.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return a}function ue(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function P(e,t,n){let r=ue(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)}function F(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function I(e){let t=(e&&e.trim().length>0?e:`https://chatgpt.com/backend-api`).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function de(e){let t=new URL(I(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function fe(e,t,n,r,i){await p(z(_e(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:F,applyServiceTierPricing:(e,t)=>P(e,t,r)})}var L=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},R=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function pe(e){return e instanceof L||e instanceof R}function me(e){return e instanceof L&&e.code===`websocket_connection_limit_reached`}function he(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*z(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let{code:e,message:n}=he(t);throw new L(`Codex error: ${n||e||JSON.stringify(t)}`,{code:e,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new L(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:ge(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function ge(e){if(typeof e==`string`)return te.has(e)?e:void 0}async function*_e(e,t){if(!e.body)return;let n=e.body.getReader(),r=new TextDecoder,a=``,o=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);if(e)break;a+=r.decode(o,{stream:!0});let s=a.indexOf(`
2
-
3
- `);for(;s!==-1;){let e=a.slice(0,s);a=a.slice(s+2);let t=e.split(`
4
- `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
- `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new R(`Invalid Codex SSE JSON: ${i(t)}`,{cause:t,payload:e})}}s=a.indexOf(`
6
-
7
- `)}}}finally{t?.removeEventListener(`abort`,o);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}const B=new Map,V=new Map,H=new Set;function U(e){let t=V.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},V.set(e,t)),t}function ve(e){let t=V.get(e);return t?{...t}:void 0}function ye(e){if(e){V.delete(e),H.delete(e);return}V.clear(),H.clear()}function W(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),Y(e.socket,1e3,`debug_close`)};if(e){let n=B.get(e);n&&t(n),B.delete(e);return}for(let e of B.values())t(e);B.clear()}g(W);function G(e){return e?H.has(e):!1}function K(e){if(!e)return;let t=U(e);t.sseFallbacks++,t.websocketFallbackActive=G(e)}function be(e,t){if(!e)return;H.add(e);let n=U(e);n.websocketFailures++,n.lastWebSocketError=i(t),n.websocketFallbackActive=!0}let q=null;async function xe(e){if(!e&&q)return q;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=E(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(q=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var Se=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function Ce(e){let t=e.readyState;return typeof t==`number`?t:void 0}function J(e){let t=Ce(e);return t===void 0||t===1}function we(e){return Date.now()-e.createdAt>=33e5}function Y(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function X(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(Y(t.socket,1e3,`idle_timeout`),B.delete(e))},3e5)}async function Z(e,t,n,r=15e3,i){let a=await xe(i);if(!a)throw Error(`WebSocket transport is not available in this runtime`);let o=c(t);return delete o[`OpenAI-Beta`],new Promise((t,i)=>{let s=!1,c,l;try{l=new a(e,{headers:o})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{s||(s=!0,u(),t&&Y(l,1e3,t),i(e))},f=()=>{s||(s=!0,u(),t(l))},p=e=>{d(Q(e))},m=e=>{d($(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Te(e,t,n,r,i,a){if(!n){let n=await Z(e,t,r,i,a);return{socket:n,reused:!1,release:()=>Y(n)}}let o=B.get(n);if(o){if(o.idleTimer&&=(clearTimeout(o.idleTimer),void 0),!o.busy&&we(o))Y(o.socket,1e3,`connection_age_limit`),B.delete(n);else if(!o.busy&&J(o.socket))return o.busy=!0,{socket:o.socket,entry:o,reused:!0,release:({keep:e}={})=>{if(!e||!J(o.socket)){Y(o.socket),B.delete(n);return}o.busy=!1,X(n,o)}};if(o.busy){let n=await Z(e,t,r,i,a);return{socket:n,reused:!1,release:()=>{Y(n)}}}J(o.socket)||(Y(o.socket),B.delete(n))}let s=await Z(e,t,r,i,a),c={socket:s,busy:!0,createdAt:Date.now()};return B.set(n,c),{socket:s,entry:c,reused:!1,release:({keep:e}={})=>{if(!e||!J(c.socket)){Y(c.socket),c.idleTimer&&clearTimeout(c.idleTimer),B.get(n)===c&&B.delete(n);return}c.busy=!1,X(n,c)}}}function Q(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function $(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===1009&&(a=` message too big`),new Se(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function Ee(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*De(e,t,n){let r=[],a=null,o=!1,s=null,c=!1,l=()=>{if(!a)return;let e=a;a=null,e()},u=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await Ee(e.data),!t))return;let n=JSON.parse(t),i=typeof n.type==`string`?n.type:``;(i===`response.completed`||i===`response.done`||i===`response.incomplete`)&&(c=!0,o=!0),r.push(n),l()}catch(e){s=new R(`Invalid Codex WebSocket JSON: ${i(e)}`,{cause:e,payload:t}),o=!0,l()}})()},d=e=>{s=Q(e),o=!0,l()},f=e=>{if(c){o=!0,l();return}s||=$(e),o=!0,l()},p=()=>{s=Error(`Request was aborted`),o=!0,l()};e.addEventListener(`message`,u),e.addEventListener(`error`,d),e.addEventListener(`close`,f),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(r.length>0){yield r.shift();continue}if(o)break;let i;await new Promise((t,r)=>{a=t,n!==void 0&&n>0&&(i=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${n}ms`);s=t,o=!0,a=null,Y(e,1e3,`idle_timeout`),r(t)},n))}).finally(()=>{i&&clearTimeout(i)})}if(s)throw s;if(!c)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,u),e.removeEventListener(`error`,d),e.removeEventListener(`close`,f),t?.removeEventListener(`abort`,p)}}function Oe(e){let{input:t,previous_response_id:n,...r}=e;return r}function ke(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function Ae(e,t){return JSON.stringify(Oe(e))===JSON.stringify(Oe(t))}function je(e,t){if(!Ae(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&ke(n.slice(0,r.length),r))return n.slice(r.length)}function Me(e,t){let n=e.continuation;if(!n)return t;let r=je(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Ne(e,t,n,r){let i=!1;for await(let a of e)i||(i=!0,r(),n.push({type:`start`,partial:t})),yield a}async function Pe(e,t,n,r,i,a,o,s,c,l){let{socket:u,entry:d,reused:f,release:h}=await Te(e,n,l?.sessionId,l?.signal,c,l?.env),g=!0,_=l?.transport===`websocket-cached`||l?.transport===`auto`,v=t,y=_&&d?Me(d,v):v,b=l?.sessionId?U(l.sessionId):void 0;b&&(b.requests++,f?b.connectionsReused++:b.connectionsCreated++,_&&b.cachedContextRequests++,y.store===!0&&b.storeTrueRequests++,b.lastInputItems=y.input?.length??0,y.previous_response_id?(b.deltaRequests++,b.lastDeltaInputItems=y.input?.length??0,b.lastPreviousResponseId=y.previous_response_id):(b.fullContextRequests++,b.lastDeltaInputItems=void 0,b.lastPreviousResponseId=void 0));try{if(u.send(JSON.stringify({type:`response.create`,...y})),await p(Ne(z(De(u,l?.signal,s)),r,i,o),r,i,a,{serviceTier:l?.serviceTier,resolveServiceTier:F,applyServiceTierPricing:(e,t)=>P(e,t,a)}),l?.signal?.aborted)g=!1;else if(_&&d&&r.responseId){let e=m(a,{messages:[r]},A,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);d.continuation={lastRequestBody:v,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw d&&(d.continuation=void 0),g=!1,e}finally{h({keep:g})}}async function Fe(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function Ie(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[`https://api.openai.com/auth`]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function Le(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))n===null?i.delete(e):i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=O?`pi (${O.platform()} ${O.release()}; ${O.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function Re(e,t,n,r,i){let a=Le(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session-id`,i),a.set(`x-client-request-id`,i)),a}function ze(e,t,n,r,i){let a=Le(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,`responses_websockets=2026-02-06`),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{W as closeOpenAICodexWebSocketSessions,ve as getOpenAICodexWebSocketDebugStats,ye as resetOpenAICodexWebSocketDebugStats,N as stream,ce as streamSimple};
@@ -1,7 +0,0 @@
1
- import{t as e}from"./event-stream-qbAZIAKV.js";import{n as t}from"./models-Bnh9VDA1.js";import{n,r,t as i}from"./diagnostics-BsVbaNHR.js";import{t as a}from"./provider-env-D37PhSJu.js";import{r as o}from"./transform-messages-wECJwtH0.js";import{t as s}from"./deferred-tools-C1IEsG5C.js";import{t as c}from"./headers-CbDaTl3c.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;function g(e){return h.add(e),()=>{h.delete(e)}}var _=-1/0,v=0;function y(e){if(globalThis.crypto?.getRandomValues){globalThis.crypto.getRandomValues(e);return}for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256)}function b(){let e=new Uint8Array(16);y(e);let t=Date.now();t>_?(v=e[6]*16777216+e[7]*65536+e[8]*256+e[9],_=t):(v=v+1>>>0,v===0&&_++);let n=new Uint8Array(16);n[0]=_/1099511627776&255,n[1]=_/4294967296&255,n[2]=_/16777216&255,n[3]=_/65536&255,n[4]=_/256&255,n[5]=_&255,n[6]=112|v>>>28&15,n[7]=v>>>20&255,n[8]=128|v>>>14&63,n[9]=v>>>6&255,n[10]=(v&63)<<2|e[10]&3,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15];let r=Array.from(n,e=>e.toString(16).padStart(2,`0`));return`${r.slice(0,4).join(``)}-${r.slice(4,6).join(``)}-${r.slice(6,8).join(``)}-${r.slice(8,10).join(``)}-${r.slice(10,16).join(``)}`}function ee(e){let t=e.filter(e=>e!==void 0);if(t.length===0)return{cleanup:()=>{}};if(t.length===1)return{signal:t[0],cleanup:()=>{}};let n=new AbortController,r=[],i=e=>{n.signal.aborted||n.abort(e.reason)};for(let e of t){if(e.aborted){i(e);break}let t=()=>i(e);e.addEventListener(`abort`,t,{once:!0}),r.push({signal:e,listener:t})}return{signal:n.signal,cleanup:()=>{for(let{signal:e,listener:t}of r)e.removeEventListener(`abort`,t)}}}var x={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};function S(e,t){let n=e.toLowerCase(),r=e.toUpperCase();return t?.[n]||t?.[r]||a(n)||a(r)||``}function C(e){if(e instanceof URL)return e;try{return new URL(e)}catch{return}}function w(e,t,n){let r=S(`no_proxy`,n).toLowerCase();return!r||r!==`*`&&r.split(/[,\s]/).every(n=>{if(!n)return!0;let r=n.match(/^(.+):(\d+)$/),i=r?r[1]:n,a=r?Number.parseInt(r[2],10):0;return a&&a!==t?!0:/^[.*]/.test(i)?(i.startsWith(`*`)&&(i=i.slice(1)),!e.endsWith(i)):e!==i})}function T(e,t){let n=C(e);if(!n?.protocol||!n.host)return``;let r=n.protocol.split(`:`,1)[0];if(!w(n.host.replace(/:\d*$/,``),Number.parseInt(n.port,10)||x[r]||0,t))return``;let i=S(`${r}_proxy`,t)||S(`all_proxy`,t);return i&&!i.includes(`://`)&&(i=`${r}://${i}`),i}var E=`Unsupported proxy protocol. SOCKS and PAC proxy URLs are not supported; use an HTTP or HTTPS proxy URL.`;function D(e,t){let n=T(e,t);if(!n)return;let r;try{r=new URL(n)}catch(e){throw Error(`Invalid proxy URL ${JSON.stringify(n)}: ${e instanceof Error?e.message:String(e)}`)}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`${E} Got ${r.protocol}`);return r}function te(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:os`)??null}var O=te(),ne=`https://chatgpt.com/backend-api`,re=`https://api.openai.com/auth`,ie=0,k=1e3,ae=6e4,oe=15e3,se=3,A=new Set([`openai`,`openai-codex`,`opencode`]),ce=1009,le=`websocket_connection_limit_reached`,ue=new Set([`completed`,`incomplete`,`failed`,`cancelled`,`queued`,`in_progress`]);function de(e){return/GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(e)}function fe(e,t){return e===429&&de(t)?!1:e===429||e===500||e===502||e===503||e===504||/rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(t)}function pe(e){let t=e.get(`retry-after-ms`);if(t!==null){let e=Number(t);if(Number.isFinite(e))return Math.max(0,e)}let n=e.get(`retry-after`);if(!n)return;let r=Number(n);if(Number.isFinite(r))return Math.max(0,r*1e3);let i=Date.parse(n);if(!Number.isNaN(i))return Math.max(0,i-Date.now())}function me(e,t){let n=t?.maxRetryDelayMs??ae;return n>0?Math.min(e,n):e}function j(e,t){return new Promise((n,r)=>{if(t?.aborted){r(Error(`Request was aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Request was aborted`))})})}function M(e){if(e!==void 0){if(!Number.isFinite(e)||e<0)throw Error(`Invalid timeoutMs: ${String(e)}`);return Math.floor(e)}}function he(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:zlib`)??null}function ge(e){let t=he();if(!t||typeof t.zstdCompressSync!=`function`)return null;try{let n=t.zstdCompressSync(e,{params:{[t.constants.ZSTD_c_compressionLevel]:se}});return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}catch{return null}}var N=(t,r,a)=>{let o=new e;return(async()=>{let e={role:`assistant`,content:[],api:`openai-codex-responses`,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 s=a?.apiKey;if(!s)throw Error(`No API key for provider: ${t.provider}`);let l=Ye(s),u=ve(t,r,a),f=await a?.onPayload?.(u,t);f!==void 0&&(u=f);let p=d(a?.sessionId),m=p||b(),h=Xe(t.headers,a?.headers,l,s,p),g=Ze(t.headers,a?.headers,l,s,m),_=JSON.stringify(u),v=M(a?.timeoutMs),y=M(a?.websocketConnectTimeoutMs),x=a?.transport||`auto`,S=x!==`sse`&&G(a?.sessionId);if(S&&K(a?.sessionId),x!==`sse`&&!S){let r=!1,s=!1;for(;;){r=!1;try{if(await qe(be(t.baseUrl),u,g,e,o,t,()=>{r=!0},v,y,a),a?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end();return}catch(t){let o=a?.signal?.aborted,c=!r&&Ce(t);if(!o&&c&&!s){s=!0;continue}if(o||Se(t)&&!c||(i(e,n(`provider_transport_failure`,t,{configuredTransport:x,fallbackTransport:r?void 0:`sse`,eventsEmitted:r,phase:r?`after_message_stream_start`:`before_message_stream_start`,requestBytes:new TextEncoder().encode(_).byteLength})),Me(a?.sessionId,t),r))throw t;K(a?.sessionId);break}}}let C=ge(_);C&&h.set(`content-encoding`,`zstd`);let w=C??_,T,E,D=a?.maxRetries??ie;for(let e=0;e<=D;e++){if(a?.signal?.aborted)throw Error(`Request was aborted`);try{let n=v!==void 0&&v>0?AbortSignal.timeout(v):void 0,r=ee([a?.signal,n]);try{T=await fetch(I(t.baseUrl),{method:`POST`,headers:h,body:w,signal:r.signal})}catch(e){throw n?.aborted&&!a?.signal?.aborted?Error(`Codex SSE response headers timed out after ${v}ms`):e}finally{r.cleanup()}if(await a?.onResponse?.({status:T.status,headers:c(T.headers)},t),T.ok)break;let i=await T.text();if(e<D&&fe(T.status,i)){let t=pe(T.headers);await j(t===void 0?k*2**e:T.status===429?me(t,a):t,a?.signal);continue}let o=await Je(new Response(i,{status:T.status,statusText:T.statusText}));throw Error(o.friendlyMessage||o.message)}catch(t){if(t instanceof Error&&(t.name===`AbortError`||t.message===`Request was aborted`))throw Error(`Request was aborted`);if(E=t instanceof Error?t:Error(String(t)),e<D&&!E.message.includes(`usage limit`)){await j(k*2**e,a?.signal);continue}throw E}}if(!T?.ok)throw E??Error(`Failed after retries`);if(!T.body)throw Error(`No response body`);if(o.push({type:`start`,partial:e}),await xe(T,e,o,t,a),a?.signal?.aborted)throw Error(`Request was aborted`);o.push({type:`done`,reason:e.stopReason,message:e}),o.end()}catch(t){for(let t of e.content)delete t.partialJson;e.stopReason=a?.signal?.aborted?`aborted`:`error`,e.errorMessage=u(l(t)),o.push({type:`error`,reason:e.stopReason,error:e}),o.end()}})(),o},_e=(e,n,r)=>{let i=r?.apiKey;if(!i)throw Error(`No API key for provider: ${e.provider}`);let a=o(e,n,r,i),s=r?.reasoning?t(e,r.reasoning):void 0,c=s===`off`?void 0:s;return N(e,n,{...a,reasoningEffort:c})};function ve(e,t,n){let r=s(t,e.compat?.supportsToolSearch??!1),i=m(e,t,A,{includeSystemPrompt:!1,deferredTools:r.deferred}),a={model:e.id,store:!1,stream:!0,instructions:t.systemPrompt||`You are a helpful assistant.`,input:i,text:{verbosity:n?.textVerbosity||`low`},include:[`reasoning.encrypted_content`],prompt_cache_key:d(n?.sessionId),tool_choice:n?.toolChoice??`auto`,parallel_tool_calls:!0};if(n?.temperature!==void 0&&(a.temperature=n.temperature),n?.serviceTier!==void 0&&(a.service_tier=n.serviceTier),r.immediate.length>0&&(a.tools=f(r.immediate,{strict:null})),n?.reasoningEffort!==void 0){let t=n.reasoningEffort===`none`?e.thinkingLevelMap?.off??`none`:e.thinkingLevelMap?.[n.reasoningEffort]??n.reasoningEffort;t!==null&&(a.reasoning={effort:t,summary:n.reasoningSummary??`auto`})}return a}function ye(e,t){switch(t){case`flex`:return .5;case`priority`:return e.id===`gpt-5.5`?2.5:2;default:return 1}}function P(e,t,n){let r=ye(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)}function F(e,t){return e==="default"&&(t===`flex`||t===`priority`)?t:e??t}function I(e){let t=(e&&e.trim().length>0?e:ne).replace(/\/+$/,``);return t.endsWith(`/codex/responses`)?t:t.endsWith(`/codex`)?`${t}/responses`:`${t}/codex/responses`}function be(e){let t=new URL(I(e));return t.protocol===`https:`&&(t.protocol=`wss:`),t.protocol===`http:`&&(t.protocol=`ws:`),t.toString()}async function xe(e,t,n,r,i){await p(z(Ee(e,i?.signal)),t,n,r,{serviceTier:i?.serviceTier,resolveServiceTier:F,applyServiceTierPricing:(e,t)=>P(e,t,r)})}var L=class extends Error{code;payload;constructor(e,t){super(e),this.name=`CodexApiError`,this.code=t?.code,this.payload=t?.payload,this.cause=t?.cause}},R=class extends Error{payload;constructor(e,t){super(e),this.name=`CodexProtocolError`,this.payload=t?.payload,this.cause=t?.cause}};function Se(e){return e instanceof L||e instanceof R}function Ce(e){return e instanceof L&&e.code===le}function we(e){let t=e.error&&typeof e.error==`object`?e.error:void 0;return{code:typeof e.code==`string`?e.code:typeof t?.code==`string`?t.code:void 0,message:typeof e.message==`string`?e.message:typeof t?.message==`string`?t.message:void 0}}async function*z(e){for await(let t of e){let e=typeof t.type==`string`?t.type:void 0;if(e){if(e===`error`){let{code:e,message:n}=we(t);throw new L(`Codex error: ${n||e||JSON.stringify(t)}`,{code:e,payload:t})}if(e===`response.failed`){let e=t.response,n=e?.error?.code,r=e?.error?.message;throw new L(r||`Codex response failed`,{code:n,payload:t})}if(e===`response.done`||e===`response.completed`||e===`response.incomplete`){let e=t.response,n=e&&{...e,status:Te(e.status)};yield{...t,type:`response.completed`,response:n};return}yield t}}}function Te(e){if(typeof e==`string`)return ue.has(e)?e:void 0}async function*Ee(e,t){if(!e.body)return;let n=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{n.cancel().catch(()=>{})};t?.addEventListener(`abort`,o,{once:!0});try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);let{done:e,value:o}=await n.read();if(t?.aborted)throw Error(`Request was aborted`);if(e)break;a+=i.decode(o,{stream:!0});let s=a.indexOf(`
2
-
3
- `);for(;s!==-1;){let e=a.slice(0,s);a=a.slice(s+2);let t=e.split(`
4
- `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim());if(t.length>0){let e=t.join(`
5
- `).trim();if(e&&e!==`[DONE]`)try{yield JSON.parse(e)}catch(t){throw new R(`Invalid Codex SSE JSON: ${r(t)}`,{cause:t,payload:e})}}s=a.indexOf(`
6
-
7
- `)}}}finally{t?.removeEventListener(`abort`,o);try{await n.cancel()}catch{}try{n.releaseLock()}catch{}}}var De=`responses_websockets=2026-02-06`,Oe=300*1e3,ke=3300*1e3,B=new Map,V=new Map,H=new Set;function U(e){let t=V.get(e);return t||(t={requests:0,connectionsCreated:0,connectionsReused:0,cachedContextRequests:0,storeTrueRequests:0,fullContextRequests:0,deltaRequests:0,lastInputItems:0,websocketFailures:0,sseFallbacks:0},V.set(e,t)),t}function Ae(e){let t=V.get(e);return t?{...t}:void 0}function je(e){if(e){V.delete(e),H.delete(e);return}V.clear(),H.clear()}function W(e){let t=e=>{e.idleTimer&&clearTimeout(e.idleTimer),Y(e.socket,1e3,`debug_close`)};if(e){let n=B.get(e);n&&t(n),B.delete(e);return}for(let e of B.values())t(e);B.clear()}g(W);function G(e){return e?H.has(e):!1}function K(e){if(!e)return;let t=U(e);t.sseFallbacks++,t.websocketFallbackActive=G(e)}function Me(e,t){if(!e)return;H.add(e);let n=U(e);n.websocketFailures++,n.lastWebSocketError=r(t),n.websocketFallbackActive=!0}var q=null;async function Ne(e){if(!e&&q)return q;if(typeof process<`u`&&process.versions?.bun){let t=class extends WebSocket{constructor(t,n){let r={};r=Array.isArray(n)||typeof n==`string`?{protocols:n}:{...n};let i=D(t.toString().replace(/^wss:/,`https:`).replace(/^ws:/,`http:`),e);super(t,{...r,...i?{proxy:i.toString()}:{}})}};return e||(q=t),t}let t=globalThis.WebSocket;return typeof t==`function`?t:null}var Pe=class extends Error{code;reason;wasClean;constructor(e,t){super(e),this.name=`WebSocketCloseError`,this.code=t?.code,this.reason=t?.reason,this.wasClean=t?.wasClean}};function Fe(e){let t=e.readyState;return typeof t==`number`?t:void 0}function J(e){let t=Fe(e);return t===void 0||t===1}function Ie(e){return Date.now()-e.createdAt>=ke}function Y(e,t=1e3,n=`done`){try{e.close(t,n)}catch{}}function X(e,t){t.idleTimer&&clearTimeout(t.idleTimer),t.idleTimer=setTimeout(()=>{t.busy||(Y(t.socket,1e3,`idle_timeout`),B.delete(e))},Oe)}async function Z(e,t,n,r=oe,i){let a=await Ne(i);if(!a)throw Error(`WebSocket transport is not available in this runtime`);let o=c(t);return delete o[`OpenAI-Beta`],new Promise((t,i)=>{let s=!1,c,l;try{l=new a(e,{headers:o})}catch(e){i(e instanceof Error?e:Error(String(e)));return}let u=()=>{c&&=(clearTimeout(c),void 0),l.removeEventListener(`open`,f),l.removeEventListener(`error`,p),l.removeEventListener(`close`,m),n?.removeEventListener(`abort`,h)},d=(e,t)=>{s||(s=!0,u(),t&&Y(l,1e3,t),i(e))},f=()=>{s||(s=!0,u(),t(l))},p=e=>{d(Q(e))},m=e=>{d(Re(e))},h=()=>{d(Error(`Request was aborted`),`aborted`)};l.addEventListener(`open`,f),l.addEventListener(`error`,p),l.addEventListener(`close`,m),n?.addEventListener(`abort`,h),r>0&&(c=setTimeout(()=>{d(Error(`WebSocket connect timeout after ${r}ms`),`connect_timeout`)},r)),n?.aborted&&h()})}async function Le(e,t,n,r,i,a){if(!n){let n=await Z(e,t,r,i,a);return{socket:n,reused:!1,release:()=>Y(n)}}let o=B.get(n);if(o){if(o.idleTimer&&=(clearTimeout(o.idleTimer),void 0),!o.busy&&Ie(o))Y(o.socket,1e3,`connection_age_limit`),B.delete(n);else if(!o.busy&&J(o.socket))return o.busy=!0,{socket:o.socket,entry:o,reused:!0,release:({keep:e}={})=>{if(!e||!J(o.socket)){Y(o.socket),B.delete(n);return}o.busy=!1,X(n,o)}};if(o.busy){let n=await Z(e,t,r,i,a);return{socket:n,reused:!1,release:()=>{Y(n)}}}J(o.socket)||(Y(o.socket),B.delete(n))}let s=await Z(e,t,r,i,a),c={socket:s,busy:!0,createdAt:Date.now()};return B.set(n,c),{socket:s,entry:c,reused:!1,release:({keep:e}={})=>{if(!e||!J(c.socket)){Y(c.socket),c.idleTimer&&clearTimeout(c.idleTimer),B.get(n)===c&&B.delete(n);return}c.busy=!1,X(n,c)}}}function Q(e){if(e&&typeof e==`object`){let t=`message`in e?e.message:void 0;if(typeof t==`string`&&t.length>0)return Error(t);let n=`error`in e?e.error:void 0;if(n instanceof Error&&n.message.length>0)return n;if(n&&typeof n==`object`&&`message`in n){let e=n.message;if(typeof e==`string`&&e.length>0)return Error(e)}}return Error(`WebSocket error`)}function Re(e){if(e&&typeof e==`object`){let t=`code`in e?e.code:void 0,n=`reason`in e?e.reason:void 0,r=`wasClean`in e?e.wasClean:void 0,i=typeof t==`number`?` ${t}`:``,a=typeof n==`string`&&n.length>0?` ${n}`:``;return!a&&t===ce&&(a=` message too big`),new Pe(`WebSocket closed${i}${a}`.trim(),{code:typeof t==`number`?t:void 0,reason:typeof n==`string`&&n.length>0?n:void 0,wasClean:typeof r==`boolean`?r:void 0})}return Error(`WebSocket closed`)}async function ze(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return new TextDecoder().decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder().decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}if(e&&typeof e==`object`&&`arrayBuffer`in e){let t=await e.arrayBuffer();return new TextDecoder().decode(new Uint8Array(t))}return null}async function*Be(e,t,n){let i=[],a=null,o=!1,s=null,c=!1,l=()=>{if(!a)return;let e=a;a=null,e()},u=e=>{(async()=>{let t=null;try{if(!e||typeof e!=`object`||!(`data`in e)||(t=await ze(e.data),!t))return;let n=JSON.parse(t),r=typeof n.type==`string`?n.type:``;(r===`response.completed`||r===`response.done`||r===`response.incomplete`)&&(c=!0,o=!0),i.push(n),l()}catch(e){s=new R(`Invalid Codex WebSocket JSON: ${r(e)}`,{cause:e,payload:t}),o=!0,l()}})()},d=e=>{s=Q(e),o=!0,l()},f=e=>{if(c){o=!0,l();return}s||=Re(e),o=!0,l()},p=()=>{s=Error(`Request was aborted`),o=!0,l()};e.addEventListener(`message`,u),e.addEventListener(`error`,d),e.addEventListener(`close`,f),t?.addEventListener(`abort`,p);try{for(;;){if(t?.aborted)throw Error(`Request was aborted`);if(i.length>0){yield i.shift();continue}if(o)break;let r;await new Promise((t,i)=>{a=t,n!==void 0&&n>0&&(r=setTimeout(()=>{let t=Error(`WebSocket idle timeout after ${n}ms`);s=t,o=!0,a=null,Y(e,1e3,`idle_timeout`),i(t)},n))}).finally(()=>{r&&clearTimeout(r)})}if(s)throw s;if(!c)throw Error(`WebSocket stream closed before response.completed`)}finally{e.removeEventListener(`message`,u),e.removeEventListener(`error`,d),e.removeEventListener(`close`,f),t?.removeEventListener(`abort`,p)}}function Ve(e){let{input:t,previous_response_id:n,...r}=e;return r}function He(e,t){return JSON.stringify(e??[])===JSON.stringify(t??[])}function Ue(e,t){return JSON.stringify(Ve(e))===JSON.stringify(Ve(t))}function We(e,t){if(!Ue(e,t.lastRequestBody))return;let n=e.input??[],r=[...t.lastRequestBody.input??[],...t.lastResponseItems];if(!(n.length<r.length)&&He(n.slice(0,r.length),r))return n.slice(r.length)}function Ge(e,t){let n=e.continuation;if(!n)return t;let r=We(t,n);return!r||!n.lastResponseId?(e.continuation=void 0,t):{...t,previous_response_id:n.lastResponseId,input:r}}async function*Ke(e,t,n,r){let i=!1;for await(let a of e)i||(i=!0,r(),n.push({type:`start`,partial:t})),yield a}async function qe(e,t,n,r,i,a,o,s,c,l){let{socket:u,entry:d,reused:f,release:h}=await Le(e,n,l?.sessionId,l?.signal,c,l?.env),g=!0,_=l?.transport===`websocket-cached`||l?.transport===`auto`,v=t,y=_&&d?Ge(d,v):v,b=l?.sessionId?U(l.sessionId):void 0;b&&(b.requests++,f?b.connectionsReused++:b.connectionsCreated++,_&&b.cachedContextRequests++,y.store===!0&&b.storeTrueRequests++,b.lastInputItems=y.input?.length??0,y.previous_response_id?(b.deltaRequests++,b.lastDeltaInputItems=y.input?.length??0,b.lastPreviousResponseId=y.previous_response_id):(b.fullContextRequests++,b.lastDeltaInputItems=void 0,b.lastPreviousResponseId=void 0));try{if(u.send(JSON.stringify({type:`response.create`,...y})),await p(Ke(z(Be(u,l?.signal,s)),r,i,o),r,i,a,{serviceTier:l?.serviceTier,resolveServiceTier:F,applyServiceTierPricing:(e,t)=>P(e,t,a)}),l?.signal?.aborted)g=!1;else if(_&&d&&r.responseId){let e=m(a,{messages:[r]},A,{includeSystemPrompt:!1}).filter(e=>e.type!==`function_call_output`);d.continuation={lastRequestBody:v,lastResponseId:r.responseId,lastResponseItems:e}}}catch(e){throw d&&(d.continuation=void 0),g=!1,e}finally{h({keep:g})}}async function Je(e){let t=await e.text(),n=t||e.statusText||`Request failed`,r;try{let i=JSON.parse(t)?.error;if(i){let t=i.code||i.type||``;if(/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(t)||e.status===429){let e=i.plan_type?` (${i.plan_type.toLowerCase()} plan)`:``,t=i.resets_at?Math.max(0,Math.round((i.resets_at*1e3-Date.now())/6e4)):void 0;r=`You have hit your ChatGPT usage limit${e}.${t===void 0?``:` Try again in ~${t} min.`}`.trim()}n=i.message||r||n}}catch{}return{message:n,friendlyMessage:r}}function Ye(e){try{let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid token`);let n=JSON.parse(atob(t[1]))?.[re]?.chatgpt_account_id;if(!n)throw Error(`No account ID in token`);return n}catch{throw Error(`Failed to extract accountId from token`)}}function $(e,t,n,r){let i=new Headers(e);for(let[e,n]of Object.entries(t||{}))n===null?i.delete(e):i.set(e,n);i.set(`Authorization`,`Bearer ${r}`),i.set(`chatgpt-account-id`,n),i.set(`originator`,`pi`);let a=O?`pi (${O.platform()} ${O.release()}; ${O.arch()})`:`pi (browser)`;return i.set(`User-Agent`,a),i}function Xe(e,t,n,r,i){let a=$(e,t,n,r);return a.set(`OpenAI-Beta`,`responses=experimental`),a.set(`accept`,`text/event-stream`),a.set(`content-type`,`application/json`),i&&(a.set(`session-id`,i),a.set(`x-client-request-id`,i)),a}function Ze(e,t,n,r,i){let a=$(e,t,n,r);return a.delete(`accept`),a.delete(`content-type`),a.delete(`OpenAI-Beta`),a.delete(`openai-beta`),a.set(`OpenAI-Beta`,De),a.set(`x-client-request-id`,i),a.set(`session-id`,i),a}export{W as closeOpenAICodexWebSocketSessions,Ae as getOpenAICodexWebSocketDebugStats,je as resetOpenAICodexWebSocketDebugStats,N as stream,_e as streamSimple};
@@ -1,5 +0,0 @@
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};
@@ -1,5 +0,0 @@
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};
@@ -1 +0,0 @@
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};
@@ -1,10 +0,0 @@
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};
@@ -1,10 +0,0 @@
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};
@@ -1 +0,0 @@
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};
@@ -1 +0,0 @@
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}}