omniroute 3.3.6 → 3.3.7

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 (156) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +2 -2
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/audit/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cache/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_global-error.html +2 -2
  42. package/app/.next/server/app/_global-error.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  47. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  48. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/api/system/version/route.js.nft.json +1 -1
  50. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/chunks/[root-of-the-server]__46e00e59._.js +1 -1
  63. package/app/.next/server/chunks/[root-of-the-server]__6e52619e._.js +1 -1
  64. package/app/.next/server/chunks/[root-of-the-server]__7ace0fcd._.js +1 -1
  65. package/app/.next/server/chunks/[root-of-the-server]__950558b8._.js +1 -1
  66. package/app/.next/server/chunks/[root-of-the-server]__9698d25e._.js +1 -1
  67. package/app/.next/server/chunks/[root-of-the-server]__a32d3818._.js +1 -1
  68. package/app/.next/server/chunks/[root-of-the-server]__bc251fbe._.js +1 -1
  69. package/app/.next/server/chunks/[root-of-the-server]__d5a064d5._.js +1 -1
  70. package/app/.next/server/chunks/_05c48915._.js +1 -1
  71. package/app/.next/server/chunks/_06515a8a._.js +1 -1
  72. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  73. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  74. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  75. package/app/.next/server/chunks/_68683848._.js +1 -1
  76. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  77. package/app/.next/server/chunks/ssr/[root-of-the-server]__9ef96d20._.js +1 -1
  78. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  79. package/app/.next/server/chunks/ssr/src_i18n_messages_ar_json_e1d5145b._.js +1 -1
  80. package/app/.next/server/chunks/ssr/src_i18n_messages_bg_json_34495a0f._.js +1 -1
  81. package/app/.next/server/chunks/ssr/src_i18n_messages_cs_json_db6f9ebc._.js +1 -1
  82. package/app/.next/server/chunks/ssr/src_i18n_messages_da_json_7500ed02._.js +1 -1
  83. package/app/.next/server/chunks/ssr/src_i18n_messages_de_json_b2a40318._.js +1 -1
  84. package/app/.next/server/chunks/ssr/src_i18n_messages_es_json_82775c4a._.js +1 -1
  85. package/app/.next/server/chunks/ssr/src_i18n_messages_fi_json_dcc6745e._.js +1 -1
  86. package/app/.next/server/chunks/ssr/src_i18n_messages_fr_json_fe904570._.js +1 -1
  87. package/app/.next/server/chunks/ssr/src_i18n_messages_he_json_3e3c1e1b._.js +1 -1
  88. package/app/.next/server/chunks/ssr/src_i18n_messages_hi_json_83a0b9e5._.js +1 -1
  89. package/app/.next/server/chunks/ssr/src_i18n_messages_hu_json_651e00d3._.js +1 -1
  90. package/app/.next/server/chunks/ssr/src_i18n_messages_id_json_725d4a34._.js +1 -1
  91. package/app/.next/server/chunks/ssr/src_i18n_messages_in_json_2d7cd177._.js +1 -1
  92. package/app/.next/server/chunks/ssr/src_i18n_messages_it_json_e23882ae._.js +1 -1
  93. package/app/.next/server/chunks/ssr/src_i18n_messages_ja_json_fc6af4d8._.js +1 -1
  94. package/app/.next/server/chunks/ssr/src_i18n_messages_ko_json_0ffdbdc6._.js +1 -1
  95. package/app/.next/server/chunks/ssr/src_i18n_messages_ms_json_610df819._.js +1 -1
  96. package/app/.next/server/chunks/ssr/src_i18n_messages_nl_json_55ad1507._.js +1 -1
  97. package/app/.next/server/chunks/ssr/src_i18n_messages_no_json_9f484a8c._.js +1 -1
  98. package/app/.next/server/chunks/ssr/src_i18n_messages_phi_json_871ece45._.js +1 -1
  99. package/app/.next/server/chunks/ssr/src_i18n_messages_pl_json_79d0be4b._.js +1 -1
  100. package/app/.next/server/chunks/ssr/src_i18n_messages_pt-BR_json_e7b9e8db._.js +1 -1
  101. package/app/.next/server/chunks/ssr/src_i18n_messages_pt_json_2fc13a82._.js +1 -1
  102. package/app/.next/server/chunks/ssr/src_i18n_messages_ro_json_d1a5f5ee._.js +1 -1
  103. package/app/.next/server/chunks/ssr/src_i18n_messages_ru_json_9d7a9dfe._.js +1 -1
  104. package/app/.next/server/chunks/ssr/src_i18n_messages_sk_json_1c5bff4a._.js +1 -1
  105. package/app/.next/server/chunks/ssr/src_i18n_messages_sv_json_e8ae9f28._.js +1 -1
  106. package/app/.next/server/chunks/ssr/src_i18n_messages_th_json_6ed546bd._.js +1 -1
  107. package/app/.next/server/chunks/ssr/src_i18n_messages_tr_json_c8d78b01._.js +1 -1
  108. package/app/.next/server/chunks/ssr/src_i18n_messages_uk-UA_json_c72cdf08._.js +1 -1
  109. package/app/.next/server/chunks/ssr/src_i18n_messages_vi_json_03ec9dfd._.js +1 -1
  110. package/app/.next/server/pages/500.html +2 -2
  111. package/app/.next/server/server-reference-manifest.js +1 -1
  112. package/app/.next/server/server-reference-manifest.json +1 -1
  113. package/app/.next/static/chunks/{b9999bd9d2b99bf6.js → d3c3a9266158d9b0.js} +1 -1
  114. package/app/CHANGELOG.md +19 -1
  115. package/app/docs/openapi.yaml +1 -1
  116. package/app/open-sse/handlers/responseTranslator.ts +1 -1
  117. package/app/open-sse/package.json +1 -1
  118. package/app/package-lock.json +3 -3
  119. package/app/package.json +1 -1
  120. package/app/src/i18n/messages/ar.json +2 -1
  121. package/app/src/i18n/messages/bg.json +2 -1
  122. package/app/src/i18n/messages/cs.json +2 -1
  123. package/app/src/i18n/messages/da.json +2 -1
  124. package/app/src/i18n/messages/de.json +2 -1
  125. package/app/src/i18n/messages/es.json +2 -1
  126. package/app/src/i18n/messages/fi.json +2 -1
  127. package/app/src/i18n/messages/fr.json +2 -1
  128. package/app/src/i18n/messages/he.json +2 -1
  129. package/app/src/i18n/messages/hi.json +2 -1
  130. package/app/src/i18n/messages/hu.json +2 -1
  131. package/app/src/i18n/messages/id.json +2 -1
  132. package/app/src/i18n/messages/in.json +2 -1
  133. package/app/src/i18n/messages/it.json +2 -1
  134. package/app/src/i18n/messages/ja.json +2 -1
  135. package/app/src/i18n/messages/ko.json +2 -1
  136. package/app/src/i18n/messages/ms.json +2 -1
  137. package/app/src/i18n/messages/nl.json +2 -1
  138. package/app/src/i18n/messages/no.json +2 -1
  139. package/app/src/i18n/messages/phi.json +2 -1
  140. package/app/src/i18n/messages/pl.json +2 -1
  141. package/app/src/i18n/messages/pt-BR.json +2 -1
  142. package/app/src/i18n/messages/pt.json +2 -1
  143. package/app/src/i18n/messages/ro.json +2 -1
  144. package/app/src/i18n/messages/ru.json +2 -1
  145. package/app/src/i18n/messages/sk.json +2 -1
  146. package/app/src/i18n/messages/sv.json +2 -1
  147. package/app/src/i18n/messages/th.json +2 -1
  148. package/app/src/i18n/messages/tr.json +2 -1
  149. package/app/src/i18n/messages/uk-UA.json +2 -1
  150. package/app/src/i18n/messages/vi.json +2 -1
  151. package/app/src/shared/services/opencodeConfig.ts +14 -13
  152. package/app/tests/unit/t40-opencode-cli-tools-integration.test.mjs +5 -5
  153. package/package.json +1 -1
  154. /package/app/.next/static/{1ny0VWnN2mDf-NnjRzXAY → NYBYaP3-LK80ViNPwi7dC}/_buildManifest.js +0 -0
  155. /package/app/.next/static/{1ny0VWnN2mDf-NnjRzXAY → NYBYaP3-LK80ViNPwi7dC}/_clientMiddlewareManifest.json +0 -0
  156. /package/app/.next/static/{1ny0VWnN2mDf-NnjRzXAY → NYBYaP3-LK80ViNPwi7dC}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--1ny0VWnN2mDf_NnjRzXAY--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/ad127912b31cdc66.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/4fa395d360c87cc3.js" async=""></script><script src="/_next/static/chunks/b133d1854532ff8c.js" async=""></script><script src="/_next/static/chunks/c88fcc5f8b21ff92.js" async=""></script><script src="/_next/static/chunks/turbopack-782b2fac4674487a.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/16ea27c3b926bc31.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/ad127912b31cdc66.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[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"1ny0VWnN2mDf-NnjRzXAY\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/16ea27c3b926bc31.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--NYBYaP3_LK80ViNPwi7dC--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/ad127912b31cdc66.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/4fa395d360c87cc3.js" async=""></script><script src="/_next/static/chunks/b133d1854532ff8c.js" async=""></script><script src="/_next/static/chunks/c88fcc5f8b21ff92.js" async=""></script><script src="/_next/static/chunks/turbopack-782b2fac4674487a.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/16ea27c3b926bc31.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/ad127912b31cdc66.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[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/16ea27c3b926bc31.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"NYBYaP3-LK80ViNPwi7dC\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/16ea27c3b926bc31.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"ivB1QoRwGy2WFQOllb0XEVWO6u5LgtHfmen3TgncrE8=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"/6CUKNMBAsyd0UfEN/Gux96d5o8zFl9laTfeA2e2zXo=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "ivB1QoRwGy2WFQOllb0XEVWO6u5LgtHfmen3TgncrE8="
4
+ "encryptionKey": "/6CUKNMBAsyd0UfEN/Gux96d5o8zFl9laTfeA2e2zXo="
5
5
  }
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,e=>{e.v({name:"omniroute",version:"3.3.6",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"node scripts/build-next-isolated.mjs","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"c8 --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 55 --lines 55 --functions 55 --branches 60 node --import tsx/esm --test tests/unit/*.test.mjs","test:coverage:legacy":"c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","coverage:report":"c8 report --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov","coverage:report:legacy":"c8 report --exclude=open-sse --reporter=text --reporter=text-summary","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@lobehub/icons":"^5.0.1","@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0","@swc/helpers":"0.5.19",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",keytar:"^7.9.0",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.0.10","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/keytar":"^4.4.0","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",c8:"^11.0.0",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"^16.0.10",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},overrides:{dompurify:"^3.3.2","path-to-regexp":"^8.4.0",react:"$react","react-dom":"$react-dom"}})},175696,e=>{"use strict";var t=e.i(861745),s=e.i(843476);function r({locale:e,...r}){if(!e)throw Error(void 0);return(0,s.jsx)(t.IntlProvider,{locale:e,...r})}e.s(["default",()=>r])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,e=>{e.v({name:"omniroute",version:"3.3.7",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"node scripts/build-next-isolated.mjs","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"c8 --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 55 --lines 55 --functions 55 --branches 60 node --import tsx/esm --test tests/unit/*.test.mjs","test:coverage:legacy":"c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","coverage:report":"c8 report --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov","coverage:report:legacy":"c8 report --exclude=open-sse --reporter=text --reporter=text-summary","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@lobehub/icons":"^5.0.1","@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0","@swc/helpers":"0.5.19",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",keytar:"^7.9.0",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.0.10","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/keytar":"^4.4.0","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",c8:"^11.0.0",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"^16.0.10",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},overrides:{dompurify:"^3.3.2","path-to-regexp":"^8.4.0",react:"$react","react-dom":"$react-dom"}})},175696,e=>{"use strict";var t=e.i(861745),s=e.i(843476);function r({locale:e,...r}){if(!e)throw Error(void 0);return(0,s.jsx)(t.IntlProvider,{locale:e,...r})}e.s(["default",()=>r])}]);
package/app/CHANGELOG.md CHANGED
@@ -4,6 +4,25 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [3.3.7] - 2026-03-30
8
+
9
+ ### 🐛 Bug Fixes
10
+
11
+ - **OpenCode Config:** Restructured generated `opencode.json` to use the `@ai-sdk/openai-compatible` record-based schema with `options` and `models` as object maps instead of flat arrays, fixing config validation failures (#816)
12
+ - **i18n Missing Keys:** Added missing `cloudflaredUrlNotice` translation key across all 30 language files to prevent `MISSING_MESSAGE` console errors in the Endpoint page (#823)
13
+
14
+ ---
15
+
16
+ ## [3.3.6] - 2026-03-30
17
+
18
+ ### 🐛 Bug Fixes
19
+
20
+ - **Token Accounting:** Included prompt cache tokens safely in historical usage inputs calculations for correct quota deductions (PR #822)
21
+ - **Combo Test Probes:** Fixed combo testing logic false negatives by resolving parsing for reasoning-only responses and enabled massive parallelization via Promise.all (PR #828)
22
+ - **Docker Quick Tunnels:** Embedded required ca-certificates inside the base runtime container to resolve Cloudflared TLS startup failures, and surfaced stdout network errors replacing generic exit codes (PR #829)
23
+
24
+ ---
25
+
7
26
  ## [3.3.5] - 2026-03-30
8
27
 
9
28
  ### ✨ New Features
@@ -13,7 +32,6 @@
13
32
 
14
33
  ### 🐛 Bug Fixes
15
34
 
16
- - **Token Accounting:** Included prompt cache tokens safely in historical usage inputs calculations for correct quota deductions (PR #822)
17
35
  - **User Experience:** Removed invasive auto-opening OAuth modal loops on barren provider detailed pages (PR #820)
18
36
  - **Dependency Updates:** Bumped and locked down dependencies for development and production trees including Next.js 16.2.1, Recharts, and TailwindCSS 4.2.2 (PR #826, #827)
19
37
 
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OmniRoute API
4
- version: 3.3.5
4
+ version: 3.3.7
5
5
  description: |
6
6
  OmniRoute is a local-first AI API proxy router. It provides an OpenAI-compatible
7
7
  endpoint that routes requests to multiple AI providers with load balancing,
@@ -408,7 +408,7 @@ function convertOpenAINonStreamingToClaude(openaiResponse: JsonRecord): JsonReco
408
408
  const choiceObj = toRecord(choice);
409
409
  const messageObj = toRecord(choiceObj.message);
410
410
 
411
- const content = [];
411
+ const content: JsonRecord[] = [];
412
412
 
413
413
  let hasTextOrReasoning = false;
414
414
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omniroute/open-sse",
3
- "version": "3.3.5",
3
+ "version": "3.3.7",
4
4
  "description": "Express SSE sidecar for OmniRoute — handles streaming, protocol translation, and provider orchestration",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omniroute",
3
- "version": "3.3.6",
3
+ "version": "3.3.7",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omniroute",
9
- "version": "3.3.6",
9
+ "version": "3.3.7",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "workspaces": [
@@ -20325,7 +20325,7 @@
20325
20325
  },
20326
20326
  "open-sse": {
20327
20327
  "name": "@omniroute/open-sse",
20328
- "version": "3.3.5"
20328
+ "version": "3.3.7"
20329
20329
  }
20330
20330
  }
20331
20331
  }
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omniroute",
3
- "version": "3.3.6",
3
+ "version": "3.3.7",
4
4
  "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "جارٍ تحميل لوحة تحكم MCP...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Зареждане на таблото за управление на MCP...",
@@ -1062,7 +1062,8 @@
1062
1062
  "a2aQuickStartStep2": "Odešlete požadavky JSON-RPC na `POST /a2a` pomocí `message/send` nebo `message/stream`.",
1063
1063
  "a2aQuickStartStep3": "Sledujte a ovládejte úkoly pomocí příkazů `tasks/get` a `tasks/cancel`.",
1064
1064
  "completionsLegacy": "Completions (Zastaralé)",
1065
- "completionsLegacyDesc": "Zastaralé OpenAI text completion – akceptuje oba formáty, prompt string i messages array."
1065
+ "completionsLegacyDesc": "Zastaralé OpenAI text completion – akceptuje oba formáty, prompt string i messages array.",
1066
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1066
1067
  },
1067
1068
  "endpoints": {
1068
1069
  "tabProxy": "Koncová Proxy",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Indlæser MCP-dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "MCP-Dashboard wird geladen...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Crea un Quick Tunnel temporal de Cloudflare. La URL cambia después de cada reinicio."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Cargando el panel de MCP...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Ladataan MCP-hallintapaneelia...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Chargement du tableau de bord MCP...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -919,7 +919,8 @@
919
919
  "webSearch": "Web Search",
920
920
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
921
921
  "searchProvider": "Search Provider",
922
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
922
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
923
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
923
924
  },
924
925
  "mcpDashboard": {
925
926
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1062,7 +1062,8 @@
1062
1062
  "a2aQuickStartStep2": "`message/send` या `message/stream` का उपयोग करके JSON-RPC अनुरोधों को `POST /a2a` पर भेजें।",
1063
1063
  "a2aQuickStartStep3": "`कार्य/प्राप्त करें` और `कार्य/रद्द करें` का उपयोग करके कार्यों को ट्रैक और नियंत्रित करें।",
1064
1064
  "completionsLegacy": "पूर्णताएँ (विरासत)",
1065
- "completionsLegacyDesc": "लीगेसी ओपनएआई टेक्स्ट पूर्णताएँ - शीघ्र स्ट्रिंग और संदेश सरणी प्रारूप दोनों को स्वीकार करती हैं"
1065
+ "completionsLegacyDesc": "लीगेसी ओपनएआई टेक्स्ट पूर्णताएँ - शीघ्र स्ट्रिंग और संदेश सरणी प्रारूप दोनों को स्वीकार करती हैं",
1066
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1066
1067
  },
1067
1068
  "endpoints": {
1068
1069
  "tabProxy": "समापन बिंदु प्रॉक्सी",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Laster inn MCP-dashbordet ...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Nilo-load ang MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1023,7 +1023,8 @@
1023
1023
  "webSearch": "Web Search",
1024
1024
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1025
1025
  "searchProvider": "Search Provider",
1026
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1026
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1027
+ "cloudflaredUrlNotice": "Cria um Quick Tunnel temporário do Cloudflare. A URL muda a cada reinício."
1027
1028
  },
1028
1029
  "mcpDashboard": {
1029
1030
  "loading": "Carregando painel MCP...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "endpoints": {
1017
1018
  "tabProxy": "Endpoint Proxy",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1060,7 +1060,8 @@
1060
1060
  "a2aQuickStartStep2": "JSON-RPC isteklerini `message/send` veya `message/stream` kullanarak `POST /a2a` adresine gönderin.",
1061
1061
  "a2aQuickStartStep3": "Görevleri `tasks/get` ve `tasks/cancel` ile izleyin ve yönetin.",
1062
1062
  "completionsLegacy": "Tamamlamalar (Eski)",
1063
- "completionsLegacyDesc": "Eski OpenAI metin tamamlamaları — hem bilgi istemi dizesini hem de mesaj dizisi biçimini kabul eder"
1063
+ "completionsLegacyDesc": "Eski OpenAI metin tamamlamaları — hem bilgi istemi dizesini hem de mesaj dizisi biçimini kabul eder",
1064
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1064
1065
  },
1065
1066
  "endpoints": {
1066
1067
  "tabProxy": "Uç Nokta Proxy",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",
@@ -1011,7 +1011,8 @@
1011
1011
  "webSearch": "Web Search",
1012
1012
  "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
1013
1013
  "searchProvider": "Search Provider",
1014
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected."
1014
+ "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
1015
+ "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart."
1015
1016
  },
1016
1017
  "mcpDashboard": {
1017
1018
  "loading": "Loading MCP dashboard...",