@code-yeongyu/senpi 2026.9.2-4 → 2026.9.3-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/core/agent-session.d.ts +2 -5
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +32 -29
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  7. package/dist/core/dynamic-prompt/build.js +2 -5
  8. package/dist/core/dynamic-prompt/build.js.map +1 -1
  9. package/dist/core/dynamic-prompt/index.d.ts +1 -2
  10. package/dist/core/dynamic-prompt/index.d.ts.map +1 -1
  11. package/dist/core/dynamic-prompt/index.js +1 -2
  12. package/dist/core/dynamic-prompt/index.js.map +1 -1
  13. package/dist/core/dynamic-prompt/intent-gate.d.ts.map +1 -1
  14. package/dist/core/dynamic-prompt/intent-gate.js +9 -24
  15. package/dist/core/dynamic-prompt/intent-gate.js.map +1 -1
  16. package/dist/core/dynamic-prompt/policies.d.ts.map +1 -1
  17. package/dist/core/dynamic-prompt/policies.js +3 -7
  18. package/dist/core/dynamic-prompt/policies.js.map +1 -1
  19. package/dist/core/dynamic-prompt/style.d.ts.map +1 -1
  20. package/dist/core/dynamic-prompt/style.js +6 -8
  21. package/dist/core/dynamic-prompt/style.js.map +1 -1
  22. package/dist/core/dynamic-prompt/verification.js +1 -1
  23. package/dist/core/dynamic-prompt/verification.js.map +1 -1
  24. package/dist/core/dynamic-prompt/working-task.d.ts +2 -0
  25. package/dist/core/dynamic-prompt/working-task.d.ts.map +1 -0
  26. package/dist/core/dynamic-prompt/working-task.js +10 -0
  27. package/dist/core/dynamic-prompt/working-task.js.map +1 -0
  28. package/dist/core/extensions/builtin/bash-timeout/index.d.ts +1 -1
  29. package/dist/core/extensions/builtin/bash-timeout/index.d.ts.map +1 -1
  30. package/dist/core/extensions/builtin/bash-timeout/index.js +7 -1
  31. package/dist/core/extensions/builtin/bash-timeout/index.js.map +1 -1
  32. package/dist/core/extensions/builtin/bash-timeout/timeout.d.ts +11 -7
  33. package/dist/core/extensions/builtin/bash-timeout/timeout.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/bash-timeout/timeout.js +4 -8
  35. package/dist/core/extensions/builtin/bash-timeout/timeout.js.map +1 -1
  36. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.d.ts.map +1 -1
  37. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.js +9 -17
  38. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.js.map +1 -1
  39. package/dist/core/extensions/builtin/claude-sdk-oauth/content-blocks.d.ts +3 -0
  40. package/dist/core/extensions/builtin/claude-sdk-oauth/content-blocks.d.ts.map +1 -0
  41. package/dist/core/extensions/builtin/claude-sdk-oauth/content-blocks.js +80 -0
  42. package/dist/core/extensions/builtin/claude-sdk-oauth/content-blocks.js.map +1 -0
  43. package/dist/core/extensions/builtin/claude-sdk-oauth/errors.d.ts +17 -0
  44. package/dist/core/extensions/builtin/claude-sdk-oauth/errors.d.ts.map +1 -1
  45. package/dist/core/extensions/builtin/claude-sdk-oauth/errors.js +51 -1
  46. package/dist/core/extensions/builtin/claude-sdk-oauth/errors.js.map +1 -1
  47. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts +1 -0
  48. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts.map +1 -1
  49. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.js +11 -0
  50. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.js.map +1 -1
  51. package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.d.ts.map +1 -1
  52. package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js +6 -1
  53. package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -1
  54. package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.d.ts.map +1 -1
  55. package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.js +2 -23
  56. package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.js.map +1 -1
  57. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts +2 -0
  58. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts.map +1 -1
  59. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js +15 -1
  60. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js.map +1 -1
  61. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts +1 -1
  62. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts.map +1 -1
  63. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js +1 -0
  64. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js.map +1 -1
  65. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts +6 -1
  66. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts.map +1 -1
  67. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js +1 -0
  68. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js.map +1 -1
  69. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts.map +1 -1
  70. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js +19 -3
  71. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js.map +1 -1
  72. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts +1 -0
  73. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts.map +1 -1
  74. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js +1 -0
  75. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js.map +1 -1
  76. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts.map +1 -1
  77. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js +7 -14
  78. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -1
  79. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.d.ts.map +1 -1
  80. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.js +23 -6
  81. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.js.map +1 -1
  82. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts.map +1 -1
  83. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js +4 -2
  84. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js.map +1 -1
  85. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.d.ts.map +1 -1
  86. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js +13 -6
  87. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js.map +1 -1
  88. package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts +1 -1
  89. package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts.map +1 -1
  90. package/dist/core/extensions/builtin/config-reload/watch-event-source.js +27 -9
  91. package/dist/core/extensions/builtin/config-reload/watch-event-source.js.map +1 -1
  92. package/dist/core/extensions/builtin/eval-only-routing.d.ts +10 -0
  93. package/dist/core/extensions/builtin/eval-only-routing.d.ts.map +1 -0
  94. package/dist/core/extensions/builtin/eval-only-routing.js +16 -0
  95. package/dist/core/extensions/builtin/eval-only-routing.js.map +1 -0
  96. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts.map +1 -1
  97. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js +1 -3
  98. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js.map +1 -1
  99. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts.map +1 -1
  100. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js +1 -11
  101. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js.map +1 -1
  102. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js +2 -2
  103. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js.map +1 -1
  104. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js +3 -3
  105. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-8.js.map +1 -1
  106. package/dist/core/extensions/builtin/prompt-preset/claude-opus-5.d.ts.map +1 -1
  107. package/dist/core/extensions/builtin/prompt-preset/claude-opus-5.js +56 -43
  108. package/dist/core/extensions/builtin/prompt-preset/claude-opus-5.js.map +1 -1
  109. package/dist/core/extensions/builtin/prompt-preset/execution-tooling.d.ts +4 -15
  110. package/dist/core/extensions/builtin/prompt-preset/execution-tooling.d.ts.map +1 -1
  111. package/dist/core/extensions/builtin/prompt-preset/execution-tooling.js +12 -21
  112. package/dist/core/extensions/builtin/prompt-preset/execution-tooling.js.map +1 -1
  113. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.d.ts +1 -1
  114. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.d.ts.map +1 -1
  115. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js +2 -11
  116. package/dist/core/extensions/builtin/prompt-preset/glm-5-2.js.map +1 -1
  117. package/dist/core/extensions/builtin/prompt-preset/glm-5-3.d.ts +1 -1
  118. package/dist/core/extensions/builtin/prompt-preset/glm-5-3.d.ts.map +1 -1
  119. package/dist/core/extensions/builtin/prompt-preset/glm-5-3.js +2 -11
  120. package/dist/core/extensions/builtin/prompt-preset/glm-5-3.js.map +1 -1
  121. package/dist/core/extensions/builtin/prompt-preset/glm-5.d.ts +4 -0
  122. package/dist/core/extensions/builtin/prompt-preset/glm-5.d.ts.map +1 -0
  123. package/dist/core/extensions/builtin/prompt-preset/glm-5.js +16 -0
  124. package/dist/core/extensions/builtin/prompt-preset/glm-5.js.map +1 -0
  125. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts +1 -5
  126. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
  127. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +1 -6
  128. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  129. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.d.ts.map +1 -1
  130. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js +60 -76
  131. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js.map +1 -1
  132. package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
  133. package/dist/core/extensions/builtin/terminal/extension.js +13 -5
  134. package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
  135. package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts +4 -3
  136. package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -1
  137. package/dist/core/extensions/builtin/terminal/monitor-notify.js +18 -18
  138. package/dist/core/extensions/builtin/terminal/monitor-notify.js.map +1 -1
  139. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +7 -0
  140. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
  141. package/dist/core/extensions/builtin/terminal/monitor-registry.js +37 -8
  142. package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
  143. package/dist/core/extensions/builtin/terminal/monitor-status.js +1 -1
  144. package/dist/core/extensions/builtin/terminal/monitor-status.js.map +1 -1
  145. package/dist/core/extensions/builtin/terminal/prompt.d.ts +13 -2
  146. package/dist/core/extensions/builtin/terminal/prompt.d.ts.map +1 -1
  147. package/dist/core/extensions/builtin/terminal/prompt.js +31 -16
  148. package/dist/core/extensions/builtin/terminal/prompt.js.map +1 -1
  149. package/dist/core/extensions/builtin/terminal/tools/bash-output.d.ts.map +1 -1
  150. package/dist/core/extensions/builtin/terminal/tools/bash-output.js +14 -2
  151. package/dist/core/extensions/builtin/terminal/tools/bash-output.js.map +1 -1
  152. package/dist/core/extensions/builtin/terminal/tools/context.d.ts +2 -0
  153. package/dist/core/extensions/builtin/terminal/tools/context.d.ts.map +1 -1
  154. package/dist/core/extensions/builtin/terminal/tools/context.js.map +1 -1
  155. package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts.map +1 -1
  156. package/dist/core/extensions/builtin/terminal/tools/monitor.js +27 -10
  157. package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -1
  158. package/dist/core/settings-manager.d.ts +0 -4
  159. package/dist/core/settings-manager.d.ts.map +1 -1
  160. package/dist/core/settings-manager.js +0 -6
  161. package/dist/core/settings-manager.js.map +1 -1
  162. package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
  163. package/dist/modes/rpc/connection-handler.js +13 -10
  164. package/dist/modes/rpc/connection-handler.js.map +1 -1
  165. package/dist/modes/rpc/host-ensure.d.ts +6 -0
  166. package/dist/modes/rpc/host-ensure.d.ts.map +1 -1
  167. package/dist/modes/rpc/host-ensure.js +15 -4
  168. package/dist/modes/rpc/host-ensure.js.map +1 -1
  169. package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -1
  170. package/dist/modes/rpc/host-lifecycle.js +16 -4
  171. package/dist/modes/rpc/host-lifecycle.js.map +1 -1
  172. package/dist/modes/rpc/login-prompts.d.ts +24 -0
  173. package/dist/modes/rpc/login-prompts.d.ts.map +1 -0
  174. package/dist/modes/rpc/login-prompts.js +44 -0
  175. package/dist/modes/rpc/login-prompts.js.map +1 -0
  176. package/dist/modes/rpc/multi-session-host.d.ts +3 -0
  177. package/dist/modes/rpc/multi-session-host.d.ts.map +1 -1
  178. package/dist/modes/rpc/multi-session-host.js +3 -0
  179. package/dist/modes/rpc/multi-session-host.js.map +1 -1
  180. package/dist/modes/rpc/rpc-mode.d.ts +1 -1
  181. package/dist/modes/rpc/rpc-mode.js +1 -1
  182. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  183. package/dist/modes/rpc/session-command-router.d.ts +22 -0
  184. package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
  185. package/dist/modes/rpc/session-command-router.js +132 -94
  186. package/dist/modes/rpc/session-command-router.js.map +1 -1
  187. package/dist/modes/rpc/session-event-fanout.d.ts +3 -1
  188. package/dist/modes/rpc/session-event-fanout.d.ts.map +1 -1
  189. package/dist/modes/rpc/session-event-fanout.js +14 -1
  190. package/dist/modes/rpc/session-event-fanout.js.map +1 -1
  191. package/dist/modes/rpc/session-event-writer.d.ts +2 -0
  192. package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
  193. package/dist/modes/rpc/session-event-writer.js +16 -2
  194. package/dist/modes/rpc/session-event-writer.js.map +1 -1
  195. package/dist/modes/rpc/session-registry.d.ts +9 -8
  196. package/dist/modes/rpc/session-registry.d.ts.map +1 -1
  197. package/dist/modes/rpc/session-registry.js +14 -42
  198. package/dist/modes/rpc/session-registry.js.map +1 -1
  199. package/dist/modes/rpc/session-teardown.d.ts +12 -0
  200. package/dist/modes/rpc/session-teardown.d.ts.map +1 -0
  201. package/dist/modes/rpc/session-teardown.js +117 -0
  202. package/dist/modes/rpc/session-teardown.js.map +1 -0
  203. package/docs/rpc.md +38 -5
  204. package/docs/settings.md +4 -26
  205. package/docs/terminal-tools.md +26 -6
  206. package/docs/windows.md +1 -1
  207. package/node_modules/@anthropic-ai/claude-agent-sdk/bridge.d.ts +18 -1
  208. package/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +155 -106
  209. package/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +144 -83
  210. package/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +21 -32
  211. package/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +25 -36
  212. package/node_modules/@anthropic-ai/claude-agent-sdk/package.json +2 -2
  213. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk-tools.d.ts +93 -31
  214. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk.d.ts +473 -31
  215. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +140 -93
  216. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +26 -0
  217. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  218. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +17 -0
  219. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-runtime.js +6 -0
  220. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-shell-capture.d.ts +10 -0
  221. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-shell-capture.js +126 -0
  222. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +14 -6
  223. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +2 -0
  224. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +1 -0
  225. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  226. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts +5 -0
  227. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts.map +1 -1
  228. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js +8 -0
  229. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js.map +1 -1
  230. package/node_modules/@earendil-works/pi-ai/dist/compat/extension-oauth-types.d.ts +8 -0
  231. package/node_modules/@earendil-works/pi-ai/dist/compat/extension-oauth-types.d.ts.map +1 -1
  232. package/node_modules/@earendil-works/pi-ai/dist/compat/extension-oauth-types.js.map +1 -1
  233. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  234. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  235. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json +1 -1
  236. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -1
  237. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  238. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  239. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  240. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  241. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  242. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  243. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  244. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  245. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  246. package/package.json +16 -16
  247. package/dist/core/dynamic-prompt/exploration.d.ts +0 -2
  248. package/dist/core/dynamic-prompt/exploration.d.ts.map +0 -1
  249. package/dist/core/dynamic-prompt/exploration.js +0 -6
  250. package/dist/core/dynamic-prompt/exploration.js.map +0 -1
  251. package/dist/core/dynamic-prompt/parallel-tools.d.ts +0 -2
  252. package/dist/core/dynamic-prompt/parallel-tools.d.ts.map +0 -1
  253. package/dist/core/dynamic-prompt/parallel-tools.js +0 -8
  254. package/dist/core/dynamic-prompt/parallel-tools.js.map +0 -1
@@ -1 +1 @@
1
- {"anthropic-messages":{"claude-fable-5":{"id":"claude-fable-5","name":"Claude Fable 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"supportsDisabledThinking":false,"forceAdaptiveThinking":true}},"claude-fable-5-1":{"id":"claude-fable-5-1","name":"Claude Fable 5.1","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":0.25,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"supportsDisabledThinking":false,"forceAdaptiveThinking":true}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-opus-4-7":{"id":"claude-opus-4-7","name":"Claude Opus 4.7","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-opus-4-8":{"id":"claude-opus-4-8","name":"Claude Opus 4.8","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-opus-5":{"id":"claude-opus-5","name":"Claude Opus 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-sonnet-5":{"id":"claude-sonnet-5","name":"Claude Sonnet 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"contextWindow":262144,"maxTokens":65536},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0.625},"contextWindow":262144,"maxTokens":65536}},"google-generative-ai":{"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}},"openai-completions":{"big-pickle":{"id":"big-pickle","name":"Big Pickle","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.14,"output":0.28,"cacheRead":0.028,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.74,"output":3.84,"cacheRead":0.145,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"}},"glm-5":{"id":"glm-5","name":"GLM-5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1,"output":3.2,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0.08,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"deepseek","supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":262144},"kimi-k3":{"id":"kimi-k3","name":"Kimi K3","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"}},"ling-3.0-flash-fin-free":{"id":"ling-3.0-flash-fin-free","name":"Ling 3.0 Flash Fin Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":32768},"mimo-v2.5-free":{"id":"mimo-v2.5-free","name":"MiMo V2.5 Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax-M2.7","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":204800,"maxTokens":131072},"minimax-m3":{"id":"minimax-m3","name":"MiniMax-M3","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":512000,"maxTokens":128000},"nemotron-3-ultra-free":{"id":"nemotron-3-ultra-free","name":"Nemotron 3 Ultra Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":128000},"nemotron-3.5-lightning-free":{"id":"nemotron-3.5-lightning-free","name":"Nemotron 3.5 Lightning Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":262144}},"openai-responses":{"gpt-5":{"id":"gpt-5","name":"GPT-5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.05,"output":0.4,"cacheRead":0.005,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":2,"cacheRead":0.025,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0.075,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.25,"cacheRead":0.02,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.5-pro":{"id":"gpt-5.5-pro","name":"GPT-5.5 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.6-luna":{"id":"gpt-5.6-luna","name":"GPT-5.6 Luna","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol (50% Off)","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":3.125},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"grok-4.5":{"id":"grok-4.5","name":"Grok 4.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.3,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"grok-4.6":{"id":"grok-4.6","name":"Grok 4.6","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"grok-build-0.1":{"id":"grok-build-0.1","name":"Grok Build 0.1","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":2,"cacheRead":0.2,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsReasoningEffort":false},"contextWindow":256000,"maxTokens":256000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null}},"muse-spark-1.2":{"id":"muse-spark-1.2","name":"Muse Spark 1.2","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":4.25,"cacheRead":0.15,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"muse-spark-1.2-contributor-free":{"id":"muse-spark-1.2-contributor-free","name":"Muse Spark 1.2 Free","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}}}}
1
+ {"anthropic-messages":{"claude-fable-5":{"id":"claude-fable-5","name":"Claude Fable 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"supportsDisabledThinking":false,"forceAdaptiveThinking":true}},"claude-fable-5-1":{"id":"claude-fable-5-1","name":"Claude Fable 5.1","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":0.25,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"supportsDisabledThinking":false,"forceAdaptiveThinking":true}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-opus-4-7":{"id":"claude-opus-4-7","name":"Claude Opus 4.7","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-opus-4-8":{"id":"claude-opus-4-8","name":"Claude Opus 4.8","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-opus-5":{"id":"claude-opus-5","name":"Claude Opus 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false}},"claude-sonnet-4":{"id":"claude-sonnet-4","name":"Claude Sonnet 4","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true}},"claude-sonnet-5":{"id":"claude-sonnet-5","name":"Claude Sonnet 5","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true}},"qwen3.5-plus":{"id":"qwen3.5-plus","name":"Qwen3.5 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"contextWindow":262144,"maxTokens":65536},"qwen3.6-plus":{"id":"qwen3.6-plus","name":"Qwen3.6 Plus","api":"anthropic-messages","provider":"opencode","baseUrl":"https://opencode.ai/zen","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0.625},"contextWindow":262144,"maxTokens":65536}},"google-generative-ai":{"gemini-3-flash":{"id":"gemini-3-flash","name":"Gemini 3 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro":{"id":"gemini-3.1-pro","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-generative-ai","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":7.5,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}},"openai-completions":{"big-pickle":{"id":"big-pickle","name":"Big Pickle","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"deepseek-v4-flash":{"id":"deepseek-v4-flash","name":"DeepSeek V4 Flash","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.14,"output":0.28,"cacheRead":0.028,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":null,"high":"high","xhigh":null,"max":"max"}},"deepseek-v4-pro":{"id":"deepseek-v4-pro","name":"DeepSeek V4 Pro","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.74,"output":3.84,"cacheRead":0.145,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false,"requiresReasoningContentOnAssistantMessages":true},"contextWindow":1000000,"maxTokens":384000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"}},"glm-5":{"id":"glm-5","name":"GLM-5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1,"output":3.2,"cacheRead":0.2,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.1":{"id":"glm-5.1","name":"GLM-5.1","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"glm-5.2":{"id":"glm-5.2","name":"GLM-5.2","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":1.4,"output":4.4,"cacheRead":0.26,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":null,"max":"max"}},"kimi-k2.5":{"id":"kimi-k2.5","name":"Kimi K2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0.08,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.6":{"id":"kimi-k2.6","name":"Kimi K2.6","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.16,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"thinkingFormat":"deepseek","supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":65536},"kimi-k2.7-code":{"id":"kimi-k2.7-code","name":"Kimi K2.7 Code","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.95,"output":4,"cacheRead":0.19,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":262144,"maxTokens":262144},"kimi-k3":{"id":"kimi-k3","name":"Kimi K3","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"}},"ling-3.0-flash-fin-free":{"id":"ling-3.0-flash-fin-free","name":"Ling 3.0 Flash Fin Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":32768},"mimo-v2.5-free":{"id":"mimo-v2.5-free","name":"MiMo V2.5 Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":200000,"maxTokens":32000},"minimax-m2.5":{"id":"minimax-m2.5","name":"MiniMax-M2.5","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":204800,"maxTokens":131072},"minimax-m2.7":{"id":"minimax-m2.7","name":"MiniMax-M2.7","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens","supportsLongCacheRetention":false},"contextWindow":204800,"maxTokens":131072},"minimax-m3":{"id":"minimax-m3","name":"MiniMax-M3","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":1.2,"cacheRead":0.06,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":512000,"maxTokens":128000},"nemotron-3-ultra-free":{"id":"nemotron-3-ultra-free","name":"Nemotron 3 Ultra Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":1000000,"maxTokens":128000},"nemotron-3.5-lightning-free":{"id":"nemotron-3.5-lightning-free","name":"Nemotron 3.5 Lightning Free","api":"openai-completions","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"supportsStore":false,"supportsDeveloperRole":false,"maxTokensField":"max_tokens"},"contextWindow":262144,"maxTokens":262144}},"openai-responses":{"gpt-5":{"id":"gpt-5","name":"GPT-5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5-codex":{"id":"gpt-5-codex","name":"GPT-5 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5-nano":{"id":"gpt-5-nano","name":"GPT-5 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.05,"output":0.4,"cacheRead":0.005,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1":{"id":"gpt-5.1","name":"GPT-5.1","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1-codex":{"id":"gpt-5.1-codex","name":"GPT-5.1 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.07,"output":8.5,"cacheRead":0.107,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.1-codex-max":{"id":"gpt-5.1-codex-max","name":"GPT-5.1 Codex Max","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.1-codex-mini":{"id":"gpt-5.1-codex-mini","name":"GPT-5.1 Codex Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":2,"cacheRead":0.025,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"gpt-5.2":{"id":"gpt-5.2","name":"GPT-5.2","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.2-codex":{"id":"gpt-5.2-codex","name":"GPT-5.2 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.3-codex":{"id":"gpt-5.3-codex","name":"GPT-5.3 Codex","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.75,"output":14,"cacheRead":0.175,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4":{"id":"gpt-5.4","name":"GPT-5.4","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":272000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-mini":{"id":"gpt-5.4-mini","name":"GPT-5.4 Mini","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0.075,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-nano":{"id":"gpt-5.4-nano","name":"GPT-5.4 Nano","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.25,"cacheRead":0.02,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":400000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.4-pro":{"id":"gpt-5.4-pro","name":"GPT-5.4 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.5":{"id":"gpt-5.5","name":"GPT-5.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":30,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.5-pro":{"id":"gpt-5.5-pro","name":"GPT-5.5 Pro","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":30,"output":180,"cacheRead":30,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":"medium","high":"high","xhigh":"xhigh","max":null}},"gpt-5.6-luna":{"id":"gpt-5.6-luna","name":"GPT-5.6 Luna","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"gpt-5.6-sol":{"id":"gpt-5.6-sol","name":"GPT-5.6 Sol (50% Off)","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"gpt-5.6-terra":{"id":"gpt-5.6-terra","name":"GPT-5.6 Terra","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":3.125},"compat":{"sessionAffinityFormat":"openai-nosession","supportsOpenAIGrammarTools":true},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":"max"}},"grok-4.5":{"id":"grok-4.5","name":"Grok 4.5","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.3,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":null,"max":null}},"grok-4.6":{"id":"grok-4.6","name":"Grok 4.6","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0.5,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":500000,"maxTokens":500000,"thinkingLevelMap":{"off":null,"minimal":null,"low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"grok-build-0.1":{"id":"grok-build-0.1","name":"Grok Build 0.1","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":2,"cacheRead":0.2,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession","supportsReasoningEffort":false},"contextWindow":256000,"maxTokens":256000,"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null}},"muse-spark-1.2":{"id":"muse-spark-1.2","name":"Muse Spark 1.2","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":4.25,"cacheRead":0.15,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"muse-spark-1.2-contributor-free":{"id":"muse-spark-1.2-contributor-free","name":"Muse Spark 1.2 Free","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}},"muse-spark-1.3-contributor-free":{"id":"muse-spark-1.3-contributor-free","name":"Muse Spark 1.3 Free","api":"openai-responses","provider":"opencode","baseUrl":"https://opencode.ai/zen/v1","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"compat":{"sessionAffinityFormat":"openai-nosession"},"contextWindow":1048576,"maxTokens":131072,"thinkingLevelMap":{"off":null,"minimal":"minimal","low":"low","medium":"medium","high":"high","xhigh":"xhigh","max":null}}}}