omniroute 2.8.6 → 2.8.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 (94) 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-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/_global-error.html +2 -2
  40. package/app/.next/server/app/_global-error.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/v1/embeddings/route.js +7 -6
  48. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  49. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/chunks/[root-of-the-server]__007da72e._.js +3 -0
  62. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
  63. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
  64. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  65. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
  66. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +1 -1
  67. package/app/.next/server/chunks/[root-of-the-server]__d4563e10._.js +1 -1
  68. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  69. package/app/.next/server/chunks/[root-of-the-server]__e27a89bd._.js +1 -1
  70. package/app/.next/server/chunks/_05c48915._.js +1 -1
  71. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  72. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  73. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  74. package/app/.next/server/chunks/_5677b5e2._.js +1 -1
  75. package/app/.next/server/chunks/_68683848._.js +1 -1
  76. package/app/.next/server/chunks/_b39b1914._.js +3 -0
  77. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  78. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  79. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  80. package/app/.next/server/pages/500.html +2 -2
  81. package/app/.next/server/server-reference-manifest.js +1 -1
  82. package/app/.next/server/server-reference-manifest.json +1 -1
  83. package/app/.next/static/chunks/{353ef826fbae436d.js → 53e0c73d409ce003.js} +1 -1
  84. package/app/CHANGELOG.md +18 -0
  85. package/app/docs/openapi.yaml +1 -1
  86. package/app/open-sse/services/rateLimitManager.ts +10 -5
  87. package/app/package-lock.json +2 -2
  88. package/app/package.json +1 -1
  89. package/app/src/app/api/v1/embeddings/route.ts +33 -3
  90. package/package.json +1 -1
  91. package/app/.next/server/chunks/[root-of-the-server]__6b56b04f._.js +0 -3
  92. /package/app/.next/static/{m9BrfW8GQTdaCjvX6OgP2 → zi0Yj1AW2_CKS-WmB5ZUc}/_buildManifest.js +0 -0
  93. /package/app/.next/static/{m9BrfW8GQTdaCjvX6OgP2 → zi0Yj1AW2_CKS-WmB5ZUc}/_clientMiddlewareManifest.json +0 -0
  94. /package/app/.next/static/{m9BrfW8GQTdaCjvX6OgP2 → zi0Yj1AW2_CKS-WmB5ZUc}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--m9BrfW8GQTdaCjvX6OgP2--><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/e22b90cf374c3818.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/726579f2940c2a2f.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-858efc89e955ca00.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/e22b90cf374c3818.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\":\"m9BrfW8GQTdaCjvX6OgP2\",\"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><!--zi0Yj1AW2_CKS_WmB5ZUc--><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/e22b90cf374c3818.js"/><script src="/_next/static/chunks/3dd6d23a48e5d078.js" async=""></script><script src="/_next/static/chunks/726579f2940c2a2f.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-858efc89e955ca00.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/e22b90cf374c3818.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\":\"zi0Yj1AW2_CKS-WmB5ZUc\",\"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\": \"It6irAZ27V/qCbK4K3qDeWLzuvP4SqLUM624Jh2ArD8=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"k12LZxgILtn+ZoszIKThqwpWRY3InxyTGdjKuHTGGSc=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "It6irAZ27V/qCbK4K3qDeWLzuvP4SqLUM624Jh2ArD8="
4
+ "encryptionKey": "k12LZxgILtn+ZoszIKThqwpWRY3InxyTGdjKuHTGGSc="
5
5
  }
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.8.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:"next build","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":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",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"]}})},175696,t=>{"use strict";var e=t.i(861745),s=t.i(843476);function n({locale:t,...n}){if(!t)throw Error(void 0);return(0,s.jsx)(e.IntlProvider,{locale:t,...n})}t.s(["default",()=>n])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,804730,t=>{t.v({name:"omniroute",version:"2.8.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:"next build","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":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","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:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",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",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","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","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",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"]}})},175696,t=>{"use strict";var e=t.i(861745),s=t.i(843476);function n({locale:t,...n}){if(!t)throw Error(void 0);return(0,s.jsx)(e.IntlProvider,{locale:t,...n})}t.s(["default",()=>n])}]);
package/app/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [2.8.7] — 2026-03-20
8
+
9
+ > Sprint: Merge PR #495 (Bottleneck 429 drop), fix #496 (custom embedding providers), triage features.
10
+
11
+ ### Bug Fixes
12
+
13
+ - **Bottleneck 429 infinite wait** (PR #495 by @xandr0s): On 429, `limiter.stop({ dropWaitingJobs: true })` immediately fails all queued requests so upstream callers can trigger fallback. Limiter is deleted from Map so next request creates a fresh instance.
14
+ - **Custom embedding models unresolvable** (#496): `POST /v1/embeddings` now resolves custom embedding models from ALL provider_nodes (not just localhost). Enables models like `google/gemini-embedding-001` added via dashboard.
15
+
16
+ ### Issues Responded
17
+
18
+ - **#452** — Per-API-key request-count limits (acknowledged, on roadmap)
19
+ - **#464** — Auto-issue API keys with provider/account limits (needs more detail)
20
+ - **#488** — Auto-update model lists (acknowledged, on roadmap)
21
+ - **#496** — Custom embedding provider resolution (fixed)
22
+
23
+ ---
24
+
7
25
  ## [2.8.6] — 2026-03-20
8
26
 
9
27
  > Sprint: Merge PR #494 (MiniMax role fix), fix KIRO MITM dashboard, triage 8 issues.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OmniRoute API
4
- version: 2.8.6
4
+ version: 2.8.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,
@@ -339,14 +339,19 @@ export function updateFromHeaders(provider, connectionId, headers, status, model
339
339
  // Handle 429 — rate limited
340
340
  if (status === 429) {
341
341
  const retryAfterMs = parseResetTime(retryAfterStr) || 60000; // Default 60s
342
+ const counts = limiter.counts();
343
+ const limiterKey = `${provider}:${connectionId}`;
342
344
  console.log(
343
- `🚫 [RATE-LIMIT] ${provider}:${connectionId.slice(0, 8)} — 429 received, pausing for ${Math.ceil(retryAfterMs / 1000)}s`
345
+ `🚫 [RATE-LIMIT] ${provider}:${connectionId.slice(0, 8)} — 429 received, pausing for ${Math.ceil(retryAfterMs / 1000)}s, dropping ${counts.QUEUED} queued request(s)`
344
346
  );
345
347
 
346
- limiter.updateSettings({
347
- reservoir: 0,
348
- reservoirRefreshAmount: limit || 60,
349
- reservoirRefreshInterval: retryAfterMs,
348
+ // Stop the limiter and drop all waiting jobs so they fail immediately
349
+ // instead of hanging in the queue until reservoir refreshes (which can
350
+ // be hours for providers like Codex with long rate limit windows).
351
+ // This lets upstream callers (e.g. LiteLLM) trigger fallback to other providers.
352
+ // After stop, delete from Map so getLimiter() creates a fresh instance.
353
+ limiter.stop({ dropWaitingJobs: true }).finally(() => {
354
+ limiters.delete(limiterKey);
350
355
  });
351
356
  return;
352
357
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omniroute",
3
- "version": "2.8.6",
3
+ "version": "2.8.7",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omniroute",
9
- "version": "2.8.6",
9
+ "version": "2.8.7",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "workspaces": [
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omniroute",
3
- "version": "2.8.6",
3
+ "version": "2.8.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": {
@@ -12,6 +12,7 @@ import {
12
12
  getEmbeddingProvider,
13
13
  buildDynamicEmbeddingProvider,
14
14
  type EmbeddingProviderNodeRow,
15
+ type EmbeddingProvider,
15
16
  } from "@omniroute/open-sse/config/embeddingRegistry.ts";
16
17
  import { errorResponse } from "@omniroute/open-sse/utils/error.ts";
17
18
  import { HTTP_STATUS } from "@omniroute/open-sse/config/constants.ts";
@@ -116,9 +117,9 @@ export async function POST(request) {
116
117
  // Load local provider_nodes for embedding routing (only localhost — prevents auth bypass/SSRF)
117
118
  let dynamicProviders: ReturnType<typeof buildDynamicEmbeddingProvider>[] = [];
118
119
  try {
119
- const nodes = await getProviderNodes();
120
+ const nodes = (await getProviderNodes()) as unknown as EmbeddingProviderNodeRow[];
120
121
  dynamicProviders = (Array.isArray(nodes) ? nodes : [])
121
- .filter((n: EmbeddingProviderNodeRow) => {
122
+ .filter((n) => {
122
123
  // provider_nodes apiType is "chat" or "responses" (not "embeddings") — local OpenAI-compatible
123
124
  // backends expose /embeddings under the same base URL as chat, so we build the URL as baseUrl + /embeddings.
124
125
  if (n.apiType !== "chat" && n.apiType !== "responses") return false;
@@ -157,9 +158,38 @@ export async function POST(request) {
157
158
  }
158
159
 
159
160
  // Resolve provider config — dynamic first (local override), then hardcoded
160
- const providerConfig =
161
+ let providerConfig: EmbeddingProvider | null =
161
162
  dynamicProviders.find((dp) => dp.id === provider) || getEmbeddingProvider(provider) || null;
162
163
 
164
+ // #496: Fallback — resolve from ALL provider_nodes (not just localhost)
165
+ // This enables custom embedding models (e.g. google/gemini-embedding-001) whose
166
+ // providers have remote baseUrls. Safe because getProviderCredentials() authenticates.
167
+ if (!providerConfig) {
168
+ try {
169
+ const allNodes = (await getProviderNodes()) as unknown as EmbeddingProviderNodeRow[];
170
+ const matchingNode = (Array.isArray(allNodes) ? allNodes : []).find(
171
+ (n) =>
172
+ n.prefix === provider && (n.apiType === "chat" || n.apiType === "responses") && n.baseUrl
173
+ );
174
+ if (matchingNode) {
175
+ const baseUrl = String(matchingNode.baseUrl).replace(/\/+$/, "");
176
+ providerConfig = {
177
+ id: matchingNode.prefix,
178
+ baseUrl: `${baseUrl}/embeddings`,
179
+ authType: "apikey",
180
+ authHeader: "bearer",
181
+ models: [],
182
+ };
183
+ log.info(
184
+ "EMBED",
185
+ `Resolved custom embedding provider: ${provider} → ${providerConfig.baseUrl}`
186
+ );
187
+ }
188
+ } catch (err) {
189
+ log.error("EMBED", `Failed to resolve custom embedding provider ${provider}: ${err}`);
190
+ }
191
+ }
192
+
163
193
  if (!providerConfig) {
164
194
  return errorResponse(
165
195
  HTTP_STATUS.BAD_REQUEST,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omniroute",
3
- "version": "2.8.6",
3
+ "version": "2.8.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": {
@@ -1,3 +0,0 @@
1
- module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>p,parseSetCookie:()=>c,stringifyCookie:()=>u};for(var d in l)n(o,d,{get:l[d],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function p(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,i]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=i?i:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=p(e),{domain:i,expires:s,httponly:a,maxage:o,path:l,samesite:d,secure:u,partitioned:c,priority:f}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,v,y={name:t,value:decodeURIComponent(r),domain:i,...s&&{expires:new Date(s)},...a&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...d&&{sameSite:m.includes(g=(g=d).toLowerCase())?g:void 0},...u&&{secure:!0},...f&&{priority:h.includes(v=(v=f).toLowerCase())?v:void 0},...c&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}t.exports=((e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(o=i(t,r))||o.enumerable});return e})(n({},"__esModule",{value:!0}),o);var m=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of p(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const i=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(i)?i:function(e){if(!e)return[];var t,r,n,i,s,a=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,s=!1;l();)if(","===(r=e.charAt(o))){for(n=o,o+=1,l(),i=o;o<e.length&&"="!==(r=e.charAt(o))&&";"!==r&&","!==r;)o+=1;o<e.length&&"="===e.charAt(o)?(s=!0,o=i,a.push(e.substring(t,n)),t=o):o=n+1}else o+=1;(!s||o>=e.length)&&a.push(e.substring(t,e.length))}return a}(i)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,i=this._parsed;return i.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(i,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},785148,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},256770,e=>{"use strict";var t=e.i(814747),r=e.i(446786);let n="omniroute";function i(){try{return r.default.homedir()}catch{return process.cwd()}}function s(e){if("string"!=typeof e)return null;let r=e.trim();return r?t.default.resolve(r):null}function a(){return t.default.join(i(),`.${n}`)}function o({isCloud:e=!1}={}){let r;if(e)return"/tmp";let l=s(process.env.DATA_DIR);return l?l:(i(),(r=s(process.env.XDG_CONFIG_HOME))?t.default.join(r,n):a())}function l(e,r){return!!e&&!!r&&t.default.resolve(e)===t.default.resolve(r)}e.s(["getLegacyDotDataDir",()=>a,"isSamePath",()=>l,"resolveDataDir",()=>o])},439951,e=>{"use strict";var t=e.i(157763);function r(){try{return(0,t.getDbInstance)()}catch{return null}}function n(e={}){let t=r();if(!t)return[];let i=[],s=[];e.action&&(i.push("action = ?"),s.push(e.action)),e.actor&&(i.push("actor = ?"),s.push(e.actor));let a=i.length>0?`WHERE ${i.join(" AND ")}`:"",o=e.limit||100,l=e.offset||0;return t.prepare(`SELECT * FROM audit_log ${a} ORDER BY timestamp DESC LIMIT ? OFFSET ?`).all(...s,o,l).map(e=>({...e,details:e.details?JSON.parse(String(e.details)):null}))}parseInt(process.env.LOG_RETENTION_DAYS||"90",10);let i=new Set,s=new Map,a=!1,o=!1;for(let e of(process.env.NO_LOG_API_KEY_IDS||"").split(",").map(e=>e.trim()).filter(Boolean))i.add(e);function l(e,t){t?i.add(e):i.delete(e),s.set(e,{value:t,timestamp:Date.now()})}function d(e){if(!e)return!1;if(i.has(e))return!0;let t=function(e){let t=r();if(!t||!e||!function(e){if(a)return o;try{o=e.prepare("PRAGMA table_info(api_keys)").all().some(e=>"no_log"===e.name)}catch{o=!1}return a=!0,o}(t))return!1;let n=s.get(e);if(n&&Date.now()-n.timestamp<3e4)return n.value;try{let r=t.prepare("SELECT no_log FROM api_keys WHERE id = ?").get(e),n=!!(r&&1===Number(r.no_log));return s.set(e,{value:n,timestamp:Date.now()}),n}catch{return!1}}(e);return t&&i.add(e),t}e.s(["getAuditLog",()=>n,"isNoLog",()=>d,"setNoLog",()=>l])},677850,e=>e.a(async(t,r)=>{try{let t=await e.y("zod");e.n(t),r()}catch(e){r(e)}},!0),200392,e=>e.a(async(t,r)=>{try{var n=e.i(677850),i=t([n]);function s(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let n=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:n.map(e=>({field:e.path.join("."),message:e.message}))}}}function a(e){return!1===e.success}[n]=i.then?(await i)():i,n.z.object({password:n.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>a,"validateBody",()=>s]),r()}catch(e){r(e)}},!1),662636,e=>{"use strict";function t(e){if(!e)return"Unknown Account";let t="string"==typeof e.name&&e.name.trim()||"string"==typeof e.displayName&&e.displayName.trim()||"string"==typeof e.email&&e.email.trim();return t||("string"==typeof e.id&&e.id?`Account #${e.id.slice(0,6)}`:"Unknown Account")}e.s(["getAccountDisplayName",()=>t])},249157,e=>{"use strict";var t=e.i(706901),r=e.i(161002);e.s(["debug",()=>t.debug,"error",()=>t.error,"info",()=>t.info,"maskKey",()=>r.maskKey,"request",()=>t.request,"response",()=>t.response,"stream",()=>t.stream,"warn",()=>t.warn])},740512,e=>{"use strict";e.s(["toJsonErrorPayload",()=>function e(t,r="Upstream provider error"){let n={error:{message:r,type:"upstream_error",code:"upstream_error"}};if(t&&"object"==typeof t){let e=t.error;return"string"==typeof e?{error:{message:e,type:"upstream_error",code:"upstream_error"}}:e&&"object"==typeof e?t:{error:t}}if("string"==typeof t){let i=t.trim();if(!i)return n;try{let t=JSON.parse(i);return e(t,r)}catch{return{error:{message:i,type:"upstream_error",code:"upstream_error"}}}}return n}])},261189,e=>{"use strict";function t(e){if(!e.prefix||!e.baseUrl)throw Error("Invalid provider_node: missing prefix or baseUrl");if(e.prefix.includes("/")||e.prefix.includes(" "))throw Error(`Invalid provider_node prefix "${e.prefix}": must not contain / or spaces`);let t=e.baseUrl.replace(/\/+$/,"");return{id:e.prefix,baseUrl:`${t}/embeddings`,authType:"none",authHeader:"none",models:[]}}let r={nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]},openai:{id:"openai",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]},mistral:{id:"mistral",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}};function n(e){return r[e]||null}function i(e,t){if(!e)return{provider:null,model:null};let n=e.indexOf("/");if(n>0){for(let[t]of Object.entries(r))if(e.startsWith(t+"/"))return{provider:t,model:e.slice(t.length+1)};if(t){for(let r of t)if(e.startsWith(r.id+"/"))return{provider:r.id,model:e.slice(r.id.length+1)}}return{provider:e.slice(0,n),model:e.slice(n+1)}}for(let[t,n]of Object.entries(r))if(n.models.some(t=>t.id===e))return{provider:t,model:e};return{provider:null,model:e}}function s(){let e=[];for(let[t,n]of Object.entries(r))for(let r of n.models)e.push({id:`${t}/${r.id}`,name:r.name,provider:t,dimensions:r.dimensions});return e}e.s(["buildDynamicEmbeddingProvider",()=>t,"getAllEmbeddingModels",()=>s,"getEmbeddingProvider",()=>n,"parseEmbeddingModel",()=>i])},344448,e=>{"use strict";var t=e.i(261189);e.i(312125);var r=e.i(397506);async function n({body:e,credentials:n,log:i,resolvedProvider:s=null,resolvedModel:a=null}){let o,l,d;if(s)o=s.id,l=a,d=s;else{let r=(0,t.parseEmbeddingModel)(e.model);o=r.provider,l=r.model,d=o?(0,t.getEmbeddingProvider)(o):null}let u=Date.now(),p={model:e.model,input_count:Array.isArray(e.input)?e.input.length:1,dimensions:e.dimensions||void 0};if(!o)return{success:!1,status:400,error:`Invalid embedding model: ${e.model}. Use format: provider/model`};if(!d)return{success:!1,status:400,error:`Unknown embedding provider: ${o}`};let c={model:l,input:e.input};void 0!==e.dimensions&&(c.dimensions=e.dimensions),void 0!==e.encoding_format&&(c.encoding_format=e.encoding_format);let m={"Content-Type":"application/json"},h="none"===d.authType?null:n?.apiKey||n?.accessToken;h&&("bearer"===d.authHeader?m.Authorization=`Bearer ${h}`:"x-api-key"===d.authHeader&&(m["x-api-key"]=h)),i&&i.info("EMBED",`${o}/${l} | input: ${Array.isArray(e.input)?e.input.length+" items":"1 item"}`);try{let e=await fetch(d.baseUrl,{method:"POST",headers:m,body:JSON.stringify(c)});if(!e.ok){let t=await e.text();return i&&i.error("EMBED",`${o} error ${e.status}: ${t.slice(0,200)}`),(0,r.saveCallLog)({method:"POST",path:"/v1/embeddings",status:e.status,model:`${o}/${l}`,provider:o,duration:Date.now()-u,error:t.slice(0,500),requestBody:p}).catch(()=>{}),{success:!1,status:e.status,error:t}}let t=await e.json();return(0,r.saveCallLog)({method:"POST",path:"/v1/embeddings",status:200,model:`${o}/${l}`,provider:o,duration:Date.now()-u,tokens:{prompt_tokens:t.usage?.prompt_tokens||t.usage?.total_tokens||0,completion_tokens:0},requestBody:p,responseBody:{usage:t.usage||null,object:"list",data_count:t.data?.length||0}}).catch(()=>{}),{success:!0,data:{object:"list",data:t.data||t,model:`${o}/${l}`,usage:t.usage||{prompt_tokens:0,total_tokens:0}}}}catch(e){return i&&i.error("EMBED",`${o} fetch error: ${e.message}`),(0,r.saveCallLog)({method:"POST",path:"/v1/embeddings",status:502,model:`${o}/${l}`,provider:o,duration:Date.now()-u,error:e.message,requestBody:p}).catch(()=>{}),{success:!1,status:502,error:`Embedding provider error: ${e.message}`}}}e.s(["handleEmbedding",()=>n])},532400,e=>e.a(async(t,r)=>{try{var n=e.i(224010),i=e.i(344448),s=e.i(287726),a=e.i(261189),o=e.i(719201),l=e.i(16023),d=e.i(706901),u=e.i(249157),p=e.i(740512),c=e.i(478847),m=e.i(676088),h=e.i(200392);e.i(245272);var f=e.i(542949),g=e.i(385498),v=t([m,h]);async function y(){return new Response(null,{headers:{"Access-Control-Allow-Origin":n.CORS_ORIGIN,"Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function b(){let e=(0,a.getAllEmbeddingModels)(),t=Math.floor(Date.now()/1e3),r=e.map(e=>({id:e.id,object:"model",created:t,owned_by:e.provider,type:"embedding",dimensions:e.dimensions}));try{let e=await (0,f.getAllCustomModels)();for(let[n,i]of Object.entries(e))if(Array.isArray(i))for(let e of i){if(!e?.id||!Array.isArray(e.supportedEndpoints)||!e.supportedEndpoints.includes("embeddings"))continue;let i=`${n}/${e.id}`;r.some(e=>e.id===i)||r.push({id:i,object:"model",created:t,owned_by:n,type:"embedding",dimensions:null})}}catch{}return new Response(JSON.stringify({object:"list",data:r}),{headers:{"Content-Type":"application/json"}})}async function E(e){let t;try{t=await e.json()}catch{return d.warn("EMBED","Invalid JSON body"),(0,o.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}let r=(0,h.validateBody)(m.v1EmbeddingsSchema,t);if((0,h.isValidationFailure)(r))return(0,o.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,r.error.message);let n=r.data;if("true"===process.env.REQUIRE_API_KEY){let t=(0,s.extractApiKey)(e);if(!t)return(0,o.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,s.isValidApiKey)(t))return(0,o.errorResponse)(l.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}let f=await (0,c.enforceApiKeyPolicy)(e,n.model);if(f.rejection)return f.rejection;let v=[];try{let e=await (0,g.getProviderNodes)();v=(Array.isArray(e)?e:[]).filter(e=>{if("chat"!==e.apiType&&"responses"!==e.apiType)return!1;try{let t=new URL(e.baseUrl).hostname;return"localhost"===t||"127.0.0.1"===t||"::1"===t||"[::1]"===t}catch{return!1}}).map(e=>{try{return(0,a.buildDynamicEmbeddingProvider)(e)}catch(t){return d.error("EMBED",`Skipping invalid provider_node ${e.prefix}: ${t}`),null}}).filter(e=>null!==e)}catch(e){d.error("EMBED",`Failed to load provider_nodes for embeddings: ${e}`)}let{provider:y,model:b}=(0,a.parseEmbeddingModel)(n.model,v);if(!y)return(0,o.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`Invalid embedding model: ${n.model}. Use format: provider/model`);let E=v.find(e=>e.id===y)||(0,a.getEmbeddingProvider)(y)||null;if(!E)return(0,o.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`Unknown embedding provider: ${y}. No matching hardcoded or local provider found.`);let _=null;if(E&&"none"!==E.authType&&!(_=await (0,s.getProviderCredentials)(y)))return(0,o.errorResponse)(l.HTTP_STATUS.BAD_REQUEST,`No credentials for embedding provider: ${y}`);let x=await (0,i.handleEmbedding)({body:n,credentials:_,log:u,resolvedProvider:E,resolvedModel:b});if(x.success)return _&&await (0,s.clearRecoveredProviderState)(_),new Response(JSON.stringify(x.data),{status:200,headers:{"Content-Type":"application/json"}});let w=(0,p.toJsonErrorPayload)(x.error,"Embedding provider error");return new Response(JSON.stringify(w),{status:x.status,headers:{"Content-Type":"application/json"}})}[m,h]=v.then?(await v)():v,e.s(["GET",()=>b,"OPTIONS",()=>y,"POST",()=>E]),r()}catch(e){r(e)}},!1),559282,e=>e.a(async(t,r)=>{try{var n=e.i(747909),i=e.i(174017),s=e.i(996250),a=e.i(759756),o=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),p=e.i(487718),c=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),v=e.i(10372),y=e.i(193695);e.i(52474);var b=e.i(600220),E=e.i(532400),_=t([E]);[E]=_.then?(await _)():_;let A=new n.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/v1/embeddings/route",pathname:"/api/v1/embeddings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/embeddings/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:R,workUnitAsyncStorage:T,serverHooks:S}=A;function x(){return(0,s.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:T})}async function w(e,t,r){A.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/v1/embeddings/route";n=n.replace(/\/index$/,"")||"/";let s=await A.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,params:_,nextConfig:x,parsedUrl:w,isDraftMode:R,prerenderManifest:T,routerServerContext:S,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,resolvedPathname:k,clientReferenceManifest:C,serverActionsManifest:D}=s,$=(0,d.normalizeAppPath)(n),U=!!(T.dynamicRoutes[$]||T.routes[k]),N=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,w,!1):t.end("This page could not be found"),null);if(U&&!R){let e=!!T.routes[k],t=T.dynamicRoutes[$];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await N();throw new y.NoFallbackError}}let j=null;!U||A.isDev||R||(j=k,j="/index"===j?"/":j);let I=!0===A.isDev||!U,M=U&&!I;D&&C&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:C,serverActionsManifest:D});let H=e.method||"GET",q=(0,o.getTracer)(),B=q.getActiveScopeSpan(),L={params:_,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>A.onRequestError(e,t,n,i,S)},sharedContext:{buildId:E}},K=new u.NodeNextRequest(e),F=new u.NodeNextResponse(t),G=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${H} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${n}`)}),l=!!(0,a.getRequestMeta)(e,"minimalMode"),d=async a=>{var o,d;let u=async({previousCacheEntry:i})=>{try{if(!l&&O&&P&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(a);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=L.renderOpts.collectedTags;if(!U)return await (0,h.sendResponse)(K,F,n,L.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[v.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,i=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,S),t}},p=await A.handleResponse({req:e,nextConfig:x,cacheKey:j,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!U)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(d=p.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",O?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return l&&U||c.delete(v.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(p.cacheControl)),await (0,h.sendResponse)(K,F,new Response(p.value.body,{headers:c,status:p.value.status||200})),null};B?await d(B):await q.withPropagatedContext(e.headers,()=>q.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${n}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},d))}catch(t){if(t instanceof y.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:$,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,S),U)throw t;return await (0,h.sendResponse)(K,F,new Response(null,{status:500})),null}}e.s(["handler",()=>w,"patchFetch",()=>x,"routeModule",()=>A,"serverHooks",()=>S,"workAsyncStorage",()=>R,"workUnitAsyncStorage",()=>T]),r()}catch(e){r(e)}},!1),605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_83220848._.js"].map(t=>e.l(t))).then(()=>t(969738)))},606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__6b56b04f._.js.map