omniroute 3.4.7 → 3.4.8

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 (256) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +3 -3
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/audit/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cache/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/media/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/memory/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/providers/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/skills/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/400/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/_global-error.html +1 -1
  39. package/app/.next/server/app/_global-error.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  45. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/system/version/route.js.nft.json +1 -1
  47. package/app/.next/server/app/api/v1/api/chat/route.js +15 -15
  48. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  49. package/app/.next/server/app/api/v1/audio/speech/route.js +11 -11
  50. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  51. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +5 -5
  52. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/v1/chat/completions/route.js +14 -14
  54. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/v1/completions/route.js +14 -14
  56. package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/v1/images/generations/route.js +10 -10
  58. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/v1/messages/route.js +16 -16
  60. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/v1/models/route.js +5 -5
  62. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/v1/moderations/route.js +9 -9
  64. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/v1/music/generations/route.js +10 -10
  66. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +16 -16
  67. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  68. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +7 -7
  69. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +10 -10
  71. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/v1/rerank/route.js +9 -9
  73. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/v1/responses/[...path]/route.js +16 -16
  75. package/app/.next/server/app/api/v1/responses/[...path]/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/v1/responses/route.js +16 -16
  77. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/v1/route.js +5 -5
  79. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/v1/search/analytics/route.js +7 -7
  81. package/app/.next/server/app/api/v1/search/analytics/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/v1/videos/generations/route.js +10 -10
  83. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +14 -14
  84. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  85. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  97. package/app/.next/server/chunks/{[root-of-the-server]__0nxyldc._.js → [root-of-the-server]__0-zca2p._.js} +1 -1
  98. package/app/.next/server/chunks/{[root-of-the-server]__0urvs3.._.js → [root-of-the-server]__01hbf~_._.js} +1 -1
  99. package/app/.next/server/chunks/[root-of-the-server]__01ojood._.js +1 -1
  100. package/app/.next/server/chunks/[root-of-the-server]__030_-af._.js +1 -1
  101. package/app/.next/server/chunks/{[root-of-the-server]__0j~-yu1._.js → [root-of-the-server]__03l6k3k._.js} +1 -1
  102. package/app/.next/server/chunks/{[root-of-the-server]__01b8762._.js → [root-of-the-server]__05~jdzu._.js} +1 -1
  103. package/app/.next/server/chunks/{[root-of-the-server]__07eee_s._.js → [root-of-the-server]__08~6j3q._.js} +1 -1
  104. package/app/.next/server/chunks/[root-of-the-server]__0a8ozdb._.js +1 -1
  105. package/app/.next/server/chunks/[root-of-the-server]__0bd4ccn._.js +2 -2
  106. package/app/.next/server/chunks/{[root-of-the-server]__0_a98vk._.js → [root-of-the-server]__0d6bqbw._.js} +1 -1
  107. package/app/.next/server/chunks/{[root-of-the-server]__0_c_.ye._.js → [root-of-the-server]__0f2rz58._.js} +1 -1
  108. package/app/.next/server/chunks/[root-of-the-server]__0jp3yj4._.js +1 -1
  109. package/app/.next/server/chunks/{[root-of-the-server]__06stuoz._.js → [root-of-the-server]__0jvnjwl._.js} +1 -1
  110. package/app/.next/server/chunks/[root-of-the-server]__0mj7x5~._.js +1 -1
  111. package/app/.next/server/chunks/[root-of-the-server]__0n-~kvf._.js +1 -1
  112. package/app/.next/server/chunks/{[root-of-the-server]__0-y3k-t._.js → [root-of-the-server]__0nzi7ym._.js} +1 -1
  113. package/app/.next/server/chunks/[root-of-the-server]__0ofxxzh._.js +2 -2
  114. package/app/.next/server/chunks/{[root-of-the-server]__0uu3t5x._.js → [root-of-the-server]__0pd~24c._.js} +2 -2
  115. package/app/.next/server/chunks/[root-of-the-server]__0s1dq3.._.js +1 -1
  116. package/app/.next/server/chunks/[root-of-the-server]__0tsl88m._.js +1 -1
  117. package/app/.next/server/chunks/[root-of-the-server]__0u5-mph._.js +1 -1
  118. package/app/.next/server/chunks/{[root-of-the-server]__0vi3.0k._.js → [root-of-the-server]__0uryxsh._.js} +1 -1
  119. package/app/.next/server/chunks/{[root-of-the-server]__0lwc40h._.js → [root-of-the-server]__0v1kwmx._.js} +1 -1
  120. package/app/.next/server/chunks/{[root-of-the-server]__04y3b4q._.js → [root-of-the-server]__0vt49c9._.js} +1 -1
  121. package/app/.next/server/chunks/{[root-of-the-server]__0pylsu2._.js → [root-of-the-server]__0vy97gy._.js} +2 -2
  122. package/app/.next/server/chunks/{[root-of-the-server]__0~s45~f._.js → [root-of-the-server]__0wd~o5b._.js} +1 -1
  123. package/app/.next/server/chunks/[root-of-the-server]__0x5yxjy._.js +2 -2
  124. package/app/.next/server/chunks/{[root-of-the-server]__0vmajf6._.js → [root-of-the-server]__0x_hqjb._.js} +1 -1
  125. package/app/.next/server/chunks/[root-of-the-server]__0~0hd.s._.js +2 -2
  126. package/app/.next/server/chunks/{[root-of-the-server]__10~-ypp._.js → [root-of-the-server]__11ptf~3._.js} +1 -1
  127. package/app/.next/server/chunks/_00.pgsp._.js +1 -1
  128. package/app/.next/server/chunks/_013gowh._.js +1 -1
  129. package/app/.next/server/chunks/{_0ucpa5q._.js → _02._8wx._.js} +1 -1
  130. package/app/.next/server/chunks/_036lxbr._.js +1 -1
  131. package/app/.next/server/chunks/_05reh6o._.js +1 -1
  132. package/app/.next/server/chunks/{_0-~thzo._.js → _083_x9z._.js} +2 -2
  133. package/app/.next/server/chunks/_083a5zg._.js +1 -1
  134. package/app/.next/server/chunks/{_004r3br._.js → _08cwbl2._.js} +2 -2
  135. package/app/.next/server/chunks/_0a3.3sc._.js +1 -1
  136. package/app/.next/server/chunks/_0c.abwr._.js +1 -1
  137. package/app/.next/server/chunks/_0dfpto1._.js +1 -1
  138. package/app/.next/server/chunks/_0due8oe._.js +1 -1
  139. package/app/.next/server/chunks/_0h-j8c2._.js +1 -1
  140. package/app/.next/server/chunks/_0vx-r0i._.js +2 -2
  141. package/app/.next/server/chunks/_0w4f3bm._.js +1 -1
  142. package/app/.next/server/chunks/_10.rw9f._.js +1 -1
  143. package/app/.next/server/chunks/open-sse_0dawtxk._.js +2 -2
  144. package/app/.next/server/chunks/open-sse_0p~.88y._.js +1 -1
  145. package/app/.next/server/chunks/open-sse_0sthby3._.js +1 -1
  146. package/app/.next/server/chunks/src_0cbm0~g._.js +1 -1
  147. package/app/.next/server/chunks/src_shared_utils_apiKey_ts_0gzf59_._.js +1 -1
  148. package/app/.next/server/chunks/src_shared_utils_apiKey_ts_12~h.oz._.js +1 -1
  149. package/app/.next/server/chunks/ssr/_008ht2n._.js +1 -1
  150. package/app/.next/server/chunks/ssr/_0oo1f90._.js +1 -1
  151. package/app/.next/server/chunks/ssr/src_04s-8a5._.js +1 -1
  152. package/app/.next/server/chunks/ssr/src_0vjsxxr._.js +1 -1
  153. package/app/.next/server/chunks/ssr/src_shared_utils_apiKey_ts_0l8g1z8._.js +1 -1
  154. package/app/.next/server/middleware-build-manifest.js +3 -3
  155. package/app/.next/server/pages/500.html +1 -1
  156. package/app/.next/server/server-reference-manifest.js +1 -1
  157. package/app/.next/server/server-reference-manifest.json +1 -1
  158. package/app/.next/static/chunks/0ipwpwjb2g0uv.js +1 -0
  159. package/app/.next/static/chunks/0~c--kcvaumm~.js +1 -0
  160. package/app/.next/static/chunks/{02q7h~xz7j6i3.js → 0~v1trn07bitv.js} +1 -1
  161. package/app/CHANGELOG.md +12 -0
  162. package/app/bin/reset-password.mjs +3 -1
  163. package/app/docs/openapi.yaml +1 -1
  164. package/app/open-sse/config/registryUtils.ts +1 -0
  165. package/app/open-sse/config/videoRegistry.ts +1 -3
  166. package/app/open-sse/executors/antigravity.ts +22 -12
  167. package/app/open-sse/executors/gemini-cli.ts +3 -1
  168. package/app/open-sse/executors/qoder.ts +1 -8
  169. package/app/open-sse/handlers/audioSpeech.ts +1 -0
  170. package/app/open-sse/handlers/chatCore.ts +2 -1
  171. package/app/open-sse/handlers/embeddings.ts +1 -0
  172. package/app/open-sse/handlers/imageGeneration.ts +6 -2
  173. package/app/open-sse/handlers/musicGeneration.ts +9 -2
  174. package/app/open-sse/handlers/search.ts +1 -0
  175. package/app/open-sse/handlers/videoGeneration.ts +11 -3
  176. package/app/open-sse/mcp-server/index.ts +0 -1
  177. package/app/open-sse/package.json +1 -1
  178. package/app/open-sse/services/claudeCodeCompatible.ts +2 -2
  179. package/app/open-sse/services/modelCapabilities.ts +3 -4
  180. package/app/open-sse/services/qoderCli.ts +5 -2
  181. package/app/open-sse/services/tokenRefresh.ts +3 -1
  182. package/app/open-sse/services/usage.ts +13 -9
  183. package/app/open-sse/services/workflowFSM.ts +298 -61
  184. package/app/open-sse/translator/index.ts +5 -1
  185. package/app/open-sse/translator/response/gemini-to-openai.ts +5 -1
  186. package/app/open-sse/utils/progressTracker.ts +4 -1
  187. package/app/open-sse/utils/stream.ts +7 -1
  188. package/app/open-sse/utils/streamPayloadCollector.ts +5 -1
  189. package/app/package-lock.json +3 -3
  190. package/app/package.json +1 -1
  191. package/app/scripts/check-route-validation.mjs +3 -1
  192. package/app/scripts/i18n/apply-priority-overrides.mjs +7 -1
  193. package/app/scripts/prepublish.mjs +2 -2
  194. package/app/scripts/run-protocol-clients-tests.mjs +7 -1
  195. package/app/src/app/(dashboard)/dashboard/analytics/components/DiversityScoreCard.tsx +1 -1
  196. package/app/src/app/(dashboard)/dashboard/auto-combo/page.tsx +0 -1
  197. package/app/src/app/(dashboard)/dashboard/media/MediaPageClient.tsx +9 -3
  198. package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +25 -23
  199. package/app/src/app/(dashboard)/dashboard/search-tools/components/SearchHistory.tsx +3 -1
  200. package/app/src/app/api/auth/status/route.ts +1 -3
  201. package/app/src/app/api/mcp/sse/route.ts +2 -2
  202. package/app/src/app/api/mcp/status/route.ts +1 -2
  203. package/app/src/app/api/mcp/stream/route.ts +5 -3
  204. package/app/src/app/api/openapi/spec/route.ts +4 -1
  205. package/app/src/app/api/openapi/try/route.ts +4 -1
  206. package/app/src/app/api/providers/[id]/models/route.ts +4 -4
  207. package/app/src/app/api/providers/[id]/sync-models/route.ts +9 -3
  208. package/app/src/app/api/settings/auto-disable-accounts/route.ts +6 -1
  209. package/app/src/app/api/skills/[id]/route.ts +4 -1
  210. package/app/src/app/api/v1/issues/report/route.ts +9 -1
  211. package/app/src/app/api/v1beta/models/route.ts +8 -6
  212. package/app/src/app/api/webhooks/[id]/route.ts +9 -7
  213. package/app/src/domain/fallbackPolicy.ts +0 -1
  214. package/app/src/domain/modelAvailability.ts +0 -1
  215. package/app/src/domain/providerExpiration.ts +2 -6
  216. package/app/src/lib/db/models.ts +23 -13
  217. package/app/src/lib/evals/evalRunner.ts +0 -1
  218. package/app/src/lib/evals/scheduler.ts +2 -6
  219. package/app/src/lib/oauth/services/antigravity.ts +6 -1
  220. package/app/src/lib/oauth/services/kiro.ts +12 -2
  221. package/app/src/lib/oauth/services/oauth.ts +10 -2
  222. package/app/src/lib/oauth/utils/server.ts +4 -1
  223. package/app/src/lib/plugins/index.ts +2 -8
  224. package/app/src/lib/usageAnalytics.ts +5 -1
  225. package/app/src/mitm/manager.js +1 -1
  226. package/app/src/mitm/manager.ts +1 -1
  227. package/app/src/shared/components/Button.tsx +0 -1
  228. package/app/src/shared/components/Card.tsx +0 -2
  229. package/app/src/shared/components/FilterBar.tsx +4 -12
  230. package/app/src/shared/components/Input.tsx +1 -1
  231. package/app/src/shared/components/Modal.tsx +0 -1
  232. package/app/src/shared/components/NotificationToast.tsx +1 -3
  233. package/app/src/shared/components/Select.tsx +1 -1
  234. package/app/src/shared/components/Sidebar.tsx +3 -3
  235. package/app/src/shared/components/ThemeToggle.tsx +7 -1
  236. package/app/src/shared/constants/cliCompatProviders.ts +0 -1
  237. package/app/src/shared/constants/errorCodes.ts +114 -19
  238. package/app/src/shared/utils/apiKey.ts +2 -4
  239. package/app/src/shared/utils/fetchTimeout.ts +0 -1
  240. package/app/src/shared/utils/inputSanitizer.ts +8 -4
  241. package/app/src/shared/utils/requestTimeout.ts +5 -1
  242. package/app/src/sse/handlers/chat.ts +1 -0
  243. package/app/src/sse/services/auth.ts +8 -3
  244. package/app/src/sse/services/streamState.ts +5 -1
  245. package/app/src/store/notificationStore.ts +3 -7
  246. package/app/tests/unit/t20-t22-provider-headers.test.mjs +3 -1
  247. package/bin/reset-password.mjs +3 -1
  248. package/open-sse/mcp-server/__tests__/glmCodingProviderConfig.test.ts +5 -1
  249. package/open-sse/mcp-server/index.ts +0 -1
  250. package/package.json +1 -1
  251. package/app/.next/server/chunks/_0-jnvci._.js +0 -19
  252. package/app/.next/static/chunks/0l88mho31mflv.js +0 -1
  253. package/app/.next/static/chunks/0wt-4zl7_gil8.js +0 -1
  254. /package/app/.next/static/{ri1SkwBU-ygQ2qIDe8jf2 → 1dZBzAZ8QsddVCQRQtqjg}/_buildManifest.js +0 -0
  255. /package/app/.next/static/{ri1SkwBU-ygQ2qIDe8jf2 → 1dZBzAZ8QsddVCQRQtqjg}/_clientMiddlewareManifest.js +0 -0
  256. /package/app/.next/static/{ri1SkwBU-ygQ2qIDe8jf2 → 1dZBzAZ8QsddVCQRQtqjg}/_ssgManifest.js +0 -0
@@ -2,6 +2,6 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
2
2
  Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return a}})},858235,e=>{"use strict";var t=e.i(254799);function r(e){let r=(0,t.randomUUID)(),a=e.type||(e.status>=500?"server_error":404===e.status?"not_found":409===e.status?"conflict":"invalid_request");return Response.json({error:{message:e.message,type:a,details:e.details},requestId:r},{status:e.status})}e.s(["createErrorResponse",0,r,"createErrorResponseFromUnknown",0,function(e,t="Unexpected server error"){return r({status:Number(e?.status)||500,message:"string"==typeof e?.message?e.message:t,type:e?.type,details:e?.details})}])},724999,e=>{"use strict";var t=e.i(235328),r=e.i(858235);async function a(e){return!await (0,t.isAuthRequired)()||await (0,t.isAuthenticated)(e)?null:(0,r.createErrorResponse)({status:401,message:"Authentication required",type:"invalid_request"})}e.s(["requireManagementAuth",0,a])},28065,(e,t,r)=>{t.exports=e.x("stream/promises",()=>require("stream/promises"))},64634,e=>{"use strict";var t=e.i(13985);let r=new Map;async function a(e){let t,r,a=await fetch(e,{headers:(t={Accept:"application/vnd.github+json"},(r=process.env.GITHUB_TOKEN)&&(t.Authorization=`Bearer ${r}`),t),signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error(`GitHub API ${a.status}: ${e}`);return a.json()}async function n(e){let t=r.get(e);if(t&&Date.now()-t.ts<3e5)return t.data;let n=await a(e);return r.set(e,{data:n,ts:Date.now()}),n}function i(e){return{tag:e.tag_name,version:e.tag_name.replace(/^v/,""),assets:(e.assets||[]).map(e=>({name:e.name,url:e.browser_download_url,size:e.size})),publishedAt:e.published_at,body:e.body||""}}async function o(){return i(await n("https://api.github.com/repos/router-for-me/CLIProxyAPI/releases/latest"))}async function s(e){let t=e.startsWith("v")?e:`v${e}`;try{let e=await n(`https://api.github.com/repos/router-for-me/CLIProxyAPI/releases/tags/${t}`);return i(e)}catch{return null}}async function l(e){let t=e.startsWith("v")?e:`v${e}`,r=`https://github.com/router-for-me/CLIProxyAPI/releases/download/${t}/checksums.txt`;try{let e=await fetch(r,{signal:AbortSignal.timeout(1e4)});if(!e.ok)return new Map;let t=await e.text(),a=new Map;for(let e of t.split("\n")){let t=e.trim().split(/\s+/);t.length>=2&&a.set(t[1],t[0])}return a}catch{return new Map}}var c=e.i(924868),u=e.i(522734),d=e.i(814747),p=e.i(446786),f=e.i(254799),h=e.i(28065),y=e.i(233405);let m=(0,e.i(224361).promisify)(y.execFile),g=process.env.DATA_DIR||d.default.join(p.default.homedir(),".omniroute");async function w(e,t,r){let a=await fetch(e,{signal:r});if(!a.ok||!a.body)throw Error(`Download failed: ${a.status}`);let n=u.default.createWriteStream(t);await (0,h.pipeline)(a.body,n)}async function v(e,t){await m("tar",["xzf",e,"-C",t])}async function _(e,t){await m("unzip",["-o",e,"-d",t])}async function x(e,t){let r=f.default.createHash("sha256");return await new Promise((t,a)=>{let n=(0,u.createReadStream)(e);n.on("data",e=>r.update(e)),n.on("end",t),n.on("error",a)}),r.digest("hex").toLowerCase()===t.toLowerCase()}async function A(e,t,r){let a=await s(e);if(!a)throw Error(`Version ${e} not found`);let{platform:n,arch:i}={platform:(process.platform,"linux"),arch:(process.arch,"amd64")},o=`CLIProxyAPI_${a.version}_${n}_${i}${"windows"===n?".zip":".tar.gz"}`,p=a.assets.find(e=>e.name===o);if(!p)throw Error(`No asset for ${n}/${i}`);let f=d.default.join(t,`cliproxyapi-${e}`);await c.default.mkdir(f,{recursive:!0});let h=d.default.join(f,o);await w(p.url,h,r);let y=await l(e);if(y.size>0){let e=y.get(o);if(e&&!await x(h,e))throw await c.default.unlink(h),Error(`SHA256 checksum mismatch for ${o}`)}"windows"===n?await _(h,f):await v(h,f),await c.default.unlink(h).catch(()=>{});let m=function(e){for(let t of["cli-proxy-api","cli-proxy-api.exe","CLIProxyAPI","CLIProxyAPI.exe"])if(u.default.existsSync(d.default.join(e,t)))return d.default.join(e,t);return null}(f);if(!m)throw Error("Binary not found in extracted archive");return await c.default.chmod(m,493),m}async function R(e,t){let r=d.default.join(t||g,"bin");await c.default.mkdir(r,{recursive:!0});let a=await A(e,r),n=d.default.join(r,"cliproxyapi");try{await c.default.unlink(n)}catch{}return await c.default.symlink(a,n),n}async function S(e){let t=d.default.join(e||g,"bin","cliproxyapi");try{let e=await c.default.realpath(t);return u.default.existsSync(e)?e:null}catch{return null}}async function E(e,t,r){await c.default.mkdir(e,{recursive:!0});let a=d.default.join(e,"config.yaml"),n=`port: ${t}
3
3
  host: 127.0.0.1
4
4
  log_level: warn
5
- `;return await c.default.writeFile(a,n),a}async function b(e,r,a){let n=await (0,t.getVersionManagerTool)("cliproxyapi");if(n?.pid&&I(n.pid))return{pid:n.pid,port:n.port};let i=r||8317,o=a||process.env.CLIPROXYAPI_CONFIG_DIR||d.default.join(p.default.homedir(),".cli-proxy-api");await E(o,i);let s=(0,y.spawn)(e,["-c",d.default.join(o,"config.yaml")],{detached:!1,stdio:["ignore","pipe","pipe"],env:{...process.env}});s.stdout?.on("data",()=>{}),s.stderr?.on("data",()=>{}),s.on("error",async e=>{await (0,t.setToolStatus)("cliproxyapi","error",void 0,e.message)}),s.on("exit",async e=>{0!==e&&null!==e&&await (0,t.setToolStatus)("cliproxyapi","stopped",void 0,`Process exited with code ${e}`)});let l=s.pid;return await (0,t.setToolStatus)("cliproxyapi","running",l),{pid:l,port:i}}function I(e){try{return process.kill(e,0),!0}catch{return!1}}function T(e){return new Promise(t=>{if(!I(e))return void t();try{process.kill(e,"SIGTERM")}catch{t();return}let r=setTimeout(()=>{try{process.kill(e,"SIGKILL")}catch{}clearInterval(a),t()},5e3),a=setInterval(()=>{I(e)||(clearTimeout(r),clearInterval(a),t())},200)})}async function P(e,t,r,a){return a&&(await T(a),await new Promise(e=>setTimeout(e,500))),b(e,t,r)}let O=new Map;async function C(e,t){let r=Date.now();try{let a=await fetch(`${e}${t||"/v1/models"}`,{signal:AbortSignal.timeout(5e3),headers:{Authorization:"Bearer omniroute-internal"}}),n=Date.now()-r;if(!a.ok)return{healthy:!1,latency:n,modelCount:0,error:`HTTP ${a.status}`};let i=await a.json(),o=Array.isArray(i.data)?i.data.length:0;return{healthy:!0,latency:n,modelCount:o,error:null}}catch(e){return{healthy:!1,latency:Date.now()-r,modelCount:0,error:e instanceof Error?e.message:String(e)}}}function k(e,r,a=3e4,n){j(e);let i=async()=>{let a=(await C(r,n)).healthy?"healthy":"unhealthy";await (0,t.updateToolHealth)(e,a).catch(()=>{})};i();let o=setInterval(i,a);O.set(e,o)}function j(e){let t=O.get(e);t&&(clearInterval(t),O.delete(e))}async function J(e,r){let a=r||(await o()).version,n=await R(a);return await (0,t.upsertVersionManagerTool)({tool:e,installedVersion:a,binaryPath:n,status:"installed"}),{installedVersion:a,binaryPath:n}}async function W(e){let r=await (0,t.getVersionManagerTool)(e),a=r?.binaryPath||await S();if(!a)throw Error(`No binary found for ${e}. Run installTool('${e}') or set binaryPath in version manager.`);let{pid:n,port:i}=await b(a,r?.port||void 0),o=`http://127.0.0.1:${i}`;return k(e,o),{pid:n,port:i,health:await C(o)}}async function N(e){let r=await (0,t.getVersionManagerTool)(e);j(e),r?.pid&&await T(r.pid),await (0,t.setToolStatus)(e,"stopped")}async function D(e){let r=await (0,t.getVersionManagerTool)(e),a=r?.binaryPath||await S();if(!a)throw Error(`No binary found for ${e}`);let{pid:n,port:i}=await P(a,r?.port||void 0,void 0,r?.pid||void 0),o=`http://127.0.0.1:${i}`;return O.has(e)&&j(e),k(e,o),{pid:n,port:i}}async function U(e){r.clear();let a=(await o()).version,n=await (0,t.getVersionManagerTool)(e),i=n?.installedVersion||null;return i?{current:i,latest:a,updateAvailable:i!==a}:{current:null,latest:a,updateAvailable:!0}}e.s(["checkForUpdates",0,U,"installTool",0,J,"restartTool",0,D,"startTool",0,W,"stopTool",0,N],64634)},499747,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),c=e.i(487718),u=e.i(995169),d=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),y=e.i(10372),m=e.i(193695);e.i(820232);var g=e.i(600220),w=e.i(745015),v=e.i(89171);e.i(64634);var _=e.i(13985),x=e.i(724999);async function A(e){let t=await (0,x.requireManagementAuth)(e);if(t)return t;try{let e=await (0,_.getVersionManagerStatus)();return v.NextResponse.json(e)}catch(e){return console.error("[version-manager] status error:",e),v.NextResponse.json({error:"Failed to get status"},{status:500})}}(0,e.i(195975).ensureServerEntryExports)([A]),(0,w.registerServerReference)(A,"40478aad2a2eaf0595c1daf7520eca1a35aca9eaa9",null),e.s(["GET",0,A],320440);var R=e.i(320440);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version-manager/status/route",pathname:"/api/version-manager/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/version-manager/status/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:b,serverHooks:I}=S;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/version-manager/status/route";w=w.replace(/\/index$/,"")||"/";let v=await S.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,params:x,nextConfig:A,parsedUrl:R,isDraftMode:E,prerenderManifest:b,routerServerContext:I,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:k}=v,j=(0,s.normalizeAppPath)(w),J=!!(b.dynamicRoutes[j]||b.routes[O]),W=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,R,!1):t.end("This page could not be found"),null);if(J&&!E){let e=!!b.routes[O],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await W();throw new m.NoFallbackError}}let N=null;!J||S.isDev||E||(N="/index"===(N=O)?"/":N);let D=!0===S.isDev||!J,U=J&&!D;k&&C&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:C,serverActionsManifest:k});let $=e.method||"GET",M=(0,i.getTracer)(),H=M.getActiveScopeSpan(),L=!!(null==I?void 0:I.isWrappedByNextServer),q=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,A,b,q);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let B={params:x,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:V,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>S.onRequestError(e,t,a,n,I)},sharedContext:{buildId:_}},F=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let n,o=async e=>S.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${$} ${w}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:r})=>{try{if(!q&&T&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=B.renderOpts.collectedTags;if(!J)return await (0,p.sendResponse)(F,K,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,I),t}},c=await S.handleResponse({req:e,nextConfig:A,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:q});if(!J)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(s=c.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});q||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return q&&J||u.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(F,K,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};L&&H?await s(H):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},s),void 0,!L))}catch(t){if(t instanceof m.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,I),J)throw t;return await (0,p.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,I,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,b],499747)},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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
5
+ `;return await c.default.writeFile(a,n),a}async function b(e,r,a){let n=await (0,t.getVersionManagerTool)("cliproxyapi");if(n?.pid&&I(n.pid))return{pid:n.pid,port:n.port};let i=r||8317,o=a||process.env.CLIPROXYAPI_CONFIG_DIR||d.default.join(p.default.homedir(),".cli-proxy-api");await E(o,i);let s=(0,y.spawn)(e,["-c",d.default.join(o,"config.yaml")],{detached:!1,stdio:["ignore","pipe","pipe"],env:{...process.env}});s.stdout?.on("data",()=>{}),s.stderr?.on("data",()=>{}),s.on("error",async e=>{await (0,t.setToolStatus)("cliproxyapi","error",void 0,e.message)}),s.on("exit",async e=>{0!==e&&null!==e&&await (0,t.setToolStatus)("cliproxyapi","stopped",void 0,`Process exited with code ${e}`)});let l=s.pid;return await (0,t.setToolStatus)("cliproxyapi","running",l),{pid:l,port:i}}function I(e){try{return process.kill(e,0),!0}catch{return!1}}function T(e){return new Promise(t=>{if(!I(e))return void t();try{process.kill(e,"SIGTERM")}catch{t();return}let r=setTimeout(()=>{try{process.kill(e,"SIGKILL")}catch{}clearInterval(a),t()},5e3),a=setInterval(()=>{I(e)||(clearTimeout(r),clearInterval(a),t())},200)})}async function P(e,t,r,a){return a&&(await T(a),await new Promise(e=>setTimeout(e,500))),b(e,t,r)}let O=new Map;async function C(e,t){let r=Date.now();try{let a=await fetch(`${e}${t||"/v1/models"}`,{signal:AbortSignal.timeout(5e3),headers:{Authorization:"Bearer omniroute-internal"}}),n=Date.now()-r;if(!a.ok)return{healthy:!1,latency:n,modelCount:0,error:`HTTP ${a.status}`};let i=await a.json(),o=Array.isArray(i.data)?i.data.length:0;return{healthy:!0,latency:n,modelCount:o,error:null}}catch(e){return{healthy:!1,latency:Date.now()-r,modelCount:0,error:e instanceof Error?e.message:String(e)}}}function k(e,r,a=3e4,n){j(e);let i=async()=>{let a=(await C(r,n)).healthy?"healthy":"unhealthy";await (0,t.updateToolHealth)(e,a).catch(()=>{})};i();let o=setInterval(i,a);O.set(e,o)}function j(e){let t=O.get(e);t&&(clearInterval(t),O.delete(e))}async function J(e,r){let a=r||(await o()).version,n=await R(a);return await (0,t.upsertVersionManagerTool)({tool:e,installedVersion:a,binaryPath:n,status:"installed"}),{installedVersion:a,binaryPath:n}}async function W(e){let r=await (0,t.getVersionManagerTool)(e),a=r?.binaryPath||await S();if(!a)throw Error(`No binary found for ${e}. Run installTool('${e}') or set binaryPath in version manager.`);let{pid:n,port:i}=await b(a,r?.port||void 0),o=`http://127.0.0.1:${i}`;return k(e,o),{pid:n,port:i,health:await C(o)}}async function N(e){let r=await (0,t.getVersionManagerTool)(e);j(e),r?.pid&&await T(r.pid),await (0,t.setToolStatus)(e,"stopped")}async function D(e){let r=await (0,t.getVersionManagerTool)(e),a=r?.binaryPath||await S();if(!a)throw Error(`No binary found for ${e}`);let{pid:n,port:i}=await P(a,r?.port||void 0,void 0,r?.pid||void 0),o=`http://127.0.0.1:${i}`;return O.has(e)&&j(e),k(e,o),{pid:n,port:i}}async function U(e){r.clear();let a=(await o()).version,n=await (0,t.getVersionManagerTool)(e),i=n?.installedVersion||null;return i?{current:i,latest:a,updateAvailable:i!==a}:{current:null,latest:a,updateAvailable:!0}}e.s(["checkForUpdates",0,U,"installTool",0,J,"restartTool",0,D,"startTool",0,W,"stopTool",0,N],64634)},499747,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),c=e.i(487718),u=e.i(995169),d=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),y=e.i(10372),m=e.i(193695);e.i(820232);var g=e.i(600220),w=e.i(745015),v=e.i(89171);e.i(64634);var _=e.i(13985),x=e.i(724999);async function A(e){let t=await (0,x.requireManagementAuth)(e);if(t)return t;try{let e=await (0,_.getVersionManagerStatus)();return v.NextResponse.json(e)}catch(e){return console.error("[version-manager] status error:",e),v.NextResponse.json({error:"Failed to get status"},{status:500})}}(0,e.i(195975).ensureServerEntryExports)([A]),(0,w.registerServerReference)(A,"40aa50a05bf3b5910e3ded18cb3286b03e3f97250f",null),e.s(["GET",0,A],320440);var R=e.i(320440);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version-manager/status/route",pathname:"/api/version-manager/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/version-manager/status/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:b,serverHooks:I}=S;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/version-manager/status/route";w=w.replace(/\/index$/,"")||"/";let v=await S.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:_,params:x,nextConfig:A,parsedUrl:R,isDraftMode:E,prerenderManifest:b,routerServerContext:I,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:k}=v,j=(0,s.normalizeAppPath)(w),J=!!(b.dynamicRoutes[j]||b.routes[O]),W=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,R,!1):t.end("This page could not be found"),null);if(J&&!E){let e=!!b.routes[O],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await W();throw new m.NoFallbackError}}let N=null;!J||S.isDev||E||(N="/index"===(N=O)?"/":N);let D=!0===S.isDev||!J,U=J&&!D;k&&C&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:C,serverActionsManifest:k});let $=e.method||"GET",M=(0,i.getTracer)(),H=M.getActiveScopeSpan(),L=!!(null==I?void 0:I.isWrappedByNextServer),q=!!(0,n.getRequestMeta)(e,"minimalMode"),V=(0,n.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,A,b,q);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let B={params:x,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:V,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>S.onRequestError(e,t,a,n,I)},sharedContext:{buildId:_}},F=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let n,o=async e=>S.handle(G,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${$} ${w}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:r})=>{try{if(!q&&T&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=B.renderOpts.fetchMetrics;let s=B.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=B.renderOpts.collectedTags;if(!J)return await (0,p.sendResponse)(F,K,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,I),t}},c=await S.handleResponse({req:e,nextConfig:A,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:q});if(!J)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(s=c.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});q||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return q&&J||u.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(F,K,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};L&&H?await s(H):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},s),void 0,!L))}catch(t){if(t instanceof m.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,I),J)throw t;return await (0,p.sendResponse)(F,K,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,I,"workAsyncStorage",0,E,"workUnitAsyncStorage",0,b],499747)},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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
6
6
 
7
7
  //# sourceMappingURL=%5Broot-of-the-server%5D__0u5-mph._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[677850,e=>e.a(async(t,r)=>{try{let t=await e.y("zod");e.n(t),r()}catch(e){r(e)}},!0),224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,477468,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function n(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return r}e.s(["concat",0,function(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t},"decoder",0,r,"encode",0,function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=n}return t},"encoder",0,t],632802),e.s(["decodeBase64",0,o,"encodeBase64",0,n],477468),e.s(["decode",0,function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{return o(t)}catch{throw TypeError("The input to be decoded is not correctly encoded.")}},"encode",0,function(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):n(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",0,class extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},"JOSENotSupported",0,class extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"},"JWSInvalid",0,class extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},"JWSSignatureVerificationFailed",0,class extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}},"JWTClaimValidationFailed",0,class extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}},"JWTExpired",0,class extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}},"JWTInvalid",0,class extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}e.s(["isDisjoint",0,function(...e){let t,r=e.filter(Boolean);if(0===r.length||1===r.length)return!0;for(let e of r){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0},"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",0,t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},111294,e=>{"use strict";var t=e.i(485641);e.s(["createInjectionGuard",0,function(e={}){let r=e.mode||process.env.INJECTION_GUARD_MODE||"warn",n=e.logger||console;return function(e){if(!e||"object"!=typeof e)return{blocked:!1,result:{flagged:!1,detections:[],piiDetections:[]}};let o=(0,t.sanitizeRequest)(e,n);if(0===o.detections.length&&0===o.piiDetections.length)return{blocked:!1,result:o};let a=o.detections.filter(e=>"high"===e.severity);return"block"===r&&a.length>0?(n.warn("[InjectionGuard] Blocked request with high-severity injection:",{detections:o.detections.map(e=>({pattern:e.pattern,severity:e.severity}))}),{blocked:!0,result:o}):(("warn"===r||"log"===r)&&n["warn"===r?"warn":"info"]("[InjectionGuard] Detected potential injection patterns:",{detections:o.detections.map(e=>({pattern:e.pattern,severity:e.severity})),pii:o.piiDetections.length}),{blocked:!1,result:o})}}])},881464,e=>e.a(async(t,r)=>{try{var n=e.i(224010),o=e.i(311250),a=e.i(352812),i=e.i(111294),s=t([o]);[o]=s.then?(await s)():s;let d=null,u=(0,i.createInjectionGuard)();async function l(){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 c(e){await (!d&&(d=Promise.resolve((0,a.initTranslators)()).then(()=>{console.log("[SSE] Translators initialized")})),d);try{let t=e.clone(),r=await t.json().catch(()=>null);if(r){let{blocked:t,result:a}=u(r);if(t)return new Response(JSON.stringify({error:{message:"Request blocked: potential prompt injection detected",type:"injection_detected",code:"SECURITY_001",detections:a.detections.length}}),{status:400,headers:{...n.CORS_HEADERS,"Content-Type":"application/json"}});if(void 0!==r.prompt&&!r.messages){let t=Array.isArray(r.prompt)?r.prompt.join("\n"):String(r.prompt),n={...r,messages:[{role:"user",content:t}]};delete n.prompt;let a=new Request(e.url,{method:e.method,headers:e.headers,body:JSON.stringify(n)});return await (0,o.handleChat)(a,(0,o.buildClientRawRequest)(e,r))}}}catch(e){return console.error("[SECURITY] Prompt injection guard failed:",e),new Response(JSON.stringify({error:{message:"Security validation temporarily unavailable",type:"security_guard_unavailable",code:"SECURITY_002"}}),{status:503,headers:{...n.CORS_HEADERS,"Content-Type":"application/json"}})}return await (0,o.handleChat)(e)}e.s(["OPTIONS",0,l,"POST",0,c]),r()}catch(e){r(e)}},!1),550358,e=>e.a(async(t,r)=>{try{var n=e.i(747909),o=e.i(174017),a=e.i(996250),i=e.i(759756),s=e.i(561916),l=e.i(174677),c=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),h=e.i(47587),R=e.i(666012),_=e.i(570101),f=e.i(626937),E=e.i(10372),y=e.i(193695);e.i(820232);var g=e.i(600220),v=e.i(881464),m=t([v]);[v]=m.then?(await m)():m;let S=new n.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/v1/completions/route",pathname:"/api/v1/completions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/completions/route.ts",nextConfigOutput:"standalone",userland:v,...{}}),{workAsyncStorage:O,workUnitAsyncStorage:w,serverHooks:T}=S;async function A(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/v1/completions/route";n=n.replace(/\/index$/,"")||"/";let a=await S.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!a)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:m,nextConfig:A,parsedUrl:O,isDraftMode:w,prerenderManifest:T,routerServerContext:I,isOnDemandRevalidate:C,revalidateOnlyGenerated:b,resolvedPathname:P,clientReferenceManifest:N,serverActionsManifest:x}=a,j=(0,c.normalizeAppPath)(n),D=!!(T.dynamicRoutes[j]||T.routes[P]),k=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,O,!1):t.end("This page could not be found"),null);if(D&&!w){let e=!!T.routes[P],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await k();throw new y.NoFallbackError}}let U=null;!D||S.isDev||w||(U=P,U="/index"===U?"/":U);let J=!0===S.isDev||!D,L=D&&!J;x&&N&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:N,serverActionsManifest:x});let W=e.method||"GET",q=(0,s.getTracer)(),M=q.getActiveScopeSpan(),H=!!(null==I?void 0:I.isWrappedByNextServer),K=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,A,T,K);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let G={params:m,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:J,incrementalCache:B,cacheLifeProfiles:A.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>S.onRequestError(e,t,n,o,I)},sharedContext:{buildId:v}},F=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),$=u.NextRequestAdapter.fromNodeNextRequest(F,(0,u.signalFromNodeResponse)(t));try{let a,i=async e=>S.handle($,G).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")!==p.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 o=r.get("next.route");if(o){let t=`${W} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",o),a.updateName(t))}else e.updateName(`${W} ${n}`)}),l=async a=>{var s,l;let c=async({previousCacheEntry:o})=>{try{if(!K&&C&&b&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!D)return await (0,R.sendResponse)(F,V,n,G.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,_.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[E.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,o=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=E.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,I),t}},d=await S.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:b,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:K});if(!D)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,_.fromNodeOutgoingHttpHeaders)(d.value.headers);return K&&D||u.delete(E.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,R.sendResponse)(F,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};H&&M?await l(M):(a=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${W} ${n}`,kind:s.SpanKind.SERVER,attributes:{"http.method":W,"http.target":e.url}},l),void 0,!H))}catch(t){if(t instanceof y.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,I),D)throw t;return await (0,R.sendResponse)(F,V,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:w})},"routeModule",0,S,"serverHooks",0,T,"workAsyncStorage",0,O,"workUnitAsyncStorage",0,w]),r()}catch(e){r(e)}},!1),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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_0ml5l_h._.js"].map(t=>e.l(t))).then(()=>t(969738)))},901259,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_http2_0j-h654._.js"].map(t=>e.l(t))).then(()=>t(925328)))},828068,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_promptCache_index_ts_0jus6ym._.js"].map(t=>e.l(t))).then(()=>t(198426)))},537776,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_usageDb_ts_0oz3f~n._.js"].map(t=>e.l(t))).then(()=>t(36197)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0vi3.0k._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0uryxsh._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[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 a=e.i(677850),o=t([a]);[a]=o.then?(await o)():o,a.z.object({password:a.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",0,function(e){return!1===e.success},"validateBody",0,function(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let a=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:a.map(e=>({field:e.path.join("."),message:e.message}))}}}]),r()}catch(e){r(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","auto-combo","costs","analytics","limits","cache","cli-tools","agents","memory","skills","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},224010,e=>{"use strict";let t=process.env.CORS_ORIGIN||"*";e.s(["CORS_HEADERS",0,{"Access-Control-Allow-Origin":t,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"},"CORS_ORIGIN",0,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])},573344,e=>{"use strict";let t={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};e.s(["getAllImageModels",0,function(){let e=[];for(let[r,a]of Object.entries(t))for(let t of a.models)e.push({id:`${r}/${t.id}`,name:t.name,provider:r,supportedSizes:a.supportedSizes});return e},"getImageProvider",0,function(e){return t[e]||null},"parseImageModel",0,function(e){if(!e)return{provider:null,model:null};for(let[r,a]of Object.entries(t))if(e.startsWith(r+"/"))return{provider:r,model:e.slice(r.length+1)};for(let[r,a]of Object.entries(t))if(a.models.some(t=>t.id===e))return{provider:r,model:e};return{provider:null,model:e}}])},740512,e=>{"use strict";e.s(["toJsonErrorPayload",0,function e(t,r="Upstream provider error"){let a={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 o=t.trim();if(!o)return a;try{let t=JSON.parse(o);return e(t,r)}catch{return{error:{message:o,type:"upstream_error",code:"upstream_error"}}}}return a}])},333974,e=>{"use strict";function t(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}async function r(e,r){let a=await fetch(`${e}/prompt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:r})});if(!a.ok){let e=await a.text();throw Error(`ComfyUI submit failed (${a.status}): ${e}`)}let o=t(await a.json()).prompt_id;if("string"!=typeof o||!o)throw Error("ComfyUI submit failed: missing prompt_id");return o}async function a(e,r,o=12e4){let i=Date.now();for(;Date.now()-i<o;){await new Promise(e=>setTimeout(e,2e3));let a=await fetch(`${e}/history/${r}`);if(!a.ok)continue;let o=t(await a.json()),i=t(o[r]);if(i&&i.outputs&&Object.keys(i.outputs).length>0)return i}throw Error(`ComfyUI prompt ${r} timed out after ${o}ms`)}async function o(e,t,r,a){let o=new URL(`${e}/view`);o.searchParams.set("filename",t),o.searchParams.set("subfolder",r),o.searchParams.set("type",a);let i=await fetch(o.toString());if(!i.ok)throw Error(`ComfyUI fetch output failed (${i.status})`);return i.arrayBuffer()}e.s(["extractComfyOutputFiles",0,function(e){let t=[];for(let r of Object.values(e.outputs||{}))for(let e of r.images||r.gifs||r.audio||[])t.push({filename:e.filename,subfolder:e.subfolder||"",type:e.type||"output"});return t},"fetchComfyOutput",0,o,"pollComfyResult",0,a,"submitComfyWorkflow",0,r])},786257,e=>e.a(async(t,r)=>{try{var a=e.i(224010),o=e.i(671528),i=e.i(719201),s=e.i(16023),n=e.i(287726),l=e.i(573344);e.i(706901);var d=e.i(249157),u=e.i(740512),p=e.i(478847),c=e.i(676088),m=e.i(200392),h=t([o,c,m]);async function f(){return new Response(null,{headers:{"Access-Control-Allow-Origin":a.CORS_ORIGIN,"Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function v(e,{params:t}){let r,{provider:a}=await t;if(!(0,l.getImageProvider)(a))return(0,i.errorResponse)(s.HTTP_STATUS.BAD_REQUEST,`Unknown image provider: ${a}`);try{r=await e.json()}catch{return(0,i.errorResponse)(s.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}let h=(0,m.validateBody)(c.v1ImageGenerationSchema,r);if((0,m.isValidationFailure)(h))return(0,i.errorResponse)(s.HTTP_STATUS.BAD_REQUEST,h.error.message);let f=h.data;if("true"===process.env.REQUIRE_API_KEY){let t=(0,n.extractApiKey)(e);if(!t||!await (0,n.isValidApiKey)(t))return(0,i.errorResponse)(s.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}f.model.includes("/")||(f.model=`${a}/${f.model}`);let g=await (0,p.enforceApiKeyPolicy)(e,f.model);if(g.rejection)return g.rejection;if(f.model.split("/")[0]!==a)return(0,i.errorResponse)(s.HTTP_STATUS.BAD_REQUEST,`Model "${f.model}" does not belong to image provider "${a}"`);let y=await (0,n.getProviderCredentials)(a);if(!y)return(0,i.errorResponse)(s.HTTP_STATUS.BAD_REQUEST,`No credentials for image provider: ${a}`);if(y.allRateLimited)return(0,i.unavailableResponse)(s.HTTP_STATUS.RATE_LIMITED,`[${a}] All accounts rate limited`,y.retryAfter,y.retryAfterHuman);let b=await (0,o.handleImageGeneration)({body:f,credentials:y,log:d});if(b.success)return await (0,n.clearRecoveredProviderState)(y),new Response(JSON.stringify(b.data),{status:200,headers:{"Content-Type":"application/json"}});let R=(0,u.toJsonErrorPayload)(b.error,"Image generation provider error");return new Response(JSON.stringify(R),{status:b.status,headers:{"Content-Type":"application/json"}})}[o,c,m]=h.then?(await h)():h,e.s(["OPTIONS",0,f,"POST",0,v]),r()}catch(e){r(e)}},!1),92509,e=>e.a(async(t,r)=>{try{var a=e.i(747909),o=e.i(174017),i=e.i(996250),s=e.i(759756),n=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),v=e.i(626937),g=e.i(10372),y=e.i(193695);e.i(820232);var b=e.i(600220),R=e.i(786257),w=t([R]);[R]=w.then?(await w)():w;let S=new a.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/v1/providers/[provider]/images/generations/route",pathname:"/api/v1/providers/[provider]/images/generations",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/providers/[provider]/images/generations/route.ts",nextConfigOutput:"standalone",userland:R,...{}}),{workAsyncStorage:x,workUnitAsyncStorage:A,serverHooks:E}=S;async function T(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/v1/providers/[provider]/images/generations/route";a=a.replace(/\/index$/,"")||"/";let i=await S.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:w,nextConfig:T,parsedUrl:x,isDraftMode:A,prerenderManifest:E,routerServerContext:_,isOnDemandRevalidate:P,revalidateOnlyGenerated:U,resolvedPathname:C,clientReferenceManifest:O,serverActionsManifest:I}=i,k=(0,d.normalizeAppPath)(a),D=!!(E.dynamicRoutes[k]||E.routes[C]),H=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,x,!1):t.end("This page could not be found"),null);if(D&&!A){let e=!!E.routes[C],t=E.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await H();throw new y.NoFallbackError}}let N=null;!D||S.isDev||A||(N=C,N="/index"===N?"/":N);let L=!0===S.isDev||!D,j=D&&!L;I&&O&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:O,serverActionsManifest:I});let $=e.method||"GET",F=(0,n.getTracer)(),q=F.getActiveScopeSpan(),M=!!(null==_?void 0:_.isWrappedByNextServer),B=!!(0,s.getRequestMeta)(e,"minimalMode"),z=(0,s.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,T,E,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let X={params:w,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:L,incrementalCache:z,cacheLifeProfiles:T.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>S.onRequestError(e,t,a,o,_)},sharedContext:{buildId:R}},K=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),J=p.NextRequestAdapter.fromNodeNextRequest(K,(0,p.signalFromNodeResponse)(t));try{let i,s=async e=>S.handle(J,X).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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 o=r.get("next.route");if(o){let t=`${$} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",o),i.updateName(t))}else e.updateName(`${$} ${a}`)}),l=async i=>{var n,l;let d=async({previousCacheEntry:o})=>{try{if(!B&&P&&U&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(i);e.fetchMetrics=X.renderOpts.fetchMetrics;let n=X.renderOpts.pendingWaitUntil;n&&r.waitUntil&&(r.waitUntil(n),n=void 0);let l=X.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(K,G,a,X.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,o=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:X.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:P})},!1,_),t}},u=await S.handleResponse({req:e,nextConfig:T,cacheKey:N,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:U,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:B});if(!D)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return B&&D||p.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,G,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};M&&q?await l(q):(i=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l),void 0,!M))}catch(t){if(t instanceof y.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:P})},!1,_),D)throw t;return await (0,h.sendResponse)(K,G,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:A})},"routeModule",0,S,"serverHooks",0,E,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,A]),r()}catch(e){r(e)}},!1),605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_0ml5l_h._.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)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0lwc40h._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0v1kwmx._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[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 i=e.i(677850),a=t([i]);[i]=a.then?(await a)():a,i.z.object({password:i.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",0,function(e){return!1===e.success},"validateBody",0,function(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let i=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:i.map(e=>({field:e.path.join("."),message:e.message}))}}}]),r()}catch(e){r(e)}},!1),41244,e=>{"use strict";e.s(["HIDEABLE_SIDEBAR_ITEM_IDS",0,["home","endpoints","api-manager","providers","combos","auto-combo","costs","analytics","limits","cache","cli-tools","agents","memory","skills","translator","playground","media","search-tools","health","logs","audit","settings","docs","issues"]])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},224010,e=>{"use strict";let t=process.env.CORS_ORIGIN||"*";e.s(["CORS_HEADERS",0,{"Access-Control-Allow-Origin":t,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"},"CORS_ORIGIN",0,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])},261189,e=>{"use strict";let t={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}]}};e.s(["buildDynamicEmbeddingProvider",0,function(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:[]}},"getAllEmbeddingModels",0,function(){let e=[];for(let[r,i]of Object.entries(t))for(let t of i.models)e.push({id:`${r}/${t.id}`,name:t.name,provider:r,dimensions:t.dimensions});return e},"getEmbeddingProvider",0,function(e){return t[e]||null},"parseEmbeddingModel",0,function(e,r){if(!e)return{provider:null,model:null};let i=e.indexOf("/");if(i>0){for(let[r]of Object.entries(t))if(e.startsWith(r+"/"))return{provider:r,model:e.slice(r.length+1)};if(r){for(let t of r)if(e.startsWith(t.id+"/"))return{provider:t.id,model:e.slice(t.id.length+1)}}return{provider:e.slice(0,i),model:e.slice(i+1)}}for(let[r,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:r,model:e};return{provider:null,model:e}}])},344448,e=>e.a(async(t,r)=>{try{var i=e.i(261189),a=e.i(312125),n=e.i(397506),s=t([a,n]);async function o({body:e,credentials:t,log:r,resolvedProvider:a=null,resolvedModel:s=null}){let d,l,u;if(a)d=a.id,l=s,u=a;else{let t=(0,i.parseEmbeddingModel)(e.model);d=t.provider,l=t.model,u=d?(0,i.getEmbeddingProvider)(d):null}let c=Date.now(),p={model:e.model,input_count:Array.isArray(e.input)?e.input.length:1,dimensions:e.dimensions||void 0};if(!d)return{success:!1,status:400,error:`Invalid embedding model: ${e.model}. Use format: provider/model`};if(!u)return{success:!1,status:400,error:`Unknown embedding provider: ${d}`};let m=new Set(["model","input","dimensions","encoding_format"]),h={model:l,input:e.input};for(let[t,r]of(void 0!==e.dimensions&&(h.dimensions=e.dimensions),void 0!==e.encoding_format&&(h.encoding_format=e.encoding_format),Object.entries(e)))m.has(t)||void 0===r||(h[t]=r);let v={"Content-Type":"application/json"},g="none"===u.authType?null:t?.apiKey||t?.accessToken;if(g)"bearer"===u.authHeader?v.Authorization=`Bearer ${g}`:"x-api-key"===u.authHeader&&(v["x-api-key"]=g);else if("none"!==u.authType)return{success:!1,status:401,error:`No valid authentication token for provider ${d}. Check provider credentials.`};r&&r.info("EMBED",`${d}/${l} | input: ${Array.isArray(e.input)?e.input.length+" items":"1 item"}`);try{let e=await fetch(u.baseUrl,{method:"POST",headers:v,body:JSON.stringify(h)});if(!e.ok){let t=await e.text();return r&&r.error("EMBED",`${d} error ${e.status}: ${t.slice(0,200)}`),(0,n.saveCallLog)({method:"POST",path:"/v1/embeddings",status:e.status,model:`${d}/${l}`,provider:d,duration:Date.now()-c,error:t.slice(0,500),requestBody:p}).catch(()=>{}),{success:!1,status:e.status,error:t}}let t=await e.json();return(0,n.saveCallLog)({method:"POST",path:"/v1/embeddings",status:200,model:`${d}/${l}`,provider:d,duration:Date.now()-c,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:`${d}/${l}`,usage:t.usage||{prompt_tokens:0,total_tokens:0}}}}catch(e){return r&&r.error("EMBED",`${d} fetch error: ${e.message}`),(0,n.saveCallLog)({method:"POST",path:"/v1/embeddings",status:502,model:`${d}/${l}`,provider:d,duration:Date.now()-c,error:e.message,requestBody:p}).catch(()=>{}),{success:!1,status:502,error:`Embedding provider error: ${e.message}`}}}[a,n]=s.then?(await s)():s,e.s(["handleEmbedding",0,o]),r()}catch(e){r(e)}},!1),828598,e=>e.a(async(t,r)=>{try{var i=e.i(224010),a=e.i(719201),n=e.i(16023),s=e.i(828059),o=e.i(287726),d=e.i(344448);e.i(706901);var l=e.i(249157),u=e.i(478847),c=e.i(676088),p=e.i(200392),m=t([d,c,p]);async function h(){return new Response(null,{headers:{"Access-Control-Allow-Origin":i.CORS_ORIGIN,"Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function v(e,{params:t}){let r,{provider:i}=await t,m=(0,s.getRegistryEntry)(i);if(!m)return(0,a.errorResponse)(n.HTTP_STATUS.BAD_REQUEST,`Unknown provider: ${i}`);let h=m.alias||m.id;try{r=await e.json()}catch{return(0,a.errorResponse)(n.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}let g=(0,p.validateBody)(c.v1EmbeddingsSchema,r);if((0,p.isValidationFailure)(g))return(0,a.errorResponse)(n.HTTP_STATUS.BAD_REQUEST,g.error.message);let f=g.data;if("true"===process.env.REQUIRE_API_KEY){let t=(0,o.extractApiKey)(e);if(!t||!await (0,o.isValidApiKey)(t))return(0,a.errorResponse)(n.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}f.model&&!f.model.includes("/")&&(f.model=`${h}/${f.model}`);let b=await (0,u.enforceApiKeyPolicy)(e,f.model);if(b.rejection)return b.rejection;if(f.model){let e=f.model.split("/")[0];if(e!==h&&e!==i&&e!==m.id)return(0,a.errorResponse)(n.HTTP_STATUS.BAD_REQUEST,`Model "${f.model}" does not belong to provider "${i}"`)}let y=await (0,o.getProviderCredentials)(m.id);if(!y)return(0,a.errorResponse)(n.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${i}`);if(y.allRateLimited)return(0,a.unavailableResponse)(n.HTTP_STATUS.RATE_LIMITED,`[${i}] All accounts rate limited`,y.retryAfter,y.retryAfterHuman);let E=await (0,d.handleEmbedding)({body:f,credentials:y,log:l});return E.success?(await (0,o.clearRecoveredProviderState)(y),new Response(JSON.stringify(E.data),{status:200,headers:{"Content-Type":"application/json"}})):new Response(JSON.stringify({error:E.error}),{status:E.status||500,headers:{"Content-Type":"application/json"}})}[d,c,p]=m.then?(await m)():m,e.s(["OPTIONS",0,h,"POST",0,v]),r()}catch(e){r(e)}},!1),83543,e=>e.a(async(t,r)=>{try{var i=e.i(747909),a=e.i(174017),n=e.i(996250),s=e.i(759756),o=e.i(561916),d=e.i(174677),l=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),v=e.i(570101),g=e.i(626937),f=e.i(10372),b=e.i(193695);e.i(820232);var y=e.i(600220),E=e.i(828598),T=t([E]);[E]=T.then?(await T)():T;let w=new i.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/v1/providers/[provider]/embeddings/route",pathname:"/api/v1/providers/[provider]/embeddings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/providers/[provider]/embeddings/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:_,serverHooks:S}=w;async function R(e,t,r){r.requestMeta&&(0,s.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/v1/providers/[provider]/embeddings/route";i=i.replace(/\/index$/,"")||"/";let n=await w.prepare(e,t,{srcPage:i,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,params:T,nextConfig:R,parsedUrl:A,isDraftMode:_,prerenderManifest:S,routerServerContext:P,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:U}=n,I=(0,l.normalizeAppPath)(i),$=!!(S.dynamicRoutes[I]||S.routes[O]),N=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if($&&!_){let e=!!S.routes[O],t=S.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await N();throw new b.NoFallbackError}}let H=null;!$||w.isDev||_||(H=O,H="/index"===H?"/":H);let D=!0===w.isDev||!$,M=$&&!D;U&&k&&(0,d.setManifestsSingleton)({page:i,clientReferenceManifest:k,serverActionsManifest:U});let B=e.method||"GET",q=(0,o.getTracer)(),j=q.getActiveScopeSpan(),K=!!(null==P?void 0:P.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),F=(0,s.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,R,S,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let Q={params:T,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:F,cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,a)=>w.onRequestError(e,t,i,a,P)},sharedContext:{buildId:E}},G=new u.NodeNextRequest(e),z=new u.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let n,s=async e=>w.handle(V,Q).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")!==p.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 a=r.get("next.route");if(a){let t=`${B} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${B} ${i}`)}),d=async n=>{var o,d;let l=async({previousCacheEntry:a})=>{try{if(!L&&x&&C&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=Q.renderOpts.fetchMetrics;let o=Q.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=Q.renderOpts.collectedTags;if(!$)return await (0,h.sendResponse)(G,z,i,Q.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==Q.renderOpts.collectedRevalidate&&!(Q.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&Q.renderOpts.collectedRevalidate,a=void 0===Q.renderOpts.collectedExpire||Q.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:Q.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:i,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:x})},!1,P),t}},u=await w.handleResponse({req:e,nextConfig:R,cacheKey:H,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:C,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:L});if(!$)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",x?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,v.fromNodeOutgoingHttpHeaders)(u.value.headers);return L&&$||c.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(G,z,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};K&&j?await d(j):(n=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${B} ${i}`,kind:o.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},d),void 0,!K))}catch(t){if(t instanceof b.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:x})},!1,P),$)throw t;return await (0,h.sendResponse)(G,z,new Response(null,{status:500})),null}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:_})},"routeModule",0,w,"serverHooks",0,S,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,_]),r()}catch(e){r(e)}},!1),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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_0ml5l_h._.js"].map(t=>e.l(t))).then(()=>t(969738)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__04y3b4q._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0vt49c9._.js.map
@@ -1,4 +1,4 @@
1
1
  module.exports=[918622,(e,t,a)=>{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,a)=>{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,a)=>{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"))},324725,(e,t,a)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,a)=>{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,a)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,a)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,a)=>{"use strict";var i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>p,parseSetCookie:()=>u,stringifyCookie:()=>c};for(var d in l)i(s,d,{get:l[d],enumerable:!0});function c(e){var t;let a=["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),i=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===a.length?i:`${i}; ${a.join("; ")}`}function p(e){let t=new Map;for(let a of e.split(/; */)){if(!a)continue;let e=a.indexOf("=");if(-1===e){t.set(a,"true");continue}let[i,o]=[a.slice(0,e),a.slice(e+1)];try{t.set(i,decodeURIComponent(null!=o?o:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,a],...i]=p(e),{domain:o,expires:r,httponly:n,maxage:s,path:l,samesite:d,secure:c,partitioned:u,priority:f}=Object.fromEntries(i.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,b,y={name:t,value:decodeURIComponent(a),domain:o,...r&&{expires:new Date(r)},...n&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...d&&{sameSite:m.includes(g=(g=d).toLowerCase())?g:void 0},...c&&{secure:!0},...f&&{priority:h.includes(b=(b=f).toLowerCase())?b:void 0},...u&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}t.exports=((e,t,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of r(t))n.call(e,s)||void 0===s||i(e,s,{get:()=>t[s],enumerable:!(a=o(t,s))||a.enumerable});return e})(i({},"__esModule",{value:!0}),s);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,a]of p(t))this._parsed.set(e,{name:e,value:a})}[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 a=Array.from(this._parsed);if(!e.length)return a.map(([e,t])=>t);let i="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(([e])=>e===i).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,a]=1===e.length?[e[0].name,e[0].value]:e,i=this._parsed;return i.set(t,{name:t,value:a}),this._headers.set("cookie",Array.from(i).map(([e,t])=>c(t)).join("; ")),this}delete(e){let t=this._parsed,a=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>c(t)).join("; ")),a}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,a,i;this._parsed=new Map,this._headers=e;const o=null!=(i=null!=(a=null==(t=e.getSetCookie)?void 0:t.call(e))?a:e.get("set-cookie"))?i:[];for(const e of Array.isArray(o)?o:function(e){if(!e)return[];var t,a,i,o,r,n=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,r=!1;l();)if(","===(a=e.charAt(s))){for(i=s,s+=1,l(),o=s;s<e.length&&"="!==(a=e.charAt(s))&&";"!==a&&","!==a;)s+=1;s<e.length&&"="===e.charAt(s)?(r=!0,s=o,n.push(e.substring(t,i)),t=s):s=i+1}else s+=1;(!r||s>=e.length)&&n.push(e.substring(t,e.length))}return n}(o)){const t=u(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 a=Array.from(this._parsed.values());if(!e.length)return a;let i="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return a.filter(e=>e.name===i)}has(e){return this._parsed.has(e)}set(...e){let[t,a,i]=1===e.length?[e[0].name,e[0].value,e[0]]:e,o=this._parsed;return o.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:a,...i})),function(e,t){for(let[,a]of(t.delete("set-cookie"),e)){let e=c(a);t.append("set-cookie",e)}}(o,this._headers),this}delete(...e){let[t,a]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...a,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(c).join("; ")}}},677850,e=>e.a(async(t,a)=>{try{let t=await e.y("zod");e.n(t),a()}catch(e){a(e)}},!0),663370,632802,477468,e=>{"use strict";let t=new TextEncoder,a=new TextDecoder;function i(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let a=0;a<e.length;a+=32768)t.push(String.fromCharCode.apply(null,e.subarray(a,a+32768)));return btoa(t.join(""))}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),a=new Uint8Array(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return a}e.s(["concat",0,function(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),a=0;for(let i of e)t.set(i,a),a+=i.length;return t},"decoder",0,a,"encode",0,function(e){let t=new Uint8Array(e.length);for(let a=0;a<e.length;a++){let i=e.charCodeAt(a);if(i>127)throw TypeError("non-ASCII string encountered in encode()");t[a]=i}return t},"encoder",0,t],632802),e.s(["decodeBase64",0,o,"encodeBase64",0,i],477468),e.s(["decode",0,function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:a.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=a.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{return o(t)}catch{throw TypeError("The input to be decoded is not correctly encoded.")}},"encode",0,function(e){let a=e;return("string"==typeof a&&(a=t.encode(a)),Uint8Array.prototype.toBase64)?a.toBase64({alphabet:"base64url",omitPadding:!0}):i(a).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class a extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",0,class extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},"JOSENotSupported",0,class extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"},"JWSInvalid",0,class extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},"JWSSignatureVerificationFailed",0,class extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}},"JWTClaimValidationFailed",0,class extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,a="unspecified",i="unspecified"){super(e,{cause:{claim:a,reason:i,payload:t}}),this.claim=a,this.reason=i,this.payload=t}},"JWTExpired",0,class extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,a="unspecified",i="unspecified"){super(e,{cause:{claim:a,reason:i,payload:t}}),this.claim=a,this.reason=i,this.payload=t}},"JWTInvalid",0,class extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}e.s(["isDisjoint",0,function(...e){let t,a=e.filter(Boolean);if(0===a.length||1===a.length)return!0;for(let e of a){let a=Object.keys(e);if(!t||0===t.size){t=new Set(a);continue}for(let e of a){if(t.has(e))return!1;t.add(e)}}return!0},"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",0,t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},709939,e=>{"use strict";var t=e.i(663370),a=e.i(293233),i=e.i(865466),o=e.i(632802),r=e.i(913658),n=e.i(177278),s=e.i(48215),l=e.i(252665),d=e.i(18083);async function c(e,c,p){if(!(0,n.isObject)(e))throw new i.JWSInvalid("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new i.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new i.JWSInvalid("JWS Protected Header incorrect type");if(void 0===e.payload)throw new i.JWSInvalid("JWS Payload missing");if("string"!=typeof e.signature)throw new i.JWSInvalid("JWS Signature missing or incorrect type");if(void 0!==e.header&&!(0,n.isObject)(e.header))throw new i.JWSInvalid("JWS Unprotected Header incorrect type");let u={};if(e.protected)try{let a=(0,t.decode)(e.protected);u=JSON.parse(o.decoder.decode(a))}catch{throw new i.JWSInvalid("JWS Protected Header is invalid")}if(!(0,n.isDisjoint)(u,e.header))throw new i.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let m={...u,...e.header},h=(0,l.validateCrit)(i.JWSInvalid,new Map([["b64",!0]]),p?.crit,u,m),f=!0;if(h.has("b64")&&"boolean"!=typeof(f=u.b64))throw new i.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:g}=m;if("string"!=typeof g||!g)throw new i.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');let b=p&&function(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}("algorithms",p.algorithms);if(b&&!b.has(g))throw new i.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');if(f){if("string"!=typeof e.payload)throw new i.JWSInvalid("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new i.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");let y=!1;"function"==typeof c&&(c=await c(u,e),y=!0),(0,s.checkKeyType)(g,c,"verify");let v=(0,o.concat)(void 0!==e.protected?(0,o.encode)(e.protected):new Uint8Array,(0,o.encode)("."),"string"==typeof e.payload?f?(0,o.encode)(e.payload):o.encoder.encode(e.payload):e.payload),w=(0,r.decodeBase64url)(e.signature,"signature",i.JWSInvalid),x=await (0,d.normalizeKey)(c,g);if(!await (0,a.verify)(g,x,w,v))throw new i.JWSSignatureVerificationFailed;let A={payload:f?(0,r.decodeBase64url)(e.payload,"payload",i.JWSInvalid):"string"==typeof e.payload?o.encoder.encode(e.payload):e.payload};return(void 0!==e.protected&&(A.protectedHeader=u),void 0!==e.header&&(A.unprotectedHeader=e.header),y)?{...A,key:x}:A}async function p(e,t,a){if(e instanceof Uint8Array&&(e=o.decoder.decode(e)),"string"!=typeof e)throw new i.JWSInvalid("Compact JWS must be a string or Uint8Array");let{0:r,1:n,2:s,length:l}=e.split(".");if(3!==l)throw new i.JWSInvalid("Invalid Compact JWS");let d=await c({payload:n,protected:r,signature:s},t,a),p={payload:d.payload,protectedHeader:d.protectedHeader};return"function"==typeof t?{...p,key:d.key}:p}var u=e.i(224472);async function m(e,t,a){let o=await p(e,t,a);if(o.protectedHeader.crit?.includes("b64")&&!1===o.protectedHeader.b64)throw new i.JWTInvalid("JWTs MUST NOT use unencoded payload");let r={payload:(0,u.validateClaimsSet)(o.protectedHeader,o.payload,a),protectedHeader:o.protectedHeader};return"function"==typeof t?{...r,key:o.key}:r}e.s(["jwtVerify",0,m],709939)},235328,e=>{"use strict";var t=e.i(709939),a=e.i(493458);e.i(245272);var i=e.i(548941);async function o(i){if(!await r())return!0;let o=i.headers.get("authorization");if(o?.startsWith("Bearer ")){let t=o.slice(7);try{let{validateApiKey:a}=await e.A(734680);if(await a(t))return!0}catch{}}if(process.env.JWT_SECRET)try{let e=await (0,a.cookies)(),i=e.get("auth_token")?.value;if(i){let e=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,t.jwtVerify)(i,e),!0}}catch{}return!1}async function r(){try{let e=await (0,i.getSettings)();if(!1===e.requireLogin||!e.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch(e){return console.error("[API_AUTH_GUARD] isAuthRequired failed, defaulting to true:",e?.message||e),!0}}e.s(["isAuthRequired",0,r,"isAuthenticated",0,o])},224010,e=>{"use strict";let t=process.env.CORS_ORIGIN||"*";e.s(["CORS_HEADERS",0,{"Access-Control-Allow-Origin":t,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"},"CORS_ORIGIN",0,t])},102835,e=>e.a(async(t,a)=>{try{var i=e.i(677850),o=t([i]);[i]=o.then?(await o)():o;let r=i.z.object({id:i.z.string().min(1),alias:i.z.string().min(1).optional(),name:i.z.string().min(1),icon:i.z.string().min(1),color:i.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:i.z.string().optional(),website:i.z.string().url().optional(),passthroughModels:i.z.boolean().optional(),deprecated:i.z.boolean().optional(),deprecationReason:i.z.string().optional(),hasFree:i.z.boolean().optional(),freeNote:i.z.string().optional(),authHint:i.z.string().optional(),apiHint:i.z.string().optional()}),n=i.z.record(i.z.string(),r);e.s(["validateProviders",0,function(e,t){let a=n.safeParse(e);if(!a.success){let e=a.error.issues.map(e=>` ${e.path.join(".")}: ${e.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${t} has invalid entries:
2
- ${e}`),Error(`Provider validation failed for ${t}`)}}]),a()}catch(e){a(e)}},!1),963219,e=>e.a(async(t,a)=>{try{var i=e.i(102835),o=t([i]);[i]=o.then?(await o)():o;let r={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},n={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:void 0,name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},s={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0},novita:{id:"novita",alias:"novita",name:"Novita AI",icon:"auto_awesome",color:"#FF4081",textIcon:"NV",website:"https://novita.ai",passthroughModels:!0},piapi:{id:"piapi",alias:"pi",name:"PiAPI",icon:"api",color:"#7C4DFF",textIcon:"PI",website:"https://piapi.ai",passthroughModels:!0},getgoapi:{id:"getgoapi",alias:"ggo",name:"GoAPI",icon:"rocket_launch",color:"#FF6D00",textIcon:"GO",website:"https://api.getgoapi.com",passthroughModels:!0},laozhang:{id:"laozhang",alias:"lz",name:"LaoZhang AI",icon:"hub",color:"#FF1744",textIcon:"LZ",website:"https://api.laozhang.ai",passthroughModels:!0}},l="openai-compatible-",d="anthropic-compatible-",c="anthropic-compatible-cc-",p={...r,...n,...s,cliproxyapi:{id:"cliproxyapi",alias:"cpa",name:"CLIProxyAPI",icon:"proxy",color:"#6366F1",textIcon:"CPA",website:"https://github.com/router-for-me/CLIProxyAPI",defaultPort:8317,healthEndpoint:"/v1/models",managementPrefix:"/v0/management",configDir:"~/.cli-proxy-api",binaryName:"cli-proxy-api",githubRepo:"router-for-me/CLIProxyAPI"}},u=Object.values(p).reduce((e,t)=>(t.alias&&(e[t.alias]=t.id),e),{});Object.values(p).reduce((e,t)=>(e[t.id]=t.alias||t.id,e),{}),(0,i.validateProviders)(r,"FREE_PROVIDERS"),(0,i.validateProviders)(n,"OAUTH_PROVIDERS"),(0,i.validateProviders)(s,"APIKEY_PROVIDERS"),e.s(["AI_PROVIDERS",0,p,"ALIAS_TO_ID",0,u,"ANTHROPIC_COMPATIBLE_PREFIX",0,d,"APIKEY_PROVIDERS",0,s,"CLAUDE_CODE_COMPATIBLE_PREFIX",0,c,"FREE_PROVIDERS",0,r,"OAUTH_PROVIDERS",0,n,"OPENAI_COMPATIBLE_PREFIX",0,l,"USAGE_SUPPORTED_PROVIDERS",0,["antigravity","gemini-cli","kiro","github","codex","claude","kimi-coding","glm"],"getProviderAlias",0,function(e){let t=p[e];return t?.alias||e},"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(d)},"isClaudeCodeCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(c)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(l)}]),a()}catch(e){a(e)}},!1),617325,e=>e.a(async(t,a)=>{try{var i=e.i(878947),o=e.i(963219),r=t([o]);[o]=r.then?(await r)():r,Object.entries(o.AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let n=Object.entries(i.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,n]),a()}catch(e){a(e)}},!1),573344,e=>{"use strict";let t={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};e.s(["getAllImageModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:`${a}/${t.id}`,name:t.name,provider:a,supportedSizes:i.supportedSizes});return e},"getImageProvider",0,function(e){return t[e]||null},"parseImageModel",0,function(e){if(!e)return{provider:null,model:null};for(let[a,i]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},261189,e=>{"use strict";let t={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}]}};e.s(["buildDynamicEmbeddingProvider",0,function(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:[]}},"getAllEmbeddingModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:`${a}/${t.id}`,name:t.name,provider:a,dimensions:t.dimensions});return e},"getEmbeddingProvider",0,function(e){return t[e]||null},"parseEmbeddingModel",0,function(e,a){if(!e)return{provider:null,model:null};let i=e.indexOf("/");if(i>0){for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};if(a){for(let t of a)if(e.startsWith(t.id+"/"))return{provider:t.id,model:e.slice(t.id.length+1)}}return{provider:e.slice(0,i),model:e.slice(i+1)}}for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},699064,e=>{"use strict";e.s(["buildAuthHeaders",0,function(e,t){if("none"===e.authType||"none"===e.authHeader||!t)return{};switch(e.authHeader){case"token":return{Authorization:`Token ${t}`};case"xi-api-key":return{"xi-api-key":t};case"x-api-key":return{"x-api-key":t};default:return{Authorization:`Bearer ${t}`}}},"getAllModelsFromRegistry",0,function(e,t){let a=[];for(let[i,o]of Object.entries(e)){let e=t?t(i,o):{};for(let t of o.models)a.push({id:`${i}/${t.id}`,name:t.name,provider:i,...e})}return a},"parseModelFromRegistry",0,function(e,t){if(!e)return{provider:null,model:null};for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},501323,e=>{"use strict";let t={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcription",name:"GPT-4o Transcription"}]},groq:{id:"groq",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]},assemblyai:{id:"assemblyai",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",async:!0,format:"assemblyai",models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"nvidia-asr",models:[{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/transcriptions",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-asr",name:"Qwen3 ASR"}]}},a={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",models:[{id:"tts-1",name:"TTS 1"},{id:"tts-1-hd",name:"TTS 1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"aura-asteria-en",name:"Aura Asteria (EN)"},{id:"aura-luna-en",name:"Aura Luna (EN)"},{id:"aura-stella-en",name:"Aura Stella (EN)"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"nvidia/fastpitch",name:"FastPitch"},{id:"nvidia/tacotron2",name:"Tacotron2"}]},elevenlabs:{id:"elevenlabs",baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},coqui:{id:"coqui",baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},tortoise:{id:"tortoise",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]},inworld:{id:"inworld",baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max"},{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini"}]},cartesia:{id:"cartesia",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},playht:{id:"playht",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play3.0 Mini"}]}};function i(e,t,a){if(!e)return{provider:null,model:null};for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};if(a){for(let t of a)if(e.startsWith(t.id+"/"))return{provider:t.id,model:e.slice(t.id.length+1)}}return{provider:null,model:e}}e.s(["buildDynamicAudioProvider",0,function(e,t){if(!e.prefix||!e.baseUrl)throw Error("Invalid provider_node: missing prefix or baseUrl");let a=e.baseUrl.replace(/\/+$/,"");return{id:e.prefix,baseUrl:`${a}${t}`,authType:"none",authHeader:"none",models:[]}},"getAllAudioModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:t.id.startsWith(`${a}/`)?t.id:`${a}/${t.id}`,name:t.name,provider:a,subtype:"transcription"});for(let[t,i]of Object.entries(a))for(let a of i.models)e.push({id:a.id.startsWith(`${t}/`)?a.id:`${t}/${a.id}`,name:a.name,provider:t,subtype:"speech"});return e},"getSpeechProvider",0,function(e){return a[e]||null},"getTranscriptionProvider",0,function(e){return t[e]||null},"parseSpeechModel",0,function(e,t){return i(e,a,t)},"parseTranscriptionModel",0,function(e,a){return i(e,t,a)}])},445568,e=>e.a(async(t,a)=>{try{var i=e.i(224010),o=e.i(970620),r=t([o]);async function n(){return new Response(null,{headers:i.CORS_HEADERS})}async function s(e){return(0,o.getUnifiedModelsResponse)(e,{"Content-Type":"application/json",...i.CORS_HEADERS})}[o]=r.then?(await r)():r,e.s(["GET",0,s,"OPTIONS",0,n]),a()}catch(e){a(e)}},!1),818066,e=>e.a(async(t,a)=>{try{var i=e.i(747909),o=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),l=e.i(174677),d=e.i(869741),c=e.i(316795),p=e.i(487718),u=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),b=e.i(10372),y=e.i(193695);e.i(820232);var v=e.i(600220),w=e.i(445568),x=t([w]);[w]=x.then?(await x)():x;let I=new i.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/v1/route",pathname:"/api/v1",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:_}=I;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),I.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/v1/route";i=i.replace(/\/index$/,"")||"/";let r=await I.prepare(e,t,{srcPage:i,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:x,nextConfig:A,parsedUrl:S,isDraftMode:E,prerenderManifest:_,routerServerContext:k,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:C,serverActionsManifest:F}=r,O=(0,d.normalizeAppPath)(i),D=!!(_.dynamicRoutes[O]||_.routes[P]),U=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!_.routes[P],t=_.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await U();throw new y.NoFallbackError}}let H=null;!D||I.isDev||E||(H=P,H="/index"===H?"/":H);let N=!0===I.isDev||!D,L=D&&!N;F&&C&&(0,l.setManifestsSingleton)({page:i,clientReferenceManifest:C,serverActionsManifest:F});let M=e.method||"GET",W=(0,s.getTracer)(),j=W.getActiveScopeSpan(),B=!!(null==k?void 0:k.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),q=(0,n.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,A,_,J);null==q||q.resetRequestCache(),globalThis.__incrementalCache=q;let z={params:x,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:N,incrementalCache:q,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,i,o)=>I.onRequestError(e,t,i,o,k)},sharedContext:{buildId:w}},G=new c.NodeNextRequest(e),$=new c.NodeNextResponse(t),K=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let r,n=async e=>I.handle(K,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=W.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=a.get("next.route");if(o){let t=`${M} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",o),r.updateName(t))}else e.updateName(`${M} ${i}`)}),l=async r=>{var s,l;let d=async({previousCacheEntry:o})=>{try{if(!J&&R&&T&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(r);e.fetchMetrics=z.renderOpts.fetchMetrics;let s=z.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=z.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(G,$,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[b.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,o=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:i,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:R})},!1,k),t}},c=await I.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:J});if(!D)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",R?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return J&&D||p.delete(b.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(G,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};B&&j?await l(j):(r=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${i}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l),void 0,!B))}catch(t){if(t instanceof y.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:R})},!1,k),D)throw t;return await (0,h.sendResponse)(G,$,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})},"routeModule",0,I,"serverHooks",0,_,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,E]),a()}catch(e){a(e)}},!1),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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
2
+ ${e}`),Error(`Provider validation failed for ${t}`)}}]),a()}catch(e){a(e)}},!1),963219,e=>e.a(async(t,a)=>{try{var i=e.i(102835),o=t([i]);[i]=o.then?(await o)():o;let r={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},n={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:void 0,name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},s={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0},novita:{id:"novita",alias:"novita",name:"Novita AI",icon:"auto_awesome",color:"#FF4081",textIcon:"NV",website:"https://novita.ai",passthroughModels:!0},piapi:{id:"piapi",alias:"pi",name:"PiAPI",icon:"api",color:"#7C4DFF",textIcon:"PI",website:"https://piapi.ai",passthroughModels:!0},getgoapi:{id:"getgoapi",alias:"ggo",name:"GoAPI",icon:"rocket_launch",color:"#FF6D00",textIcon:"GO",website:"https://api.getgoapi.com",passthroughModels:!0},laozhang:{id:"laozhang",alias:"lz",name:"LaoZhang AI",icon:"hub",color:"#FF1744",textIcon:"LZ",website:"https://api.laozhang.ai",passthroughModels:!0}},l="openai-compatible-",d="anthropic-compatible-",c="anthropic-compatible-cc-",p={...r,...n,...s,cliproxyapi:{id:"cliproxyapi",alias:"cpa",name:"CLIProxyAPI",icon:"proxy",color:"#6366F1",textIcon:"CPA",website:"https://github.com/router-for-me/CLIProxyAPI",defaultPort:8317,healthEndpoint:"/v1/models",managementPrefix:"/v0/management",configDir:"~/.cli-proxy-api",binaryName:"cli-proxy-api",githubRepo:"router-for-me/CLIProxyAPI"}},u=Object.values(p).reduce((e,t)=>(t.alias&&(e[t.alias]=t.id),e),{});Object.values(p).reduce((e,t)=>(e[t.id]=t.alias||t.id,e),{}),(0,i.validateProviders)(r,"FREE_PROVIDERS"),(0,i.validateProviders)(n,"OAUTH_PROVIDERS"),(0,i.validateProviders)(s,"APIKEY_PROVIDERS"),e.s(["AI_PROVIDERS",0,p,"ALIAS_TO_ID",0,u,"ANTHROPIC_COMPATIBLE_PREFIX",0,d,"APIKEY_PROVIDERS",0,s,"CLAUDE_CODE_COMPATIBLE_PREFIX",0,c,"FREE_PROVIDERS",0,r,"OAUTH_PROVIDERS",0,n,"OPENAI_COMPATIBLE_PREFIX",0,l,"USAGE_SUPPORTED_PROVIDERS",0,["antigravity","gemini-cli","kiro","github","codex","claude","kimi-coding","glm"],"getProviderAlias",0,function(e){let t=p[e];return t?.alias||e},"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(d)},"isClaudeCodeCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(c)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(l)}]),a()}catch(e){a(e)}},!1),617325,e=>e.a(async(t,a)=>{try{var i=e.i(878947),o=e.i(963219),r=t([o]);[o]=r.then?(await r)():r,Object.entries(o.AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let n=Object.entries(i.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,n]),a()}catch(e){a(e)}},!1),261189,e=>{"use strict";let t={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}]}};e.s(["buildDynamicEmbeddingProvider",0,function(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:[]}},"getAllEmbeddingModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:`${a}/${t.id}`,name:t.name,provider:a,dimensions:t.dimensions});return e},"getEmbeddingProvider",0,function(e){return t[e]||null},"parseEmbeddingModel",0,function(e,a){if(!e)return{provider:null,model:null};let i=e.indexOf("/");if(i>0){for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};if(a){for(let t of a)if(e.startsWith(t.id+"/"))return{provider:t.id,model:e.slice(t.id.length+1)}}return{provider:e.slice(0,i),model:e.slice(i+1)}}for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},573344,e=>{"use strict";let t={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};e.s(["getAllImageModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:`${a}/${t.id}`,name:t.name,provider:a,supportedSizes:i.supportedSizes});return e},"getImageProvider",0,function(e){return t[e]||null},"parseImageModel",0,function(e){if(!e)return{provider:null,model:null};for(let[a,i]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},699064,e=>{"use strict";e.s(["buildAuthHeaders",0,function(e,t){if("none"===e.authType||"none"===e.authHeader||!t)return{};switch(e.authHeader){case"token":return{Authorization:`Token ${t}`};case"xi-api-key":return{"xi-api-key":t};case"x-api-key":return{"x-api-key":t};default:return{Authorization:`Bearer ${t}`}}},"getAllModelsFromRegistry",0,function(e,t){let a=[];for(let[i,o]of Object.entries(e)){let e=t?t(i,o):{};for(let t of o.models)a.push({id:`${i}/${t.id}`,name:t.name,provider:i,...e})}return a},"parseModelFromRegistry",0,function(e,t){if(!e)return{provider:null,model:null};for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};return{provider:null,model:e}}])},501323,e=>{"use strict";let t={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcription",name:"GPT-4o Transcription"}]},groq:{id:"groq",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]},assemblyai:{id:"assemblyai",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",async:!0,format:"assemblyai",models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"nvidia-asr",models:[{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/transcriptions",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-asr",name:"Qwen3 ASR"}]}},a={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",models:[{id:"tts-1",name:"TTS 1"},{id:"tts-1-hd",name:"TTS 1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"aura-asteria-en",name:"Aura Asteria (EN)"},{id:"aura-luna-en",name:"Aura Luna (EN)"},{id:"aura-stella-en",name:"Aura Stella (EN)"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"nvidia/fastpitch",name:"FastPitch"},{id:"nvidia/tacotron2",name:"Tacotron2"}]},elevenlabs:{id:"elevenlabs",baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},coqui:{id:"coqui",baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},tortoise:{id:"tortoise",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]},inworld:{id:"inworld",baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max"},{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini"}]},cartesia:{id:"cartesia",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},playht:{id:"playht",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play3.0 Mini"}]}};function i(e,t,a){if(!e)return{provider:null,model:null};for(let[a]of Object.entries(t))if(e.startsWith(a+"/"))return{provider:a,model:e.slice(a.length+1)};for(let[a,i]of Object.entries(t))if(i.models.some(t=>t.id===e))return{provider:a,model:e};if(a){for(let t of a)if(e.startsWith(t.id+"/"))return{provider:t.id,model:e.slice(t.id.length+1)}}return{provider:null,model:e}}e.s(["buildDynamicAudioProvider",0,function(e,t){if(!e.prefix||!e.baseUrl)throw Error("Invalid provider_node: missing prefix or baseUrl");let a=e.baseUrl.replace(/\/+$/,"");return{id:e.prefix,baseUrl:`${a}${t}`,authType:"none",authHeader:"none",models:[]}},"getAllAudioModels",0,function(){let e=[];for(let[a,i]of Object.entries(t))for(let t of i.models)e.push({id:t.id.startsWith(`${a}/`)?t.id:`${a}/${t.id}`,name:t.name,provider:a,subtype:"transcription"});for(let[t,i]of Object.entries(a))for(let a of i.models)e.push({id:a.id.startsWith(`${t}/`)?a.id:`${t}/${a.id}`,name:a.name,provider:t,subtype:"speech"});return e},"getSpeechProvider",0,function(e){return a[e]||null},"getTranscriptionProvider",0,function(e){return t[e]||null},"parseSpeechModel",0,function(e,t){return i(e,a,t)},"parseTranscriptionModel",0,function(e,a){return i(e,t,a)}])},445568,e=>e.a(async(t,a)=>{try{var i=e.i(224010),o=e.i(970620),r=t([o]);async function n(){return new Response(null,{headers:i.CORS_HEADERS})}async function s(e){return(0,o.getUnifiedModelsResponse)(e,{"Content-Type":"application/json",...i.CORS_HEADERS})}[o]=r.then?(await r)():r,e.s(["GET",0,s,"OPTIONS",0,n]),a()}catch(e){a(e)}},!1),818066,e=>e.a(async(t,a)=>{try{var i=e.i(747909),o=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),l=e.i(174677),d=e.i(869741),c=e.i(316795),p=e.i(487718),u=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),b=e.i(10372),y=e.i(193695);e.i(820232);var v=e.i(600220),w=e.i(445568),x=t([w]);[w]=x.then?(await x)():x;let I=new i.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/v1/route",pathname:"/api/v1",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/route.ts",nextConfigOutput:"standalone",userland:w,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:E,serverHooks:_}=I;async function A(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),I.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/v1/route";i=i.replace(/\/index$/,"")||"/";let r=await I.prepare(e,t,{srcPage:i,multiZoneDraftMode:!1});if(!r)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:x,nextConfig:A,parsedUrl:S,isDraftMode:E,prerenderManifest:_,routerServerContext:k,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:C,serverActionsManifest:F}=r,O=(0,d.normalizeAppPath)(i),D=!!(_.dynamicRoutes[O]||_.routes[P]),U=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!_.routes[P],t=_.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await U();throw new y.NoFallbackError}}let H=null;!D||I.isDev||E||(H=P,H="/index"===H?"/":H);let N=!0===I.isDev||!D,L=D&&!N;F&&C&&(0,l.setManifestsSingleton)({page:i,clientReferenceManifest:C,serverActionsManifest:F});let M=e.method||"GET",W=(0,s.getTracer)(),j=W.getActiveScopeSpan(),B=!!(null==k?void 0:k.isWrappedByNextServer),J=!!(0,n.getRequestMeta)(e,"minimalMode"),q=(0,n.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,A,_,J);null==q||q.resetRequestCache(),globalThis.__incrementalCache=q;let z={params:x,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:N,incrementalCache:q,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,i,o)=>I.onRequestError(e,t,i,o,k)},sharedContext:{buildId:w}},G=new c.NodeNextRequest(e),$=new c.NodeNextResponse(t),K=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let r,n=async e=>I.handle(K,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=W.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=a.get("next.route");if(o){let t=`${M} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",o),r.updateName(t))}else e.updateName(`${M} ${i}`)}),l=async r=>{var s,l;let d=async({previousCacheEntry:o})=>{try{if(!J&&R&&T&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(r);e.fetchMetrics=z.renderOpts.fetchMetrics;let s=z.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=z.renderOpts.collectedTags;if(!D)return await (0,h.sendResponse)(G,$,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[b.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=b.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,o=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=b.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:i,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:R})},!1,k),t}},c=await I.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:J});if(!D)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});J||t.setHeader("x-nextjs-cache",R?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return J&&D||p.delete(b.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(G,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};B&&j?await l(j):(r=W.getActiveScopeSpan(),await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${i}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l),void 0,!B))}catch(t){if(t instanceof y.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:R})},!1,k),D)throw t;return await (0,h.sendResponse)(G,$,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:E})},"routeModule",0,I,"serverHooks",0,_,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,E]),a()}catch(e){a(e)}},!1),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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
3
3
 
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0pylsu2._.js.map
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0vy97gy._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[677850,e=>e.a(async(t,r)=>{try{let t=await e.y("zod");e.n(t),r()}catch(e){r(e)}},!0),224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,477468,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function a(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))}function n(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;e++)r[e]=t.charCodeAt(e);return r}e.s(["concat",0,function(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let a of e)t.set(a,r),r+=a.length;return t},"decoder",0,r,"encode",0,function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let a=e.charCodeAt(r);if(a>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=a}return t},"encoder",0,t],632802),e.s(["decodeBase64",0,n,"encodeBase64",0,a],477468),e.s(["decode",0,function(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{return n(t)}catch{throw TypeError("The input to be decoded is not correctly encoded.")}},"encode",0,function(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):a(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",0,class extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"},"JOSENotSupported",0,class extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"},"JWSInvalid",0,class extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"},"JWSSignatureVerificationFailed",0,class extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}},"JWTClaimValidationFailed",0,class extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",a="unspecified"){super(e,{cause:{claim:r,reason:a,payload:t}}),this.claim=r,this.reason=a,this.payload=t}},"JWTExpired",0,class extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",a="unspecified"){super(e,{cause:{claim:r,reason:a,payload:t}}),this.claim=r,this.reason=a,this.payload=t}},"JWTInvalid",0,class extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}e.s(["isDisjoint",0,function(...e){let t,r=e.filter(Boolean);if(0===r.length||1===r.length)return!0;for(let e of r){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0},"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",0,t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},809306,e=>e.a(async(t,r)=>{try{var a=e.i(224010),n=e.i(311250),s=e.i(352812),o=t([n]);[n]=o.then?(await o)():o;let d=!1;async function i(){d||(await (0,s.initTranslators)(),d=!0,console.log("[SSE] Translators initialized for /v1/messages"))}async function l(){return new Response(null,{headers:{"Access-Control-Allow-Origin":a.CORS_ORIGIN,"Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function c(e){return await i(),await (0,n.handleChat)(e)}e.s(["OPTIONS",0,l,"POST",0,c]),r()}catch(e){r(e)}},!1),290539,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),c=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),h=e.i(47587),_=e.i(666012),R=e.i(570101),E=e.i(626937),f=e.i(10372),y=e.i(193695);e.i(820232);var v=e.i(600220),g=e.i(809306),A=t([g]);[g]=A.then?(await A)():A;let O=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/v1/messages/route",pathname:"/api/v1/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/v1/messages/route.ts",nextConfigOutput:"standalone",userland:g,...{}}),{workAsyncStorage:T,workUnitAsyncStorage:S,serverHooks:I}=O;async function m(e,t,r){r.requestMeta&&(0,o.setRequestMeta)(e,r.requestMeta),O.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/v1/messages/route";a=a.replace(/\/index$/,"")||"/";let s=await O.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:g,params:A,nextConfig:m,parsedUrl:T,isDraftMode:S,prerenderManifest:I,routerServerContext:w,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,resolvedPathname:b,clientReferenceManifest:x,serverActionsManifest:N}=s,D=(0,c.normalizeAppPath)(a),U=!!(I.dynamicRoutes[D]||I.routes[b]),J=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,T,!1):t.end("This page could not be found"),null);if(U&&!S){let e=!!I.routes[b],t=I.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(m.adapterPath)return await J();throw new y.NoFallbackError}}let k=null;!U||O.isDev||S||(k=b,k="/index"===k?"/":k);let j=!0===O.isDev||!U,L=U&&!j;N&&x&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:x,serverActionsManifest:N});let W=e.method||"GET",M=(0,i.getTracer)(),q=M.getActiveScopeSpan(),H=!!(null==w?void 0:w.isWrappedByNextServer),K=!!(0,o.getRequestMeta)(e,"minimalMode"),B=(0,o.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,m,I,K);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let F={params:A,previewProps:I.preview,renderOpts:{experimental:{authInterrupts:!!m.experimental.authInterrupts},cacheComponents:!!m.cacheComponents,supportsDynamicResponse:j,incrementalCache:B,cacheLifeProfiles:m.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>O.onRequestError(e,t,a,n,w)},sharedContext:{buildId:g}},G=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),$=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let s,o=async e=>O.handle($,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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 n=r.get("next.route");if(n){let t=`${W} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",n),s.updateName(t))}else e.updateName(`${W} ${a}`)}),l=async s=>{var i,l;let c=async({previousCacheEntry:n})=>{try{if(!K&&C&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=F.renderOpts.fetchMetrics;let i=F.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let l=F.renderOpts.collectedTags;if(!U)return await (0,_.sendResponse)(G,V,a,F.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,R.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await O.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,w),t}},d=await O.handleResponse({req:e,nextConfig:m,cacheKey:k,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:P,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:K});if(!U)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,R.fromNodeOutgoingHttpHeaders)(d.value.headers);return K&&U||u.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,E.getCacheControlHeader)(d.cacheControl)),await (0,_.sendResponse)(G,V,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};H&&q?await l(q):(s=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(p.BaseServerSpan.handleRequest,{spanName:`${W} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":W,"http.target":e.url}},l),void 0,!H))}catch(t){if(t instanceof y.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,w),U)throw t;return await (0,_.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,m,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:S})},"routeModule",0,O,"serverHooks",0,I,"workAsyncStorage",0,T,"workUnitAsyncStorage",0,S]),r()}catch(e){r(e)}},!1),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_12~h.oz._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_0hk12it._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},605589,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_localDb_ts_0ml5l_h._.js"].map(t=>e.l(t))).then(()=>t(969738)))},901259,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_http2_0j-h654._.js"].map(t=>e.l(t))).then(()=>t(925328)))},828068,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_promptCache_index_ts_0jus6ym._.js"].map(t=>e.l(t))).then(()=>t(198426)))},537776,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_usageDb_ts_0oz3f~n._.js"].map(t=>e.l(t))).then(()=>t(36197)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0~s45~f._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0wd~o5b._.js.map