@jheavenknows/bluerouter 1.0.59 → 1.0.61

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 (965) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +2 -1
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/routes-manifest.json +6 -0
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page.js +2 -2
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ollama-nodes/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +2 -2
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +2 -2
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page.js +16 -2
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/virtual-combos/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  81. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  88. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  92. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  94. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  96. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  97. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  99. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  102. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
  119. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js +2 -2
  127. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  133. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  145. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +2 -2
  163. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +2 -2
  165. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +5 -5
  179. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  195. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  207. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/ollama-model-memory/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/ollama-model-memory/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route.js +2 -2
  225. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/install/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/reservations/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/ollama-nodes/[id]/status/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/ollama-nodes/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/ollama-nodes/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/ollama-routing-targets/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  271. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  273. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  277. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  293. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  335. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/version/restart/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/virtual-combos/[id]/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js +1 -0
  385. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route.js.nft.json +1 -0
  386. package/app/.next-cli-build/server/app/api/virtual-combos/preview/route_client-reference-manifest.js +1 -0
  387. package/app/.next-cli-build/server/app/api/virtual-combos/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/virtual-combos/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  390. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  392. package/app/.next-cli-build/server/app/callback.html +1 -1
  393. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  394. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  395. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  396. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  397. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  398. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  401. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  402. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  403. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  406. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  407. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  409. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  410. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  411. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  412. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  413. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  414. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  416. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  417. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  419. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  420. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  421. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  422. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  423. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  424. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  426. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  427. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  429. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  431. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  432. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  433. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  437. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  439. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  442. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  443. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  445. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  447. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  448. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  450. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  451. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  452. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  453. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  454. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  455. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  457. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  458. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  460. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  461. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.html +1 -1
  462. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.rsc +6 -6
  463. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes/__PAGE__.segment.rsc +2 -2
  464. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard/ollama-nodes.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  467. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_full.segment.rsc +6 -6
  468. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_head.segment.rsc +1 -1
  469. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_index.segment.rsc +4 -4
  470. package/app/.next-cli-build/server/app/dashboard/ollama-nodes.segments/_tree.segment.rsc +2 -2
  471. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  472. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  473. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  476. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  477. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  478. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  479. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  480. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  481. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  482. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
  483. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  486. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  487. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
  488. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  489. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  490. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  491. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  492. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  493. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  496. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  497. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  498. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  499. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  500. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  501. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  502. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  503. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  504. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  505. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  508. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  509. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  510. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  511. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  512. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  514. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  515. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  517. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  518. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  519. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  520. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  521. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  522. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  524. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  529. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  531. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  532. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  533. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  534. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  535. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  539. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  541. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  542. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  543. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  544. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  545. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  546. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  547. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  548. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  549. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  550. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  551. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  552. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  554. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  555. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  556. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  557. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  558. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  560. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  561. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  562. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  563. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  564. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  565. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  566. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  567. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  568. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  569. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  570. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  571. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  572. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  573. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  574. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  575. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  576. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  577. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  578. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  579. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  580. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  582. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  583. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  584. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  585. package/app/.next-cli-build/server/app/dashboard/virtual-combos.html +1 -3
  586. package/app/.next-cli-build/server/app/dashboard/virtual-combos.rsc +6 -6
  587. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos/__PAGE__.segment.rsc +2 -2
  588. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard/virtual-combos.segment.rsc +1 -1
  589. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  590. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  591. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_full.segment.rsc +6 -6
  592. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_head.segment.rsc +1 -1
  593. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_index.segment.rsc +4 -4
  594. package/app/.next-cli-build/server/app/dashboard/virtual-combos.segments/_tree.segment.rsc +2 -2
  595. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  596. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  597. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  598. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  599. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  600. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  601. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  602. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  603. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  604. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  605. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  606. package/app/.next-cli-build/server/app/index.html +1 -1
  607. package/app/.next-cli-build/server/app/index.rsc +4 -4
  608. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  609. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  610. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  611. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  612. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  613. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  614. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  615. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  616. package/app/.next-cli-build/server/app/landing.html +1 -1
  617. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  618. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  619. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  620. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  621. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  622. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  623. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  624. package/app/.next-cli-build/server/app/login/page.js +2 -2
  625. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  627. package/app/.next-cli-build/server/app/login.html +1 -1
  628. package/app/.next-cli-build/server/app/login.rsc +4 -4
  629. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  630. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  631. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  632. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  633. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  634. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  635. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  636. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  637. package/app/.next-cli-build/server/app/page.js +2 -2
  638. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  639. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  640. package/app/.next-cli-build/server/app-paths-manifest.json +2 -1
  641. package/app/.next-cli-build/server/chunks/1661.js +1 -0
  642. package/app/.next-cli-build/server/chunks/1807.js +1 -0
  643. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  644. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  645. package/app/.next-cli-build/server/chunks/4884.js +1 -1
  646. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  647. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  648. package/app/.next-cli-build/server/chunks/7774.js +6 -6
  649. package/app/.next-cli-build/server/chunks/8255.js +1 -1
  650. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  651. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  652. package/app/.next-cli-build/server/functions-config-manifest.json +2 -1
  653. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  654. package/app/.next-cli-build/server/pages/404.html +1 -1
  655. package/app/.next-cli-build/server/pages/500.html +1 -1
  656. package/app/.next-cli-build/static/chunks/{1321-41e9eaeb3270b514.js → 1321-7cbf72e76c22b10a.js} +1 -1
  657. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/virtual-combos/page-7731b73f4ce55878.js +15 -0
  658. package/app/.next-cli-build/static/chunks/app/_global-error/{page-da2083459ec19741.js → page-092c69469068a0c3.js} +1 -1
  659. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/{route-da2083459ec19741.js → route-092c69469068a0c3.js} +1 -1
  660. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/{route-da2083459ec19741.js → route-092c69469068a0c3.js} +1 -1
  661. package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-da2083459ec19741.js → route-092c69469068a0c3.js} +1 -1
  662. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-092c69469068a0c3.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-092c69469068a0c3.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-092c69469068a0c3.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-092c69469068a0c3.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-092c69469068a0c3.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-092c69469068a0c3.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-092c69469068a0c3.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-092c69469068a0c3.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-092c69469068a0c3.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-092c69469068a0c3.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-092c69469068a0c3.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-092c69469068a0c3.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-092c69469068a0c3.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-092c69469068a0c3.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-092c69469068a0c3.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-092c69469068a0c3.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-092c69469068a0c3.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-092c69469068a0c3.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-092c69469068a0c3.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-092c69469068a0c3.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-092c69469068a0c3.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-092c69469068a0c3.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-092c69469068a0c3.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-092c69469068a0c3.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-092c69469068a0c3.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-092c69469068a0c3.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/combos/route-092c69469068a0c3.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-092c69469068a0c3.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-092c69469068a0c3.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/health/route-092c69469068a0c3.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/init/route-092c69469068a0c3.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-092c69469068a0c3.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/keys/route-092c69469068a0c3.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/locale/route-092c69469068a0c3.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-092c69469068a0c3.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-092c69469068a0c3.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-092c69469068a0c3.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-092c69469068a0c3.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-092c69469068a0c3.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-092c69469068a0c3.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-092c69469068a0c3.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-092c69469068a0c3.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-092c69469068a0c3.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-092c69469068a0c3.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-092c69469068a0c3.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/models/route-092c69469068a0c3.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/models/test/route-092c69469068a0c3.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-092c69469068a0c3.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-092c69469068a0c3.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-092c69469068a0c3.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-092c69469068a0c3.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-092c69469068a0c3.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-092c69469068a0c3.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-092c69469068a0c3.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-092c69469068a0c3.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-092c69469068a0c3.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-092c69469068a0c3.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/ollama-model-memory/route-092c69469068a0c3.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/install/route-092c69469068a0c3.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/reservations/route-092c69469068a0c3.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/route-092c69469068a0c3.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/status/route-092c69469068a0c3.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/route-092c69469068a0c3.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/ollama-routing-targets/route-092c69469068a0c3.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/pricing/route-092c69469068a0c3.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-092c69469068a0c3.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-092c69469068a0c3.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-092c69469068a0c3.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-092c69469068a0c3.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-092c69469068a0c3.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-092c69469068a0c3.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-092c69469068a0c3.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-092c69469068a0c3.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-092c69469068a0c3.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-092c69469068a0c3.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/providers/route-092c69469068a0c3.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-092c69469068a0c3.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-092c69469068a0c3.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-092c69469068a0c3.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-092c69469068a0c3.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-092c69469068a0c3.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-092c69469068a0c3.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-092c69469068a0c3.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-092c69469068a0c3.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-092c69469068a0c3.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-092c69469068a0c3.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-092c69469068a0c3.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-092c69469068a0c3.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/settings/route-092c69469068a0c3.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-092c69469068a0c3.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/tags/route-092c69469068a0c3.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-092c69469068a0c3.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-092c69469068a0c3.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-092c69469068a0c3.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-092c69469068a0c3.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-092c69469068a0c3.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-092c69469068a0c3.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-092c69469068a0c3.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-092c69469068a0c3.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-092c69469068a0c3.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-092c69469068a0c3.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-092c69469068a0c3.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-092c69469068a0c3.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-092c69469068a0c3.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-092c69469068a0c3.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-092c69469068a0c3.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-092c69469068a0c3.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-092c69469068a0c3.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-092c69469068a0c3.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-092c69469068a0c3.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-092c69469068a0c3.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-092c69469068a0c3.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-092c69469068a0c3.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-092c69469068a0c3.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-092c69469068a0c3.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-092c69469068a0c3.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-092c69469068a0c3.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-092c69469068a0c3.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-092c69469068a0c3.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-092c69469068a0c3.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-092c69469068a0c3.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-092c69469068a0c3.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-092c69469068a0c3.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-092c69469068a0c3.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-092c69469068a0c3.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-092c69469068a0c3.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-092c69469068a0c3.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-092c69469068a0c3.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/v1/route-092c69469068a0c3.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-092c69469068a0c3.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-092c69469068a0c3.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-092c69469068a0c3.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-092c69469068a0c3.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-092c69469068a0c3.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/version/route-092c69469068a0c3.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-092c69469068a0c3.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/version/update/route-092c69469068a0c3.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/[id]/route-092c69469068a0c3.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/preview/route-092c69469068a0c3.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/route-092c69469068a0c3.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-092c69469068a0c3.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/page-092c69469068a0c3.js +1 -0
  804. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-092c69469068a0c3.js +1 -0
  805. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-092c69469068a0c3.js +1 -0
  806. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-092c69469068a0c3.js +1 -0
  807. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-092c69469068a0c3.js +1 -0
  808. package/app/.next-cli-build/static/css/11e167ecf7b4e500.css +1 -0
  809. package/app/.next-cli-build/static/pJm9mfcdWsyp06x8AECSa/_buildManifest.js +1 -0
  810. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  811. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  812. package/app/package.json +1 -1
  813. package/package.json +1 -1
  814. package/app/.next-cli-build/server/chunks/2769.js +0 -1
  815. package/app/.next-cli-build/static/Q9DHPrSO_c4RIRpf5wwP3/_buildManifest.js +0 -1
  816. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/virtual-combos/page-3175d0b06abbb400.js +0 -1
  817. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-da2083459ec19741.js +0 -1
  818. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-da2083459ec19741.js +0 -1
  819. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-da2083459ec19741.js +0 -1
  820. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-da2083459ec19741.js +0 -1
  821. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-da2083459ec19741.js +0 -1
  822. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-da2083459ec19741.js +0 -1
  823. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-da2083459ec19741.js +0 -1
  824. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-da2083459ec19741.js +0 -1
  825. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-da2083459ec19741.js +0 -1
  826. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-da2083459ec19741.js +0 -1
  827. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-da2083459ec19741.js +0 -1
  828. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-da2083459ec19741.js +0 -1
  829. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-da2083459ec19741.js +0 -1
  830. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-da2083459ec19741.js +0 -1
  831. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-da2083459ec19741.js +0 -1
  832. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-da2083459ec19741.js +0 -1
  833. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-da2083459ec19741.js +0 -1
  834. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-da2083459ec19741.js +0 -1
  835. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-da2083459ec19741.js +0 -1
  836. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-da2083459ec19741.js +0 -1
  837. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-da2083459ec19741.js +0 -1
  838. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-da2083459ec19741.js +0 -1
  839. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-da2083459ec19741.js +0 -1
  840. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-da2083459ec19741.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-da2083459ec19741.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-da2083459ec19741.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/combos/route-da2083459ec19741.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-da2083459ec19741.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-da2083459ec19741.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/health/route-da2083459ec19741.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/init/route-da2083459ec19741.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-da2083459ec19741.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/keys/route-da2083459ec19741.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/locale/route-da2083459ec19741.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-da2083459ec19741.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-da2083459ec19741.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-da2083459ec19741.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-da2083459ec19741.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-da2083459ec19741.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-da2083459ec19741.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-da2083459ec19741.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-da2083459ec19741.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-da2083459ec19741.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-da2083459ec19741.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-da2083459ec19741.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/models/route-da2083459ec19741.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/models/test/route-da2083459ec19741.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-da2083459ec19741.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-da2083459ec19741.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-da2083459ec19741.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-da2083459ec19741.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-da2083459ec19741.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-da2083459ec19741.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-da2083459ec19741.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-da2083459ec19741.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-da2083459ec19741.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-da2083459ec19741.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/ollama-model-memory/route-da2083459ec19741.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/install/route-da2083459ec19741.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/reservations/route-da2083459ec19741.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/route-da2083459ec19741.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/[id]/status/route-da2083459ec19741.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/ollama-nodes/route-da2083459ec19741.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/ollama-routing-targets/route-da2083459ec19741.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/pricing/route-da2083459ec19741.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-da2083459ec19741.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-da2083459ec19741.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-da2083459ec19741.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-da2083459ec19741.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-da2083459ec19741.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-da2083459ec19741.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-da2083459ec19741.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-da2083459ec19741.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-da2083459ec19741.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-da2083459ec19741.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/providers/route-da2083459ec19741.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-da2083459ec19741.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-da2083459ec19741.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-da2083459ec19741.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-da2083459ec19741.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-da2083459ec19741.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-da2083459ec19741.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-da2083459ec19741.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-da2083459ec19741.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-da2083459ec19741.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-da2083459ec19741.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-da2083459ec19741.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-da2083459ec19741.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/settings/route-da2083459ec19741.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-da2083459ec19741.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/tags/route-da2083459ec19741.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-da2083459ec19741.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-da2083459ec19741.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-da2083459ec19741.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-da2083459ec19741.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-da2083459ec19741.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-da2083459ec19741.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-da2083459ec19741.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-da2083459ec19741.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-da2083459ec19741.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-da2083459ec19741.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-da2083459ec19741.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-da2083459ec19741.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-da2083459ec19741.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-da2083459ec19741.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-da2083459ec19741.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-da2083459ec19741.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-da2083459ec19741.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-da2083459ec19741.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-da2083459ec19741.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-da2083459ec19741.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-da2083459ec19741.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-da2083459ec19741.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-da2083459ec19741.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-da2083459ec19741.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-da2083459ec19741.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-da2083459ec19741.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-da2083459ec19741.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-da2083459ec19741.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-da2083459ec19741.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-da2083459ec19741.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-da2083459ec19741.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-da2083459ec19741.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-da2083459ec19741.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-da2083459ec19741.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-da2083459ec19741.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-da2083459ec19741.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-da2083459ec19741.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/v1/route-da2083459ec19741.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-da2083459ec19741.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-da2083459ec19741.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-da2083459ec19741.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-da2083459ec19741.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-da2083459ec19741.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/version/route-da2083459ec19741.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-da2083459ec19741.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/version/update/route-da2083459ec19741.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/[id]/route-da2083459ec19741.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/virtual-combos/route-da2083459ec19741.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-da2083459ec19741.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/page-da2083459ec19741.js +0 -1
  958. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-da2083459ec19741.js +0 -1
  959. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-da2083459ec19741.js +0 -1
  960. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-da2083459ec19741.js +0 -1
  961. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-da2083459ec19741.js +0 -1
  962. package/app/.next-cli-build/static/css/7c50b64c9b7c7390.css +0 -1
  963. /package/app/.next-cli-build/static/{Q9DHPrSO_c4RIRpf5wwP3 → pJm9mfcdWsyp06x8AECSa}/_ssgManifest.js +0 -0
  964. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.54-to-1.0.55-1.0.55-20260527-201319 → upgrade-1.0.59-to-1.0.60-1.0.60-20260528-000431}/data.sqlite +0 -0
  965. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.55-to-1.0.56-1.0.56-20260527-201811 → upgrade-1.0.60-to-1.0.61-1.0.61-20260528-065316}/data.sqlite +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=8255,exports.ids=[8255],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>s,OPTIONS:()=>r,buildModelsList:()=>q});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(33669),i=c(29679);let j={kiro:async a=>{let b=await (0,i.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},k=/[-_][0-9a-f]{8,}$/i,l=[{id:"auto",description:"AutoCombo balanced routing"},{id:"auto/coding",description:"AutoCombo coding-focused routing"},{id:"auto/fast",description:"AutoCombo low-latency routing"},{id:"auto/cheap",description:"AutoCombo low-cost routing"},{id:"auto/offline",description:"AutoCombo local/offline-friendly routing"}],m={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function n(a){return a?.type&&m[a.type]||"llm"}async function o(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function p(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function q(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let c=[];try{c=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let h=[];try{h=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let i={};try{i=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let m={};try{m=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let q=(a,b)=>Array.isArray(m[a])&&m[a].includes(b),r=new Map;for(let a of b)r.has(a.provider)||r.set(a.provider,a);let s=[];for(let b of c){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),s.push(c)}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(p(b[c]||c,a))for(let b of e)a.includes(n(b))&&(q(c,b.id)||s.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of h){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&s.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of r.entries()){if(!p(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),l=d.vq[f]||[],m=c?.providerSpecificData?.enabledModels,r=Array.isArray(m)&&m.length>0,t=(0,e.mq)(b)||(0,e.gb)(b),u=new Map(l.map(a=>[a.id,n(a)])),v=r?Array.from(new Set(m.filter(a=>"string"==typeof a&&""!==a.trim()))):l.map(a=>a.id);t&&0===v.length&&!k.test(b)&&(v=await o(c));let w=j[b];if(w&&!r)try{let a=await w(c);a?.models?.length&&(v=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}for(let c of Array.from(new Set([...v.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...h.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(i||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let b=u.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c);a.includes(b)&&(q(g,c)||q(f,c)||s.push({id:`${g}/${c}`,object:"model",owned_by:g}))}let x=e.AI_PROVIDERS[b],y=[];if(a.includes("tts")&&Array.isArray(x?.ttsConfig?.models))for(let a of x.ttsConfig.models)a?.id&&y.push(a.id);if(a.includes("embedding")&&Array.isArray(x?.embeddingConfig?.models))for(let a of x.embeddingConfig.models)a?.id&&y.push(a.id);for(let a of y)q(g,a)||q(f,a)||s.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&x?.searchConfig&&s.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&x?.fetchConfig&&s.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}!function(a,b){if(!b.includes("llm"))return;let c=new Set(a.map(a=>a?.id).filter(Boolean));for(let b of l)c.has(b.id)||(c.add(b.id),a.push({id:b.id,object:"model",owned_by:"auto",kind:"llm",virtual:!0,description:b.description}))}(s,a);let t=[],u=new Set;for(let a of s)!a?.id||u.has(a.id)||(u.add(a.id),t.push(a));return t}async function r(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function s(a){try{let b=await q(["llm"]),c=await (0,h.RC)(a,b);if(c.error)return Response.json({error:c.error},{status:c.status,headers:{"Access-Control-Allow-Origin":"*"}});return Response.json({object:"list",data:c.data},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(9248)},19225:(a,b,c)=>{a.exports=c(44870)},29679:(a,b,c)=>{c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.mt)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.mY)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);if(c.settings?.requireApiKey){if(c.missing)return{error:{message:"Missing API key",type:"authentication_error"},status:401};if(c.invalid)return{error:{message:"Invalid API key",type:"authentication_error"},status:401}}return c.keyRecord?{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}:{data:b}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
1
+ "use strict";exports.id=8255,exports.ids=[8255],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>x,OPTIONS:()=>w,buildModelsList:()=>v});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(33669),i=c(29679);let j=/[-_][0-9a-f]{8,}$/i,k=[{id:"auto",description:"AutoCombo balanced routing"},{id:"auto/coding",description:"AutoCombo coding-focused routing"},{id:"auto/fast",description:"AutoCombo low-latency routing"},{id:"auto/cheap",description:"AutoCombo low-cost routing"},{id:"auto/offline",description:"AutoCombo local/offline-friendly routing"}],l={kiro:async a=>{let b=await (0,i.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},m={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function n(a){return String(a??"").trim()}function o(a){return a?.type&&m[a.type]||"llm"}function p(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}function q(a){return["ollama-local","ollama_local","ollama local combo","ollama-local-combo"].includes(n(a?.type||a?.comboType||a?.kindType).toLowerCase())}function r(a){let b=n(a?.kind||a?.serviceKind).toLowerCase();return b||(q(a),"llm")}function s(a){return n(a?.exposedModel||a?.model||a?.id||a?.name)}function t(a,b,c){let d=n(c?.id);!d||b.has(d)||(b.add(d),a.push({object:"model",...c,id:d}))}async function u(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let f=await e.json();return Array.from(new Set((Array.isArray(f)?f:f?.data||f?.models||f?.results||[]).map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}async function v(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch{console.log("Could not fetch providers, returning all models")}let c=[];try{c=await (0,f.Uv)()}catch{console.log("Could not fetch combos")}let h=[];try{h=await (0,f.uv)()}catch{console.log("Could not fetch custom models")}let i={};try{i=await (0,f.OM)()}catch{console.log("Could not fetch model aliases")}let m={};try{m=await (0,g.vF)()}catch{console.log("Could not fetch disabled models")}let v=(a,b)=>Array.isArray(m[a])&&m[a].includes(b),w=new Map;for(let a of b)w.has(a.provider)||w.set(a.provider,a);let x=[],y=new Set;for(let b of c){if(b?.enabled===!1||!a.includes(r(b)))continue;let c=s(b);c&&t(x,y,{id:c,owned_by:q(b)?"ollama-local":"combo",kind:r(b),virtual:!0,combo:!0,comboType:q(b)?"ollama-local":"virtual",name:n(b?.name||b?.id||s(b)),description:n(b.description)})}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(p(b[c]||c,a))for(let b of e)a.includes(o(b))&&(v(c,b.id)||t(x,y,{id:`${c}/${b.id}`,owned_by:c}));for(let b of h){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=n(b.id);d&&t(x,y,{id:`${c}/${d}`,owned_by:c})}}else for(let[b,c]of w.entries()){if(!p(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),k=d.vq[f]||[],m=c?.providerSpecificData?.enabledModels,q=Array.isArray(m)&&m.length>0,r=(0,e.mq)(b)||(0,e.gb)(b),s=new Map(k.map(a=>[a.id,o(a)])),w=q?Array.from(new Set(m.filter(a=>"string"==typeof a&&""!==a.trim()))):k.map(a=>a.id);r&&0===w.length&&!j.test(b)&&(w=await u(c));let z=l[b];if(z&&!q)try{let a=await z(c);a?.models?.length&&(w=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}for(let c of Array.from(new Set([...w.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...h.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>n(a.id)).filter(Boolean),...Object.values(i||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let b=s.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c);a.includes(b)&&(v(g,c)||v(f,c)||t(x,y,{id:`${g}/${c}`,owned_by:g}))}let A=e.AI_PROVIDERS[b],B=[];if(a.includes("tts")&&Array.isArray(A?.ttsConfig?.models))for(let a of A.ttsConfig.models)a?.id&&B.push(a.id);if(a.includes("embedding")&&Array.isArray(A?.embeddingConfig?.models))for(let a of A.embeddingConfig.models)a?.id&&B.push(a.id);for(let a of B)v(g,a)||v(f,a)||t(x,y,{id:`${g}/${a}`,owned_by:g});a.includes("webSearch")&&A?.searchConfig&&t(x,y,{id:`${g}/search`,kind:"webSearch",owned_by:g}),a.includes("webFetch")&&A?.fetchConfig&&t(x,y,{id:`${g}/fetch`,kind:"webFetch",owned_by:g})}return!function(a,b){if(!b.includes("llm"))return;let c=new Set(a.map(a=>a?.id).filter(Boolean));for(let b of k)t(a,c,{id:b.id,owned_by:"auto",kind:"llm",virtual:!0,description:b.description})}(x,a),x}async function w(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function x(a){try{let b=await v(["llm"]),c=await (0,h.RC)(a,b);if(c.error)return Response.json({error:c.error},{status:c.status,headers:{"Access-Control-Allow-Origin":"*"}});return Response.json({object:"list",data:c.data},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(9248)},19225:(a,b,c)=>{a.exports=c(44870)},29679:(a,b,c)=>{c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.mt)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.mY)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);if(c.settings?.requireApiKey){if(c.missing)return{error:{message:"Missing API key",type:"authentication_error"},status:401};if(c.invalid)return{error:{message:"Invalid API key",type:"authentication_error"},status:401}}return c.keyRecord?{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}:{data:b}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
6
6
  PRAGMA cache_size = -64000;
7
7
  PRAGMA foreign_keys = ON;
8
8
  PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",allowedModels:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},88520:(a,b,c)=>{c.d(b,{createNodeSqliteAdapter:()=>e});var d=c(63775);async function e(a){let b=process.emit;process.emit=function(a,c,...d){return!("warning"===a&&c?.name==="ExperimentalWarning"&&/SQLite/i.test(c.message||""))&&b.call(process,a,c,...d)};let e=new(await Promise.resolve().then(c.t.bind(c,80099,23))).DatabaseSync(a);e.exec(d.oG);let f=new Map;function g(a){let b=f.get(a);return b||(b=e.prepare(a),f.set(a,b)),b}let h=setInterval(()=>{try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{f.clear()}catch{}try{e.close()}catch{}}"function"==typeof h.unref&&h.unref();let j=()=>i();return process.once("beforeExit",j),process.once("SIGINT",()=>{j(),process.exit(0)}),process.once("SIGTERM",()=>{j(),process.exit(0)}),{driver:"node:sqlite",run(a,b=[]){let c=g(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>g(a).get(...b),all:(a,b=[])=>g(a).all(...b),exec:a=>e.exec(a),transaction(a){let b=`sp_${Math.random().toString(36).slice(2)}`;e.exec(`SAVEPOINT ${b}`);try{let c=a();return e.exec(`RELEASE ${b}`),c}catch(a){try{e.exec(`ROLLBACK TO ${b}`),e.exec(`RELEASE ${b}`)}catch{}throw a}},checkpoint(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(h),i()},raw:e}}}};
9
+ `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",allowedModels:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},82491:(a,b,c)=>{c.d(b,{createNodeSqliteAdapter:()=>e});var d=c(63775);async function e(a){let b=process.emit;process.emit=function(a,c,...d){return!("warning"===a&&c?.name==="ExperimentalWarning"&&/SQLite/i.test(c.message||""))&&b.call(process,a,c,...d)};let e=new(await Promise.resolve().then(c.t.bind(c,80099,23))).DatabaseSync(a);e.exec(d.oG);let f=new Map;function g(a){let b=f.get(a);return b||(b=e.prepare(a),f.set(a,b)),b}let h=setInterval(()=>{try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{f.clear()}catch{}try{e.close()}catch{}}"function"==typeof h.unref&&h.unref();let j=()=>i();return process.once("beforeExit",j),process.once("SIGINT",()=>{j(),process.exit(0)}),process.once("SIGTERM",()=>{j(),process.exit(0)}),{driver:"node:sqlite",run(a,b=[]){let c=g(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>g(a).get(...b),all:(a,b=[])=>g(a).all(...b),exec:a=>e.exec(a),transaction(a){let b=`sp_${Math.random().toString(36).slice(2)}`;e.exec(`SAVEPOINT ${b}`);try{let c=a();return e.exec(`RELEASE ${b}`),c}catch(a){try{e.exec(`ROLLBACK TO ${b}`),e.exec(`RELEASE ${b}`)}catch{}throw a}},checkpoint(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(h),i()},raw:e}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=9489,exports.ids=[9489],exports.modules={29069:(a,b,c)=>{c.d(b,{HX:()=>h,mH:()=>i});var d=c(11893);function e(a){return String(a||"").trim()}function f(a){return Array.isArray(a)?[...new Set(a.map(a=>e(a)).filter(Boolean))]:"string"==typeof a?[...new Set(a.split(/[\n,;\s]+/).map(a=>e(a)).filter(Boolean))]:a&&"object"==typeof a?Object.entries(a).filter(([,a])=>!1!==a&&null!=a).map(([a,b])=>!0===b?e(a):`${e(a)}:${e(b)}`).filter(Boolean):[]}function g(a){if(!a||"object"!=typeof a)return null;let b=e(a.name||a.id||a.exposedModel||a.model),c=e(a.exposedModel||a.model||a.name||a.id),d=(a.targets||a.endpoints||a.models||[]).map(b=>(function(a,b={}){if("string"==typeof a)return{model:e(a),label:e(a),tags:[]};if(!a||"object"!=typeof a)return null;let c=e(a.model||a.value||a.id||a.fullModel);return c?{...a,id:e(a.id)||e(a.connectionId)||c,model:c,label:e(a.label||a.name||a.displayName)||c,connectionId:e(a.connectionId||a.connection_id||a.accountId),provider:e(a.provider||b.provider),endpoint:e(a.endpoint||a.baseUrl||a.baseURL||a.url),tags:f(a.tags||a.labels||a.routingTags),maxInFlight:Number(a.maxInFlight||a.maxInFlightPerTarget||b.maxInFlight||0)||void 0}:null})(b,a)).filter(Boolean);return b&&c&&0!==d.length?{...a,name:b,id:e(a.id)||b,exposedModel:c,enabled:!1!==a.enabled,strategy:e(a.strategy||a.fallbackStrategy||"least-latency"),requiredTags:f(a.requiredTags||a.tags),modelTagRules:function(a){if(!a||"object"!=typeof a)return{};let b={};for(let[c,d]of Object.entries(a)){let a=e(c),g=f(d);a&&g.length&&(b[a]=g)}return b}(a.modelTagRules||a.requiredTagsByModel||a.tagRules),targets:d}:null}function h(a={},b=""){let c=e(b);return c&&(function(a={}){let b=a.virtualCombos||[];return(Array.isArray(b)?b:Object.values(b||{})).map(g).filter(Boolean)})(a).find(a=>!1!==a.enabled&&(a.exposedModel===c||a.name===c))||null}async function i({body:a,combo:b,handleSingleTarget:c,log:f}){let h,j,k,l,m=e(a?.model||b?.exposedModel||b?.name),n=g(b);if(!n)return new Response(JSON.stringify({error:{message:"Invalid virtual combo"}}),{status:400,headers:{"Content-Type":"application/json"}});let o=(h=[...n.targets],j=n.modelTagRules||{},0===(h=(h=(0,d.OF)(h,m,j)).filter(a=>(function(a,b=[]){if(!b.length)return!0;let c=new Set((a.tags||[]).map(a=>String(a).toLowerCase()));return b.every(a=>c.has(String(a).toLowerCase()))})(a,n.requiredTags||[]))).length&&(h=[...n.targets]),k=h.map(a=>({...a,id:a.id||`${n.name}:${a.model}:${a.connectionId||"any"}`,connectionId:a.connectionId||"",provider:a.provider||"virtual-combo",providerLabel:n.name,label:a.label||a.model,model:m||n.exposedModel,upstreamModel:a.model,endpoint:a.endpoint||"",tags:a.tags||[],maxInFlight:a.maxInFlight})),(0,d.OI)(k),("p2c"===(l=String(n.strategy||"least-latency").toLowerCase())||"power-of-two"===l||"power_of_two"===l?(0,d.ZL)(k,{model:m,modelTagRules:j,includeSkippedAtEnd:!0}):"fallback"===l||"priority"===l?(0,d.Gc)(k,{model:m,modelTagRules:j,preserveOrder:!0,includeSkippedAtEnd:!0}):(0,d.Gc)(k,{model:m,modelTagRules:j,includeSkippedAtEnd:!0})).map(a=>({healthTarget:a,target:h.find(b=>a.upstreamModel===b.model&&(a.connectionId||"")===(b.connectionId||""))})).filter(a=>a.target)),p="All virtual combo targets unavailable",q=503;f?.info?.("VIRTUAL_COMBO",`Virtual combo "${n.name}" -> ${o.length} target(s), strategy=${n.strategy}`);for(let b=0;b<o.length;b+=1){let{target:e,healthTarget:g}=o[b],h=(0,d.kb)(g);if(h.skipped){f?.warn?.("VIRTUAL_COMBO",`Skip ${e.label||e.model}: ${h.reason}`);continue}let i=Date.now();try{let j={...a,model:e.model};f?.info?.("VIRTUAL_COMBO",`Trying ${b+1}/${o.length}: ${e.label||e.model}`);let k=await c(j,e),l=Date.now()-i;if(k?.ok)return(0,d.Fg)(g,l),h.end(),k;let m=k?.statusText||"request_failed";try{let a=await k.clone().json();m=a?.error?.message||a?.error||a?.message||m}catch{}q=k?.status||503,p="string"==typeof m?m:JSON.stringify(m),(0,d.h6)(g,{status:q,message:p}),f?.warn?.("VIRTUAL_COMBO",`${e.label||e.model} failed`,{status:q})}catch(a){q=500,p=a?.message||String(a),(0,d.h6)(g,a),f?.warn?.("VIRTUAL_COMBO",`${e.label||e.model} threw`,{error:p})}finally{h.end()}}return new Response(JSON.stringify({error:{message:p}}),{status:q||503,headers:{"Content-Type":"application/json"}})}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.mt)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.mY)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);if(c.settings?.requireApiKey){if(c.missing)return{error:{message:"Missing API key",type:"authentication_error"},status:401};if(c.invalid)return{error:{message:"Invalid API key",type:"authentication_error"},status:401}}return c.keyRecord?{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}:{data:b}}},38775:(a,b,c)=>{c.d(b,{d_:()=>h,mA:()=>g});var d=c(89718),e=c(40669);let f={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};async function g(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&f[b.providerAlias]?{...b,provider:f[b.providerAlias]}:b);if(!c.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);return e?{provider:e.id,model:c.model}:{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function h(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},42318:(a,b,c)=>{function d(a={},b){let c=String(b||"").toLowerCase();for(let[b,d]of Object.entries(a||{}))if(String(b).toLowerCase()===c)return String((Array.isArray(d)?d[0]||"":d||"")||"");return""}function e({body:a,headers:b={},scope:c="global",fallbackToClientIp:f=!0}){if("client_ip"!==c&&"client_session"!==c)return null;let g=function(a={}){return String(d(a,"x-9r-client-ip")||d(a,"x-forwarded-for")||d(a,"x-real-ip")||d(a,"cf-connecting-ip")||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1")}(b),h=function(a={}){return d(a,"x-9r-source-tool")||d(a,"originator")||d(a,"copilot-integration-id")||""}(b),i="client_session"===c?String(function(a,b={}){return d(b,"x-client-session-id")||d(b,"session_id")||d(b,"session-id")||d(b,"x-session-id")||d(b,"x-interaction-id")||d(b,"conversation_id")||d(b,"conversation-id")||d(b,"x-conversation-id")||a?.conversationId||a?.conversation_id||a?.sessionId||a?.session_id||a?.metadata?.conversationId||a?.metadata?.conversation_id||a?.metadata?.sessionId||a?.metadata?.session_id||a?.conversationState?.conversationId||a?.conversationState?.sessionId||a?.conversationState?.currentConversationId||""}(a,b)||""):"";return"client_session"===c&&i?{key:[h||"tool",g||"unknown-ip",i].join("::"),label:i,scope:c,sourceTool:h,clientIp:g,sessionId:i}:"client_session"===c&&!1===f?null:g?{key:[h||"tool",g].join("::"),label:g,scope:"client_ip",sourceTool:h,clientIp:g,sessionId:""}:null}c.d(b,{lV:()=>e})},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>y});var e=c(48895),f=c(7793),g=c(71750),h=c(89718),i=c(33669),j=c(38775),k=c(92500),l=c(43659),m=c(18910),n=c(42318),o=c(29069),p=c(27349),q=c(41004),r=c(14170),s=c(7803),t=c(67828),u=c(38160),v=a([e,k]);async function w({body:a,modelStr:b,comboModels:c,settings:d,clientRawRequest:e,request:f,apiKey:g}){let h,i={comboStrategy:(h=(d.comboStrategies||{})[b]||{}).fallbackStrategy||d.comboStrategy||"fallback",comboStickyLimit:h.stickyRoundRobinLimit||h.stickyLimit||d.comboStickyRoundRobinLimit||1,comboStickyScope:h.stickyScope||d.comboRoundRobinStickyScope||"global",comboStickyTtlMinutes:h.stickyTtlMinutes||d.comboRoundRobinStickyTtlMinutes||120,comboStickyFallbackToClientIp:void 0!==h.stickyFallbackToClientIp?h.stickyFallbackToClientIp:!1!==d.comboStickyFallbackToClientIp},j=(0,n.lV)({body:a,headers:e?.headers||{},scope:i.comboStickyScope,fallbackToClientIp:i.comboStickyFallbackToClientIp});return s.info("CHAT",`Combo "${b}" with ${c.length} models (strategy: ${i.comboStrategy}, stickyLimit: ${i.comboStickyLimit}, stickyScope: ${i.comboStickyScope})`),(0,m.Pr)({body:a,models:c,handleSingleModel:(a,b)=>z(a,b,e,f,g),log:s,comboName:b,comboStrategy:i.comboStrategy,comboStickyLimit:i.comboStickyLimit,comboStickyScope:i.comboStickyScope,comboStickyTtlMinutes:i.comboStickyTtlMinutes,comboStickyContext:j})}async function x({body:a,modelStr:b,virtualCombo:c,clientRawRequest:d,request:e,apiKey:f}){return s.info("CHAT",`Virtual combo "${b}" matched ${c.targets?.length||0} target(s)`),(0,o.mH)({body:a,combo:c,log:s,handleSingleTarget:(a,b)=>z(a,b.model,d,e,f,{preferredConnectionId:b.connectionId||null})})}async function y(a,b=null){let c;try{c=await a.json()}catch{return s.warn("CHAT","Invalid JSON body"),(0,l.yj)(q.gx.BAD_REQUEST,"Invalid JSON body")}b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())}),(0,g.n)(b.headers);let d=new URL(a.url),e=c.model,k=c.messages?.length||c.input?.length||0,m=c.tools?.length||0,n=c.reasoning_effort||c.reasoning?.effort||null;s.request("POST",`${d.pathname} | ${e} | ${k} msgs${m?` | ${m} tools`:""}${n?` | effort=${n}`:""}`);let r=a.headers.get("Authorization"),t=(0,f.Tr)(a);r&&t?s.debug("AUTH",`API Key: ${s.maskKey(t)}`):s.debug("AUTH","No API key provided (local mode)");let u=await (0,h.mt)(),v=null;if(t&&(v=await (0,h.mY)(t)),u.requireApiKey){if(!t)return s.warn("AUTH","Missing API key (requireApiKey=true)"),(0,l.yj)(q.gx.UNAUTHORIZED,"Missing API key");if(!(v?!1!==v.isActive:await (0,f.kI)(t)))return s.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,l.yj)(q.gx.UNAUTHORIZED,"Invalid API key")}if(!e)return s.warn("CHAT","Missing model"),(0,l.yj)(q.gx.BAD_REQUEST,"Missing model");if(v&&!(0,i.zx)(v,e))return s.warn("AUTH",`API key not allowed to use model: ${e}`),(0,l.yj)(q.gx.FORBIDDEN||403,`API key is not allowed to use model: ${e}`);let A=a?.headers?.get("user-agent")||"",B=(0,p.c)(c,e,A,!!u.ccFilterNaming);if(B)return B.response||B;let C=(0,o.HX)(u,e);if(C)return x({body:c,modelStr:e,virtualCombo:C,clientRawRequest:b,request:a,apiKey:t});let D=await (0,j.d_)(e);return D?w({body:c,modelStr:e,comboModels:D,settings:u,clientRawRequest:b,request:a,apiKey:t}):z(c,e,b,a,t)}async function z(a,b,c=null,d=null,e=null,g={}){let i=await (0,j.mA)(b);if(!i.provider){let f=await (0,h.mt)(),g=(0,o.HX)(f,b);if(g)return x({body:a,modelStr:b,virtualCombo:g,clientRawRequest:c,request:d,apiKey:e});let i=await (0,j.d_)(b);return i?w({body:a,modelStr:b,comboModels:i,settings:f,clientRawRequest:c,request:d,apiKey:e}):(s.warn("CHAT","Invalid model format",{model:b}),(0,l.yj)(q.gx.BAD_REQUEST,"Invalid model format"))}let{provider:m,model:n}=i;b!==`${m}/${n}`?s.info("ROUTING",`${b} -> ${m}/${n}`):s.info("ROUTING",`Provider: ${m}, Model: ${n}`);let p=d?.headers?.get("user-agent")||"",v=new Set,y=null,A=null;for(;;){let b=await (0,f.c1)(m,v,n,{body:a,headers:c?.headers||{},preferredConnectionId:g.preferredConnectionId||null});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=y||b.lastError||"Unavailable",c=A||Number(b.lastErrorCode)||q.gx.SERVICE_UNAVAILABLE;return s.warn("CHAT",`[${m}/${n}] ${a} (${b.retryAfterHuman})`),(0,l.wO)(c,`[${m}/${n}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===v.size)return s.warn("AUTH",`No active credentials for provider: ${m}`),(0,l.yj)(q.gx.NOT_FOUND,`No active credentials for provider: ${m}`);return s.warn("CHAT","No more accounts available",{provider:m}),(0,l.yj)(A||q.gx.SERVICE_UNAVAILABLE,y||"All accounts unavailable")}s.info("AUTH",`\x1b[32mUsing ${m} account: ${b.connectionName}\x1b[0m`);let i=await (0,t.eU)(m,b);if(("antigravity"===m||"gemini-cli"===m)&&!i.projectId){let a=await (0,u.eG)(b.connectionId,i.accessToken);a&&(i.projectId=a,(0,t.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let j=await (0,h.mt)(),o=(j.providerThinking||{})[m]||null,w=await (0,k.w)({body:{...a,model:`${m}/${n}`},modelInfo:{provider:m,model:n},credentials:i,log:s,clientRawRequest:c,connectionId:b.connectionId,userAgent:p,apiKey:e,ccFilterNaming:!!j.ccFilterNaming,rtkEnabled:!!j.rtkEnabled,cavemanEnabled:!!j.cavemanEnabled,cavemanLevel:j.cavemanLevel||"full",providerThinking:o,sourceFormatOverride:d?.url?(0,r.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,t.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,n)}});if(w.success)return w.response;let{shouldFallback:x}=await (0,f.vk)(b.connectionId,w.status,w.error,m,n,w.resetsAtMs);if(x){s.warn("AUTH",`Account ${b.connectionName} unavailable (${w.status}), trying fallback`),v.add(b.connectionId),y=w.error,A=w.status;continue}return w.response}}[e,k]=v.then?(await v)():v,d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=9489,exports.ids=[9489],exports.modules={29069:(a,b,c)=>{c.d(b,{HX:()=>i,mH:()=>j});var d=c(11893);function e(a){return String(a||"").trim()}function f(a){return Array.isArray(a)?[...new Set(a.map(a=>e(a)).filter(Boolean))]:"string"==typeof a?[...new Set(a.split(/[\n,;\s]+/).map(a=>e(a)).filter(Boolean))]:a&&"object"==typeof a?Object.entries(a).filter(([,a])=>!1!==a&&null!=a).map(([a,b])=>!0===b?e(a):`${e(a)}:${e(b)}`).filter(Boolean):[]}function g(a){return["ollama-local","ollama_local","ollama local combo","ollama-local-combo"].includes(e(a?.type||a?.comboType||a?.kindType).toLowerCase())}function h(a){if(!a||"object"!=typeof a)return null;let b=e(a.name||a.id||a.exposedModel||a.model),c=e(a.exposedModel||a.model||a.name||a.id),d=g(a),h=(a.targets||a.endpoints||a.models||[]).map(b=>(function(a,b={}){if("string"==typeof a)return{model:e(a),label:e(a),tags:[]};if(!a||"object"!=typeof a)return null;let c=e(a.model||a.value||a.id||a.fullModel);return c?{...a,id:e(a.id)||e(a.connectionId)||c,model:c,label:e(a.label||a.name||a.displayName)||c,connectionId:e(a.connectionId||a.connection_id||a.accountId),provider:e(a.provider||b.provider),endpoint:e(a.endpoint||a.baseUrl||a.baseURL||a.url),tags:f(a.tags||a.labels||a.routingTags),maxInFlight:Number(a.maxInFlight||a.maxInFlightPerTarget||b.maxInFlight||0)||void 0}:null})(b,a)).filter(Boolean);return b&&c&&(d||0!==h.length)?{...a,type:d?"ollama-local":e(a.type||a.comboType)||void 0,name:b,id:e(a.id)||b,exposedModel:c,enabled:!1!==a.enabled,strategy:e(a.strategy||a.fallbackStrategy||a.selectionPolicy||"least-latency"),selectionPolicy:e(a.selectionPolicy||a.strategy||"best-fit"),requiredTags:f(a.requiredTags||a.tags),modelTagRules:function(a){if(!a||"object"!=typeof a)return{};let b={};for(let[c,d]of Object.entries(a)){let a=e(c),g=f(d);a&&g.length&&(b[a]=g)}return b}(a.modelTagRules||a.requiredTagsByModel||a.tagRules),targets:h}:null}function i(a={},b=""){let c=e(b);return c&&(function(a={}){let b=a.virtualCombos||[];return(Array.isArray(b)?b:Object.values(b||{})).map(h).filter(Boolean)})(a).find(a=>!1!==a.enabled&&(a.exposedModel===c||a.name===c||a.id===c))||null}async function j({body:a,combo:b,handleSingleTarget:c,log:f}){let i,k,l,m,n=e(a?.model||b?.exposedModel||b?.name),o=h(b);if(!o)return new Response(JSON.stringify({error:{message:"Invalid virtual combo"}}),{status:400,headers:{"Content-Type":"application/json"}});if(g(o))return new Response(JSON.stringify({error:{message:"Ollama Local Combo must be handled by the Ollama local combo router before generic virtual combo fallback.",type:"ollama_local_combo_not_routed"}}),{status:500,headers:{"Content-Type":"application/json"}});let p=(i=[...o.targets],k=o.modelTagRules||{},0===(i=(i=(0,d.OF)(i,n,k)).filter(a=>(function(a,b=[]){if(!b.length)return!0;let c=new Set((a.tags||[]).map(a=>String(a).toLowerCase()));return b.every(a=>c.has(String(a).toLowerCase()))})(a,o.requiredTags||[]))).length&&(i=[...o.targets]),l=i.map(a=>({...a,id:a.id||`${o.name}:${a.model}:${a.connectionId||"any"}`,connectionId:a.connectionId||"",provider:a.provider||"virtual-combo",providerLabel:o.name,label:a.label||a.model,model:n||o.exposedModel,upstreamModel:a.model,endpoint:a.endpoint||"",tags:a.tags||[],maxInFlight:a.maxInFlight})),(0,d.OI)(l),("p2c"===(m=String(o.strategy||"least-latency").toLowerCase())||"power-of-two"===m||"power_of_two"===m?(0,d.ZL)(l,{model:n,modelTagRules:k,includeSkippedAtEnd:!0}):"fallback"===m||"priority"===m?(0,d.Gc)(l,{model:n,modelTagRules:k,preserveOrder:!0,includeSkippedAtEnd:!0}):(0,d.Gc)(l,{model:n,modelTagRules:k,includeSkippedAtEnd:!0})).map(a=>({healthTarget:a,target:i.find(b=>a.upstreamModel===b.model&&(a.connectionId||"")===(b.connectionId||""))})).filter(a=>a.target)),q="All virtual combo targets unavailable",r=503;f?.info?.("VIRTUAL_COMBO",`Virtual combo "${o.name}" -> ${p.length} target(s), strategy=${o.strategy}`);for(let b=0;b<p.length;b+=1){let{target:e,healthTarget:g}=p[b],h=(0,d.kb)(g);if(h.skipped){f?.warn?.("VIRTUAL_COMBO",`Skip ${e.label||e.model}: ${h.reason}`);continue}let i=Date.now();try{let j={...a,model:e.model};f?.info?.("VIRTUAL_COMBO",`Trying ${b+1}/${p.length}: ${e.label||e.model}`);let k=await c(j,e),l=Date.now()-i;if(k?.ok)return(0,d.Fg)(g,l),h.end(),k;let m=k?.statusText||"request_failed";try{let a=await k.clone().json();m=a?.error?.message||a?.error||a?.message||m}catch{}r=k?.status||503,q="string"==typeof m?m:JSON.stringify(m),(0,d.h6)(g,{status:r,message:q}),f?.warn?.("VIRTUAL_COMBO",`${e.label||e.model} failed`,{status:r})}catch(a){r=500,q=a?.message||String(a),(0,d.h6)(g,a),f?.warn?.("VIRTUAL_COMBO",`${e.label||e.model} threw`,{error:q})}finally{h.end()}}return new Response(JSON.stringify({error:{message:q}}),{status:r||503,headers:{"Content-Type":"application/json"}})}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.mt)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.mY)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);if(c.settings?.requireApiKey){if(c.missing)return{error:{message:"Missing API key",type:"authentication_error"},status:401};if(c.invalid)return{error:{message:"Invalid API key",type:"authentication_error"},status:401}}return c.keyRecord?{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}:{data:b}}},38775:(a,b,c)=>{c.d(b,{d_:()=>h,mA:()=>g});var d=c(89718),e=c(40669);let f={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};async function g(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&f[b.providerAlias]?{...b,provider:f[b.providerAlias]}:b);if(!c.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);return e?{provider:e.id,model:c.model}:{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function h(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},42318:(a,b,c)=>{function d(a={},b){let c=String(b||"").toLowerCase();for(let[b,d]of Object.entries(a||{}))if(String(b).toLowerCase()===c)return String((Array.isArray(d)?d[0]||"":d||"")||"");return""}function e({body:a,headers:b={},scope:c="global",fallbackToClientIp:f=!0}){if("client_ip"!==c&&"client_session"!==c)return null;let g=function(a={}){return String(d(a,"x-9r-client-ip")||d(a,"x-forwarded-for")||d(a,"x-real-ip")||d(a,"cf-connecting-ip")||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1")}(b),h=function(a={}){return d(a,"x-9r-source-tool")||d(a,"originator")||d(a,"copilot-integration-id")||""}(b),i="client_session"===c?String(function(a,b={}){return d(b,"x-client-session-id")||d(b,"session_id")||d(b,"session-id")||d(b,"x-session-id")||d(b,"x-interaction-id")||d(b,"conversation_id")||d(b,"conversation-id")||d(b,"x-conversation-id")||a?.conversationId||a?.conversation_id||a?.sessionId||a?.session_id||a?.metadata?.conversationId||a?.metadata?.conversation_id||a?.metadata?.sessionId||a?.metadata?.session_id||a?.conversationState?.conversationId||a?.conversationState?.sessionId||a?.conversationState?.currentConversationId||""}(a,b)||""):"";return"client_session"===c&&i?{key:[h||"tool",g||"unknown-ip",i].join("::"),label:i,scope:c,sourceTool:h,clientIp:g,sessionId:i}:"client_session"===c&&!1===f?null:g?{key:[h||"tool",g].join("::"),label:g,scope:"client_ip",sourceTool:h,clientIp:g,sessionId:""}:null}c.d(b,{lV:()=>e})},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>A});var e=c(48895),f=c(7793),g=c(71750),h=c(89718),i=c(33669),j=c(38775),k=c(92500),l=c(43659),m=c(18910),n=c(42318),o=c(29069),p=c(31807),q=c(27349),r=c(41004),s=c(14170),t=c(7803),u=c(67828),v=c(38160),w=a([e,k]);async function x({body:a,modelStr:b,comboModels:c,settings:d,clientRawRequest:e,request:f,apiKey:g}){let h,i={comboStrategy:(h=(d.comboStrategies||{})[b]||{}).fallbackStrategy||d.comboStrategy||"fallback",comboStickyLimit:h.stickyRoundRobinLimit||h.stickyLimit||d.comboStickyRoundRobinLimit||1,comboStickyScope:h.stickyScope||d.comboRoundRobinStickyScope||"global",comboStickyTtlMinutes:h.stickyTtlMinutes||d.comboRoundRobinStickyTtlMinutes||120,comboStickyFallbackToClientIp:void 0!==h.stickyFallbackToClientIp?h.stickyFallbackToClientIp:!1!==d.comboStickyFallbackToClientIp},j=(0,n.lV)({body:a,headers:e?.headers||{},scope:i.comboStickyScope,fallbackToClientIp:i.comboStickyFallbackToClientIp});return t.info("CHAT",`Combo "${b}" with ${c.length} models (strategy: ${i.comboStrategy}, stickyLimit: ${i.comboStickyLimit}, stickyScope: ${i.comboStickyScope})`),(0,m.Pr)({body:a,models:c,handleSingleModel:(a,b)=>B(a,b,e,f,g),log:t,comboName:b,comboStrategy:i.comboStrategy,comboStickyLimit:i.comboStickyLimit,comboStickyScope:i.comboStickyScope,comboStickyTtlMinutes:i.comboStickyTtlMinutes,comboStickyContext:j})}async function y({body:a,modelStr:b,virtualCombo:c,clientRawRequest:d,request:e,apiKey:f}){return(0,p.M9)(c)?z({body:a,modelStr:b,virtualCombo:c,clientRawRequest:d,request:e,apiKey:f}):(t.info("CHAT",`Virtual combo "${b}" matched ${c.targets?.length||0} target(s)`),(0,o.mH)({body:a,combo:c,log:t,handleSingleTarget:(a,b)=>B(a,b.model,d,e,f,{preferredConnectionId:b.connectionId||null})}))}async function z({body:a,modelStr:b,virtualCombo:c,clientRawRequest:d,request:e,apiKey:f}){return t.info("CHAT",`Ollama local combo "${b}" resolving local target`),(0,p.au)({body:a,combo:c,request:e,log:t,handleFallback:(a,b)=>B(a,b,d,e,f)})}async function A(a,b=null){let c;try{c=await a.json()}catch{return t.warn("CHAT","Invalid JSON body"),(0,l.yj)(r.gx.BAD_REQUEST,"Invalid JSON body")}b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())}),(0,g.n)(b.headers);let d=new URL(a.url),e=c.model,k=c.messages?.length||c.input?.length||0,m=c.tools?.length||0,n=c.reasoning_effort||c.reasoning?.effort||null;t.request("POST",`${d.pathname} | ${e} | ${k} msgs${m?` | ${m} tools`:""}${n?` | effort=${n}`:""}`);let p=a.headers.get("Authorization"),s=(0,f.Tr)(a);p&&s?t.debug("AUTH",`API Key: ${t.maskKey(s)}`):t.debug("AUTH","No API key provided (local mode)");let u=await (0,h.mt)(),v=null;if(s&&(v=await (0,h.mY)(s)),u.requireApiKey){if(!s)return t.warn("AUTH","Missing API key (requireApiKey=true)"),(0,l.yj)(r.gx.UNAUTHORIZED,"Missing API key");if(!(v?!1!==v.isActive:await (0,f.kI)(s)))return t.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,l.yj)(r.gx.UNAUTHORIZED,"Invalid API key")}if(!e)return t.warn("CHAT","Missing model"),(0,l.yj)(r.gx.BAD_REQUEST,"Missing model");if(v&&!(0,i.zx)(v,e))return t.warn("AUTH",`API key not allowed to use model: ${e}`),(0,l.yj)(r.gx.FORBIDDEN||403,`API key is not allowed to use model: ${e}`);let w=a?.headers?.get("user-agent")||"",z=(0,q.c)(c,e,w,!!u.ccFilterNaming);if(z)return z.response||z;let C=(0,o.HX)(u,e);if(C)return y({body:c,modelStr:e,virtualCombo:C,clientRawRequest:b,request:a,apiKey:s});let D=await (0,j.d_)(e);return D?x({body:c,modelStr:e,comboModels:D,settings:u,clientRawRequest:b,request:a,apiKey:s}):B(c,e,b,a,s)}async function B(a,b,c=null,d=null,e=null,g={}){let i=await (0,j.mA)(b);if(!i.provider){let f=await (0,h.mt)(),g=(0,o.HX)(f,b);if(g)return y({body:a,modelStr:b,virtualCombo:g,clientRawRequest:c,request:d,apiKey:e});let i=await (0,j.d_)(b);return i?x({body:a,modelStr:b,comboModels:i,settings:f,clientRawRequest:c,request:d,apiKey:e}):(t.warn("CHAT","Invalid model format",{model:b}),(0,l.yj)(r.gx.BAD_REQUEST,"Invalid model format"))}let{provider:m,model:n}=i;b!==`${m}/${n}`?t.info("ROUTING",`${b} -> ${m}/${n}`):t.info("ROUTING",`Provider: ${m}, Model: ${n}`);let p=d?.headers?.get("user-agent")||"",q=new Set,w=null,z=null;for(;;){let b=await (0,f.c1)(m,q,n,{body:a,headers:c?.headers||{},preferredConnectionId:g.preferredConnectionId||null});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=w||b.lastError||"Unavailable",c=z||Number(b.lastErrorCode)||r.gx.SERVICE_UNAVAILABLE;return t.warn("CHAT",`[${m}/${n}] ${a} (${b.retryAfterHuman})`),(0,l.wO)(c,`[${m}/${n}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===q.size)return t.warn("AUTH",`No active credentials for provider: ${m}`),(0,l.yj)(r.gx.NOT_FOUND,`No active credentials for provider: ${m}`);return t.warn("CHAT","No more accounts available",{provider:m}),(0,l.yj)(z||r.gx.SERVICE_UNAVAILABLE,w||"All accounts unavailable")}t.info("AUTH",`\x1b[32mUsing ${m} account: ${b.connectionName}\x1b[0m`);let i=await (0,u.eU)(m,b);if(("antigravity"===m||"gemini-cli"===m)&&!i.projectId){let a=await (0,v.eG)(b.connectionId,i.accessToken);a&&(i.projectId=a,(0,u.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let j=await (0,h.mt)(),o=(j.providerThinking||{})[m]||null,x=await (0,k.w)({body:{...a,model:`${m}/${n}`},modelInfo:{provider:m,model:n},credentials:i,log:t,clientRawRequest:c,connectionId:b.connectionId,userAgent:p,apiKey:e,ccFilterNaming:!!j.ccFilterNaming,rtkEnabled:!!j.rtkEnabled,cavemanEnabled:!!j.cavemanEnabled,cavemanLevel:j.cavemanLevel||"full",providerThinking:o,sourceFormatOverride:d?.url?(0,s.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,u.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,n)}});if(x.success)return x.response;let{shouldFallback:y}=await (0,f.vk)(b.connectionId,x.status,x.error,m,n,x.resetsAtMs);if(y){t.warn("AUTH",`Account ${b.connectionName} unavailable (${x.status}), trying fallback`),q.add(b.connectionId),w=x.error,z=x.status;continue}return x.response}}[e,k]=w.then?(await w)():w,d()}catch(a){d(a)}})}};
@@ -21,6 +21,7 @@
21
21
  "/api/ollama-routing-targets": {},
22
22
  "/api/v1/audio/transcriptions": {
23
23
  "maxDuration": 300
24
- }
24
+ },
25
+ "/api/virtual-combos/preview": {}
25
26
  }
26
27
  }
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Q9DHPrSO_c4RIRpf5wwP3/_buildManifest.js","static/Q9DHPrSO_c4RIRpf5wwP3/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-a990cabb6976f421.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-ba2500baa4c52d55.js","static/chunks/main-app-0a27584eea53a4b0.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/pJm9mfcdWsyp06x8AECSa/_buildManifest.js","static/pJm9mfcdWsyp06x8AECSa/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-a990cabb6976f421.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-ba2500baa4c52d55.js","static/chunks/main-app-0a27584eea53a4b0.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/0f03023a765dc337.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/7c50b64c9b7c7390.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><script src="/_next/static/chunks/1a258343-5938f676ed376386.js" async=""></script><script src="/_next/static/chunks/1051-080896ceff7ba88d.js" async=""></script><script src="/_next/static/chunks/1321-41e9eaeb3270b514.js" async=""></script><script src="/_next/static/chunks/5497-1047d219f0698864.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-3a946e00857971ef.js" async=""></script><script src="/_next/static/chunks/app/layout-39f1f36912db26e1.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>Blue Router Gateway - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?d69b7278ea27dcf7" type="image/x-icon" sizes="32x32"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-5938f676ed376386.js\",\"1051\",\"static/chunks/1051-080896ceff7ba88d.js\",\"1321\",\"static/chunks/1321-41e9eaeb3270b514.js\",\"5497\",\"static/chunks/5497-1047d219f0698864.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-3a946e00857971ef.js\"],\"ThemeProvider\"]\n3:I[94635,[\"1321\",\"static/chunks/1321-41e9eaeb3270b514.js\",\"7177\",\"static/chunks/app/layout-39f1f36912db26e1.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/0f03023a765dc337.css\",\"style\"]\n:HL[\"/_next/static/css/7c50b64c9b7c7390.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0f03023a765dc337.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7c50b64c9b7c7390.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Q9DHPrSO_c4RIRpf5wwP3\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Blue Router Gateway - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?d69b7278ea27dcf7\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"5\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/0f03023a765dc337.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/11e167ecf7b4e500.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><script src="/_next/static/chunks/1a258343-5938f676ed376386.js" async=""></script><script src="/_next/static/chunks/1051-080896ceff7ba88d.js" async=""></script><script src="/_next/static/chunks/1321-7cbf72e76c22b10a.js" async=""></script><script src="/_next/static/chunks/5497-1047d219f0698864.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-3a946e00857971ef.js" async=""></script><script src="/_next/static/chunks/app/layout-39f1f36912db26e1.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>Blue Router Gateway - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?d69b7278ea27dcf7" type="image/x-icon" sizes="32x32"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-5938f676ed376386.js\",\"1051\",\"static/chunks/1051-080896ceff7ba88d.js\",\"1321\",\"static/chunks/1321-7cbf72e76c22b10a.js\",\"5497\",\"static/chunks/5497-1047d219f0698864.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-3a946e00857971ef.js\"],\"ThemeProvider\"]\n3:I[94635,[\"1321\",\"static/chunks/1321-7cbf72e76c22b10a.js\",\"7177\",\"static/chunks/app/layout-39f1f36912db26e1.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[90484,[],\"ViewportBoundary\"]\nc:I[90484,[],\"MetadataBoundary\"]\ne:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/0f03023a765dc337.css\",\"style\"]\n:HL[\"/_next/static/css/11e167ecf7b4e500.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0f03023a765dc337.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/11e167ecf7b4e500.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"pJm9mfcdWsyp06x8AECSa\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[86869,[],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Blue Router Gateway - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?d69b7278ea27dcf7\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"5\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Q9DHPrSO_c4RIRpf5wwP3\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-ba2500baa4c52d55.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[90484,[],\"ViewportBoundary\"]\na:I[90484,[],\"MetadataBoundary\"]\nc:I[27123,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"pJm9mfcdWsyp06x8AECSa\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>