@shareai-lab/kode 1.0.70 → 1.0.73

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 (278) hide show
  1. package/README.md +342 -75
  2. package/README.zh-CN.md +292 -0
  3. package/cli.js +62 -0
  4. package/package.json +49 -25
  5. package/scripts/postinstall.js +56 -0
  6. package/src/ProjectOnboarding.tsx +198 -0
  7. package/src/Tool.ts +82 -0
  8. package/src/commands/agents.tsx +3401 -0
  9. package/src/commands/approvedTools.ts +53 -0
  10. package/src/commands/bug.tsx +20 -0
  11. package/src/commands/clear.ts +43 -0
  12. package/src/commands/compact.ts +120 -0
  13. package/src/commands/config.tsx +19 -0
  14. package/src/commands/cost.ts +18 -0
  15. package/src/commands/ctx_viz.ts +209 -0
  16. package/src/commands/doctor.ts +24 -0
  17. package/src/commands/help.tsx +19 -0
  18. package/src/commands/init.ts +37 -0
  19. package/src/commands/listen.ts +42 -0
  20. package/src/commands/login.tsx +51 -0
  21. package/src/commands/logout.tsx +40 -0
  22. package/src/commands/mcp.ts +41 -0
  23. package/src/commands/model.tsx +40 -0
  24. package/src/commands/modelstatus.tsx +20 -0
  25. package/src/commands/onboarding.tsx +34 -0
  26. package/src/commands/pr_comments.ts +59 -0
  27. package/src/commands/refreshCommands.ts +54 -0
  28. package/src/commands/release-notes.ts +34 -0
  29. package/src/commands/resume.tsx +31 -0
  30. package/src/commands/review.ts +49 -0
  31. package/src/commands/terminalSetup.ts +221 -0
  32. package/src/commands.ts +139 -0
  33. package/src/components/ApproveApiKey.tsx +93 -0
  34. package/src/components/AsciiLogo.tsx +13 -0
  35. package/src/components/AutoUpdater.tsx +148 -0
  36. package/src/components/Bug.tsx +367 -0
  37. package/src/components/Config.tsx +293 -0
  38. package/src/components/ConsoleOAuthFlow.tsx +327 -0
  39. package/src/components/Cost.tsx +23 -0
  40. package/src/components/CostThresholdDialog.tsx +46 -0
  41. package/src/components/CustomSelect/option-map.ts +42 -0
  42. package/src/components/CustomSelect/select-option.tsx +78 -0
  43. package/src/components/CustomSelect/select.tsx +152 -0
  44. package/src/components/CustomSelect/theme.ts +45 -0
  45. package/src/components/CustomSelect/use-select-state.ts +414 -0
  46. package/src/components/CustomSelect/use-select.ts +35 -0
  47. package/src/components/FallbackToolUseRejectedMessage.tsx +15 -0
  48. package/src/components/FileEditToolUpdatedMessage.tsx +66 -0
  49. package/src/components/Help.tsx +215 -0
  50. package/src/components/HighlightedCode.tsx +33 -0
  51. package/src/components/InvalidConfigDialog.tsx +113 -0
  52. package/src/components/Link.tsx +32 -0
  53. package/src/components/LogSelector.tsx +86 -0
  54. package/src/components/Logo.tsx +145 -0
  55. package/src/components/MCPServerApprovalDialog.tsx +100 -0
  56. package/src/components/MCPServerDialogCopy.tsx +25 -0
  57. package/src/components/MCPServerMultiselectDialog.tsx +109 -0
  58. package/src/components/Message.tsx +221 -0
  59. package/src/components/MessageResponse.tsx +15 -0
  60. package/src/components/MessageSelector.tsx +211 -0
  61. package/src/components/ModeIndicator.tsx +88 -0
  62. package/src/components/ModelConfig.tsx +301 -0
  63. package/src/components/ModelListManager.tsx +227 -0
  64. package/src/components/ModelSelector.tsx +3386 -0
  65. package/src/components/ModelStatusDisplay.tsx +230 -0
  66. package/src/components/Onboarding.tsx +274 -0
  67. package/src/components/PressEnterToContinue.tsx +11 -0
  68. package/src/components/PromptInput.tsx +740 -0
  69. package/src/components/SentryErrorBoundary.ts +33 -0
  70. package/src/components/Spinner.tsx +129 -0
  71. package/src/components/StickerRequestForm.tsx +16 -0
  72. package/src/components/StructuredDiff.tsx +191 -0
  73. package/src/components/TextInput.tsx +259 -0
  74. package/src/components/TodoItem.tsx +11 -0
  75. package/src/components/TokenWarning.tsx +31 -0
  76. package/src/components/ToolUseLoader.tsx +40 -0
  77. package/src/components/TrustDialog.tsx +106 -0
  78. package/src/components/binary-feedback/BinaryFeedback.tsx +63 -0
  79. package/src/components/binary-feedback/BinaryFeedbackOption.tsx +111 -0
  80. package/src/components/binary-feedback/BinaryFeedbackView.tsx +172 -0
  81. package/src/components/binary-feedback/utils.ts +220 -0
  82. package/src/components/messages/AssistantBashOutputMessage.tsx +22 -0
  83. package/src/components/messages/AssistantLocalCommandOutputMessage.tsx +49 -0
  84. package/src/components/messages/AssistantRedactedThinkingMessage.tsx +19 -0
  85. package/src/components/messages/AssistantTextMessage.tsx +144 -0
  86. package/src/components/messages/AssistantThinkingMessage.tsx +40 -0
  87. package/src/components/messages/AssistantToolUseMessage.tsx +133 -0
  88. package/src/components/messages/TaskProgressMessage.tsx +32 -0
  89. package/src/components/messages/TaskToolMessage.tsx +58 -0
  90. package/src/components/messages/UserBashInputMessage.tsx +28 -0
  91. package/src/components/messages/UserCommandMessage.tsx +30 -0
  92. package/src/components/messages/UserKodingInputMessage.tsx +28 -0
  93. package/src/components/messages/UserPromptMessage.tsx +35 -0
  94. package/src/components/messages/UserTextMessage.tsx +39 -0
  95. package/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +12 -0
  96. package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +36 -0
  97. package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +31 -0
  98. package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +57 -0
  99. package/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +35 -0
  100. package/src/components/messages/UserToolResultMessage/utils.tsx +56 -0
  101. package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +121 -0
  102. package/src/components/permissions/FallbackPermissionRequest.tsx +153 -0
  103. package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +182 -0
  104. package/src/components/permissions/FileEditPermissionRequest/FileEditToolDiff.tsx +77 -0
  105. package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +164 -0
  106. package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +83 -0
  107. package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +240 -0
  108. package/src/components/permissions/PermissionRequest.tsx +101 -0
  109. package/src/components/permissions/PermissionRequestTitle.tsx +69 -0
  110. package/src/components/permissions/hooks.ts +44 -0
  111. package/src/components/permissions/toolUseOptions.ts +59 -0
  112. package/src/components/permissions/utils.ts +23 -0
  113. package/src/constants/betas.ts +5 -0
  114. package/src/constants/claude-asterisk-ascii-art.tsx +238 -0
  115. package/src/constants/figures.ts +4 -0
  116. package/src/constants/keys.ts +3 -0
  117. package/src/constants/macros.ts +8 -0
  118. package/src/constants/modelCapabilities.ts +179 -0
  119. package/src/constants/models.ts +1025 -0
  120. package/src/constants/oauth.ts +18 -0
  121. package/src/constants/product.ts +17 -0
  122. package/src/constants/prompts.ts +177 -0
  123. package/src/constants/releaseNotes.ts +7 -0
  124. package/src/context/PermissionContext.tsx +149 -0
  125. package/src/context.ts +278 -0
  126. package/src/cost-tracker.ts +84 -0
  127. package/src/entrypoints/cli.tsx +1518 -0
  128. package/src/entrypoints/mcp.ts +176 -0
  129. package/src/history.ts +25 -0
  130. package/src/hooks/useApiKeyVerification.ts +59 -0
  131. package/src/hooks/useArrowKeyHistory.ts +55 -0
  132. package/src/hooks/useCanUseTool.ts +138 -0
  133. package/src/hooks/useCancelRequest.ts +39 -0
  134. package/src/hooks/useDoublePress.ts +42 -0
  135. package/src/hooks/useExitOnCtrlCD.ts +31 -0
  136. package/src/hooks/useInterval.ts +25 -0
  137. package/src/hooks/useLogMessages.ts +16 -0
  138. package/src/hooks/useLogStartupTime.ts +12 -0
  139. package/src/hooks/useNotifyAfterTimeout.ts +65 -0
  140. package/src/hooks/usePermissionRequestLogging.ts +44 -0
  141. package/src/hooks/useTerminalSize.ts +49 -0
  142. package/src/hooks/useTextInput.ts +318 -0
  143. package/src/hooks/useUnifiedCompletion.ts +1404 -0
  144. package/src/messages.ts +38 -0
  145. package/src/permissions.ts +268 -0
  146. package/src/query.ts +707 -0
  147. package/src/screens/ConfigureNpmPrefix.tsx +197 -0
  148. package/src/screens/Doctor.tsx +219 -0
  149. package/src/screens/LogList.tsx +68 -0
  150. package/src/screens/REPL.tsx +798 -0
  151. package/src/screens/ResumeConversation.tsx +68 -0
  152. package/src/services/adapters/base.ts +38 -0
  153. package/src/services/adapters/chatCompletions.ts +90 -0
  154. package/src/services/adapters/responsesAPI.ts +170 -0
  155. package/src/services/browserMocks.ts +66 -0
  156. package/src/services/claude.ts +2083 -0
  157. package/src/services/customCommands.ts +704 -0
  158. package/src/services/fileFreshness.ts +377 -0
  159. package/src/services/gpt5ConnectionTest.ts +340 -0
  160. package/src/services/mcpClient.ts +564 -0
  161. package/src/services/mcpServerApproval.tsx +50 -0
  162. package/src/services/mentionProcessor.ts +273 -0
  163. package/src/services/modelAdapterFactory.ts +69 -0
  164. package/src/services/notifier.ts +40 -0
  165. package/src/services/oauth.ts +357 -0
  166. package/src/services/openai.ts +1305 -0
  167. package/src/services/responseStateManager.ts +90 -0
  168. package/src/services/sentry.ts +3 -0
  169. package/src/services/statsig.ts +171 -0
  170. package/src/services/statsigStorage.ts +86 -0
  171. package/src/services/systemReminder.ts +507 -0
  172. package/src/services/vcr.ts +161 -0
  173. package/src/test/testAdapters.ts +96 -0
  174. package/src/tools/ArchitectTool/ArchitectTool.tsx +122 -0
  175. package/src/tools/ArchitectTool/prompt.ts +15 -0
  176. package/src/tools/AskExpertModelTool/AskExpertModelTool.tsx +569 -0
  177. package/src/tools/BashTool/BashTool.tsx +243 -0
  178. package/src/tools/BashTool/BashToolResultMessage.tsx +38 -0
  179. package/src/tools/BashTool/OutputLine.tsx +49 -0
  180. package/src/tools/BashTool/prompt.ts +174 -0
  181. package/src/tools/BashTool/utils.ts +56 -0
  182. package/src/tools/FileEditTool/FileEditTool.tsx +315 -0
  183. package/src/tools/FileEditTool/prompt.ts +51 -0
  184. package/src/tools/FileEditTool/utils.ts +58 -0
  185. package/src/tools/FileReadTool/FileReadTool.tsx +404 -0
  186. package/src/tools/FileReadTool/prompt.ts +7 -0
  187. package/src/tools/FileWriteTool/FileWriteTool.tsx +297 -0
  188. package/src/tools/FileWriteTool/prompt.ts +10 -0
  189. package/src/tools/GlobTool/GlobTool.tsx +119 -0
  190. package/src/tools/GlobTool/prompt.ts +8 -0
  191. package/src/tools/GrepTool/GrepTool.tsx +147 -0
  192. package/src/tools/GrepTool/prompt.ts +11 -0
  193. package/src/tools/MCPTool/MCPTool.tsx +107 -0
  194. package/src/tools/MCPTool/prompt.ts +3 -0
  195. package/src/tools/MemoryReadTool/MemoryReadTool.tsx +127 -0
  196. package/src/tools/MemoryReadTool/prompt.ts +3 -0
  197. package/src/tools/MemoryWriteTool/MemoryWriteTool.tsx +89 -0
  198. package/src/tools/MemoryWriteTool/prompt.ts +3 -0
  199. package/src/tools/MultiEditTool/MultiEditTool.tsx +366 -0
  200. package/src/tools/MultiEditTool/prompt.ts +45 -0
  201. package/src/tools/NotebookEditTool/NotebookEditTool.tsx +298 -0
  202. package/src/tools/NotebookEditTool/prompt.ts +3 -0
  203. package/src/tools/NotebookReadTool/NotebookReadTool.tsx +258 -0
  204. package/src/tools/NotebookReadTool/prompt.ts +3 -0
  205. package/src/tools/StickerRequestTool/StickerRequestTool.tsx +93 -0
  206. package/src/tools/StickerRequestTool/prompt.ts +19 -0
  207. package/src/tools/TaskTool/TaskTool.tsx +466 -0
  208. package/src/tools/TaskTool/constants.ts +1 -0
  209. package/src/tools/TaskTool/prompt.ts +92 -0
  210. package/src/tools/ThinkTool/ThinkTool.tsx +54 -0
  211. package/src/tools/ThinkTool/prompt.ts +12 -0
  212. package/src/tools/TodoWriteTool/TodoWriteTool.tsx +290 -0
  213. package/src/tools/TodoWriteTool/prompt.ts +63 -0
  214. package/src/tools/lsTool/lsTool.tsx +272 -0
  215. package/src/tools/lsTool/prompt.ts +2 -0
  216. package/src/tools.ts +63 -0
  217. package/src/types/PermissionMode.ts +120 -0
  218. package/src/types/RequestContext.ts +72 -0
  219. package/src/types/conversation.ts +51 -0
  220. package/src/types/logs.ts +58 -0
  221. package/src/types/modelCapabilities.ts +64 -0
  222. package/src/types/notebook.ts +87 -0
  223. package/src/utils/Cursor.ts +436 -0
  224. package/src/utils/PersistentShell.ts +373 -0
  225. package/src/utils/advancedFuzzyMatcher.ts +290 -0
  226. package/src/utils/agentLoader.ts +284 -0
  227. package/src/utils/agentStorage.ts +97 -0
  228. package/src/utils/array.ts +3 -0
  229. package/src/utils/ask.tsx +99 -0
  230. package/src/utils/auth.ts +13 -0
  231. package/src/utils/autoCompactCore.ts +223 -0
  232. package/src/utils/autoUpdater.ts +318 -0
  233. package/src/utils/betas.ts +20 -0
  234. package/src/utils/browser.ts +14 -0
  235. package/src/utils/cleanup.ts +72 -0
  236. package/src/utils/commands.ts +261 -0
  237. package/src/utils/commonUnixCommands.ts +161 -0
  238. package/src/utils/config.ts +942 -0
  239. package/src/utils/conversationRecovery.ts +55 -0
  240. package/src/utils/debugLogger.ts +1123 -0
  241. package/src/utils/diff.ts +42 -0
  242. package/src/utils/env.ts +57 -0
  243. package/src/utils/errors.ts +21 -0
  244. package/src/utils/exampleCommands.ts +109 -0
  245. package/src/utils/execFileNoThrow.ts +51 -0
  246. package/src/utils/expertChatStorage.ts +136 -0
  247. package/src/utils/file.ts +402 -0
  248. package/src/utils/fileRecoveryCore.ts +71 -0
  249. package/src/utils/format.tsx +44 -0
  250. package/src/utils/fuzzyMatcher.ts +328 -0
  251. package/src/utils/generators.ts +62 -0
  252. package/src/utils/git.ts +92 -0
  253. package/src/utils/globalLogger.ts +77 -0
  254. package/src/utils/http.ts +10 -0
  255. package/src/utils/imagePaste.ts +38 -0
  256. package/src/utils/json.ts +13 -0
  257. package/src/utils/log.ts +382 -0
  258. package/src/utils/markdown.ts +213 -0
  259. package/src/utils/messageContextManager.ts +289 -0
  260. package/src/utils/messages.tsx +939 -0
  261. package/src/utils/model.ts +836 -0
  262. package/src/utils/permissions/filesystem.ts +118 -0
  263. package/src/utils/responseState.ts +23 -0
  264. package/src/utils/ripgrep.ts +167 -0
  265. package/src/utils/secureFile.ts +559 -0
  266. package/src/utils/sessionState.ts +49 -0
  267. package/src/utils/state.ts +25 -0
  268. package/src/utils/style.ts +29 -0
  269. package/src/utils/terminal.ts +50 -0
  270. package/src/utils/theme.ts +133 -0
  271. package/src/utils/thinking.ts +144 -0
  272. package/src/utils/todoStorage.ts +431 -0
  273. package/src/utils/tokens.ts +43 -0
  274. package/src/utils/toolExecutionController.ts +163 -0
  275. package/src/utils/unaryLogging.ts +26 -0
  276. package/src/utils/user.ts +37 -0
  277. package/src/utils/validate.ts +165 -0
  278. package/cli.mjs +0 -1803
@@ -0,0 +1,1025 @@
1
+ export default {
2
+ openai: [
3
+ {
4
+ model: 'gpt-4',
5
+ max_tokens: 4096,
6
+ max_input_tokens: 8192,
7
+ max_output_tokens: 4096,
8
+ input_cost_per_token: 0.00003,
9
+ output_cost_per_token: 0.00006,
10
+ provider: 'openai',
11
+ mode: 'chat',
12
+ supports_function_calling: true,
13
+ supports_prompt_caching: true,
14
+ supports_system_messages: true,
15
+ supports_tool_choice: true,
16
+ },
17
+ {
18
+ model: 'gpt-4o',
19
+ max_tokens: 16384,
20
+ max_input_tokens: 128000,
21
+ max_output_tokens: 16384,
22
+ input_cost_per_token: 0.0000025,
23
+ output_cost_per_token: 0.00001,
24
+ input_cost_per_token_batches: 0.00000125,
25
+ output_cost_per_token_batches: 0.000005,
26
+ cache_read_input_token_cost: 0.00000125,
27
+ provider: 'openai',
28
+ mode: 'chat',
29
+ supports_function_calling: true,
30
+ supports_parallel_function_calling: true,
31
+ supports_response_schema: true,
32
+ supports_vision: true,
33
+ supports_prompt_caching: true,
34
+ supports_system_messages: true,
35
+ supports_tool_choice: true,
36
+ },
37
+ {
38
+ model: 'gpt-4.5-preview',
39
+ max_tokens: 16384,
40
+ max_input_tokens: 128000,
41
+ max_output_tokens: 16384,
42
+ input_cost_per_token: 0.000075,
43
+ output_cost_per_token: 0.00015,
44
+ input_cost_per_token_batches: 0.0000375,
45
+ output_cost_per_token_batches: 0.000075,
46
+ cache_read_input_token_cost: 0.0000375,
47
+ provider: 'openai',
48
+ mode: 'chat',
49
+ supports_function_calling: true,
50
+ supports_parallel_function_calling: true,
51
+ supports_response_schema: true,
52
+ supports_vision: true,
53
+ supports_prompt_caching: true,
54
+ supports_system_messages: true,
55
+ supports_tool_choice: true,
56
+ },
57
+ {
58
+ model: 'gpt-4.5-preview-2025-02-27',
59
+ max_tokens: 16384,
60
+ max_input_tokens: 128000,
61
+ max_output_tokens: 16384,
62
+ input_cost_per_token: 0.000075,
63
+ output_cost_per_token: 0.00015,
64
+ input_cost_per_token_batches: 0.0000375,
65
+ output_cost_per_token_batches: 0.000075,
66
+ cache_read_input_token_cost: 0.0000375,
67
+ provider: 'openai',
68
+ mode: 'chat',
69
+ supports_function_calling: true,
70
+ supports_parallel_function_calling: true,
71
+ supports_response_schema: true,
72
+ supports_vision: true,
73
+ supports_prompt_caching: true,
74
+ supports_system_messages: true,
75
+ supports_tool_choice: true,
76
+ },
77
+ {
78
+ model: 'gpt-4o-mini',
79
+ max_tokens: 16384,
80
+ max_input_tokens: 128000,
81
+ max_output_tokens: 16384,
82
+ input_cost_per_token: 1.5e-7,
83
+ output_cost_per_token: 6e-7,
84
+ input_cost_per_token_batches: 7.5e-8,
85
+ output_cost_per_token_batches: 3e-7,
86
+ cache_read_input_token_cost: 7.5e-8,
87
+ provider: 'openai',
88
+ mode: 'chat',
89
+ supports_function_calling: true,
90
+ supports_parallel_function_calling: true,
91
+ supports_response_schema: true,
92
+ supports_vision: true,
93
+ supports_prompt_caching: true,
94
+ supports_system_messages: true,
95
+ supports_tool_choice: true,
96
+ },
97
+ {
98
+ model: 'gpt-4o-mini-2024-07-18',
99
+ max_tokens: 16384,
100
+ max_input_tokens: 128000,
101
+ max_output_tokens: 16384,
102
+ input_cost_per_token: 1.5e-7,
103
+ output_cost_per_token: 6e-7,
104
+ input_cost_per_token_batches: 7.5e-8,
105
+ output_cost_per_token_batches: 3e-7,
106
+ cache_read_input_token_cost: 7.5e-8,
107
+ provider: 'openai',
108
+ mode: 'chat',
109
+ supports_function_calling: true,
110
+ supports_parallel_function_calling: true,
111
+ supports_response_schema: true,
112
+ supports_vision: true,
113
+ supports_prompt_caching: true,
114
+ supports_system_messages: true,
115
+ supports_tool_choice: true,
116
+ },
117
+ {
118
+ model: 'o1',
119
+ max_tokens: 100000,
120
+ max_input_tokens: 200000,
121
+ max_output_tokens: 100000,
122
+ input_cost_per_token: 0.000015,
123
+ output_cost_per_token: 0.00006,
124
+ cache_read_input_token_cost: 0.0000075,
125
+ provider: 'openai',
126
+ mode: 'chat',
127
+ supports_function_calling: true,
128
+ supports_parallel_function_calling: true,
129
+ supports_vision: true,
130
+ supports_prompt_caching: true,
131
+ supports_system_messages: true,
132
+ supports_response_schema: true,
133
+ supports_tool_choice: true,
134
+ supports_reasoning_effort: true,
135
+ },
136
+ {
137
+ model: 'o3-mini',
138
+ max_tokens: 100000,
139
+ max_input_tokens: 200000,
140
+ max_output_tokens: 100000,
141
+ input_cost_per_token: 0.0000011,
142
+ output_cost_per_token: 0.0000044,
143
+ cache_read_input_token_cost: 5.5e-7,
144
+ provider: 'openai',
145
+ mode: 'chat',
146
+ supports_function_calling: true,
147
+ supports_parallel_function_calling: false,
148
+ supports_vision: false,
149
+ supports_prompt_caching: true,
150
+ supports_response_schema: true,
151
+ supports_tool_choice: true,
152
+ supports_reasoning_effort: true,
153
+ },
154
+ {
155
+ model: 'o3-mini-2025-01-31',
156
+ max_tokens: 100000,
157
+ max_input_tokens: 200000,
158
+ max_output_tokens: 100000,
159
+ input_cost_per_token: 0.0000011,
160
+ output_cost_per_token: 0.0000044,
161
+ cache_read_input_token_cost: 5.5e-7,
162
+ provider: 'openai',
163
+ mode: 'chat',
164
+ supports_function_calling: true,
165
+ supports_parallel_function_calling: false,
166
+ supports_vision: false,
167
+ supports_prompt_caching: true,
168
+ supports_response_schema: true,
169
+ supports_tool_choice: true,
170
+ supports_reasoning_effort: true,
171
+ },
172
+ {
173
+ model: 'o1-2024-12-17',
174
+ max_tokens: 100000,
175
+ max_input_tokens: 200000,
176
+ max_output_tokens: 100000,
177
+ input_cost_per_token: 0.000015,
178
+ output_cost_per_token: 0.00006,
179
+ cache_read_input_token_cost: 0.0000075,
180
+ provider: 'openai',
181
+ mode: 'chat',
182
+ supports_function_calling: true,
183
+ supports_parallel_function_calling: true,
184
+ supports_vision: true,
185
+ supports_prompt_caching: true,
186
+ supports_system_messages: true,
187
+ supports_response_schema: true,
188
+ supports_tool_choice: true,
189
+ supports_reasoning_effort: true,
190
+ },
191
+ {
192
+ model: 'chatgpt-4o-latest',
193
+ max_tokens: 4096,
194
+ max_input_tokens: 128000,
195
+ max_output_tokens: 4096,
196
+ input_cost_per_token: 0.000005,
197
+ output_cost_per_token: 0.000015,
198
+ provider: 'openai',
199
+ mode: 'chat',
200
+ supports_function_calling: true,
201
+ supports_parallel_function_calling: true,
202
+ supports_vision: true,
203
+ supports_prompt_caching: true,
204
+ supports_system_messages: true,
205
+ supports_tool_choice: true,
206
+ },
207
+ {
208
+ model: 'gpt-4o-2024-05-13',
209
+ max_tokens: 4096,
210
+ max_input_tokens: 128000,
211
+ max_output_tokens: 4096,
212
+ input_cost_per_token: 0.000005,
213
+ output_cost_per_token: 0.000015,
214
+ input_cost_per_token_batches: 0.0000025,
215
+ output_cost_per_token_batches: 0.0000075,
216
+ provider: 'openai',
217
+ mode: 'chat',
218
+ supports_function_calling: true,
219
+ supports_parallel_function_calling: true,
220
+ supports_vision: true,
221
+ supports_prompt_caching: true,
222
+ supports_system_messages: true,
223
+ supports_tool_choice: true,
224
+ },
225
+ {
226
+ model: 'gpt-4o-2024-08-06',
227
+ max_tokens: 16384,
228
+ max_input_tokens: 128000,
229
+ max_output_tokens: 16384,
230
+ input_cost_per_token: 0.0000025,
231
+ output_cost_per_token: 0.00001,
232
+ input_cost_per_token_batches: 0.00000125,
233
+ output_cost_per_token_batches: 0.000005,
234
+ cache_read_input_token_cost: 0.00000125,
235
+ provider: 'openai',
236
+ mode: 'chat',
237
+ supports_function_calling: true,
238
+ supports_parallel_function_calling: true,
239
+ supports_response_schema: true,
240
+ supports_vision: true,
241
+ supports_prompt_caching: true,
242
+ supports_system_messages: true,
243
+ supports_tool_choice: true,
244
+ },
245
+ {
246
+ model: 'gpt-4o-2024-11-20',
247
+ max_tokens: 16384,
248
+ max_input_tokens: 128000,
249
+ max_output_tokens: 16384,
250
+ input_cost_per_token: 0.0000025,
251
+ output_cost_per_token: 0.00001,
252
+ input_cost_per_token_batches: 0.00000125,
253
+ output_cost_per_token_batches: 0.000005,
254
+ cache_read_input_token_cost: 0.00000125,
255
+ provider: 'openai',
256
+ mode: 'chat',
257
+ supports_function_calling: true,
258
+ supports_parallel_function_calling: true,
259
+ supports_response_schema: true,
260
+ supports_vision: true,
261
+ supports_prompt_caching: true,
262
+ supports_system_messages: true,
263
+ supports_tool_choice: true,
264
+ },
265
+ {
266
+ model: 'gpt-4-turbo',
267
+ max_tokens: 4096,
268
+ max_input_tokens: 128000,
269
+ max_output_tokens: 4096,
270
+ input_cost_per_token: 0.00001,
271
+ output_cost_per_token: 0.00003,
272
+ provider: 'openai',
273
+ mode: 'chat',
274
+ supports_function_calling: true,
275
+ supports_parallel_function_calling: true,
276
+ supports_vision: true,
277
+ supports_prompt_caching: true,
278
+ supports_system_messages: true,
279
+ supports_tool_choice: true,
280
+ },
281
+ // GPT-5 Models
282
+ {
283
+ model: 'gpt-5',
284
+ max_tokens: 32768,
285
+ max_input_tokens: 200000,
286
+ max_output_tokens: 32768,
287
+ input_cost_per_token: 0.00001,
288
+ output_cost_per_token: 0.00005,
289
+ cache_read_input_token_cost: 0.000005,
290
+ provider: 'openai',
291
+ mode: 'chat',
292
+ supports_function_calling: true,
293
+ supports_parallel_function_calling: true,
294
+ supports_vision: true,
295
+ supports_prompt_caching: true,
296
+ supports_system_messages: true,
297
+ supports_tool_choice: true,
298
+ supports_reasoning_effort: true,
299
+ supports_responses_api: true,
300
+ supports_custom_tools: true,
301
+ supports_allowed_tools: true,
302
+ supports_verbosity_control: true,
303
+ },
304
+ {
305
+ model: 'gpt-5-mini',
306
+ max_tokens: 16384,
307
+ max_input_tokens: 128000,
308
+ max_output_tokens: 16384,
309
+ input_cost_per_token: 0.000001,
310
+ output_cost_per_token: 0.000005,
311
+ cache_read_input_token_cost: 0.0000005,
312
+ provider: 'openai',
313
+ mode: 'chat',
314
+ supports_function_calling: true,
315
+ supports_parallel_function_calling: true,
316
+ supports_vision: true,
317
+ supports_prompt_caching: true,
318
+ supports_system_messages: true,
319
+ supports_tool_choice: true,
320
+ supports_reasoning_effort: true,
321
+ supports_responses_api: true,
322
+ supports_custom_tools: true,
323
+ supports_allowed_tools: true,
324
+ supports_verbosity_control: true,
325
+ },
326
+ {
327
+ model: 'gpt-5-nano',
328
+ max_tokens: 8192,
329
+ max_input_tokens: 64000,
330
+ max_output_tokens: 8192,
331
+ input_cost_per_token: 0.0000005,
332
+ output_cost_per_token: 0.000002,
333
+ cache_read_input_token_cost: 0.00000025,
334
+ provider: 'openai',
335
+ mode: 'chat',
336
+ supports_function_calling: true,
337
+ supports_parallel_function_calling: true,
338
+ supports_vision: false,
339
+ supports_prompt_caching: true,
340
+ supports_system_messages: true,
341
+ supports_tool_choice: true,
342
+ supports_reasoning_effort: true,
343
+ supports_responses_api: true,
344
+ supports_custom_tools: true,
345
+ supports_allowed_tools: true,
346
+ supports_verbosity_control: true,
347
+ },
348
+ {
349
+ model: 'gpt-5-chat-latest',
350
+ max_tokens: 32768,
351
+ max_input_tokens: 200000,
352
+ max_output_tokens: 32768,
353
+ input_cost_per_token: 0.00001,
354
+ output_cost_per_token: 0.00005,
355
+ cache_read_input_token_cost: 0.000005,
356
+ provider: 'openai',
357
+ mode: 'chat',
358
+ supports_function_calling: true,
359
+ supports_parallel_function_calling: true,
360
+ supports_vision: true,
361
+ supports_prompt_caching: true,
362
+ supports_system_messages: true,
363
+ supports_tool_choice: true,
364
+ supports_reasoning_effort: true,
365
+ supports_responses_api: false,
366
+ supports_custom_tools: false,
367
+ supports_allowed_tools: false,
368
+ supports_verbosity_control: true,
369
+ requires_chat_completions: true,
370
+ },
371
+ ],
372
+ mistral: [
373
+ {
374
+ model: 'mistral-small',
375
+ max_tokens: 8191,
376
+ max_input_tokens: 32000,
377
+ max_output_tokens: 8191,
378
+ input_cost_per_token: 0.000001,
379
+ output_cost_per_token: 0.000003,
380
+ provider: 'mistral',
381
+ supports_function_calling: true,
382
+ mode: 'chat',
383
+ supports_assistant_prefill: true,
384
+ supports_tool_choice: true,
385
+ },
386
+ {
387
+ model: 'mistral-small-latest',
388
+ max_tokens: 8191,
389
+ max_input_tokens: 32000,
390
+ max_output_tokens: 8191,
391
+ input_cost_per_token: 0.000001,
392
+ output_cost_per_token: 0.000003,
393
+ provider: 'mistral',
394
+ supports_function_calling: true,
395
+ mode: 'chat',
396
+ supports_assistant_prefill: true,
397
+ supports_tool_choice: true,
398
+ },
399
+ {
400
+ model: 'mistral-large-latest',
401
+ max_tokens: 128000,
402
+ max_input_tokens: 128000,
403
+ max_output_tokens: 128000,
404
+ input_cost_per_token: 0.000002,
405
+ output_cost_per_token: 0.000006,
406
+ provider: 'mistral',
407
+ mode: 'chat',
408
+ supports_function_calling: true,
409
+ supports_assistant_prefill: true,
410
+ supports_tool_choice: true,
411
+ },
412
+ {
413
+ model: 'open-mixtral-8x7b',
414
+ max_tokens: 8191,
415
+ max_input_tokens: 32000,
416
+ max_output_tokens: 8191,
417
+ input_cost_per_token: 7e-7,
418
+ output_cost_per_token: 7e-7,
419
+ provider: 'mistral',
420
+ mode: 'chat',
421
+ supports_function_calling: true,
422
+ supports_assistant_prefill: true,
423
+ supports_tool_choice: true,
424
+ },
425
+ {
426
+ model: 'open-mixtral-8x22b',
427
+ max_tokens: 8191,
428
+ max_input_tokens: 65336,
429
+ max_output_tokens: 8191,
430
+ input_cost_per_token: 0.000002,
431
+ output_cost_per_token: 0.000006,
432
+ provider: 'mistral',
433
+ mode: 'chat',
434
+ supports_function_calling: true,
435
+ supports_assistant_prefill: true,
436
+ supports_tool_choice: true,
437
+ },
438
+ ],
439
+ deepseek: [
440
+ {
441
+ model: 'deepseek-reasoner',
442
+ max_tokens: 8192,
443
+ max_input_tokens: 65536,
444
+ max_output_tokens: 8192,
445
+ input_cost_per_token: 5.5e-7,
446
+ input_cost_per_token_cache_hit: 1.4e-7,
447
+ output_cost_per_token: 0.00000219,
448
+ provider: 'deepseek',
449
+ mode: 'chat',
450
+ supports_function_calling: true,
451
+ supports_assistant_prefill: true,
452
+ supports_tool_choice: true,
453
+ supports_prompt_caching: true,
454
+ },
455
+ {
456
+ model: 'deepseek-chat',
457
+ max_tokens: 8192,
458
+ max_input_tokens: 65536,
459
+ max_output_tokens: 8192,
460
+ input_cost_per_token: 2.7e-7,
461
+ input_cost_per_token_cache_hit: 7e-8,
462
+ cache_read_input_token_cost: 7e-8,
463
+ cache_creation_input_token_cost: 0,
464
+ output_cost_per_token: 0.0000011,
465
+ provider: 'deepseek',
466
+ mode: 'chat',
467
+ supports_function_calling: true,
468
+ supports_assistant_prefill: true,
469
+ supports_tool_choice: true,
470
+ supports_prompt_caching: true,
471
+ },
472
+ {
473
+ model: 'deepseek-coder',
474
+ max_tokens: 4096,
475
+ max_input_tokens: 128000,
476
+ max_output_tokens: 4096,
477
+ input_cost_per_token: 1.4e-7,
478
+ input_cost_per_token_cache_hit: 1.4e-8,
479
+ output_cost_per_token: 2.8e-7,
480
+ provider: 'deepseek',
481
+ mode: 'chat',
482
+ supports_function_calling: true,
483
+ supports_assistant_prefill: true,
484
+ supports_tool_choice: true,
485
+ supports_prompt_caching: true,
486
+ },
487
+ ],
488
+ xai: [
489
+ {
490
+ model: 'grok-beta',
491
+ max_tokens: 131072,
492
+ max_input_tokens: 131072,
493
+ max_output_tokens: 131072,
494
+ input_cost_per_token: 0.000005,
495
+ output_cost_per_token: 0.000015,
496
+ provider: 'xai',
497
+ mode: 'chat',
498
+ supports_function_calling: true,
499
+ supports_vision: true,
500
+ supports_tool_choice: true,
501
+ },
502
+ ],
503
+ groq: [
504
+ {
505
+ model: 'llama-3.3-70b-versatile',
506
+ max_tokens: 8192,
507
+ max_input_tokens: 128000,
508
+ max_output_tokens: 8192,
509
+ input_cost_per_token: 5.9e-7,
510
+ output_cost_per_token: 7.9e-7,
511
+ provider: 'groq',
512
+ mode: 'chat',
513
+ supports_function_calling: true,
514
+ supports_response_schema: true,
515
+ supports_tool_choice: true,
516
+ },
517
+ {
518
+ model: 'llama2-70b-4096',
519
+ max_tokens: 4096,
520
+ max_input_tokens: 4096,
521
+ max_output_tokens: 4096,
522
+ input_cost_per_token: 7e-7,
523
+ output_cost_per_token: 8e-7,
524
+ provider: 'groq',
525
+ mode: 'chat',
526
+ supports_function_calling: true,
527
+ supports_response_schema: true,
528
+ supports_tool_choice: true,
529
+ },
530
+ {
531
+ model: 'llama3-8b-8192',
532
+ max_tokens: 8192,
533
+ max_input_tokens: 8192,
534
+ max_output_tokens: 8192,
535
+ input_cost_per_token: 5e-8,
536
+ output_cost_per_token: 8e-8,
537
+ provider: 'groq',
538
+ mode: 'chat',
539
+ supports_function_calling: true,
540
+ supports_response_schema: true,
541
+ supports_tool_choice: true,
542
+ },
543
+ {
544
+ model: 'llama-3.2-1b-preview',
545
+ max_tokens: 8192,
546
+ max_input_tokens: 8192,
547
+ max_output_tokens: 8192,
548
+ input_cost_per_token: 4e-8,
549
+ output_cost_per_token: 4e-8,
550
+ provider: 'groq',
551
+ mode: 'chat',
552
+ supports_function_calling: true,
553
+ supports_response_schema: true,
554
+ supports_tool_choice: true,
555
+ },
556
+ {
557
+ model: 'llama-3.2-3b-preview',
558
+ max_tokens: 8192,
559
+ max_input_tokens: 8192,
560
+ max_output_tokens: 8192,
561
+ input_cost_per_token: 6e-8,
562
+ output_cost_per_token: 6e-8,
563
+ provider: 'groq',
564
+ mode: 'chat',
565
+ supports_function_calling: true,
566
+ supports_response_schema: true,
567
+ supports_tool_choice: true,
568
+ },
569
+ {
570
+ model: 'llama-3.2-11b-text-preview',
571
+ max_tokens: 8192,
572
+ max_input_tokens: 8192,
573
+ max_output_tokens: 8192,
574
+ input_cost_per_token: 1.8e-7,
575
+ output_cost_per_token: 1.8e-7,
576
+ provider: 'groq',
577
+ mode: 'chat',
578
+ supports_function_calling: true,
579
+ supports_response_schema: true,
580
+ supports_tool_choice: true,
581
+ },
582
+ {
583
+ model: 'llama-3.2-90b-text-preview',
584
+ max_tokens: 8192,
585
+ max_input_tokens: 8192,
586
+ max_output_tokens: 8192,
587
+ input_cost_per_token: 9e-7,
588
+ output_cost_per_token: 9e-7,
589
+ provider: 'groq',
590
+ mode: 'chat',
591
+ supports_function_calling: true,
592
+ supports_response_schema: true,
593
+ supports_tool_choice: true,
594
+ },
595
+ {
596
+ model: 'llama3-70b-8192',
597
+ max_tokens: 8192,
598
+ max_input_tokens: 8192,
599
+ max_output_tokens: 8192,
600
+ input_cost_per_token: 5.9e-7,
601
+ output_cost_per_token: 7.9e-7,
602
+ provider: 'groq',
603
+ mode: 'chat',
604
+ supports_function_calling: true,
605
+ supports_response_schema: true,
606
+ supports_tool_choice: true,
607
+ },
608
+ {
609
+ model: 'llama-3.1-8b-instant',
610
+ max_tokens: 8000,
611
+ max_input_tokens: 8000,
612
+ max_output_tokens: 8000,
613
+ input_cost_per_token: 5e-8,
614
+ output_cost_per_token: 8e-8,
615
+ provider: 'groq',
616
+ mode: 'chat',
617
+ supports_function_calling: true,
618
+ supports_response_schema: true,
619
+ supports_tool_choice: true,
620
+ },
621
+ {
622
+ model: 'llama-3.1-70b-versatile',
623
+ max_tokens: 8000,
624
+ max_input_tokens: 8000,
625
+ max_output_tokens: 8000,
626
+ input_cost_per_token: 5.9e-7,
627
+ output_cost_per_token: 7.9e-7,
628
+ provider: 'groq',
629
+ mode: 'chat',
630
+ supports_function_calling: true,
631
+ supports_response_schema: true,
632
+ supports_tool_choice: true,
633
+ },
634
+ {
635
+ model: 'llama-3.1-405b-reasoning',
636
+ max_tokens: 8000,
637
+ max_input_tokens: 8000,
638
+ max_output_tokens: 8000,
639
+ input_cost_per_token: 5.9e-7,
640
+ output_cost_per_token: 7.9e-7,
641
+ provider: 'groq',
642
+ mode: 'chat',
643
+ supports_function_calling: true,
644
+ supports_response_schema: true,
645
+ supports_tool_choice: true,
646
+ },
647
+ {
648
+ model: 'mixtral-8x7b-32768',
649
+ max_tokens: 32768,
650
+ max_input_tokens: 32768,
651
+ max_output_tokens: 32768,
652
+ input_cost_per_token: 2.4e-7,
653
+ output_cost_per_token: 2.4e-7,
654
+ provider: 'groq',
655
+ mode: 'chat',
656
+ supports_function_calling: true,
657
+ supports_response_schema: true,
658
+ supports_tool_choice: true,
659
+ },
660
+ {
661
+ model: 'gemma-7b-it',
662
+ max_tokens: 8192,
663
+ max_input_tokens: 8192,
664
+ max_output_tokens: 8192,
665
+ input_cost_per_token: 7e-8,
666
+ output_cost_per_token: 7e-8,
667
+ provider: 'groq',
668
+ mode: 'chat',
669
+ supports_function_calling: true,
670
+ supports_response_schema: true,
671
+ supports_tool_choice: true,
672
+ },
673
+ {
674
+ model: 'gemma2-9b-it',
675
+ max_tokens: 8192,
676
+ max_input_tokens: 8192,
677
+ max_output_tokens: 8192,
678
+ input_cost_per_token: 2e-7,
679
+ output_cost_per_token: 2e-7,
680
+ provider: 'groq',
681
+ mode: 'chat',
682
+ supports_function_calling: true,
683
+ supports_response_schema: true,
684
+ supports_tool_choice: true,
685
+ },
686
+ {
687
+ model: 'llama3-groq-70b-8192-tool-use-preview',
688
+ max_tokens: 8192,
689
+ max_input_tokens: 8192,
690
+ max_output_tokens: 8192,
691
+ input_cost_per_token: 8.9e-7,
692
+ output_cost_per_token: 8.9e-7,
693
+ provider: 'groq',
694
+ mode: 'chat',
695
+ supports_function_calling: true,
696
+ supports_response_schema: true,
697
+ supports_tool_choice: true,
698
+ },
699
+ {
700
+ model: 'llama3-groq-8b-8192-tool-use-preview',
701
+ max_tokens: 8192,
702
+ max_input_tokens: 8192,
703
+ max_output_tokens: 8192,
704
+ input_cost_per_token: 1.9e-7,
705
+ output_cost_per_token: 1.9e-7,
706
+ provider: 'groq',
707
+ mode: 'chat',
708
+ supports_function_calling: true,
709
+ supports_response_schema: true,
710
+ supports_tool_choice: true,
711
+ },
712
+ ],
713
+ anthropic: [
714
+ {
715
+ model: 'claude-3-5-haiku-latest',
716
+ max_tokens: 8192,
717
+ max_input_tokens: 200000,
718
+ max_output_tokens: 8192,
719
+ input_cost_per_token: 0.0000008,
720
+ output_cost_per_token: 0.000004,
721
+ cache_creation_input_token_cost: 0.00000125,
722
+ cache_read_input_token_cost: 1e-7,
723
+ provider: 'anthropic',
724
+ mode: 'chat',
725
+ supports_function_calling: true,
726
+ supports_vision: true,
727
+ tool_use_system_prompt_tokens: 264,
728
+ supports_assistant_prefill: true,
729
+ supports_prompt_caching: true,
730
+ supports_response_schema: true,
731
+ deprecation_date: '2025-10-01',
732
+ supports_tool_choice: true,
733
+ },
734
+ {
735
+ model: 'claude-3-opus-latest',
736
+ max_tokens: 4096,
737
+ max_input_tokens: 200000,
738
+ max_output_tokens: 4096,
739
+ input_cost_per_token: 0.000015,
740
+ output_cost_per_token: 0.000075,
741
+ cache_creation_input_token_cost: 0.00001875,
742
+ cache_read_input_token_cost: 0.0000015,
743
+ provider: 'anthropic',
744
+ mode: 'chat',
745
+ supports_function_calling: true,
746
+ supports_vision: true,
747
+ tool_use_system_prompt_tokens: 395,
748
+ supports_assistant_prefill: true,
749
+ supports_prompt_caching: true,
750
+ supports_response_schema: true,
751
+ deprecation_date: '2025-03-01',
752
+ supports_tool_choice: true,
753
+ },
754
+ {
755
+ model: 'claude-3-7-sonnet-latest',
756
+ max_tokens: 8192,
757
+ max_input_tokens: 200000,
758
+ max_output_tokens: 8192,
759
+ input_cost_per_token: 0.000003,
760
+ output_cost_per_token: 0.000015,
761
+ cache_creation_input_token_cost: 0.00000375,
762
+ cache_read_input_token_cost: 3e-7,
763
+ provider: 'anthropic',
764
+ mode: 'chat',
765
+ supports_function_calling: true,
766
+ supports_vision: true,
767
+ tool_use_system_prompt_tokens: 159,
768
+ supports_assistant_prefill: true,
769
+ supports_prompt_caching: true,
770
+ supports_response_schema: true,
771
+ deprecation_date: '2025-06-01',
772
+ supports_tool_choice: true,
773
+ },
774
+ ],
775
+ gemini: [
776
+ {
777
+ model: 'gemini-2.0-flash',
778
+ max_tokens: 8192,
779
+ max_input_tokens: 1048576,
780
+ max_output_tokens: 8192,
781
+ max_images_per_prompt: 3000,
782
+ max_videos_per_prompt: 10,
783
+ max_video_length: 1,
784
+ max_audio_length_hours: 8.4,
785
+ max_audio_per_prompt: 1,
786
+ max_pdf_size_mb: 30,
787
+ input_cost_per_audio_token: 7e-7,
788
+ input_cost_per_token: 0.0000001,
789
+ output_cost_per_token: 0.0000004,
790
+ provider: 'gemini',
791
+ mode: 'chat',
792
+ rpm: 10000,
793
+ tpm: 10000000,
794
+ supports_system_messages: true,
795
+ supports_function_calling: true,
796
+ supports_vision: true,
797
+ supports_response_schema: true,
798
+ supports_audio_output: true,
799
+ supports_tool_choice: true,
800
+ source: 'https://ai.google.dev/pricing#2_0flash',
801
+ },
802
+ {
803
+ model: 'gemini-2.0-flash-lite',
804
+ max_tokens: 8192,
805
+ max_input_tokens: 1048576,
806
+ max_output_tokens: 8192,
807
+ max_images_per_prompt: 3000,
808
+ max_videos_per_prompt: 10,
809
+ max_video_length: 1,
810
+ max_audio_length_hours: 8.4,
811
+ max_audio_per_prompt: 1,
812
+ max_pdf_size_mb: 30,
813
+ input_cost_per_audio_token: 7.5e-8,
814
+ input_cost_per_token: 0.000000075,
815
+ output_cost_per_token: 0.0000003,
816
+ provider: 'gemini',
817
+ mode: 'chat',
818
+ rpm: 60000,
819
+ tpm: 10000000,
820
+ supports_system_messages: true,
821
+ supports_function_calling: true,
822
+ supports_vision: true,
823
+ supports_response_schema: true,
824
+ supports_audio_output: false,
825
+ supports_tool_choice: true,
826
+ source:
827
+ 'https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash-lite',
828
+ },
829
+ {
830
+ model: 'gemini-2.0-flash-thinking-exp',
831
+ max_tokens: 8192,
832
+ max_input_tokens: 1048576,
833
+ max_output_tokens: 8192,
834
+ max_images_per_prompt: 3000,
835
+ max_videos_per_prompt: 10,
836
+ max_video_length: 1,
837
+ max_audio_length_hours: 8.4,
838
+ max_audio_per_prompt: 1,
839
+ max_pdf_size_mb: 30,
840
+ input_cost_per_image: 0,
841
+ input_cost_per_video_per_second: 0,
842
+ input_cost_per_audio_per_second: 0,
843
+ input_cost_per_token: 0,
844
+ input_cost_per_character: 0,
845
+ input_cost_per_token_above_128k_tokens: 0,
846
+ input_cost_per_character_above_128k_tokens: 0,
847
+ input_cost_per_image_above_128k_tokens: 0,
848
+ input_cost_per_video_per_second_above_128k_tokens: 0,
849
+ input_cost_per_audio_per_second_above_128k_tokens: 0,
850
+ output_cost_per_token: 0,
851
+ output_cost_per_character: 0,
852
+ output_cost_per_token_above_128k_tokens: 0,
853
+ output_cost_per_character_above_128k_tokens: 0,
854
+ provider: 'gemini',
855
+ mode: 'chat',
856
+ supports_system_messages: true,
857
+ supports_function_calling: true,
858
+ supports_vision: true,
859
+ supports_response_schema: true,
860
+ supports_audio_output: true,
861
+ tpm: 4000000,
862
+ rpm: 10,
863
+ source:
864
+ 'https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash',
865
+ supports_tool_choice: true,
866
+ },
867
+ ],
868
+ kimi: [
869
+ {
870
+ model: 'kimi-k2-0711-preview',
871
+ max_tokens: 16384,
872
+ max_input_tokens: 128000,
873
+ max_output_tokens: 16384,
874
+ input_cost_per_token: 0.000003,
875
+ output_cost_per_token: 0.000015,
876
+ provider: 'kimi',
877
+ mode: 'chat',
878
+ supports_function_calling: true,
879
+ supports_system_messages: true,
880
+ supports_tool_choice: true,
881
+ },
882
+ ],
883
+ bigdream: [
884
+ {
885
+ model: 'claude-sonnet-4-20250514',
886
+ max_tokens: 8192,
887
+ max_input_tokens: 200000,
888
+ max_output_tokens: 8192,
889
+ input_cost_per_token: 0.000003,
890
+ output_cost_per_token: 0.000015,
891
+ provider: 'bigdream',
892
+ mode: 'chat',
893
+ supports_function_calling: true,
894
+ supports_vision: true,
895
+ supports_system_messages: true,
896
+ supports_tool_choice: true,
897
+ supports_prompt_caching: true,
898
+ },
899
+ ],
900
+ qwen: [],
901
+ glm: [],
902
+ minimax: [
903
+ {
904
+ model: 'abab6.5s-chat',
905
+ max_tokens: 8192,
906
+ max_input_tokens: 245760,
907
+ max_output_tokens: 8192,
908
+ input_cost_per_token: 0.000001,
909
+ output_cost_per_token: 0.000003,
910
+ provider: 'minimax',
911
+ mode: 'chat',
912
+ supports_function_calling: true,
913
+ supports_system_messages: true,
914
+ supports_tool_choice: true,
915
+ },
916
+ {
917
+ model: 'abab6.5g-chat',
918
+ max_tokens: 8192,
919
+ max_input_tokens: 245760,
920
+ max_output_tokens: 8192,
921
+ input_cost_per_token: 0.000002,
922
+ output_cost_per_token: 0.000006,
923
+ provider: 'minimax',
924
+ mode: 'chat',
925
+ supports_function_calling: true,
926
+ supports_system_messages: true,
927
+ supports_tool_choice: true,
928
+ },
929
+ {
930
+ model: 'abab5.5s-chat',
931
+ max_tokens: 8192,
932
+ max_input_tokens: 16384,
933
+ max_output_tokens: 8192,
934
+ input_cost_per_token: 0.0000005,
935
+ output_cost_per_token: 0.000002,
936
+ provider: 'minimax',
937
+ mode: 'chat',
938
+ supports_function_calling: true,
939
+ supports_system_messages: true,
940
+ supports_tool_choice: true,
941
+ },
942
+ ],
943
+ 'baidu-qianfan': [],
944
+ siliconflow: [],
945
+ ollama: [],
946
+ }
947
+
948
+ export const providers = {
949
+ kimi: {
950
+ name: 'Kimi (Moonshot)',
951
+ baseURL: 'https://api.moonshot.cn/v1',
952
+ },
953
+ anthropic: {
954
+ name: 'Claude',
955
+ baseURL: 'https://api.anthropic.com',
956
+ },
957
+ deepseek: {
958
+ name: 'DeepSeek',
959
+ baseURL: 'https://api.deepseek.com',
960
+ },
961
+ qwen: {
962
+ name: 'Qwen (Alibaba)',
963
+ baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
964
+ },
965
+ openai: {
966
+ name: 'OpenAI',
967
+ baseURL: 'https://api.openai.com/v1',
968
+ },
969
+ ollama: {
970
+ name: 'Ollama',
971
+ baseURL: 'http://localhost:11434/v1',
972
+ },
973
+ gemini: {
974
+ name: 'Gemini',
975
+ baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai',
976
+ },
977
+ bigdream: {
978
+ name: 'BigDream',
979
+ baseURL: 'https://api-key.info',
980
+ },
981
+ opendev: {
982
+ name: 'OpenDev',
983
+ baseURL: 'https://api.openai-next.com',
984
+ },
985
+ 'custom-openai': {
986
+ name: 'Custom OpenAI-Compatible API',
987
+ baseURL: '', // Will be configured by user
988
+ },
989
+ openrouter: {
990
+ name: 'OpenRouter',
991
+ baseURL: 'https://openrouter.ai/api/v1',
992
+ },
993
+ minimax: {
994
+ name: 'MiniMax',
995
+ baseURL: 'https://api.minimaxi.com/v1',
996
+ },
997
+ siliconflow: {
998
+ name: 'SiliconFlow',
999
+ baseURL: 'https://api.siliconflow.cn/v1',
1000
+ },
1001
+ glm: {
1002
+ name: 'GLM (Zhipu AI)',
1003
+ baseURL: 'https://open.bigmodel.cn/api/paas/v4',
1004
+ },
1005
+ 'baidu-qianfan': {
1006
+ name: 'Baidu Qianfan',
1007
+ baseURL: 'https://qianfan.baidubce.com/v2',
1008
+ },
1009
+ mistral: {
1010
+ name: 'Mistral',
1011
+ baseURL: 'https://api.mistral.ai/v1',
1012
+ },
1013
+ xai: {
1014
+ name: 'xAI',
1015
+ baseURL: 'https://api.x.ai/v1',
1016
+ },
1017
+ groq: {
1018
+ name: 'Groq',
1019
+ baseURL: 'https://api.groq.com/openai/v1',
1020
+ },
1021
+ azure: {
1022
+ name: 'Azure OpenAI',
1023
+ baseURL: '', // Will be dynamically constructed based on resource name
1024
+ },
1025
+ }