@earendil-works/pi-ai 0.80.2 → 0.80.5

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 (176) hide show
  1. package/README.md +1 -1
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +13 -4
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/azure-openai-responses.d.ts.map +1 -1
  6. package/dist/api/azure-openai-responses.js +14 -18
  7. package/dist/api/azure-openai-responses.js.map +1 -1
  8. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  9. package/dist/api/bedrock-converse-stream.js +21 -9
  10. package/dist/api/bedrock-converse-stream.js.map +1 -1
  11. package/dist/api/google-generative-ai.d.ts.map +1 -1
  12. package/dist/api/google-generative-ai.js +4 -2
  13. package/dist/api/google-generative-ai.js.map +1 -1
  14. package/dist/api/google-vertex.d.ts.map +1 -1
  15. package/dist/api/google-vertex.js +4 -2
  16. package/dist/api/google-vertex.js.map +1 -1
  17. package/dist/api/mistral-conversations.d.ts.map +1 -1
  18. package/dist/api/mistral-conversations.js +1 -1
  19. package/dist/api/mistral-conversations.js.map +1 -1
  20. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  21. package/dist/api/openai-codex-responses.js +62 -42
  22. package/dist/api/openai-codex-responses.js.map +1 -1
  23. package/dist/api/openai-completions.d.ts.map +1 -1
  24. package/dist/api/openai-completions.js +12 -5
  25. package/dist/api/openai-completions.js.map +1 -1
  26. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  27. package/dist/api/openai-responses-shared.js +153 -176
  28. package/dist/api/openai-responses-shared.js.map +1 -1
  29. package/dist/api/openai-responses.d.ts.map +1 -1
  30. package/dist/api/openai-responses.js +6 -16
  31. package/dist/api/openai-responses.js.map +1 -1
  32. package/dist/api/openrouter-images.d.ts.map +1 -1
  33. package/dist/api/openrouter-images.js +2 -1
  34. package/dist/api/openrouter-images.js.map +1 -1
  35. package/dist/api/simple-options.d.ts +3 -2
  36. package/dist/api/simple-options.d.ts.map +1 -1
  37. package/dist/api/simple-options.js +11 -2
  38. package/dist/api/simple-options.js.map +1 -1
  39. package/dist/api/transform-messages.d.ts.map +1 -1
  40. package/dist/api/transform-messages.js +4 -1
  41. package/dist/api/transform-messages.js.map +1 -1
  42. package/dist/image-models.generated.d.ts +34 -19
  43. package/dist/image-models.generated.d.ts.map +1 -1
  44. package/dist/image-models.generated.js +60 -45
  45. package/dist/image-models.generated.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/models.generated.d.ts +1754 -498
  51. package/dist/models.generated.d.ts.map +1 -1
  52. package/dist/providers/amazon-bedrock.models.d.ts +157 -0
  53. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  54. package/dist/providers/amazon-bedrock.models.js +166 -12
  55. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  56. package/dist/providers/anthropic.models.d.ts +6 -190
  57. package/dist/providers/anthropic.models.d.ts.map +1 -1
  58. package/dist/providers/anthropic.models.js +21 -207
  59. package/dist/providers/anthropic.models.js.map +1 -1
  60. package/dist/providers/azure-openai-responses.models.d.ts +84 -0
  61. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  62. package/dist/providers/azure-openai-responses.models.js +72 -0
  63. package/dist/providers/azure-openai-responses.models.js.map +1 -1
  64. package/dist/providers/cerebras.models.d.ts +21 -0
  65. package/dist/providers/cerebras.models.d.ts.map +1 -1
  66. package/dist/providers/cerebras.models.js +18 -0
  67. package/dist/providers/cerebras.models.js.map +1 -1
  68. package/dist/providers/cloudflare-ai-gateway.models.d.ts +21 -0
  69. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  70. package/dist/providers/cloudflare-ai-gateway.models.js +18 -0
  71. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  72. package/dist/providers/fireworks.models.d.ts +28 -0
  73. package/dist/providers/fireworks.models.d.ts.map +1 -1
  74. package/dist/providers/fireworks.models.js +21 -2
  75. package/dist/providers/fireworks.models.js.map +1 -1
  76. package/dist/providers/github-copilot.models.d.ts +82 -0
  77. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  78. package/dist/providers/github-copilot.models.js +62 -5
  79. package/dist/providers/github-copilot.models.js.map +1 -1
  80. package/dist/providers/groq.models.d.ts.map +1 -1
  81. package/dist/providers/groq.models.js +1 -1
  82. package/dist/providers/groq.models.js.map +1 -1
  83. package/dist/providers/huggingface.models.d.ts +100 -0
  84. package/dist/providers/huggingface.models.d.ts.map +1 -1
  85. package/dist/providers/huggingface.models.js +90 -0
  86. package/dist/providers/huggingface.models.js.map +1 -1
  87. package/dist/providers/minimax-cn.models.d.ts.map +1 -1
  88. package/dist/providers/minimax-cn.models.js +4 -4
  89. package/dist/providers/minimax-cn.models.js.map +1 -1
  90. package/dist/providers/minimax.models.d.ts.map +1 -1
  91. package/dist/providers/minimax.models.js +4 -4
  92. package/dist/providers/minimax.models.js.map +1 -1
  93. package/dist/providers/mistral.models.d.ts +1 -1
  94. package/dist/providers/mistral.models.d.ts.map +1 -1
  95. package/dist/providers/mistral.models.js +4 -4
  96. package/dist/providers/mistral.models.js.map +1 -1
  97. package/dist/providers/nvidia.models.d.ts +29 -1
  98. package/dist/providers/nvidia.models.d.ts.map +1 -1
  99. package/dist/providers/nvidia.models.js +23 -4
  100. package/dist/providers/nvidia.models.js.map +1 -1
  101. package/dist/providers/openai-codex.models.d.ts +63 -0
  102. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  103. package/dist/providers/openai-codex.models.js +54 -0
  104. package/dist/providers/openai-codex.models.js.map +1 -1
  105. package/dist/providers/openai.models.d.ts +84 -0
  106. package/dist/providers/openai.models.d.ts.map +1 -1
  107. package/dist/providers/openai.models.js +72 -0
  108. package/dist/providers/openai.models.js.map +1 -1
  109. package/dist/providers/opencode-go.models.d.ts.map +1 -1
  110. package/dist/providers/opencode-go.models.js +6 -6
  111. package/dist/providers/opencode-go.models.js.map +1 -1
  112. package/dist/providers/opencode.models.d.ts +132 -0
  113. package/dist/providers/opencode.models.d.ts.map +1 -1
  114. package/dist/providers/opencode.models.js +111 -2
  115. package/dist/providers/opencode.models.js.map +1 -1
  116. package/dist/providers/openrouter.models.d.ts +358 -55
  117. package/dist/providers/openrouter.models.d.ts.map +1 -1
  118. package/dist/providers/openrouter.models.js +395 -138
  119. package/dist/providers/openrouter.models.js.map +1 -1
  120. package/dist/providers/together.models.d.ts +31 -0
  121. package/dist/providers/together.models.d.ts.map +1 -1
  122. package/dist/providers/together.models.js +21 -2
  123. package/dist/providers/together.models.js.map +1 -1
  124. package/dist/providers/vercel-ai-gateway.models.d.ts +446 -36
  125. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  126. package/dist/providers/vercel-ai-gateway.models.js +477 -80
  127. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  128. package/dist/providers/xai.models.d.ts +22 -0
  129. package/dist/providers/xai.models.d.ts.map +1 -1
  130. package/dist/providers/xai.models.js +18 -0
  131. package/dist/providers/xai.models.js.map +1 -1
  132. package/dist/providers/xiaomi-token-plan-ams.models.d.ts +0 -42
  133. package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
  134. package/dist/providers/xiaomi-token-plan-ams.models.js +9 -45
  135. package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  136. package/dist/providers/xiaomi-token-plan-cn.models.d.ts +0 -42
  137. package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
  138. package/dist/providers/xiaomi-token-plan-cn.models.js +9 -45
  139. package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  140. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +0 -42
  141. package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
  142. package/dist/providers/xiaomi-token-plan-sgp.models.js +9 -45
  143. package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  144. package/dist/providers/xiaomi.models.d.ts.map +1 -1
  145. package/dist/providers/xiaomi.models.js +15 -15
  146. package/dist/providers/xiaomi.models.js.map +1 -1
  147. package/dist/types.d.ts +6 -0
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.js.map +1 -1
  150. package/dist/utils/error-body.d.ts +25 -0
  151. package/dist/utils/error-body.d.ts.map +1 -0
  152. package/dist/utils/error-body.js +109 -0
  153. package/dist/utils/error-body.js.map +1 -0
  154. package/dist/utils/estimate.d.ts +17 -0
  155. package/dist/utils/estimate.d.ts.map +1 -0
  156. package/dist/utils/estimate.js +95 -0
  157. package/dist/utils/estimate.js.map +1 -0
  158. package/dist/utils/oauth/device-code.d.ts +2 -0
  159. package/dist/utils/oauth/device-code.d.ts.map +1 -1
  160. package/dist/utils/oauth/device-code.js +15 -2
  161. package/dist/utils/oauth/device-code.js.map +1 -1
  162. package/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  163. package/dist/utils/oauth/github-copilot.js +3 -2
  164. package/dist/utils/oauth/github-copilot.js.map +1 -1
  165. package/dist/utils/overflow.d.ts +1 -0
  166. package/dist/utils/overflow.d.ts.map +1 -1
  167. package/dist/utils/overflow.js +3 -0
  168. package/dist/utils/overflow.js.map +1 -1
  169. package/dist/utils/retry.d.ts +12 -0
  170. package/dist/utils/retry.d.ts.map +1 -0
  171. package/dist/utils/retry.js +90 -0
  172. package/dist/utils/retry.js.map +1 -0
  173. package/dist/utils/validation.d.ts.map +1 -1
  174. package/dist/utils/validation.js +9 -21
  175. package/dist/utils/validation.js.map +1 -1
  176. package/package.json +1 -1
@@ -21,6 +21,30 @@ export declare const OPENCODE_MODELS: {
21
21
  contextWindow: number;
22
22
  maxTokens: number;
23
23
  };
24
+ readonly "claude-fable-5": {
25
+ id: string;
26
+ name: string;
27
+ api: "anthropic-messages";
28
+ provider: string;
29
+ baseUrl: string;
30
+ compat: {
31
+ forceAdaptiveThinking: true;
32
+ };
33
+ reasoning: true;
34
+ thinkingLevelMap: {
35
+ off: null;
36
+ xhigh: string;
37
+ };
38
+ input: ("image" | "text")[];
39
+ cost: {
40
+ input: number;
41
+ output: number;
42
+ cacheRead: number;
43
+ cacheWrite: number;
44
+ };
45
+ contextWindow: number;
46
+ maxTokens: number;
47
+ };
24
48
  readonly "claude-haiku-4-5": {
25
49
  id: string;
26
50
  name: string;
@@ -197,6 +221,26 @@ export declare const OPENCODE_MODELS: {
197
221
  contextWindow: number;
198
222
  maxTokens: number;
199
223
  };
224
+ readonly "claude-sonnet-5": {
225
+ id: string;
226
+ name: string;
227
+ api: "anthropic-messages";
228
+ provider: string;
229
+ baseUrl: string;
230
+ compat: {
231
+ forceAdaptiveThinking: true;
232
+ };
233
+ reasoning: true;
234
+ input: ("image" | "text")[];
235
+ cost: {
236
+ input: number;
237
+ output: number;
238
+ cacheRead: number;
239
+ cacheWrite: number;
240
+ };
241
+ contextWindow: number;
242
+ maxTokens: number;
243
+ };
200
244
  readonly "deepseek-v4-flash": {
201
245
  id: string;
202
246
  name: string;
@@ -750,6 +794,28 @@ export declare const OPENCODE_MODELS: {
750
794
  contextWindow: number;
751
795
  maxTokens: number;
752
796
  };
797
+ readonly "grok-4.5": {
798
+ id: string;
799
+ name: string;
800
+ api: "openai-completions";
801
+ provider: string;
802
+ baseUrl: string;
803
+ compat: {
804
+ supportsStore: false;
805
+ supportsDeveloperRole: false;
806
+ maxTokensField: "max_tokens";
807
+ };
808
+ reasoning: true;
809
+ input: ("image" | "text")[];
810
+ cost: {
811
+ input: number;
812
+ output: number;
813
+ cacheRead: number;
814
+ cacheWrite: number;
815
+ };
816
+ contextWindow: number;
817
+ maxTokens: number;
818
+ };
753
819
  readonly "grok-build-0.1": {
754
820
  id: string;
755
821
  name: string;
@@ -779,6 +845,28 @@ export declare const OPENCODE_MODELS: {
779
845
  contextWindow: number;
780
846
  maxTokens: number;
781
847
  };
848
+ readonly "hy3-free": {
849
+ id: string;
850
+ name: string;
851
+ api: "openai-completions";
852
+ provider: string;
853
+ baseUrl: string;
854
+ compat: {
855
+ supportsStore: false;
856
+ supportsDeveloperRole: false;
857
+ maxTokensField: "max_tokens";
858
+ };
859
+ reasoning: true;
860
+ input: "text"[];
861
+ cost: {
862
+ input: number;
863
+ output: number;
864
+ cacheRead: number;
865
+ cacheWrite: number;
866
+ };
867
+ contextWindow: number;
868
+ maxTokens: number;
869
+ };
782
870
  readonly "kimi-k2.5": {
783
871
  id: string;
784
872
  name: string;
@@ -827,6 +915,28 @@ export declare const OPENCODE_MODELS: {
827
915
  contextWindow: number;
828
916
  maxTokens: number;
829
917
  };
918
+ readonly "kimi-k2.7-code": {
919
+ id: string;
920
+ name: string;
921
+ api: "openai-completions";
922
+ provider: string;
923
+ baseUrl: string;
924
+ compat: {
925
+ supportsStore: false;
926
+ supportsDeveloperRole: false;
927
+ maxTokensField: "max_tokens";
928
+ };
929
+ reasoning: true;
930
+ input: ("image" | "text")[];
931
+ cost: {
932
+ input: number;
933
+ output: number;
934
+ cacheRead: number;
935
+ cacheWrite: number;
936
+ };
937
+ contextWindow: number;
938
+ maxTokens: number;
939
+ };
830
940
  readonly "mimo-v2.5-free": {
831
941
  id: string;
832
942
  name: string;
@@ -894,6 +1004,28 @@ export declare const OPENCODE_MODELS: {
894
1004
  contextWindow: number;
895
1005
  maxTokens: number;
896
1006
  };
1007
+ readonly "minimax-m3": {
1008
+ id: string;
1009
+ name: string;
1010
+ api: "openai-completions";
1011
+ provider: string;
1012
+ baseUrl: string;
1013
+ compat: {
1014
+ supportsStore: false;
1015
+ supportsDeveloperRole: false;
1016
+ maxTokensField: "max_tokens";
1017
+ };
1018
+ reasoning: true;
1019
+ input: ("image" | "text")[];
1020
+ cost: {
1021
+ input: number;
1022
+ output: number;
1023
+ cacheRead: number;
1024
+ cacheWrite: number;
1025
+ };
1026
+ contextWindow: number;
1027
+ maxTokens: number;
1028
+ };
897
1029
  readonly "nemotron-3-ultra-free": {
898
1030
  id: string;
899
1031
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.models.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2yBlB,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const OPENCODE_MODELS = {\n\t\"big-pickle\": {\n\t\tid: \"big-pickle\",\n\t\tname: \"Big Pickle\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"deepseek-v4-flash\": {\n\t\tid: \"deepseek-v4-flash\",\n\t\tname: \"DeepSeek V4 Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false,\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.14,\n\t\t\toutput: 0.28,\n\t\t\tcacheRead: 0.028,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-v4-flash-free\": {\n\t\tid: \"deepseek-v4-flash-free\",\n\t\tname: \"DeepSeek V4 Flash Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-v4-pro\": {\n\t\tid: \"deepseek-v4-pro\",\n\t\tname: \"DeepSeek V4 Pro\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false,\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.74,\n\t\t\toutput: 3.84,\n\t\t\tcacheRead: 0.145,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"gemini-3-flash\": {\n\t\tid: \"gemini-3-flash\",\n\t\tname: \"Gemini 3 Flash\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.05,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"gemini-3.1-pro\": {\n\t\tid: \"gemini-3.1-pro\",\n\t\tname: \"Gemini 3.1 Pro Preview\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":\"LOW\",\"medium\":null,\"high\":\"HIGH\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 12,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"gemini-3.5-flash\": {\n\t\tid: \"gemini-3.5-flash\",\n\t\tname: \"Gemini 3.5 Flash\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.5,\n\t\t\toutput: 9,\n\t\t\tcacheRead: 0.15,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"glm-5\": {\n\t\tid: \"glm-5\",\n\t\tname: \"GLM-5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 3.2,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"glm-5.1\": {\n\t\tid: \"glm-5.1\",\n\t\tname: \"GLM-5.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"glm-5.2\": {\n\t\tid: \"glm-5.2\",\n\t\tname: \"GLM-5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"gpt-5\": {\n\t\tid: \"gpt-5\",\n\t\tname: \"GPT-5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5-codex\": {\n\t\tid: \"gpt-5-codex\",\n\t\tname: \"GPT-5 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5-nano\": {\n\t\tid: \"gpt-5-nano\",\n\t\tname: \"GPT-5 Nano\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.05,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0.005,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex-max\": {\n\t\tid: \"gpt-5.1-codex-max\",\n\t\tname: \"GPT-5.1 Codex Max\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex-mini\": {\n\t\tid: \"gpt-5.1-codex-mini\",\n\t\tname: \"GPT-5.1 Codex Mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 2,\n\t\t\tcacheRead: 0.025,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 272000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-mini\": {\n\t\tid: \"gpt-5.4-mini\",\n\t\tname: \"GPT-5.4 Mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.75,\n\t\t\toutput: 4.5,\n\t\t\tcacheRead: 0.075,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-nano\": {\n\t\tid: \"gpt-5.4-nano\",\n\t\tname: \"GPT-5.4 Nano\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.02,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-pro\": {\n\t\tid: \"gpt-5.4-pro\",\n\t\tname: \"GPT-5.4 Pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 180,\n\t\t\tcacheRead: 30,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5-pro\": {\n\t\tid: \"gpt-5.5-pro\",\n\t\tname: \"GPT-5.5 Pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"minimal\":null,\"low\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 180,\n\t\t\tcacheRead: 30,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"grok-build-0.1\": {\n\t\tid: \"grok-build-0.1\",\n\t\tname: \"Grok Build 0.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 2,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"kimi-k2.5\": {\n\t\tid: \"kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"kimi-k2.6\": {\n\t\tid: \"kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"thinkingFormat\":\"deepseek\",\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"mimo-v2.5-free\": {\n\t\tid: \"mimo-v2.5-free\",\n\t\tname: \"MiMo V2.5 Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"minimax-m2.5\": {\n\t\tid: \"minimax-m2.5\",\n\t\tname: \"MiniMax M2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"minimax-m2.7\": {\n\t\tid: \"minimax-m2.7\",\n\t\tname: \"MiniMax M2.7\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"nemotron-3-ultra-free\": {\n\t\tid: \"nemotron-3-ultra-free\",\n\t\tname: \"Nemotron 3 Ultra Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"north-mini-code-free\": {\n\t\tid: \"north-mini-code-free\",\n\t\tname: \"North Mini Code Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"qwen3.5-plus\": {\n\t\tid: \"qwen3.5-plus\",\n\t\tname: \"Qwen3.5 Plus\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.02,\n\t\t\tcacheWrite: 0.25,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"qwen3.6-plus\": {\n\t\tid: \"qwen3.6-plus\",\n\t\tname: \"Qwen3.6 Plus\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.05,\n\t\t\tcacheWrite: 0.625,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"anthropic-messages\">,\n} as const;\n"]}
1
+ {"version":3,"file":"opencode.models.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAw5BlB,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-models.ts\n// Do not edit manually - run 'npm run generate-models' to update\n\nimport type { Model } from \"../types.ts\";\n\nexport const OPENCODE_MODELS = {\n\t\"big-pickle\": {\n\t\tid: \"big-pickle\",\n\t\tname: \"Big Pickle\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"claude-fable-5\": {\n\t\tid: \"claude-fable-5\",\n\t\tname: \"Claude Fable 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 10,\n\t\t\toutput: 50,\n\t\t\tcacheRead: 1,\n\t\t\tcacheWrite: 12.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-haiku-4-5\": {\n\t\tid: \"claude-haiku-4-5\",\n\t\tname: \"Claude Haiku 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 5,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-1\": {\n\t\tid: \"claude-opus-4-1\",\n\t\tname: \"Claude Opus 4.1\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 15,\n\t\t\toutput: 75,\n\t\t\tcacheRead: 1.5,\n\t\t\tcacheWrite: 18.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-5\": {\n\t\tid: \"claude-opus-4-5\",\n\t\tname: \"Claude Opus 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-6\": {\n\t\tid: \"claude-opus-4-6\",\n\t\tname: \"Claude Opus 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-7\": {\n\t\tid: \"claude-opus-4-7\",\n\t\tname: \"Claude Opus 4.7\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-opus-4-8\": {\n\t\tid: \"claude-opus-4-8\",\n\t\tname: \"Claude Opus 4.8\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true,\"supportsTemperature\":false},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 25,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 6.25,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4\": {\n\t\tid: \"claude-sonnet-4\",\n\t\tname: \"Claude Sonnet 4\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-5\": {\n\t\tid: \"claude-sonnet-4-5\",\n\t\tname: \"Claude Sonnet 4.5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-4-6\": {\n\t\tid: \"claude-sonnet-4-6\",\n\t\tname: \"Claude Sonnet 4.6\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 3,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.3,\n\t\t\tcacheWrite: 3.75,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"claude-sonnet-5\": {\n\t\tid: \"claude-sonnet-5\",\n\t\tname: \"Claude Sonnet 5\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\tcompat: {\"forceAdaptiveThinking\":true},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 2.5,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"deepseek-v4-flash\": {\n\t\tid: \"deepseek-v4-flash\",\n\t\tname: \"DeepSeek V4 Flash\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false,\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.14,\n\t\t\toutput: 0.28,\n\t\t\tcacheRead: 0.028,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-v4-flash-free\": {\n\t\tid: \"deepseek-v4-flash-free\",\n\t\tname: \"DeepSeek V4 Flash Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"deepseek-v4-pro\": {\n\t\tid: \"deepseek-v4-pro\",\n\t\tname: \"DeepSeek V4 Pro\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false,\"requiresReasoningContentOnAssistantMessages\":true},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"minimal\":null,\"low\":null,\"medium\":null,\"high\":\"high\",\"xhigh\":\"max\"},\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.74,\n\t\t\toutput: 3.84,\n\t\t\tcacheRead: 0.145,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 384000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"gemini-3-flash\": {\n\t\tid: \"gemini-3-flash\",\n\t\tname: \"Gemini 3 Flash\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.05,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"gemini-3.1-pro\": {\n\t\tid: \"gemini-3.1-pro\",\n\t\tname: \"Gemini 3.1 Pro Preview\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":\"LOW\",\"medium\":null,\"high\":\"HIGH\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 12,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"gemini-3.5-flash\": {\n\t\tid: \"gemini-3.5-flash\",\n\t\tname: \"Gemini 3.5 Flash\",\n\t\tapi: \"google-generative-ai\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.5,\n\t\t\toutput: 9,\n\t\t\tcacheRead: 0.15,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1048576,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"google-generative-ai\">,\n\t\"glm-5\": {\n\t\tid: \"glm-5\",\n\t\tname: \"GLM-5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 3.2,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"glm-5.1\": {\n\t\tid: \"glm-5.1\",\n\t\tname: \"GLM-5.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"glm-5.2\": {\n\t\tid: \"glm-5.2\",\n\t\tname: \"GLM-5.2\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 1.4,\n\t\t\toutput: 4.4,\n\t\t\tcacheRead: 0.26,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"gpt-5\": {\n\t\tid: \"gpt-5\",\n\t\tname: \"GPT-5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5-codex\": {\n\t\tid: \"gpt-5-codex\",\n\t\tname: \"GPT-5 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5-nano\": {\n\t\tid: \"gpt-5-nano\",\n\t\tname: \"GPT-5 Nano\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.05,\n\t\t\toutput: 0.4,\n\t\t\tcacheRead: 0.005,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1\": {\n\t\tid: \"gpt-5.1\",\n\t\tname: \"GPT-5.1\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex\": {\n\t\tid: \"gpt-5.1-codex\",\n\t\tname: \"GPT-5.1 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.07,\n\t\t\toutput: 8.5,\n\t\t\tcacheRead: 0.107,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex-max\": {\n\t\tid: \"gpt-5.1-codex-max\",\n\t\tname: \"GPT-5.1 Codex Max\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.25,\n\t\t\toutput: 10,\n\t\t\tcacheRead: 0.125,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.1-codex-mini\": {\n\t\tid: \"gpt-5.1-codex-mini\",\n\t\tname: \"GPT-5.1 Codex Mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.25,\n\t\t\toutput: 2,\n\t\t\tcacheRead: 0.025,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2\": {\n\t\tid: \"gpt-5.2\",\n\t\tname: \"GPT-5.2\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.2-codex\": {\n\t\tid: \"gpt-5.2-codex\",\n\t\tname: \"GPT-5.2 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.3-codex\": {\n\t\tid: \"gpt-5.3-codex\",\n\t\tname: \"GPT-5.3 Codex\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1.75,\n\t\t\toutput: 14,\n\t\t\tcacheRead: 0.175,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4\": {\n\t\tid: \"gpt-5.4\",\n\t\tname: \"GPT-5.4\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2.5,\n\t\t\toutput: 15,\n\t\t\tcacheRead: 0.25,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 272000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-mini\": {\n\t\tid: \"gpt-5.4-mini\",\n\t\tname: \"GPT-5.4 Mini\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.75,\n\t\t\toutput: 4.5,\n\t\t\tcacheRead: 0.075,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-nano\": {\n\t\tid: \"gpt-5.4-nano\",\n\t\tname: \"GPT-5.4 Nano\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 1.25,\n\t\t\tcacheRead: 0.02,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 400000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.4-pro\": {\n\t\tid: \"gpt-5.4-pro\",\n\t\tname: \"GPT-5.4 Pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 180,\n\t\t\tcacheRead: 30,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5\": {\n\t\tid: \"gpt-5.5\",\n\t\tname: \"GPT-5.5\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 5,\n\t\t\toutput: 30,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.5-pro\": {\n\t\tid: \"gpt-5.5-pro\",\n\t\tname: \"GPT-5.5 Pro\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"minimal\":null,\"low\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 30,\n\t\t\toutput: 180,\n\t\t\tcacheRead: 30,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"grok-4.5\": {\n\t\tid: \"grok-4.5\",\n\t\tname: \"Grok 4.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 2,\n\t\t\toutput: 6,\n\t\t\tcacheRead: 0.5,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 500000,\n\t\tmaxTokens: 500000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"grok-build-0.1\": {\n\t\tid: \"grok-build-0.1\",\n\t\tname: \"Grok Build 0.1\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"minimal\":null,\"low\":null,\"medium\":null},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 2,\n\t\t\tcacheRead: 0.2,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 256000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"hy3-free\": {\n\t\tid: \"hy3-free\",\n\t\tname: \"Hy3 Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"kimi-k2.5\": {\n\t\tid: \"kimi-k2.5\",\n\t\tname: \"Kimi K2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.6,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.08,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"kimi-k2.6\": {\n\t\tid: \"kimi-k2.6\",\n\t\tname: \"Kimi K2.6\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"thinkingFormat\":\"deepseek\",\"supportsReasoningEffort\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.16,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"openai-completions\">,\n\t\"kimi-k2.7-code\": {\n\t\tid: \"kimi-k2.7-code\",\n\t\tname: \"Kimi K2.7 Code\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.95,\n\t\t\toutput: 4,\n\t\t\tcacheRead: 0.19,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 262144,\n\t} satisfies Model<\"openai-completions\">,\n\t\"mimo-v2.5-free\": {\n\t\tid: \"mimo-v2.5-free\",\n\t\tname: \"MiMo V2.5 Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 200000,\n\t\tmaxTokens: 32000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"minimax-m2.5\": {\n\t\tid: \"minimax-m2.5\",\n\t\tname: \"MiniMax-M2.5\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"minimax-m2.7\": {\n\t\tid: \"minimax-m2.7\",\n\t\tname: \"MiniMax-M2.7\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\",\"supportsLongCacheRetention\":false},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 204800,\n\t\tmaxTokens: 131072,\n\t} satisfies Model<\"openai-completions\">,\n\t\"minimax-m3\": {\n\t\tid: \"minimax-m3\",\n\t\tname: \"MiniMax-M3\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.3,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.06,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 512000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"nemotron-3-ultra-free\": {\n\t\tid: \"nemotron-3-ultra-free\",\n\t\tname: \"Nemotron 3 Ultra Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 1000000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"north-mini-code-free\": {\n\t\tid: \"north-mini-code-free\",\n\t\tname: \"North Mini Code Free\",\n\t\tapi: \"openai-completions\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"supportsStore\":false,\"supportsDeveloperRole\":false,\"maxTokensField\":\"max_tokens\"},\n\t\treasoning: true,\n\t\tinput: [\"text\"],\n\t\tcost: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t},\n\t\tcontextWindow: 256000,\n\t\tmaxTokens: 64000,\n\t} satisfies Model<\"openai-completions\">,\n\t\"qwen3.5-plus\": {\n\t\tid: \"qwen3.5-plus\",\n\t\tname: \"Qwen3.5 Plus\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.2,\n\t\t\toutput: 1.2,\n\t\t\tcacheRead: 0.02,\n\t\t\tcacheWrite: 0.25,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"anthropic-messages\">,\n\t\"qwen3.6-plus\": {\n\t\tid: \"qwen3.6-plus\",\n\t\tname: \"Qwen3.6 Plus\",\n\t\tapi: \"anthropic-messages\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen\",\n\t\treasoning: true,\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 0.5,\n\t\t\toutput: 3,\n\t\t\tcacheRead: 0.05,\n\t\t\tcacheWrite: 0.625,\n\t\t},\n\t\tcontextWindow: 262144,\n\t\tmaxTokens: 65536,\n\t} satisfies Model<\"anthropic-messages\">,\n} as const;\n"]}
@@ -19,6 +19,25 @@ export const OPENCODE_MODELS = {
19
19
  contextWindow: 200000,
20
20
  maxTokens: 32000,
21
21
  },
22
+ "claude-fable-5": {
23
+ id: "claude-fable-5",
24
+ name: "Claude Fable 5",
25
+ api: "anthropic-messages",
26
+ provider: "opencode",
27
+ baseUrl: "https://opencode.ai/zen",
28
+ compat: { "forceAdaptiveThinking": true },
29
+ reasoning: true,
30
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
31
+ input: ["text", "image"],
32
+ cost: {
33
+ input: 10,
34
+ output: 50,
35
+ cacheRead: 1,
36
+ cacheWrite: 12.5,
37
+ },
38
+ contextWindow: 1000000,
39
+ maxTokens: 128000,
40
+ },
22
41
  "claude-haiku-4-5": {
23
42
  id: "claude-haiku-4-5",
24
43
  name: "Claude Haiku 4.5",
@@ -179,6 +198,24 @@ export const OPENCODE_MODELS = {
179
198
  contextWindow: 1000000,
180
199
  maxTokens: 64000,
181
200
  },
201
+ "claude-sonnet-5": {
202
+ id: "claude-sonnet-5",
203
+ name: "Claude Sonnet 5",
204
+ api: "anthropic-messages",
205
+ provider: "opencode",
206
+ baseUrl: "https://opencode.ai/zen",
207
+ compat: { "forceAdaptiveThinking": true },
208
+ reasoning: true,
209
+ input: ["text", "image"],
210
+ cost: {
211
+ input: 2,
212
+ output: 10,
213
+ cacheRead: 0.2,
214
+ cacheWrite: 2.5,
215
+ },
216
+ contextWindow: 1000000,
217
+ maxTokens: 128000,
218
+ },
182
219
  "deepseek-v4-flash": {
183
220
  id: "deepseek-v4-flash",
184
221
  name: "DeepSeek V4 Flash",
@@ -632,6 +669,24 @@ export const OPENCODE_MODELS = {
632
669
  contextWindow: 1050000,
633
670
  maxTokens: 128000,
634
671
  },
672
+ "grok-4.5": {
673
+ id: "grok-4.5",
674
+ name: "Grok 4.5",
675
+ api: "openai-completions",
676
+ provider: "opencode",
677
+ baseUrl: "https://opencode.ai/zen/v1",
678
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
679
+ reasoning: true,
680
+ input: ["text", "image"],
681
+ cost: {
682
+ input: 2,
683
+ output: 6,
684
+ cacheRead: 0.5,
685
+ cacheWrite: 0,
686
+ },
687
+ contextWindow: 500000,
688
+ maxTokens: 500000,
689
+ },
635
690
  "grok-build-0.1": {
636
691
  id: "grok-build-0.1",
637
692
  name: "Grok Build 0.1",
@@ -651,6 +706,24 @@ export const OPENCODE_MODELS = {
651
706
  contextWindow: 256000,
652
707
  maxTokens: 256000,
653
708
  },
709
+ "hy3-free": {
710
+ id: "hy3-free",
711
+ name: "Hy3 Free",
712
+ api: "openai-completions",
713
+ provider: "opencode",
714
+ baseUrl: "https://opencode.ai/zen/v1",
715
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
716
+ reasoning: true,
717
+ input: ["text"],
718
+ cost: {
719
+ input: 0,
720
+ output: 0,
721
+ cacheRead: 0,
722
+ cacheWrite: 0,
723
+ },
724
+ contextWindow: 256000,
725
+ maxTokens: 64000,
726
+ },
654
727
  "kimi-k2.5": {
655
728
  id: "kimi-k2.5",
656
729
  name: "Kimi K2.5",
@@ -687,6 +760,24 @@ export const OPENCODE_MODELS = {
687
760
  contextWindow: 262144,
688
761
  maxTokens: 65536,
689
762
  },
763
+ "kimi-k2.7-code": {
764
+ id: "kimi-k2.7-code",
765
+ name: "Kimi K2.7 Code",
766
+ api: "openai-completions",
767
+ provider: "opencode",
768
+ baseUrl: "https://opencode.ai/zen/v1",
769
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
770
+ reasoning: true,
771
+ input: ["text", "image"],
772
+ cost: {
773
+ input: 0.95,
774
+ output: 4,
775
+ cacheRead: 0.19,
776
+ cacheWrite: 0,
777
+ },
778
+ contextWindow: 262144,
779
+ maxTokens: 262144,
780
+ },
690
781
  "mimo-v2.5-free": {
691
782
  id: "mimo-v2.5-free",
692
783
  name: "MiMo V2.5 Free",
@@ -707,7 +798,7 @@ export const OPENCODE_MODELS = {
707
798
  },
708
799
  "minimax-m2.5": {
709
800
  id: "minimax-m2.5",
710
- name: "MiniMax M2.5",
801
+ name: "MiniMax-M2.5",
711
802
  api: "openai-completions",
712
803
  provider: "opencode",
713
804
  baseUrl: "https://opencode.ai/zen/v1",
@@ -725,7 +816,7 @@ export const OPENCODE_MODELS = {
725
816
  },
726
817
  "minimax-m2.7": {
727
818
  id: "minimax-m2.7",
728
- name: "MiniMax M2.7",
819
+ name: "MiniMax-M2.7",
729
820
  api: "openai-completions",
730
821
  provider: "opencode",
731
822
  baseUrl: "https://opencode.ai/zen/v1",
@@ -741,6 +832,24 @@ export const OPENCODE_MODELS = {
741
832
  contextWindow: 204800,
742
833
  maxTokens: 131072,
743
834
  },
835
+ "minimax-m3": {
836
+ id: "minimax-m3",
837
+ name: "MiniMax-M3",
838
+ api: "openai-completions",
839
+ provider: "opencode",
840
+ baseUrl: "https://opencode.ai/zen/v1",
841
+ compat: { "supportsStore": false, "supportsDeveloperRole": false, "maxTokensField": "max_tokens" },
842
+ reasoning: true,
843
+ input: ["text", "image"],
844
+ cost: {
845
+ input: 0.3,
846
+ output: 1.2,
847
+ cacheRead: 0.06,
848
+ cacheWrite: 0,
849
+ },
850
+ contextWindow: 512000,
851
+ maxTokens: 128000,
852
+ },
744
853
  "nemotron-3-ultra-free": {
745
854
  id: "nemotron-3-ultra-free",
746
855
  name: "Nemotron 3 Ultra Free",