omniroute 0.7.0 → 0.8.5

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 (757) hide show
  1. package/README.md +74 -29
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +30 -30
  4. package/app/.next/build-manifest.json +3 -3
  5. package/app/.next/prerender-manifest.json +3 -3
  6. package/app/.next/react-loadable-manifest.json +2 -2
  7. package/app/.next/required-server-files.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +4 -4
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
  18. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
  27. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  36. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
  51. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/_global-error/page.js +3 -3
  57. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/_global-error.html +2 -2
  59. package/app/.next/server/app/_global-error.rsc +3 -3
  60. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  61. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  62. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  63. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  64. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  65. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  66. package/app/.next/server/app/_not-found/page.js +2 -2
  67. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  68. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/_not-found.html +1 -1
  70. package/app/.next/server/app/_not-found.rsc +5 -5
  71. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  72. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  73. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  74. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  75. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  76. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  77. package/app/.next/server/app/api/auth/login/route.js +1 -1
  78. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  81. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/cache/route.js +2 -2
  83. package/app/.next/server/app/api/cache/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  86. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  88. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +4 -4
  91. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  94. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  96. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  98. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  100. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  103. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  105. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
  107. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  109. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  111. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  113. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  115. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  117. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  120. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  123. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  126. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  129. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/combos/metrics/route.js +1 -1
  132. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/combos/route.js +1 -1
  134. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/combos/test/route.js +1 -1
  137. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
  140. package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/db-backups/route.js +1 -1
  143. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
  146. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/evals/route.js +1 -1
  148. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/fallback/chains/route.js +2 -2
  150. package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/init/route.js +1 -1
  153. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  156. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/keys/route.js +1 -1
  159. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/models/alias/route.js +1 -1
  162. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/models/availability/route.js +1 -1
  165. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/models/catalog/route.js +2 -2
  167. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/models/route.js +2 -2
  170. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/monitoring/health/route.js +2 -2
  173. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  176. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  179. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  181. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  184. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  186. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  187. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  189. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  191. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/policies/route.js +2 -2
  194. package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
  197. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  199. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/pricing/route.js +1 -1
  202. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/provider-metrics/route.js +2 -2
  205. package/app/.next/server/app/api/provider-metrics/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/provider-models/route.js +1 -1
  208. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  211. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  214. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  217. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  219. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  222. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  225. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/providers/client/route.js +1 -1
  228. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/providers/route.js +2 -2
  231. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  232. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/providers/test-batch/route.js +1 -2
  234. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  237. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/rate-limit/route.js +1 -1
  240. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  241. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  242. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  244. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  245. package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
  246. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  247. package/app/.next/server/app/api/resilience/route.js +1 -1
  248. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  250. package/app/.next/server/app/api/restart/route.js +1 -1
  251. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  252. package/app/.next/server/app/api/sessions/route.js +1 -1
  253. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  255. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  256. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  257. package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
  258. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  259. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  260. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  262. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  263. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  265. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/api/settings/route.js +1 -1
  268. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  271. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  274. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/shutdown/route.js +1 -1
  277. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  278. package/app/.next/server/app/api/storage/health/route.js +1 -1
  279. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  280. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  281. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  282. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  284. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  286. package/app/.next/server/app/api/tags/route.js +1 -1
  287. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  288. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  289. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/token-health/route.js +1 -1
  291. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/translator/detect/route.js +1 -1
  294. package/app/.next/server/app/api/translator/detect/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  296. package/app/.next/server/app/api/translator/history/route.js +1 -1
  297. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  298. package/app/.next/server/app/api/translator/load/route.js +1 -1
  299. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/translator/save/route.js +1 -1
  301. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/api/translator/send/route.js +1 -1
  303. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  304. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  305. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  306. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  307. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  308. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  309. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  310. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  311. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  312. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  313. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  314. package/app/.next/server/app/api/usage/budget/route.js +2 -2
  315. package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
  316. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  317. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
  318. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  319. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  320. package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
  321. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  322. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  323. package/app/.next/server/app/api/usage/history/route.js +1 -1
  324. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  325. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  326. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  327. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  328. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  329. package/app/.next/server/app/api/usage/proxy-logs/route.js +8 -1
  330. package/app/.next/server/app/api/usage/proxy-logs/route.js.nft.json +1 -1
  331. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  332. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  333. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  334. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  335. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  336. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  337. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  338. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  339. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  340. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  341. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  342. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  343. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  345. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  346. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  347. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  348. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  349. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  350. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  351. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  352. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  353. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  354. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  355. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  356. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  357. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  358. package/app/.next/server/app/api/v1/models/route.js +2 -2
  359. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  360. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  361. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  362. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  363. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  364. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  365. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  366. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  367. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  368. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  369. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  370. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  371. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  372. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  373. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  374. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  375. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  376. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  377. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  378. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  379. package/app/.next/server/app/api/v1/route.js +1 -1
  380. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  381. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  382. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  383. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  384. package/app/.next/server/app/api/v1beta/models/route.js +2 -2
  385. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  386. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  387. package/app/.next/server/app/callback/page.js +2 -2
  388. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  389. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  390. package/app/.next/server/app/callback.html +1 -1
  391. package/app/.next/server/app/callback.rsc +6 -6
  392. package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -6
  393. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  394. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  395. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  396. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  397. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/analytics.html +1 -1
  399. package/app/.next/server/app/dashboard/analytics.rsc +7 -7
  400. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  401. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  402. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  403. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  404. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +7 -7
  405. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  406. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +4 -4
  407. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  408. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  409. package/app/.next/server/app/dashboard/cli-tools.rsc +7 -7
  410. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  411. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  412. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  413. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  414. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  415. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  416. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  417. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  418. package/app/.next/server/app/dashboard/combos.html +1 -1
  419. package/app/.next/server/app/dashboard/combos.rsc +7 -7
  420. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  421. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  422. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  423. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  424. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  425. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  426. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  427. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  428. package/app/.next/server/app/dashboard/costs.html +1 -1
  429. package/app/.next/server/app/dashboard/costs.rsc +7 -7
  430. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  431. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  432. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +7 -7
  435. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  436. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +4 -4
  437. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
  438. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  439. package/app/.next/server/app/dashboard/endpoint.rsc +7 -7
  440. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  441. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  442. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  445. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  446. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  447. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  448. package/app/.next/server/app/dashboard/health.html +1 -1
  449. package/app/.next/server/app/dashboard/health.rsc +7 -7
  450. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  451. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  452. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  453. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  454. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +7 -7
  455. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  456. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +4 -4
  457. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
  458. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  459. package/app/.next/server/app/dashboard/onboarding.rsc +7 -7
  460. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +2 -2
  461. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  462. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  463. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  464. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +7 -7
  465. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +4 -4
  467. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
  468. package/app/.next/server/app/dashboard/profile.html +1 -1
  469. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  470. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  471. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  472. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  473. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  474. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  475. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  476. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  477. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  478. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  479. package/app/.next/server/app/dashboard/providers/new.rsc +7 -7
  480. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  481. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  482. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  483. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  484. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  485. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  486. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  487. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  488. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  489. package/app/.next/server/app/dashboard/providers.html +1 -1
  490. package/app/.next/server/app/dashboard/providers.rsc +7 -7
  491. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  492. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  493. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  494. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  495. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  496. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  497. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  498. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  499. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  500. package/app/.next/server/app/dashboard/settings/pricing.rsc +7 -7
  501. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  502. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  503. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  504. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  505. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  506. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  507. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  508. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  509. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  510. package/app/.next/server/app/dashboard/settings.html +1 -1
  511. package/app/.next/server/app/dashboard/settings.rsc +7 -7
  512. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  513. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  514. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  515. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  516. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +7 -7
  517. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  518. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +4 -4
  519. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
  520. package/app/.next/server/app/dashboard/translator.html +2 -2
  521. package/app/.next/server/app/dashboard/translator.rsc +7 -7
  522. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  523. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  524. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  525. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  526. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  527. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  528. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  529. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  530. package/app/.next/server/app/dashboard/usage.html +1 -1
  531. package/app/.next/server/app/dashboard/usage.rsc +7 -7
  532. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  533. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  534. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  535. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  536. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  537. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  538. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  539. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  540. package/app/.next/server/app/docs/page.js +3 -3
  541. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  542. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  543. package/app/.next/server/app/docs.html +1 -1
  544. package/app/.next/server/app/docs.rsc +5 -5
  545. package/app/.next/server/app/docs.segments/_full.segment.rsc +5 -5
  546. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  547. package/app/.next/server/app/docs.segments/_index.segment.rsc +4 -4
  548. package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  549. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  550. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  551. package/app/.next/server/app/forbidden/page.js +2 -2
  552. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  553. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  554. package/app/.next/server/app/forbidden.html +1 -1
  555. package/app/.next/server/app/forbidden.rsc +6 -6
  556. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +6 -6
  557. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  558. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +4 -4
  559. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +2 -2
  560. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +2 -2
  561. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  562. package/app/.next/server/app/forgot-password/page.js +2 -2
  563. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  564. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  565. package/app/.next/server/app/forgot-password.html +1 -1
  566. package/app/.next/server/app/forgot-password.rsc +6 -6
  567. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +6 -6
  568. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  569. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +4 -4
  570. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  571. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  572. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  573. package/app/.next/server/app/index.html +1 -1
  574. package/app/.next/server/app/index.rsc +5 -5
  575. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  576. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -5
  577. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  578. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  579. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  580. package/app/.next/server/app/landing/page.js +2 -2
  581. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  582. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  583. package/app/.next/server/app/landing.html +1 -1
  584. package/app/.next/server/app/landing.rsc +6 -6
  585. package/app/.next/server/app/landing.segments/_full.segment.rsc +6 -6
  586. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  587. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  588. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  589. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  590. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  591. package/app/.next/server/app/login/page.js +2 -2
  592. package/app/.next/server/app/login/page.js.nft.json +1 -1
  593. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  594. package/app/.next/server/app/login.html +1 -1
  595. package/app/.next/server/app/login.rsc +6 -6
  596. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -6
  597. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  598. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  599. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  600. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  601. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  602. package/app/.next/server/app/page.js +2 -2
  603. package/app/.next/server/app/page.js.nft.json +1 -1
  604. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  605. package/app/.next/server/app/privacy/page.js +2 -2
  606. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  607. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  608. package/app/.next/server/app/privacy.html +1 -1
  609. package/app/.next/server/app/privacy.rsc +5 -5
  610. package/app/.next/server/app/privacy.segments/_full.segment.rsc +5 -5
  611. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  612. package/app/.next/server/app/privacy.segments/_index.segment.rsc +4 -4
  613. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  614. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  615. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  616. package/app/.next/server/app/terms/page.js +2 -2
  617. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  618. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  619. package/app/.next/server/app/terms.html +1 -1
  620. package/app/.next/server/app/terms.rsc +5 -5
  621. package/app/.next/server/app/terms.segments/_full.segment.rsc +5 -5
  622. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  623. package/app/.next/server/app/terms.segments/_index.segment.rsc +4 -4
  624. package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  625. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  626. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  627. package/app/.next/server/app-paths-manifest.json +30 -30
  628. package/app/.next/server/chunks/1020.js +1 -0
  629. package/app/.next/server/chunks/1079.js +1 -0
  630. package/app/.next/server/chunks/1308.js +1 -0
  631. package/app/.next/server/chunks/{4469.js → 1549.js} +26 -3
  632. package/app/.next/server/chunks/2286.js +1 -0
  633. package/app/.next/server/chunks/239.js +3 -0
  634. package/app/.next/server/chunks/2391.js +1 -1
  635. package/app/.next/server/chunks/2620.js +3 -0
  636. package/app/.next/server/chunks/2767.js +26 -0
  637. package/app/.next/server/chunks/{3542.js → 2817.js} +2 -2
  638. package/app/.next/server/chunks/2867.js +1 -0
  639. package/app/.next/server/chunks/{651.js → 287.js} +2 -2
  640. package/app/.next/server/chunks/293.js +1 -0
  641. package/app/.next/server/chunks/2951.js +1 -1
  642. package/app/.next/server/chunks/{8108.js → 3596.js} +1 -1
  643. package/app/.next/server/chunks/{1746.js → 3699.js} +1 -1
  644. package/app/.next/server/chunks/4163.js +1 -0
  645. package/app/.next/server/chunks/4568.js +1 -0
  646. package/app/.next/server/chunks/4755.js +1 -21
  647. package/app/.next/server/chunks/5248.js +1 -0
  648. package/app/.next/server/chunks/5583.js +2 -0
  649. package/app/.next/server/chunks/560.js +1 -0
  650. package/app/.next/server/chunks/595.js +1 -1
  651. package/app/.next/server/chunks/5994.js +1 -0
  652. package/app/.next/server/chunks/6120.js +1 -0
  653. package/app/.next/server/chunks/7109.js +8 -0
  654. package/app/.next/server/chunks/7230.js +36 -0
  655. package/app/.next/server/chunks/7544.js +143 -0
  656. package/app/.next/server/chunks/7669.js +3 -0
  657. package/app/.next/server/chunks/8369.js +2 -0
  658. package/app/.next/server/chunks/8429.js +1 -0
  659. package/app/.next/server/chunks/9342.js +1 -0
  660. package/app/.next/server/chunks/9343.js +5 -5
  661. package/app/.next/server/chunks/{1099.js → 9723.js} +2 -2
  662. package/app/.next/server/chunks/9824.js +21 -0
  663. package/app/.next/server/middleware-build-manifest.js +1 -1
  664. package/app/.next/server/middleware-react-loadable-manifest.js +1 -1
  665. package/app/.next/server/middleware.js +27 -4
  666. package/app/.next/server/pages/404.html +1 -1
  667. package/app/.next/server/pages/500.html +2 -2
  668. package/app/.next/server/server-reference-manifest.js +1 -1
  669. package/app/.next/server/server-reference-manifest.json +1 -1
  670. package/app/.next/server/webpack-runtime.js +1 -1
  671. package/app/.next/static/chunks/5846-2708fad522c4092b.js +2 -0
  672. package/app/.next/static/chunks/993-6be0cd05a02eb09b.js +21 -0
  673. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a7a7e3485f278504.js +1 -0
  674. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1c6897612e762e03.js +15 -0
  675. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-2cf4a7b419667452.js +1 -0
  676. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-6913ad5d715dcc3f.js +1 -0
  677. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-a446f6fd8dc64f29.js +1 -0
  678. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-d3f501b59334c3d5.js +1 -0
  679. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-207d4961e362eae5.js +1 -0
  680. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-7312e2dd8b5feff0.js +1 -0
  681. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a9c594cf56c3465e.js +1 -0
  682. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-521cffebf9da74b1.js +1 -0
  683. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-627628d3588d56d0.js +1 -0
  684. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-ae5e43ea2a576094.js +1 -0
  685. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-1b3f14c99d3edf09.js +1 -0
  686. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-c3cbea97c4f3a3b3.js +4 -0
  687. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-8e19076a0d9227ca.js +1 -0
  688. package/app/.next/static/chunks/app/(dashboard)/layout-c498dd9c790d0115.js +1 -0
  689. package/app/.next/static/chunks/app/callback/page-5c58a06902dd94ed.js +1 -0
  690. package/app/.next/static/chunks/app/forbidden/page-86b6392f80a3ff69.js +1 -0
  691. package/app/.next/static/chunks/app/forgot-password/page-3682163d66078655.js +1 -0
  692. package/app/.next/static/chunks/app/{global-error-6abc2976016d7bd1.js → global-error-ece0210f8bb4e441.js} +1 -1
  693. package/app/.next/static/chunks/app/landing/page-09741814aaca7548.js +1 -0
  694. package/app/.next/static/chunks/app/layout-3375493e8f9133db.js +1 -0
  695. package/app/.next/static/chunks/app/login/page-319adaa570f7cef2.js +1 -0
  696. package/app/.next/static/chunks/app/not-found-a1cabc3706cf5b84.js +1 -0
  697. package/app/.next/static/chunks/{webpack-a2b6b20e2db553f5.js → webpack-9837b0fbf7de0b62.js} +1 -1
  698. package/app/.next/static/css/c08bd521c418658c.css +1 -0
  699. package/app/package.json +7 -4
  700. package/app/server.js +1 -1
  701. package/app/src/mitm/cert/{install.js → install.ts} +3 -3
  702. package/app/src/mitm/dns/{dnsConfig.js → dnsConfig.ts} +1 -1
  703. package/app/src/mitm/{manager.js → manager.ts} +3 -3
  704. package/app/src/mitm/{server.js → server.ts} +1 -1
  705. package/package.json +7 -4
  706. package/app/.next/server/chunks/1228.js +0 -3
  707. package/app/.next/server/chunks/1362.js +0 -1
  708. package/app/.next/server/chunks/152.js +0 -1
  709. package/app/.next/server/chunks/2399.js +0 -1
  710. package/app/.next/server/chunks/4004.js +0 -1
  711. package/app/.next/server/chunks/4832.js +0 -36
  712. package/app/.next/server/chunks/5040.js +0 -1
  713. package/app/.next/server/chunks/5727.js +0 -1
  714. package/app/.next/server/chunks/6599.js +0 -1
  715. package/app/.next/server/chunks/7093.js +0 -2
  716. package/app/.next/server/chunks/7136.js +0 -1
  717. package/app/.next/server/chunks/7271.js +0 -1
  718. package/app/.next/server/chunks/7615.js +0 -19
  719. package/app/.next/server/chunks/7763.js +0 -1
  720. package/app/.next/server/chunks/7802.js +0 -1
  721. package/app/.next/server/chunks/7968.js +0 -3
  722. package/app/.next/server/chunks/8392.js +0 -1
  723. package/app/.next/server/chunks/8400.js +0 -143
  724. package/app/.next/server/chunks/8757.js +0 -2
  725. package/app/.next/server/chunks/8847.js +0 -3
  726. package/app/.next/server/chunks/9081.js +0 -1
  727. package/app/.next/server/chunks/9263.js +0 -1
  728. package/app/.next/static/chunks/1525-5a69ef0a1ac4f962.js +0 -21
  729. package/app/.next/static/chunks/7896-9a0909a92a983a09.js +0 -2
  730. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a04417ebc8cf8378.js +0 -1
  731. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-a0d59a10c0c8cf03.js +0 -15
  732. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-0ec8339a5e63e29b.js +0 -1
  733. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-38d9a3dbd2b14ce0.js +0 -1
  734. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-9f316bbfedf248e3.js +0 -1
  735. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-1c7f51c61cd1e699.js +0 -1
  736. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-6f10b6cb468bdc21.js +0 -1
  737. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-b7f4f0bd54a35446.js +0 -1
  738. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-0a52b0b6a790afd5.js +0 -1
  739. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-8d7182afc4e86131.js +0 -1
  740. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-8ecd49c8dede42af.js +0 -1
  741. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-9460e0e29ba0ca7d.js +0 -1
  742. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-834e40170968cf11.js +0 -1
  743. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-2889507d608ace80.js +0 -4
  744. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-016d44203ff299ac.js +0 -1
  745. package/app/.next/static/chunks/app/(dashboard)/layout-5cca2595e89e770c.js +0 -1
  746. package/app/.next/static/chunks/app/callback/page-259c406ba4d2aeff.js +0 -1
  747. package/app/.next/static/chunks/app/forbidden/page-6806872971c364f0.js +0 -1
  748. package/app/.next/static/chunks/app/forgot-password/page-9cf548e06e388c72.js +0 -1
  749. package/app/.next/static/chunks/app/landing/page-24ee8d70cde143a9.js +0 -1
  750. package/app/.next/static/chunks/app/layout-6504ce60623b0a41.js +0 -1
  751. package/app/.next/static/chunks/app/login/page-1fe2fbac3d005b28.js +0 -1
  752. package/app/.next/static/chunks/app/not-found-e1af8b9c5785b71b.js +0 -1
  753. package/app/.next/static/css/bd676ecee93f7aaf.css +0 -1
  754. /package/app/.next/static/{-4iz0aT4gr0pcgbKDy3mR → 4zh9cgkOJsay7eUxfk-tb}/_buildManifest.js +0 -0
  755. /package/app/.next/static/{-4iz0aT4gr0pcgbKDy3mR → 4zh9cgkOJsay7eUxfk-tb}/_ssgManifest.js +0 -0
  756. /package/app/src/mitm/cert/{generate.js → generate.ts} +0 -0
  757. /package/app/src/shared/utils/{apiKey.js → apiKey.ts} +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><!--_4iz0aT4gr0pcgbKDy3mR--><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/bd676ecee93f7aaf.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/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/7013-718042994c9127fa.js" async=""></script><script src="/_next/static/chunks/7896-9a0909a92a983a09.js" async=""></script><script src="/_next/static/chunks/1525-5a69ef0a1ac4f962.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-5cca2595e89e770c.js" async=""></script><script src="/_next/static/chunks/app/not-found-e1af8b9c5785b71b.js" async=""></script><script src="/_next/static/chunks/app/terms/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>Terms of Service | OmniRoute</title><meta name="description" content="Terms of service for the OmniRoute AI API proxy router."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.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><main class="min-h-screen bg-bg text-text-main"><div class="max-w-3xl mx-auto px-6 py-16"><a class="inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8" href="/"><span class="material-symbols-outlined text-[18px]">arrow_back</span>Back to home</a><h1 class="text-3xl font-bold mb-2">Terms of Service</h1><p class="text-sm text-text-muted mb-10">Last updated: February 13, 2026</p><div class="space-y-8 text-text-muted leading-relaxed"><section><h2 class="text-lg font-semibold text-text-main mb-3">1. Overview</h2><p>OmniRoute is a <strong class="text-text-main">local-first</strong> AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">2. User Responsibilities</h2><ul class="list-disc pl-6 space-y-2"><li>You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).</li><li>You must comply with the terms of service of each AI provider whose API you access through OmniRoute.</li><li>You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">3. How It Works</h2><p>OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">4. Data Handling</h2><ul class="list-disc pl-6 space-y-2"><li>All data is stored <strong class="text-text-main">locally</strong> on your machine in a SQLite database.</li><li>OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.</li><li>Usage logs, API keys, and configuration are stored in<!-- --> <code class="text-primary text-sm">~/.omniroute/</code>.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">5. Disclaimer</h2><p>OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">6. Open Source</h2><p>OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.</p></section></div><div class="mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted"><p>Questions? Visit our<!-- --> <a href="https://github.com/diegosouzapw/OmniRoute" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">GitHub repository</a>.</p></div></div></main><!--$--><!--/$--><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\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"7013\",\"static/chunks/7013-718042994c9127fa.js\",\"7896\",\"static/chunks/7896-9a0909a92a983a09.js\",\"1525\",\"static/chunks/1525-5a69ef0a1ac4f962.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-5cca2595e89e770c.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\",\"7066\",\"static/chunks/app/terms/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/bd676ecee93f7aaf.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\":\"-4iz0aT4gr0pcgbKDy3mR\",\"c\":[\"\",\"terms\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"terms\",{\"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/bd676ecee93f7aaf.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\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[18px]\",\"children\":\"arrow_back\"}],\"Back to home\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl font-bold mb-2\",\"children\":\"Terms of Service\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mb-10\",\"children\":\"Last updated: February 13, 2026\"}],[\"$\",\"div\",null,{\"className\":\"space-y-8 text-text-muted leading-relaxed\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"1. Overview\"}],[\"$\",\"p\",null,{\"children\":[\"OmniRoute is a \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"local-first\"}],\" AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.\"]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"2. User Responsibilities\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":\"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).\"}],[\"$\",\"li\",null,{\"children\":\"You must comply with the terms of service of each AI provider whose API you access through OmniRoute.\"}],[\"$\",\"li\",null,{\"children\":\"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.\"}]]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"3. How It Works\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.\"}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"4. Data Handling\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[\"$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:[\"$\",\"li\",null,{\"children\":[\"All data is stored \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"locally\"}],\" on your machine in a SQLite database.\"]}]\n8:[\"$\",\"li\",null,{\"children\":\"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.\"}]\n9:[\"$\",\"li\",null,{\"children\":[\"Usage logs, API keys, and configuration are stored in\",\" \",[\"$\",\"code\",null,{\"className\":\"text-primary text-sm\",\"children\":\"~/.omniroute/\"}],\".\"]}]\na:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"5. Disclaimer\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.\"}]]}]\nb:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"6. Open Source\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.\"}]]}]\nc:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted\",\"children\":[\"$\",\"p\",null,{\"children\":[\"Questions? Visit our\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"className\":\"text-primary hover:underline\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub repository\"}],\".\"]}]}]\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\":\"Terms of Service | OmniRoute\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Terms of service for the OmniRoute AI API proxy router.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L17\",\"4\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--4zh9cgkOJsay7eUxfk_tb--><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/c08bd521c418658c.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9837b0fbf7de0b62.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/782-5e138760b7f7bf48.js" async=""></script><script src="/_next/static/chunks/7013-718042994c9127fa.js" async=""></script><script src="/_next/static/chunks/5846-2708fad522c4092b.js" async=""></script><script src="/_next/static/chunks/993-6be0cd05a02eb09b.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-c498dd9c790d0115.js" async=""></script><script src="/_next/static/chunks/app/not-found-a1cabc3706cf5b84.js" async=""></script><script src="/_next/static/chunks/app/terms/page-8f74097544a61b9d.js" async=""></script><script src="/_next/static/chunks/app/global-error-ece0210f8bb4e441.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>Terms of Service | OmniRoute</title><meta name="description" content="Terms of service for the OmniRoute AI API proxy router."/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.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><main class="min-h-screen bg-bg text-text-main"><div class="max-w-3xl mx-auto px-6 py-16"><a class="inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8" href="/"><span class="material-symbols-outlined text-[18px]">arrow_back</span>Back to home</a><h1 class="text-3xl font-bold mb-2">Terms of Service</h1><p class="text-sm text-text-muted mb-10">Last updated: February 13, 2026</p><div class="space-y-8 text-text-muted leading-relaxed"><section><h2 class="text-lg font-semibold text-text-main mb-3">1. Overview</h2><p>OmniRoute is a <strong class="text-text-main">local-first</strong> AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">2. User Responsibilities</h2><ul class="list-disc pl-6 space-y-2"><li>You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).</li><li>You must comply with the terms of service of each AI provider whose API you access through OmniRoute.</li><li>You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">3. How It Works</h2><p>OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">4. Data Handling</h2><ul class="list-disc pl-6 space-y-2"><li>All data is stored <strong class="text-text-main">locally</strong> on your machine in a SQLite database.</li><li>OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.</li><li>Usage logs, API keys, and configuration are stored in<!-- --> <code class="text-primary text-sm">~/.omniroute/</code>.</li></ul></section><section><h2 class="text-lg font-semibold text-text-main mb-3">5. Disclaimer</h2><p>OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.</p></section><section><h2 class="text-lg font-semibold text-text-main mb-3">6. Open Source</h2><p>OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.</p></section></div><div class="mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted"><p>Questions? Visit our<!-- --> <a href="https://github.com/diegosouzapw/OmniRoute" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">GitHub repository</a>.</p></div></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9837b0fbf7de0b62.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[55846,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"9751\",\"static/chunks/9751-3a35163d337d54ea.js\",\"782\",\"static/chunks/782-5e138760b7f7bf48.js\",\"7013\",\"static/chunks/7013-718042994c9127fa.js\",\"5846\",\"static/chunks/5846-2708fad522c4092b.js\",\"993\",\"static/chunks/993-6be0cd05a02eb09b.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-c498dd9c790d0115.js\"],\"ThemeProvider\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[37145,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"4345\",\"static/chunks/app/not-found-a1cabc3706cf5b84.js\"],\"default\"]\n6:I[98500,[\"8500\",\"static/chunks/8500-98e13bcce54aa7a0.js\",\"7066\",\"static/chunks/app/terms/page-8f74097544a61b9d.js\"],\"\"]\nf:I[26719,[\"4219\",\"static/chunks/app/global-error-ece0210f8bb4e441.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/c08bd521c418658c.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\":\"4zh9cgkOJsay7eUxfk-tb\",\"c\":[\"\",\"terms\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"terms\",{\"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/c08bd521c418658c.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\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-bg text-text-main\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl mx-auto px-6 py-16\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"material-symbols-outlined text-[18px]\",\"children\":\"arrow_back\"}],\"Back to home\"]}],[\"$\",\"h1\",null,{\"className\":\"text-3xl font-bold mb-2\",\"children\":\"Terms of Service\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-text-muted mb-10\",\"children\":\"Last updated: February 13, 2026\"}],[\"$\",\"div\",null,{\"className\":\"space-y-8 text-text-muted leading-relaxed\",\"children\":[[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"1. Overview\"}],[\"$\",\"p\",null,{\"children\":[\"OmniRoute is a \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"local-first\"}],\" AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.\"]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"2. User Responsibilities\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":\"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).\"}],[\"$\",\"li\",null,{\"children\":\"You must comply with the terms of service of each AI provider whose API you access through OmniRoute.\"}],[\"$\",\"li\",null,{\"children\":\"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.\"}]]}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"3. How It Works\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.\"}]]}],[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"4. Data Handling\"}],[\"$\",\"ul\",null,{\"className\":\"list-disc pl-6 space-y-2\",\"children\":[\"$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:[\"$\",\"li\",null,{\"children\":[\"All data is stored \",[\"$\",\"strong\",null,{\"className\":\"text-text-main\",\"children\":\"locally\"}],\" on your machine in a SQLite database.\"]}]\n8:[\"$\",\"li\",null,{\"children\":\"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.\"}]\n9:[\"$\",\"li\",null,{\"children\":[\"Usage logs, API keys, and configuration are stored in\",\" \",[\"$\",\"code\",null,{\"className\":\"text-primary text-sm\",\"children\":\"~/.omniroute/\"}],\".\"]}]\na:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"5. Disclaimer\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.\"}]]}]\nb:[\"$\",\"section\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-text-main mb-3\",\"children\":\"6. Open Source\"}],[\"$\",\"p\",null,{\"children\":\"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license.\"}]]}]\nc:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted\",\"children\":[\"$\",\"p\",null,{\"children\":[\"Questions? Visit our\",\" \",[\"$\",\"a\",null,{\"href\":\"https://github.com/diegosouzapw/OmniRoute\",\"className\":\"text-primary hover:underline\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"GitHub repository\"}],\".\"]}]}]\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\":\"Terms of Service | OmniRoute\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Terms of service for the OmniRoute AI API proxy router.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\"}],[\"$\",\"$L17\",\"4\",{}]]\n"])</script></body></html>
@@ -1,15 +1,15 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","7896","static/chunks/7896-9a0909a92a983a09.js","1525","static/chunks/1525-5a69ef0a1ac4f962.js","9305","static/chunks/app/(dashboard)/layout-5cca2595e89e770c.js"],"ThemeProvider"]
2
+ 2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","5846","static/chunks/5846-2708fad522c4092b.js","993","static/chunks/993-6be0cd05a02eb09b.js","9305","static/chunks/app/(dashboard)/layout-c498dd9c790d0115.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-e1af8b9c5785b71b.js"],"default"]
5
+ 5:I[37145,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-a1cabc3706cf5b84.js"],"default"]
6
6
  6:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","7066","static/chunks/app/terms/page-8f74097544a61b9d.js"],""]
7
- f:I[96243,["4219","static/chunks/app/global-error-6abc2976016d7bd1.js"],"default"]
7
+ f:I[26719,["4219","static/chunks/app/global-error-ece0210f8bb4e441.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/bd676ecee93f7aaf.css","style"]
10
+ :HL["/_next/static/css/c08bd521c418658c.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":"-4iz0aT4gr0pcgbKDy3mR","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"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/bd676ecee93f7aaf.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":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L6",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$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}
12
+ 0:{"P":null,"b":"4zh9cgkOJsay7eUxfk-tb","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"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/c08bd521c418658c.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":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L6",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$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
13
  10:I[90484,[],"OutletBoundary"]
14
14
  11:"$Sreact.suspense"
15
15
  13:I[90484,[],"ViewportBoundary"]
@@ -1,15 +1,15 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[57896,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","7896","static/chunks/7896-9a0909a92a983a09.js","1525","static/chunks/1525-5a69ef0a1ac4f962.js","9305","static/chunks/app/(dashboard)/layout-5cca2595e89e770c.js"],"ThemeProvider"]
2
+ 2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","5846","static/chunks/5846-2708fad522c4092b.js","993","static/chunks/993-6be0cd05a02eb09b.js","9305","static/chunks/app/(dashboard)/layout-c498dd9c790d0115.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-e1af8b9c5785b71b.js"],"default"]
5
+ 5:I[37145,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-a1cabc3706cf5b84.js"],"default"]
6
6
  6:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","7066","static/chunks/app/terms/page-8f74097544a61b9d.js"],""]
7
- f:I[96243,["4219","static/chunks/app/global-error-6abc2976016d7bd1.js"],"default"]
7
+ f:I[26719,["4219","static/chunks/app/global-error-ece0210f8bb4e441.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/bd676ecee93f7aaf.css","style"]
10
+ :HL["/_next/static/css/c08bd521c418658c.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":"-4iz0aT4gr0pcgbKDy3mR","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"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/bd676ecee93f7aaf.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":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L6",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$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}
12
+ 0:{"P":null,"b":"4zh9cgkOJsay7eUxfk-tb","c":["","terms"],"q":"","i":false,"f":[[["",{"children":["terms",{"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/c08bd521c418658c.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":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L6",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":["$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
13
  10:I[90484,[],"OutletBoundary"]
14
14
  11:"$Sreact.suspense"
15
15
  13:I[90484,[],"ViewportBoundary"]
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"buildId":"-4iz0aT4gr0pcgbKDy3mR","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":"Terms of Service | OmniRoute"}],["$","meta","1",{"name":"description","content":"Terms of service for the OmniRoute AI API proxy router."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-touch-icon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"4zh9cgkOJsay7eUxfk-tb","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":"Terms of Service | OmniRoute"}],["$","meta","1",{"name":"description","content":"Terms of service for the OmniRoute AI API proxy router."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-touch-icon.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","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","7896","static/chunks/7896-9a0909a92a983a09.js","1525","static/chunks/1525-5a69ef0a1ac4f962.js","9305","static/chunks/app/(dashboard)/layout-5cca2595e89e770c.js"],"ThemeProvider"]
2
+ 2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","7013","static/chunks/7013-718042994c9127fa.js","5846","static/chunks/5846-2708fad522c4092b.js","993","static/chunks/993-6be0cd05a02eb09b.js","9305","static/chunks/app/(dashboard)/layout-c498dd9c790d0115.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-e1af8b9c5785b71b.js"],"default"]
5
+ 5:I[37145,["8500","static/chunks/8500-98e13bcce54aa7a0.js","4345","static/chunks/app/not-found-a1cabc3706cf5b84.js"],"default"]
6
6
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
7
- :HL["/_next/static/css/bd676ecee93f7aaf.css","style"]
7
+ :HL["/_next/static/css/c08bd521c418658c.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":"-4iz0aT4gr0pcgbKDy3mR","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/bd676ecee93f7aaf.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}
9
+ 0:{"buildId":"4zh9cgkOJsay7eUxfk-tb","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c08bd521c418658c.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/bd676ecee93f7aaf.css","style"]
3
+ :HL["/_next/static/css/c08bd521c418658c.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":"-4iz0aT4gr0pcgbKDy3mR","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"terms","paramType":null,"paramKey":"terms","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":"4zh9cgkOJsay7eUxfk-tb","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"terms","paramType":null,"paramKey":"terms","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -2,6 +2,6 @@
2
2
  2:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","7066","static/chunks/app/terms/page-8f74097544a61b9d.js"],""]
3
3
  3:I[90484,[],"OutletBoundary"]
4
4
  5:"$Sreact.suspense"
5
- 0:{"buildId":"-4iz0aT4gr0pcgbKDy3mR","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L2",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":["All data is stored ",["$","strong",null,{"className":"text-text-main","children":"locally"}]," on your machine in a SQLite database."]}],["$","li",null,{"children":"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features."}],["$","li",null,{"children":["Usage logs, API keys, and configuration are stored in"," ",["$","code",null,{"className":"text-primary text-sm","children":"~/.omniroute/"}],"."]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"5. Disclaimer"}],["$","p",null,{"children":"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"6. Open Source"}],["$","p",null,{"children":"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."}]]}]]}],["$","div",null,{"className":"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted","children":["$","p",null,{"children":["Questions? Visit our"," ",["$","a",null,{"href":"https://github.com/diegosouzapw/OmniRoute","className":"text-primary hover:underline","target":"_blank","rel":"noopener noreferrer","children":"GitHub repository"}],"."]}]}]]}]}],null,["$","$L3",null,{"children":"$L4"}]]}],"loading":null,"isPartial":false}
5
+ 0:{"buildId":"4zh9cgkOJsay7eUxfk-tb","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L2",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":["All data is stored ",["$","strong",null,{"className":"text-text-main","children":"locally"}]," on your machine in a SQLite database."]}],["$","li",null,{"children":"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features."}],["$","li",null,{"children":["Usage logs, API keys, and configuration are stored in"," ",["$","code",null,{"className":"text-primary text-sm","children":"~/.omniroute/"}],"."]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"5. Disclaimer"}],["$","p",null,{"children":"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"6. Open Source"}],["$","p",null,{"children":"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."}]]}]]}],["$","div",null,{"className":"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted","children":["$","p",null,{"children":["Questions? Visit our"," ",["$","a",null,{"href":"https://github.com/diegosouzapw/OmniRoute","className":"text-primary hover:underline","target":"_blank","rel":"noopener noreferrer","children":"GitHub repository"}],"."]}]}]]}]}],null,["$","$L3",null,{"children":"$L4"}]]}],"loading":null,"isPartial":false}
6
6
  4:["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]
7
7
  6:null
@@ -1,4 +1,4 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
- 0:{"buildId":"-4iz0aT4gr0pcgbKDy3mR","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
4
+ 0:{"buildId":"4zh9cgkOJsay7eUxfk-tb","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -4,26 +4,25 @@
4
4
  "/api/auth/login/route": "app/api/auth/login/route.js",
5
5
  "/api/auth/logout/route": "app/api/auth/logout/route.js",
6
6
  "/api/cache/route": "app/api/cache/route.js",
7
- "/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js",
8
7
  "/api/cache/stats/route": "app/api/cache/stats/route.js",
8
+ "/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js",
9
9
  "/api/cli-tools/backups/route": "app/api/cli-tools/backups/route.js",
10
10
  "/api/cli-tools/codex-profiles/route": "app/api/cli-tools/codex-profiles/route.js",
11
11
  "/api/cli-tools/guide-settings/[toolId]/route": "app/api/cli-tools/guide-settings/[toolId]/route.js",
12
12
  "/api/cloud/auth/route": "app/api/cloud/auth/route.js",
13
13
  "/api/cloud/credentials/update/route": "app/api/cloud/credentials/update/route.js",
14
- "/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js",
15
14
  "/api/cloud/models/alias/route": "app/api/cloud/models/alias/route.js",
15
+ "/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js",
16
16
  "/api/combos/[id]/route": "app/api/combos/[id]/route.js",
17
17
  "/api/combos/metrics/route": "app/api/combos/metrics/route.js",
18
- "/api/combos/test/route": "app/api/combos/test/route.js",
19
18
  "/api/combos/route": "app/api/combos/route.js",
20
19
  "/api/compliance/audit-log/route": "app/api/compliance/audit-log/route.js",
21
20
  "/api/db-backups/route": "app/api/db-backups/route.js",
22
- "/api/evals/[suiteId]/route": "app/api/evals/[suiteId]/route.js",
23
21
  "/api/evals/route": "app/api/evals/route.js",
24
22
  "/api/fallback/chains/route": "app/api/fallback/chains/route.js",
25
- "/api/init/route": "app/api/init/route.js",
23
+ "/api/evals/[suiteId]/route": "app/api/evals/[suiteId]/route.js",
26
24
  "/api/keys/[id]/route": "app/api/keys/[id]/route.js",
25
+ "/api/init/route": "app/api/init/route.js",
27
26
  "/api/keys/route": "app/api/keys/route.js",
28
27
  "/api/models/alias/route": "app/api/models/alias/route.js",
29
28
  "/api/models/availability/route": "app/api/models/availability/route.js",
@@ -31,9 +30,9 @@
31
30
  "/api/models/route": "app/api/models/route.js",
32
31
  "/api/monitoring/health/route": "app/api/monitoring/health/route.js",
33
32
  "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
33
+ "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js",
34
34
  "/api/oauth/cursor/auto-import/route": "app/api/oauth/cursor/auto-import/route.js",
35
35
  "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
36
- "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js",
37
36
  "/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js",
38
37
  "/api/oauth/kiro/social-authorize/route": "app/api/oauth/kiro/social-authorize/route.js",
39
38
  "/api/oauth/kiro/social-exchange/route": "app/api/oauth/kiro/social-exchange/route.js",
@@ -48,58 +47,58 @@
48
47
  "/api/providers/[id]/models/route": "app/api/providers/[id]/models/route.js",
49
48
  "/api/providers/[id]/route": "app/api/providers/[id]/route.js",
50
49
  "/api/providers/client/route": "app/api/providers/client/route.js",
50
+ "/api/providers/route": "app/api/providers/route.js",
51
51
  "/api/providers/test-batch/route": "app/api/providers/test-batch/route.js",
52
52
  "/api/providers/validate/route": "app/api/providers/validate/route.js",
53
- "/api/providers/route": "app/api/providers/route.js",
54
53
  "/api/rate-limit/route": "app/api/rate-limit/route.js",
55
54
  "/api/resilience/reset/route": "app/api/resilience/reset/route.js",
56
55
  "/api/rate-limits/route": "app/api/rate-limits/route.js",
57
- "/api/resilience/route": "app/api/resilience/route.js",
56
+ "/api/restart/route": "app/api/restart/route.js",
58
57
  "/api/sessions/route": "app/api/sessions/route.js",
58
+ "/api/resilience/route": "app/api/resilience/route.js",
59
59
  "/api/settings/combo-defaults/route": "app/api/settings/combo-defaults/route.js",
60
- "/api/restart/route": "app/api/restart/route.js",
61
60
  "/api/settings/ip-filter/route": "app/api/settings/ip-filter/route.js",
62
61
  "/api/settings/require-login/route": "app/api/settings/require-login/route.js",
63
62
  "/api/settings/route": "app/api/settings/route.js",
64
63
  "/api/settings/system-prompt/route": "app/api/settings/system-prompt/route.js",
65
- "/api/shutdown/route": "app/api/shutdown/route.js",
66
64
  "/api/settings/thinking-budget/route": "app/api/settings/thinking-budget/route.js",
65
+ "/api/shutdown/route": "app/api/shutdown/route.js",
67
66
  "/api/storage/health/route": "app/api/storage/health/route.js",
68
67
  "/api/sync/cloud/route": "app/api/sync/cloud/route.js",
69
68
  "/api/sync/initialize/route": "app/api/sync/initialize/route.js",
70
69
  "/api/telemetry/summary/route": "app/api/telemetry/summary/route.js",
71
- "/api/token-health/route": "app/api/token-health/route.js",
72
- "/api/translator/history/route": "app/api/translator/history/route.js",
73
70
  "/api/tags/route": "app/api/tags/route.js",
71
+ "/api/token-health/route": "app/api/token-health/route.js",
74
72
  "/api/translator/detect/route": "app/api/translator/detect/route.js",
73
+ "/api/translator/history/route": "app/api/translator/history/route.js",
75
74
  "/api/translator/load/route": "app/api/translator/load/route.js",
75
+ "/api/translator/send/route": "app/api/translator/send/route.js",
76
76
  "/api/translator/save/route": "app/api/translator/save/route.js",
77
77
  "/api/translator/translate/route": "app/api/translator/translate/route.js",
78
- "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
79
- "/api/translator/send/route": "app/api/translator/send/route.js",
80
78
  "/api/usage/analytics/route": "app/api/usage/analytics/route.js",
79
+ "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
81
80
  "/api/usage/budget/route": "app/api/usage/budget/route.js",
82
81
  "/api/usage/call-logs/[id]/route": "app/api/usage/call-logs/[id]/route.js",
83
82
  "/api/usage/call-logs/route": "app/api/usage/call-logs/route.js",
84
83
  "/api/usage/history/route": "app/api/usage/history/route.js",
85
84
  "/api/usage/logs/route": "app/api/usage/logs/route.js",
86
- "/api/v1/api/chat/route": "app/api/v1/api/chat/route.js",
87
85
  "/api/usage/request-logs/route": "app/api/usage/request-logs/route.js",
88
- "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
89
- "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
86
+ "/api/v1/api/chat/route": "app/api/v1/api/chat/route.js",
90
87
  "/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js",
88
+ "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
89
+ "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
91
90
  "/api/v1/embeddings/route": "app/api/v1/embeddings/route.js",
92
- "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
93
91
  "/api/v1/images/generations/route": "app/api/v1/images/generations/route.js",
92
+ "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
94
93
  "/api/v1/messages/route": "app/api/v1/messages/route.js",
95
94
  "/api/v1/models/route": "app/api/v1/models/route.js",
96
- "/api/v1/providers/[provider]/chat/completions/route": "app/api/v1/providers/[provider]/chat/completions/route.js",
97
95
  "/api/v1/moderations/route": "app/api/v1/moderations/route.js",
96
+ "/api/v1/providers/[provider]/chat/completions/route": "app/api/v1/providers/[provider]/chat/completions/route.js",
98
97
  "/api/v1/providers/[provider]/embeddings/route": "app/api/v1/providers/[provider]/embeddings/route.js",
99
- "/api/v1/providers/[provider]/images/generations/route": "app/api/v1/providers/[provider]/images/generations/route.js",
100
- "/api/v1/responses/route": "app/api/v1/responses/route.js",
101
98
  "/api/v1/rerank/route": "app/api/v1/rerank/route.js",
99
+ "/api/v1/providers/[provider]/images/generations/route": "app/api/v1/providers/[provider]/images/generations/route.js",
102
100
  "/api/v1/route": "app/api/v1/route.js",
101
+ "/api/v1/responses/route": "app/api/v1/responses/route.js",
103
102
  "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
104
103
  "/api/v1beta/models/route": "app/api/v1beta/models/route.js",
105
104
  "/api/cli-tools/antigravity-mitm/route": "app/api/cli-tools/antigravity-mitm/route.js",
@@ -107,17 +106,18 @@
107
106
  "/api/cli-tools/cline-settings/route": "app/api/cli-tools/cline-settings/route.js",
108
107
  "/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js",
109
108
  "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
109
+ "/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
110
110
  "/api/cli-tools/runtime/[toolId]/route": "app/api/cli-tools/runtime/[toolId]/route.js",
111
+ "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
111
112
  "/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
112
- "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
113
+ "/api/combos/test/route": "app/api/combos/test/route.js",
113
114
  "/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js",
114
- "/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
115
- "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
115
+ "/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
116
116
  "/api/settings/proxy/route": "app/api/settings/proxy/route.js",
117
117
  "/api/usage/proxy-logs/route": "app/api/usage/proxy-logs/route.js",
118
- "/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
119
- "/callback/page": "app/callback/page.js",
118
+ "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
120
119
  "/docs/page": "app/docs/page.js",
120
+ "/callback/page": "app/callback/page.js",
121
121
  "/forbidden/page": "app/forbidden/page.js",
122
122
  "/forgot-password/page": "app/forgot-password/page.js",
123
123
  "/landing/page": "app/landing/page.js",
@@ -132,13 +132,13 @@
132
132
  "/(dashboard)/dashboard/health/page": "app/(dashboard)/dashboard/health/page.js",
133
133
  "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
134
134
  "/(dashboard)/dashboard/providers/new/page": "app/(dashboard)/dashboard/providers/new/page.js",
135
- "/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
136
135
  "/(dashboard)/dashboard/settings/pricing/page": "app/(dashboard)/dashboard/settings/pricing/page.js",
137
- "/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
136
+ "/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
138
137
  "/(dashboard)/dashboard/page": "app/(dashboard)/dashboard/page.js",
139
- "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
138
+ "/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
140
139
  "/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
141
- "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
142
140
  "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
141
+ "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
142
+ "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
143
143
  "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js"
144
144
  }
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1020,exports.ids=[1020],exports.modules={21020:(a,b,c)=>{c.d(b,{Pt:()=>k,Tr:()=>l,c1:()=>i,kI:()=>m,vk:()=>j});var d=c(40287),e=c(74163),f=c(54194);let g=Promise.resolve(),h=new Map;async function i(a,b=null){let c,h=g;g=new Promise(a=>{c=a});try{let c;await h;let g=await (0,d.getProviderConnections)({provider:a,isActive:!0});if(f.debug("AUTH",`${a} | total connections: ${g.length}, excludeId: ${b||"none"}`),0===g.length){let b=await (0,d.getProviderConnections)({provider:a});if(f.debug("AUTH",`${a} | all connections (incl inactive): ${b.length}`),b.length>0){let c=(0,e.UY)(b);if(c)return f.warn("AUTH",`${a} | all ${b.length} accounts rate limited (${(0,e.Qo)(c)})`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,e.Qo)(c)};f.warn("AUTH",`${a} | ${b.length} accounts found but none active`),b.forEach(a=>{f.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return f.warn("AUTH",`No credentials for ${a}`),null}let i=g.filter(a=>!(b&&a.id===b||(0,e.AO)(a.rateLimitedUntil)));if(f.debug("AUTH",`${a} | available: ${i.length}/${g.length}`),g.forEach(a=>{let c=b&&a.id===b,d=(0,e.AO)(a.rateLimitedUntil);(c||d)&&f.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===i.length){let b=(0,e.UY)(g);if(b){let c=g.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil).getTime()-new Date(b.rateLimitedUntil).getTime())[0];return f.warn("AUTH",`${a} | all ${g.length} active accounts rate limited (${(0,e.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,e.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return f.warn("AUTH",`${a} | all ${g.length} accounts unavailable`),null}let j=await (0,d.mt)(),k=j.fallbackStrategy||"fill-first";if("round-robin"===k){let a=j.stickyRoundRobinLimit||3,b=[...i].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<a?(c=b,await (0,d.rj)(c.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(c.consecutiveUseCount||0)+1})):(c=[...i].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.rj)(c.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else c=i[0];return{apiKey:c.apiKey,accessToken:c.accessToken,refreshToken:c.refreshToken,expiresAt:c.tokenExpiresAt||c.expiresAt||null,projectId:c.projectId,copilotToken:c.providerSpecificData?.copilotToken,providerSpecificData:c.providerSpecificData,connectionId:c.id,testStatus:c.testStatus,lastError:c.lastError,rateLimitedUntil:c.rateLimitedUntil}}finally{c&&c()}}async function j(a,b,c,g=null,i=null){let k,l=h.get(a)||Promise.resolve();h.set(a,new Promise(a=>{k=a}));try{await l;let h=(await (0,d.getProviderConnections)({provider:g})).find(b=>b.id===a),j=h?.backoffLevel||0;if(h?.rateLimitedUntil&&new Date(h.rateLimitedUntil).getTime()>Date.now())return f.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${h.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(h.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:k,cooldownMs:m,newBackoffLevel:n,reason:o}=(0,e.hk)(b,c,j,i,g);if(!k)return{shouldFallback:!1,cooldownMs:0};let p=(0,e.vp)(m),q="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:p,testStatus:"unavailable",lastError:q,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:n??j}),g&&i&&m>0&&(0,e.R7)(g,a,i,o||"unknown",m),g&&b&&q&&console.error(`❌ ${g} [${b}]: ${q}`),{shouldFallback:!0,cooldownMs:m}}finally{k&&k(),h.delete(a)}}async function k(a,b){("unavailable"===b.testStatus||b.lastError||b.rateLimitedUntil)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,rateLimitedUntil:null,backoffLevel:0}),f.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}function l(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function m(a){return!!a&&await (0,d.ek)(a)}},54194:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>i,error:()=>l,info:()=>j,maskKey:()=>g,request:()=>m,response:()=>n,stream:()=>o,warn:()=>k});var d=c(74552),e=c.n(d);let f={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}};function g(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}let h=e()({...f}).child({module:"sse"});function i(a,b,c){h.debug({tag:a,...p(c)},b)}function j(a,b,c){h.info({tag:a,...p(c)},b)}function k(a,b,c){h.warn({tag:a,...p(c)},b)}function l(a,b,c){h.error({tag:a,...p(c)},b)}function m(a,b,c){h.info({tag:"HTTP",method:a,path:b,...p(c)},`📥 ${a} ${b}`)}function n(a,b,c){h[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...p(c)},`📤 ${a} (${b}ms)`)}function o(a,b){h.debug({tag:"STREAM",event:a,...p(b)},`🌊 ${a}`)}function p(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1079,exports.ids=[1079],exports.modules={71861:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(60293);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="",d=null;try{let b=await a.text();try{let a=JSON.parse(b);c=a.error?.message||a.message||a.error||b}catch{c=b}}catch{c=`Upstream error: ${a.status}`}let e="string"==typeof c?c:JSON.stringify(c);return"antigravity"===b&&429===a.status&&(d=function(a){if("string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=60*parseInt(b[1])*6e4),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}(e)),{statusCode:a.status,message:e,retryAfterMs:d}}function g(a,b,c=null){let d={success:!1,status:a,error:b,response:e(a,b)};return c&&(d.retryAfterMs=c),d}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error";return`[${e}]: ${f}`}},74163:(a,b,c)=>{c.d(b,{AO:()=>l,Qo:()=>o,R7:()=>h,T_:()=>f,UY:()=>n,getAllModelLockouts:()=>i,hk:()=>k,vp:()=>m});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map;function h(a,b,c,d,e){if(!c)return;let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function i(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function j(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function k(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function l(a){return!!a&&new Date(a).getTime()>Date.now()}function m(a){return new Date(Date.now()+a).toISOString()}function n(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3).unref()}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1308,exports.ids=[293,1308,4163],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>n,Kr:()=>t,UE:()=>u,YO:()=>p,getAllRateLimitStatus:()=>v,mg:()=>m,rh:()=>l});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);let h=new Map,i=new Set,j=!1,k={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null};async function l(){if(!j){j=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,40287)),b=await a(),d=0,j=0;for(let a of b)if(a.rateLimitProtection)i.add(a.id),d++;else if(a.provider&&"apikey"===(0,f.oQ)(a.provider)&&a.isActive){i.add(a.id),j++;let b=`${a.provider}:${a.id}`;h.has(b)||h.set(b,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,id:b}))}(d>0||j>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${j} auto-enabled (API key) protection(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function m(a){i.add(a)}function n(a){for(let[b]of(i.delete(a),h))if(b.includes(a)){let a=h.get(b);a?.disconnect(),h.delete(b)}}function o(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!h.has(d)){let a=new(e())({...k,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),h.set(d,a)}return h.get(d)}async function p(a,b,c,d){return i.has(b)?o(a,b,null).schedule(d):d()}let q={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},r={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function s(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function t(a,b,c,d,e=null){if(!i.has(b)||!c)return;let f=o(a,b,null),g="claude"===a||"anthropic"===a?r:q,h=a=>"function"==typeof c.get?c.get(a):c[a]||null,j=parseInt(h(g.limit)),k=parseInt(h(g.remaining)),l=h(g.reset),m=h(g.retryAfter),n=h(q.overLimit);if(429===d){let c=s(m)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),f.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===n){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),f.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){let c=s(l)||6e4,d={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(k)&&(k<.1*j?(d.reservoir=k,d.reservoirRefreshAmount=j,d.reservoirRefreshInterval=c,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${k}/${j} remaining, throttling`)):k>.5*j&&(d.minTime=0,d.reservoir=null,d.reservoirRefreshAmount=null,d.reservoirRefreshInterval=null)),f.updateSettings(d)}}function u(a,b){let c=`${a}:${b}`,d=h.get(c);if(!d)return{enabled:i.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:i.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function v(){let a={};for(let[b,c]of h){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}},60293:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(83596);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]},74163:(a,b,c)=>{c.d(b,{AO:()=>l,Qo:()=>o,R7:()=>h,T_:()=>f,UY:()=>n,getAllModelLockouts:()=>i,hk:()=>k,vp:()=>m});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map;function h(a,b,c,d,e){if(!c)return;let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function i(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function j(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function k(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function l(a){return!!a&&new Date(a).getTime()>Date.now()}function m(a){return new Date(Date.now()+a).toISOString()}function n(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3).unref()}};