@earendil-works/pi-ai 0.80.6 → 0.80.8

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 (252) hide show
  1. package/README.md +79 -24
  2. package/dist/api/anthropic-messages.d.ts.map +1 -1
  3. package/dist/api/anthropic-messages.js +95 -46
  4. package/dist/api/anthropic-messages.js.map +1 -1
  5. package/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  6. package/dist/api/bedrock-converse-stream.js +14 -7
  7. package/dist/api/bedrock-converse-stream.js.map +1 -1
  8. package/dist/api/lazy.d.ts.map +1 -1
  9. package/dist/api/lazy.js +9 -10
  10. package/dist/api/lazy.js.map +1 -1
  11. package/dist/api/openai-codex-responses.d.ts +1 -0
  12. package/dist/api/openai-codex-responses.d.ts.map +1 -1
  13. package/dist/api/openai-codex-responses.js +9 -5
  14. package/dist/api/openai-codex-responses.js.map +1 -1
  15. package/dist/api/openai-completions.d.ts.map +1 -1
  16. package/dist/api/openai-completions.js +12 -3
  17. package/dist/api/openai-completions.js.map +1 -1
  18. package/dist/api/openai-responses-shared.d.ts +3 -1
  19. package/dist/api/openai-responses-shared.d.ts.map +1 -1
  20. package/dist/api/openai-responses-shared.js +51 -0
  21. package/dist/api/openai-responses-shared.js.map +1 -1
  22. package/dist/api/openai-responses.d.ts +1 -0
  23. package/dist/api/openai-responses.d.ts.map +1 -1
  24. package/dist/api/openai-responses.js +26 -8
  25. package/dist/api/openai-responses.js.map +1 -1
  26. package/dist/api/pi-messages.d.ts +97 -0
  27. package/dist/api/pi-messages.d.ts.map +1 -0
  28. package/dist/api/pi-messages.js +309 -0
  29. package/dist/api/pi-messages.js.map +1 -0
  30. package/dist/api/pi-messages.lazy.d.ts +3 -0
  31. package/dist/api/pi-messages.lazy.d.ts.map +1 -0
  32. package/dist/api/pi-messages.lazy.js +3 -0
  33. package/dist/api/pi-messages.lazy.js.map +1 -0
  34. package/dist/auth/credential-store.d.ts +2 -1
  35. package/dist/auth/credential-store.d.ts.map +1 -1
  36. package/dist/auth/credential-store.js +3 -0
  37. package/dist/auth/credential-store.js.map +1 -1
  38. package/dist/auth/helpers.d.ts.map +1 -1
  39. package/dist/auth/helpers.js +3 -3
  40. package/dist/auth/helpers.js.map +1 -1
  41. package/dist/auth/oauth/anthropic.d.ts +9 -0
  42. package/dist/auth/oauth/anthropic.d.ts.map +1 -0
  43. package/dist/{utils → auth}/oauth/anthropic.js +51 -116
  44. package/dist/auth/oauth/anthropic.js.map +1 -0
  45. package/dist/auth/oauth/device-code.d.ts.map +1 -0
  46. package/dist/auth/oauth/device-code.js.map +1 -0
  47. package/dist/auth/oauth/github-copilot.d.ts +6 -0
  48. package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
  49. package/dist/{utils → auth}/oauth/github-copilot.js +18 -77
  50. package/dist/auth/oauth/github-copilot.js.map +1 -0
  51. package/dist/auth/oauth/load.d.ts +23 -0
  52. package/dist/auth/oauth/load.d.ts.map +1 -0
  53. package/dist/auth/oauth/load.js +49 -0
  54. package/dist/auth/oauth/load.js.map +1 -0
  55. package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
  56. package/dist/auth/oauth/oauth-page.js.map +1 -0
  57. package/dist/auth/oauth/openai-codex.d.ts +9 -0
  58. package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
  59. package/dist/{utils → auth}/oauth/openai-codex.js +61 -155
  60. package/dist/auth/oauth/openai-codex.js.map +1 -0
  61. package/dist/auth/oauth/pkce.d.ts.map +1 -0
  62. package/dist/auth/oauth/pkce.js.map +1 -0
  63. package/dist/auth/oauth/radius.d.ts +16 -0
  64. package/dist/auth/oauth/radius.d.ts.map +1 -0
  65. package/dist/auth/oauth/radius.js +318 -0
  66. package/dist/auth/oauth/radius.js.map +1 -0
  67. package/dist/auth/oauth/xai.d.ts +6 -0
  68. package/dist/auth/oauth/xai.d.ts.map +1 -0
  69. package/dist/auth/oauth/xai.js +184 -0
  70. package/dist/auth/oauth/xai.js.map +1 -0
  71. package/dist/auth/resolve.d.ts +2 -4
  72. package/dist/auth/resolve.d.ts.map +1 -1
  73. package/dist/auth/resolve.js +9 -7
  74. package/dist/auth/resolve.js.map +1 -1
  75. package/dist/auth/types.d.ts +47 -10
  76. package/dist/auth/types.d.ts.map +1 -1
  77. package/dist/auth/types.js.map +1 -1
  78. package/dist/bun-oauth.d.ts +3 -0
  79. package/dist/bun-oauth.d.ts.map +1 -0
  80. package/dist/bun-oauth.js +17 -0
  81. package/dist/bun-oauth.js.map +1 -0
  82. package/dist/cli.d.ts.map +1 -1
  83. package/dist/cli.js +58 -76
  84. package/dist/cli.js.map +1 -1
  85. package/dist/compat/extension-oauth-types.d.ts +39 -0
  86. package/dist/compat/extension-oauth-types.d.ts.map +1 -0
  87. package/dist/compat/extension-oauth-types.js +2 -0
  88. package/dist/compat/extension-oauth-types.js.map +1 -0
  89. package/dist/compat.d.ts +2 -0
  90. package/dist/compat.d.ts.map +1 -1
  91. package/dist/compat.js +25 -8
  92. package/dist/compat.js.map +1 -1
  93. package/dist/env-api-keys.d.ts.map +1 -1
  94. package/dist/env-api-keys.js +1 -0
  95. package/dist/env-api-keys.js.map +1 -1
  96. package/dist/images-models.d.ts +4 -2
  97. package/dist/images-models.d.ts.map +1 -1
  98. package/dist/images-models.js +5 -4
  99. package/dist/images-models.js.map +1 -1
  100. package/dist/index.d.ts +3 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +1 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/models-store.d.ts +25 -0
  105. package/dist/models-store.d.ts.map +1 -0
  106. package/dist/models-store.js +14 -0
  107. package/dist/models-store.js.map +1 -0
  108. package/dist/models.d.ts +66 -30
  109. package/dist/models.d.ts.map +1 -1
  110. package/dist/models.generated.d.ts +570 -163
  111. package/dist/models.generated.d.ts.map +1 -1
  112. package/dist/models.js +214 -29
  113. package/dist/models.js.map +1 -1
  114. package/dist/oauth.d.ts +2 -1
  115. package/dist/oauth.d.ts.map +1 -1
  116. package/dist/oauth.js +1 -1
  117. package/dist/oauth.js.map +1 -1
  118. package/dist/providers/all.d.ts +11 -6
  119. package/dist/providers/all.d.ts.map +1 -1
  120. package/dist/providers/all.js +3 -0
  121. package/dist/providers/all.js.map +1 -1
  122. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  123. package/dist/providers/amazon-bedrock.js +51 -6
  124. package/dist/providers/amazon-bedrock.js.map +1 -1
  125. package/dist/providers/amazon-bedrock.models.d.ts +60 -0
  126. package/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  127. package/dist/providers/amazon-bedrock.models.js +54 -0
  128. package/dist/providers/amazon-bedrock.models.js.map +1 -1
  129. package/dist/providers/anthropic.d.ts.map +1 -1
  130. package/dist/providers/anthropic.js +1 -1
  131. package/dist/providers/anthropic.js.map +1 -1
  132. package/dist/providers/azure-openai-responses.models.d.ts +17 -0
  133. package/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
  134. package/dist/providers/azure-openai-responses.models.js +17 -0
  135. package/dist/providers/azure-openai-responses.models.js.map +1 -1
  136. package/dist/providers/cerebras.models.d.ts.map +1 -1
  137. package/dist/providers/cerebras.models.js +1 -1
  138. package/dist/providers/cerebras.models.js.map +1 -1
  139. package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
  140. package/dist/providers/cloudflare-ai-gateway.js +4 -3
  141. package/dist/providers/cloudflare-ai-gateway.js.map +1 -1
  142. package/dist/providers/cloudflare-ai-gateway.models.d.ts +92 -0
  143. package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -1
  144. package/dist/providers/cloudflare-ai-gateway.models.js +72 -0
  145. package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -1
  146. package/dist/providers/cloudflare-auth.d.ts.map +1 -1
  147. package/dist/providers/cloudflare-auth.js +22 -26
  148. package/dist/providers/cloudflare-auth.js.map +1 -1
  149. package/dist/providers/cloudflare-stream.d.ts +8 -0
  150. package/dist/providers/cloudflare-stream.d.ts.map +1 -0
  151. package/dist/providers/cloudflare-stream.js +21 -0
  152. package/dist/providers/cloudflare-stream.js.map +1 -0
  153. package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -1
  154. package/dist/providers/cloudflare-workers-ai.js +2 -1
  155. package/dist/providers/cloudflare-workers-ai.js.map +1 -1
  156. package/dist/providers/github-copilot.d.ts.map +1 -1
  157. package/dist/providers/github-copilot.js +11 -1
  158. package/dist/providers/github-copilot.js.map +1 -1
  159. package/dist/providers/github-copilot.models.d.ts +93 -6
  160. package/dist/providers/github-copilot.models.d.ts.map +1 -1
  161. package/dist/providers/github-copilot.models.js +60 -3
  162. package/dist/providers/github-copilot.models.js.map +1 -1
  163. package/dist/providers/google-vertex.d.ts.map +1 -1
  164. package/dist/providers/google-vertex.js +56 -5
  165. package/dist/providers/google-vertex.js.map +1 -1
  166. package/dist/providers/kimi-coding.models.d.ts +20 -0
  167. package/dist/providers/kimi-coding.models.d.ts.map +1 -1
  168. package/dist/providers/kimi-coding.models.js +18 -0
  169. package/dist/providers/kimi-coding.models.js.map +1 -1
  170. package/dist/providers/openai-codex.d.ts.map +1 -1
  171. package/dist/providers/openai-codex.js +1 -1
  172. package/dist/providers/openai-codex.js.map +1 -1
  173. package/dist/providers/openai-codex.models.d.ts +18 -0
  174. package/dist/providers/openai-codex.models.d.ts.map +1 -1
  175. package/dist/providers/openai-codex.models.js +6 -0
  176. package/dist/providers/openai-codex.models.js.map +1 -1
  177. package/dist/providers/openai.models.d.ts +38 -0
  178. package/dist/providers/openai.models.d.ts.map +1 -1
  179. package/dist/providers/openai.models.js +24 -0
  180. package/dist/providers/openai.models.js.map +1 -1
  181. package/dist/providers/opencode.models.d.ts +123 -0
  182. package/dist/providers/opencode.models.d.ts.map +1 -1
  183. package/dist/providers/opencode.models.js +74 -1
  184. package/dist/providers/opencode.models.js.map +1 -1
  185. package/dist/providers/openrouter.models.d.ts +28 -43
  186. package/dist/providers/openrouter.models.d.ts.map +1 -1
  187. package/dist/providers/openrouter.models.js +186 -203
  188. package/dist/providers/openrouter.models.js.map +1 -1
  189. package/dist/providers/radius-config.d.ts +26 -0
  190. package/dist/providers/radius-config.d.ts.map +1 -0
  191. package/dist/providers/radius-config.js +59 -0
  192. package/dist/providers/radius-config.js.map +1 -0
  193. package/dist/providers/radius.d.ts +9 -0
  194. package/dist/providers/radius.d.ts.map +1 -0
  195. package/dist/providers/radius.js +54 -0
  196. package/dist/providers/radius.js.map +1 -0
  197. package/dist/providers/vercel-ai-gateway.models.d.ts +71 -106
  198. package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
  199. package/dist/providers/vercel-ai-gateway.models.js +89 -136
  200. package/dist/providers/vercel-ai-gateway.models.js.map +1 -1
  201. package/dist/providers/xai.d.ts +1 -1
  202. package/dist/providers/xai.d.ts.map +1 -1
  203. package/dist/providers/xai.js +11 -3
  204. package/dist/providers/xai.js.map +1 -1
  205. package/dist/providers/xai.models.d.ts +6 -4
  206. package/dist/providers/xai.models.d.ts.map +1 -1
  207. package/dist/providers/xai.models.js +3 -2
  208. package/dist/providers/xai.models.js.map +1 -1
  209. package/dist/types.d.ts +25 -6
  210. package/dist/types.d.ts.map +1 -1
  211. package/dist/types.js.map +1 -1
  212. package/dist/utils/deferred-tools.d.ts +9 -0
  213. package/dist/utils/deferred-tools.d.ts.map +1 -0
  214. package/dist/utils/deferred-tools.js +36 -0
  215. package/dist/utils/deferred-tools.js.map +1 -0
  216. package/dist/utils/estimate.d.ts.map +1 -1
  217. package/dist/utils/estimate.js +18 -5
  218. package/dist/utils/estimate.js.map +1 -1
  219. package/package.json +6 -1
  220. package/dist/utils/oauth/anthropic.d.ts +0 -27
  221. package/dist/utils/oauth/anthropic.d.ts.map +0 -1
  222. package/dist/utils/oauth/anthropic.js.map +0 -1
  223. package/dist/utils/oauth/device-code.d.ts.map +0 -1
  224. package/dist/utils/oauth/device-code.js.map +0 -1
  225. package/dist/utils/oauth/github-copilot.d.ts +0 -32
  226. package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
  227. package/dist/utils/oauth/github-copilot.js.map +0 -1
  228. package/dist/utils/oauth/index.d.ts +0 -58
  229. package/dist/utils/oauth/index.d.ts.map +0 -1
  230. package/dist/utils/oauth/index.js +0 -122
  231. package/dist/utils/oauth/index.js.map +0 -1
  232. package/dist/utils/oauth/load.d.ts +0 -5
  233. package/dist/utils/oauth/load.d.ts.map +0 -1
  234. package/dist/utils/oauth/load.js +0 -22
  235. package/dist/utils/oauth/load.js.map +0 -1
  236. package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
  237. package/dist/utils/oauth/oauth-page.js.map +0 -1
  238. package/dist/utils/oauth/openai-codex.d.ts +0 -45
  239. package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
  240. package/dist/utils/oauth/openai-codex.js.map +0 -1
  241. package/dist/utils/oauth/pkce.d.ts.map +0 -1
  242. package/dist/utils/oauth/pkce.js.map +0 -1
  243. package/dist/utils/oauth/types.d.ts +0 -64
  244. package/dist/utils/oauth/types.d.ts.map +0 -1
  245. package/dist/utils/oauth/types.js +0 -2
  246. package/dist/utils/oauth/types.js.map +0 -1
  247. /package/dist/{utils → auth}/oauth/device-code.d.ts +0 -0
  248. /package/dist/{utils → auth}/oauth/device-code.js +0 -0
  249. /package/dist/{utils → auth}/oauth/oauth-page.d.ts +0 -0
  250. /package/dist/{utils → auth}/oauth/oauth-page.js +0 -0
  251. /package/dist/{utils → auth}/oauth/pkce.d.ts +0 -0
  252. /package/dist/{utils → auth}/oauth/pkce.js +0 -0
@@ -479,6 +479,9 @@ export declare const OPENCODE_MODELS: {
479
479
  api: "openai-responses";
480
480
  provider: string;
481
481
  baseUrl: string;
482
+ compat: {
483
+ sessionAffinityFormat: "openai-nosession";
484
+ };
482
485
  reasoning: true;
483
486
  thinkingLevelMap: {
484
487
  off: null;
@@ -499,6 +502,9 @@ export declare const OPENCODE_MODELS: {
499
502
  api: "openai-responses";
500
503
  provider: string;
501
504
  baseUrl: string;
505
+ compat: {
506
+ sessionAffinityFormat: "openai-nosession";
507
+ };
502
508
  reasoning: true;
503
509
  thinkingLevelMap: {
504
510
  off: null;
@@ -519,6 +525,9 @@ export declare const OPENCODE_MODELS: {
519
525
  api: "openai-responses";
520
526
  provider: string;
521
527
  baseUrl: string;
528
+ compat: {
529
+ sessionAffinityFormat: "openai-nosession";
530
+ };
522
531
  reasoning: true;
523
532
  thinkingLevelMap: {
524
533
  off: null;
@@ -539,6 +548,9 @@ export declare const OPENCODE_MODELS: {
539
548
  api: "openai-responses";
540
549
  provider: string;
541
550
  baseUrl: string;
551
+ compat: {
552
+ sessionAffinityFormat: "openai-nosession";
553
+ };
542
554
  reasoning: true;
543
555
  thinkingLevelMap: {
544
556
  off: null;
@@ -559,6 +571,9 @@ export declare const OPENCODE_MODELS: {
559
571
  api: "openai-responses";
560
572
  provider: string;
561
573
  baseUrl: string;
574
+ compat: {
575
+ sessionAffinityFormat: "openai-nosession";
576
+ };
562
577
  reasoning: true;
563
578
  thinkingLevelMap: {
564
579
  off: null;
@@ -579,6 +594,9 @@ export declare const OPENCODE_MODELS: {
579
594
  api: "openai-responses";
580
595
  provider: string;
581
596
  baseUrl: string;
597
+ compat: {
598
+ sessionAffinityFormat: "openai-nosession";
599
+ };
582
600
  reasoning: true;
583
601
  thinkingLevelMap: {
584
602
  off: null;
@@ -599,6 +617,9 @@ export declare const OPENCODE_MODELS: {
599
617
  api: "openai-responses";
600
618
  provider: string;
601
619
  baseUrl: string;
620
+ compat: {
621
+ sessionAffinityFormat: "openai-nosession";
622
+ };
602
623
  reasoning: true;
603
624
  thinkingLevelMap: {
604
625
  off: null;
@@ -619,6 +640,9 @@ export declare const OPENCODE_MODELS: {
619
640
  api: "openai-responses";
620
641
  provider: string;
621
642
  baseUrl: string;
643
+ compat: {
644
+ sessionAffinityFormat: "openai-nosession";
645
+ };
622
646
  reasoning: true;
623
647
  thinkingLevelMap: {
624
648
  off: null;
@@ -640,6 +664,9 @@ export declare const OPENCODE_MODELS: {
640
664
  api: "openai-responses";
641
665
  provider: string;
642
666
  baseUrl: string;
667
+ compat: {
668
+ sessionAffinityFormat: "openai-nosession";
669
+ };
643
670
  reasoning: true;
644
671
  thinkingLevelMap: {
645
672
  off: null;
@@ -661,6 +688,9 @@ export declare const OPENCODE_MODELS: {
661
688
  api: "openai-responses";
662
689
  provider: string;
663
690
  baseUrl: string;
691
+ compat: {
692
+ sessionAffinityFormat: "openai-nosession";
693
+ };
664
694
  reasoning: true;
665
695
  thinkingLevelMap: {
666
696
  off: null;
@@ -682,6 +712,9 @@ export declare const OPENCODE_MODELS: {
682
712
  api: "openai-responses";
683
713
  provider: string;
684
714
  baseUrl: string;
715
+ compat: {
716
+ sessionAffinityFormat: "openai-nosession";
717
+ };
685
718
  reasoning: true;
686
719
  thinkingLevelMap: {
687
720
  off: null;
@@ -703,6 +736,9 @@ export declare const OPENCODE_MODELS: {
703
736
  api: "openai-responses";
704
737
  provider: string;
705
738
  baseUrl: string;
739
+ compat: {
740
+ sessionAffinityFormat: "openai-nosession";
741
+ };
706
742
  reasoning: true;
707
743
  thinkingLevelMap: {
708
744
  off: null;
@@ -724,6 +760,9 @@ export declare const OPENCODE_MODELS: {
724
760
  api: "openai-responses";
725
761
  provider: string;
726
762
  baseUrl: string;
763
+ compat: {
764
+ sessionAffinityFormat: "openai-nosession";
765
+ };
727
766
  reasoning: true;
728
767
  thinkingLevelMap: {
729
768
  off: null;
@@ -745,6 +784,9 @@ export declare const OPENCODE_MODELS: {
745
784
  api: "openai-responses";
746
785
  provider: string;
747
786
  baseUrl: string;
787
+ compat: {
788
+ sessionAffinityFormat: "openai-nosession";
789
+ };
748
790
  reasoning: true;
749
791
  thinkingLevelMap: {
750
792
  off: null;
@@ -766,6 +808,9 @@ export declare const OPENCODE_MODELS: {
766
808
  api: "openai-responses";
767
809
  provider: string;
768
810
  baseUrl: string;
811
+ compat: {
812
+ sessionAffinityFormat: "openai-nosession";
813
+ };
769
814
  reasoning: true;
770
815
  thinkingLevelMap: {
771
816
  off: null;
@@ -787,6 +832,9 @@ export declare const OPENCODE_MODELS: {
787
832
  api: "openai-responses";
788
833
  provider: string;
789
834
  baseUrl: string;
835
+ compat: {
836
+ sessionAffinityFormat: "openai-nosession";
837
+ };
790
838
  reasoning: true;
791
839
  thinkingLevelMap: {
792
840
  off: null;
@@ -804,6 +852,81 @@ export declare const OPENCODE_MODELS: {
804
852
  contextWindow: number;
805
853
  maxTokens: number;
806
854
  };
855
+ readonly "gpt-5.6-luna": {
856
+ id: string;
857
+ name: string;
858
+ api: "openai-responses";
859
+ provider: string;
860
+ baseUrl: string;
861
+ compat: {
862
+ sessionAffinityFormat: "openai-nosession";
863
+ };
864
+ reasoning: true;
865
+ thinkingLevelMap: {
866
+ off: null;
867
+ xhigh: string;
868
+ max: string;
869
+ };
870
+ input: ("image" | "text")[];
871
+ cost: {
872
+ input: number;
873
+ output: number;
874
+ cacheRead: number;
875
+ cacheWrite: number;
876
+ };
877
+ contextWindow: number;
878
+ maxTokens: number;
879
+ };
880
+ readonly "gpt-5.6-sol": {
881
+ id: string;
882
+ name: string;
883
+ api: "openai-responses";
884
+ provider: string;
885
+ baseUrl: string;
886
+ compat: {
887
+ sessionAffinityFormat: "openai-nosession";
888
+ };
889
+ reasoning: true;
890
+ thinkingLevelMap: {
891
+ off: null;
892
+ xhigh: string;
893
+ max: string;
894
+ };
895
+ input: ("image" | "text")[];
896
+ cost: {
897
+ input: number;
898
+ output: number;
899
+ cacheRead: number;
900
+ cacheWrite: number;
901
+ };
902
+ contextWindow: number;
903
+ maxTokens: number;
904
+ };
905
+ readonly "gpt-5.6-terra": {
906
+ id: string;
907
+ name: string;
908
+ api: "openai-responses";
909
+ provider: string;
910
+ baseUrl: string;
911
+ compat: {
912
+ sessionAffinityFormat: "openai-nosession";
913
+ };
914
+ reasoning: true;
915
+ thinkingLevelMap: {
916
+ off: null;
917
+ xhigh: string;
918
+ max: string;
919
+ };
920
+ input: ("image" | "text")[];
921
+ cost: {
922
+ input: number;
923
+ output: number;
924
+ cacheRead: number;
925
+ cacheWrite: number;
926
+ };
927
+ contextWindow: number;
928
+ maxTokens: number;
929
+ };
807
930
  readonly "grok-4.5": {
808
931
  id: string;
809
932
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA05BlB,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\",\"max\":\"max\"},\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: {\"max\":\"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\",\"max\":\"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-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\",\"max\":\"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-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\tthinkingLevelMap: {\"max\":\"max\"},\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\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\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\",\"max\":\"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\",\"max\":\"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\",\"max\":\"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"]}
1
+ {"version":3,"file":"opencode.models.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.models.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAm+BlB,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\",\"max\":\"max\"},\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: {\"max\":\"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\",\"max\":\"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-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\",\"max\":\"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-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\tthinkingLevelMap: {\"max\":\"max\"},\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\tthinkingLevelMap: {\"xhigh\":\"xhigh\",\"max\":\"max\"},\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\",\"max\":\"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\",\"max\":\"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\",\"max\":\"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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\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\"gpt-5.6-luna\": {\n\t\tid: \"gpt-5.6-luna\",\n\t\tname: \"GPT-5.6 Luna\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\n\t\tinput: [\"text\", \"image\"],\n\t\tcost: {\n\t\t\tinput: 1,\n\t\t\toutput: 6,\n\t\t\tcacheRead: 0.1,\n\t\t\tcacheWrite: 1.25,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-sol\": {\n\t\tid: \"gpt-5.6-sol\",\n\t\tname: \"GPT-5.6 Sol\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\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: 6.25,\n\t\t},\n\t\tcontextWindow: 1050000,\n\t\tmaxTokens: 128000,\n\t} satisfies Model<\"openai-responses\">,\n\t\"gpt-5.6-terra\": {\n\t\tid: \"gpt-5.6-terra\",\n\t\tname: \"GPT-5.6 Terra\",\n\t\tapi: \"openai-responses\",\n\t\tprovider: \"opencode\",\n\t\tbaseUrl: \"https://opencode.ai/zen/v1\",\n\t\tcompat: {\"sessionAffinityFormat\":\"openai-nosession\"},\n\t\treasoning: true,\n\t\tthinkingLevelMap: {\"off\":null,\"xhigh\":\"xhigh\",\"max\":\"max\"},\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: 3.125,\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: 190000,\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"]}
@@ -389,6 +389,7 @@ export const OPENCODE_MODELS = {
389
389
  api: "openai-responses",
390
390
  provider: "opencode",
391
391
  baseUrl: "https://opencode.ai/zen/v1",
392
+ compat: { "sessionAffinityFormat": "openai-nosession" },
392
393
  reasoning: true,
393
394
  thinkingLevelMap: { "off": null },
394
395
  input: ["text", "image"],
@@ -407,6 +408,7 @@ export const OPENCODE_MODELS = {
407
408
  api: "openai-responses",
408
409
  provider: "opencode",
409
410
  baseUrl: "https://opencode.ai/zen/v1",
411
+ compat: { "sessionAffinityFormat": "openai-nosession" },
410
412
  reasoning: true,
411
413
  thinkingLevelMap: { "off": null },
412
414
  input: ["text", "image"],
@@ -425,6 +427,7 @@ export const OPENCODE_MODELS = {
425
427
  api: "openai-responses",
426
428
  provider: "opencode",
427
429
  baseUrl: "https://opencode.ai/zen/v1",
430
+ compat: { "sessionAffinityFormat": "openai-nosession" },
428
431
  reasoning: true,
429
432
  thinkingLevelMap: { "off": null },
430
433
  input: ["text", "image"],
@@ -443,6 +446,7 @@ export const OPENCODE_MODELS = {
443
446
  api: "openai-responses",
444
447
  provider: "opencode",
445
448
  baseUrl: "https://opencode.ai/zen/v1",
449
+ compat: { "sessionAffinityFormat": "openai-nosession" },
446
450
  reasoning: true,
447
451
  thinkingLevelMap: { "off": null },
448
452
  input: ["text", "image"],
@@ -461,6 +465,7 @@ export const OPENCODE_MODELS = {
461
465
  api: "openai-responses",
462
466
  provider: "opencode",
463
467
  baseUrl: "https://opencode.ai/zen/v1",
468
+ compat: { "sessionAffinityFormat": "openai-nosession" },
464
469
  reasoning: true,
465
470
  thinkingLevelMap: { "off": null },
466
471
  input: ["text", "image"],
@@ -479,6 +484,7 @@ export const OPENCODE_MODELS = {
479
484
  api: "openai-responses",
480
485
  provider: "opencode",
481
486
  baseUrl: "https://opencode.ai/zen/v1",
487
+ compat: { "sessionAffinityFormat": "openai-nosession" },
482
488
  reasoning: true,
483
489
  thinkingLevelMap: { "off": null },
484
490
  input: ["text", "image"],
@@ -497,6 +503,7 @@ export const OPENCODE_MODELS = {
497
503
  api: "openai-responses",
498
504
  provider: "opencode",
499
505
  baseUrl: "https://opencode.ai/zen/v1",
506
+ compat: { "sessionAffinityFormat": "openai-nosession" },
500
507
  reasoning: true,
501
508
  thinkingLevelMap: { "off": null },
502
509
  input: ["text", "image"],
@@ -515,6 +522,7 @@ export const OPENCODE_MODELS = {
515
522
  api: "openai-responses",
516
523
  provider: "opencode",
517
524
  baseUrl: "https://opencode.ai/zen/v1",
525
+ compat: { "sessionAffinityFormat": "openai-nosession" },
518
526
  reasoning: true,
519
527
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
520
528
  input: ["text", "image"],
@@ -533,6 +541,7 @@ export const OPENCODE_MODELS = {
533
541
  api: "openai-responses",
534
542
  provider: "opencode",
535
543
  baseUrl: "https://opencode.ai/zen/v1",
544
+ compat: { "sessionAffinityFormat": "openai-nosession" },
536
545
  reasoning: true,
537
546
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
538
547
  input: ["text", "image"],
@@ -551,6 +560,7 @@ export const OPENCODE_MODELS = {
551
560
  api: "openai-responses",
552
561
  provider: "opencode",
553
562
  baseUrl: "https://opencode.ai/zen/v1",
563
+ compat: { "sessionAffinityFormat": "openai-nosession" },
554
564
  reasoning: true,
555
565
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
556
566
  input: ["text", "image"],
@@ -569,6 +579,7 @@ export const OPENCODE_MODELS = {
569
579
  api: "openai-responses",
570
580
  provider: "opencode",
571
581
  baseUrl: "https://opencode.ai/zen/v1",
582
+ compat: { "sessionAffinityFormat": "openai-nosession" },
572
583
  reasoning: true,
573
584
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
574
585
  input: ["text", "image"],
@@ -587,6 +598,7 @@ export const OPENCODE_MODELS = {
587
598
  api: "openai-responses",
588
599
  provider: "opencode",
589
600
  baseUrl: "https://opencode.ai/zen/v1",
601
+ compat: { "sessionAffinityFormat": "openai-nosession" },
590
602
  reasoning: true,
591
603
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
592
604
  input: ["text", "image"],
@@ -605,6 +617,7 @@ export const OPENCODE_MODELS = {
605
617
  api: "openai-responses",
606
618
  provider: "opencode",
607
619
  baseUrl: "https://opencode.ai/zen/v1",
620
+ compat: { "sessionAffinityFormat": "openai-nosession" },
608
621
  reasoning: true,
609
622
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
610
623
  input: ["text", "image"],
@@ -623,6 +636,7 @@ export const OPENCODE_MODELS = {
623
636
  api: "openai-responses",
624
637
  provider: "opencode",
625
638
  baseUrl: "https://opencode.ai/zen/v1",
639
+ compat: { "sessionAffinityFormat": "openai-nosession" },
626
640
  reasoning: true,
627
641
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
628
642
  input: ["text", "image"],
@@ -641,6 +655,7 @@ export const OPENCODE_MODELS = {
641
655
  api: "openai-responses",
642
656
  provider: "opencode",
643
657
  baseUrl: "https://opencode.ai/zen/v1",
658
+ compat: { "sessionAffinityFormat": "openai-nosession" },
644
659
  reasoning: true,
645
660
  thinkingLevelMap: { "off": null, "xhigh": "xhigh" },
646
661
  input: ["text", "image"],
@@ -659,6 +674,7 @@ export const OPENCODE_MODELS = {
659
674
  api: "openai-responses",
660
675
  provider: "opencode",
661
676
  baseUrl: "https://opencode.ai/zen/v1",
677
+ compat: { "sessionAffinityFormat": "openai-nosession" },
662
678
  reasoning: true,
663
679
  thinkingLevelMap: { "off": null, "xhigh": "xhigh", "minimal": null, "low": null },
664
680
  input: ["text", "image"],
@@ -671,6 +687,63 @@ export const OPENCODE_MODELS = {
671
687
  contextWindow: 1050000,
672
688
  maxTokens: 128000,
673
689
  },
690
+ "gpt-5.6-luna": {
691
+ id: "gpt-5.6-luna",
692
+ name: "GPT-5.6 Luna",
693
+ api: "openai-responses",
694
+ provider: "opencode",
695
+ baseUrl: "https://opencode.ai/zen/v1",
696
+ compat: { "sessionAffinityFormat": "openai-nosession" },
697
+ reasoning: true,
698
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
699
+ input: ["text", "image"],
700
+ cost: {
701
+ input: 1,
702
+ output: 6,
703
+ cacheRead: 0.1,
704
+ cacheWrite: 1.25,
705
+ },
706
+ contextWindow: 1050000,
707
+ maxTokens: 128000,
708
+ },
709
+ "gpt-5.6-sol": {
710
+ id: "gpt-5.6-sol",
711
+ name: "GPT-5.6 Sol",
712
+ api: "openai-responses",
713
+ provider: "opencode",
714
+ baseUrl: "https://opencode.ai/zen/v1",
715
+ compat: { "sessionAffinityFormat": "openai-nosession" },
716
+ reasoning: true,
717
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
718
+ input: ["text", "image"],
719
+ cost: {
720
+ input: 5,
721
+ output: 30,
722
+ cacheRead: 0.5,
723
+ cacheWrite: 6.25,
724
+ },
725
+ contextWindow: 1050000,
726
+ maxTokens: 128000,
727
+ },
728
+ "gpt-5.6-terra": {
729
+ id: "gpt-5.6-terra",
730
+ name: "GPT-5.6 Terra",
731
+ api: "openai-responses",
732
+ provider: "opencode",
733
+ baseUrl: "https://opencode.ai/zen/v1",
734
+ compat: { "sessionAffinityFormat": "openai-nosession" },
735
+ reasoning: true,
736
+ thinkingLevelMap: { "off": null, "xhigh": "xhigh", "max": "max" },
737
+ input: ["text", "image"],
738
+ cost: {
739
+ input: 2.5,
740
+ output: 15,
741
+ cacheRead: 0.25,
742
+ cacheWrite: 3.125,
743
+ },
744
+ contextWindow: 1050000,
745
+ maxTokens: 128000,
746
+ },
674
747
  "grok-4.5": {
675
748
  id: "grok-4.5",
676
749
  name: "Grok 4.5",
@@ -723,7 +796,7 @@ export const OPENCODE_MODELS = {
723
796
  cacheRead: 0,
724
797
  cacheWrite: 0,
725
798
  },
726
- contextWindow: 256000,
799
+ contextWindow: 190000,
727
800
  maxTokens: 64000,
728
801
  },
729
802
  "kimi-k2.5": {