omniroute 0.3.0 → 0.4.0

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 (884) hide show
  1. package/README.md +35 -1150
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +28 -23
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/prerender-manifest.json +75 -3
  6. package/app/.next/routes-manifest.json +30 -0
  7. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -0
  17. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -0
  18. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -0
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  44. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  47. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/_global-error/page.js +2 -2
  50. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/_global-error.html +2 -2
  52. package/app/.next/server/app/_global-error.rsc +3 -3
  53. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  54. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  55. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  56. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  57. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  58. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  59. package/app/.next/server/app/_not-found/page.js +1 -1
  60. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  61. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/_not-found.html +1 -1
  63. package/app/.next/server/app/_not-found.rsc +5 -5
  64. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  65. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  66. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  67. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  68. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  69. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  70. package/app/.next/server/app/api/auth/login/route.js +1 -1
  71. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cache/route.js +2 -0
  75. package/app/.next/server/app/api/cache/route.js.nft.json +1 -0
  76. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -0
  77. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  78. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -157
  80. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  83. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  85. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  87. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  89. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  91. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  93. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  95. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  98. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  102. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/cloud/auth/route.js +1 -156
  104. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -156
  107. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -156
  110. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  113. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  116. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/combos/route.js +1 -1
  120. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/combos/test/route.js +1 -156
  123. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -156
  126. package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/db-backups/route.js +1 -156
  129. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/fallback/chains/route.js +3 -1
  134. package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/init/route.js +1 -1
  137. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  140. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/keys/route.js +1 -1
  143. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/models/alias/route.js +1 -1
  146. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/models/catalog/route.js +2 -156
  150. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/models/route.js +2 -156
  153. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/monitoring/health/route.js +2 -0
  156. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -0
  157. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -0
  158. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  159. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  163. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  167. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  171. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  172. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/policies/route.js +3 -1
  174. package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
  175. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/pricing/models/route.js +1 -156
  178. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/pricing/route.js +1 -156
  181. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/provider-models/route.js +1 -156
  184. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -156
  187. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/provider-nodes/route.js +2 -156
  190. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -156
  194. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  197. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  200. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/providers/client/route.js +1 -156
  203. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/providers/route.js +2 -1
  206. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/providers/test-batch/route.js +2 -156
  209. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/providers/validate/route.js +1 -156
  212. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/rate-limit/route.js +1 -156
  215. package/app/.next/server/app/api/rate-limit/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  218. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  221. package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/resilience/route.js +1 -156
  224. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -156
  229. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  230. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  231. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/settings/proxy/route.js +1 -156
  233. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  234. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/settings/require-login/route.js +1 -156
  237. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/settings/route.js +1 -1
  240. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -156
  243. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -156
  246. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  249. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  250. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  251. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  253. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  254. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  256. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  257. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  258. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  259. package/app/.next/server/app/api/token-health/route.js +1 -156
  260. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  262. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  265. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  266. package/app/.next/server/app/api/translator/send/route.js +1 -1
  267. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  268. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app/api/translator/translate/route.js +1 -156
  270. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  271. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  272. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  273. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  275. package/app/.next/server/app/api/usage/analytics/route.js +1 -156
  276. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  278. package/app/.next/server/app/api/usage/budget/route.js +3 -1
  279. package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
  280. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  281. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -156
  282. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  284. package/app/.next/server/app/api/usage/call-logs/route.js +1 -156
  285. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  286. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  287. package/app/.next/server/app/api/usage/history/route.js +1 -156
  288. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/usage/logs/route.js +1 -156
  291. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/usage/request-logs/route.js +1 -156
  295. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  297. package/app/.next/server/app/api/v1/api/chat/route.js +1 -156
  298. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  301. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  302. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  303. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  304. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  307. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  310. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  313. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  314. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/api/v1/messages/route.js +1 -156
  317. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  318. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  319. package/app/.next/server/app/api/v1/models/route.js +2 -1
  320. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  321. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  322. package/app/.next/server/app/api/v1/moderations/route.js +1 -156
  323. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  324. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  325. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -156
  326. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  327. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  328. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -156
  329. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  330. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  332. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/api/v1/rerank/route.js +1 -156
  335. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  336. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  337. package/app/.next/server/app/api/v1/responses/route.js +1 -156
  338. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  339. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  340. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  341. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -156
  342. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  343. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/v1beta/models/route.js +2 -1
  345. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  346. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  347. package/app/.next/server/app/callback/page.js +1 -1
  348. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  349. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  350. package/app/.next/server/app/callback.html +1 -1
  351. package/app/.next/server/app/callback.rsc +5 -5
  352. package/app/.next/server/app/callback.segments/_full.segment.rsc +5 -5
  353. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  354. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  355. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  356. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  357. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  358. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  359. package/app/.next/server/app/dashboard/cli-tools.rsc +7 -7
  360. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  361. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  362. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  363. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  364. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  365. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  367. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  368. package/app/.next/server/app/dashboard/combos.html +1 -1
  369. package/app/.next/server/app/dashboard/combos.rsc +7 -7
  370. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  371. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  372. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  373. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  374. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  375. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  376. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  377. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  378. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  379. package/app/.next/server/app/dashboard/endpoint.rsc +7 -7
  380. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  381. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  382. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  383. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  384. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  385. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  386. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  387. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  388. package/app/.next/server/app/dashboard/health.html +1 -0
  389. package/app/.next/server/app/dashboard/health.meta +17 -0
  390. package/app/.next/server/app/dashboard/health.rsc +24 -0
  391. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +9 -0
  392. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +4 -0
  393. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
  394. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  395. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +24 -0
  396. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +6 -0
  397. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +9 -0
  398. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +5 -0
  399. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  400. package/app/.next/server/app/dashboard/onboarding.rsc +6 -6
  401. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  402. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  403. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  404. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  405. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +6 -6
  406. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  407. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +4 -4
  408. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
  409. package/app/.next/server/app/dashboard/profile.html +1 -1
  410. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  411. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  412. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  413. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  414. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  415. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  416. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  417. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  418. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  419. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  420. package/app/.next/server/app/dashboard/providers/new.rsc +7 -7
  421. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  423. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  425. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  426. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  427. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  428. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  429. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  430. package/app/.next/server/app/dashboard/providers.html +1 -1
  431. package/app/.next/server/app/dashboard/providers.rsc +7 -7
  432. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  433. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  437. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  438. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  439. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  440. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  441. package/app/.next/server/app/dashboard/settings/pricing.rsc +6 -6
  442. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  443. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  444. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  445. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  446. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  447. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  448. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  449. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  450. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  451. package/app/.next/server/app/dashboard/settings.html +1 -1
  452. package/app/.next/server/app/dashboard/settings.rsc +7 -7
  453. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  454. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  455. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  456. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  457. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +7 -7
  458. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  459. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +4 -4
  460. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
  461. package/app/.next/server/app/dashboard/translator.html +2 -2
  462. package/app/.next/server/app/dashboard/translator.rsc +7 -7
  463. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  464. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  465. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  467. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  468. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  469. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  470. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  471. package/app/.next/server/app/dashboard/usage.html +2 -2
  472. package/app/.next/server/app/dashboard/usage.rsc +7 -7
  473. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  474. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  475. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  476. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  477. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  478. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  479. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  480. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  481. package/app/.next/server/app/docs/page.js +3 -2
  482. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  483. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  484. package/app/.next/server/app/docs.html +1 -1
  485. package/app/.next/server/app/docs.rsc +21 -20
  486. package/app/.next/server/app/docs.segments/_full.segment.rsc +21 -20
  487. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  488. package/app/.next/server/app/docs.segments/_index.segment.rsc +4 -4
  489. package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  490. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  491. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  492. package/app/.next/server/app/forbidden/page.js +2 -0
  493. package/app/.next/server/app/forbidden/page.js.nft.json +1 -0
  494. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -0
  495. package/app/.next/server/app/forbidden.html +1 -0
  496. package/app/.next/server/app/forbidden.meta +15 -0
  497. package/app/.next/server/app/forbidden.rsc +23 -0
  498. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +23 -0
  499. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +6 -0
  500. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +9 -0
  501. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +5 -0
  502. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +9 -0
  503. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +4 -0
  504. package/app/.next/server/app/forgot-password/page.js +2 -0
  505. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -0
  506. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -0
  507. package/app/.next/server/app/forgot-password.html +1 -0
  508. package/app/.next/server/app/forgot-password.meta +15 -0
  509. package/app/.next/server/app/forgot-password.rsc +23 -0
  510. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +23 -0
  511. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +6 -0
  512. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +9 -0
  513. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +5 -0
  514. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +9 -0
  515. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +4 -0
  516. package/app/.next/server/app/index.html +1 -1
  517. package/app/.next/server/app/index.rsc +5 -5
  518. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  519. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -5
  520. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  521. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  522. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  523. package/app/.next/server/app/landing/page.js +1 -1
  524. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  525. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  526. package/app/.next/server/app/landing.html +1 -1
  527. package/app/.next/server/app/landing.rsc +5 -5
  528. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  529. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  530. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  531. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  532. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  533. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  534. package/app/.next/server/app/login/page.js +1 -1
  535. package/app/.next/server/app/login/page.js.nft.json +1 -1
  536. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  537. package/app/.next/server/app/login.html +1 -1
  538. package/app/.next/server/app/login.rsc +6 -6
  539. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -6
  540. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  541. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  542. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  543. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  544. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  545. package/app/.next/server/app/page.js +1 -1
  546. package/app/.next/server/app/page.js.nft.json +1 -1
  547. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  548. package/app/.next/server/app/privacy/page.js +1 -1
  549. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  550. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  551. package/app/.next/server/app/privacy.html +1 -1
  552. package/app/.next/server/app/privacy.rsc +20 -21
  553. package/app/.next/server/app/privacy.segments/_full.segment.rsc +20 -21
  554. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  555. package/app/.next/server/app/privacy.segments/_index.segment.rsc +4 -4
  556. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  557. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +2 -2
  558. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  559. package/app/.next/server/app/terms/page.js +1 -1
  560. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  561. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  562. package/app/.next/server/app/terms.html +1 -1
  563. package/app/.next/server/app/terms.rsc +21 -19
  564. package/app/.next/server/app/terms.segments/_full.segment.rsc +21 -19
  565. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  566. package/app/.next/server/app/terms.segments/_index.segment.rsc +4 -4
  567. package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  568. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  569. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  570. package/app/.next/server/app-paths-manifest.json +28 -23
  571. package/app/.next/server/chunks/1228.js +3 -1
  572. package/app/.next/server/chunks/152.js +1 -1
  573. package/app/.next/server/chunks/1746.js +1 -0
  574. package/app/.next/server/chunks/216.js +37 -0
  575. package/app/.next/server/chunks/2399.js +1 -1
  576. package/app/.next/server/chunks/3676.js +2 -1
  577. package/app/.next/server/chunks/4004.js +1 -1
  578. package/app/.next/server/chunks/4352.js +46 -0
  579. package/app/.next/server/chunks/4436.js +1 -1
  580. package/app/.next/server/chunks/4443.js +1 -1
  581. package/app/.next/server/chunks/{8259.js → 4469.js} +52 -2
  582. package/app/.next/server/chunks/4755.js +3 -3
  583. package/app/.next/server/chunks/4832.js +2 -2
  584. package/app/.next/server/chunks/5040.js +1 -1
  585. package/app/.next/server/chunks/5727.js +1 -0
  586. package/app/.next/server/chunks/7093.js +2 -0
  587. package/app/.next/server/chunks/7615.js +9 -2
  588. package/app/.next/server/chunks/7763.js +1 -0
  589. package/app/.next/server/chunks/7802.js +1 -0
  590. package/app/.next/server/chunks/7968.js +3 -1
  591. package/app/.next/server/chunks/8392.js +1 -0
  592. package/app/.next/server/chunks/8847.js +3 -0
  593. package/app/.next/server/chunks/9263.js +1 -0
  594. package/app/.next/server/middleware.js +207 -2
  595. package/app/.next/server/pages/404.html +1 -1
  596. package/app/.next/server/pages/500.html +2 -2
  597. package/app/.next/server/server-reference-manifest.js +1 -1
  598. package/app/.next/server/server-reference-manifest.json +1 -1
  599. package/app/.next/static/H6LKncewEoggilnvYL9Ff/_buildManifest.js +1 -0
  600. package/app/.next/static/chunks/1525-ec661e96acc6574e.js +21 -0
  601. package/app/.next/static/chunks/3191-0bbb8ebd1bd32d1d.js +1 -0
  602. package/app/.next/static/chunks/{6941-0643e7aebf5ed645.js → 6941-77ce2b3be7709b94.js} +1 -1
  603. package/app/.next/static/chunks/7896-6e5648294ec51150.js +2 -0
  604. package/app/.next/static/chunks/9751-3a35163d337d54ea.js +37 -0
  605. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-148b0ad18f6bec86.js → page-4cec40aa933b932e.js} +1 -1
  606. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-28e46119138cf102.js → page-962f1e2bfe0d0b8d.js} +1 -1
  607. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-5caaa75c0ab78bc1.js +1 -0
  608. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-81352b2272952085.js +1 -0
  609. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-3d3dabe4363d421d.js +1 -0
  610. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-c02303813bcb9777.js +1 -0
  611. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-57279ed20b5399be.js +1 -0
  612. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-4bd8ea64f2e8008b.js → page-9667287d75830fd5.js} +1 -1
  613. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d08547fcb1031577.js +1 -0
  614. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-26179a630baa2686.js +1 -0
  615. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-c891465a1a2938d2.js → page-6190920e7526556c.js} +1 -1
  616. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-7a0943932e7e5e51.js → page-d1066b6c4c28fe46.js} +1 -1
  617. package/app/.next/static/chunks/app/(dashboard)/{layout-e84875e22efbf437.js → layout-b6fc79d0628b97e3.js} +1 -1
  618. package/app/.next/static/chunks/app/_global-error/page-c02303813bcb9777.js +1 -0
  619. package/app/.next/static/chunks/app/_not-found/page-c02303813bcb9777.js +1 -0
  620. package/app/.next/static/chunks/app/api/auth/login/route-c02303813bcb9777.js +1 -0
  621. package/app/.next/static/chunks/app/api/auth/logout/route-c02303813bcb9777.js +1 -0
  622. package/app/.next/static/chunks/app/api/cache/route-c02303813bcb9777.js +1 -0
  623. package/app/.next/static/chunks/app/api/cache/stats/route-c02303813bcb9777.js +1 -0
  624. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-c02303813bcb9777.js +1 -0
  625. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-c02303813bcb9777.js +1 -0
  626. package/app/.next/static/chunks/app/api/cli-tools/backups/route-c02303813bcb9777.js +1 -0
  627. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-c02303813bcb9777.js +1 -0
  628. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-c02303813bcb9777.js +1 -0
  629. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-c02303813bcb9777.js +1 -0
  630. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-c02303813bcb9777.js +1 -0
  631. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-c02303813bcb9777.js +1 -0
  632. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-c02303813bcb9777.js +1 -0
  633. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-c02303813bcb9777.js +1 -0
  634. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-c02303813bcb9777.js +1 -0
  635. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-c02303813bcb9777.js +1 -0
  636. package/app/.next/static/chunks/app/api/cloud/auth/route-c02303813bcb9777.js +1 -0
  637. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-c02303813bcb9777.js +1 -0
  638. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-c02303813bcb9777.js +1 -0
  639. package/app/.next/static/chunks/app/api/cloud/models/alias/route-c02303813bcb9777.js +1 -0
  640. package/app/.next/static/chunks/app/api/combos/[id]/route-c02303813bcb9777.js +1 -0
  641. package/app/.next/static/chunks/app/api/combos/metrics/route-c02303813bcb9777.js +1 -0
  642. package/app/.next/static/chunks/app/api/combos/route-c02303813bcb9777.js +1 -0
  643. package/app/.next/static/chunks/app/api/combos/test/route-c02303813bcb9777.js +1 -0
  644. package/app/.next/static/chunks/app/api/compliance/audit-log/route-c02303813bcb9777.js +1 -0
  645. package/app/.next/static/chunks/app/api/db-backups/route-c02303813bcb9777.js +1 -0
  646. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-c02303813bcb9777.js +1 -0
  647. package/app/.next/static/chunks/app/api/evals/route-c02303813bcb9777.js +1 -0
  648. package/app/.next/static/chunks/app/api/fallback/chains/route-c02303813bcb9777.js +1 -0
  649. package/app/.next/static/chunks/app/api/init/route-c02303813bcb9777.js +1 -0
  650. package/app/.next/static/chunks/app/api/keys/[id]/route-c02303813bcb9777.js +1 -0
  651. package/app/.next/static/chunks/app/api/keys/route-c02303813bcb9777.js +1 -0
  652. package/app/.next/static/chunks/app/api/models/alias/route-c02303813bcb9777.js +1 -0
  653. package/app/.next/static/chunks/app/api/models/availability/route-c02303813bcb9777.js +1 -0
  654. package/app/.next/static/chunks/app/api/models/catalog/route-c02303813bcb9777.js +1 -0
  655. package/app/.next/static/chunks/app/api/models/route-c02303813bcb9777.js +1 -0
  656. package/app/.next/static/chunks/app/api/monitoring/health/route-c02303813bcb9777.js +1 -0
  657. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-c02303813bcb9777.js +1 -0
  658. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-c02303813bcb9777.js +1 -0
  659. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-c02303813bcb9777.js +1 -0
  660. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-c02303813bcb9777.js +1 -0
  661. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-c02303813bcb9777.js +1 -0
  662. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-c02303813bcb9777.js +1 -0
  663. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-c02303813bcb9777.js +1 -0
  664. package/app/.next/static/chunks/app/api/policies/route-c02303813bcb9777.js +1 -0
  665. package/app/.next/static/chunks/app/api/pricing/defaults/route-c02303813bcb9777.js +1 -0
  666. package/app/.next/static/chunks/app/api/pricing/models/route-c02303813bcb9777.js +1 -0
  667. package/app/.next/static/chunks/app/api/pricing/route-c02303813bcb9777.js +1 -0
  668. package/app/.next/static/chunks/app/api/provider-models/route-c02303813bcb9777.js +1 -0
  669. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-c02303813bcb9777.js +1 -0
  670. package/app/.next/static/chunks/app/api/provider-nodes/route-c02303813bcb9777.js +1 -0
  671. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-c02303813bcb9777.js +1 -0
  672. package/app/.next/static/chunks/app/api/providers/[id]/models/route-c02303813bcb9777.js +1 -0
  673. package/app/.next/static/chunks/app/api/providers/[id]/route-c02303813bcb9777.js +1 -0
  674. package/app/.next/static/chunks/app/api/providers/[id]/test/route-c02303813bcb9777.js +1 -0
  675. package/app/.next/static/chunks/app/api/providers/client/route-c02303813bcb9777.js +1 -0
  676. package/app/.next/static/chunks/app/api/providers/route-c02303813bcb9777.js +1 -0
  677. package/app/.next/static/chunks/app/api/providers/test-batch/route-c02303813bcb9777.js +1 -0
  678. package/app/.next/static/chunks/app/api/providers/validate/route-c02303813bcb9777.js +1 -0
  679. package/app/.next/static/chunks/app/api/rate-limit/route-c02303813bcb9777.js +1 -0
  680. package/app/.next/static/chunks/app/api/rate-limits/route-c02303813bcb9777.js +1 -0
  681. package/app/.next/static/chunks/app/api/resilience/reset/route-c02303813bcb9777.js +1 -0
  682. package/app/.next/static/chunks/app/api/resilience/route-c02303813bcb9777.js +1 -0
  683. package/app/.next/static/chunks/app/api/restart/route-c02303813bcb9777.js +1 -0
  684. package/app/.next/static/chunks/app/api/sessions/route-c02303813bcb9777.js +1 -0
  685. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-c02303813bcb9777.js +1 -0
  686. package/app/.next/static/chunks/app/api/settings/ip-filter/route-c02303813bcb9777.js +1 -0
  687. package/app/.next/static/chunks/app/api/settings/proxy/route-c02303813bcb9777.js +1 -0
  688. package/app/.next/static/chunks/app/api/settings/proxy/test/route-c02303813bcb9777.js +1 -0
  689. package/app/.next/static/chunks/app/api/settings/require-login/route-c02303813bcb9777.js +1 -0
  690. package/app/.next/static/chunks/app/api/settings/route-c02303813bcb9777.js +1 -0
  691. package/app/.next/static/chunks/app/api/settings/system-prompt/route-c02303813bcb9777.js +1 -0
  692. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-c02303813bcb9777.js +1 -0
  693. package/app/.next/static/chunks/app/api/shutdown/route-c02303813bcb9777.js +1 -0
  694. package/app/.next/static/chunks/app/api/storage/health/route-c02303813bcb9777.js +1 -0
  695. package/app/.next/static/chunks/app/api/sync/cloud/route-c02303813bcb9777.js +1 -0
  696. package/app/.next/static/chunks/app/api/sync/initialize/route-c02303813bcb9777.js +1 -0
  697. package/app/.next/static/chunks/app/api/tags/route-c02303813bcb9777.js +1 -0
  698. package/app/.next/static/chunks/app/api/telemetry/summary/route-c02303813bcb9777.js +1 -0
  699. package/app/.next/static/chunks/app/api/token-health/route-c02303813bcb9777.js +1 -0
  700. package/app/.next/static/chunks/app/api/translator/detect/route-c02303813bcb9777.js +1 -0
  701. package/app/.next/static/chunks/app/api/translator/history/route-c02303813bcb9777.js +1 -0
  702. package/app/.next/static/chunks/app/api/translator/load/route-c02303813bcb9777.js +1 -0
  703. package/app/.next/static/chunks/app/api/translator/save/route-c02303813bcb9777.js +1 -0
  704. package/app/.next/static/chunks/app/api/translator/send/route-c02303813bcb9777.js +1 -0
  705. package/app/.next/static/chunks/app/api/translator/translate/route-c02303813bcb9777.js +1 -0
  706. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-c02303813bcb9777.js +1 -0
  707. package/app/.next/static/chunks/app/api/usage/analytics/route-c02303813bcb9777.js +1 -0
  708. package/app/.next/static/chunks/app/api/usage/budget/route-c02303813bcb9777.js +1 -0
  709. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-c02303813bcb9777.js +1 -0
  710. package/app/.next/static/chunks/app/api/usage/call-logs/route-c02303813bcb9777.js +1 -0
  711. package/app/.next/static/chunks/app/api/usage/history/route-c02303813bcb9777.js +1 -0
  712. package/app/.next/static/chunks/app/api/usage/logs/route-c02303813bcb9777.js +1 -0
  713. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-c02303813bcb9777.js +1 -0
  714. package/app/.next/static/chunks/app/api/usage/request-logs/route-c02303813bcb9777.js +1 -0
  715. package/app/.next/static/chunks/app/api/v1/api/chat/route-c02303813bcb9777.js +1 -0
  716. package/app/.next/static/chunks/app/api/v1/audio/speech/route-c02303813bcb9777.js +1 -0
  717. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-c02303813bcb9777.js +1 -0
  718. package/app/.next/static/chunks/app/api/v1/chat/completions/route-c02303813bcb9777.js +1 -0
  719. package/app/.next/static/chunks/app/api/v1/embeddings/route-c02303813bcb9777.js +1 -0
  720. package/app/.next/static/chunks/app/api/v1/images/generations/route-c02303813bcb9777.js +1 -0
  721. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-c02303813bcb9777.js +1 -0
  722. package/app/.next/static/chunks/app/api/v1/messages/route-c02303813bcb9777.js +1 -0
  723. package/app/.next/static/chunks/app/api/v1/models/route-c02303813bcb9777.js +1 -0
  724. package/app/.next/static/chunks/app/api/v1/moderations/route-c02303813bcb9777.js +1 -0
  725. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-c02303813bcb9777.js +1 -0
  726. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-c02303813bcb9777.js +1 -0
  727. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-c02303813bcb9777.js +1 -0
  728. package/app/.next/static/chunks/app/api/v1/rerank/route-c02303813bcb9777.js +1 -0
  729. package/app/.next/static/chunks/app/api/v1/responses/route-c02303813bcb9777.js +1 -0
  730. package/app/.next/static/chunks/app/api/v1/route-c02303813bcb9777.js +1 -0
  731. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-c02303813bcb9777.js +1 -0
  732. package/app/.next/static/chunks/app/api/v1beta/models/route-c02303813bcb9777.js +1 -0
  733. package/app/.next/static/chunks/app/forbidden/page-6806872971c364f0.js +1 -0
  734. package/app/.next/static/chunks/app/forgot-password/page-9c116a597f3df4d1.js +1 -0
  735. package/app/.next/static/chunks/app/global-error-6abc2976016d7bd1.js +1 -0
  736. package/app/.next/static/chunks/app/layout-6504ce60623b0a41.js +1 -0
  737. package/app/.next/static/chunks/app/login/{page-e99ed6a85e91ae7c.js → page-93ac51059ef434b7.js} +1 -1
  738. package/app/.next/static/chunks/app/not-found-e1af8b9c5785b71b.js +1 -0
  739. package/app/.next/static/chunks/app/page-c02303813bcb9777.js +1 -0
  740. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-c02303813bcb9777.js +1 -0
  741. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-c02303813bcb9777.js +1 -0
  742. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c02303813bcb9777.js +1 -0
  743. package/app/.next/static/css/2ecfad7c4409b17e.css +1 -0
  744. package/app/package.json +2 -2
  745. package/package.json +2 -2
  746. package/app/.next/server/chunks/1969.js +0 -1
  747. package/app/.next/server/chunks/21.js +0 -46
  748. package/app/.next/server/chunks/4412.js +0 -156
  749. package/app/.next/server/chunks/481.js +0 -156
  750. package/app/.next/server/chunks/5267.js +0 -1
  751. package/app/.next/server/chunks/5640.js +0 -1
  752. package/app/.next/server/chunks/9328.js +0 -156
  753. package/app/.next/static/HcUrNktdfL89Ss5F7FHxP/_buildManifest.js +0 -1
  754. package/app/.next/static/chunks/1525-213a0aff01eb1c70.js +0 -21
  755. package/app/.next/static/chunks/7896-5591822b8348e380.js +0 -1
  756. package/app/.next/static/chunks/8013-04b90e92e614b5d9.js +0 -1
  757. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ab8b870377087bc7.js +0 -1
  758. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-bc5764734a448526.js +0 -1
  759. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-329f30be723f33ce.js +0 -1
  760. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-fb1fa9ae8a3af8c8.js +0 -1
  761. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-fc3451fe77f856f1.js +0 -1
  762. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-95b884cdbf859e56.js +0 -1
  763. package/app/.next/static/chunks/app/_global-error/page-329f30be723f33ce.js +0 -1
  764. package/app/.next/static/chunks/app/_not-found/page-329f30be723f33ce.js +0 -1
  765. package/app/.next/static/chunks/app/api/auth/login/route-329f30be723f33ce.js +0 -1
  766. package/app/.next/static/chunks/app/api/auth/logout/route-329f30be723f33ce.js +0 -1
  767. package/app/.next/static/chunks/app/api/cache/stats/route-329f30be723f33ce.js +0 -1
  768. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-329f30be723f33ce.js +0 -1
  769. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-329f30be723f33ce.js +0 -1
  770. package/app/.next/static/chunks/app/api/cli-tools/backups/route-329f30be723f33ce.js +0 -1
  771. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-329f30be723f33ce.js +0 -1
  772. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-329f30be723f33ce.js +0 -1
  773. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-329f30be723f33ce.js +0 -1
  774. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-329f30be723f33ce.js +0 -1
  775. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-329f30be723f33ce.js +0 -1
  776. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-329f30be723f33ce.js +0 -1
  777. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-329f30be723f33ce.js +0 -1
  778. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-329f30be723f33ce.js +0 -1
  779. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-329f30be723f33ce.js +0 -1
  780. package/app/.next/static/chunks/app/api/cloud/auth/route-329f30be723f33ce.js +0 -1
  781. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-329f30be723f33ce.js +0 -1
  782. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-329f30be723f33ce.js +0 -1
  783. package/app/.next/static/chunks/app/api/cloud/models/alias/route-329f30be723f33ce.js +0 -1
  784. package/app/.next/static/chunks/app/api/combos/[id]/route-329f30be723f33ce.js +0 -1
  785. package/app/.next/static/chunks/app/api/combos/metrics/route-329f30be723f33ce.js +0 -1
  786. package/app/.next/static/chunks/app/api/combos/route-329f30be723f33ce.js +0 -1
  787. package/app/.next/static/chunks/app/api/combos/test/route-329f30be723f33ce.js +0 -1
  788. package/app/.next/static/chunks/app/api/compliance/audit-log/route-329f30be723f33ce.js +0 -1
  789. package/app/.next/static/chunks/app/api/db-backups/route-329f30be723f33ce.js +0 -1
  790. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-329f30be723f33ce.js +0 -1
  791. package/app/.next/static/chunks/app/api/evals/route-329f30be723f33ce.js +0 -1
  792. package/app/.next/static/chunks/app/api/fallback/chains/route-329f30be723f33ce.js +0 -1
  793. package/app/.next/static/chunks/app/api/init/route-329f30be723f33ce.js +0 -1
  794. package/app/.next/static/chunks/app/api/keys/[id]/route-329f30be723f33ce.js +0 -1
  795. package/app/.next/static/chunks/app/api/keys/route-329f30be723f33ce.js +0 -1
  796. package/app/.next/static/chunks/app/api/models/alias/route-329f30be723f33ce.js +0 -1
  797. package/app/.next/static/chunks/app/api/models/availability/route-329f30be723f33ce.js +0 -1
  798. package/app/.next/static/chunks/app/api/models/catalog/route-329f30be723f33ce.js +0 -1
  799. package/app/.next/static/chunks/app/api/models/route-329f30be723f33ce.js +0 -1
  800. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-329f30be723f33ce.js +0 -1
  801. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-329f30be723f33ce.js +0 -1
  802. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-329f30be723f33ce.js +0 -1
  803. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-329f30be723f33ce.js +0 -1
  804. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-329f30be723f33ce.js +0 -1
  805. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-329f30be723f33ce.js +0 -1
  806. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-329f30be723f33ce.js +0 -1
  807. package/app/.next/static/chunks/app/api/policies/route-329f30be723f33ce.js +0 -1
  808. package/app/.next/static/chunks/app/api/pricing/defaults/route-329f30be723f33ce.js +0 -1
  809. package/app/.next/static/chunks/app/api/pricing/models/route-329f30be723f33ce.js +0 -1
  810. package/app/.next/static/chunks/app/api/pricing/route-329f30be723f33ce.js +0 -1
  811. package/app/.next/static/chunks/app/api/provider-models/route-329f30be723f33ce.js +0 -1
  812. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-329f30be723f33ce.js +0 -1
  813. package/app/.next/static/chunks/app/api/provider-nodes/route-329f30be723f33ce.js +0 -1
  814. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-329f30be723f33ce.js +0 -1
  815. package/app/.next/static/chunks/app/api/providers/[id]/models/route-329f30be723f33ce.js +0 -1
  816. package/app/.next/static/chunks/app/api/providers/[id]/route-329f30be723f33ce.js +0 -1
  817. package/app/.next/static/chunks/app/api/providers/[id]/test/route-329f30be723f33ce.js +0 -1
  818. package/app/.next/static/chunks/app/api/providers/client/route-329f30be723f33ce.js +0 -1
  819. package/app/.next/static/chunks/app/api/providers/route-329f30be723f33ce.js +0 -1
  820. package/app/.next/static/chunks/app/api/providers/test-batch/route-329f30be723f33ce.js +0 -1
  821. package/app/.next/static/chunks/app/api/providers/validate/route-329f30be723f33ce.js +0 -1
  822. package/app/.next/static/chunks/app/api/rate-limit/route-329f30be723f33ce.js +0 -1
  823. package/app/.next/static/chunks/app/api/rate-limits/route-329f30be723f33ce.js +0 -1
  824. package/app/.next/static/chunks/app/api/resilience/reset/route-329f30be723f33ce.js +0 -1
  825. package/app/.next/static/chunks/app/api/resilience/route-329f30be723f33ce.js +0 -1
  826. package/app/.next/static/chunks/app/api/restart/route-329f30be723f33ce.js +0 -1
  827. package/app/.next/static/chunks/app/api/sessions/route-329f30be723f33ce.js +0 -1
  828. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-329f30be723f33ce.js +0 -1
  829. package/app/.next/static/chunks/app/api/settings/ip-filter/route-329f30be723f33ce.js +0 -1
  830. package/app/.next/static/chunks/app/api/settings/proxy/route-329f30be723f33ce.js +0 -1
  831. package/app/.next/static/chunks/app/api/settings/proxy/test/route-329f30be723f33ce.js +0 -1
  832. package/app/.next/static/chunks/app/api/settings/require-login/route-329f30be723f33ce.js +0 -1
  833. package/app/.next/static/chunks/app/api/settings/route-329f30be723f33ce.js +0 -1
  834. package/app/.next/static/chunks/app/api/settings/system-prompt/route-329f30be723f33ce.js +0 -1
  835. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-329f30be723f33ce.js +0 -1
  836. package/app/.next/static/chunks/app/api/shutdown/route-329f30be723f33ce.js +0 -1
  837. package/app/.next/static/chunks/app/api/storage/health/route-329f30be723f33ce.js +0 -1
  838. package/app/.next/static/chunks/app/api/sync/cloud/route-329f30be723f33ce.js +0 -1
  839. package/app/.next/static/chunks/app/api/sync/initialize/route-329f30be723f33ce.js +0 -1
  840. package/app/.next/static/chunks/app/api/tags/route-329f30be723f33ce.js +0 -1
  841. package/app/.next/static/chunks/app/api/telemetry/summary/route-329f30be723f33ce.js +0 -1
  842. package/app/.next/static/chunks/app/api/token-health/route-329f30be723f33ce.js +0 -1
  843. package/app/.next/static/chunks/app/api/translator/detect/route-329f30be723f33ce.js +0 -1
  844. package/app/.next/static/chunks/app/api/translator/history/route-329f30be723f33ce.js +0 -1
  845. package/app/.next/static/chunks/app/api/translator/load/route-329f30be723f33ce.js +0 -1
  846. package/app/.next/static/chunks/app/api/translator/save/route-329f30be723f33ce.js +0 -1
  847. package/app/.next/static/chunks/app/api/translator/send/route-329f30be723f33ce.js +0 -1
  848. package/app/.next/static/chunks/app/api/translator/translate/route-329f30be723f33ce.js +0 -1
  849. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-329f30be723f33ce.js +0 -1
  850. package/app/.next/static/chunks/app/api/usage/analytics/route-329f30be723f33ce.js +0 -1
  851. package/app/.next/static/chunks/app/api/usage/budget/route-329f30be723f33ce.js +0 -1
  852. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-329f30be723f33ce.js +0 -1
  853. package/app/.next/static/chunks/app/api/usage/call-logs/route-329f30be723f33ce.js +0 -1
  854. package/app/.next/static/chunks/app/api/usage/history/route-329f30be723f33ce.js +0 -1
  855. package/app/.next/static/chunks/app/api/usage/logs/route-329f30be723f33ce.js +0 -1
  856. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-329f30be723f33ce.js +0 -1
  857. package/app/.next/static/chunks/app/api/usage/request-logs/route-329f30be723f33ce.js +0 -1
  858. package/app/.next/static/chunks/app/api/v1/api/chat/route-329f30be723f33ce.js +0 -1
  859. package/app/.next/static/chunks/app/api/v1/audio/speech/route-329f30be723f33ce.js +0 -1
  860. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-329f30be723f33ce.js +0 -1
  861. package/app/.next/static/chunks/app/api/v1/chat/completions/route-329f30be723f33ce.js +0 -1
  862. package/app/.next/static/chunks/app/api/v1/embeddings/route-329f30be723f33ce.js +0 -1
  863. package/app/.next/static/chunks/app/api/v1/images/generations/route-329f30be723f33ce.js +0 -1
  864. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-329f30be723f33ce.js +0 -1
  865. package/app/.next/static/chunks/app/api/v1/messages/route-329f30be723f33ce.js +0 -1
  866. package/app/.next/static/chunks/app/api/v1/models/route-329f30be723f33ce.js +0 -1
  867. package/app/.next/static/chunks/app/api/v1/moderations/route-329f30be723f33ce.js +0 -1
  868. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-329f30be723f33ce.js +0 -1
  869. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-329f30be723f33ce.js +0 -1
  870. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-329f30be723f33ce.js +0 -1
  871. package/app/.next/static/chunks/app/api/v1/rerank/route-329f30be723f33ce.js +0 -1
  872. package/app/.next/static/chunks/app/api/v1/responses/route-329f30be723f33ce.js +0 -1
  873. package/app/.next/static/chunks/app/api/v1/route-329f30be723f33ce.js +0 -1
  874. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-329f30be723f33ce.js +0 -1
  875. package/app/.next/static/chunks/app/api/v1beta/models/route-329f30be723f33ce.js +0 -1
  876. package/app/.next/static/chunks/app/global-error-bbdc13af28c5aba1.js +0 -1
  877. package/app/.next/static/chunks/app/layout-485b011f69e6ed37.js +0 -1
  878. package/app/.next/static/chunks/app/not-found-2ba4520c9df30430.js +0 -1
  879. package/app/.next/static/chunks/app/page-329f30be723f33ce.js +0 -1
  880. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-329f30be723f33ce.js +0 -1
  881. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-329f30be723f33ce.js +0 -1
  882. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-329f30be723f33ce.js +0 -1
  883. package/app/.next/static/css/2862d4067eab20b2.css +0 -1
  884. /package/app/.next/static/{HcUrNktdfL89Ss5F7FHxP → H6LKncewEoggilnvYL9Ff}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--HcUrNktdfL89Ss5F7FHxP--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2862d4067eab20b2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a2b6b20e2db553f5.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/600-84211b75b24af21c.js" async=""></script><script src="/_next/static/chunks/8013-04b90e92e614b5d9.js" async=""></script><script src="/_next/static/chunks/7896-5591822b8348e380.js" async=""></script><script src="/_next/static/chunks/1525-213a0aff01eb1c70.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-e84875e22efbf437.js" async=""></script><script src="/_next/static/chunks/app/not-found-2ba4520c9df30430.js" async=""></script><script src="/_next/static/chunks/app/docs/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-bbdc13af28c5aba1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>OmniRoute — AI Gateway for Multi-Provider LLMs</title><meta name="description" content="OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-bg text-text-main"><div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8"><header class="rounded-2xl border border-border bg-bg-subtle p-6 md:p-8"><div class="flex flex-col gap-4 md:flex-row md:items-center md:justify-between"><div><p class="text-xs uppercase tracking-wider text-text-muted">In-App Documentation</p><h1 class="text-3xl md:text-4xl font-bold mt-1">OmniRoute<!-- --> Docs</h1><p class="text-sm md:text-base text-text-muted mt-2 max-w-3xl">Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server.</p></div><div class="flex flex-wrap gap-2"><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/endpoint">Open Endpoint Page</a><a href="https://github.com/decolua/omniroute/issues" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors">Report Issue</a></div></div></header><section id="quick-start" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Quick Start</h2><ol class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">1. Create API key</span><p class="text-text-muted mt-1">Generate one key per app/environment.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">2. Connect providers</span><p class="text-text-muted mt-1">Add provider accounts in Dashboard and run Test Connection.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">3. Set client base URL</span><p class="text-text-muted mt-1">Prefer <code class="px-1 rounded bg-bg-subtle">https://&lt;host&gt;/v1</code>.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">4. Choose model</span><p class="text-text-muted mt-1">Prefer explicit provider prefix, for example<!-- --> <code class="px-1 rounded bg-bg-subtle">gh/gpt-5.1-codex</code>.</p></li></ol></section><section id="use-cases" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Common Use Cases</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-3"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Single endpoint for many providers</h3><p class="text-sm text-text-muted mt-2">Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Fallback and model switching with combos</h3><p class="text-sm text-text-muted mt-2">Create combo models in Dashboard and keep client config stable while providers rotate internally.</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Usage, cost and debug visibility</h3><p class="text-sm text-text-muted mt-2">Track tokens/cost by provider, account and API key in Usage + Logger tabs.</p></article></div></section><section id="client-compatibility" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Client Compatibility</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><article id="cherry-studio" class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cherry Studio</h3><ul class="mt-2 text-text-muted space-y-1"><li>Base URL:<!-- --> <code class="px-1 rounded bg-bg-subtle">https://&lt;host&gt;/v1</code></li><li>Chat endpoint:<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code></li><li>Model recommendation: explicit prefix (<code class="px-1 rounded bg-bg-subtle">gh/...</code>,<!-- --> <code class="px-1 rounded bg-bg-subtle">cc/...</code>)</li></ul></article><article id="codex-copilot" class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Codex / GitHub Copilot Models</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use model IDs with <code class="px-1 rounded bg-bg-subtle">gh/</code> prefix.</li><li>Codex-family models auto-route to<!-- --> <code class="px-1 rounded bg-bg-subtle">/responses</code>.</li><li>Non-Codex models continue on<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code>.</li></ul></article></div></section><section id="api-reference" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Endpoint Reference</h2><div class="mt-4 overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Path</th><th class="text-left py-2">Notes</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/chat/completions</td><td class="py-2 text-text-muted">OpenAI-compatible chat endpoint (default).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/responses</td><td class="py-2 text-text-muted">Responses API endpoint (supported).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/models</td><td class="py-2 text-text-muted">Model catalog for connected providers.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/chat/completions</td><td class="py-2 text-text-muted">Rewrite helper for clients that do not include /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/responses</td><td class="py-2 text-text-muted">Rewrite helper for Responses clients without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/models</td><td class="py-2 text-text-muted">Rewrite helper for model discovery without /v1.</td></tr></tbody></table></div></section><section id="troubleshooting" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Troubleshooting</h2><ul class="mt-4 list-disc list-inside text-sm text-text-muted space-y-2"><li>If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).</li><li>If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.</li><li>For GitHub Codex-family models, keep model as gh/&lt;codex-model&gt;; router selects /responses automatically.</li><li>Use Dashboard &gt; Providers &gt; Test Connection before testing from IDEs or external clients.</li></ul></section></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a2b6b20e2db553f5.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57896,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"600\",\"static/chunks/600-84211b75b24af21c.js\",\"8013\",\"static/chunks/8013-04b90e92e614b5d9.js\",\"7896\",\"static/chunks/7896-5591822b8348e380.js\",\"1525\",\"static/chunks/1525-213a0aff01eb1c70.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-e84875e22efbf437.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[91369,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-2ba4520c9df30430.js\"],\"default\"]\n6:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9040\",\"static/chunks/app/docs/page-8f74097544a61b9d.js\"],\"\"]\ne:I[96243,[\"4219\",\"static/chunks/app/global-error-bbdc13af28c5aba1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/2862d4067eab20b2.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"HcUrNktdfL89Ss5F7FHxP\",\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2862d4067eab20b2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L5\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs uppercase tracking-wider text-text-muted\",\"children\":\"In-App Documentation\"}],[\"$\",\"h1\",null,{\"className\":\"text-3xl md:text-4xl font-bold mt-1\",\"children\":[\"OmniRoute\",\" Docs\"]}],[\"$\",\"p\",null,{\"className\":\"text-sm md:text-base text-text-muted mt-2 max-w-3xl\",\"children\":\"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/dashboard/endpoint\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Open Endpoint Page\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/decolua/omniroute/issues\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Report Issue\"}]]}]]}]}],[\"$\",\"section\",null,{\"id\":\"quick-start\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Quick Start\"}],[\"$\",\"ol\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"1. Create API key\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Generate one key per app/environment.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"2. Connect providers\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Add provider accounts in Dashboard and run Test Connection.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"3. Set client base URL\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Prefer \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}],\".\"]}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"4. Choose model\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Prefer explicit provider prefix, for example\",\" \",\"$L7\",\".\"]}]]}]]}]]}],\"$L8\",\"$L9\",\"$La\",\"$Lb\"]}]}],null,\"$Lc\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:I[90484,[],\"OutletBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[90484,[],\"ViewportBoundary\"]\n14:I[90484,[],\"MetadataBoundary\"]\n7:[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/gpt-5.1-codex\"}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"section\",null,{\"id\":\"use-cases\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Common Use Cases\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"article\",\"Single endpoint for many providers\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Single endpoint for many providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).\"}]]}],[\"$\",\"article\",\"Fallback and model switching with combos\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Fallback and model switching with combos\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Create combo models in Dashboard and keep client config stable while providers rotate internally.\"}]]}],[\"$\",\"article\",\"Usage, cost and debug visibility\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Usage, cost and debug visibility\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Track tokens/cost by provider, account and API key in Usage + Logger tabs.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"section\",null,{\"id\":\"client-compatibility\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Client Compatibility\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"article\",null,{\"id\":\"cherry-studio\",\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cherry Studio\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Base URL:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Chat endpoint:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Model recommendation: explicit prefix (\",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/...\"}],\",\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/...\"}],\")\"]}]]}]]}],[\"$\",\"article\",null,{\"id\":\"codex-copilot\",\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Codex / GitHub Copilot Models\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use model IDs with \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/\"}],\" prefix.\"]}],[\"$\",\"li\",null,{\"children\":[\"Codex-family models auto-route to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/responses\"}],\".\"]}],[\"$\",\"li\",null,{\"children\":[\"Non-Codex models continue on\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}],\".\"]}]]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"section\",null,{\"id\":\"api-reference\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Endpoint Reference\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Path\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Notes\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"/v1/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"OpenAI-compatible chat endpoint (default).\"}]]}],[\"$\",\"tr\",\"/v1/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Responses API endpoint (supported).\"}]]}],[\"$\",\"tr\",\"/v1/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Model catalog for connected providers.\"}]]}],[\"$\",\"tr\",\"/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for clients that do not include /v1.\"}]]}],[\"$\",\"tr\",\"/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for Responses clients without /v1.\"}]]}],[\"$\",\"tr\",\"/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for model discovery without /v1.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"section\",null,{\"id\":\"troubleshooting\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Troubleshooting\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 list-disc list-inside text-sm text-text-muted space-y-2\",\"children\":[[\"$\",\"li\",\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\",{\"children\":\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\"}],[\"$\",\"li\",\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\",{\"children\":\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\"}],[\"$\",\"li\",\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\",{\"children\":\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\"}],[\"$\",\"li\",\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\",{\"children\":\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\"}]]}]]}]\nc:[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@11\"}]}]\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$10\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"16:I[86869,[],\"IconMark\"]\n11:null\n15:[[\"$\",\"title\",\"0\",{\"children\":\"OmniRoute — AI Gateway for Multi-Provider LLMs\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L16\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--H6LKncewEoggilnvYL9Ff--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/081a0afca5a9bd20.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/2ecfad7c4409b17e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a2b6b20e2db553f5.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-337d1ca25ad99a89.js" async=""></script><script src="/_next/static/chunks/main-app-c9da11a8061df107.js" async=""></script><script src="/_next/static/chunks/8500-98e13bcce54aa7a0.js" async=""></script><script src="/_next/static/chunks/9751-3a35163d337d54ea.js" async=""></script><script src="/_next/static/chunks/600-84211b75b24af21c.js" async=""></script><script src="/_next/static/chunks/3191-0bbb8ebd1bd32d1d.js" async=""></script><script src="/_next/static/chunks/7896-6e5648294ec51150.js" async=""></script><script src="/_next/static/chunks/1525-ec661e96acc6574e.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-b6fc79d0628b97e3.js" async=""></script><script src="/_next/static/chunks/app/not-found-e1af8b9c5785b71b.js" async=""></script><script src="/_next/static/chunks/app/docs/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-6abc2976016d7bd1.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><meta name="next-size-adjust" content=""/><title>OmniRoute — AI Gateway for Multi-Provider LLMs</title><meta name="description" content="OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg">Skip to content</a><div class="min-h-screen bg-bg text-text-main"><div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8"><header class="rounded-2xl border border-border bg-bg-subtle p-6 md:p-8"><div class="flex flex-col gap-4 md:flex-row md:items-center md:justify-between"><div><p class="text-xs uppercase tracking-wider text-text-muted">In-App Documentation</p><h1 class="text-3xl md:text-4xl font-bold mt-1">OmniRoute<!-- --> Docs</h1><p class="text-sm md:text-base text-text-muted mt-2 max-w-3xl">Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server.</p></div><div class="flex flex-wrap gap-2"><a class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors" href="/dashboard/endpoint">Open Endpoint Page</a><a href="https://github.com/decolua/omniroute/issues" target="_blank" rel="noopener noreferrer" class="px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors">Report Issue</a></div></div></header><section id="quick-start" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Quick Start</h2><ol class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">1. Create API key</span><p class="text-text-muted mt-1">Generate one key per app/environment.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">2. Connect providers</span><p class="text-text-muted mt-1">Add provider accounts in Dashboard and run Test Connection.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">3. Set client base URL</span><p class="text-text-muted mt-1">Prefer <code class="px-1 rounded bg-bg-subtle">https://&lt;host&gt;/v1</code>.</p></li><li class="rounded-lg border border-border p-3 bg-bg"><span class="font-semibold">4. Choose model</span><p class="text-text-muted mt-1">Prefer explicit provider prefix, for example<!-- --> <code class="px-1 rounded bg-bg-subtle">gh/gpt-5.1-codex</code>.</p></li></ol></section><section id="use-cases" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Common Use Cases</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-3 gap-3"><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Single endpoint for many providers</h3><p class="text-sm text-text-muted mt-2">Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Fallback and model switching with combos</h3><p class="text-sm text-text-muted mt-2">Create combo models in Dashboard and keep client config stable while providers rotate internally.</p></article><article class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Usage, cost and debug visibility</h3><p class="text-sm text-text-muted mt-2">Track tokens/cost by provider, account and API key in Usage + Logger tabs.</p></article></div></section><section id="client-compatibility" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Client Compatibility</h2><div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"><article id="cherry-studio" class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Cherry Studio</h3><ul class="mt-2 text-text-muted space-y-1"><li>Base URL:<!-- --> <code class="px-1 rounded bg-bg-subtle">https://&lt;host&gt;/v1</code></li><li>Chat endpoint:<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code></li><li>Model recommendation: explicit prefix (<code class="px-1 rounded bg-bg-subtle">gh/...</code>,<!-- --> <code class="px-1 rounded bg-bg-subtle">cc/...</code>)</li></ul></article><article id="codex-copilot" class="rounded-lg border border-border p-4 bg-bg"><h3 class="font-semibold">Codex / GitHub Copilot Models</h3><ul class="mt-2 text-text-muted space-y-1"><li>Use model IDs with <code class="px-1 rounded bg-bg-subtle">gh/</code> prefix.</li><li>Codex-family models auto-route to<!-- --> <code class="px-1 rounded bg-bg-subtle">/responses</code>.</li><li>Non-Codex models continue on<!-- --> <code class="px-1 rounded bg-bg-subtle">/chat/completions</code>.</li></ul></article></div></section><section id="api-reference" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Endpoint Reference</h2><div class="mt-4 overflow-x-auto"><table class="w-full text-sm border-collapse"><thead><tr class="border-b border-border"><th class="text-left py-2 pr-4">Path</th><th class="text-left py-2">Notes</th></tr></thead><tbody><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/chat/completions</td><td class="py-2 text-text-muted">OpenAI-compatible chat endpoint (default).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/responses</td><td class="py-2 text-text-muted">Responses API endpoint (supported).</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/v1/models</td><td class="py-2 text-text-muted">Model catalog for connected providers.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/chat/completions</td><td class="py-2 text-text-muted">Rewrite helper for clients that do not include /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/responses</td><td class="py-2 text-text-muted">Rewrite helper for Responses clients without /v1.</td></tr><tr class="border-b border-border/60"><td class="py-2 pr-4 font-mono">/models</td><td class="py-2 text-text-muted">Rewrite helper for model discovery without /v1.</td></tr></tbody></table></div></section><section id="troubleshooting" class="rounded-2xl border border-border bg-bg-subtle p-6"><h2 class="text-xl font-semibold">Troubleshooting</h2><ul class="mt-4 list-disc list-inside text-sm text-text-muted space-y-2"><li>If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).</li><li>If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.</li><li>For GitHub Codex-family models, keep model as gh/&lt;codex-model&gt;; router selects /responses automatically.</li><li>Use Dashboard &gt; Providers &gt; Test Connection before testing from IDEs or external clients.</li></ul></section></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a2b6b20e2db553f5.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57896,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"600\",\"static/chunks/600-84211b75b24af21c.js\",\"3191\",\"static/chunks/3191-0bbb8ebd1bd32d1d.js\",\"7896\",\"static/chunks/7896-6e5648294ec51150.js\",\"1525\",\"static/chunks/1525-ec661e96acc6574e.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-b6fc79d0628b97e3.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[91369,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-e1af8b9c5785b71b.js\"],\"default\"]\n6:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9040\",\"static/chunks/app/docs/page-8f74097544a61b9d.js\"],\"\"]\nf:I[96243,[\"4219\",\"static/chunks/app/global-error-6abc2976016d7bd1.js\"],\"default\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/081a0afca5a9bd20.css\",\"style\"]\n:HL[\"/_next/static/css/2ecfad7c4409b17e.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"H6LKncewEoggilnvYL9Ff\",\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/081a0afca5a9bd20.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/2ecfad7c4409b17e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg\",\"children\":\"Skip to content\"}],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L5\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4 md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs uppercase tracking-wider text-text-muted\",\"children\":\"In-App Documentation\"}],[\"$\",\"h1\",null,{\"className\":\"text-3xl md:text-4xl font-bold mt-1\",\"children\":[\"OmniRoute\",\" Docs\"]}],[\"$\",\"p\",null,{\"className\":\"text-sm md:text-base text-text-muted mt-2 max-w-3xl\",\"children\":\"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/dashboard/endpoint\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Open Endpoint Page\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/decolua/omniroute/issues\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors\",\"children\":\"Report Issue\"}]]}]]}]}],[\"$\",\"section\",null,{\"id\":\"quick-start\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Quick Start\"}],[\"$\",\"ol\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"1. Create API key\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Generate one key per app/environment.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"2. Connect providers\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":\"Add provider accounts in Dashboard and run Test Connection.\"}]]}],[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"3. Set client base URL\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Prefer \",\"$L7\",\".\"]}]]}],\"$L8\"]}]]}],\"$L9\",\"$La\",\"$Lb\",\"$Lc\"]}]}],null,\"$Ld\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$Le\",false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"10:I[90484,[],\"OutletBoundary\"]\n11:\"$Sreact.suspense\"\n13:I[90484,[],\"ViewportBoundary\"]\n15:I[90484,[],\"MetadataBoundary\"]\n7:[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}]\n8:[\"$\",\"li\",null,{\"className\":\"rounded-lg border border-border p-3 bg-bg\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-semibold\",\"children\":\"4. Choose model\"}],[\"$\",\"p\",null,{\"className\":\"text-text-muted mt-1\",\"children\":[\"Prefer explicit provider prefix, for example\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/gpt-5.1-codex\"}],\".\"]}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"section\",null,{\"id\":\"use-cases\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Common Use Cases\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3\",\"children\":[[\"$\",\"article\",\"Single endpoint for many providers\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Single endpoint for many providers\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).\"}]]}],[\"$\",\"article\",\"Fallback and model switching with combos\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Fallback and model switching with combos\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Create combo models in Dashboard and keep client config stable while providers rotate internally.\"}]]}],[\"$\",\"article\",\"Usage, cost and debug visibility\",{\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Usage, cost and debug visibility\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mt-2\",\"children\":\"Track tokens/cost by provider, account and API key in Usage + Logger tabs.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"section\",null,{\"id\":\"client-compatibility\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Client Compatibility\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm\",\"children\":[[\"$\",\"article\",null,{\"id\":\"cherry-studio\",\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Cherry Studio\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Base URL:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"https://\u003chost\u003e/v1\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Chat endpoint:\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}]]}],[\"$\",\"li\",null,{\"children\":[\"Model recommendation: explicit prefix (\",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/...\"}],\",\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"cc/...\"}],\")\"]}]]}]]}],[\"$\",\"article\",null,{\"id\":\"codex-copilot\",\"className\":\"rounded-lg border border-border p-4 bg-bg\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-semibold\",\"children\":\"Codex / GitHub Copilot Models\"}],[\"$\",\"ul\",null,{\"className\":\"mt-2 text-text-muted space-y-1\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"Use model IDs with \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"gh/\"}],\" prefix.\"]}],[\"$\",\"li\",null,{\"children\":[\"Codex-family models auto-route to\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/responses\"}],\".\"]}],[\"$\",\"li\",null,{\"children\":[\"Non-Codex models continue on\",\" \",[\"$\",\"code\",null,{\"className\":\"px-1 rounded bg-bg-subtle\",\"children\":\"/chat/completions\"}],\".\"]}]]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"section\",null,{\"id\":\"api-reference\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Endpoint Reference\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"w-full text-sm border-collapse\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"border-b border-border\",\"children\":[[\"$\",\"th\",null,{\"className\":\"text-left py-2 pr-4\",\"children\":\"Path\"}],[\"$\",\"th\",null,{\"className\":\"text-left py-2\",\"children\":\"Notes\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"/v1/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"OpenAI-compatible chat endpoint (default).\"}]]}],[\"$\",\"tr\",\"/v1/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Responses API endpoint (supported).\"}]]}],[\"$\",\"tr\",\"/v1/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/v1/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Model catalog for connected providers.\"}]]}],[\"$\",\"tr\",\"/chat/completions\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/chat/completions\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for clients that do not include /v1.\"}]]}],[\"$\",\"tr\",\"/responses\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/responses\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for Responses clients without /v1.\"}]]}],[\"$\",\"tr\",\"/models\",{\"className\":\"border-b border-border/60\",\"children\":[[\"$\",\"td\",null,{\"className\":\"py-2 pr-4 font-mono\",\"children\":\"/models\"}],[\"$\",\"td\",null,{\"className\":\"py-2 text-text-muted\",\"children\":\"Rewrite helper for model discovery without /v1.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"c:[\"$\",\"section\",null,{\"id\":\"troubleshooting\",\"className\":\"rounded-2xl border border-border bg-bg-subtle p-6\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-semibold\",\"children\":\"Troubleshooting\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 list-disc list-inside text-sm text-text-muted space-y-2\",\"children\":[[\"$\",\"li\",\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\",{\"children\":\"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).\"}],[\"$\",\"li\",\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\",{\"children\":\"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.\"}],[\"$\",\"li\",\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\",{\"children\":\"For GitHub Codex-family models, keep model as gh/\u003ccodex-model\u003e; router selects /responses automatically.\"}],[\"$\",\"li\",\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\",{\"children\":\"Use Dashboard \u003e Providers \u003e Test Connection before testing from IDEs or external clients.\"}]]}]]}]\nd:[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@12\"}]}]\ne:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L16\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"17:I[86869,[],\"IconMark\"]\n12:null\n16:[[\"$\",\"title\",\"0\",{\"children\":\"OmniRoute — AI Gateway for Multi-Provider LLMs\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L17\",\"4\",{}]]\n"])</script></body></html>
@@ -1,27 +1,28 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","600","static/chunks/600-84211b75b24af21c.js","8013","static/chunks/8013-04b90e92e614b5d9.js","7896","static/chunks/7896-5591822b8348e380.js","1525","static/chunks/1525-213a0aff01eb1c70.js","9305","static/chunks/app/(dashboard)/layout-e84875e22efbf437.js"],"ThemeProvider"]
2
+ 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","600","static/chunks/600-84211b75b24af21c.js","3191","static/chunks/3191-0bbb8ebd1bd32d1d.js","7896","static/chunks/7896-6e5648294ec51150.js","1525","static/chunks/1525-ec661e96acc6574e.js","9305","static/chunks/app/(dashboard)/layout-b6fc79d0628b97e3.js"],"ThemeProvider"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
- 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-2ba4520c9df30430.js"],"default"]
5
+ 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-e1af8b9c5785b71b.js"],"default"]
6
6
  6:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9040","static/chunks/app/docs/page-8f74097544a61b9d.js"],""]
7
- e:I[96243,["4219","static/chunks/app/global-error-bbdc13af28c5aba1.js"],"default"]
7
+ f:I[96243,["4219","static/chunks/app/global-error-6abc2976016d7bd1.js"],"default"]
8
8
  :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
9
9
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
10
- :HL["/_next/static/css/2862d4067eab20b2.css","style"]
10
+ :HL["/_next/static/css/2ecfad7c4409b17e.css","style"]
11
11
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
12
- 0:{"P":null,"b":"HcUrNktdfL89Ss5F7FHxP","c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2862d4067eab20b2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L5",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8","children":[["$","header",null,{"className":"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8","children":["$","div",null,{"className":"flex flex-col gap-4 md:flex-row md:items-center md:justify-between","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-xs uppercase tracking-wider text-text-muted","children":"In-App Documentation"}],["$","h1",null,{"className":"text-3xl md:text-4xl font-bold mt-1","children":["OmniRoute"," Docs"]}],["$","p",null,{"className":"text-sm md:text-base text-text-muted mt-2 max-w-3xl","children":"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server."}]]}],["$","div",null,{"className":"flex flex-wrap gap-2","children":[["$","$L6",null,{"href":"/dashboard/endpoint","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Open Endpoint Page"}],["$","a",null,{"href":"https://github.com/decolua/omniroute/issues","target":"_blank","rel":"noopener noreferrer","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Report Issue"}]]}]]}]}],["$","section",null,{"id":"quick-start","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Quick Start"}],["$","ol",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"1. Create API key"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Generate one key per app/environment."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"2. Connect providers"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Add provider accounts in Dashboard and run Test Connection."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"3. Set client base URL"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}],"."]}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"4. Choose model"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer explicit provider prefix, for example"," ","$L7","."]}]]}]]}]]}],"$L8","$L9","$La","$Lb"]}]}],null,"$Lc"]}],{},null,false,false]},null,false,false]},null,false,false],"$Ld",false]],"m":"$undefined","G":["$e",[]],"S":true}
13
- f:I[90484,[],"OutletBoundary"]
14
- 10:"$Sreact.suspense"
15
- 12:I[90484,[],"ViewportBoundary"]
16
- 14:I[90484,[],"MetadataBoundary"]
17
- 7:["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/gpt-5.1-codex"}]
18
- 8:["$","section",null,{"id":"use-cases","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Common Use Cases"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3","children":[["$","article","Single endpoint for many providers",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Single endpoint for many providers"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/)."}]]}],["$","article","Fallback and model switching with combos",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Fallback and model switching with combos"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Create combo models in Dashboard and keep client config stable while providers rotate internally."}]]}],["$","article","Usage, cost and debug visibility",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Usage, cost and debug visibility"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Track tokens/cost by provider, account and API key in Usage + Logger tabs."}]]}]]}]]}]
19
- 9:["$","section",null,{"id":"client-compatibility","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Client Compatibility"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","article",null,{"id":"cherry-studio","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Cherry Studio"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Base URL:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]]}],["$","li",null,{"children":["Chat endpoint:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}]]}],["$","li",null,{"children":["Model recommendation: explicit prefix (",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/..."}],","," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"cc/..."}],")"]}]]}]]}],["$","article",null,{"id":"codex-copilot","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Codex / GitHub Copilot Models"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Use model IDs with ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/"}]," prefix."]}],["$","li",null,{"children":["Codex-family models auto-route to"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/responses"}],"."]}],["$","li",null,{"children":["Non-Codex models continue on"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}],"."]}]]}]]}]]}]]}]
20
- a:["$","section",null,{"id":"api-reference","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Endpoint Reference"}],["$","div",null,{"className":"mt-4 overflow-x-auto","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"border-b border-border","children":[["$","th",null,{"className":"text-left py-2 pr-4","children":"Path"}],["$","th",null,{"className":"text-left py-2","children":"Notes"}]]}]}],["$","tbody",null,{"children":[["$","tr","/v1/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"OpenAI-compatible chat endpoint (default)."}]]}],["$","tr","/v1/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Responses API endpoint (supported)."}]]}],["$","tr","/v1/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Model catalog for connected providers."}]]}],["$","tr","/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for clients that do not include /v1."}]]}],["$","tr","/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for Responses clients without /v1."}]]}],["$","tr","/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for model discovery without /v1."}]]}]]}]]}]}]]}]
21
- b:["$","section",null,{"id":"troubleshooting","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Troubleshooting"}],["$","ul",null,{"className":"mt-4 list-disc list-inside text-sm text-text-muted space-y-2","children":[["$","li","If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",{"children":"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex)."}],["$","li","If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",{"children":"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID."}],["$","li","For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.",{"children":"For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically."}],["$","li","Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",{"children":"Use Dashboard > Providers > Test Connection before testing from IDEs or external clients."}]]}]]}]
22
- c:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
23
- d:["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$10",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
24
- 13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
25
- 16:I[86869,[],"IconMark"]
26
- 11:null
27
- 15:[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L16","4",{}]]
12
+ 0:{"P":null,"b":"H6LKncewEoggilnvYL9Ff","c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2ecfad7c4409b17e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg","children":"Skip to content"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L5",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8","children":[["$","header",null,{"className":"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8","children":["$","div",null,{"className":"flex flex-col gap-4 md:flex-row md:items-center md:justify-between","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-xs uppercase tracking-wider text-text-muted","children":"In-App Documentation"}],["$","h1",null,{"className":"text-3xl md:text-4xl font-bold mt-1","children":["OmniRoute"," Docs"]}],["$","p",null,{"className":"text-sm md:text-base text-text-muted mt-2 max-w-3xl","children":"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server."}]]}],["$","div",null,{"className":"flex flex-wrap gap-2","children":[["$","$L6",null,{"href":"/dashboard/endpoint","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Open Endpoint Page"}],["$","a",null,{"href":"https://github.com/decolua/omniroute/issues","target":"_blank","rel":"noopener noreferrer","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Report Issue"}]]}]]}]}],["$","section",null,{"id":"quick-start","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Quick Start"}],["$","ol",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"1. Create API key"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Generate one key per app/environment."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"2. Connect providers"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Add provider accounts in Dashboard and run Test Connection."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"3. Set client base URL"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer ","$L7","."]}]]}],"$L8"]}]]}],"$L9","$La","$Lb","$Lc"]}]}],null,"$Ld"]}],{},null,false,false]},null,false,false]},null,false,false],"$Le",false]],"m":"$undefined","G":["$f",[]],"S":true}
13
+ 10:I[90484,[],"OutletBoundary"]
14
+ 11:"$Sreact.suspense"
15
+ 13:I[90484,[],"ViewportBoundary"]
16
+ 15:I[90484,[],"MetadataBoundary"]
17
+ 7:["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]
18
+ 8:["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"4. Choose model"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer explicit provider prefix, for example"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/gpt-5.1-codex"}],"."]}]]}]
19
+ 9:["$","section",null,{"id":"use-cases","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Common Use Cases"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3","children":[["$","article","Single endpoint for many providers",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Single endpoint for many providers"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/)."}]]}],["$","article","Fallback and model switching with combos",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Fallback and model switching with combos"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Create combo models in Dashboard and keep client config stable while providers rotate internally."}]]}],["$","article","Usage, cost and debug visibility",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Usage, cost and debug visibility"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Track tokens/cost by provider, account and API key in Usage + Logger tabs."}]]}]]}]]}]
20
+ a:["$","section",null,{"id":"client-compatibility","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Client Compatibility"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","article",null,{"id":"cherry-studio","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Cherry Studio"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Base URL:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]]}],["$","li",null,{"children":["Chat endpoint:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}]]}],["$","li",null,{"children":["Model recommendation: explicit prefix (",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/..."}],","," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"cc/..."}],")"]}]]}]]}],["$","article",null,{"id":"codex-copilot","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Codex / GitHub Copilot Models"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Use model IDs with ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/"}]," prefix."]}],["$","li",null,{"children":["Codex-family models auto-route to"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/responses"}],"."]}],["$","li",null,{"children":["Non-Codex models continue on"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}],"."]}]]}]]}]]}]]}]
21
+ b:["$","section",null,{"id":"api-reference","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Endpoint Reference"}],["$","div",null,{"className":"mt-4 overflow-x-auto","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"border-b border-border","children":[["$","th",null,{"className":"text-left py-2 pr-4","children":"Path"}],["$","th",null,{"className":"text-left py-2","children":"Notes"}]]}]}],["$","tbody",null,{"children":[["$","tr","/v1/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"OpenAI-compatible chat endpoint (default)."}]]}],["$","tr","/v1/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Responses API endpoint (supported)."}]]}],["$","tr","/v1/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Model catalog for connected providers."}]]}],["$","tr","/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for clients that do not include /v1."}]]}],["$","tr","/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for Responses clients without /v1."}]]}],["$","tr","/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for model discovery without /v1."}]]}]]}]]}]}]]}]
22
+ c:["$","section",null,{"id":"troubleshooting","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Troubleshooting"}],["$","ul",null,{"className":"mt-4 list-disc list-inside text-sm text-text-muted space-y-2","children":[["$","li","If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",{"children":"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex)."}],["$","li","If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",{"children":"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID."}],["$","li","For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.",{"children":"For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically."}],["$","li","Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",{"children":"Use Dashboard > Providers > Test Connection before testing from IDEs or external clients."}]]}]]}]
23
+ d:["$","$L10",null,{"children":["$","$11",null,{"name":"Next.MetadataOutlet","children":"$@12"}]}]
24
+ e:["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","div",null,{"hidden":true,"children":["$","$L15",null,{"children":["$","$11",null,{"name":"Next.Metadata","children":"$L16"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
25
+ 14:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
26
+ 17:I[86869,[],"IconMark"]
27
+ 12:null
28
+ 16:[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L17","4",{}]]
@@ -1,27 +1,28 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","600","static/chunks/600-84211b75b24af21c.js","8013","static/chunks/8013-04b90e92e614b5d9.js","7896","static/chunks/7896-5591822b8348e380.js","1525","static/chunks/1525-213a0aff01eb1c70.js","9305","static/chunks/app/(dashboard)/layout-e84875e22efbf437.js"],"ThemeProvider"]
2
+ 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","600","static/chunks/600-84211b75b24af21c.js","3191","static/chunks/3191-0bbb8ebd1bd32d1d.js","7896","static/chunks/7896-6e5648294ec51150.js","1525","static/chunks/1525-ec661e96acc6574e.js","9305","static/chunks/app/(dashboard)/layout-b6fc79d0628b97e3.js"],"ThemeProvider"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
- 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-2ba4520c9df30430.js"],"default"]
5
+ 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-e1af8b9c5785b71b.js"],"default"]
6
6
  6:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9040","static/chunks/app/docs/page-8f74097544a61b9d.js"],""]
7
- e:I[96243,["4219","static/chunks/app/global-error-bbdc13af28c5aba1.js"],"default"]
7
+ f:I[96243,["4219","static/chunks/app/global-error-6abc2976016d7bd1.js"],"default"]
8
8
  :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
9
9
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
10
- :HL["/_next/static/css/2862d4067eab20b2.css","style"]
10
+ :HL["/_next/static/css/2ecfad7c4409b17e.css","style"]
11
11
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
12
- 0:{"P":null,"b":"HcUrNktdfL89Ss5F7FHxP","c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2862d4067eab20b2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L5",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8","children":[["$","header",null,{"className":"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8","children":["$","div",null,{"className":"flex flex-col gap-4 md:flex-row md:items-center md:justify-between","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-xs uppercase tracking-wider text-text-muted","children":"In-App Documentation"}],["$","h1",null,{"className":"text-3xl md:text-4xl font-bold mt-1","children":["OmniRoute"," Docs"]}],["$","p",null,{"className":"text-sm md:text-base text-text-muted mt-2 max-w-3xl","children":"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server."}]]}],["$","div",null,{"className":"flex flex-wrap gap-2","children":[["$","$L6",null,{"href":"/dashboard/endpoint","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Open Endpoint Page"}],["$","a",null,{"href":"https://github.com/decolua/omniroute/issues","target":"_blank","rel":"noopener noreferrer","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Report Issue"}]]}]]}]}],["$","section",null,{"id":"quick-start","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Quick Start"}],["$","ol",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"1. Create API key"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Generate one key per app/environment."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"2. Connect providers"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Add provider accounts in Dashboard and run Test Connection."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"3. Set client base URL"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}],"."]}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"4. Choose model"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer explicit provider prefix, for example"," ","$L7","."]}]]}]]}]]}],"$L8","$L9","$La","$Lb"]}]}],null,"$Lc"]}],{},null,false,false]},null,false,false]},null,false,false],"$Ld",false]],"m":"$undefined","G":["$e",[]],"S":true}
13
- f:I[90484,[],"OutletBoundary"]
14
- 10:"$Sreact.suspense"
15
- 12:I[90484,[],"ViewportBoundary"]
16
- 14:I[90484,[],"MetadataBoundary"]
17
- 7:["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/gpt-5.1-codex"}]
18
- 8:["$","section",null,{"id":"use-cases","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Common Use Cases"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3","children":[["$","article","Single endpoint for many providers",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Single endpoint for many providers"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/)."}]]}],["$","article","Fallback and model switching with combos",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Fallback and model switching with combos"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Create combo models in Dashboard and keep client config stable while providers rotate internally."}]]}],["$","article","Usage, cost and debug visibility",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Usage, cost and debug visibility"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Track tokens/cost by provider, account and API key in Usage + Logger tabs."}]]}]]}]]}]
19
- 9:["$","section",null,{"id":"client-compatibility","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Client Compatibility"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","article",null,{"id":"cherry-studio","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Cherry Studio"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Base URL:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]]}],["$","li",null,{"children":["Chat endpoint:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}]]}],["$","li",null,{"children":["Model recommendation: explicit prefix (",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/..."}],","," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"cc/..."}],")"]}]]}]]}],["$","article",null,{"id":"codex-copilot","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Codex / GitHub Copilot Models"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Use model IDs with ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/"}]," prefix."]}],["$","li",null,{"children":["Codex-family models auto-route to"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/responses"}],"."]}],["$","li",null,{"children":["Non-Codex models continue on"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}],"."]}]]}]]}]]}]]}]
20
- a:["$","section",null,{"id":"api-reference","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Endpoint Reference"}],["$","div",null,{"className":"mt-4 overflow-x-auto","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"border-b border-border","children":[["$","th",null,{"className":"text-left py-2 pr-4","children":"Path"}],["$","th",null,{"className":"text-left py-2","children":"Notes"}]]}]}],["$","tbody",null,{"children":[["$","tr","/v1/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"OpenAI-compatible chat endpoint (default)."}]]}],["$","tr","/v1/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Responses API endpoint (supported)."}]]}],["$","tr","/v1/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Model catalog for connected providers."}]]}],["$","tr","/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for clients that do not include /v1."}]]}],["$","tr","/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for Responses clients without /v1."}]]}],["$","tr","/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for model discovery without /v1."}]]}]]}]]}]}]]}]
21
- b:["$","section",null,{"id":"troubleshooting","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Troubleshooting"}],["$","ul",null,{"className":"mt-4 list-disc list-inside text-sm text-text-muted space-y-2","children":[["$","li","If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",{"children":"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex)."}],["$","li","If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",{"children":"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID."}],["$","li","For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.",{"children":"For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically."}],["$","li","Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",{"children":"Use Dashboard > Providers > Test Connection before testing from IDEs or external clients."}]]}]]}]
22
- c:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
23
- d:["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$10",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
24
- 13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
25
- 16:I[86869,[],"IconMark"]
26
- 11:null
27
- 15:[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L16","4",{}]]
12
+ 0:{"P":null,"b":"H6LKncewEoggilnvYL9Ff","c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2ecfad7c4409b17e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg","children":"Skip to content"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","$L5",null,{}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8","children":[["$","header",null,{"className":"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8","children":["$","div",null,{"className":"flex flex-col gap-4 md:flex-row md:items-center md:justify-between","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-xs uppercase tracking-wider text-text-muted","children":"In-App Documentation"}],["$","h1",null,{"className":"text-3xl md:text-4xl font-bold mt-1","children":["OmniRoute"," Docs"]}],["$","p",null,{"className":"text-sm md:text-base text-text-muted mt-2 max-w-3xl","children":"Quick setup, client compatibility notes, and endpoint reference to run OpenAI-compatible clients, Codex/Copilot models, and Cherry Studio integrations on this server."}]]}],["$","div",null,{"className":"flex flex-wrap gap-2","children":[["$","$L6",null,{"href":"/dashboard/endpoint","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Open Endpoint Page"}],["$","a",null,{"href":"https://github.com/decolua/omniroute/issues","target":"_blank","rel":"noopener noreferrer","className":"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors","children":"Report Issue"}]]}]]}]}],["$","section",null,{"id":"quick-start","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Quick Start"}],["$","ol",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"1. Create API key"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Generate one key per app/environment."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"2. Connect providers"}],["$","p",null,{"className":"text-text-muted mt-1","children":"Add provider accounts in Dashboard and run Test Connection."}]]}],["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"3. Set client base URL"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer ","$L7","."]}]]}],"$L8"]}]]}],"$L9","$La","$Lb","$Lc"]}]}],null,"$Ld"]}],{},null,false,false]},null,false,false]},null,false,false],"$Le",false]],"m":"$undefined","G":["$f",[]],"S":true}
13
+ 10:I[90484,[],"OutletBoundary"]
14
+ 11:"$Sreact.suspense"
15
+ 13:I[90484,[],"ViewportBoundary"]
16
+ 15:I[90484,[],"MetadataBoundary"]
17
+ 7:["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]
18
+ 8:["$","li",null,{"className":"rounded-lg border border-border p-3 bg-bg","children":[["$","span",null,{"className":"font-semibold","children":"4. Choose model"}],["$","p",null,{"className":"text-text-muted mt-1","children":["Prefer explicit provider prefix, for example"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/gpt-5.1-codex"}],"."]}]]}]
19
+ 9:["$","section",null,{"id":"use-cases","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Common Use Cases"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3","children":[["$","article","Single endpoint for many providers",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Single endpoint for many providers"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/)."}]]}],["$","article","Fallback and model switching with combos",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Fallback and model switching with combos"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Create combo models in Dashboard and keep client config stable while providers rotate internally."}]]}],["$","article","Usage, cost and debug visibility",{"className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Usage, cost and debug visibility"}],["$","p",null,{"className":"text-sm text-text-muted mt-2","children":"Track tokens/cost by provider, account and API key in Usage + Logger tabs."}]]}]]}]]}]
20
+ a:["$","section",null,{"id":"client-compatibility","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Client Compatibility"}],["$","div",null,{"className":"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm","children":[["$","article",null,{"id":"cherry-studio","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Cherry Studio"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Base URL:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"https://<host>/v1"}]]}],["$","li",null,{"children":["Chat endpoint:"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}]]}],["$","li",null,{"children":["Model recommendation: explicit prefix (",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/..."}],","," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"cc/..."}],")"]}]]}]]}],["$","article",null,{"id":"codex-copilot","className":"rounded-lg border border-border p-4 bg-bg","children":[["$","h3",null,{"className":"font-semibold","children":"Codex / GitHub Copilot Models"}],["$","ul",null,{"className":"mt-2 text-text-muted space-y-1","children":[["$","li",null,{"children":["Use model IDs with ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"gh/"}]," prefix."]}],["$","li",null,{"children":["Codex-family models auto-route to"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/responses"}],"."]}],["$","li",null,{"children":["Non-Codex models continue on"," ",["$","code",null,{"className":"px-1 rounded bg-bg-subtle","children":"/chat/completions"}],"."]}]]}]]}]]}]]}]
21
+ b:["$","section",null,{"id":"api-reference","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Endpoint Reference"}],["$","div",null,{"className":"mt-4 overflow-x-auto","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"border-b border-border","children":[["$","th",null,{"className":"text-left py-2 pr-4","children":"Path"}],["$","th",null,{"className":"text-left py-2","children":"Notes"}]]}]}],["$","tbody",null,{"children":[["$","tr","/v1/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"OpenAI-compatible chat endpoint (default)."}]]}],["$","tr","/v1/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Responses API endpoint (supported)."}]]}],["$","tr","/v1/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/v1/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Model catalog for connected providers."}]]}],["$","tr","/chat/completions",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/chat/completions"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for clients that do not include /v1."}]]}],["$","tr","/responses",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/responses"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for Responses clients without /v1."}]]}],["$","tr","/models",{"className":"border-b border-border/60","children":[["$","td",null,{"className":"py-2 pr-4 font-mono","children":"/models"}],["$","td",null,{"className":"py-2 text-text-muted","children":"Rewrite helper for model discovery without /v1."}]]}]]}]]}]}]]}]
22
+ c:["$","section",null,{"id":"troubleshooting","className":"rounded-2xl border border-border bg-bg-subtle p-6","children":[["$","h2",null,{"className":"text-xl font-semibold","children":"Troubleshooting"}],["$","ul",null,{"className":"mt-4 list-disc list-inside text-sm text-text-muted space-y-2","children":[["$","li","If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",{"children":"If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex)."}],["$","li","If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",{"children":"If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID."}],["$","li","For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically.",{"children":"For GitHub Codex-family models, keep model as gh/<codex-model>; router selects /responses automatically."}],["$","li","Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",{"children":"Use Dashboard > Providers > Test Connection before testing from IDEs or external clients."}]]}]]}]
23
+ d:["$","$L10",null,{"children":["$","$11",null,{"name":"Next.MetadataOutlet","children":"$@12"}]}]
24
+ e:["$","$1","h",{"children":[null,["$","$L13",null,{"children":"$L14"}],["$","div",null,{"hidden":true,"children":["$","$L15",null,{"children":["$","$11",null,{"name":"Next.Metadata","children":"$L16"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
25
+ 14:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
26
+ 17:I[86869,[],"IconMark"]
27
+ 12:null
28
+ 16:[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L17","4",{}]]
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"buildId":"HcUrNktdfL89Ss5F7FHxP","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"H6LKncewEoggilnvYL9Ff","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"OmniRoute — AI Gateway for Multi-Provider LLMs"}],["$","meta","1",{"name":"description","content":"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","600","static/chunks/600-84211b75b24af21c.js","8013","static/chunks/8013-04b90e92e614b5d9.js","7896","static/chunks/7896-5591822b8348e380.js","1525","static/chunks/1525-213a0aff01eb1c70.js","9305","static/chunks/app/(dashboard)/layout-e84875e22efbf437.js"],"ThemeProvider"]
2
+ 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","600","static/chunks/600-84211b75b24af21c.js","3191","static/chunks/3191-0bbb8ebd1bd32d1d.js","7896","static/chunks/7896-6e5648294ec51150.js","1525","static/chunks/1525-ec661e96acc6574e.js","9305","static/chunks/app/(dashboard)/layout-b6fc79d0628b97e3.js"],"ThemeProvider"]
3
3
  3:I[57121,[],""]
4
4
  4:I[74581,[],""]
5
- 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-2ba4520c9df30430.js"],"default"]
5
+ 5:I[91369,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-e1af8b9c5785b71b.js"],"default"]
6
6
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
7
- :HL["/_next/static/css/2862d4067eab20b2.css","style"]
7
+ :HL["/_next/static/css/2ecfad7c4409b17e.css","style"]
8
8
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
9
- 0:{"buildId":"HcUrNktdfL89Ss5F7FHxP","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2862d4067eab20b2.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[["$","$L5",null,{}],[]]}]}]}]]}]]}],"loading":null,"isPartial":false}
9
+ 0:{"buildId":"H6LKncewEoggilnvYL9Ff","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2ecfad7c4409b17e.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg","children":"Skip to content"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[["$","$L5",null,{}],[]]}]}]]}]]}]]}],"loading":null,"isPartial":false}
@@ -1,5 +1,5 @@
1
1
  :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
2
2
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
3
- :HL["/_next/static/css/2862d4067eab20b2.css","style"]
3
+ :HL["/_next/static/css/2ecfad7c4409b17e.css","style"]
4
4
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
5
- 0:{"buildId":"HcUrNktdfL89Ss5F7FHxP","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"docs","paramType":null,"paramKey":"docs","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
5
+ 0:{"buildId":"H6LKncewEoggilnvYL9Ff","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"docs","paramType":null,"paramKey":"docs","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}