multi-forge 0.2.0__py3-none-any.whl

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 (311) hide show
  1. forge/__init__.py +3 -0
  2. forge/_extensions/agents/.gitkeep +0 -0
  3. forge/_extensions/commands/.gitkeep +0 -0
  4. forge/_extensions/skills/analyze/SKILL.md +87 -0
  5. forge/_extensions/skills/challenge/SKILL.md +91 -0
  6. forge/_extensions/skills/consensus/SKILL.md +120 -0
  7. forge/_extensions/skills/consensus/resources/code_consensus_evaluation.md +94 -0
  8. forge/_extensions/skills/consensus/resources/consensus_evaluation.md +70 -0
  9. forge/_extensions/skills/consensus/resources/synthesis.md +101 -0
  10. forge/_extensions/skills/debate/SKILL.md +116 -0
  11. forge/_extensions/skills/debate/resources/code_debate_evaluation.md +101 -0
  12. forge/_extensions/skills/debate/resources/debate_evaluation.md +90 -0
  13. forge/_extensions/skills/panel/SKILL.md +141 -0
  14. forge/_extensions/skills/panel/resources/synthesis.md +103 -0
  15. forge/_extensions/skills/qa/SKILL.md +704 -0
  16. forge/_extensions/skills/qa/resources/checklist/0-enable.md +78 -0
  17. forge/_extensions/skills/qa/resources/checklist/1-preflight.md +24 -0
  18. forge/_extensions/skills/qa/resources/checklist/10-resume.md +143 -0
  19. forge/_extensions/skills/qa/resources/checklist/11-config.md +150 -0
  20. forge/_extensions/skills/qa/resources/checklist/12-search.md +58 -0
  21. forge/_extensions/skills/qa/resources/checklist/13-guard.md +237 -0
  22. forge/_extensions/skills/qa/resources/checklist/14-workflow.md +305 -0
  23. forge/_extensions/skills/qa/resources/checklist/15-skills.md +155 -0
  24. forge/_extensions/skills/qa/resources/checklist/16-handoff.md +224 -0
  25. forge/_extensions/skills/qa/resources/checklist/17-info.md +50 -0
  26. forge/_extensions/skills/qa/resources/checklist/18-disable.md +84 -0
  27. forge/_extensions/skills/qa/resources/checklist/19-uninstall.md +146 -0
  28. forge/_extensions/skills/qa/resources/checklist/2-extensions.md +188 -0
  29. forge/_extensions/skills/qa/resources/checklist/20-cleanup.md +36 -0
  30. forge/_extensions/skills/qa/resources/checklist/3-auth.md +234 -0
  31. forge/_extensions/skills/qa/resources/checklist/4-proxy.md +481 -0
  32. forge/_extensions/skills/qa/resources/checklist/5-session.md +541 -0
  33. forge/_extensions/skills/qa/resources/checklist/6-hooks.md +275 -0
  34. forge/_extensions/skills/qa/resources/checklist/7-costs.md +309 -0
  35. forge/_extensions/skills/qa/resources/checklist/8-status-line.md +174 -0
  36. forge/_extensions/skills/qa/resources/checklist/9-direct-commands.md +146 -0
  37. forge/_extensions/skills/qa/resources/checklist.md +103 -0
  38. forge/_extensions/skills/qa/resources/report-template.md +62 -0
  39. forge/_extensions/skills/qa/scripts/start-container.sh +529 -0
  40. forge/_extensions/skills/qa/scripts/walkthrough-state.py +1137 -0
  41. forge/_extensions/skills/review/SKILL.md +125 -0
  42. forge/_extensions/skills/review/references/claude-4.6.md +474 -0
  43. forge/_extensions/skills/review/references/claude-4.7.md +710 -0
  44. forge/_extensions/skills/review/references/gemini-3.1.md +546 -0
  45. forge/_extensions/skills/review/references/gpt-5.5.md +490 -0
  46. forge/_extensions/skills/review/references/skills-writing-guide.md +1588 -0
  47. forge/_extensions/skills/review/resources/code-anthropic.md +160 -0
  48. forge/_extensions/skills/review/resources/code-gemini.md +184 -0
  49. forge/_extensions/skills/review/resources/code-openai.md +203 -0
  50. forge/_extensions/skills/review/resources/code.md +160 -0
  51. forge/_extensions/skills/review-docs/SKILL.md +121 -0
  52. forge/_extensions/skills/review-docs/resources/docs-anthropic.md +170 -0
  53. forge/_extensions/skills/review-docs/resources/docs-gemini.md +204 -0
  54. forge/_extensions/skills/review-docs/resources/docs-openai.md +231 -0
  55. forge/_extensions/skills/review-docs/resources/docs.md +170 -0
  56. forge/_extensions/skills/smoke-test/SKILL.md +27 -0
  57. forge/_extensions/skills/smoke-test/scripts/smoke-test.sh +118 -0
  58. forge/_extensions/skills/understand/SKILL.md +148 -0
  59. forge/_extensions/skills/understand/resources/code-anthropic.md +163 -0
  60. forge/_extensions/skills/understand/resources/code-gemini.md +194 -0
  61. forge/_extensions/skills/understand/resources/code-openai.md +181 -0
  62. forge/_extensions/skills/understand/resources/code.md +163 -0
  63. forge/_extensions/skills/understand/resources/docs-anthropic.md +177 -0
  64. forge/_extensions/skills/understand/resources/docs-gemini.md +202 -0
  65. forge/_extensions/skills/understand/resources/docs-openai.md +191 -0
  66. forge/_extensions/skills/understand/resources/docs.md +177 -0
  67. forge/_extensions/skills/walkthrough/SKILL.md +599 -0
  68. forge/_extensions/skills/walkthrough/resources/checklist.md +765 -0
  69. forge/_extensions/skills/walkthrough/scripts/run-in-repo.sh +118 -0
  70. forge/_extensions/skills/walkthrough/scripts/setup-test-repo.sh +198 -0
  71. forge/_extensions/skills/walkthrough/scripts/walkthrough-state.py +1137 -0
  72. forge/backend/__init__.py +174 -0
  73. forge/backend/adapters/__init__.py +38 -0
  74. forge/backend/adapters/litellm.py +158 -0
  75. forge/backend/creation.py +89 -0
  76. forge/backend/registry.py +178 -0
  77. forge/cli/__init__.py +16 -0
  78. forge/cli/auth.py +483 -0
  79. forge/cli/backend.py +298 -0
  80. forge/cli/claude.py +411 -0
  81. forge/cli/config_cmd.py +303 -0
  82. forge/cli/extensions.py +1001 -0
  83. forge/cli/gc.py +165 -0
  84. forge/cli/guard.py +1018 -0
  85. forge/cli/guards.py +106 -0
  86. forge/cli/handoff.py +110 -0
  87. forge/cli/hooks/__init__.py +36 -0
  88. forge/cli/hooks/_group.py +20 -0
  89. forge/cli/hooks/_helpers.py +149 -0
  90. forge/cli/hooks/commands.py +1677 -0
  91. forge/cli/hooks/direct_commands.py +1304 -0
  92. forge/cli/hooks/install.py +232 -0
  93. forge/cli/hooks/policy.py +151 -0
  94. forge/cli/hooks/read_hygiene.py +74 -0
  95. forge/cli/hooks/verification.py +370 -0
  96. forge/cli/logs.py +406 -0
  97. forge/cli/main.py +292 -0
  98. forge/cli/proxy.py +1821 -0
  99. forge/cli/proxy_costs.py +313 -0
  100. forge/cli/search.py +416 -0
  101. forge/cli/session.py +892 -0
  102. forge/cli/session_addendum.py +81 -0
  103. forge/cli/session_fork.py +750 -0
  104. forge/cli/session_handoff.py +141 -0
  105. forge/cli/session_lifecycle.py +2053 -0
  106. forge/cli/session_manage.py +1336 -0
  107. forge/cli/session_memory.py +201 -0
  108. forge/cli/status_line.py +1398 -0
  109. forge/cli/workflow.py +1964 -0
  110. forge/config/__init__.py +110 -0
  111. forge/config/dataclass_utils.py +88 -0
  112. forge/config/defaults/__init__.py +0 -0
  113. forge/config/defaults/backends/__init__.py +0 -0
  114. forge/config/defaults/backends/litellm.yaml +196 -0
  115. forge/config/defaults/templates/__init__.py +0 -0
  116. forge/config/defaults/templates/litellm-anthropic-local.yaml +33 -0
  117. forge/config/defaults/templates/litellm-anthropic.yaml +24 -0
  118. forge/config/defaults/templates/litellm-gemini-flash-local.yaml +37 -0
  119. forge/config/defaults/templates/litellm-gemini-local.yaml +32 -0
  120. forge/config/defaults/templates/litellm-gemini-test.yaml +34 -0
  121. forge/config/defaults/templates/litellm-gemini.yaml +21 -0
  122. forge/config/defaults/templates/litellm-openai-codex-local.yaml +36 -0
  123. forge/config/defaults/templates/litellm-openai-local.yaml +38 -0
  124. forge/config/defaults/templates/litellm-openai.yaml +28 -0
  125. forge/config/defaults/templates/openrouter-anthropic.yaml +23 -0
  126. forge/config/defaults/templates/openrouter-deepseek.yaml +26 -0
  127. forge/config/defaults/templates/openrouter-gemini-flash.yaml +26 -0
  128. forge/config/defaults/templates/openrouter-gemini.yaml +23 -0
  129. forge/config/defaults/templates/openrouter-glm.yaml +23 -0
  130. forge/config/defaults/templates/openrouter-kimi.yaml +30 -0
  131. forge/config/defaults/templates/openrouter-minimax.yaml +26 -0
  132. forge/config/defaults/templates/openrouter-openai-codex.yaml +23 -0
  133. forge/config/defaults/templates/openrouter-openai.yaml +28 -0
  134. forge/config/defaults/templates/openrouter-qwen.yaml +25 -0
  135. forge/config/loader.py +675 -0
  136. forge/config/schema.py +448 -0
  137. forge/core/__init__.py +5 -0
  138. forge/core/auth/__init__.py +67 -0
  139. forge/core/auth/capabilities.py +219 -0
  140. forge/core/auth/credentials_file.py +244 -0
  141. forge/core/auth/protocols.py +18 -0
  142. forge/core/auth/secrets.py +243 -0
  143. forge/core/auth/template_secrets.py +112 -0
  144. forge/core/data/__init__.py +5 -0
  145. forge/core/data/model_catalog.yaml +1522 -0
  146. forge/core/data/pricing.yaml +140 -0
  147. forge/core/data/system_prompt_addendums/__init__.py +0 -0
  148. forge/core/data/system_prompt_addendums/gemini.md +330 -0
  149. forge/core/data/system_prompt_addendums/openai.md +328 -0
  150. forge/core/llm/__init__.py +231 -0
  151. forge/core/llm/clients/__init__.py +14 -0
  152. forge/core/llm/clients/base.py +115 -0
  153. forge/core/llm/clients/litellm.py +619 -0
  154. forge/core/llm/clients/openai_compat.py +244 -0
  155. forge/core/llm/clients/openrouter.py +234 -0
  156. forge/core/llm/credentials.py +439 -0
  157. forge/core/llm/detection.py +86 -0
  158. forge/core/llm/errors.py +44 -0
  159. forge/core/llm/protocols.py +80 -0
  160. forge/core/llm/types.py +176 -0
  161. forge/core/logging.py +146 -0
  162. forge/core/models/__init__.py +91 -0
  163. forge/core/models/catalog.py +467 -0
  164. forge/core/models/pricing.py +165 -0
  165. forge/core/models/types.py +167 -0
  166. forge/core/naming.py +212 -0
  167. forge/core/ops/__init__.py +73 -0
  168. forge/core/ops/context.py +141 -0
  169. forge/core/ops/gc.py +802 -0
  170. forge/core/ops/proxy.py +146 -0
  171. forge/core/ops/resolution.py +135 -0
  172. forge/core/ops/session.py +344 -0
  173. forge/core/ops/session_context.py +548 -0
  174. forge/core/paths.py +38 -0
  175. forge/core/process.py +54 -0
  176. forge/core/reactive/__init__.py +38 -0
  177. forge/core/reactive/cost_tracking.py +300 -0
  178. forge/core/reactive/env.py +180 -0
  179. forge/core/reactive/proxy.py +78 -0
  180. forge/core/reactive/routing.py +622 -0
  181. forge/core/reactive/session_runner.py +185 -0
  182. forge/core/reactive/structured_output.py +62 -0
  183. forge/core/reactive/tagger.py +94 -0
  184. forge/core/reactive/throttle.py +132 -0
  185. forge/core/state/__init__.py +59 -0
  186. forge/core/state/exceptions.py +59 -0
  187. forge/core/state/io.py +140 -0
  188. forge/core/state/lock.py +99 -0
  189. forge/core/state/timestamps.py +60 -0
  190. forge/core/transcript.py +78 -0
  191. forge/core/typing_helpers.py +24 -0
  192. forge/core/workqueue/__init__.py +67 -0
  193. forge/core/workqueue/queue.py +552 -0
  194. forge/core/workqueue/types.py +63 -0
  195. forge/guard/__init__.py +26 -0
  196. forge/guard/deterministic/__init__.py +26 -0
  197. forge/guard/deterministic/base.py +158 -0
  198. forge/guard/deterministic/coding_standards.py +256 -0
  199. forge/guard/deterministic/registry.py +148 -0
  200. forge/guard/deterministic/tdd.py +171 -0
  201. forge/guard/engine.py +216 -0
  202. forge/guard/protocols.py +91 -0
  203. forge/guard/queries.py +96 -0
  204. forge/guard/semantic/__init__.py +34 -0
  205. forge/guard/semantic/promotion.py +18 -0
  206. forge/guard/semantic/supervisor.py +813 -0
  207. forge/guard/semantic/verdict.py +183 -0
  208. forge/guard/store.py +124 -0
  209. forge/guard/team/__init__.py +6 -0
  210. forge/guard/team/config.py +24 -0
  211. forge/guard/team/handlers.py +209 -0
  212. forge/guard/team/prompts.py +41 -0
  213. forge/guard/types.py +125 -0
  214. forge/guard/workflow/__init__.py +17 -0
  215. forge/guard/workflow/branches.py +67 -0
  216. forge/guard/workflow/config.py +63 -0
  217. forge/guard/workflow/divergence.py +113 -0
  218. forge/guard/workflow/policy.py +87 -0
  219. forge/guard/workflow/stages.py +205 -0
  220. forge/install/__init__.py +55 -0
  221. forge/install/cli.py +281 -0
  222. forge/install/exceptions.py +163 -0
  223. forge/install/hooks.py +109 -0
  224. forge/install/installer.py +1037 -0
  225. forge/install/models.py +321 -0
  226. forge/install/preset.py +272 -0
  227. forge/install/settings_merge.py +831 -0
  228. forge/install/tracking.py +238 -0
  229. forge/install/version.py +141 -0
  230. forge/proxy/__init__.py +0 -0
  231. forge/proxy/base_client.py +181 -0
  232. forge/proxy/client_adapter.py +476 -0
  233. forge/proxy/client_factory.py +531 -0
  234. forge/proxy/converters.py +1206 -0
  235. forge/proxy/cost_logger.py +132 -0
  236. forge/proxy/cost_tracker.py +242 -0
  237. forge/proxy/data_models.py +338 -0
  238. forge/proxy/error_hints.py +92 -0
  239. forge/proxy/metrics.py +222 -0
  240. forge/proxy/model_spec.py +158 -0
  241. forge/proxy/proxies.py +333 -0
  242. forge/proxy/proxy_identity.py +134 -0
  243. forge/proxy/proxy_orchestrator.py +1018 -0
  244. forge/proxy/proxy_startup.py +54 -0
  245. forge/proxy/server.py +1561 -0
  246. forge/proxy/utils.py +537 -0
  247. forge/review/__init__.py +6 -0
  248. forge/review/adversarial.py +111 -0
  249. forge/review/consensus.py +236 -0
  250. forge/review/engine.py +356 -0
  251. forge/review/models.py +437 -0
  252. forge/review/resources/__init__.py +5 -0
  253. forge/review/resources/codereview-performance.md +85 -0
  254. forge/review/resources/codereview-quick.md +75 -0
  255. forge/review/resources/codereview-security.md +92 -0
  256. forge/review/resources/codereview.md +85 -0
  257. forge/review/resources/docreview-quick.md +75 -0
  258. forge/review/resources/docreview.md +86 -0
  259. forge/review/resources/thinkdeep.md +89 -0
  260. forge/review/routing.py +368 -0
  261. forge/review/synthesis.py +73 -0
  262. forge/runtime_config.py +438 -0
  263. forge/search/__init__.py +55 -0
  264. forge/search/bm25_store.py +264 -0
  265. forge/search/content_store.py +197 -0
  266. forge/search/engine.py +352 -0
  267. forge/search/exceptions.py +51 -0
  268. forge/search/extractor.py +234 -0
  269. forge/search/index_state.py +295 -0
  270. forge/search/store.py +215 -0
  271. forge/search/tokenizer.py +24 -0
  272. forge/session/__init__.py +130 -0
  273. forge/session/active.py +339 -0
  274. forge/session/artifacts.py +202 -0
  275. forge/session/claude/__init__.py +50 -0
  276. forge/session/claude/cleanup.py +105 -0
  277. forge/session/claude/invoke.py +236 -0
  278. forge/session/claude/paths.py +200 -0
  279. forge/session/cleanup.py +216 -0
  280. forge/session/config.py +34 -0
  281. forge/session/direct_model.py +107 -0
  282. forge/session/effective.py +169 -0
  283. forge/session/exceptions.py +255 -0
  284. forge/session/handoff.py +881 -0
  285. forge/session/handoff_agent.py +544 -0
  286. forge/session/hooks/__init__.py +35 -0
  287. forge/session/hooks/models.py +73 -0
  288. forge/session/hooks/session_start.py +507 -0
  289. forge/session/identity.py +84 -0
  290. forge/session/index.py +553 -0
  291. forge/session/manager.py +1506 -0
  292. forge/session/models.py +572 -0
  293. forge/session/overrides.py +344 -0
  294. forge/session/plan_resolution.py +286 -0
  295. forge/session/prev_sessions.py +128 -0
  296. forge/session/store.py +431 -0
  297. forge/session/validation.py +47 -0
  298. forge/session/worktree/__init__.py +65 -0
  299. forge/session/worktree/cleanup.py +262 -0
  300. forge/session/worktree/config_copy.py +203 -0
  301. forge/session/worktree/create.py +332 -0
  302. forge/sidecar/__init__.py +29 -0
  303. forge/sidecar/container.py +161 -0
  304. forge/sidecar/docker.py +86 -0
  305. forge/sidecar/secrets.py +19 -0
  306. multi_forge-0.2.0.dist-info/METADATA +242 -0
  307. multi_forge-0.2.0.dist-info/RECORD +311 -0
  308. multi_forge-0.2.0.dist-info/WHEEL +4 -0
  309. multi_forge-0.2.0.dist-info/entry_points.txt +2 -0
  310. multi_forge-0.2.0.dist-info/licenses/LICENSE +203 -0
  311. multi_forge-0.2.0.dist-info/licenses/NOTICE +14 -0
@@ -0,0 +1,1522 @@
1
+ # Central Model Catalog - Intrinsic Properties & Safe Defaults
2
+ # ============================================================
3
+ # This file is the single source of truth for model capabilities.
4
+ # Families reference models by ID; this defines what each model CAN do.
5
+ #
6
+ # DO NOT put operational config here (tier mappings, routing, etc.)
7
+ # Those belong in template YAML overlays under config/defaults/templates/
8
+ #
9
+ # HYPERPARAMETER FIELDS:
10
+ # - temperature_constraint: "fixed" (must be 1.0) or "range" (configurable)
11
+ # - supports_top_p: Whether top_p sampling is supported (reasoning models don't)
12
+ # - default_timeout_seconds: Safe default timeout (client can override)
13
+ #
14
+ # PROMPT CACHING (via LiteLLM - see docs.litellm.ai/docs/completion/prompt_caching):
15
+ # LiteLLM reports cached_tokens for: OpenAI, Anthropic, Bedrock, Deepseek (NOT Gemini)
16
+ # - prompt_caching.supports: Whether LiteLLM supports prompt caching for this model
17
+ # - prompt_caching.mechanism: How the provider implements caching
18
+ # "auto": Server-side automatic (OpenAI/Deepseek) - no client action needed
19
+ # "cache_control": Requires explicit cache_control blocks (Anthropic)
20
+ # - prompt_caching.min_tokens: Minimum tokens for caching to activate
21
+ # - prompt_caching.max_cache_blocks: Max cache_control blocks (Anthropic = 4)
22
+ #
23
+ # NOTE: Only Anthropic caching can be controlled via input (cache_control markers).
24
+ # OpenAI/Deepseek cache automatically - client policies have no effect on them.
25
+
26
+ schema_version: 1
27
+
28
+ # =============================================================================
29
+ # DEFAULTS - Per-provider edge picks at each tier
30
+ # =============================================================================
31
+ # Single source of truth for "which model should we use by default?"
32
+ # Review defaults, tests, and proxy templates derive from these.
33
+ # Update here when adopting a new model family.
34
+ defaults:
35
+ openai:
36
+ haiku: gpt-5.4-mini
37
+ sonnet: gpt-5.5
38
+ opus: gpt-5.5
39
+ gemini:
40
+ haiku: gemini-3-flash-preview
41
+ sonnet: gemini-3.1-pro-preview
42
+ opus: gemini-3.1-pro-preview
43
+ anthropic:
44
+ haiku: claude-haiku-4-5-20251001
45
+ sonnet: claude-sonnet-4-6
46
+ opus: claude-opus-4-6
47
+ openrouter:
48
+ haiku: claude-haiku-4-5-20251001
49
+ sonnet: claude-sonnet-4-6
50
+ opus: claude-opus-4-6
51
+ deepseek:
52
+ haiku: deepseek-v4-flash
53
+ sonnet: deepseek-v4-pro
54
+ opus: deepseek-v4-pro
55
+ minimax:
56
+ haiku: gemma-4-31b-it
57
+ sonnet: minimax-m2.7
58
+ opus: minimax-m2.7
59
+ qwen:
60
+ haiku: qwen3.6-flash
61
+ sonnet: qwen3.6-plus
62
+ opus: qwen3.6-max-preview
63
+ glm:
64
+ haiku: glm-4.7-flash
65
+ sonnet: glm-5.1
66
+ opus: glm-5.1
67
+ kimi:
68
+ haiku: gemma-4-31b-it
69
+ sonnet: kimi-k2.6
70
+ opus: kimi-k2.6
71
+
72
+ # =============================================================================
73
+ # MODELS - Canonical IDs are provider-agnostic
74
+ # =============================================================================
75
+ models:
76
+ # ---------------------------------------------------------------------------
77
+ # OpenAI Models (via Azure or direct)
78
+ # ---------------------------------------------------------------------------
79
+ gpt-5.4:
80
+ friendly_name: GPT-5.4
81
+ context_window_tokens: 1050000
82
+ max_output_tokens: 128000
83
+ max_thinking_tokens: null
84
+ supports_thinking: true
85
+ supports_images: true
86
+ supports_verbosity: true
87
+ verbosity_levels: [low, medium, high]
88
+ temperature_constraint: fixed
89
+ temperature: 1.0
90
+ supports_top_p: false
91
+ default_timeout_seconds: 180
92
+ prompt_caching:
93
+ supports: true
94
+ mechanism: auto
95
+ min_tokens: 1024
96
+ native_thinking_param: reasoning_effort
97
+ litellm_reasoning_efforts: [none, low, medium, high, xhigh]
98
+ default_reasoning_effort: medium
99
+ use_responses_api: true
100
+ intelligence_score: 99
101
+ system_prompt_addendum: system_prompt_addendums/openai.md
102
+ tags: []
103
+
104
+ gpt-5.5:
105
+ friendly_name: GPT-5.5
106
+ context_window_tokens: 1050000
107
+ max_output_tokens: 128000
108
+ max_thinking_tokens: null
109
+ supports_thinking: true
110
+ supports_images: true
111
+ supports_verbosity: true
112
+ verbosity_levels: [low, medium, high]
113
+ temperature_constraint: fixed
114
+ temperature: 1.0
115
+ supports_top_p: false
116
+ default_timeout_seconds: 180
117
+ prompt_caching:
118
+ supports: true
119
+ mechanism: auto
120
+ min_tokens: 1024
121
+ native_thinking_param: reasoning_effort
122
+ litellm_reasoning_efforts: [none, low, medium, high, xhigh]
123
+ default_reasoning_effort: medium
124
+ use_responses_api: true
125
+ intelligence_score: 99
126
+ system_prompt_addendum: system_prompt_addendums/openai.md
127
+ tags: []
128
+
129
+ gpt-5.5-pro:
130
+ friendly_name: GPT-5.5 Pro
131
+ context_window_tokens: 1050000
132
+ max_output_tokens: 128000
133
+ max_thinking_tokens: null
134
+ supports_thinking: true
135
+ supports_images: true
136
+ supports_verbosity: true
137
+ verbosity_levels: [low, medium, high]
138
+ temperature_constraint: fixed
139
+ temperature: 1.0
140
+ supports_top_p: false
141
+ default_timeout_seconds: 300
142
+ prompt_caching:
143
+ supports: false
144
+ native_thinking_param: reasoning_effort
145
+ litellm_reasoning_efforts: [low, medium, high, xhigh]
146
+ default_reasoning_effort: medium
147
+ use_responses_api: true
148
+ intelligence_score: 100
149
+ system_prompt_addendum: system_prompt_addendums/openai.md
150
+ tags: []
151
+
152
+ gpt-5.4-pro:
153
+ friendly_name: GPT-5.4 Pro
154
+ context_window_tokens: 1050000
155
+ max_output_tokens: 128000
156
+ max_thinking_tokens: null
157
+ supports_thinking: true
158
+ supports_images: true
159
+ supports_verbosity: true
160
+ verbosity_levels: [low, medium, high]
161
+ temperature_constraint: fixed
162
+ temperature: 1.0
163
+ supports_top_p: false
164
+ default_timeout_seconds: 300
165
+ prompt_caching:
166
+ supports: true
167
+ mechanism: auto
168
+ min_tokens: 1024
169
+ native_thinking_param: reasoning_effort
170
+ litellm_reasoning_efforts: [medium, high, xhigh]
171
+ default_reasoning_effort: high
172
+ use_responses_api: true
173
+ intelligence_score: 100
174
+ system_prompt_addendum: system_prompt_addendums/openai.md
175
+ tags: []
176
+
177
+ gpt-5.4-mini:
178
+ friendly_name: GPT-5.4 Mini
179
+ context_window_tokens: 400000
180
+ max_output_tokens: 128000
181
+ max_thinking_tokens: null
182
+ supports_thinking: true
183
+ supports_images: true
184
+ supports_verbosity: true
185
+ verbosity_levels: [low, medium, high]
186
+ temperature_constraint: fixed
187
+ temperature: 1.0
188
+ supports_top_p: false
189
+ default_timeout_seconds: 120
190
+ prompt_caching:
191
+ supports: true
192
+ mechanism: auto
193
+ min_tokens: 1024
194
+ native_thinking_param: reasoning_effort
195
+ litellm_reasoning_efforts: [none, low, medium, high, xhigh]
196
+ default_reasoning_effort: medium
197
+ use_responses_api: true
198
+ intelligence_score: 85
199
+ system_prompt_addendum: system_prompt_addendums/openai.md
200
+ tags: []
201
+
202
+ gpt-5.4-nano:
203
+ friendly_name: GPT-5.4 Nano
204
+ context_window_tokens: 400000
205
+ max_output_tokens: 128000
206
+ max_thinking_tokens: null
207
+ supports_thinking: true
208
+ supports_images: true
209
+ supports_verbosity: true
210
+ verbosity_levels: [low, medium, high]
211
+ temperature_constraint: fixed
212
+ temperature: 1.0
213
+ supports_top_p: false
214
+ default_timeout_seconds: 90
215
+ prompt_caching:
216
+ supports: true
217
+ mechanism: auto
218
+ min_tokens: 1024
219
+ native_thinking_param: reasoning_effort
220
+ litellm_reasoning_efforts: [none, low, medium, high, xhigh]
221
+ default_reasoning_effort: minimal
222
+ use_responses_api: true
223
+ intelligence_score: 76
224
+ system_prompt_addendum: system_prompt_addendums/openai.md
225
+ tags: []
226
+
227
+ gpt-5.2:
228
+ friendly_name: GPT-5.2
229
+ context_window_tokens: 400000
230
+ max_output_tokens: 128000
231
+ max_thinking_tokens: null
232
+ supports_thinking: true
233
+ supports_images: true
234
+ supports_verbosity: true
235
+ verbosity_levels: [low, medium, high]
236
+ temperature_constraint: fixed
237
+ temperature: 1.0
238
+ supports_top_p: false # Reasoning models don't support top_p
239
+ default_timeout_seconds: 180 # Reasoning models need longer timeouts
240
+ prompt_caching:
241
+ supports: true
242
+ mechanism: auto # OpenAI handles caching automatically
243
+ min_tokens: 1024 # OpenAI requires 1024+ tokens for caching
244
+ native_thinking_param: reasoning_effort
245
+ # LiteLLM docs: gpt-5.2 supports none, low, medium, high, xhigh (no minimal)
246
+ litellm_reasoning_efforts: [none, low, medium, high, xhigh]
247
+ default_reasoning_effort: medium
248
+ intelligence_score: 98
249
+ system_prompt_addendum: system_prompt_addendums/openai.md
250
+ tags: []
251
+
252
+ gpt-5.2-pro:
253
+ friendly_name: GPT-5.2 Pro
254
+ context_window_tokens: 400000
255
+ max_output_tokens: 272000
256
+ max_thinking_tokens: null
257
+ supports_thinking: true
258
+ supports_images: true
259
+ supports_verbosity: true
260
+ verbosity_levels: [low, medium, high]
261
+ temperature_constraint: fixed
262
+ temperature: 1.0
263
+ supports_top_p: false # Reasoning models don't support top_p
264
+ default_timeout_seconds: 300 # Pro models need even longer timeouts
265
+ prompt_caching:
266
+ supports: true
267
+ mechanism: auto
268
+ min_tokens: 1024
269
+ native_thinking_param: reasoning_effort
270
+ # OpenAI matrix: gpt-5.2-pro supports medium, high, xhigh only (no none/minimal/low)
271
+ litellm_reasoning_efforts: [medium, high, xhigh]
272
+ default_reasoning_effort: high
273
+ use_responses_api: true
274
+ intelligence_score: 99
275
+ system_prompt_addendum: system_prompt_addendums/openai.md
276
+ tags: []
277
+
278
+ gpt-5.3-codex:
279
+ friendly_name: GPT-5.3 Codex
280
+ context_window_tokens: 400000
281
+ max_output_tokens: 128000
282
+ max_thinking_tokens: null
283
+ supports_thinking: true
284
+ supports_images: true
285
+ supports_verbosity: false
286
+ temperature_constraint: fixed
287
+ temperature: 1.0
288
+ supports_top_p: false
289
+ default_timeout_seconds: 180
290
+ prompt_caching:
291
+ supports: true
292
+ mechanism: auto
293
+ min_tokens: 1024
294
+ native_thinking_param: reasoning_effort
295
+ litellm_reasoning_efforts: [low, medium, high, xhigh]
296
+ default_reasoning_effort: high
297
+ use_responses_api: true
298
+ intelligence_score: 95
299
+ system_prompt_addendum: system_prompt_addendums/openai.md
300
+ tags: [code-gen]
301
+
302
+ gpt-5.2-codex:
303
+ friendly_name: GPT-5.2 Codex
304
+ context_window_tokens: 400000
305
+ max_output_tokens: 128000
306
+ max_thinking_tokens: null
307
+ supports_thinking: true
308
+ supports_images: true
309
+ supports_verbosity: false # Codex models don't support verbosity
310
+ temperature_constraint: fixed
311
+ temperature: 1.0
312
+ supports_top_p: false # Reasoning/codex models don't support top_p
313
+ default_timeout_seconds: 180 # Code generation can take time
314
+ prompt_caching:
315
+ supports: true
316
+ mechanism: auto
317
+ min_tokens: 1024
318
+ native_thinking_param: reasoning_effort
319
+ # OpenAI matrix: gpt-5.2-codex supports low, medium, high, xhigh
320
+ litellm_reasoning_efforts: [low, medium, high, xhigh]
321
+ default_reasoning_effort: high
322
+ use_responses_api: true
323
+ intelligence_score: 90
324
+ system_prompt_addendum: system_prompt_addendums/openai.md
325
+ tags: [code-gen]
326
+
327
+ gpt-5.1-codex:
328
+ friendly_name: GPT-5.1 Codex
329
+ context_window_tokens: 400000
330
+ max_output_tokens: 128000
331
+ max_thinking_tokens: null
332
+ supports_thinking: true
333
+ supports_images: true
334
+ supports_verbosity: false # Codex models don't support verbosity
335
+ temperature_constraint: fixed
336
+ temperature: 1.0
337
+ supports_top_p: false # Reasoning/codex models don't support top_p
338
+ default_timeout_seconds: 180 # Code generation can take time
339
+ prompt_caching:
340
+ supports: true
341
+ mechanism: auto
342
+ min_tokens: 1024
343
+ native_thinking_param: reasoning_effort
344
+ # LiteLLM docs: codex models support low, medium, high only (default: adaptive)
345
+ litellm_reasoning_efforts: [low, medium, high]
346
+ default_reasoning_effort: high
347
+ use_responses_api: true
348
+ intelligence_score: 82
349
+ system_prompt_addendum: system_prompt_addendums/openai.md
350
+ tags: [code-gen]
351
+
352
+ gpt-5.1-codex-mini:
353
+ friendly_name: GPT-5.1 Codex Mini
354
+ short_name: codex-mini
355
+ context_window_tokens: 400000
356
+ max_output_tokens: 128000
357
+ max_thinking_tokens: null
358
+ supports_thinking: true
359
+ supports_images: false
360
+ supports_verbosity: false # Codex models don't support verbosity
361
+ temperature_constraint: fixed
362
+ temperature: 1.0
363
+ supports_top_p: false
364
+ default_timeout_seconds: 120
365
+ prompt_caching:
366
+ supports: true
367
+ mechanism: auto
368
+ min_tokens: 1024
369
+ native_thinking_param: reasoning_effort
370
+ # LiteLLM docs: codex-mini supports low, medium, high only (default: adaptive)
371
+ litellm_reasoning_efforts: [low, medium, high]
372
+ default_reasoning_effort: medium
373
+ intelligence_score: 77
374
+ system_prompt_addendum: system_prompt_addendums/openai.md
375
+ tags: [code-gen]
376
+
377
+ gpt-5.1-codex-max:
378
+ friendly_name: GPT-5.1 Codex Max
379
+ context_window_tokens: 400000
380
+ max_output_tokens: 128000
381
+ max_thinking_tokens: null
382
+ supports_thinking: true
383
+ supports_images: true
384
+ supports_verbosity: false # Codex models don't support verbosity
385
+ temperature_constraint: fixed
386
+ temperature: 1.0
387
+ supports_top_p: false
388
+ default_timeout_seconds: 240 # Max variant needs more time
389
+ prompt_caching:
390
+ supports: true
391
+ mechanism: auto
392
+ min_tokens: 1024
393
+ native_thinking_param: reasoning_effort
394
+ # LiteLLM docs: codex-max supports low, medium, high, xhigh (default: adaptive)
395
+ litellm_reasoning_efforts: [low, medium, high, xhigh]
396
+ default_reasoning_effort: high
397
+ use_responses_api: true
398
+ intelligence_score: 85
399
+ system_prompt_addendum: system_prompt_addendums/openai.md
400
+ tags: [code-gen]
401
+
402
+ gpt-5.1-mini:
403
+ friendly_name: GPT-5.1 Mini
404
+ context_window_tokens: 200000
405
+ max_output_tokens: 64000
406
+ max_thinking_tokens: null
407
+ supports_thinking: true
408
+ supports_images: false
409
+ supports_verbosity: true
410
+ verbosity_levels: [low, medium, high]
411
+ temperature_constraint: fixed
412
+ temperature: 1.0
413
+ supports_top_p: false # Reasoning models don't support top_p
414
+ default_timeout_seconds: 120
415
+ prompt_caching:
416
+ supports: true
417
+ mechanism: auto
418
+ min_tokens: 1024
419
+ native_thinking_param: reasoning_effort
420
+ # LiteLLM docs: gpt-5.1 series supports none, low, medium, high (no minimal)
421
+ litellm_reasoning_efforts: [none, low, medium, high]
422
+ default_reasoning_effort: none
423
+ intelligence_score: 76
424
+ system_prompt_addendum: system_prompt_addendums/openai.md
425
+ tags: []
426
+
427
+ gpt-5-mini:
428
+ friendly_name: GPT-5 Mini
429
+ context_window_tokens: 400000
430
+ max_output_tokens: 128000
431
+ max_thinking_tokens: null
432
+ supports_thinking: true
433
+ supports_images: true
434
+ supports_verbosity: true
435
+ verbosity_levels: [low, medium, high]
436
+ temperature_constraint: fixed
437
+ temperature: 1.0
438
+ supports_top_p: false
439
+ default_timeout_seconds: 120
440
+ prompt_caching:
441
+ supports: true
442
+ mechanism: auto
443
+ min_tokens: 1024
444
+ native_thinking_param: reasoning_effort
445
+ # LiteLLM docs: gpt-5-mini supports minimal, low, medium, high (no none)
446
+ litellm_reasoning_efforts: [minimal, low, medium, high]
447
+ default_reasoning_effort: medium
448
+ intelligence_score: 79
449
+ system_prompt_addendum: system_prompt_addendums/openai.md
450
+ tags: []
451
+
452
+ gpt-5:
453
+ friendly_name: GPT-5
454
+ context_window_tokens: 400000
455
+ max_output_tokens: 128000
456
+ max_thinking_tokens: null
457
+ supports_thinking: true
458
+ supports_images: true
459
+ supports_verbosity: true
460
+ verbosity_levels: [low, medium, high]
461
+ temperature_constraint: fixed
462
+ temperature: 1.0
463
+ supports_top_p: false
464
+ default_timeout_seconds: 180
465
+ prompt_caching:
466
+ supports: true
467
+ mechanism: auto
468
+ min_tokens: 1024
469
+ native_thinking_param: reasoning_effort
470
+ # LiteLLM docs: gpt-5 supports minimal, low, medium, high (no none)
471
+ litellm_reasoning_efforts: [minimal, low, medium, high]
472
+ default_reasoning_effort: medium
473
+ intelligence_score: 88
474
+ system_prompt_addendum: system_prompt_addendums/openai.md
475
+ tags: []
476
+
477
+ gpt-5-pro:
478
+ friendly_name: GPT-5 Pro
479
+ context_window_tokens: 400000
480
+ max_output_tokens: 272000
481
+ max_thinking_tokens: null
482
+ supports_thinking: true
483
+ supports_images: true
484
+ supports_verbosity: true
485
+ verbosity_levels: [low, medium, high]
486
+ temperature_constraint: fixed
487
+ temperature: 1.0
488
+ supports_top_p: false
489
+ default_timeout_seconds: 300 # Pro models need longer timeouts
490
+ prompt_caching:
491
+ supports: true
492
+ mechanism: auto
493
+ min_tokens: 1024
494
+ native_thinking_param: reasoning_effort
495
+ # LiteLLM docs: gpt-5-pro ONLY supports high
496
+ litellm_reasoning_efforts: [high]
497
+ default_reasoning_effort: high
498
+ use_responses_api: true
499
+ intelligence_score: 91
500
+ system_prompt_addendum: system_prompt_addendums/openai.md
501
+ tags: []
502
+
503
+ gpt-5-codex:
504
+ friendly_name: GPT-5 Codex
505
+ context_window_tokens: 400000
506
+ max_output_tokens: 128000
507
+ max_thinking_tokens: null
508
+ supports_thinking: true
509
+ supports_images: true
510
+ supports_verbosity: false # Codex models don't support verbosity
511
+ temperature_constraint: fixed
512
+ temperature: 1.0
513
+ supports_top_p: false
514
+ default_timeout_seconds: 180
515
+ prompt_caching:
516
+ supports: true
517
+ mechanism: auto
518
+ min_tokens: 1024
519
+ native_thinking_param: reasoning_effort
520
+ # LiteLLM docs: codex models support low, medium, high only (default: adaptive)
521
+ litellm_reasoning_efforts: [low, medium, high]
522
+ default_reasoning_effort: medium
523
+ use_responses_api: true
524
+ intelligence_score: 80
525
+ system_prompt_addendum: system_prompt_addendums/openai.md
526
+ tags: [code-gen]
527
+
528
+ gpt-5-nano:
529
+ friendly_name: GPT-5 Nano
530
+ context_window_tokens: 400000
531
+ max_output_tokens: 128000
532
+ max_thinking_tokens: null
533
+ supports_thinking: true
534
+ supports_images: true
535
+ supports_verbosity: true
536
+ verbosity_levels: [low, medium, high]
537
+ temperature_constraint: fixed
538
+ temperature: 1.0
539
+ supports_top_p: false
540
+ default_timeout_seconds: 90 # Nano is faster
541
+ prompt_caching:
542
+ supports: true
543
+ mechanism: auto
544
+ min_tokens: 1024
545
+ native_thinking_param: reasoning_effort
546
+ # OpenAI matrix: gpt-5-nano supports minimal, low, medium, high (no none)
547
+ litellm_reasoning_efforts: [minimal, low, medium, high]
548
+ default_reasoning_effort: minimal
549
+ intelligence_score: 70
550
+ system_prompt_addendum: system_prompt_addendums/openai.md
551
+ tags: []
552
+
553
+ gpt-4o:
554
+ friendly_name: GPT-4o
555
+ context_window_tokens: 128000
556
+ max_output_tokens: 16384
557
+ max_thinking_tokens: null
558
+ supports_thinking: false
559
+ supports_images: true
560
+ temperature_constraint: range
561
+ temperature:
562
+ min: 0.0
563
+ default: 1.0
564
+ max: 2.0
565
+ supports_top_p: true # Non-reasoning models support top_p
566
+ default_timeout_seconds: 60
567
+ prompt_caching:
568
+ supports: true
569
+ mechanism: auto
570
+ min_tokens: 1024
571
+ # No reasoning_effort support (non-reasoning model)
572
+ native_thinking_param: null
573
+ litellm_reasoning_efforts: null
574
+ default_reasoning_effort: null
575
+ intelligence_score: 76
576
+ system_prompt_addendum: system_prompt_addendums/openai.md
577
+ tags: []
578
+
579
+ gpt-4o-mini:
580
+ friendly_name: GPT-4o Mini
581
+ context_window_tokens: 128000
582
+ max_output_tokens: 16384
583
+ max_thinking_tokens: null
584
+ supports_thinking: false
585
+ supports_images: true
586
+ temperature_constraint: range
587
+ temperature:
588
+ min: 0.0
589
+ default: 1.0
590
+ max: 2.0
591
+ supports_top_p: true
592
+ default_timeout_seconds: 60 # Mini models are fast but need margin for P99
593
+ prompt_caching:
594
+ supports: true
595
+ mechanism: auto
596
+ min_tokens: 1024
597
+ native_thinking_param: null
598
+ litellm_reasoning_efforts: null
599
+ default_reasoning_effort: null
600
+ intelligence_score: 65
601
+ system_prompt_addendum: system_prompt_addendums/openai.md
602
+ tags: []
603
+
604
+ gpt-4.1:
605
+ friendly_name: GPT-4.1
606
+ context_window_tokens: 1000000
607
+ max_output_tokens: 32768
608
+ max_thinking_tokens: null
609
+ supports_thinking: false
610
+ supports_images: true
611
+ temperature_constraint: range
612
+ temperature:
613
+ min: 0.0
614
+ default: 1.0
615
+ max: 2.0
616
+ supports_top_p: true
617
+ default_timeout_seconds: 90 # Large context can be slow
618
+ prompt_caching:
619
+ supports: true
620
+ mechanism: auto
621
+ min_tokens: 1024
622
+ native_thinking_param: null
623
+ litellm_reasoning_efforts: null
624
+ default_reasoning_effort: null
625
+ intelligence_score: 72
626
+ system_prompt_addendum: system_prompt_addendums/openai.md
627
+ tags: []
628
+
629
+ o4-mini:
630
+ friendly_name: O4 Mini
631
+ context_window_tokens: 200000
632
+ max_output_tokens: 65536
633
+ max_thinking_tokens: null
634
+ supports_thinking: true
635
+ supports_images: true
636
+ temperature_constraint: fixed
637
+ temperature: 1.0
638
+ supports_top_p: false # Reasoning models don't support top_p
639
+ default_timeout_seconds: 120
640
+ prompt_caching:
641
+ supports: true
642
+ mechanism: auto
643
+ min_tokens: 1024
644
+ native_thinking_param: reasoning_effort
645
+ litellm_reasoning_efforts: [none, minimal, low, medium, high]
646
+ default_reasoning_effort: medium
647
+ intelligence_score: 60
648
+ system_prompt_addendum: system_prompt_addendums/openai.md
649
+ tags: []
650
+
651
+ o3:
652
+ friendly_name: O3
653
+ context_window_tokens: 200000
654
+ max_output_tokens: 65536
655
+ max_thinking_tokens: null
656
+ supports_thinking: true
657
+ supports_images: false
658
+ temperature_constraint: fixed
659
+ temperature: 1.0
660
+ supports_top_p: false
661
+ default_timeout_seconds: 180
662
+ prompt_caching:
663
+ supports: true
664
+ mechanism: auto
665
+ min_tokens: 1024
666
+ native_thinking_param: reasoning_effort
667
+ litellm_reasoning_efforts: [none, minimal, low, medium, high]
668
+ default_reasoning_effort: medium
669
+ intelligence_score: 85
670
+ system_prompt_addendum: system_prompt_addendums/openai.md
671
+ tags: []
672
+
673
+ o3-pro:
674
+ friendly_name: O3 Pro
675
+ context_window_tokens: 200000
676
+ max_output_tokens: 65536
677
+ max_thinking_tokens: null
678
+ supports_thinking: true
679
+ supports_images: true
680
+ temperature_constraint: fixed
681
+ temperature: 1.0
682
+ supports_top_p: false
683
+ default_timeout_seconds: 300 # Pro reasoning takes longer
684
+ prompt_caching:
685
+ supports: true
686
+ mechanism: auto
687
+ min_tokens: 1024
688
+ native_thinking_param: reasoning_effort
689
+ litellm_reasoning_efforts: [none, minimal, low, medium, high]
690
+ default_reasoning_effort: high
691
+ use_responses_api: true
692
+ intelligence_score: 87
693
+ system_prompt_addendum: system_prompt_addendums/openai.md
694
+ tags: []
695
+
696
+ o3-mini:
697
+ friendly_name: O3 Mini
698
+ context_window_tokens: 200000
699
+ max_output_tokens: 65536
700
+ max_thinking_tokens: null
701
+ supports_thinking: true
702
+ supports_images: false
703
+ temperature_constraint: fixed
704
+ temperature: 1.0
705
+ supports_top_p: false
706
+ default_timeout_seconds: 90
707
+ prompt_caching:
708
+ supports: true
709
+ mechanism: auto
710
+ min_tokens: 1024
711
+ native_thinking_param: reasoning_effort
712
+ litellm_reasoning_efforts: [none, minimal, low, medium, high]
713
+ default_reasoning_effort: medium
714
+ intelligence_score: 67
715
+ system_prompt_addendum: system_prompt_addendums/openai.md
716
+ tags: []
717
+
718
+ o1:
719
+ friendly_name: O1
720
+ context_window_tokens: 128000
721
+ max_output_tokens: 65536
722
+ max_thinking_tokens: null
723
+ supports_thinking: true
724
+ supports_images: false
725
+ temperature_constraint: fixed
726
+ temperature: 1.0
727
+ supports_top_p: false
728
+ default_timeout_seconds: 180
729
+ prompt_caching:
730
+ supports: true
731
+ mechanism: auto
732
+ min_tokens: 1024
733
+ native_thinking_param: reasoning_effort
734
+ litellm_reasoning_efforts: [none, minimal, low, medium, high]
735
+ default_reasoning_effort: medium
736
+ intelligence_score: 84
737
+ system_prompt_addendum: system_prompt_addendums/openai.md
738
+ tags: []
739
+
740
+ # ---------------------------------------------------------------------------
741
+ # Gemini Models (via Vertex AI or Google AI Studio)
742
+ # ---------------------------------------------------------------------------
743
+ gemini-3.1-pro-preview:
744
+ friendly_name: Gemini 3.1 Pro Preview
745
+ context_window_tokens: 1048576
746
+ max_output_tokens: 65536
747
+ max_thinking_tokens: null
748
+ supports_thinking: true
749
+ supports_images: true
750
+ temperature_constraint: fixed
751
+ temperature: 1.0
752
+ supports_top_p: true # Gemini supports top_p
753
+ default_timeout_seconds: 180
754
+ prompt_caching:
755
+ supports: false # Gemini has Context Caching API but LiteLLM doesn't support it
756
+ # Native: thinking_level (low, high only for Pro)
757
+ native_thinking_param: thinking_level
758
+ thinking_levels: [low, high]
759
+ default_thinking_level: high
760
+ # LiteLLM mapping: reasoning_effort -> thinking_level
761
+ # minimal/low/none/disable -> low, medium/high -> high
762
+ litellm_reasoning_efforts: [none, disable, minimal, low, medium, high]
763
+ default_reasoning_effort: high
764
+ intelligence_score: 94
765
+ system_prompt_addendum: system_prompt_addendums/gemini.md
766
+ tags: []
767
+
768
+ gemini-3.1-pro-preview-customtools:
769
+ friendly_name: Gemini 3.1 Pro Preview (Custom Tools)
770
+ short_name: gemini-3.1-pro-ct
771
+ context_window_tokens: 1048576
772
+ max_output_tokens: 65536
773
+ max_thinking_tokens: null
774
+ supports_thinking: true
775
+ supports_images: true
776
+ temperature_constraint: fixed
777
+ temperature: 1.0
778
+ supports_top_p: true
779
+ default_timeout_seconds: 180
780
+ prompt_caching:
781
+ supports: false
782
+ # Same thinking params as 3.1 Pro
783
+ native_thinking_param: thinking_level
784
+ thinking_levels: [low, high]
785
+ default_thinking_level: high
786
+ litellm_reasoning_efforts: [none, disable, minimal, low, medium, high]
787
+ default_reasoning_effort: high
788
+ intelligence_score: 94
789
+ system_prompt_addendum: system_prompt_addendums/gemini.md
790
+ tags: [agentic, custom-tools]
791
+
792
+ gemini-3-flash-preview:
793
+ friendly_name: Gemini 3 Flash Preview
794
+ context_window_tokens: 1048576
795
+ max_output_tokens: 65536
796
+ max_thinking_tokens: null
797
+ supports_thinking: true
798
+ supports_images: true
799
+ temperature_constraint: fixed
800
+ temperature: 1.0
801
+ supports_top_p: true
802
+ default_timeout_seconds: 120
803
+ prompt_caching:
804
+ supports: false # Gemini has Context Caching API but LiteLLM doesn't support it
805
+ # Native: thinking_level (minimal, low, medium, high for Flash)
806
+ native_thinking_param: thinking_level
807
+ thinking_levels: [minimal, low, medium, high]
808
+ default_thinking_level: high
809
+ # LiteLLM mapping: reasoning_effort -> thinking_level
810
+ litellm_reasoning_efforts: [none, disable, minimal, low, medium, high]
811
+ default_reasoning_effort: high
812
+ intelligence_score: 80
813
+ system_prompt_addendum: system_prompt_addendums/gemini.md
814
+ tags: []
815
+
816
+ gemini-2.5-pro:
817
+ friendly_name: Gemini 2.5 Pro
818
+ context_window_tokens: 1048576
819
+ max_output_tokens: 65536
820
+ max_thinking_tokens: 32768
821
+ supports_thinking: true
822
+ supports_images: true
823
+ temperature_constraint: range
824
+ temperature:
825
+ min: 0.0
826
+ default: 1.0
827
+ max: 2.0
828
+ supports_top_p: true
829
+ default_timeout_seconds: 180
830
+ prompt_caching:
831
+ supports: false # Gemini has Context Caching API but LiteLLM doesn't support it
832
+ # Native: thinking.budget_tokens (128 to 32768, cannot disable)
833
+ native_thinking_param: thinking_budget
834
+ # LiteLLM mapping: reasoning_effort -> budget_tokens
835
+ # none=0, disable=0, low=1024, medium=2048, high=4096
836
+ # Note: Cannot disable thinking on 2.5 Pro (none still uses dynamic)
837
+ litellm_reasoning_efforts: [none, disable, low, medium, high]
838
+ default_reasoning_effort: high
839
+ intelligence_score: 89
840
+ system_prompt_addendum: system_prompt_addendums/gemini.md
841
+ tags: []
842
+
843
+ gemini-2.5-flash:
844
+ friendly_name: Gemini 2.5 Flash
845
+ short_name: gemini-flash
846
+ context_window_tokens: 1048576
847
+ max_output_tokens: 65536
848
+ max_thinking_tokens: 24576
849
+ supports_thinking: true
850
+ supports_images: true
851
+ temperature_constraint: range
852
+ temperature:
853
+ min: 0.0
854
+ default: 1.0
855
+ max: 2.0
856
+ supports_top_p: true
857
+ default_timeout_seconds: 90
858
+ prompt_caching:
859
+ supports: false # Gemini has Context Caching API but LiteLLM doesn't support it
860
+ # Native: thinking.budget_tokens (0 to 24576, can disable with 0)
861
+ native_thinking_param: thinking_budget
862
+ # LiteLLM mapping: reasoning_effort -> budget_tokens
863
+ # none=0, disable=0, low=1024, medium=2048, high=4096
864
+ litellm_reasoning_efforts: [none, disable, low, medium, high]
865
+ default_reasoning_effort: medium
866
+ intelligence_score: 73
867
+ system_prompt_addendum: system_prompt_addendums/gemini.md
868
+ tags: []
869
+
870
+ # ---------------------------------------------------------------------------
871
+ # Claude Models (4.7 + 4.6 + 4.5 series)
872
+ # ---------------------------------------------------------------------------
873
+
874
+ # --- Claude 4.6 Series ---
875
+ claude-opus-4-6:
876
+ friendly_name: Claude Opus 4.6
877
+ context_window_tokens: 200000
878
+ max_output_tokens: 128000
879
+ max_thinking_tokens: 32768
880
+ supports_thinking: true
881
+ supports_images: true
882
+ temperature_constraint: range
883
+ temperature:
884
+ min: 0.0
885
+ default: 1.0
886
+ max: 1.0
887
+ supports_top_p: true
888
+ default_timeout_seconds: 180
889
+ prompt_caching:
890
+ supports: true
891
+ mechanism: cache_control
892
+ min_tokens: 1024
893
+ max_cache_blocks: 4
894
+ native_thinking_param: output_config.effort
895
+ litellm_reasoning_efforts: [low, medium, high]
896
+ default_reasoning_effort: high
897
+ intelligence_score: 98
898
+ tags: []
899
+
900
+ # --- Claude 4.7 Series ---
901
+ # Opus 4.7 is intentionally opt-in. Keep opus/claude-opus defaults on 4.6
902
+ # until this profile is proven safe for resume-heavy and referent-heavy flows.
903
+ claude-opus-4-7:
904
+ friendly_name: Claude Opus 4.7
905
+ context_window_tokens: 1000000
906
+ max_output_tokens: 128000
907
+ max_thinking_tokens: 128000
908
+ supports_thinking: true
909
+ supports_images: true
910
+ supports_1m_context: true
911
+ temperature_constraint: fixed
912
+ temperature: 1.0
913
+ supports_top_p: false
914
+ supports_sampling_overrides: false
915
+ default_timeout_seconds: 240
916
+ prompt_caching:
917
+ supports: true
918
+ mechanism: cache_control
919
+ min_tokens: 1024
920
+ max_cache_blocks: 4
921
+ native_thinking_param: output_config.effort
922
+ thinking_modes: [adaptive]
923
+ litellm_reasoning_efforts: [low, medium, high, xhigh]
924
+ default_reasoning_effort: high
925
+ token_estimate_multiplier: 1.35
926
+ intelligence_score: 99
927
+ tags: [bounded-review, opt-in]
928
+
929
+ claude-sonnet-4-6:
930
+ friendly_name: Claude Sonnet 4.6
931
+ context_window_tokens: 200000
932
+ max_output_tokens: 64000
933
+ max_thinking_tokens: 32768
934
+ supports_thinking: true
935
+ supports_images: true
936
+ temperature_constraint: range
937
+ temperature:
938
+ min: 0.0
939
+ default: 1.0
940
+ max: 1.0
941
+ supports_top_p: true
942
+ default_timeout_seconds: 120
943
+ prompt_caching:
944
+ supports: true
945
+ mechanism: cache_control
946
+ min_tokens: 1024
947
+ max_cache_blocks: 4
948
+ native_thinking_param: output_config.effort
949
+ litellm_reasoning_efforts: [low, medium, high]
950
+ default_reasoning_effort: medium
951
+ intelligence_score: 92
952
+ tags: []
953
+
954
+ # 1M context variants (requires anthropic-beta header via LiteLLM extra_headers)
955
+ claude-opus-4-6-1m:
956
+ friendly_name: Claude Opus 4.6 (1M)
957
+ context_window_tokens: 1000000
958
+ max_output_tokens: 128000
959
+ max_thinking_tokens: 32768
960
+ supports_thinking: true
961
+ supports_images: true
962
+ temperature_constraint: range
963
+ temperature:
964
+ min: 0.0
965
+ default: 1.0
966
+ max: 1.0
967
+ supports_top_p: true
968
+ default_timeout_seconds: 240
969
+ prompt_caching:
970
+ supports: true
971
+ mechanism: cache_control
972
+ min_tokens: 1024
973
+ max_cache_blocks: 4
974
+ native_thinking_param: output_config.effort
975
+ litellm_reasoning_efforts: [low, medium, high]
976
+ default_reasoning_effort: high
977
+ intelligence_score: 98
978
+ tags: []
979
+
980
+ claude-sonnet-4-6-1m:
981
+ friendly_name: Claude Sonnet 4.6 (1M)
982
+ context_window_tokens: 1000000
983
+ max_output_tokens: 64000
984
+ max_thinking_tokens: 32768
985
+ supports_thinking: true
986
+ supports_images: true
987
+ temperature_constraint: range
988
+ temperature:
989
+ min: 0.0
990
+ default: 1.0
991
+ max: 1.0
992
+ supports_top_p: true
993
+ default_timeout_seconds: 180
994
+ prompt_caching:
995
+ supports: true
996
+ mechanism: cache_control
997
+ min_tokens: 1024
998
+ max_cache_blocks: 4
999
+ native_thinking_param: output_config.effort
1000
+ litellm_reasoning_efforts: [low, medium, high]
1001
+ default_reasoning_effort: medium
1002
+ intelligence_score: 92
1003
+ tags: []
1004
+
1005
+ # --- Claude 4.5 Series ---
1006
+ claude-opus-4-5-20251101:
1007
+ friendly_name: Claude Opus 4.5
1008
+ context_window_tokens: 200000
1009
+ max_output_tokens: 65536
1010
+ max_thinking_tokens: 32768
1011
+ supports_thinking: true
1012
+ supports_images: true
1013
+ temperature_constraint: range
1014
+ temperature:
1015
+ min: 0.0
1016
+ default: 1.0
1017
+ max: 1.0
1018
+ supports_top_p: true # Claude supports top_p
1019
+ default_timeout_seconds: 180
1020
+ prompt_caching:
1021
+ supports: true
1022
+ mechanism: cache_control # Requires cache_control: {type: ephemeral} on content blocks
1023
+ min_tokens: 1024 # Effective with 1024+ tokens, max 4 cache_control blocks
1024
+ max_cache_blocks: 4 # Anthropic limit
1025
+ # Native: output_config.effort (Opus 4.5 only, beta)
1026
+ native_thinking_param: output_config.effort
1027
+ # LiteLLM mapping: reasoning_effort -> output_config.effort
1028
+ litellm_reasoning_efforts: [low, medium, high]
1029
+ default_reasoning_effort: high
1030
+ intelligence_score: 96
1031
+ tags: []
1032
+
1033
+ claude-sonnet-4-5-20250929:
1034
+ friendly_name: Claude Sonnet 4.5
1035
+ context_window_tokens: 200000
1036
+ max_output_tokens: 65536
1037
+ max_thinking_tokens: 32768
1038
+ supports_thinking: true
1039
+ supports_images: true
1040
+ temperature_constraint: range
1041
+ temperature:
1042
+ min: 0.0
1043
+ default: 1.0
1044
+ max: 1.0
1045
+ supports_top_p: true
1046
+ default_timeout_seconds: 120
1047
+ prompt_caching:
1048
+ supports: true
1049
+ mechanism: cache_control
1050
+ min_tokens: 1024
1051
+ max_cache_blocks: 4
1052
+ # No effort param support (Sonnet 4.5 doesn't support effort beta)
1053
+ native_thinking_param: null
1054
+ litellm_reasoning_efforts: null
1055
+ default_reasoning_effort: null
1056
+ intelligence_score: 90
1057
+ tags: []
1058
+
1059
+ claude-haiku-4-5-20251001:
1060
+ friendly_name: Claude Haiku 4.5
1061
+ context_window_tokens: 200000
1062
+ max_output_tokens: 64000
1063
+ max_thinking_tokens: 32768
1064
+ supports_thinking: true
1065
+ supports_images: true
1066
+ temperature_constraint: range
1067
+ temperature:
1068
+ min: 0.0
1069
+ default: 1.0
1070
+ max: 1.0
1071
+ supports_top_p: true
1072
+ default_timeout_seconds: 60 # Haiku is fast
1073
+ prompt_caching:
1074
+ supports: true
1075
+ mechanism: cache_control
1076
+ min_tokens: 1024
1077
+ max_cache_blocks: 4
1078
+ # No effort param support (Haiku 4.5 doesn't support effort beta)
1079
+ native_thinking_param: null
1080
+ litellm_reasoning_efforts: null
1081
+ default_reasoning_effort: null
1082
+ intelligence_score: 81
1083
+ tags: []
1084
+
1085
+ # ---------------------------------------------------------------------------
1086
+ # Open-source models via OpenRouter
1087
+ # ---------------------------------------------------------------------------
1088
+ deepseek-v4-flash:
1089
+ friendly_name: DeepSeek V4 Flash
1090
+ context_window_tokens: 1048576
1091
+ max_output_tokens: 384000
1092
+ max_thinking_tokens: null
1093
+ supports_thinking: true
1094
+ supports_images: false
1095
+ temperature_constraint: range
1096
+ temperature:
1097
+ min: 0.0
1098
+ default: 1.0
1099
+ max: 2.0
1100
+ supports_top_p: true
1101
+ default_timeout_seconds: 120
1102
+ prompt_caching:
1103
+ supports: true
1104
+ mechanism: auto
1105
+ min_tokens: 1024
1106
+ native_thinking_param: reasoning_effort
1107
+ litellm_reasoning_efforts: [high, xhigh]
1108
+ default_reasoning_effort: high
1109
+ intelligence_score: 82
1110
+ tags: [code-gen]
1111
+
1112
+ deepseek-v4-pro:
1113
+ friendly_name: DeepSeek V4 Pro
1114
+ context_window_tokens: 1048576
1115
+ max_output_tokens: 384000
1116
+ max_thinking_tokens: null
1117
+ supports_thinking: true
1118
+ supports_images: false
1119
+ temperature_constraint: range
1120
+ temperature:
1121
+ min: 0.0
1122
+ default: 1.0
1123
+ max: 2.0
1124
+ supports_top_p: true
1125
+ default_timeout_seconds: 180
1126
+ prompt_caching:
1127
+ supports: true
1128
+ mechanism: auto
1129
+ min_tokens: 1024
1130
+ native_thinking_param: reasoning_effort
1131
+ # OpenRouter exposes only the upper effort tiers for V4 Pro
1132
+ litellm_reasoning_efforts: [high, xhigh]
1133
+ default_reasoning_effort: high
1134
+ intelligence_score: 88
1135
+ tags: [code-gen]
1136
+
1137
+ kimi-k2.5:
1138
+ friendly_name: Kimi K2.5
1139
+ context_window_tokens: 262144
1140
+ max_output_tokens: 262144
1141
+ max_thinking_tokens: null
1142
+ supports_thinking: true
1143
+ supports_images: true
1144
+ temperature_constraint: range
1145
+ temperature:
1146
+ min: 0.0
1147
+ default: 1.0
1148
+ max: 2.0
1149
+ supports_top_p: true
1150
+ default_timeout_seconds: 180
1151
+ prompt_caching:
1152
+ supports: true
1153
+ mechanism: auto
1154
+ min_tokens: 1024
1155
+ native_thinking_param: null
1156
+ litellm_reasoning_efforts: null
1157
+ default_reasoning_effort: null
1158
+ intelligence_score: 86
1159
+ tags: [agentic, code-gen, vision]
1160
+
1161
+ kimi-k2.6:
1162
+ friendly_name: Kimi K2.6
1163
+ context_window_tokens: 32768
1164
+ max_output_tokens: 32768
1165
+ max_thinking_tokens: null
1166
+ supports_thinking: true
1167
+ supports_images: true
1168
+ temperature_constraint: range
1169
+ temperature:
1170
+ min: 0.0
1171
+ default: 1.0
1172
+ max: 2.0
1173
+ supports_top_p: true
1174
+ default_timeout_seconds: 180
1175
+ prompt_caching:
1176
+ supports: true
1177
+ mechanism: auto
1178
+ min_tokens: 1024
1179
+ native_thinking_param: reasoning_effort
1180
+ litellm_reasoning_efforts: [low, medium, high]
1181
+ default_reasoning_effort: high
1182
+ intelligence_score: 89
1183
+ tags: [agentic, code-gen, vision]
1184
+
1185
+ qwen3.6-plus:
1186
+ friendly_name: Qwen3.6 Plus
1187
+ context_window_tokens: 1000000
1188
+ max_output_tokens: 65536
1189
+ max_thinking_tokens: null
1190
+ supports_thinking: true
1191
+ supports_images: true
1192
+ temperature_constraint: range
1193
+ temperature:
1194
+ min: 0.0
1195
+ default: 1.0
1196
+ max: 2.0
1197
+ supports_top_p: true
1198
+ default_timeout_seconds: 180
1199
+ prompt_caching:
1200
+ supports: false
1201
+ native_thinking_param: null
1202
+ litellm_reasoning_efforts: null
1203
+ default_reasoning_effort: null
1204
+ intelligence_score: 88
1205
+ tags: [agentic, code-gen, vision]
1206
+
1207
+ qwen3.6-flash:
1208
+ friendly_name: Qwen3.6 Flash
1209
+ context_window_tokens: 1000000
1210
+ max_output_tokens: 65536
1211
+ max_thinking_tokens: null
1212
+ supports_thinking: true
1213
+ supports_images: true
1214
+ temperature_constraint: range
1215
+ temperature:
1216
+ min: 0.0
1217
+ default: 1.0
1218
+ max: 2.0
1219
+ supports_top_p: true
1220
+ default_timeout_seconds: 120
1221
+ prompt_caching:
1222
+ supports: false
1223
+ native_thinking_param: null
1224
+ litellm_reasoning_efforts: null
1225
+ default_reasoning_effort: null
1226
+ intelligence_score: 82
1227
+ tags: [agentic, code-gen, vision]
1228
+
1229
+ qwen3.6-max-preview:
1230
+ friendly_name: Qwen3.6 Max Preview
1231
+ context_window_tokens: 262144
1232
+ max_output_tokens: 65536
1233
+ max_thinking_tokens: null
1234
+ supports_thinking: true
1235
+ supports_images: false
1236
+ temperature_constraint: range
1237
+ temperature:
1238
+ min: 0.0
1239
+ default: 1.0
1240
+ max: 2.0
1241
+ supports_top_p: true
1242
+ default_timeout_seconds: 180
1243
+ prompt_caching:
1244
+ supports: false
1245
+ native_thinking_param: null
1246
+ litellm_reasoning_efforts: null
1247
+ default_reasoning_effort: null
1248
+ intelligence_score: 90
1249
+ tags: [agentic, code-gen]
1250
+
1251
+ qwen3-coder:
1252
+ friendly_name: Qwen3 Coder 480B A35B
1253
+ context_window_tokens: 262144
1254
+ max_output_tokens: 65536
1255
+ max_thinking_tokens: null
1256
+ supports_thinking: false
1257
+ supports_images: false
1258
+ temperature_constraint: range
1259
+ temperature:
1260
+ min: 0.0
1261
+ default: 1.0
1262
+ max: 2.0
1263
+ supports_top_p: true
1264
+ default_timeout_seconds: 180
1265
+ prompt_caching:
1266
+ supports: false
1267
+ native_thinking_param: null
1268
+ litellm_reasoning_efforts: null
1269
+ default_reasoning_effort: null
1270
+ intelligence_score: 84
1271
+ tags: [code-gen]
1272
+
1273
+ minimax-m2.5:
1274
+ friendly_name: MiniMax M2.5
1275
+ context_window_tokens: 196608
1276
+ max_output_tokens: 196608
1277
+ max_thinking_tokens: null
1278
+ supports_thinking: true
1279
+ supports_images: false
1280
+ temperature_constraint: range
1281
+ temperature:
1282
+ min: 0.0
1283
+ default: 1.0
1284
+ max: 2.0
1285
+ supports_top_p: true
1286
+ default_timeout_seconds: 180
1287
+ prompt_caching:
1288
+ supports: false
1289
+ native_thinking_param: reasoning_effort
1290
+ litellm_reasoning_efforts: [low, medium, high]
1291
+ default_reasoning_effort: medium
1292
+ intelligence_score: 84
1293
+ tags: [agentic]
1294
+
1295
+ minimax-m2.7:
1296
+ friendly_name: MiniMax M2.7
1297
+ context_window_tokens: 196608
1298
+ max_output_tokens: 131072
1299
+ max_thinking_tokens: null
1300
+ supports_thinking: true
1301
+ supports_images: false
1302
+ temperature_constraint: range
1303
+ temperature:
1304
+ min: 0.0
1305
+ default: 1.0
1306
+ max: 2.0
1307
+ supports_top_p: true
1308
+ default_timeout_seconds: 180
1309
+ prompt_caching:
1310
+ supports: false
1311
+ native_thinking_param: null
1312
+ litellm_reasoning_efforts: null
1313
+ default_reasoning_effort: null
1314
+ intelligence_score: 86
1315
+ tags: [agentic]
1316
+
1317
+ glm-4.7-flash:
1318
+ friendly_name: GLM 4.7 Flash
1319
+ context_window_tokens: 202752
1320
+ max_output_tokens: 16384
1321
+ max_thinking_tokens: null
1322
+ supports_thinking: true
1323
+ supports_images: false
1324
+ temperature_constraint: range
1325
+ temperature:
1326
+ min: 0.0
1327
+ default: 1.0
1328
+ max: 2.0
1329
+ supports_top_p: true
1330
+ default_timeout_seconds: 90
1331
+ prompt_caching:
1332
+ supports: true
1333
+ mechanism: auto
1334
+ min_tokens: 1024
1335
+ native_thinking_param: null
1336
+ litellm_reasoning_efforts: null
1337
+ default_reasoning_effort: null
1338
+ intelligence_score: 78
1339
+ tags: [agentic]
1340
+
1341
+ glm-5.1:
1342
+ friendly_name: GLM 5.1
1343
+ context_window_tokens: 202752
1344
+ max_output_tokens: 202752
1345
+ max_thinking_tokens: null
1346
+ supports_thinking: true
1347
+ supports_images: false
1348
+ temperature_constraint: range
1349
+ temperature:
1350
+ min: 0.0
1351
+ default: 1.0
1352
+ max: 2.0
1353
+ supports_top_p: true
1354
+ default_timeout_seconds: 180
1355
+ prompt_caching:
1356
+ supports: true
1357
+ mechanism: auto
1358
+ min_tokens: 1024
1359
+ native_thinking_param: reasoning_effort
1360
+ litellm_reasoning_efforts: [low, medium, high]
1361
+ default_reasoning_effort: high
1362
+ intelligence_score: 87
1363
+ tags: [agentic, code-gen]
1364
+
1365
+ gemma-4-31b-it:
1366
+ friendly_name: Gemma 4 31B
1367
+ context_window_tokens: 262144
1368
+ max_output_tokens: 16384
1369
+ max_thinking_tokens: null
1370
+ supports_thinking: true
1371
+ supports_images: true
1372
+ temperature_constraint: range
1373
+ temperature:
1374
+ min: 0.0
1375
+ default: 1.0
1376
+ max: 2.0
1377
+ supports_top_p: true
1378
+ default_timeout_seconds: 120
1379
+ prompt_caching:
1380
+ supports: false
1381
+ native_thinking_param: null
1382
+ litellm_reasoning_efforts: null
1383
+ default_reasoning_effort: null
1384
+ intelligence_score: 78
1385
+ tags: [open-weights, vision]
1386
+
1387
+
1388
+ # =============================================================================
1389
+ # ALIASES - Provider-prefixed IDs map to canonical models
1390
+ # =============================================================================
1391
+ aliases:
1392
+ # OpenAI provider prefix (LiteLLM style)
1393
+ openai/gpt-5.5: gpt-5.5
1394
+ openai/gpt-5.5-pro: gpt-5.5-pro
1395
+ openai/gpt-5.4: gpt-5.4
1396
+ openai/gpt-5.4-pro: gpt-5.4-pro
1397
+ openai/gpt-5.4-mini: gpt-5.4-mini
1398
+ openai/gpt-5.4-nano: gpt-5.4-nano
1399
+ openai/gpt-5.2: gpt-5.2
1400
+ openai/gpt-5.2-pro: gpt-5.2-pro
1401
+ openai/gpt-5.3-codex: gpt-5.3-codex
1402
+ openai/gpt-5.2-codex: gpt-5.2-codex
1403
+ openai/gpt-5.1-codex: gpt-5.1-codex
1404
+ openai/gpt-5.1-codex-mini: gpt-5.1-codex-mini
1405
+ openai/gpt-5.1-codex-max: gpt-5.1-codex-max
1406
+ openai/gpt-5.1-mini: gpt-5.1-mini
1407
+ openai/gpt-5-pro: gpt-5-pro
1408
+ openai/gpt-5-mini: gpt-5-mini
1409
+ openai/gpt-5: gpt-5
1410
+ openai/gpt-5-codex: gpt-5-codex
1411
+ openai/gpt-5-nano: gpt-5-nano
1412
+ openai/gpt-4.1: gpt-4.1
1413
+ openai/gpt-4o: gpt-4o
1414
+ openai/gpt-4o-mini: gpt-4o-mini
1415
+ openai/o4-mini: o4-mini
1416
+ openai/o3: o3
1417
+ openai/o3-pro: o3-pro
1418
+ openai/o3-mini: o3-mini
1419
+ openai/o1: o1
1420
+
1421
+ # Vertex AI provider prefix (LiteLLM style)
1422
+ vertex_ai/gemini-3.1-pro-preview: gemini-3.1-pro-preview
1423
+ vertex_ai/gemini-3.1-pro-preview-customtools: gemini-3.1-pro-preview-customtools
1424
+ vertex_ai/gemini-3-flash-preview: gemini-3-flash-preview
1425
+ vertex_ai/gemini-2.5-pro: gemini-2.5-pro
1426
+ vertex_ai/gemini-2.5-flash: gemini-2.5-flash
1427
+
1428
+ # Google AI Studio provider prefix (LiteLLM style)
1429
+ gemini/gemini-3.1-pro-preview: gemini-3.1-pro-preview
1430
+ gemini/gemini-3.1-pro-preview-customtools: gemini-3.1-pro-preview-customtools
1431
+ gemini/gemini-3-flash-preview: gemini-3-flash-preview
1432
+ gemini/gemini-2.5-pro: gemini-2.5-pro
1433
+ gemini/gemini-2.5-flash: gemini-2.5-flash
1434
+
1435
+ # Google provider prefix (OpenRouter style)
1436
+ google/gemini-3.1-pro-preview: gemini-3.1-pro-preview
1437
+ google/gemini-3-flash-preview: gemini-3-flash-preview
1438
+ google/gemini-2.5-pro: gemini-2.5-pro
1439
+ google/gemini-2.5-flash: gemini-2.5-flash
1440
+
1441
+ # Anthropic provider prefix + friendly aliases
1442
+ # Opus 4.6
1443
+ anthropic/claude-opus-4-6: claude-opus-4-6
1444
+ anthropic/claude-opus-4-6-1m: claude-opus-4-6-1m
1445
+ claude-opus: claude-opus-4-6
1446
+ opus-4-6: claude-opus-4-6
1447
+ opus-4-6-1m: claude-opus-4-6-1m
1448
+ opus: claude-opus-4-6
1449
+
1450
+ # Opus 4.7 (explicit opt-in only)
1451
+ anthropic/claude-opus-4-7: claude-opus-4-7
1452
+ anthropic/claude-opus-4.7: claude-opus-4-7
1453
+ claude-opus-4.7: claude-opus-4-7
1454
+ opus-4-7: claude-opus-4-7
1455
+ opus-4.7: claude-opus-4-7
1456
+
1457
+ # Sonnet 4.6
1458
+ anthropic/claude-sonnet-4-6: claude-sonnet-4-6
1459
+ anthropic/claude-sonnet-4-6-1m: claude-sonnet-4-6-1m
1460
+ sonnet-4-6: claude-sonnet-4-6
1461
+ sonnet-4-6-1m: claude-sonnet-4-6-1m
1462
+ sonnet: claude-sonnet-4-6
1463
+
1464
+ # Opus 4.5
1465
+ anthropic/claude-opus-4-5-20251101: claude-opus-4-5-20251101
1466
+ anthropic/claude-opus-4-5: claude-opus-4-5-20251101
1467
+ claude-opus-4-5: claude-opus-4-5-20251101
1468
+ opus-4-5: claude-opus-4-5-20251101
1469
+
1470
+ # Sonnet 4.5
1471
+ anthropic/claude-sonnet-4-5-20250929: claude-sonnet-4-5-20250929
1472
+ anthropic/claude-sonnet-4-5: claude-sonnet-4-5-20250929
1473
+ claude-sonnet-4-5: claude-sonnet-4-5-20250929
1474
+ sonnet-4-5: claude-sonnet-4-5-20250929
1475
+
1476
+ # Haiku 4.5
1477
+ anthropic/claude-haiku-4-5-20251001: claude-haiku-4-5-20251001
1478
+ anthropic/claude-haiku-4-5: claude-haiku-4-5-20251001
1479
+ claude-haiku-4-5: claude-haiku-4-5-20251001
1480
+ haiku-4-5: claude-haiku-4-5-20251001
1481
+ haiku: claude-haiku-4-5-20251001
1482
+
1483
+ # OpenRouter dot-form aliases (OpenRouter uses dots, Forge uses hyphens)
1484
+ anthropic/claude-opus-4.6: claude-opus-4-6
1485
+ anthropic/claude-sonnet-4.6: claude-sonnet-4-6
1486
+ anthropic/claude-haiku-4.5: claude-haiku-4-5-20251001
1487
+
1488
+ # DeepSeek (via OpenRouter)
1489
+ deepseek/deepseek-v4-pro: deepseek-v4-pro
1490
+ deepseek/deepseek-v4-flash: deepseek-v4-flash
1491
+ deepseek-v4: deepseek-v4-pro
1492
+ v4-pro: deepseek-v4-pro
1493
+ v4-flash: deepseek-v4-flash
1494
+
1495
+ # Kimi / MoonshotAI (via OpenRouter)
1496
+ moonshotai/kimi-k2.5: kimi-k2.5
1497
+ moonshotai/kimi-k2.6: kimi-k2.6
1498
+ kimi-k2-5: kimi-k2.5
1499
+ kimi-k2-6: kimi-k2.6
1500
+
1501
+ # Qwen (via OpenRouter)
1502
+ qwen/qwen3.6-flash: qwen3.6-flash
1503
+ qwen/qwen3.6-plus: qwen3.6-plus
1504
+ qwen/qwen3.6-max-preview: qwen3.6-max-preview
1505
+ qwen/qwen3-coder: qwen3-coder
1506
+ qwen3-6-flash: qwen3.6-flash
1507
+ qwen3-6-plus: qwen3.6-plus
1508
+ qwen3-6-max-preview: qwen3.6-max-preview
1509
+ qwen3-6-max: qwen3.6-max-preview
1510
+ qwen-coder: qwen3-coder
1511
+
1512
+ # MiniMax / Z.ai / Google / Mistral (via OpenRouter)
1513
+ minimax/minimax-m2.5: minimax-m2.5
1514
+ minimax/minimax-m2.7: minimax-m2.7
1515
+ minimax-m2-5: minimax-m2.5
1516
+ minimax-m2-7: minimax-m2.7
1517
+ z-ai/glm-4.7-flash: glm-4.7-flash
1518
+ z-ai/glm-5.1: glm-5.1
1519
+ glm-4-7-flash: glm-4.7-flash
1520
+ glm-5-1: glm-5.1
1521
+ google/gemma-4-31b-it: gemma-4-31b-it
1522
+ gemma-4-31b: gemma-4-31b-it