n9router 0.3.87 → 0.3.89

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 (262) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  4. package/.next/standalone/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  19. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.rsc +10 -10
  28. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
  29. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  30. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  32. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  33. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/callback.html +1 -1
  53. package/.next/standalone/.next/server/app/callback.rsc +12 -12
  54. package/.next/standalone/.next/server/app/callback.segments/_full.segment.rsc +12 -12
  55. package/.next/standalone/.next/server/app/callback.segments/_head.segment.rsc +4 -4
  56. package/.next/standalone/.next/server/app/callback.segments/_index.segment.rsc +5 -5
  57. package/.next/standalone/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  59. package/.next/standalone/.next/server/app/callback.segments/callback.segment.rsc +3 -3
  60. package/.next/standalone/.next/server/app/dashboard/basic-chat.html +1 -1
  61. package/.next/standalone/.next/server/app/dashboard/basic-chat.rsc +12 -12
  62. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  63. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +3 -3
  64. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  65. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  66. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +12 -12
  67. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +4 -4
  68. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -5
  69. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  70. package/.next/standalone/.next/server/app/dashboard/cli-tools.html +1 -1
  71. package/.next/standalone/.next/server/app/dashboard/cli-tools.rsc +12 -12
  72. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  73. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +3 -3
  74. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  75. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  76. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +12 -12
  77. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +4 -4
  78. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -5
  79. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/dashboard/combos.html +1 -1
  81. package/.next/standalone/.next/server/app/dashboard/combos.rsc +13 -13
  82. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  83. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +3 -3
  84. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  85. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  86. package/.next/standalone/.next/server/app/dashboard/combos.segments/_full.segment.rsc +13 -13
  87. package/.next/standalone/.next/server/app/dashboard/combos.segments/_head.segment.rsc +4 -4
  88. package/.next/standalone/.next/server/app/dashboard/combos.segments/_index.segment.rsc +5 -5
  89. package/.next/standalone/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/dashboard/endpoint.html +1 -1
  91. package/.next/standalone/.next/server/app/dashboard/endpoint.rsc +12 -12
  92. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  93. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +3 -3
  94. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  95. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  96. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +12 -12
  97. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +4 -4
  98. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -5
  99. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  100. package/.next/standalone/.next/server/app/dashboard/mitm.html +1 -1
  101. package/.next/standalone/.next/server/app/dashboard/mitm.rsc +12 -12
  102. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  103. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +3 -3
  104. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  105. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  106. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +12 -12
  107. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +4 -4
  108. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -5
  109. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  110. package/.next/standalone/.next/server/app/dashboard/profile.html +1 -1
  111. package/.next/standalone/.next/server/app/dashboard/profile.rsc +13 -13
  112. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  113. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +3 -3
  114. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  115. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  116. package/.next/standalone/.next/server/app/dashboard/profile.segments/_full.segment.rsc +13 -13
  117. package/.next/standalone/.next/server/app/dashboard/profile.segments/_head.segment.rsc +4 -4
  118. package/.next/standalone/.next/server/app/dashboard/profile.segments/_index.segment.rsc +5 -5
  119. package/.next/standalone/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  120. package/.next/standalone/.next/server/app/dashboard/providers/new.html +1 -1
  121. package/.next/standalone/.next/server/app/dashboard/providers/new.rsc +13 -13
  122. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  123. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +3 -3
  124. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  125. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  126. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  127. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +13 -13
  128. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +4 -4
  129. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -5
  130. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/dashboard/providers.html +1 -1
  132. package/.next/standalone/.next/server/app/dashboard/providers.rsc +13 -13
  133. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  134. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  135. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  136. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  137. package/.next/standalone/.next/server/app/dashboard/providers.segments/_full.segment.rsc +13 -13
  138. package/.next/standalone/.next/server/app/dashboard/providers.segments/_head.segment.rsc +4 -4
  139. package/.next/standalone/.next/server/app/dashboard/providers.segments/_index.segment.rsc +5 -5
  140. package/.next/standalone/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/dashboard/proxy-pools.html +1 -1
  142. package/.next/standalone/.next/server/app/dashboard/proxy-pools.rsc +13 -13
  143. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  144. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +3 -3
  145. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  146. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  147. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +13 -13
  148. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +4 -4
  149. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -5
  150. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/dashboard/quota.html +2 -2
  152. package/.next/standalone/.next/server/app/dashboard/quota.rsc +13 -13
  153. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  154. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +3 -3
  155. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  156. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  157. package/.next/standalone/.next/server/app/dashboard/quota.segments/_full.segment.rsc +13 -13
  158. package/.next/standalone/.next/server/app/dashboard/quota.segments/_head.segment.rsc +4 -4
  159. package/.next/standalone/.next/server/app/dashboard/quota.segments/_index.segment.rsc +5 -5
  160. package/.next/standalone/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  161. package/.next/standalone/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/dashboard/settings/pricing.html +1 -1
  163. package/.next/standalone/.next/server/app/dashboard/settings/pricing.rsc +12 -12
  164. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +12 -12
  165. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +4 -4
  166. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
  167. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  168. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  169. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +3 -3
  170. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +3 -3
  171. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +3 -3
  172. package/.next/standalone/.next/server/app/dashboard/translator.html +1 -1
  173. package/.next/standalone/.next/server/app/dashboard/translator.rsc +13 -13
  174. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  175. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +3 -3
  176. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  177. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  178. package/.next/standalone/.next/server/app/dashboard/translator.segments/_full.segment.rsc +13 -13
  179. package/.next/standalone/.next/server/app/dashboard/translator.segments/_head.segment.rsc +4 -4
  180. package/.next/standalone/.next/server/app/dashboard/translator.segments/_index.segment.rsc +5 -5
  181. package/.next/standalone/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  182. package/.next/standalone/.next/server/app/dashboard/usage.html +1 -1
  183. package/.next/standalone/.next/server/app/dashboard/usage.rsc +13 -13
  184. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
  185. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +3 -3
  186. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  187. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  188. package/.next/standalone/.next/server/app/dashboard/usage.segments/_full.segment.rsc +13 -13
  189. package/.next/standalone/.next/server/app/dashboard/usage.segments/_head.segment.rsc +4 -4
  190. package/.next/standalone/.next/server/app/dashboard/usage.segments/_index.segment.rsc +5 -5
  191. package/.next/standalone/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  192. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  193. package/.next/standalone/.next/server/app/dashboard.rsc +12 -12
  194. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  195. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  196. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  197. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +12 -12
  198. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +4 -4
  199. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +5 -5
  200. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  201. package/.next/standalone/.next/server/app/index.html +1 -1
  202. package/.next/standalone/.next/server/app/index.rsc +10 -10
  203. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  204. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +10 -10
  205. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  206. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
  207. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  208. package/.next/standalone/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  209. package/.next/standalone/.next/server/app/landing.html +1 -1
  210. package/.next/standalone/.next/server/app/landing.rsc +12 -12
  211. package/.next/standalone/.next/server/app/landing.segments/_full.segment.rsc +12 -12
  212. package/.next/standalone/.next/server/app/landing.segments/_head.segment.rsc +4 -4
  213. package/.next/standalone/.next/server/app/landing.segments/_index.segment.rsc +5 -5
  214. package/.next/standalone/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  215. package/.next/standalone/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  216. package/.next/standalone/.next/server/app/landing.segments/landing.segment.rsc +3 -3
  217. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/login.html +1 -1
  219. package/.next/standalone/.next/server/app/login.rsc +12 -12
  220. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +12 -12
  221. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +4 -4
  222. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +5 -5
  223. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  224. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  225. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +3 -3
  226. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  227. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.yvcis._.js +1 -1
  228. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0148t9m._.js +1 -1
  229. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b802lh._.js +1 -1
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kpc-o6._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lc~.sk._.js +1 -1
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lp_pm5._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pwrfp1._.js +1 -1
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uw3x8s._.js +1 -1
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y.reft._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y5ae.7._.js +1 -1
  237. package/.next/standalone/.next/server/chunks/_0itng60._.js +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/_00c58qj._.js +1 -1
  239. package/.next/standalone/.next/server/chunks/ssr/src_0_xhepz._.js +1 -1
  240. package/.next/standalone/.next/server/chunks/ssr/src_app_(dashboard)_dashboard_providers_[id]_page_0-3xvzc.js +1 -1
  241. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  242. package/.next/standalone/.next/server/pages/404.html +1 -1
  243. package/.next/standalone/.next/server/pages/500.html +1 -1
  244. package/.next/standalone/.next/static/chunks/0b285gqd-hcvu.js +1 -0
  245. package/.next/standalone/.next/static/chunks/{0fic3ew7j~9an.js → 0hgyabetclndg.js} +1 -1
  246. package/.next/standalone/mitm/paths.js +17 -0
  247. package/.next/standalone/package-lock.json +2 -2
  248. package/.next/standalone/package.json +1 -1
  249. package/.next/standalone/scripts/publish-npm.sh +2 -0
  250. package/.next/standalone/src/app/(dashboard)/dashboard/providers/[id]/page.js +2 -1
  251. package/.next/standalone/src/mitm/paths.js +17 -0
  252. package/.next/static/chunks/0b285gqd-hcvu.js +1 -0
  253. package/.next/static/chunks/{0fic3ew7j~9an.js → 0hgyabetclndg.js} +1 -1
  254. package/package.json +1 -1
  255. package/.next/standalone/.next/static/chunks/09g0cm09ynuao.js +0 -1
  256. package/.next/static/chunks/09g0cm09ynuao.js +0 -1
  257. /package/.next/standalone/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_buildManifest.js +0 -0
  258. /package/.next/standalone/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_clientMiddlewareManifest.js +0 -0
  259. /package/.next/standalone/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_ssgManifest.js +0 -0
  260. /package/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_buildManifest.js +0 -0
  261. /package/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_clientMiddlewareManifest.js +0 -0
  262. /package/.next/static/{p9jVbJQhFsaISYB4CfDfF → XSoZ0BJFg1b0W2IGyybf7}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[46786,(e,t,o)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,o)=>{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"))},56704,(e,t,o)=>{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"))},32319,(e,t,o)=>{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"))},70406,(e,t,o)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,o)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},27699,(e,t,o)=>{t.exports=e.x("events",()=>require("events"))},88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},o={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},a={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},n="openai-compatible-",r="anthropic-compatible-",s={...t,...o,...i,...a};function l(e){for(let t of Object.values(s))if(t.alias===e||t.id===e)return t;return null}Object.values(s).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(s).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,r,"APIKEY_PROVIDERS",0,a,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,o,"OAUTH_PROVIDERS",0,i,"OPENAI_COMPATIBLE_PREFIX",0,n,"getProviderAlias",0,function(e){let t=s[e];return t?.alias||e},"getProviderByAlias",0,l,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(r)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"resolveProviderId",0,function(e){let t=l(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.87",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},53526,e=>{"use strict";var t=e.i(20491);Object.entries(e.i(88077).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let o=Object.entries(t.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,o])},55870,e=>{"use strict";var t=e.i(12943);e.i(88077),e.i(53526),t.default.version,e.s(["CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3}])},39838,e=>{"use strict";var t=e.i(27699),o=e.i(55870);let i=["log","info","warn","error","debug"];e.g._consoleLogBufferState||(e.g._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new t.EventEmitter},e.g._consoleLogBufferState.emitter.setMaxListeners(50));let a=e.g._consoleLogBufferState;a.emitter||(a.emitter=new t.EventEmitter,a.emitter.setMaxListeners(50));let n=/\x1b\[[0-9;]*m/g;function r(e){return e.replace(n,"")}function s(e){if("string"==typeof e)return r(e);if(e instanceof Error)return r(e.stack||e.message||String(e));try{return r(JSON.stringify(e))}catch{return r(String(e))}}e.s(["clearConsoleLogs",0,function(){a.logs=[],a.emitter.emit("clear")},"getConsoleEmitter",0,function(){return a.emitter},"getConsoleLogs",0,function(){return a.logs},"initConsoleLogCapture",0,function(){if(!a.patched){for(let e of i)a.originals[e]=console[e],console[e]=(...t)=>{!function(e){a.logs.push(e);let t=o.CONSOLE_LOG_CONFIG.maxLines;a.logs.length>t&&(a.logs=a.logs.slice(-t)),a.emitter.emit("line",e)}(t.map(s).join(" ")),a.originals[e](...t)};a.patched=!0}}])},99280,e=>{"use strict";var t=e.i(47909),o=e.i(74017),i=e.i(96250),a=e.i(59756),n=e.i(61916),r=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),p=e.i(47587),u=e.i(66012),m=e.i(70101),h=e.i(26937),g=e.i(10372),x=e.i(93695);e.i(20232);var f=e.i(220),b=e.i(39838);async function v(){let e=new TextEncoder,t=(0,b.getConsoleEmitter)(),o={closed:!1,send:null,keepalive:null};return new Response(new ReadableStream({start(i){let a=(0,b.getConsoleLogs)();a.length>0&&i.enqueue(e.encode(`data: ${JSON.stringify({type:"init",logs:a})}
1
+ module.exports=[46786,(e,t,o)=>{t.exports=e.x("os",()=>require("os"))},18622,(e,t,o)=>{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"))},56704,(e,t,o)=>{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"))},32319,(e,t,o)=>{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"))},70406,(e,t,o)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,o)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},27699,(e,t,o)=>{t.exports=e.x("events",()=>require("events"))},88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},o={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},a={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},n="openai-compatible-",r="anthropic-compatible-",s={...t,...o,...i,...a};function l(e){for(let t of Object.values(s))if(t.alias===e||t.id===e)return t;return null}Object.values(s).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(s).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,r,"APIKEY_PROVIDERS",0,a,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,o,"OAUTH_PROVIDERS",0,i,"OPENAI_COMPATIBLE_PREFIX",0,n,"getProviderAlias",0,function(e){let t=s[e];return t?.alias||e},"getProviderByAlias",0,l,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(r)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"resolveProviderId",0,function(e){let t=l(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.89",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},53526,e=>{"use strict";var t=e.i(20491);Object.entries(e.i(88077).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let o=Object.entries(t.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,o])},55870,e=>{"use strict";var t=e.i(12943);e.i(88077),e.i(53526),t.default.version,e.s(["CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3}])},39838,e=>{"use strict";var t=e.i(27699),o=e.i(55870);let i=["log","info","warn","error","debug"];e.g._consoleLogBufferState||(e.g._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new t.EventEmitter},e.g._consoleLogBufferState.emitter.setMaxListeners(50));let a=e.g._consoleLogBufferState;a.emitter||(a.emitter=new t.EventEmitter,a.emitter.setMaxListeners(50));let n=/\x1b\[[0-9;]*m/g;function r(e){return e.replace(n,"")}function s(e){if("string"==typeof e)return r(e);if(e instanceof Error)return r(e.stack||e.message||String(e));try{return r(JSON.stringify(e))}catch{return r(String(e))}}e.s(["clearConsoleLogs",0,function(){a.logs=[],a.emitter.emit("clear")},"getConsoleEmitter",0,function(){return a.emitter},"getConsoleLogs",0,function(){return a.logs},"initConsoleLogCapture",0,function(){if(!a.patched){for(let e of i)a.originals[e]=console[e],console[e]=(...t)=>{!function(e){a.logs.push(e);let t=o.CONSOLE_LOG_CONFIG.maxLines;a.logs.length>t&&(a.logs=a.logs.slice(-t)),a.emitter.emit("line",e)}(t.map(s).join(" ")),a.originals[e](...t)};a.patched=!0}}])},99280,e=>{"use strict";var t=e.i(47909),o=e.i(74017),i=e.i(96250),a=e.i(59756),n=e.i(61916),r=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),p=e.i(47587),u=e.i(66012),m=e.i(70101),h=e.i(26937),g=e.i(10372),x=e.i(93695);e.i(20232);var f=e.i(220),b=e.i(39838);async function v(){let e=new TextEncoder,t=(0,b.getConsoleEmitter)(),o={closed:!1,send:null,keepalive:null};return new Response(new ReadableStream({start(i){let a=(0,b.getConsoleLogs)();a.length>0&&i.enqueue(e.encode(`data: ${JSON.stringify({type:"init",logs:a})}
2
2
 
3
3
  `)),o.send=t=>{if(!o.closed)try{i.enqueue(e.encode(`data: ${JSON.stringify({type:"line",line:t})}
4
4
 
@@ -1,3 +1,3 @@
1
- module.exports=[46786,(e,t,i)=>{t.exports=e.x("os",()=>require("os"))},24361,(e,t,i)=>{t.exports=e.x("util",()=>require("util"))},18622,(e,t,i)=>{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"))},56704,(e,t,i)=>{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"))},32319,(e,t,i)=>{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"))},24725,(e,t,i)=>{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"))},14747,(e,t,i)=>{t.exports=e.x("path",()=>require("path"))},70406,(e,t,i)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,i)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,t,i)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,i)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,i)=>{t.exports=e.x("node:path",()=>require("node:path"))},57764,(e,t,i)=>{t.exports=e.x("node:url",()=>require("node:url"))},27699,(e,t,i)=>{t.exports=e.x("events",()=>require("events"))},2157,(e,t,i)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,i)=>{t.exports=e.x("node:os",()=>require("node:os"))},22593,67059,21023,e=>{"use strict";e.s(["Low",0,class{adapter;data;constructor(e,t){!function(e,t){if(void 0===e)throw Error("lowdb: missing adapter");if(void 0===t)throw Error("lowdb: missing default data")}(e,t),this.adapter=e,this.data=t}async read(){let e=await this.adapter.read();e&&(this.data=e)}async write(){this.data&&await this.adapter.write(this.data)}async update(e){e(this.data),await this.write()}}],22593),e.i(2157);var t=e.i(12714),i=e.i(50227),r=e.i(57764);async function a(e,t,i){for(let r=0;r<t;r++)try{return await e()}catch(e){if(r<t-1)await new Promise(e=>setTimeout(e,i));else throw e}}class o{#e;#t;#i=!1;#r=null;#a=null;#o=null;#n=null;#s(e){return this.#n=e,this.#o||=new Promise((e,t)=>{this.#a=[e,t]}),new Promise((e,t)=>{this.#o?.then(e).catch(t)})}async #l(e){this.#i=!0;try{await (0,t.writeFile)(this.#t,e,"utf-8"),await a(async()=>{await (0,t.rename)(this.#t,this.#e)},10,100),this.#r?.[0]()}catch(e){throw e instanceof Error&&this.#r?.[1](e),e}finally{if(this.#i=!1,this.#r=this.#a,this.#a=this.#o=null,null!==this.#n){let e=this.#n;this.#n=null,await this.write(e)}}}constructor(e){this.#e=e,this.#t=function(e){let t=e instanceof URL?(0,r.fileURLToPath)(e):e.toString();return(0,i.join)((0,i.dirname)(t),`.${(0,i.basename)(t)}.tmp`)}(e)}async write(e){return this.#i?this.#s(e):this.#l(e)}}class n{#e;#c;constructor(e){this.#e=e,this.#c=new o(e)}async read(){let e;try{e=await (0,t.readFile)(this.#e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}return e}write(e){return this.#c.write(e)}}class s{#d;#p;#u;constructor(e,{parse:t,stringify:i}){this.#d=new n(e),this.#p=t,this.#u=i}async read(){let e=await this.#d.read();return null===e?null:this.#p(e)}write(e){return this.#d.write(this.#u(e))}}e.s(["JSONFile",0,class extends s{constructor(e){super(e,{parse:JSON.parse,stringify:e=>JSON.stringify(e,null,2)})}}],67059),e.s([],21023)},66680,(e,t,i)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},88947,(e,t,i)=>{t.exports=e.x("stream",()=>require("stream"))},12249,(e,t,i)=>{t.exports=e.x("constants",()=>require("constants"))},49719,(e,t,i)=>{t.exports=e.x("assert",()=>require("assert"))},69789,e=>{"use strict";e.i(26753),e.s([])},88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},i={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},r={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},a={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},o="openai-compatible-",n="anthropic-compatible-",s={...t,...i,...r,...a};function l(e){for(let t of Object.values(s))if(t.alias===e||t.id===e)return t;return null}Object.values(s).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(s).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,n,"APIKEY_PROVIDERS",0,a,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,i,"OAUTH_PROVIDERS",0,r,"OPENAI_COMPATIBLE_PREFIX",0,o,"getProviderAlias",0,function(e){let t=s[e];return t?.alias||e},"getProviderByAlias",0,l,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(o)},"resolveProviderId",0,function(e){let t=l(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.87",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},53526,e=>{"use strict";var t=e.i(20491);Object.entries(e.i(88077).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let i=Object.entries(t.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,i])},55870,e=>{"use strict";var t=e.i(12943);e.i(88077),e.i(53526),t.default.version,e.s(["CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3}])},37828,e=>{"use strict";var t=e.i(47909),i=e.i(74017),r=e.i(96250),a=e.i(59756),o=e.i(61916),n=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),p=e.i(47587),u=e.i(66012),m=e.i(70101),h=e.i(26937),x=e.i(10372),w=e.i(93695);e.i(20232);var f=e.i(220),g=e.i(89171);e.i(69789);var b=e.i(26753);e.i(55870);var v=e.i(53526);async function y(){try{let e=await (0,b.getModelAliases)(),t=v.AI_MODELS.map(t=>{let i=`${t.provider}/${t.model}`;return{...t,fullModel:i,alias:e[i]||t.model}});return g.NextResponse.json({models:t})}catch(e){return console.log("Error fetching models:",e),g.NextResponse.json({error:"Failed to fetch models"},{status:500})}}async function I(e){try{let{model:t,alias:i}=await e.json();if(!t||!i)return g.NextResponse.json({error:"Model and alias required"},{status:400});let r=await (0,b.getModelAliases)();if(Object.entries(r).find(([e,r])=>r===i&&e!==t))return g.NextResponse.json({error:"Alias already in use"},{status:400});return await (0,b.setModelAlias)(t,i),g.NextResponse.json({success:!0,model:t,alias:i})}catch(e){return console.log("Error updating alias:",e),g.NextResponse.json({error:"Failed to update alias"},{status:500})}}e.s(["GET",0,y,"PUT",0,I],86625);var A=e.i(86625);let E=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/models/route.js",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:C,serverHooks:F}=E;async function _(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/models/route";g=g.replace(/\/index$/,"")||"/";let b=await E.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:I,parsedUrl:A,isDraftMode:R,prerenderManifest:C,routerServerContext:F,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=b,D=(0,s.normalizeAppPath)(g),q=!!(C.dynamicRoutes[D]||C.routes[P]),S=async()=>((null==F?void 0:F.render404)?await F.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!R){let e=!!C.routes[P],t=C.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(I.adapterPath)return await S();throw new w.NoFallbackError}}let M=null;!q||E.isDev||R||(M="/index"===(M=P)?"/":M);let j=!0===E.isDev||!q,T=q&&!j;N&&k&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:N});let L=e.method||"GET",U=(0,o.getTracer)(),B=U.getActiveScopeSpan(),G=!!(null==F?void 0:F.isWrappedByNextServer),H=!!(0,a.getRequestMeta)(e,"minimalMode"),V=(0,a.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,I,C,H);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let K={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:j,incrementalCache:V,cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,r,a)=>E.onRequestError(e,t,r,a,F)},sharedContext:{buildId:v}},$=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest($,(0,c.signalFromNodeResponse)(t));try{let a,n=async e=>E.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let i=U.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=i.get("next.route");if(r){let t=`${L} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",r),a.updateName(t))}else e.updateName(`${L} ${g}`)}),s=async a=>{var o,s;let l=async({previousCacheEntry:i})=>{try{if(!H&&_&&O&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await n(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let s=K.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=K.renderOpts.collectedTags;if(!q)return await (0,u.sendResponse)($,X,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:r}}}}catch(t){throw(null==i?void 0:i.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:T,isOnDemandRevalidate:_})},!1,F),t}},c=await E.handleResponse({req:e,nextConfig:I,cacheKey:M,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:H});if(!q)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.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});H||t.setHeader("x-nextjs-cache",_?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return H&&q||d.delete(x.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,u.sendResponse)($,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};G&&B?await s(B):(a=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},s),void 0,!G))}catch(t){if(t instanceof w.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:T,isOnDemandRevalidate:_})},!1,F),q)throw t;return await (0,u.sendResponse)($,X,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:C})},"routeModule",0,E,"serverHooks",0,F,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,C],37828)},36498,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0kaoh2i._.js"].map(t=>e.l(t))).then(()=>t(21297)))},66510,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_0oa_fz9.js"].map(t=>e.l(t))).then(()=>t(28628)))}];
1
+ module.exports=[46786,(e,t,i)=>{t.exports=e.x("os",()=>require("os"))},24361,(e,t,i)=>{t.exports=e.x("util",()=>require("util"))},18622,(e,t,i)=>{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"))},56704,(e,t,i)=>{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"))},32319,(e,t,i)=>{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"))},24725,(e,t,i)=>{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"))},14747,(e,t,i)=>{t.exports=e.x("path",()=>require("path"))},70406,(e,t,i)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,i)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},22734,(e,t,i)=>{t.exports=e.x("fs",()=>require("fs"))},12714,(e,t,i)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,i)=>{t.exports=e.x("node:path",()=>require("node:path"))},57764,(e,t,i)=>{t.exports=e.x("node:url",()=>require("node:url"))},27699,(e,t,i)=>{t.exports=e.x("events",()=>require("events"))},2157,(e,t,i)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,i)=>{t.exports=e.x("node:os",()=>require("node:os"))},22593,67059,21023,e=>{"use strict";e.s(["Low",0,class{adapter;data;constructor(e,t){!function(e,t){if(void 0===e)throw Error("lowdb: missing adapter");if(void 0===t)throw Error("lowdb: missing default data")}(e,t),this.adapter=e,this.data=t}async read(){let e=await this.adapter.read();e&&(this.data=e)}async write(){this.data&&await this.adapter.write(this.data)}async update(e){e(this.data),await this.write()}}],22593),e.i(2157);var t=e.i(12714),i=e.i(50227),r=e.i(57764);async function a(e,t,i){for(let r=0;r<t;r++)try{return await e()}catch(e){if(r<t-1)await new Promise(e=>setTimeout(e,i));else throw e}}class o{#e;#t;#i=!1;#r=null;#a=null;#o=null;#n=null;#s(e){return this.#n=e,this.#o||=new Promise((e,t)=>{this.#a=[e,t]}),new Promise((e,t)=>{this.#o?.then(e).catch(t)})}async #l(e){this.#i=!0;try{await (0,t.writeFile)(this.#t,e,"utf-8"),await a(async()=>{await (0,t.rename)(this.#t,this.#e)},10,100),this.#r?.[0]()}catch(e){throw e instanceof Error&&this.#r?.[1](e),e}finally{if(this.#i=!1,this.#r=this.#a,this.#a=this.#o=null,null!==this.#n){let e=this.#n;this.#n=null,await this.write(e)}}}constructor(e){this.#e=e,this.#t=function(e){let t=e instanceof URL?(0,r.fileURLToPath)(e):e.toString();return(0,i.join)((0,i.dirname)(t),`.${(0,i.basename)(t)}.tmp`)}(e)}async write(e){return this.#i?this.#s(e):this.#l(e)}}class n{#e;#c;constructor(e){this.#e=e,this.#c=new o(e)}async read(){let e;try{e=await (0,t.readFile)(this.#e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}return e}write(e){return this.#c.write(e)}}class s{#d;#p;#u;constructor(e,{parse:t,stringify:i}){this.#d=new n(e),this.#p=t,this.#u=i}async read(){let e=await this.#d.read();return null===e?null:this.#p(e)}write(e){return this.#d.write(this.#u(e))}}e.s(["JSONFile",0,class extends s{constructor(e){super(e,{parse:JSON.parse,stringify:e=>JSON.stringify(e,null,2)})}}],67059),e.s([],21023)},66680,(e,t,i)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},88947,(e,t,i)=>{t.exports=e.x("stream",()=>require("stream"))},12249,(e,t,i)=>{t.exports=e.x("constants",()=>require("constants"))},49719,(e,t,i)=>{t.exports=e.x("assert",()=>require("assert"))},69789,e=>{"use strict";e.i(26753),e.s([])},88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},i={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},r={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},a={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},o="openai-compatible-",n="anthropic-compatible-",s={...t,...i,...r,...a};function l(e){for(let t of Object.values(s))if(t.alias===e||t.id===e)return t;return null}Object.values(s).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(s).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,n,"APIKEY_PROVIDERS",0,a,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,i,"OAUTH_PROVIDERS",0,r,"OPENAI_COMPATIBLE_PREFIX",0,o,"getProviderAlias",0,function(e){let t=s[e];return t?.alias||e},"getProviderByAlias",0,l,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(o)},"resolveProviderId",0,function(e){let t=l(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.89",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},53526,e=>{"use strict";var t=e.i(20491);Object.entries(e.i(88077).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e);let i=Object.entries(t.PROVIDER_MODELS).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));e.s(["AI_MODELS",0,i])},55870,e=>{"use strict";var t=e.i(12943);e.i(88077),e.i(53526),t.default.version,e.s(["CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3}])},37828,e=>{"use strict";var t=e.i(47909),i=e.i(74017),r=e.i(96250),a=e.i(59756),o=e.i(61916),n=e.i(74677),s=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),p=e.i(47587),u=e.i(66012),m=e.i(70101),h=e.i(26937),x=e.i(10372),w=e.i(93695);e.i(20232);var f=e.i(220),g=e.i(89171);e.i(69789);var b=e.i(26753);e.i(55870);var v=e.i(53526);async function y(){try{let e=await (0,b.getModelAliases)(),t=v.AI_MODELS.map(t=>{let i=`${t.provider}/${t.model}`;return{...t,fullModel:i,alias:e[i]||t.model}});return g.NextResponse.json({models:t})}catch(e){return console.log("Error fetching models:",e),g.NextResponse.json({error:"Failed to fetch models"},{status:500})}}async function I(e){try{let{model:t,alias:i}=await e.json();if(!t||!i)return g.NextResponse.json({error:"Model and alias required"},{status:400});let r=await (0,b.getModelAliases)();if(Object.entries(r).find(([e,r])=>r===i&&e!==t))return g.NextResponse.json({error:"Alias already in use"},{status:400});return await (0,b.setModelAlias)(t,i),g.NextResponse.json({success:!0,model:t,alias:i})}catch(e){return console.log("Error updating alias:",e),g.NextResponse.json({error:"Failed to update alias"},{status:500})}}e.s(["GET",0,y,"PUT",0,I],86625);var A=e.i(86625);let E=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/models/route.js",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:R,workUnitAsyncStorage:C,serverHooks:F}=E;async function _(e,t,r){r.requestMeta&&(0,a.setRequestMeta)(e,r.requestMeta),E.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/models/route";g=g.replace(/\/index$/,"")||"/";let b=await E.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:I,parsedUrl:A,isDraftMode:R,prerenderManifest:C,routerServerContext:F,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=b,D=(0,s.normalizeAppPath)(g),q=!!(C.dynamicRoutes[D]||C.routes[P]),S=async()=>((null==F?void 0:F.render404)?await F.render404(e,t,A,!1):t.end("This page could not be found"),null);if(q&&!R){let e=!!C.routes[P],t=C.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(I.adapterPath)return await S();throw new w.NoFallbackError}}let M=null;!q||E.isDev||R||(M="/index"===(M=P)?"/":M);let j=!0===E.isDev||!q,T=q&&!j;N&&k&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:N});let L=e.method||"GET",U=(0,o.getTracer)(),B=U.getActiveScopeSpan(),G=!!(null==F?void 0:F.isWrappedByNextServer),H=!!(0,a.getRequestMeta)(e,"minimalMode"),V=(0,a.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,I,C,H);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let K={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:j,incrementalCache:V,cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,r,a)=>E.onRequestError(e,t,r,a,F)},sharedContext:{buildId:v}},$=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest($,(0,c.signalFromNodeResponse)(t));try{let a,n=async e=>E.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let i=U.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=i.get("next.route");if(r){let t=`${L} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),a&&a!==e&&(a.setAttribute("http.route",r),a.updateName(t))}else e.updateName(`${L} ${g}`)}),s=async a=>{var o,s;let l=async({previousCacheEntry:i})=>{try{if(!H&&_&&O&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await n(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let s=K.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=K.renderOpts.collectedTags;if(!q)return await (0,u.sendResponse)($,X,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:r}}}}catch(t){throw(null==i?void 0:i.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:T,isOnDemandRevalidate:_})},!1,F),t}},c=await E.handleResponse({req:e,nextConfig:I,cacheKey:M,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:H});if(!q)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.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});H||t.setHeader("x-nextjs-cache",_?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return H&&q||d.delete(x.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,u.sendResponse)($,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};G&&B?await s(B):(a=U.getActiveScopeSpan(),await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},s),void 0,!G))}catch(t){if(t instanceof w.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:T,isOnDemandRevalidate:_})},!1,F),q)throw t;return await (0,u.sendResponse)($,X,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:C})},"routeModule",0,E,"serverHooks",0,F,"workAsyncStorage",0,R,"workUnitAsyncStorage",0,C],37828)},36498,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0kaoh2i._.js"].map(t=>e.l(t))).then(()=>t(21297)))},66510,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_0oa_fz9.js"].map(t=>e.l(t))).then(()=>t(28628)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0y5ae.7._.js.map