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,23 @@
1
+ # Template: openrouter-anthropic
2
+ # Anthropic Claude models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Access to Claude Opus 4.6/4.7, Sonnet 4.6, and Haiku 4.5.
5
+ # Requires OPENROUTER_API_KEY in .env (or environment).
6
+ #
7
+ # Use --model claude-opus-4-7 to select Opus 4.7 instead of the 4.6 default.
8
+
9
+ proxy:
10
+ family: anthropic
11
+ preferred_provider: openrouter
12
+ default_port: 8095
13
+
14
+ openrouter:
15
+ tiers:
16
+ haiku: anthropic/claude-haiku-4.5
17
+ sonnet: anthropic/claude-sonnet-4.6
18
+ opus: anthropic/claude-opus-4.6
19
+ model_alternatives:
20
+ opus:
21
+ claude-opus-4-7: anthropic/claude-opus-4.7
22
+ base_url: "https://openrouter.ai/api/v1"
23
+ error_hints: true
@@ -0,0 +1,26 @@
1
+ # Template: openrouter-deepseek
2
+ # DeepSeek open-source models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Haiku uses DeepSeek V4 Flash for lower-cost, high-throughput work.
5
+ # Sonnet/opus use DeepSeek V4 Pro, with opus requesting the max reasoning tier.
6
+ # Requires OPENROUTER_API_KEY in .env (or environment).
7
+
8
+ proxy:
9
+ family: deepseek
10
+ preferred_provider: openrouter
11
+ default_port: 8100
12
+
13
+ openrouter:
14
+ tiers:
15
+ haiku: deepseek/deepseek-v4-flash
16
+ sonnet: deepseek/deepseek-v4-pro
17
+ opus: deepseek/deepseek-v4-pro
18
+ tier_overrides:
19
+ haiku:
20
+ reasoning_effort: high
21
+ sonnet:
22
+ reasoning_effort: high
23
+ opus:
24
+ reasoning_effort: xhigh
25
+ base_url: "https://openrouter.ai/api/v1"
26
+ error_hints: true
@@ -0,0 +1,26 @@
1
+ # Template: openrouter-gemini-flash
2
+ # Gemini 2.5 Flash via OpenRouter (cheap, all tiers use Flash)
3
+ #
4
+ # Requires OPENROUTER_API_KEY in .env (or environment).
5
+ #
6
+ # All tiers use Flash, differentiated by reasoning_effort.
7
+
8
+ proxy:
9
+ family: gemini
10
+ preferred_provider: openrouter
11
+ default_port: 8099
12
+
13
+ openrouter:
14
+ tiers:
15
+ haiku: google/gemini-2.5-flash
16
+ sonnet: google/gemini-2.5-flash
17
+ opus: google/gemini-2.5-flash
18
+ tier_overrides:
19
+ haiku:
20
+ reasoning_effort: low
21
+ sonnet:
22
+ reasoning_effort: medium
23
+ opus:
24
+ reasoning_effort: high
25
+ base_url: "https://openrouter.ai/api/v1"
26
+ error_hints: true
@@ -0,0 +1,23 @@
1
+ # Template: openrouter-gemini
2
+ # Google Gemini models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Access to Gemini 3.1 Pro and Flash.
5
+ # Requires OPENROUTER_API_KEY in .env (or environment).
6
+
7
+ proxy:
8
+ family: gemini
9
+ preferred_provider: openrouter
10
+ default_port: 8097
11
+
12
+ openrouter:
13
+ tiers:
14
+ haiku: google/gemini-2.5-flash
15
+ sonnet: google/gemini-3.1-pro-preview
16
+ opus: google/gemini-3.1-pro-preview
17
+ tier_overrides:
18
+ sonnet:
19
+ reasoning_effort: medium
20
+ opus:
21
+ reasoning_effort: high
22
+ base_url: "https://openrouter.ai/api/v1"
23
+ error_hints: true
@@ -0,0 +1,23 @@
1
+ # Template: openrouter-glm
2
+ # GLM / Z.ai models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Haiku uses GLM 4.7 Flash. Sonnet/opus use GLM 5.1.
5
+ # Requires OPENROUTER_API_KEY in .env (or environment).
6
+
7
+ proxy:
8
+ family: glm
9
+ preferred_provider: openrouter
10
+ default_port: 8103
11
+
12
+ openrouter:
13
+ tiers:
14
+ haiku: z-ai/glm-4.7-flash
15
+ sonnet: z-ai/glm-5.1
16
+ opus: z-ai/glm-5.1
17
+ tier_overrides:
18
+ sonnet:
19
+ reasoning_effort: high
20
+ opus:
21
+ reasoning_effort: high
22
+ base_url: "https://openrouter.ai/api/v1"
23
+ error_hints: true
@@ -0,0 +1,30 @@
1
+ # Template: openrouter-kimi
2
+ # Kimi models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Haiku uses Gemma 4 31B as a shared low-cost multimodal tier. Sonnet/opus use
5
+ # Kimi K2.6 as the higher-capability Kimi tier. K2.5 is available as a
6
+ # sonnet/opus model_alternative for explicit proxy requests.
7
+ # Requires OPENROUTER_API_KEY in .env (or environment).
8
+
9
+ proxy:
10
+ family: kimi
11
+ preferred_provider: openrouter
12
+ default_port: 8102
13
+
14
+ openrouter:
15
+ tiers:
16
+ haiku: google/gemma-4-31b-it
17
+ sonnet: moonshotai/kimi-k2.6
18
+ opus: moonshotai/kimi-k2.6
19
+ model_alternatives:
20
+ sonnet:
21
+ kimi-k2.5: moonshotai/kimi-k2.5
22
+ opus:
23
+ kimi-k2.5: moonshotai/kimi-k2.5
24
+ tier_overrides:
25
+ sonnet:
26
+ reasoning_effort: high
27
+ opus:
28
+ reasoning_effort: high
29
+ base_url: "https://openrouter.ai/api/v1"
30
+ error_hints: true
@@ -0,0 +1,26 @@
1
+ # Template: openrouter-minimax
2
+ # MiniMax models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Haiku uses Gemma 4 31B as a shared low-cost multimodal tier. Sonnet/opus use
5
+ # MiniMax M2.7. M2.5 is available as a sonnet/opus model_alternative for
6
+ # explicit proxy requests.
7
+ # Requires OPENROUTER_API_KEY in .env (or environment).
8
+
9
+ proxy:
10
+ family: minimax
11
+ preferred_provider: openrouter
12
+ default_port: 8104
13
+
14
+ openrouter:
15
+ tiers:
16
+ haiku: google/gemma-4-31b-it
17
+ sonnet: minimax/minimax-m2.7
18
+ opus: minimax/minimax-m2.7
19
+ model_alternatives:
20
+ sonnet:
21
+ minimax-m2.5: minimax/minimax-m2.5
22
+ opus:
23
+ minimax-m2.5: minimax/minimax-m2.5
24
+ tier_overrides: {}
25
+ base_url: "https://openrouter.ai/api/v1"
26
+ error_hints: true
@@ -0,0 +1,23 @@
1
+ # Template: openrouter-openai-codex
2
+ # OpenAI Codex models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Requires OPENROUTER_API_KEY in .env (or environment).
5
+
6
+ proxy:
7
+ family: openai
8
+ preferred_provider: openrouter
9
+ default_port: 8098
10
+
11
+ openrouter:
12
+ tiers:
13
+ haiku: openai/gpt-5.1-codex-mini
14
+ sonnet: openai/gpt-5.3-codex
15
+ opus: openai/gpt-5.5
16
+ tier_overrides:
17
+ sonnet:
18
+ reasoning_effort: medium
19
+ opus:
20
+ reasoning_effort: high
21
+ verbosity: high
22
+ base_url: "https://openrouter.ai/api/v1"
23
+ error_hints: true
@@ -0,0 +1,28 @@
1
+ # Template: openrouter-openai
2
+ # OpenAI models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Access to GPT-5.5 and GPT-5.4-mini.
5
+ # Requires OPENROUTER_API_KEY in .env (or environment).
6
+ #
7
+ # Haiku uses gpt-5.4-mini; sonnet and opus both use gpt-5.5,
8
+ # differentiated by tier_overrides (reasoning_effort and verbosity).
9
+
10
+ proxy:
11
+ family: openai
12
+ preferred_provider: openrouter
13
+ default_port: 8096
14
+
15
+ openrouter:
16
+ tiers:
17
+ haiku: openai/gpt-5.4-mini
18
+ sonnet: openai/gpt-5.5
19
+ opus: openai/gpt-5.5
20
+ tier_overrides:
21
+ sonnet:
22
+ reasoning_effort: medium
23
+ verbosity: high
24
+ opus:
25
+ reasoning_effort: high
26
+ verbosity: high
27
+ base_url: "https://openrouter.ai/api/v1"
28
+ error_hints: true
@@ -0,0 +1,25 @@
1
+ # Template: openrouter-qwen
2
+ # Qwen models via OpenRouter (direct, no LiteLLM)
3
+ #
4
+ # Haiku uses Qwen3.6 Flash for fast multimodal work. Sonnet uses Qwen3.6 Plus.
5
+ # Opus uses Qwen3.6 Max Preview for the strongest current Qwen tier.
6
+ # qwen3-coder is available as a model_alternative for explicit proxy requests.
7
+ # Requires OPENROUTER_API_KEY in .env (or environment).
8
+
9
+ proxy:
10
+ family: qwen
11
+ preferred_provider: openrouter
12
+ default_port: 8101
13
+
14
+ openrouter:
15
+ tiers:
16
+ haiku: qwen/qwen3.6-flash
17
+ sonnet: qwen/qwen3.6-plus
18
+ opus: qwen/qwen3.6-max-preview
19
+ model_alternatives:
20
+ sonnet:
21
+ qwen3-coder: qwen/qwen3-coder
22
+ opus:
23
+ qwen3-coder: qwen/qwen3-coder
24
+ base_url: "https://openrouter.ai/api/v1"
25
+ error_hints: true