omniroute 2.4.1 → 2.4.3

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 (850) hide show
  1. package/README.md +76 -76
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +74 -72
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/routes-manifest.json +14 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  25. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js +3 -3
  58. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/400/page.js +1 -1
  86. package/app/.next/server/app/400/page.js.nft.json +1 -1
  87. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/401/page.js +1 -1
  89. package/app/.next/server/app/401/page.js.nft.json +1 -1
  90. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/403/page.js +1 -1
  92. package/app/.next/server/app/403/page.js.nft.json +1 -1
  93. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/408/page.js +1 -1
  95. package/app/.next/server/app/408/page.js.nft.json +1 -1
  96. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/429/page.js +1 -1
  98. package/app/.next/server/app/429/page.js.nft.json +1 -1
  99. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/500/page.js +1 -1
  101. package/app/.next/server/app/500/page.js.nft.json +1 -1
  102. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/502/page.js +1 -1
  104. package/app/.next/server/app/502/page.js.nft.json +1 -1
  105. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/503/page.js +1 -1
  107. package/app/.next/server/app/503/page.js.nft.json +1 -1
  108. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/_global-error.html +2 -2
  111. package/app/.next/server/app/_global-error.rsc +1 -1
  112. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  113. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  114. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  115. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  116. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  117. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  118. package/app/.next/server/app/_not-found/page.js +1 -1
  119. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  120. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/acp/agents/route.js +1 -1
  127. package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/auth/login/route.js +1 -1
  130. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  137. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  153. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  156. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  159. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  162. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  165. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/combos/route.js +1 -1
  170. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/combos/test/route.js +1 -1
  173. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  177. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  181. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/db-backups/route.js +1 -1
  184. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/init/route.js +1 -1
  190. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  193. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/keys/route.js +1 -1
  196. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/mcp/sse/route.js +1 -1
  202. package/app/.next/server/app/api/mcp/sse/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/mcp/status/route.js +1 -1
  205. package/app/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/mcp/stream/route.js +1 -1
  208. package/app/.next/server/app/api/mcp/stream/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/models/alias/route.js +1 -1
  212. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/models/catalog/route.js +2 -2
  216. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/models/openrouter-catalog/route.js +1 -1
  219. package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/models/route.js +1 -1
  222. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  225. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  228. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  231. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  232. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  234. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  237. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  240. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  244. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  247. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  249. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/api/pricing/route.js +1 -1
  252. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/api/provider-models/route.js +1 -1
  256. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  259. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  262. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  265. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  266. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  268. package/app/.next/server/app/api/providers/[id]/refresh/route.js +1 -0
  269. package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -0
  270. package/app/.next/server/app/api/providers/[id]/refresh/route_client-reference-manifest.js +1 -0
  271. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  272. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  273. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  274. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  275. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  276. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  277. package/app/.next/server/app/api/providers/client/route.js +1 -1
  278. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  280. package/app/.next/server/app/api/providers/route.js +1 -1
  281. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  282. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  284. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  286. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  287. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  288. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  289. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  291. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/resilience/route.js +1 -1
  295. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  297. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  298. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
  300. package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  303. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  304. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  305. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/settings/model-aliases/route.js +1 -1
  307. package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  310. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  313. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  314. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  315. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  316. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  317. package/app/.next/server/app/api/settings/route.js +1 -1
  318. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  319. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  320. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  321. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  322. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  323. package/app/.next/server/app/api/settings/task-routing/route.js +1 -0
  324. package/app/.next/server/app/api/settings/task-routing/route.js.nft.json +1 -0
  325. package/app/.next/server/app/api/settings/task-routing/route_client-reference-manifest.js +1 -0
  326. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  327. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  328. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  329. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  332. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  335. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  336. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  337. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  338. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  339. package/app/.next/server/app/api/token-health/route.js +1 -1
  340. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  343. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  346. package/app/.next/server/app/api/translator/send/route.js +1 -1
  347. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  348. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  349. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  350. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  351. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  352. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  353. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  354. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  355. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  356. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  357. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  358. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  359. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  360. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  361. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  362. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  364. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  365. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  366. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  367. package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
  368. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  370. package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  373. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  374. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  375. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  376. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  377. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  378. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  379. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  381. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  382. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  383. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  384. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  385. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  386. package/app/.next/server/app/api/v1/completions/route.js +1 -1
  387. package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
  388. package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
  389. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  390. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  391. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  392. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  393. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  394. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  395. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  396. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  397. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  398. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/v1/models/route.js +1 -1
  400. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  401. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  402. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  403. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  404. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
  406. package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
  407. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  408. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  409. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  410. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  412. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  415. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  416. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  417. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  418. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  419. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  421. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  422. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/api/v1/route.js +1 -1
  424. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  425. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  427. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  428. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  430. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  431. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  433. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  434. package/app/.next/server/app/callback/page.js +1 -1
  435. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  436. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  437. package/app/.next/server/app/docs/page.js +1 -1
  438. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  439. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  440. package/app/.next/server/app/forbidden/page.js +1 -1
  441. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  442. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  443. package/app/.next/server/app/forgot-password/page.js +1 -1
  444. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  445. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  446. package/app/.next/server/app/landing/page.js +2 -2
  447. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  448. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/login/page.js +1 -1
  450. package/app/.next/server/app/login/page.js.nft.json +1 -1
  451. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  452. package/app/.next/server/app/maintenance/page.js +1 -1
  453. package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
  454. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  455. package/app/.next/server/app/offline/page.js +1 -1
  456. package/app/.next/server/app/offline/page.js.nft.json +1 -1
  457. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  458. package/app/.next/server/app/page.js +1 -1
  459. package/app/.next/server/app/page.js.nft.json +1 -1
  460. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  461. package/app/.next/server/app/privacy/page.js +1 -1
  462. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  463. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  464. package/app/.next/server/app/status/page.js +1 -1
  465. package/app/.next/server/app/status/page.js.nft.json +1 -1
  466. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  467. package/app/.next/server/app/terms/page.js +1 -1
  468. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  469. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  470. package/app/.next/server/app-paths-manifest.json +74 -72
  471. package/app/.next/server/chunks/1308.js +1 -1
  472. package/app/.next/server/chunks/1714.js +135 -0
  473. package/app/.next/server/chunks/1909.js +1 -1
  474. package/app/.next/server/chunks/1960.js +1 -1
  475. package/app/.next/server/chunks/2391.js +1 -1
  476. package/app/.next/server/chunks/2476.js +1 -0
  477. package/app/.next/server/chunks/2767.js +3 -3
  478. package/app/.next/server/chunks/3061.js +2 -2
  479. package/app/.next/server/chunks/3596.js +1 -1
  480. package/app/.next/server/chunks/3648.js +5 -5
  481. package/app/.next/server/chunks/406.js +13 -13
  482. package/app/.next/server/chunks/4755.js +1 -1
  483. package/app/.next/server/chunks/5585.js +1 -0
  484. package/app/.next/server/chunks/595.js +1 -1
  485. package/app/.next/server/chunks/5979.js +1 -1
  486. package/app/.next/server/chunks/6094.js +1 -0
  487. package/app/.next/server/chunks/6197.js +46 -0
  488. package/app/.next/server/chunks/6440.js +1 -0
  489. package/app/.next/server/chunks/7109.js +2 -2
  490. package/app/.next/server/chunks/7136.js +1 -0
  491. package/app/.next/server/chunks/7327.js +1 -1
  492. package/app/.next/server/chunks/7544.js +1 -1
  493. package/app/.next/server/chunks/7669.js +1 -1
  494. package/app/.next/server/chunks/8369.js +1 -1
  495. package/app/.next/server/chunks/8907.js +1 -1
  496. package/app/.next/server/chunks/9631.js +1 -1
  497. package/app/.next/server/chunks/9704.js +2 -2
  498. package/app/.next/server/instrumentation.js +1 -1
  499. package/app/.next/server/middleware.js +4 -4
  500. package/app/.next/server/pages/500.html +2 -2
  501. package/app/.next/server/server-reference-manifest.js +1 -1
  502. package/app/.next/server/server-reference-manifest.json +1 -1
  503. package/app/.next/{server/chunks/3922.js → static/chunks/5846-dc138c1880db7dc4.js} +2 -1
  504. package/app/.next/static/chunks/647-bf8bc535ac3648d0.js +21 -0
  505. package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/page-576b27a05c09fba5.js +1 -0
  506. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3c3f3b0b558e9302.js +15 -0
  507. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-81244e4816fac7ea.js +1 -0
  508. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-08c2aa1b8887ab74.js → page-8b96e2f6d76d6f2d.js} +1 -1
  509. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-2d456b7ddbf3d41e.js +1 -0
  510. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-5ed5bdc9e926936c.js +1 -0
  511. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-799001b6cea7d5bc.js +1 -0
  512. package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/page-0fff47edc56250ea.js +2 -0
  513. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-a4c3bff638878498.js +1 -0
  514. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-01465d13a7217fd4.js +1 -0
  515. package/app/.next/static/chunks/app/.well-known/agent.json/route-a4c3bff638878498.js +1 -0
  516. package/app/.next/static/chunks/app/400/layout-a4c3bff638878498.js +1 -0
  517. package/app/.next/static/chunks/app/401/layout-a4c3bff638878498.js +1 -0
  518. package/app/.next/static/chunks/app/403/layout-a4c3bff638878498.js +1 -0
  519. package/app/.next/static/chunks/app/408/layout-a4c3bff638878498.js +1 -0
  520. package/app/.next/static/chunks/app/429/layout-a4c3bff638878498.js +1 -0
  521. package/app/.next/static/chunks/app/500/layout-a4c3bff638878498.js +1 -0
  522. package/app/.next/static/chunks/app/502/layout-a4c3bff638878498.js +1 -0
  523. package/app/.next/static/chunks/app/503/layout-a4c3bff638878498.js +1 -0
  524. package/app/.next/static/chunks/app/_global-error/page-a4c3bff638878498.js +1 -0
  525. package/app/.next/static/chunks/app/_not-found/page-a4c3bff638878498.js +1 -0
  526. package/app/.next/static/chunks/app/a2a/route-a4c3bff638878498.js +1 -0
  527. package/app/.next/static/chunks/app/api/a2a/status/route-a4c3bff638878498.js +1 -0
  528. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-a4c3bff638878498.js +1 -0
  529. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-a4c3bff638878498.js +1 -0
  530. package/app/.next/static/chunks/app/api/a2a/tasks/route-a4c3bff638878498.js +1 -0
  531. package/app/.next/static/chunks/app/api/acp/agents/route-a4c3bff638878498.js +1 -0
  532. package/app/.next/static/chunks/app/api/auth/login/route-a4c3bff638878498.js +1 -0
  533. package/app/.next/static/chunks/app/api/auth/logout/route-a4c3bff638878498.js +1 -0
  534. package/app/.next/static/chunks/app/api/auth/status/route-a4c3bff638878498.js +1 -0
  535. package/app/.next/static/chunks/app/api/cache/route-a4c3bff638878498.js +1 -0
  536. package/app/.next/static/chunks/app/api/cache/stats/route-a4c3bff638878498.js +1 -0
  537. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a4c3bff638878498.js +1 -0
  538. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-a4c3bff638878498.js +1 -0
  539. package/app/.next/static/chunks/app/api/cli-tools/backups/route-a4c3bff638878498.js +1 -0
  540. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-a4c3bff638878498.js +1 -0
  541. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-a4c3bff638878498.js +1 -0
  542. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-a4c3bff638878498.js +1 -0
  543. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-a4c3bff638878498.js +1 -0
  544. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-a4c3bff638878498.js +1 -0
  545. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-a4c3bff638878498.js +1 -0
  546. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-a4c3bff638878498.js +1 -0
  547. package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-a4c3bff638878498.js +1 -0
  548. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-a4c3bff638878498.js +1 -0
  549. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-a4c3bff638878498.js +1 -0
  550. package/app/.next/static/chunks/app/api/cli-tools/status/route-a4c3bff638878498.js +1 -0
  551. package/app/.next/static/chunks/app/api/cloud/auth/route-a4c3bff638878498.js +1 -0
  552. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-a4c3bff638878498.js +1 -0
  553. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-a4c3bff638878498.js +1 -0
  554. package/app/.next/static/chunks/app/api/cloud/models/alias/route-a4c3bff638878498.js +1 -0
  555. package/app/.next/static/chunks/app/api/combos/[id]/route-a4c3bff638878498.js +1 -0
  556. package/app/.next/static/chunks/app/api/combos/auto/route-a4c3bff638878498.js +1 -0
  557. package/app/.next/static/chunks/app/api/combos/metrics/route-a4c3bff638878498.js +1 -0
  558. package/app/.next/static/chunks/app/api/combos/route-a4c3bff638878498.js +1 -0
  559. package/app/.next/static/chunks/app/api/combos/test/route-a4c3bff638878498.js +1 -0
  560. package/app/.next/static/chunks/app/api/compliance/audit-log/route-a4c3bff638878498.js +1 -0
  561. package/app/.next/static/chunks/app/api/db-backups/export/route-a4c3bff638878498.js +1 -0
  562. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-a4c3bff638878498.js +1 -0
  563. package/app/.next/static/chunks/app/api/db-backups/import/route-a4c3bff638878498.js +1 -0
  564. package/app/.next/static/chunks/app/api/db-backups/route-a4c3bff638878498.js +1 -0
  565. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-a4c3bff638878498.js +1 -0
  566. package/app/.next/static/chunks/app/api/evals/route-a4c3bff638878498.js +1 -0
  567. package/app/.next/static/chunks/app/api/fallback/chains/route-a4c3bff638878498.js +1 -0
  568. package/app/.next/static/chunks/app/api/init/route-a4c3bff638878498.js +1 -0
  569. package/app/.next/static/chunks/app/api/keys/[id]/route-a4c3bff638878498.js +1 -0
  570. package/app/.next/static/chunks/app/api/keys/route-a4c3bff638878498.js +1 -0
  571. package/app/.next/static/chunks/app/api/logs/console/route-a4c3bff638878498.js +1 -0
  572. package/app/.next/static/chunks/app/api/mcp/audit/route-a4c3bff638878498.js +1 -0
  573. package/app/.next/static/chunks/app/api/mcp/audit/stats/route-a4c3bff638878498.js +1 -0
  574. package/app/.next/static/chunks/app/api/mcp/sse/route-a4c3bff638878498.js +1 -0
  575. package/app/.next/static/chunks/app/api/mcp/status/route-a4c3bff638878498.js +1 -0
  576. package/app/.next/static/chunks/app/api/mcp/stream/route-a4c3bff638878498.js +1 -0
  577. package/app/.next/static/chunks/app/api/mcp/tools/route-a4c3bff638878498.js +1 -0
  578. package/app/.next/static/chunks/app/api/models/alias/route-a4c3bff638878498.js +1 -0
  579. package/app/.next/static/chunks/app/api/models/availability/route-a4c3bff638878498.js +1 -0
  580. package/app/.next/static/chunks/app/api/models/catalog/route-a4c3bff638878498.js +1 -0
  581. package/app/.next/static/chunks/app/api/models/openrouter-catalog/route-a4c3bff638878498.js +1 -0
  582. package/app/.next/static/chunks/app/api/models/route-a4c3bff638878498.js +1 -0
  583. package/app/.next/static/chunks/app/api/monitoring/health/route-a4c3bff638878498.js +1 -0
  584. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a4c3bff638878498.js +1 -0
  585. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-a4c3bff638878498.js +1 -0
  586. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-a4c3bff638878498.js +1 -0
  587. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-a4c3bff638878498.js +1 -0
  588. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-a4c3bff638878498.js +1 -0
  589. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-a4c3bff638878498.js +1 -0
  590. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-a4c3bff638878498.js +1 -0
  591. package/app/.next/static/chunks/app/api/policies/route-a4c3bff638878498.js +1 -0
  592. package/app/.next/static/chunks/app/api/pricing/defaults/route-a4c3bff638878498.js +1 -0
  593. package/app/.next/static/chunks/app/api/pricing/models/route-a4c3bff638878498.js +1 -0
  594. package/app/.next/static/chunks/app/api/pricing/route-a4c3bff638878498.js +1 -0
  595. package/app/.next/static/chunks/app/api/provider-metrics/route-a4c3bff638878498.js +1 -0
  596. package/app/.next/static/chunks/app/api/provider-models/route-a4c3bff638878498.js +1 -0
  597. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-a4c3bff638878498.js +1 -0
  598. package/app/.next/static/chunks/app/api/provider-nodes/route-a4c3bff638878498.js +1 -0
  599. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-a4c3bff638878498.js +1 -0
  600. package/app/.next/static/chunks/app/api/providers/[id]/models/route-a4c3bff638878498.js +1 -0
  601. package/app/.next/static/chunks/app/api/providers/[id]/refresh/route-a4c3bff638878498.js +1 -0
  602. package/app/.next/static/chunks/app/api/providers/[id]/route-a4c3bff638878498.js +1 -0
  603. package/app/.next/static/chunks/app/api/providers/[id]/test/route-a4c3bff638878498.js +1 -0
  604. package/app/.next/static/chunks/app/api/providers/client/route-a4c3bff638878498.js +1 -0
  605. package/app/.next/static/chunks/app/api/providers/route-a4c3bff638878498.js +1 -0
  606. package/app/.next/static/chunks/app/api/providers/test-batch/route-a4c3bff638878498.js +1 -0
  607. package/app/.next/static/chunks/app/api/providers/validate/route-a4c3bff638878498.js +1 -0
  608. package/app/.next/static/chunks/app/api/rate-limit/route-a4c3bff638878498.js +1 -0
  609. package/app/.next/static/chunks/app/api/rate-limits/route-a4c3bff638878498.js +1 -0
  610. package/app/.next/static/chunks/app/api/resilience/reset/route-a4c3bff638878498.js +1 -0
  611. package/app/.next/static/chunks/app/api/resilience/route-a4c3bff638878498.js +1 -0
  612. package/app/.next/static/chunks/app/api/restart/route-a4c3bff638878498.js +1 -0
  613. package/app/.next/static/chunks/app/api/sessions/route-a4c3bff638878498.js +1 -0
  614. package/app/.next/static/chunks/app/api/settings/background-degradation/route-a4c3bff638878498.js +1 -0
  615. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-a4c3bff638878498.js +1 -0
  616. package/app/.next/static/chunks/app/api/settings/ip-filter/route-a4c3bff638878498.js +1 -0
  617. package/app/.next/static/chunks/app/api/settings/model-aliases/route-a4c3bff638878498.js +1 -0
  618. package/app/.next/static/chunks/app/api/settings/proxy/route-a4c3bff638878498.js +1 -0
  619. package/app/.next/static/chunks/app/api/settings/proxy/test/route-a4c3bff638878498.js +1 -0
  620. package/app/.next/static/chunks/app/api/settings/require-login/route-a4c3bff638878498.js +1 -0
  621. package/app/.next/static/chunks/app/api/settings/route-a4c3bff638878498.js +1 -0
  622. package/app/.next/static/chunks/app/api/settings/system-prompt/route-a4c3bff638878498.js +1 -0
  623. package/app/.next/static/chunks/app/api/settings/task-routing/route-a4c3bff638878498.js +1 -0
  624. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-a4c3bff638878498.js +1 -0
  625. package/app/.next/static/chunks/app/api/shutdown/route-a4c3bff638878498.js +1 -0
  626. package/app/.next/static/chunks/app/api/storage/health/route-a4c3bff638878498.js +1 -0
  627. package/app/.next/static/chunks/app/api/sync/cloud/route-a4c3bff638878498.js +1 -0
  628. package/app/.next/static/chunks/app/api/sync/initialize/route-a4c3bff638878498.js +1 -0
  629. package/app/.next/static/chunks/app/api/tags/route-a4c3bff638878498.js +1 -0
  630. package/app/.next/static/chunks/app/api/telemetry/summary/route-a4c3bff638878498.js +1 -0
  631. package/app/.next/static/chunks/app/api/token-health/route-a4c3bff638878498.js +1 -0
  632. package/app/.next/static/chunks/app/api/translator/detect/route-a4c3bff638878498.js +1 -0
  633. package/app/.next/static/chunks/app/api/translator/history/route-a4c3bff638878498.js +1 -0
  634. package/app/.next/static/chunks/app/api/translator/load/route-a4c3bff638878498.js +1 -0
  635. package/app/.next/static/chunks/app/api/translator/save/route-a4c3bff638878498.js +1 -0
  636. package/app/.next/static/chunks/app/api/translator/send/route-a4c3bff638878498.js +1 -0
  637. package/app/.next/static/chunks/app/api/translator/translate/route-a4c3bff638878498.js +1 -0
  638. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-a4c3bff638878498.js +1 -0
  639. package/app/.next/static/chunks/app/api/usage/analytics/route-a4c3bff638878498.js +1 -0
  640. package/app/.next/static/chunks/app/api/usage/budget/route-a4c3bff638878498.js +1 -0
  641. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-a4c3bff638878498.js +1 -0
  642. package/app/.next/static/chunks/app/api/usage/call-logs/route-a4c3bff638878498.js +1 -0
  643. package/app/.next/static/chunks/app/api/usage/history/route-a4c3bff638878498.js +1 -0
  644. package/app/.next/static/chunks/app/api/usage/logs/route-a4c3bff638878498.js +1 -0
  645. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-a4c3bff638878498.js +1 -0
  646. package/app/.next/static/chunks/app/api/usage/quota/route-a4c3bff638878498.js +1 -0
  647. package/app/.next/static/chunks/app/api/usage/request-logs/route-a4c3bff638878498.js +1 -0
  648. package/app/.next/static/chunks/app/api/v1/api/chat/route-a4c3bff638878498.js +1 -0
  649. package/app/.next/static/chunks/app/api/v1/audio/speech/route-a4c3bff638878498.js +1 -0
  650. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-a4c3bff638878498.js +1 -0
  651. package/app/.next/static/chunks/app/api/v1/chat/completions/route-a4c3bff638878498.js +1 -0
  652. package/app/.next/static/chunks/app/api/v1/completions/route-a4c3bff638878498.js +1 -0
  653. package/app/.next/static/chunks/app/api/v1/embeddings/route-a4c3bff638878498.js +1 -0
  654. package/app/.next/static/chunks/app/api/v1/images/generations/route-a4c3bff638878498.js +1 -0
  655. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a4c3bff638878498.js +1 -0
  656. package/app/.next/static/chunks/app/api/v1/messages/route-a4c3bff638878498.js +1 -0
  657. package/app/.next/static/chunks/app/api/v1/models/route-a4c3bff638878498.js +1 -0
  658. package/app/.next/static/chunks/app/api/v1/moderations/route-a4c3bff638878498.js +1 -0
  659. package/app/.next/static/chunks/app/api/v1/music/generations/route-a4c3bff638878498.js +1 -0
  660. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-a4c3bff638878498.js +1 -0
  661. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-a4c3bff638878498.js +1 -0
  662. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-a4c3bff638878498.js +1 -0
  663. package/app/.next/static/chunks/app/api/v1/rerank/route-a4c3bff638878498.js +1 -0
  664. package/app/.next/static/chunks/app/api/v1/responses/route-a4c3bff638878498.js +1 -0
  665. package/app/.next/static/chunks/app/api/v1/route-a4c3bff638878498.js +1 -0
  666. package/app/.next/static/chunks/app/api/v1/videos/generations/route-a4c3bff638878498.js +1 -0
  667. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a4c3bff638878498.js +1 -0
  668. package/app/.next/static/chunks/app/api/v1beta/models/route-a4c3bff638878498.js +1 -0
  669. package/app/.next/static/chunks/app/landing/{page-75b0c988db383cfc.js → page-8f652c1fbc33efd2.js} +1 -1
  670. package/app/.next/static/chunks/app/page-a4c3bff638878498.js +1 -0
  671. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-a4c3bff638878498.js +1 -0
  672. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-a4c3bff638878498.js +1 -0
  673. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a4c3bff638878498.js +1 -0
  674. package/app/.next/static/css/0a5545f707228079.css +1 -0
  675. package/app/.next/static/vyty8kP9IuZktMt159X9L/_buildManifest.js +1 -0
  676. package/app/package.json +1 -1
  677. package/package.json +1 -1
  678. package/app/.next/server/chunks/2901.js +0 -46
  679. package/app/.next/server/chunks/786.js +0 -135
  680. package/app/.next/server/chunks/9679.js +0 -1
  681. package/app/.next/static/chunks/5846-995a9fadc90d26d3.js +0 -2
  682. package/app/.next/static/chunks/647-27f02a9e225826d5.js +0 -21
  683. package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/page-4ec5a1458c077143.js +0 -1
  684. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ad968920ad7029fd.js +0 -15
  685. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-c92198822ec0da04.js +0 -1
  686. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-95e4b5e0bf023d76.js +0 -1
  687. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-07cbc45d62a20735.js +0 -1
  688. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-23797ed1fe047ef7.js +0 -1
  689. package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/page-4c93d045288f7d9e.js +0 -2
  690. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-4fd91743f3ac831d.js +0 -1
  691. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e3a0a2f5334efeed.js +0 -1
  692. package/app/.next/static/chunks/app/.well-known/agent.json/route-4fd91743f3ac831d.js +0 -1
  693. package/app/.next/static/chunks/app/400/layout-4fd91743f3ac831d.js +0 -1
  694. package/app/.next/static/chunks/app/401/layout-4fd91743f3ac831d.js +0 -1
  695. package/app/.next/static/chunks/app/403/layout-4fd91743f3ac831d.js +0 -1
  696. package/app/.next/static/chunks/app/408/layout-4fd91743f3ac831d.js +0 -1
  697. package/app/.next/static/chunks/app/429/layout-4fd91743f3ac831d.js +0 -1
  698. package/app/.next/static/chunks/app/500/layout-4fd91743f3ac831d.js +0 -1
  699. package/app/.next/static/chunks/app/502/layout-4fd91743f3ac831d.js +0 -1
  700. package/app/.next/static/chunks/app/503/layout-4fd91743f3ac831d.js +0 -1
  701. package/app/.next/static/chunks/app/_global-error/page-4fd91743f3ac831d.js +0 -1
  702. package/app/.next/static/chunks/app/_not-found/page-4fd91743f3ac831d.js +0 -1
  703. package/app/.next/static/chunks/app/a2a/route-4fd91743f3ac831d.js +0 -1
  704. package/app/.next/static/chunks/app/api/a2a/status/route-4fd91743f3ac831d.js +0 -1
  705. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-4fd91743f3ac831d.js +0 -1
  706. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-4fd91743f3ac831d.js +0 -1
  707. package/app/.next/static/chunks/app/api/a2a/tasks/route-4fd91743f3ac831d.js +0 -1
  708. package/app/.next/static/chunks/app/api/acp/agents/route-4fd91743f3ac831d.js +0 -1
  709. package/app/.next/static/chunks/app/api/auth/login/route-4fd91743f3ac831d.js +0 -1
  710. package/app/.next/static/chunks/app/api/auth/logout/route-4fd91743f3ac831d.js +0 -1
  711. package/app/.next/static/chunks/app/api/auth/status/route-4fd91743f3ac831d.js +0 -1
  712. package/app/.next/static/chunks/app/api/cache/route-4fd91743f3ac831d.js +0 -1
  713. package/app/.next/static/chunks/app/api/cache/stats/route-4fd91743f3ac831d.js +0 -1
  714. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-4fd91743f3ac831d.js +0 -1
  715. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-4fd91743f3ac831d.js +0 -1
  716. package/app/.next/static/chunks/app/api/cli-tools/backups/route-4fd91743f3ac831d.js +0 -1
  717. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-4fd91743f3ac831d.js +0 -1
  718. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-4fd91743f3ac831d.js +0 -1
  719. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-4fd91743f3ac831d.js +0 -1
  720. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-4fd91743f3ac831d.js +0 -1
  721. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-4fd91743f3ac831d.js +0 -1
  722. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-4fd91743f3ac831d.js +0 -1
  723. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-4fd91743f3ac831d.js +0 -1
  724. package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-4fd91743f3ac831d.js +0 -1
  725. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-4fd91743f3ac831d.js +0 -1
  726. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-4fd91743f3ac831d.js +0 -1
  727. package/app/.next/static/chunks/app/api/cli-tools/status/route-4fd91743f3ac831d.js +0 -1
  728. package/app/.next/static/chunks/app/api/cloud/auth/route-4fd91743f3ac831d.js +0 -1
  729. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-4fd91743f3ac831d.js +0 -1
  730. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-4fd91743f3ac831d.js +0 -1
  731. package/app/.next/static/chunks/app/api/cloud/models/alias/route-4fd91743f3ac831d.js +0 -1
  732. package/app/.next/static/chunks/app/api/combos/[id]/route-4fd91743f3ac831d.js +0 -1
  733. package/app/.next/static/chunks/app/api/combos/auto/route-4fd91743f3ac831d.js +0 -1
  734. package/app/.next/static/chunks/app/api/combos/metrics/route-4fd91743f3ac831d.js +0 -1
  735. package/app/.next/static/chunks/app/api/combos/route-4fd91743f3ac831d.js +0 -1
  736. package/app/.next/static/chunks/app/api/combos/test/route-4fd91743f3ac831d.js +0 -1
  737. package/app/.next/static/chunks/app/api/compliance/audit-log/route-4fd91743f3ac831d.js +0 -1
  738. package/app/.next/static/chunks/app/api/db-backups/export/route-4fd91743f3ac831d.js +0 -1
  739. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-4fd91743f3ac831d.js +0 -1
  740. package/app/.next/static/chunks/app/api/db-backups/import/route-4fd91743f3ac831d.js +0 -1
  741. package/app/.next/static/chunks/app/api/db-backups/route-4fd91743f3ac831d.js +0 -1
  742. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-4fd91743f3ac831d.js +0 -1
  743. package/app/.next/static/chunks/app/api/evals/route-4fd91743f3ac831d.js +0 -1
  744. package/app/.next/static/chunks/app/api/fallback/chains/route-4fd91743f3ac831d.js +0 -1
  745. package/app/.next/static/chunks/app/api/init/route-4fd91743f3ac831d.js +0 -1
  746. package/app/.next/static/chunks/app/api/keys/[id]/route-4fd91743f3ac831d.js +0 -1
  747. package/app/.next/static/chunks/app/api/keys/route-4fd91743f3ac831d.js +0 -1
  748. package/app/.next/static/chunks/app/api/logs/console/route-4fd91743f3ac831d.js +0 -1
  749. package/app/.next/static/chunks/app/api/mcp/audit/route-4fd91743f3ac831d.js +0 -1
  750. package/app/.next/static/chunks/app/api/mcp/audit/stats/route-4fd91743f3ac831d.js +0 -1
  751. package/app/.next/static/chunks/app/api/mcp/sse/route-4fd91743f3ac831d.js +0 -1
  752. package/app/.next/static/chunks/app/api/mcp/status/route-4fd91743f3ac831d.js +0 -1
  753. package/app/.next/static/chunks/app/api/mcp/stream/route-4fd91743f3ac831d.js +0 -1
  754. package/app/.next/static/chunks/app/api/mcp/tools/route-4fd91743f3ac831d.js +0 -1
  755. package/app/.next/static/chunks/app/api/models/alias/route-4fd91743f3ac831d.js +0 -1
  756. package/app/.next/static/chunks/app/api/models/availability/route-4fd91743f3ac831d.js +0 -1
  757. package/app/.next/static/chunks/app/api/models/catalog/route-4fd91743f3ac831d.js +0 -1
  758. package/app/.next/static/chunks/app/api/models/openrouter-catalog/route-4fd91743f3ac831d.js +0 -1
  759. package/app/.next/static/chunks/app/api/models/route-4fd91743f3ac831d.js +0 -1
  760. package/app/.next/static/chunks/app/api/monitoring/health/route-4fd91743f3ac831d.js +0 -1
  761. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-4fd91743f3ac831d.js +0 -1
  762. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-4fd91743f3ac831d.js +0 -1
  763. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-4fd91743f3ac831d.js +0 -1
  764. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-4fd91743f3ac831d.js +0 -1
  765. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-4fd91743f3ac831d.js +0 -1
  766. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-4fd91743f3ac831d.js +0 -1
  767. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-4fd91743f3ac831d.js +0 -1
  768. package/app/.next/static/chunks/app/api/policies/route-4fd91743f3ac831d.js +0 -1
  769. package/app/.next/static/chunks/app/api/pricing/defaults/route-4fd91743f3ac831d.js +0 -1
  770. package/app/.next/static/chunks/app/api/pricing/models/route-4fd91743f3ac831d.js +0 -1
  771. package/app/.next/static/chunks/app/api/pricing/route-4fd91743f3ac831d.js +0 -1
  772. package/app/.next/static/chunks/app/api/provider-metrics/route-4fd91743f3ac831d.js +0 -1
  773. package/app/.next/static/chunks/app/api/provider-models/route-4fd91743f3ac831d.js +0 -1
  774. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-4fd91743f3ac831d.js +0 -1
  775. package/app/.next/static/chunks/app/api/provider-nodes/route-4fd91743f3ac831d.js +0 -1
  776. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-4fd91743f3ac831d.js +0 -1
  777. package/app/.next/static/chunks/app/api/providers/[id]/models/route-4fd91743f3ac831d.js +0 -1
  778. package/app/.next/static/chunks/app/api/providers/[id]/route-4fd91743f3ac831d.js +0 -1
  779. package/app/.next/static/chunks/app/api/providers/[id]/test/route-4fd91743f3ac831d.js +0 -1
  780. package/app/.next/static/chunks/app/api/providers/client/route-4fd91743f3ac831d.js +0 -1
  781. package/app/.next/static/chunks/app/api/providers/route-4fd91743f3ac831d.js +0 -1
  782. package/app/.next/static/chunks/app/api/providers/test-batch/route-4fd91743f3ac831d.js +0 -1
  783. package/app/.next/static/chunks/app/api/providers/validate/route-4fd91743f3ac831d.js +0 -1
  784. package/app/.next/static/chunks/app/api/rate-limit/route-4fd91743f3ac831d.js +0 -1
  785. package/app/.next/static/chunks/app/api/rate-limits/route-4fd91743f3ac831d.js +0 -1
  786. package/app/.next/static/chunks/app/api/resilience/reset/route-4fd91743f3ac831d.js +0 -1
  787. package/app/.next/static/chunks/app/api/resilience/route-4fd91743f3ac831d.js +0 -1
  788. package/app/.next/static/chunks/app/api/restart/route-4fd91743f3ac831d.js +0 -1
  789. package/app/.next/static/chunks/app/api/sessions/route-4fd91743f3ac831d.js +0 -1
  790. package/app/.next/static/chunks/app/api/settings/background-degradation/route-4fd91743f3ac831d.js +0 -1
  791. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-4fd91743f3ac831d.js +0 -1
  792. package/app/.next/static/chunks/app/api/settings/ip-filter/route-4fd91743f3ac831d.js +0 -1
  793. package/app/.next/static/chunks/app/api/settings/model-aliases/route-4fd91743f3ac831d.js +0 -1
  794. package/app/.next/static/chunks/app/api/settings/proxy/route-4fd91743f3ac831d.js +0 -1
  795. package/app/.next/static/chunks/app/api/settings/proxy/test/route-4fd91743f3ac831d.js +0 -1
  796. package/app/.next/static/chunks/app/api/settings/require-login/route-4fd91743f3ac831d.js +0 -1
  797. package/app/.next/static/chunks/app/api/settings/route-4fd91743f3ac831d.js +0 -1
  798. package/app/.next/static/chunks/app/api/settings/system-prompt/route-4fd91743f3ac831d.js +0 -1
  799. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-4fd91743f3ac831d.js +0 -1
  800. package/app/.next/static/chunks/app/api/shutdown/route-4fd91743f3ac831d.js +0 -1
  801. package/app/.next/static/chunks/app/api/storage/health/route-4fd91743f3ac831d.js +0 -1
  802. package/app/.next/static/chunks/app/api/sync/cloud/route-4fd91743f3ac831d.js +0 -1
  803. package/app/.next/static/chunks/app/api/sync/initialize/route-4fd91743f3ac831d.js +0 -1
  804. package/app/.next/static/chunks/app/api/tags/route-4fd91743f3ac831d.js +0 -1
  805. package/app/.next/static/chunks/app/api/telemetry/summary/route-4fd91743f3ac831d.js +0 -1
  806. package/app/.next/static/chunks/app/api/token-health/route-4fd91743f3ac831d.js +0 -1
  807. package/app/.next/static/chunks/app/api/translator/detect/route-4fd91743f3ac831d.js +0 -1
  808. package/app/.next/static/chunks/app/api/translator/history/route-4fd91743f3ac831d.js +0 -1
  809. package/app/.next/static/chunks/app/api/translator/load/route-4fd91743f3ac831d.js +0 -1
  810. package/app/.next/static/chunks/app/api/translator/save/route-4fd91743f3ac831d.js +0 -1
  811. package/app/.next/static/chunks/app/api/translator/send/route-4fd91743f3ac831d.js +0 -1
  812. package/app/.next/static/chunks/app/api/translator/translate/route-4fd91743f3ac831d.js +0 -1
  813. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-4fd91743f3ac831d.js +0 -1
  814. package/app/.next/static/chunks/app/api/usage/analytics/route-4fd91743f3ac831d.js +0 -1
  815. package/app/.next/static/chunks/app/api/usage/budget/route-4fd91743f3ac831d.js +0 -1
  816. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-4fd91743f3ac831d.js +0 -1
  817. package/app/.next/static/chunks/app/api/usage/call-logs/route-4fd91743f3ac831d.js +0 -1
  818. package/app/.next/static/chunks/app/api/usage/history/route-4fd91743f3ac831d.js +0 -1
  819. package/app/.next/static/chunks/app/api/usage/logs/route-4fd91743f3ac831d.js +0 -1
  820. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-4fd91743f3ac831d.js +0 -1
  821. package/app/.next/static/chunks/app/api/usage/quota/route-4fd91743f3ac831d.js +0 -1
  822. package/app/.next/static/chunks/app/api/usage/request-logs/route-4fd91743f3ac831d.js +0 -1
  823. package/app/.next/static/chunks/app/api/v1/api/chat/route-4fd91743f3ac831d.js +0 -1
  824. package/app/.next/static/chunks/app/api/v1/audio/speech/route-4fd91743f3ac831d.js +0 -1
  825. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-4fd91743f3ac831d.js +0 -1
  826. package/app/.next/static/chunks/app/api/v1/chat/completions/route-4fd91743f3ac831d.js +0 -1
  827. package/app/.next/static/chunks/app/api/v1/completions/route-4fd91743f3ac831d.js +0 -1
  828. package/app/.next/static/chunks/app/api/v1/embeddings/route-4fd91743f3ac831d.js +0 -1
  829. package/app/.next/static/chunks/app/api/v1/images/generations/route-4fd91743f3ac831d.js +0 -1
  830. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-4fd91743f3ac831d.js +0 -1
  831. package/app/.next/static/chunks/app/api/v1/messages/route-4fd91743f3ac831d.js +0 -1
  832. package/app/.next/static/chunks/app/api/v1/models/route-4fd91743f3ac831d.js +0 -1
  833. package/app/.next/static/chunks/app/api/v1/moderations/route-4fd91743f3ac831d.js +0 -1
  834. package/app/.next/static/chunks/app/api/v1/music/generations/route-4fd91743f3ac831d.js +0 -1
  835. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-4fd91743f3ac831d.js +0 -1
  836. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-4fd91743f3ac831d.js +0 -1
  837. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-4fd91743f3ac831d.js +0 -1
  838. package/app/.next/static/chunks/app/api/v1/rerank/route-4fd91743f3ac831d.js +0 -1
  839. package/app/.next/static/chunks/app/api/v1/responses/route-4fd91743f3ac831d.js +0 -1
  840. package/app/.next/static/chunks/app/api/v1/route-4fd91743f3ac831d.js +0 -1
  841. package/app/.next/static/chunks/app/api/v1/videos/generations/route-4fd91743f3ac831d.js +0 -1
  842. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-4fd91743f3ac831d.js +0 -1
  843. package/app/.next/static/chunks/app/api/v1beta/models/route-4fd91743f3ac831d.js +0 -1
  844. package/app/.next/static/chunks/app/page-4fd91743f3ac831d.js +0 -1
  845. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-4fd91743f3ac831d.js +0 -1
  846. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-4fd91743f3ac831d.js +0 -1
  847. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-4fd91743f3ac831d.js +0 -1
  848. package/app/.next/static/css/f8997b4d505d4a63.css +0 -1
  849. package/app/.next/static/ig97FitGiiNqfOhrQUGzh/_buildManifest.js +0 -1
  850. /package/app/.next/static/{ig97FitGiiNqfOhrQUGzh → vyty8kP9IuZktMt159X9L}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=4755,exports.ids=[4755],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ "use strict";exports.id=4755,exports.ids=[4755,7136],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5585,exports.ids=[5585],exports.modules={75585:(a,b,c)=>{c.d(b,{S8:()=>o,lR:()=>f.lR,bI:()=>d.bI,Iq:()=>z.Iq,jd:()=>w,iE:()=>d.iE,i0:()=>d.i0,Lh:()=>z.Lh,CG:()=>y,fv:()=>j,fK:()=>d.fK,op:()=>d.op,Pc:()=>d.Pc,HL:()=>A.HL,NL:()=>n,yg:()=>z.yg,v9:()=>z.v9,PX:()=>z.PX,L:()=>u,Dj:()=>v,Uv:()=>t,uv:()=>m,c:()=>k,OM:()=>h,r4:()=>A.getPricing,getPricingForModel:()=>A.PS,Mc:()=>d.Mc,getProviderConnections:()=>d.getProviderConnections,Qu:()=>d.Qu,Fh:()=>d.Fh,ru:()=>A.ru,o4:()=>A.o4,V7:()=>A.getSettings,Nx:()=>A.isCloudEnabled,Oo:()=>z.Oo,eF:()=>f.eF,BD:()=>p,VT:()=>A.VT,yF:()=>A.yF,YD:()=>A.YD,Dp:()=>f.Dp,L9:()=>l,o5:()=>i,PM:()=>A.PM,Jg:()=>z.Jg,oG:()=>x,is:()=>q,KJ:()=>A.KJ,rj:()=>d.rj,ho:()=>d.ho,Xx:()=>A.updateSettings,ek:()=>z.validateApiKey});var d=c(56197),e=c(42910),f=c(39948);function g(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return{key:"string"==typeof b.key?b.key:null,value:"string"==typeof b.value?b.value:null}}async function h(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),b={};for(let c of a){let{key:a,value:d}=g(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function i(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(a,JSON.stringify(b)),(0,f.lR)("pre-write")}async function j(a){(0,e.sm)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(a),(0,f.lR)("pre-write")}async function k(a){let b=(0,e.sm)();if(a){let c=g(b.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(a)).value;return c?JSON.parse(c):{}}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),d={};for(let a of c){let{key:b,value:c}=g(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function l(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(a,JSON.stringify(b||{})),(0,f.lR)("pre-write")}async function m(a){let b=(0,e.sm)();if(a){let c=g(b.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value;return c?JSON.parse(c):[]}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),d={};for(let a of c){let{key:b,value:c}=g(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function n(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),b={};for(let c of a){let{key:a,value:d}=g(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function o(a,b,c,d="manual",h="chat-completions",i=["chat"]){let j=(0,e.sm)(),k=g(j.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value,l=k?JSON.parse(k):[],m=l.find(a=>a.id===b);if(m)return m;let n={id:b,name:c||b,source:d,apiFormat:h,supportedEndpoints:i};return l.push(n),j.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(a,JSON.stringify(l)),(0,f.lR)("pre-write"),n}async function p(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a);if(!d)return!1;let h=g(d).value;if(!h)return!1;let i=JSON.parse(h),j=i.length,k=i.filter(a=>a.id!==b);return k.length!==j&&(0===k.length?c.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(a):c.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(k),a),(0,f.lR)("pre-write"),!0)}async function q(a,b,c={}){let d=(0,e.sm)(),h=d.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a);if(!h)return null;let i=g(h).value;if(!i)return null;let j=JSON.parse(i),k=j.findIndex(a=>a.id===b);if(-1===k)return null;let l=j[k],m={...l,...void 0!==c.modelName?{name:c.modelName||l.name}:{},...void 0!==c.apiFormat?{apiFormat:c.apiFormat}:{},...void 0!==c.supportedEndpoints?{supportedEndpoints:c.supportedEndpoints}:{}};return j[k]=m,d.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(j),a),(0,f.lR)("pre-write"),m}var r=c(94755);function s(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return"string"==typeof b.data?b.data:null}async function t(){return(0,e.sm)().prepare("SELECT data FROM combos ORDER BY name").all().map(a=>s(a)).filter(a=>null!==a).map(a=>JSON.parse(a))}async function u(a){let b=s((0,e.sm)().prepare("SELECT data FROM combos WHERE id = ?").get(a));return b?JSON.parse(b):null}async function v(a){let b=s((0,e.sm)().prepare("SELECT data FROM combos WHERE name = ?").get(a));return b?JSON.parse(b):null}async function w(a){let b=(0,e.sm)(),c=new Date().toISOString(),d={id:(0,r.A)(),name:a.name,models:a.models||[],strategy:a.strategy||"priority",config:a.config||{},createdAt:c,updatedAt:c};return b.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(d.id,d.name,JSON.stringify(d),c,c),(0,f.lR)("pre-write"),d}async function x(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT data FROM combos WHERE id = ?").get(a);if(!d)return null;let g=s(d);if(!g)return null;let h={...JSON.parse(g),...b,updatedAt:new Date().toISOString()};return c.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(h.name,JSON.stringify(h),h.updatedAt,a),(0,f.lR)("pre-write"),h}async function y(a){return 0!==(0,e.sm)().prepare("DELETE FROM combos WHERE id = ?").run(a).changes&&((0,f.lR)("pre-write"),!0)}var z=c(80500),A=c(9679);c(31714)},80500:(a,b,c)=>{c.d(b,{Iq:()=>B,Jg:()=>C,Lh:()=>D,Oo:()=>G,PX:()=>x,v9:()=>F,validateApiKey:()=>E,yg:()=>y});var d=c(94755),e=c(42910),f=c(39948),g=c(954),h=c(81249);let i=!1,j=new Map,k=new Map,l=new Map,m=new Map,n=null,o=null,p=null,q=null,r=null,s=null;function t(){j.clear(),k.clear(),m.clear()}function u(a){return a&&"object"==typeof a?a:{}}function v(a){if(a.size>1e3){let b=Math.floor(200),c=0;for(let d of a.keys()){if(c++>=b)break;a.delete(d)}}}function w(a){if(!i)try{let b=a.prepare("PRAGMA table_info(api_keys)").all(),c=new Set(b.map(a=>String(a.name??"")));c.has("allowed_models")||(a.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),c.has("no_log")||(a.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),i=!0}catch(a){console.warn("[DB] Failed to verify api_keys schema:",a instanceof Error?a.message:String(a))}if(n&&o&&p&&q&&r&&s||(n=a.prepare("SELECT * FROM api_keys ORDER BY created_at"),o=a.prepare("SELECT * FROM api_keys WHERE id = ?"),p=a.prepare("SELECT 1 FROM api_keys WHERE key = ?"),q=a.prepare("SELECT id, name, machine_id, allowed_models, no_log FROM api_keys WHERE key = ?"),r=a.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),s=a.prepare("DELETE FROM api_keys WHERE id = ?")),!n||!o||!p||!q||!r||!s)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:n,getKeyById:o,validateKey:p,getKeyMetadata:q,insertKey:r,deleteKey:s}}async function x(){return w((0,e.sm)()).getAllKeys.all().map(a=>{let b=u((0,e.kB)(a));return b.allowedModels=z(b.allowedModels),b.noLog=A(b.noLog),"string"==typeof b.id&&b.id.length>0&&(0,h.Ct)(b.id,!0===b.noLog),b})}async function y(a){let b=w((0,e.sm)()).getKeyById.get(a);if(!b)return null;let c=u((0,e.kB)(b));return c.allowedModels=z(c.allowedModels),c.noLog=A(c.noLog),"string"==typeof c.id&&c.id.length>0&&(0,h.Ct)(c.id,!0===c.noLog),c}function z(a){if(!a||"string"!=typeof a||""===a.trim())return[];try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}function A(a){return!0===a||1===a||"1"===a}async function B(a,b){if(!b)throw Error("machineId is required");let g=(0,e.sm)(),i=new Date().toISOString(),{generateApiKeyWithMachine:j}=await c.e(2286).then(c.bind(c,62286)),k=j(b),l={id:(0,d.A)(),name:a,key:k.key,machineId:b,allowedModels:[],noLog:!1,createdAt:i};return w(g).insertKey.run(l.id,l.name,l.key,l.machineId,"[]",0,l.createdAt),(0,h.Ct)(l.id,!1),(0,f.lR)("pre-write"),l}async function C(a,b){let c=(0,e.sm)();w(c);let d=Array.isArray(b)||void 0===b?{allowedModels:b||[]}:{allowedModels:b.allowedModels,noLog:b.noLog};if(void 0===d.allowedModels&&void 0===d.noLog)return!1;let g=[],i={id:a};return void 0!==d.allowedModels&&(g.push("allowed_models = @allowedModels"),i.allowedModels=JSON.stringify(d.allowedModels||[])),void 0!==d.noLog&&(g.push("no_log = @noLog"),i.noLog=+!!d.noLog),0!==c.prepare(`UPDATE api_keys SET ${g.join(", ")} WHERE id = @id`).run(i).changes&&(void 0!==d.noLog&&(0,h.Ct)(a,d.noLog),t(),(0,f.lR)("pre-write"),!0)}async function D(a){return 0!==w((0,e.sm)()).deleteKey.run(a).changes&&((0,h.Ct)(a,!1),t(),(0,f.lR)("pre-write"),!0)}async function E(a){if(!a||"string"!=typeof a)return!1;let b=Date.now(),c=j.get(a);if(c&&b-c.timestamp<6e4)return c.valid;let d=!!w((0,e.sm)()).validateKey.get(a);return d&&(v(j),j.set(a,{valid:!0,timestamp:b})),d}async function F(a){if(!a||"string"!=typeof a)return null;let b=Date.now(),c=k.get(a);if(c&&b-c.timestamp<6e4)return c.value;let d=w((0,e.sm)()).getKeyMetadata.get(a);if(!d)return null;let f=u(d),g="string"==typeof f.id?f.id:"",i="string"==typeof f.name?f.name:"",j=f.machine_id??f.machineId,l={id:g,name:i,machineId:"string"==typeof j?j:null,allowedModels:z(f.allowed_models??f.allowedModels),noLog:A(f.no_log??f.noLog)};return l.id?((0,h.Ct)(l.id,!0===l.noLog),v(k),k.set(a,{value:l,timestamp:b}),l):null}async function G(a,b){if(!a)return!0;if(!b)return!1;let c=`${a}:${b}`,d=Date.now(),e=m.get(c);if(e&&d-e.timestamp<6e4)return e.allowed;let f=await F(a);if(!f)return!1;let{allowedModels:g}=f;if(!g||0===g.length)return!0;let h=!1;for(let a of g){if(a===b){h=!0;break}if(a.endsWith("/*")){let c=a.slice(0,-2);if(b.startsWith(c+"/")||b.startsWith(c)){h=!0;break}}if(a.includes("*")&&(function(a){let b=l.get(a);if(!b){let c=a.replace(/\*/g,".*");if(b=RegExp(`^${c}$`),l.set(a,b),l.size>100){let a=l.keys().next().value;a&&l.delete(a)}}return b})(a).test(b)){h=!0;break}}return v(m),m.set(c,{allowed:h,timestamp:d}),h}(0,g.D)(function(){n=null,o=null,p=null,q=null,r=null,s=null,i=!1,t(),m.clear(),l.clear()})}};
@@ -1 +1 @@
1
- exports.id=595,exports.ids=[595,4755],exports.modules={19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+!(y&&c(46)(function(a){v.all(a).catch(x)}))*k.F,s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ exports.id=595,exports.ids=[595,4755,7136],exports.modules={19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+!(y&&c(46)(function(a){v.all(a).catch(x)}))*k.F,s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=5979,exports.ids=[5979],exports.modules={8959:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},30255:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Xg:()=>e.PROVIDER_ID_TO_ALIAS,eh:()=>h,vq:()=>e.vq});var e=c(23969),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let h=Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})));d()}catch(a){d(a)}})},39006:a=>{a.exports={rE:"2.4.1"}},43701:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
1
+ "use strict";exports.id=5979,exports.ids=[5979],exports.modules={8959:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},30255:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Xg:()=>e.PROVIDER_ID_TO_ALIAS,eh:()=>h,vq:()=>e.vq});var e=c(23969),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let h=Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})));d()}catch(a){d(a)}})},39006:a=>{a.exports={rE:"2.4.3"}},43701:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
2
  ${a}`),Error(`Provider validation failed for ${b}`)}}d()}catch(a){d(a)}})},55979:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{eh:()=>g.eh,fg:()=>f.fg,vQ:()=>i});var e=c(39006),f=c(8959),g=c(30255),h=a([f,g]);[f,g]=h.then?(await h)():h;let i={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:e.rE};d()}catch(a){d(a)}})}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6094,exports.ids=[6094],exports.modules={13922:(a,b,c)=>{c.d(b,{YD:()=>n,getPricing:()=>h,getSettings:()=>g});var d=c(44488);c(15367);var e=c(62724);function f(a){return a&&"object"==typeof a?a:{}}async function g(){let a=(0,d.getDbInstance)(),b=a.prepare("SELECT key, value FROM key_value WHERE namespace = 'settings'").all(),c={cloudEnabled:!1,stickyRoundRobinLimit:3,requireLogin:!0};for(let a of b){let b=f(a),d="string"==typeof b.key?b.key:null,e="string"==typeof b.value?b.value:null;d&&null!==e&&(c[d]=JSON.parse(e))}return!c.setupComplete&&process.env.INITIAL_PASSWORD&&(c.setupComplete=!0,c.requireLogin=!0,a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', 'setupComplete', 'true')").run(),a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', 'requireLogin', 'true')").run()),c}async function h(){let a=(0,d.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing'").all(),b={};for(let c of a){let a=f(c),d="string"==typeof a.key?a.key:null,e="string"==typeof a.value?a.value:null;d&&null!==e&&(b[d]=f(JSON.parse(e)))}let{getDefaultPricing:e}=await c.e(8158).then(c.bind(c,38158)),g=e(),h={};for(let[a,c]of Object.entries(g))if(h[a]={...f(c)},b[a])for(let[c,d]of Object.entries(b[a]))h[a][c]=h[a][c]?{...h[a][c]||{},...f(d)}:d;for(let[a,c]of Object.entries(b))if(h[a])for(let[b,d]of Object.entries(c))h[a][b]||(h[a][b]=d);else h[a]={...c};return h}c(71781);let i={global:null,providers:{},combos:{},keys:{}},j=Object.entries(e.PROVIDER_ID_TO_ALIAS).reduce((a,[b,c])=>(c&&(a[c]=b),a[b]=b,a),{});function k(a){return"string"!=typeof a?a:j[a]||a}function l(a){if(!a)return null;if("object"==typeof a){let b=f(a);if(b.type)return b}if("string"!=typeof a)return null;try{let b=new URL(a);return{type:b.protocol.replace(":","")||"http",host:b.hostname,port:b.port||("socks5:"===b.protocol?"1080":"https:"===b.protocol?"443":"8080"),username:b.username?decodeURIComponent(b.username):"",password:b.password?decodeURIComponent(b.password):""}}catch{let b=a.split(":");return{type:"http",host:b[0]||a,port:b[1]||"8080",username:"",password:""}}}async function m(){let a=(0,d.getDbInstance)(),b=a.prepare("SELECT key, value FROM key_value WHERE namespace = 'proxyConfig'").all(),c={...i};for(let a of b){let b=f(a),d="string"==typeof b.key?b.key:null,e="string"==typeof b.value?b.value:null;d&&null!==e&&(c[d]=JSON.parse(e))}let e=!1;if(c.global&&"string"==typeof c.global&&(c.global=l(c.global),e=!0),c.providers)for(let[a,b]of Object.entries(c.providers))"string"==typeof b&&(c.providers[a]=l(b),e=!0);if(e){let b=a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('proxyConfig', ?, ?)");void 0!==c.global&&b.run("global",JSON.stringify(c.global)),c.providers&&b.run("providers",JSON.stringify(c.providers))}return c}async function n(a){let b=await m();if(a&&b.keys?.[a])return{proxy:b.keys[a],level:"key",levelId:a};let c=(0,d.getDbInstance)(),e=c.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(a);if(e){let a=f(e),d="string"==typeof a.provider?a.provider:null;if(b.combos&&Object.keys(b.combos).length>0)for(let a of c.prepare("SELECT id, data FROM combos").all()){let c=f(a),e="string"==typeof c.id?c.id:null;if(e&&b.combos[e])try{let a="string"==typeof c.data?c.data:null;if(!a)continue;let g=f(JSON.parse(a));if((Array.isArray(g.models)?g.models:[]).some(a=>(function(a){let b=f(a);if("string"==typeof b.provider)return k(b.provider);let c="string"==typeof a?a:"string"==typeof b.model?b.model:null;if(!c)return null;let[d]=c.split("/",1);return d?k(d):null})(a)===d))return{proxy:b.combos[e],level:"combo",levelId:e}}catch{}}if(d&&b.providers?.[d])return{proxy:b.providers[d],level:"provider",levelId:d}}return b.global?{proxy:b.global,level:"global",levelId:null}:{proxy:null,level:"direct",levelId:null}}},15367:(a,b,c)=>{c(87550),c(76760),c(73024),c(44488),c(94781)},62724:(a,b,c)=>{c.d(b,{PROVIDER_ID_TO_ALIAS:()=>e});var d=c(84335);(0,d.oD)();let e=(0,d.Qv)()},71781:(a,b,c)=>{class d{constructor(a){this.cache=new Map,this.ttlMs=a}get(a){let b=this.cache.get(a);if(b)return Date.now()>b.expiresAt?void this.cache.delete(a):b.value}set(a,b){this.cache.set(a,{value:b,expiresAt:Date.now()+this.ttlMs})}invalidate(a){a?this.cache.delete(a):this.cache.clear()}}new d(5e3),new d(3e4),new d(5e3)},84335:(a,b,c)=>{c.d(b,{Qv:()=>g,Z0:()=>e,oD:()=>f});let d={claude:{id:"claude",alias:"cc",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},oauth:{clientIdEnv:"CLAUDE_OAUTH_CLIENT_ID",clientIdDefault:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}]},gemini:{id:"gemini",alias:"gemini",format:"gemini",executor:"default",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",urlBuilder:(a,b,c)=>`${a}/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"x-goog-api-key",oauth:{clientIdEnv:"GEMINI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},"gemini-cli":{id:"gemini-cli",alias:"gc",format:"gemini-cli",executor:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",urlBuilder:(a,b,c)=>`${a}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"oauth",authHeader:"bearer",oauth:{clientIdEnv:"GEMINI_CLI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_CLI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},codex:{id:"codex",alias:"cx",format:"openai-responses",executor:"codex",baseUrl:"https://chatgpt.com/backend-api/codex/responses",authType:"oauth",authHeader:"bearer",headers:{Version:"0.92.0","Openai-Beta":"responses=experimental","User-Agent":"codex-cli/0.92.0 (Windows 10.0.26100; x64)"},oauth:{clientIdEnv:"CODEX_OAUTH_CLIENT_ID",clientIdDefault:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecretEnv:"CODEX_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://auth.openai.com/oauth/token"},models:[{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}]},qwen:{id:"qwen",alias:"qw",format:"openai",executor:"default",baseUrl:"https://portal.qwen.ai/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"QwenCode/0.12.3 (linux; x64)","X-Dashscope-AuthType":"qwen-oauth","X-Dashscope-CacheControl":"enable","X-Dashscope-UserAgent":"QwenCode/0.12.3 (linux; x64)","X-Stainless-Arch":"x64","X-Stainless-Lang":"js","X-Stainless-Os":"Linux","X-Stainless-Package-Version":"5.11.0","X-Stainless-Retry-Count":"1","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":"v18.19.1",Connection:"keep-alive","Accept-Language":"*","Sec-Fetch-Mode":"cors"},oauth:{clientIdEnv:"QWEN_OAUTH_CLIENT_ID",clientIdDefault:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.5 (Coder Model)"}]},iflow:{id:"iflow",alias:"if",format:"openai",executor:"iflow",baseUrl:"https://apis.iflow.cn/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"iFlow-Cli"},oauth:{clientIdEnv:"IFLOW_OAUTH_CLIENT_ID",clientIdDefault:"10009311001",clientSecretEnv:"IFLOW_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},models:[{id:"iflow-rome-30ba3b",name:"iFlow ROME"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 Vision Plus"},{id:"kimi-k2-0905",name:"Kimi K2 0905"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek-V3.2-Exp"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b",name:"Qwen3 235B"}]},antigravity:{id:"antigravity",alias:"ag",format:"antigravity",executor:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://cloudcode-pa.googleapis.com"],urlBuilder:(a,b,c)=>`${a}${c?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`,authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"antigravity/1.104.0 darwin/arm64"},oauth:{clientIdEnv:"ANTIGRAVITY_OAUTH_CLIENT_ID",clientIdDefault:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecretEnv:"ANTIGRAVITY_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash",name:"Gemini 3.0 Flash"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}]},github:{id:"github",alias:"gh",format:"openai",executor:"github",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesBaseUrl:"https://api.githubcopilot.com/responses",authType:"oauth",authHeader:"bearer",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},models:[{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",targetFormat:"openai-responses"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",targetFormat:"openai-responses"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5 (Full ID)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}]},kiro:{id:"kiro",alias:"kr",format:"kiro",executor:"kiro",baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",authType:"oauth",authHeader:"bearer",headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},oauth:{tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},models:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"}]},cursor:{id:"cursor",alias:"cu",format:"cursor",executor:"cursor",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",authType:"oauth",authHeader:"bearer",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"1.1.3",models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"}]},openai:{id:"openai",alias:"openai",format:"openai",executor:"default",baseUrl:"https://api.openai.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}]},anthropic:{id:"anthropic",alias:"anthropic",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01"},models:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}]},openrouter:{id:"openrouter",alias:"openrouter",format:"openai",executor:"default",baseUrl:"https://openrouter.ai/api/v1/chat/completions",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},models:[{id:"auto",name:"Auto (Best Available)"}]},glm:{id:"glm",alias:"glm",format:"claude",executor:"default",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.5v",name:"GLM 4.5V (Vision)"},{id:"glm-4.5",name:"GLM 4.5"},{id:"glm-4.5-air",name:"GLM 4.5 Air"},{id:"glm-4-32b",name:"GLM 4 32B"}]},kimi:{id:"kimi",alias:"kimi",format:"openai",executor:"default",baseUrl:"https://api.moonshot.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"},{id:"kimi-for-coding",name:"Kimi For Coding"}]},"kimi-coding":{id:"kimi-coding",alias:"kmc",format:"claude",executor:"default",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},oauth:{clientIdEnv:"KIMI_CODING_OAUTH_CLIENT_ID",clientIdDefault:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",authUrl:"https://auth.kimi.com/api/oauth/device_authorization"},models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},kilocode:{id:"kilocode",alias:"kc",format:"openrouter",executor:"openrouter",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",modelsUrl:"https://api.kilo.ai/api/openrouter/models",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},models:[{id:"openrouter/free",name:"Free Models Router"},{id:"qwen/qwen3-vl-235b-a22b-thinking",name:"Qwen3 VL 235B A22B Thinking"},{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen/qwen3-vl-30b-a3b-thinking",name:"Qwen3 VL 30B A3B Thinking"},{id:"stepfun/step-3.5-flash:free",name:"StepFun Step 3.5 Flash"},{id:"arcee-ai/trinity-large-preview:free",name:"Arcee AI Trinity Large Preview"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"},{id:"openai/gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"openai/gpt-5-nano",name:"GPT-5 Nano"},{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"anthropic/claude-3-haiku",name:"Claude 3 Haiku"},{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek V3.1"},{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-scout",name:"Llama 4 Scout"},{id:"meta-llama/llama-4-maverick",name:"Llama 4 Maverick"},{id:"qwen/qwen3-8b",name:"Qwen3 8B"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"qwen/qwen3-coder",name:"Qwen3 Coder 480B"},{id:"qwen/qwq-32b",name:"QwQ 32B"},{id:"mistralai/mistral-small-24b-instruct-2501",name:"Mistral Small 3"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"}],passthroughModels:!0},cline:{id:"cline",alias:"cl",format:"openai",executor:"openai",baseUrl:"https://api.cline.bot/api/v1/chat/completions",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",authUrl:"https://api.cline.bot/api/v1/auth/authorize"},extraHeaders:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0},minimax:{id:"minimax",alias:"minimax",format:"claude",executor:"default",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",format:"claude",executor:"default",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},deepseek:{id:"deepseek",alias:"ds",format:"openai",executor:"default",baseUrl:"https://api.deepseek.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},groq:{id:"groq",alias:"groq",format:"openai",executor:"default",baseUrl:"https://api.groq.com/openai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}]},blackbox:{id:"blackbox",alias:"bb",format:"openai",executor:"default",baseUrl:"https://api.blackbox.ai/v1/chat/completions",modelsUrl:"https://api.blackbox.ai/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"blackboxai",name:"Blackbox AI"},{id:"blackboxai-pro",name:"Blackbox AI Pro"}]},xai:{id:"xai",alias:"xai",format:"openai",executor:"default",baseUrl:"https://api.x.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}]},mistral:{id:"mistral",alias:"mistral",format:"openai",executor:"default",baseUrl:"https://api.mistral.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}]},perplexity:{id:"perplexity",alias:"pplx",format:"openai",executor:"default",baseUrl:"https://api.perplexity.ai/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}]},together:{id:"together",alias:"together",format:"openai",executor:"default",baseUrl:"https://api.together.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}]},fireworks:{id:"fireworks",alias:"fireworks",format:"openai",executor:"default",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}]},cerebras:{id:"cerebras",alias:"cerebras",format:"openai",executor:"default",baseUrl:"https://api.cerebras.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",format:"openai",executor:"default",baseUrl:"https://api.ollama.com/v1/chat/completions",modelsUrl:"https://api.ollama.com/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gemma3:27b",name:"Gemma 3 27B"},{id:"llama3.3:70b",name:"Llama 3.3 70B"},{id:"qwen3:72b",name:"Qwen3 72B"},{id:"devstral:24b",name:"Devstral 24B"},{id:"deepseek-r2:671b",name:"DeepSeek R2 671B"},{id:"phi4:14b",name:"Phi 4 14B"},{id:"mistral-small3.2:24b",name:"Mistral Small 3.2 24B"}],passthroughModels:!0},cohere:{id:"cohere",alias:"cohere",format:"openai",executor:"default",baseUrl:"https://api.cohere.com/v2/chat",authType:"apikey",authHeader:"bearer",models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},nvidia:{id:"nvidia",alias:"nvidia",format:"openai",executor:"default",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}]},nebius:{id:"nebius",alias:"nebius",format:"openai",executor:"default",baseUrl:"https://api.tokenfactory.nebius.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}]},siliconflow:{id:"siliconflow",alias:"siliconflow",format:"openai",executor:"default",baseUrl:"https://api.siliconflow.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}]},hyperbolic:{id:"hyperbolic",alias:"hyp",format:"openai",executor:"default",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},huggingface:{id:"huggingface",alias:"hf",format:"openai",executor:"default",baseUrl:"https://router.huggingface.co/hf-inference/models/meta-llama/Meta-Llama-3.1-70B-Instruct/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Meta-Llama-3.1-70B-Instruct",name:"Llama 3.1 70B Instruct"},{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Llama 3.1 8B Instruct"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"mistralai/Mistral-7B-Instruct-v0.3",name:"Mistral 7B v0.3"},{id:"microsoft/Phi-3.5-mini-instruct",name:"Phi-3.5 Mini"}]},vertex:{id:"vertex",alias:"vertex",format:"gemini",executor:"default",baseUrl:"https://us-central1-aiplatform.googleapis.com/v1/projects",urlBuilder:(a,b,c)=>`https://generativelanguage.googleapis.com/v1beta/models/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"bearer",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Vertex)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (Vertex)"},{id:"gemini-2.0-flash-thinking-exp",name:"Gemini 2.0 Flash Thinking Exp (Vertex)"},{id:"gemma-2-27b-it",name:"Gemma 2 27B (Vertex)"},{id:"claude-opus-4-5@20251101",name:"Claude Opus 4.5 (Vertex)"},{id:"claude-sonnet-4-5@20251101",name:"Claude Sonnet 4.5 (Vertex)"}]}};function e(){let a={};for(let[b,c]of Object.entries(d)){let d={format:c.format};c.baseUrls?d.baseUrls=c.baseUrls:c.baseUrl&&(d.baseUrl=c.baseUrl),c.responsesBaseUrl&&(d.responsesBaseUrl=c.responsesBaseUrl);let e={...c.headers||{},...c.extraHeaders||{}};Object.keys(e).length>0&&(d.headers=e),c.oauth&&(c.oauth.clientIdEnv&&(d.clientId=process.env[c.oauth.clientIdEnv]||c.oauth.clientIdDefault),c.oauth.clientSecretEnv&&(d.clientSecret=process.env[c.oauth.clientSecretEnv]||c.oauth.clientSecretDefault),c.oauth.tokenUrl&&(d.tokenUrl=c.oauth.tokenUrl),c.oauth.refreshUrl&&(d.refreshUrl=c.oauth.refreshUrl),c.oauth.authUrl&&(d.authUrl=c.oauth.authUrl)),c.chatPath&&(d.chatPath=c.chatPath),c.clientVersion&&(d.clientVersion=c.clientVersion),a[b]=d}return a}function f(){let a={};for(let b of Object.values(d))if(b.models&&b.models.length>0){let c=b.alias||b.id;a[c]||(a[c]=b.models)}return a}function g(){let a={};for(let b of Object.values(d))a[b.id]=b.alias||b.id;return a}let h=new Map;for(let a of Object.values(d))a.alias&&a.alias!==a.id&&h.set(a.alias,a)},94781:(a,b,c)=>{c.d(b,{D:()=>e});let d=new Set;function e(a){d.add(a)}}};
@@ -0,0 +1,46 @@
1
+ "use strict";exports.id=6197,exports.ids=[6197],exports.modules={56197:(a,b,c)=>{c.d(b,{bI:()=>B,iE:()=>v,i0:()=>E,fK:()=>y,op:()=>z,Pc:()=>G,Mc:()=>u,getProviderConnections:()=>t,Qu:()=>D,Fh:()=>C,rj:()=>x,ho:()=>F});var d=c(94755),e=c(42910),f=c(39948),g=c(55511);let h="aes-256-gcm",i="enc:v1:",j=null;function k(){if(null!==j)return j;let a=process.env.STORAGE_ENCRYPTION_KEY;return a?j=(0,g.scryptSync)(a,"omniroute-field-encryption-v1",32):null}function l(){return!!process.env.STORAGE_ENCRYPTION_KEY}function m(a){if(!a||"string"!=typeof a)return a;let b=k();if(!b||a.startsWith(i))return a;let c=(0,g.randomBytes)(16),d=(0,g.createCipheriv)(h,b,c),e=d.update(a,"utf8","hex");e+=d.final("hex");let f=d.getAuthTag().toString("hex");return`${i}${c.toString("hex")}:${e}:${f}`}function n(a){if(!a||"string"!=typeof a||!a.startsWith(i))return a;let b=k();if(!b)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),a;let c=a.slice(i.length).split(":");if(3!==c.length)return console.error("[Encryption] Malformed encrypted value"),a;let[d,e,f]=c;try{let a=Buffer.from(d,"hex"),c=Buffer.from(f,"hex"),i=(0,g.createDecipheriv)(h,b,a);i.setAuthTag(c);let j=i.update(e,"hex","utf8");return j+=i.final("utf8")}catch(b){return console.error("[Encryption] Decryption failed:",b instanceof Error?b.message:String(b)),a}}function o(a){return l()&&a&&(a.apiKey&&(a.apiKey=m(a.apiKey)),a.accessToken&&(a.accessToken=m(a.accessToken)),a.refreshToken&&(a.refreshToken=m(a.refreshToken)),a.idToken&&(a.idToken=m(a.idToken))),a}function p(a){return a&&l()?{...a,apiKey:n(a.apiKey),accessToken:n(a.accessToken),refreshToken:n(a.refreshToken),idToken:n(a.idToken)}:a}var q=c(31714);function r(a){return a&&"object"==typeof a?a:{}}function s(a){return"string"==typeof a?a:null}async function t(a={}){let b=(0,e.sm)(),c="SELECT * FROM provider_connections",d=[],f={};return a.provider&&(d.push("provider = @provider"),f.provider=a.provider),void 0!==a.isActive&&(d.push("is_active = @isActive"),f.isActive=+!!a.isActive),d.length>0&&(c+=" WHERE "+d.join(" AND ")),c+=" ORDER BY priority ASC, updated_at DESC",b.prepare(c).all(f).map(a=>p((0,e.G6)((0,e.kB)(a))))}async function u(a){let b=(0,e.sm)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(a);return b?p((0,e.G6)((0,e.kB)(b))):null}async function v(a){var b,c,g;let h=(0,e.sm)(),i=new Date().toISOString(),j=null;if("oauth"===a.authType&&a.email){let b=s(r(a.providerSpecificData).workspaceId);"codex"===a.provider&&b?(j=h.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(a.provider,b,a.email)||null)||(j=h.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(a.provider,b)||null):j=h.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(a.provider,a.email)||null}else"apikey"===a.authType&&a.name&&(j=h.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(a.provider,a.name)||null);if(j){let b=s(j.id);if(!b)return null;let c={...r((0,e.kB)(j)),...a,updatedAt:i};return w(h,b,c),(0,f.lR)("pre-write"),(0,e.G6)(c)}let k=a.name||null;!k&&"oauth"===a.authType&&(a.email?k=a.email:a.displayName&&(k=a.displayName));let l=a.priority;if(!l){l=("number"==typeof(b=r(h.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(a.provider)).maxP)?b:0)+1}let m={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:k,priority:l,isActive:void 0===a.isActive||a.isActive,createdAt:i,updatedAt:i};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection"])void 0!==a[b]&&null!==a[b]&&(m[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(m.providerSpecificData=a.providerSpecificData),c=h,g=o({...m}),c.prepare(`
2
+ INSERT INTO provider_connections (
3
+ id, provider, auth_type, name, email, priority, is_active,
4
+ access_token, refresh_token, expires_at, token_expires_at,
5
+ scope, project_id, test_status, error_code, last_error,
6
+ last_error_at, last_error_type, last_error_source, backoff_level,
7
+ rate_limited_until, health_check_interval, last_health_check_at,
8
+ last_tested, api_key, id_token, provider_specific_data,
9
+ expires_in, display_name, global_priority, default_model,
10
+ token_type, consecutive_use_count, rate_limit_protection, last_used_at, created_at, updated_at
11
+ ) VALUES (
12
+ @id, @provider, @authType, @name, @email, @priority, @isActive,
13
+ @accessToken, @refreshToken, @expiresAt, @tokenExpiresAt,
14
+ @scope, @projectId, @testStatus, @errorCode, @lastError,
15
+ @lastErrorAt, @lastErrorType, @lastErrorSource, @backoffLevel,
16
+ @rateLimitedUntil, @healthCheckInterval, @lastHealthCheckAt,
17
+ @lastTested, @apiKey, @idToken, @providerSpecificData,
18
+ @expiresIn, @displayName, @globalPriority, @defaultModel,
19
+ @tokenType, @consecutiveUseCount, @rateLimitProtection, @lastUsedAt, @createdAt, @updatedAt
20
+ )
21
+ `).run({id:g.id,provider:g.provider,authType:g.authType||null,name:g.name||null,email:g.email||null,priority:g.priority||0,isActive:+(!1!==g.isActive),accessToken:g.accessToken||null,refreshToken:g.refreshToken||null,expiresAt:g.expiresAt||null,tokenExpiresAt:g.tokenExpiresAt||null,scope:g.scope||null,projectId:g.projectId||null,testStatus:g.testStatus||null,errorCode:g.errorCode||null,lastError:g.lastError||null,lastErrorAt:g.lastErrorAt||null,lastErrorType:g.lastErrorType||null,lastErrorSource:g.lastErrorSource||null,backoffLevel:g.backoffLevel||0,rateLimitedUntil:g.rateLimitedUntil||null,healthCheckInterval:g.healthCheckInterval||null,lastHealthCheckAt:g.lastHealthCheckAt||null,lastTested:g.lastTested||null,apiKey:g.apiKey||null,idToken:g.idToken||null,providerSpecificData:g.providerSpecificData?JSON.stringify(g.providerSpecificData):null,expiresIn:g.expiresIn||null,displayName:g.displayName||null,globalPriority:g.globalPriority||null,defaultModel:g.defaultModel||null,tokenType:g.tokenType||null,consecutiveUseCount:g.consecutiveUseCount||0,rateLimitProtection:+(!0===g.rateLimitProtection||1===g.rateLimitProtection),lastUsedAt:g.lastUsedAt||null,createdAt:g.createdAt,updatedAt:g.updatedAt});let n=s(a.provider);return n&&A(h,n),(0,f.lR)("pre-write"),(0,q.Sc)("connections"),(0,e.G6)(m)}function w(a,b,c){let d=c.updatedAt||new Date().toISOString();a.prepare(`
22
+ UPDATE provider_connections SET
23
+ provider = @provider, auth_type = @authType, name = @name, email = @email,
24
+ priority = @priority, is_active = @isActive, access_token = @accessToken,
25
+ refresh_token = @refreshToken, expires_at = @expiresAt, token_expires_at = @tokenExpiresAt,
26
+ scope = @scope, project_id = @projectId, test_status = @testStatus, error_code = @errorCode,
27
+ last_error = @lastError, last_error_at = @lastErrorAt, last_error_type = @lastErrorType,
28
+ last_error_source = @lastErrorSource, backoff_level = @backoffLevel,
29
+ rate_limited_until = @rateLimitedUntil, health_check_interval = @healthCheckInterval,
30
+ last_health_check_at = @lastHealthCheckAt, last_tested = @lastTested, api_key = @apiKey,
31
+ id_token = @idToken, provider_specific_data = @providerSpecificData,
32
+ expires_in = @expiresIn, display_name = @displayName, global_priority = @globalPriority,
33
+ default_model = @defaultModel, token_type = @tokenType,
34
+ consecutive_use_count = @consecutiveUseCount,
35
+ rate_limit_protection = @rateLimitProtection,
36
+ last_used_at = @lastUsedAt,
37
+ updated_at = @updatedAt
38
+ WHERE id = @id
39
+ `).run({id:b,provider:c.provider,authType:c.authType||null,name:c.name||null,email:c.email||null,priority:c.priority||0,isActive:+(!1!==c.isActive),accessToken:c.accessToken||null,refreshToken:c.refreshToken||null,expiresAt:c.expiresAt||null,tokenExpiresAt:c.tokenExpiresAt||null,scope:c.scope||null,projectId:c.projectId||null,testStatus:c.testStatus||null,errorCode:c.errorCode||null,lastError:c.lastError||null,lastErrorAt:c.lastErrorAt||null,lastErrorType:c.lastErrorType||null,lastErrorSource:c.lastErrorSource||null,backoffLevel:c.backoffLevel||0,rateLimitedUntil:c.rateLimitedUntil||null,healthCheckInterval:c.healthCheckInterval||null,lastHealthCheckAt:c.lastHealthCheckAt||null,lastTested:c.lastTested||null,apiKey:c.apiKey||null,idToken:c.idToken||null,providerSpecificData:c.providerSpecificData?JSON.stringify(c.providerSpecificData):null,expiresIn:c.expiresIn||null,displayName:c.displayName||null,globalPriority:c.globalPriority||null,defaultModel:c.defaultModel||null,tokenType:c.tokenType||null,consecutiveUseCount:c.consecutiveUseCount||0,rateLimitProtection:+(!0===c.rateLimitProtection||1===c.rateLimitProtection),lastUsedAt:c.lastUsedAt||null,updatedAt:d})}async function x(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT * FROM provider_connections WHERE id = ?").get(a);if(!d)return null;let g={...(0,e.kB)(d),...b,updatedAt:new Date().toISOString()};if(w(c,a,o({...g})),(0,f.lR)("pre-write"),(0,q.Sc)("connections"),void 0!==b.priority){let a=r(d);A(c,"string"==typeof a.provider?a.provider:String(a.provider||""))}return(0,e.G6)(g)}async function y(a){let b=(0,e.sm)(),c=b.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(a);if(!c)return!1;b.prepare("DELETE FROM provider_connections WHERE id = ?").run(a);let d=r(c);return A(b,"string"==typeof d.provider?d.provider:String(d.provider||"")),(0,f.lR)("pre-write"),(0,q.Sc)("connections"),!0}async function z(a){let b=(0,e.sm)().prepare("DELETE FROM provider_connections WHERE provider = ?").run(a);return(0,f.lR)("pre-write"),b.changes}function A(a,b){let c=a.prepare("SELECT id, priority, updated_at FROM provider_connections WHERE provider = ? ORDER BY priority ASC, updated_at DESC").all(b),d=a.prepare("UPDATE provider_connections SET priority = ? WHERE id = ?");c.forEach((a,b)=>{let c=r(a);d.run(b+1,c.id)})}async function B(){return 0}async function C(a={}){let b=(0,e.sm)(),c="SELECT * FROM provider_nodes",d={};return a.type&&(c+=" WHERE type = @type",d.type=a.type),b.prepare(c).all(d).map(e.kB)}async function D(a){let b=(0,e.sm)().prepare("SELECT * FROM provider_nodes WHERE id = ?").get(a);return b?(0,e.kB)(b):null}async function E(a){let b=(0,e.sm)(),c=new Date().toISOString(),g={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix||null,apiType:a.apiType||null,baseUrl:a.baseUrl||null,createdAt:c,updatedAt:c};return b.prepare(`
40
+ INSERT INTO provider_nodes (id, type, name, prefix, api_type, base_url, created_at, updated_at)
41
+ VALUES (@id, @type, @name, @prefix, @apiType, @baseUrl, @createdAt, @updatedAt)
42
+ `).run(g),(0,f.lR)("pre-write"),g}async function F(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(a);if(!d)return null;let g={...r((0,e.kB)(d)),...b,updatedAt:new Date().toISOString()};return c.prepare(`
43
+ UPDATE provider_nodes SET type = @type, name = @name, prefix = @prefix,
44
+ api_type = @apiType, base_url = @baseUrl, updated_at = @updatedAt
45
+ WHERE id = @id
46
+ `).run({id:a,type:g.type,name:g.name,prefix:g.prefix||null,apiType:g.apiType||null,baseUrl:g.baseUrl||null,updatedAt:g.updatedAt}),(0,f.lR)("pre-write"),g}async function G(a){let b=(0,e.sm)(),c=b.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(a);return c?(b.prepare("DELETE FROM provider_nodes WHERE id = ?").run(a),(0,f.lR)("pre-write"),(0,e.kB)(c)):null}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6440,exports.ids=[6440],exports.modules={954:(a,b,c)=>{c.d(b,{D:()=>e,U:()=>f});let d=new Set;function e(a){d.add(a)}function f(){for(let a of d)try{a()}catch(a){console.warn("[DB] Failed to reset module state:",a)}}},9679:(a,b,c)=>{c.d(b,{HL:()=>y,KJ:()=>o,PM:()=>A,PS:()=>n,VT:()=>q,YD:()=>z,getPricing:()=>m,getSettings:()=>j,isCloudEnabled:()=>l,o4:()=>w,ru:()=>v,updateSettings:()=>k,yF:()=>p});var d=c(42910),e=c(39948),f=c(23969),g=c(31714);function h(a){return a&&"object"==typeof a?a:{}}function i(a){return a&&"object"==typeof a?a:{}}async function j(){let a=(0,d.sm)(),b=a.prepare("SELECT key, value FROM key_value WHERE namespace = 'settings'").all(),c={cloudEnabled:!1,stickyRoundRobinLimit:3,requireLogin:!0};for(let a of b){let b=h(a),d="string"==typeof b.key?b.key:null,e="string"==typeof b.value?b.value:null;d&&null!==e&&(c[d]=JSON.parse(e))}return!c.setupComplete&&process.env.INITIAL_PASSWORD&&(c.setupComplete=!0,c.requireLogin=!0,a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', 'setupComplete', 'true')").run(),a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', 'requireLogin', 'true')").run()),c}async function k(a){let b=(0,d.sm)(),c=b.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', ?, ?)");return b.transaction(()=>{for(let[b,d]of Object.entries(a))c.run(b,JSON.stringify(d))})(),(0,e.lR)("pre-write"),(0,g.Sc)("settings"),j()}async function l(){return!0===(await j()).cloudEnabled}async function m(){let a=(0,d.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing'").all(),b={};for(let c of a){let a=h(c),d="string"==typeof a.key?a.key:null,e="string"==typeof a.value?a.value:null;d&&null!==e&&(b[d]=h(JSON.parse(e)))}let{getDefaultPricing:e}=await c.e(3699).then(c.bind(c,53699)),f=e(),g={};for(let[a,c]of Object.entries(f))if(g[a]={...h(c)},b[a])for(let[c,d]of Object.entries(b[a]))g[a][c]=g[a][c]?{...g[a][c]||{},...h(d)}:d;for(let[a,c]of Object.entries(b))if(g[a])for(let[b,d]of Object.entries(c))g[a][b]||(g[a][b]=d);else g[a]={...c};return g}async function n(a,b){let d=await m();if(d[a]?.[b])return d[a][b];let{PROVIDER_ID_TO_ALIAS:e}=await Promise.resolve().then(c.bind(c,23969)),f=e[a];if(f&&d[f])return d[f][b]||null;let g=a?.replace(/-cn$/,"");return g&&g!==a&&d[g]&&d[g][b]||null}async function o(a){let b=(0,d.sm)(),c=b.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('pricing', ?, ?)"),f=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing'").all(),i={};for(let a of f){let b=h(a),c="string"==typeof b.key?b.key:null,d="string"==typeof b.value?b.value:null;c&&null!==d&&(i[c]=h(JSON.parse(d)))}b.transaction(()=>{for(let[b,d]of Object.entries(a))c.run(b,JSON.stringify({...i[b]||{},...d}))})(),(0,e.lR)("pre-write"),(0,g.Sc)("pricing");let j={};for(let a of b.prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing'").all()){let b=h(a),c="string"==typeof b.key?b.key:null,d="string"==typeof b.value?b.value:null;c&&null!==d&&(j[c]=h(JSON.parse(d)))}return j}async function p(a,b){let c=(0,d.sm)();if(b){let d=c.prepare("SELECT value FROM key_value WHERE namespace = 'pricing' AND key = ?").get(a);if(d){let e=h(d),f=h(JSON.parse("string"==typeof e.value?e.value:"{}"));delete f[b],0===Object.keys(f).length?c.prepare("DELETE FROM key_value WHERE namespace = 'pricing' AND key = ?").run(a):c.prepare("UPDATE key_value SET value = ? WHERE namespace = 'pricing' AND key = ?").run(JSON.stringify(f),a)}}else c.prepare("DELETE FROM key_value WHERE namespace = 'pricing' AND key = ?").run(a);(0,e.lR)("pre-write");let f=c.prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing'").all(),g={};for(let a of f){let b=h(a),c="string"==typeof b.key?b.key:null,d="string"==typeof b.value?b.value:null;c&&null!==d&&(g[c]=JSON.parse(d))}return g}async function q(){return(0,d.sm)().prepare("DELETE FROM key_value WHERE namespace = 'pricing'").run(),(0,e.lR)("pre-write"),{}}let r={global:null,providers:{},combos:{},keys:{}},s=Object.entries(f.PROVIDER_ID_TO_ALIAS).reduce((a,[b,c])=>(c&&(a[c]=b),a[b]=b,a),{});function t(a){return"string"!=typeof a?a:s[a]||a}function u(a){if(!a)return null;if("object"==typeof a){let b=h(a);if(b.type)return b}if("string"!=typeof a)return null;try{let b=new URL(a);return{type:b.protocol.replace(":","")||"http",host:b.hostname,port:b.port||("socks5:"===b.protocol?"1080":"https:"===b.protocol?"443":"8080"),username:b.username?decodeURIComponent(b.username):"",password:b.password?decodeURIComponent(b.password):""}}catch{let b=a.split(":");return{type:"http",host:b[0]||a,port:b[1]||"8080",username:"",password:""}}}async function v(){let a=(0,d.sm)(),b=a.prepare("SELECT key, value FROM key_value WHERE namespace = 'proxyConfig'").all(),c={...r};for(let a of b){let b=h(a),d="string"==typeof b.key?b.key:null,e="string"==typeof b.value?b.value:null;d&&null!==e&&(c[d]=JSON.parse(e))}let e=!1;if(c.global&&"string"==typeof c.global&&(c.global=u(c.global),e=!0),c.providers)for(let[a,b]of Object.entries(c.providers))"string"==typeof b&&(c.providers[a]=u(b),e=!0);if(e){let b=a.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('proxyConfig', ?, ?)");void 0!==c.global&&b.run("global",JSON.stringify(c.global)),c.providers&&b.run("providers",JSON.stringify(c.providers))}return c}async function w(a,b){let c=await v();if("global"===a)return c.global||null;let d=i(c[a+"s"]||c[a]||{});return(b?d[b]:null)||null}async function x(a,b,c){let f=(0,d.sm)(),g=await v();if("global"===a)g.global=c||null,f.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('proxyConfig', 'global', ?)").run(JSON.stringify(g.global));else{let d=a+"s",e=i(g[d]||{});c&&b?e[b]=c:b&&delete e[b],g[d]=e,f.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('proxyConfig', ?, ?)").run(d,JSON.stringify(e))}return(0,e.lR)("pre-write"),g}async function y(a,b){return x(a,b,null)}async function z(a){let b=await v();if(a&&b.keys?.[a])return{proxy:b.keys[a],level:"key",levelId:a};let c=(0,d.sm)(),e=c.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(a);if(e){let a=h(e),d="string"==typeof a.provider?a.provider:null;if(b.combos&&Object.keys(b.combos).length>0)for(let a of c.prepare("SELECT id, data FROM combos").all()){let c=h(a),e="string"==typeof c.id?c.id:null;if(e&&b.combos[e])try{let a="string"==typeof c.data?c.data:null;if(!a)continue;let f=h(JSON.parse(a));if((Array.isArray(f.models)?f.models:[]).some(a=>(function(a){let b=h(a);if("string"==typeof b.provider)return t(b.provider);let c="string"==typeof a?a:"string"==typeof b.model?b.model:null;if(!c)return null;let[d]=c.split("/",1);return d?t(d):null})(a)===d))return{proxy:b.combos[e],level:"combo",levelId:e}}catch{}}if(d&&b.providers?.[d])return{proxy:b.providers[d],level:"provider",levelId:d}}return b.global?{proxy:b.global,level:"global",levelId:null}:{proxy:null,level:"direct",levelId:null}}async function A(a){if(void 0!==a.level)return x("string"==typeof a.level?a.level:"global","string"==typeof a.id?a.id:null,a.proxy||null);let b=(0,d.sm)(),c=await v(),f=b.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('proxyConfig', ?, ?)");return b.transaction(()=>{if(void 0!==a.global){var b;c.global=null===(b=a.global)||"string"==typeof b||b&&"object"==typeof b?b:null,f.run("global",JSON.stringify(c.global))}for(let b of["providers","combos","keys"])if(a[b]){let d={...i(c[b]),...i(a[b])};for(let[a,b]of Object.entries(d))b||delete d[a];c[b]=d,f.run(b,JSON.stringify(d))}})(),(0,e.lR)("pre-write"),c}},23969:(a,b,c)=>{c.d(b,{PROVIDER_ID_TO_ALIAS:()=>f,ux:()=>g,vq:()=>e});var d=c(83596);let e=(0,d.oD)(),f=(0,d.Qv)();function g(a,b){let c=e[a];if(!c)return null;let d=c.find(a=>a.id===b);return d?.targetFormat||null}},31714:(a,b,c)=>{c.d(b,{Sc:()=>h});class d{constructor(a){this.cache=new Map,this.ttlMs=a}get(a){let b=this.cache.get(a);if(b)return Date.now()>b.expiresAt?void this.cache.delete(a):b.value}set(a,b){this.cache.set(a,{value:b,expiresAt:Date.now()+this.ttlMs})}invalidate(a){a?this.cache.delete(a):this.cache.clear()}}let e=new d(5e3),f=new d(3e4),g=new d(5e3);function h(a){a&&"settings"!==a||e.invalidate(),a&&"pricing"!==a||f.invalidate(),a&&"connections"!==a||g.invalidate()}},39948:(a,b,c)=>{c.d(b,{Dp:()=>o,eF:()=>n,lR:()=>m});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(42910),k=c(954);let l=0;function m(a="auto"){try{if(j.I8||j.m1||!j.oh||!i().existsSync(j.oh))return null;let b=i().statSync(j.oh);if(b.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${b.size}B)`),null;let c=Date.now();if("manual"!==a&&"pre-restore"!==a&&c-l<36e5)return null;l=c;let d=j.NJ||g().join(j.nJ,"db_backups");i().existsSync(d)||i().mkdirSync(d,{recursive:!0});let e=i().readdirSync(d).filter(a=>a.startsWith("db_")&&a.endsWith(".sqlite")).sort();if(e.length>0){let a=e[e.length-1],c=i().statSync(g().join(d,a));if(c.size>4096&&b.size<.5*c.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${c.size}B to ${b.size}B`),null}let f=new Date().toISOString().replace(/[:.]/g,"-"),h=g().join(d,`db_${f}_${a}.sqlite`);(0,j.sm)().backup(h).then(()=>{console.log(`[DB] Backup created: ${h} (${b.size} bytes)`)}).catch(a=>{let b=a instanceof Error?a.message:String(a);console.error("[DB] Backup failed:",b)});let k=i().readdirSync(d).filter(a=>a.startsWith("db_")&&a.endsWith(".sqlite")).sort();for(;k.length>20;){let a=0,b=1/0;for(let c=0;c<k.length-1;c++)try{let e=i().statSync(g().join(d,k[c]));e.size<b&&(b=e.size,a=c)}catch{a=c;break}try{i().unlinkSync(g().join(d,k[a]))}catch{}k.splice(a,1)}return{filename:g().basename(h),size:b.size}}catch(a){return console.error("[DB] Backup failed:",a instanceof Error?a.message:String(a)),null}}async function n(){let a=j.NJ||g().join(j.nJ,"db_backups");try{if(!i().existsSync(a))return[];return i().readdirSync(a).filter(a=>a.startsWith("db_")&&a.endsWith(".sqlite")).sort().reverse().map(b=>{let c=g().join(a,b),d=i().statSync(c),f=b.match(/^db_(.+?)_([^.]+)\.sqlite$/),h=f?f[2]:"unknown",j=0;try{let a=new(e())(c,{readonly:!0}),b=a.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();j=b?.cnt||0,a.close()}catch{}return{id:b,filename:b,createdAt:d.mtime.toISOString(),size:d.size,reason:h,connectionCount:j}})}catch{return[]}}async function o(a){let b=j.NJ||g().join(j.nJ,"db_backups");if(!a.startsWith("db_")||!a.endsWith(".sqlite")||a.includes(g().sep)||a.includes("/"))throw Error("Invalid backup ID");let c=g().resolve(b,a);if(!c.startsWith(g().resolve(b)+g().sep)&&c!==g().resolve(b))throw Error("Invalid backup ID: path traversal detected");if(!i().existsSync(c))throw Error(`Backup not found: ${a}`);try{let a=new(e())(c,{readonly:!0}),b=a.pragma("integrity_check");if(a.close(),b[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(b){if(b instanceof Error&&"Backup integrity check failed"===b.message)throw b;let a=b instanceof Error?b.message:String(b);throw Error(`Backup file is corrupt: ${a}`)}l=0,m("pre-restore"),(0,j.jX)(),(0,k.U)();let d=j.oh;if(!d)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let a of[d,`${d}-wal`,`${d}-shm`,`${d}-journal`])a&&i().existsSync(a)&&i().unlinkSync(a);i().copyFileSync(c,d);let f=(0,j.sm)(),h=f.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,n=f.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,o=f.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,p=f.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${a} (${h} connections)`),{restored:!0,backupId:a,connectionCount:h,nodeCount:n,comboCount:o,apiKeyCount:p}}}};
@@ -1,8 +1,8 @@
1
- "use strict";exports.id=7109,exports.ids=[7109],exports.modules={17109:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>z,testSingleConnection:()=>y});var e=c(45592),f=c(22901),g=c(90357),h=c(44963),i=c(38369),j=c(17916),k=c(87068),l=c(19704),m=c(34493),n=c(76340),o=a([i]);i=(o.then?(await o)():o)[0];let A={claude:{checkExpiry:!0},codex:{checkExpiry:!0,refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"User-Agent":"OmniRoute",Accept:"application/vnd.github+json"}},iflow:{checkExpiry:!0,refreshable:!0},qwen:{checkExpiry:!0,refreshable:!0},cursor:{checkExpiry:!0},"kimi-coding":{checkExpiry:!0,refreshable:!0},kilocode:{checkExpiry:!0},cline:{checkExpiry:!0,refreshable:!0},kiro:{checkExpiry:!0,refreshable:!0}},B={cline:"cline",kilocode:"kilo"};function p(a,b="Unknown error"){return"string"!=typeof a?b:a.trim()||b}function q(a,b,c,d=null){return{type:a,source:b,message:c||null,code:d??null}}function r({error:a,statusCode:b=null,refreshFailed:c=!1,unsupported:d=!1}){let e=p(a,"Connection test failed"),f=e.toLowerCase(),g=Number.isFinite(b)?Number(b):null;return d?q("unsupported","validation",e,"unsupported"):c||f.includes("refresh failed")?q("token_refresh_failed","oauth",e,"refresh_failed"):401===g||403===g?q("upstream_auth_error","upstream",e,String(g)):429===g?q("upstream_rate_limited","upstream",e,"429"):g&&g>=500?q("upstream_unavailable","upstream",e,String(g)):f.includes("token expired")||f.includes("expired")?q("token_expired","oauth",e,"token_expired"):f.includes("invalid api key")||f.includes("token invalid")||f.includes("revoked")||f.includes("access denied")||f.includes("unauthorized")||f.includes("forbidden")?q("upstream_auth_error","upstream",e,g?String(g):"auth_failed"):f.includes("rate limit")||f.includes("quota")||f.includes("too many requests")?q("upstream_rate_limited","upstream",e,g?String(g):"rate_limited"):f.includes("fetch failed")||f.includes("network")||f.includes("timeout")||f.includes("econn")||f.includes("enotfound")||f.includes("socket")?q("network_error","upstream",e,"network_error"):q("upstream_error","upstream",e,g?String(g):"upstream_error")}async function s(a){let b=B[a];if(!b)return null;try{let a=await (0,j.V5)(b);if(a.installed&&a.runnable)return a;let c=a.installed?`Local CLI runtime is installed but not runnable (${a.reason||"healthcheck_failed"})`:"Local CLI runtime is not installed";return{...a,diagnosis:q("runtime_error","local",c,a.reason||"runtime_error"),error:c}}catch(b){let a=`Failed to check local CLI runtime: ${b?.message||"runtime_check_failed"}`;return{installed:!1,runnable:!1,reason:"runtime_check_failed",diagnosis:q("runtime_error","local",a,"runtime_check_failed"),error:a}}}async function t(a){let{provider:b,refreshToken:c}=a;if(!c)return null;try{let d={refreshToken:c,providerSpecificData:a.providerSpecificData||{}};return await (0,k.iD)(b,d,console)}catch(a){return console.log(`Error refreshing ${b} token:`,a.message),null}}function u(a){let b=a.expiresAt||a.tokenExpiresAt;return!!b&&new Date(b).getTime()<=Date.now()+3e5}async function v(){try{if(!await (0,f.Nx)())return;let a=await (0,g.Xj)();await (0,h.AF)(a)}catch(a){console.log("Error syncing to cloud after token refresh:",a)}}async function w(a){let b=A[a.provider];if(!b){let a="Provider test not supported";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a,unsupported:!0})}}if(!a.accessToken){if(b.refreshable&&!a.refreshToken){let a="Refresh token expired. Please re-authenticate this account.";return{valid:!1,error:a,refreshed:!1,diagnosis:q("reauth_required","oauth",a,"reauth_required")}}let c="No access token";return{valid:!1,error:c,refreshed:!1,diagnosis:q("auth_missing","local",c,"missing_access_token")}}let c=a.accessToken,d=!1,e=null,f=u(a);if(b.refreshable&&f&&a.refreshToken){let b=await t(a);if(b)c=b.accessToken,d=!0,e=b;else{let a="Token expired and refresh failed";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a,refreshFailed:!0})}}}if(b.checkExpiry){if(d)return{valid:!0,error:null,refreshed:d,newTokens:e,diagnosis:q("ok","oauth",null,null)};if(f){let a="Token expired";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a})}}return{valid:!0,error:null,refreshed:!1,newTokens:null,diagnosis:q("ok","local",null,null)}}try{let f={[b.authHeader]:`${b.authPrefix}${c}`,...b.extraHeaders},g=await fetch(b.url,{method:b.method,headers:f});if(g.ok)return{valid:!0,error:null,refreshed:d,newTokens:e,diagnosis:q("ok","upstream",null,null)};if((401===g.status||403===g.status)&&!d&&u(a)&&a.refreshToken&&"string"==typeof a.refreshToken){let c=await t(a);if(c){let a=await fetch(b.url,{method:b.method,headers:{[b.authHeader]:`${b.authPrefix}${c.accessToken}`,...b.extraHeaders}});if(a.ok)return{valid:!0,error:null,refreshed:!0,newTokens:c,diagnosis:q("ok","upstream",null,null)};let d=`API returned ${a.status} after token refresh`;return{valid:!1,error:d,refreshed:!0,statusCode:a.status,diagnosis:r({error:d,statusCode:a.status})}}let d="Token expired and refresh failed";return{valid:!1,error:d,refreshed:!1,statusCode:401,diagnosis:r({error:d,statusCode:401,refreshFailed:!0})}}let h=401===g.status?"Token invalid or revoked":403===g.status?"Access denied":`API returned ${g.status}`;return{valid:!1,error:h,refreshed:d,statusCode:g.status,diagnosis:r({error:h,statusCode:g.status})}}catch(b){let a=p(b?.message,"Connection test failed");return{valid:!1,error:a,refreshed:d,diagnosis:r({error:a})}}}async function x(a){if(!a.apiKey){let a="Missing API key";return{valid:!1,error:a,diagnosis:q("auth_missing","local",a,"missing_api_key")}}let b=await (0,i.j)({provider:a.provider,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData});if(b.unsupported){let a="Provider test not supported";return{valid:!1,error:a,diagnosis:r({error:a,unsupported:!0})}}let c=b.valid?null:b.error||"Invalid API key",d=b.valid?q("ok","upstream",null,null):r({error:c});return{valid:!!b.valid,error:c,diagnosis:d}}async function y(a){let b,c=await (0,f.Mc)(a);if(!c)return{valid:!1,error:"Connection not found",diagnosis:null,latencyMs:0};let d="string"==typeof c.provider?c.provider:"";if(!d)return{valid:!1,error:"Connection provider is invalid",diagnosis:q("validation_error","local","Connection provider is invalid","provider_invalid"),latencyMs:0};let e=null;try{e=await (0,f.YD)(a)}catch(b){console.log(`[ConnectionTest] Failed to resolve proxy for ${a}:`,b?.message)}let g=Date.now(),h=await s(d);b=h?.diagnosis?{valid:!1,error:h.error,refreshed:!1,diagnosis:h.diagnosis}:"apikey"===c.authType?await (0,n.jf)(e?.proxy||null,()=>x(c)):await (0,n.jf)(e?.proxy||null,()=>w(c));let i=Date.now()-g,j=new Date().toISOString(),k=b.diagnosis||(b.valid?q("ok","local",null,null):r({error:b.error,statusCode:b.statusCode})),o={testStatus:b.valid?"active":"error",lastError:b.valid?null:b.error,lastErrorAt:b.valid?null:j,lastTested:j,lastErrorType:b.valid?null:k.type,lastErrorSource:b.valid?null:k.source,errorCode:b.valid?null:k.code||b.statusCode||null,rateLimitedUntil:b.valid?null:c.rateLimitedUntil||null};b.valid&&(o.backoffLevel=0),b.refreshed&&b.newTokens&&(o.accessToken=b.newTokens.accessToken,b.newTokens.refreshToken&&(o.refreshToken=b.newTokens.refreshToken),b.newTokens.expiresIn&&(o.expiresAt=new Date(Date.now()+1e3*b.newTokens.expiresIn).toISOString())),await (0,f.rj)(a,o),b.refreshed&&await v();try{(0,l.gK)({method:"POST",path:"/api/providers/test",status:b.valid?200:b.statusCode||401,model:"connection-test",provider:d,connectionId:a,duration:i,error:b.valid?null:b.error||null,sourceFormat:"test",targetFormat:"test"}).catch(()=>{})}catch{}try{(0,m.pq)({status:b.valid?"success":"error",proxy:e?.proxy||null,level:e?.level||"provider-test",levelId:e?.levelId||null,provider:d,targetUrl:`${d}/connection-test`,latencyMs:i,error:b.valid?null:b.error||null,connectionId:a,comboId:null,account:a?.slice(0,8)||null,tlsFingerprint:!1})}catch{}return{valid:b.valid,error:b.error,refreshed:b.refreshed||!1,diagnosis:k,latencyMs:i,statusCode:b.statusCode||null,runtime:h||null,testedAt:j}}async function z(a,{params:b}){try{let{id:a}=await b,c=await y(a);if("Connection not found"===c.error)return e.NextResponse.json({error:"Connection not found"},{status:404});return e.NextResponse.json(c)}catch(a){return console.log("Error testing connection:",a),e.NextResponse.json({error:"Test failed"},{status:500})}}d()}catch(a){d(a)}})},17916:(a,b,c)=>{c.d(b,{CU:()=>t,MG:()=>v,V5:()=>w,XH:()=>x,hl:()=>u});var d=c(79748),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(79646);let k=new Set(["auto","host","container"]),l=new Set(["0","false","no","off"]),m={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/config.toml"}}},n=(a,b,{env:c,timeoutMs:d=3e3}={})=>new Promise(e=>{let f="",g="",h=!1,i=!1,k=(0,j.spawn)(a,b,{env:c,stdio:["ignore","pipe","pipe"]}),l=setTimeout(()=>{h=!0,k.kill("SIGKILL")},d),m=a=>{i||(i=!0,clearTimeout(l),e(a))};k.stdout.on("data",a=>{f+=a.toString()}),k.stderr.on("data",a=>{g+=a.toString()}),k.on("error",a=>{m({ok:!1,code:null,stdout:f.trim(),stderr:g.trim(),timedOut:h,error:a?.message||"spawn_error"})}),k.on("close",a=>{m({ok:!h&&0===a,code:a,stdout:f.trim(),stderr:g.trim(),timedOut:h,error:h?"timeout":null})})}),o=["&","|",";","<",">","(",")","`","$","^","%","!"],p=async a=>{if(!(!(!a||!i().isAbsolute(a)||o.some(b=>a.includes(b)))&&1))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await e().access(a,e().constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await e().access(a,e().constants.X_OK),{installed:!0,commandPath:a,reason:null}}catch{return{installed:!0,commandPath:a,reason:"not_executable"}}},q=async(a,b)=>{if(!a)return{installed:!1,commandPath:null,reason:"missing_command"};if(a.includes("/")||a.includes("\\"))return p(a);if("win32"===process.platform){let c=await n("where",[a],{env:b,timeoutMs:3e3});if(!c.ok||!c.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||null;return{installed:!!d,commandPath:d,reason:d?null:"not_found"}}let c=await n("sh",["-c",'command -v -- "$1"',"sh",a],{env:b,timeoutMs:3e3});if(!c.ok||!c.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||null;return{installed:!!d,commandPath:d,reason:d?null:"not_found"}},r=async(a,b)=>{if(!Array.isArray(a)||0===a.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};for(let c of a){let a=await q(c,b);if(a.installed||"not_found"!==a.reason)return{command:c,...a}}return{command:a[0],installed:!1,commandPath:null,reason:"not_found"}},s=async(a,b,c=4e3)=>{for(let d of[["--version"],["-v"]])if((await n(a,d,{env:b,timeoutMs:c})).ok)return{runnable:!0,reason:null};return{runnable:!1,reason:"healthcheck_failed"}},t=()=>((a,b=!0)=>null==a||""===a?b:!l.has(String(a).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)",u=a=>{let b=m[a];if(!b)return null;let c=String(process.env.CLI_CONFIG_HOME||"").trim()||g().homedir();return Object.fromEntries(Object.entries(b.paths).map(([a,b])=>[a,i().join(c,b)]))},v=a=>{let b=u(a);if(!b)return null;let c=Object.keys(b)[0];return c?b[c]:null},w=async a=>{let b,c,d,e=m[a],f=(b=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),k.has(b)?b:"auto");if(!e)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:f,requiresBinary:!1};let g=(c={...process.env},(d=String(process.env.CLI_EXTRA_PATHS||"").split(i().delimiter).map(a=>a.trim()).filter(Boolean)).length>0&&(c.PATH=[...d,c.PATH||""].filter(Boolean).join(i().delimiter)),c),h=(a=>{let b=m[a];if(!b)return[];let c=String(process.env[b.envBinKey]||"").trim();return c?[c]:Array.isArray(b.defaultCommands)&&b.defaultCommands.length>0?b.defaultCommands.filter(Boolean):b.defaultCommand?[b.defaultCommand]:[]})(a),j=!1!==e.requiresBinary;if(!j&&0===h.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:f,requiresBinary:j};let l=await r(h,g),n=l.command;if(!l.installed)return{installed:!1,runnable:!1,command:n,commandPath:null,reason:l.reason||"not_found",runtimeMode:f,requiresBinary:j};if("not_executable"===l.reason)return{installed:!0,runnable:!1,command:n,commandPath:l.commandPath,reason:"not_executable",runtimeMode:f,requiresBinary:j};let o=await s(l.commandPath,g,Number(e.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:o.runnable,command:n,commandPath:l.commandPath,reason:o.reason,runtimeMode:f,requiresBinary:j}},x=Object.keys(m)},34493:(a,b,c)=>{c.d(b,{GL:()=>j,XT:()=>k,pq:()=>i});var d=c(94755),e=c(42910);let f=!e.m1&&!e.I8,g=parseInt(process.env.PROXY_LOG_MAX_ENTRIES||"200",10),h=[];if(f)try{for(let a of(0,e.sm)().prepare("SELECT * FROM proxy_logs ORDER BY timestamp DESC LIMIT ?").all(g))h.push({id:a.id,timestamp:a.timestamp,status:a.status||"success",proxy:a.proxy_host?{type:a.proxy_type,host:a.proxy_host,port:a.proxy_port}:null,level:a.level||"direct",levelId:a.level_id||null,provider:a.provider||null,targetUrl:a.target_url||null,publicIp:a.public_ip||null,latencyMs:a.latency_ms||0,error:a.error||null,connectionId:a.connection_id||null,comboId:a.combo_id||null,account:a.account||null,tlsFingerprint:1===a.tls_fingerprint});h.length>0&&console.log(`[proxyLogger] Loaded ${h.length} proxy logs from SQLite`)}catch(a){console.warn("[proxyLogger] Failed to load from DB:",a.message)}function i(a){let b={id:(0,d.A)(),timestamp:new Date().toISOString(),status:a.status||"success",proxy:a.proxy||null,level:a.level||"direct",levelId:a.levelId||null,provider:a.provider||null,targetUrl:a.targetUrl||null,publicIp:a.publicIp||null,latencyMs:a.latencyMs||0,error:a.error||null,connectionId:a.connectionId||null,comboId:a.comboId||null,account:a.account||null,tlsFingerprint:a.tlsFingerprint||!1};if(h.unshift(b),h.length>g&&(h.length=g),f)try{let a=(0,e.sm)();a.prepare(`INSERT INTO proxy_logs (id, timestamp, status, proxy_type, proxy_host, proxy_port,
1
+ "use strict";exports.id=7109,exports.ids=[7109],exports.modules={17109:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>z,testSingleConnection:()=>y});var e=c(45592),f=c(75585),g=c(90357),h=c(44963),i=c(38369),j=c(17916),k=c(87068),l=c(19704),m=c(34493),n=c(76340),o=a([i]);i=(o.then?(await o)():o)[0];let A={claude:{checkExpiry:!0},codex:{checkExpiry:!0,refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"User-Agent":"OmniRoute",Accept:"application/vnd.github+json"}},iflow:{checkExpiry:!0,refreshable:!0},qwen:{checkExpiry:!0,refreshable:!0},cursor:{checkExpiry:!0},"kimi-coding":{checkExpiry:!0,refreshable:!0},kilocode:{checkExpiry:!0},cline:{checkExpiry:!0,refreshable:!0},kiro:{checkExpiry:!0,refreshable:!0}},B={cline:"cline",kilocode:"kilo"};function p(a,b="Unknown error"){return"string"!=typeof a?b:a.trim()||b}function q(a,b,c,d=null){return{type:a,source:b,message:c||null,code:d??null}}function r({error:a,statusCode:b=null,refreshFailed:c=!1,unsupported:d=!1}){let e=p(a,"Connection test failed"),f=e.toLowerCase(),g=Number.isFinite(b)?Number(b):null;return d?q("unsupported","validation",e,"unsupported"):c||f.includes("refresh failed")?q("token_refresh_failed","oauth",e,"refresh_failed"):401===g||403===g?q("upstream_auth_error","upstream",e,String(g)):429===g?q("upstream_rate_limited","upstream",e,"429"):g&&g>=500?q("upstream_unavailable","upstream",e,String(g)):f.includes("token expired")||f.includes("expired")?q("token_expired","oauth",e,"token_expired"):f.includes("invalid api key")||f.includes("token invalid")||f.includes("revoked")||f.includes("access denied")||f.includes("unauthorized")||f.includes("forbidden")?q("upstream_auth_error","upstream",e,g?String(g):"auth_failed"):f.includes("rate limit")||f.includes("quota")||f.includes("too many requests")?q("upstream_rate_limited","upstream",e,g?String(g):"rate_limited"):f.includes("fetch failed")||f.includes("network")||f.includes("timeout")||f.includes("econn")||f.includes("enotfound")||f.includes("socket")?q("network_error","upstream",e,"network_error"):q("upstream_error","upstream",e,g?String(g):"upstream_error")}async function s(a){let b=B[a];if(!b)return null;try{let a=await (0,j.V5)(b);if(a.installed&&a.runnable)return a;let c=a.installed?`Local CLI runtime is installed but not runnable (${a.reason||"healthcheck_failed"})`:"Local CLI runtime is not installed";return{...a,diagnosis:q("runtime_error","local",c,a.reason||"runtime_error"),error:c}}catch(b){let a=`Failed to check local CLI runtime: ${b?.message||"runtime_check_failed"}`;return{installed:!1,runnable:!1,reason:"runtime_check_failed",diagnosis:q("runtime_error","local",a,"runtime_check_failed"),error:a}}}async function t(a){let{provider:b,refreshToken:c}=a;if(!c)return null;try{let d={refreshToken:c,providerSpecificData:a.providerSpecificData||{}};return await (0,k.iD)(b,d,console)}catch(a){return console.log(`Error refreshing ${b} token:`,a.message),null}}function u(a){let b=a.expiresAt||a.tokenExpiresAt;return!!b&&new Date(b).getTime()<=Date.now()+3e5}async function v(){try{if(!await (0,f.Nx)())return;let a=await (0,g.Xj)();await (0,h.AF)(a)}catch(a){console.log("Error syncing to cloud after token refresh:",a)}}async function w(a){let b=A[a.provider];if(!b){let a="Provider test not supported";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a,unsupported:!0})}}if(!a.accessToken){if(b.refreshable&&!a.refreshToken){let a="Refresh token expired. Please re-authenticate this account.";return{valid:!1,error:a,refreshed:!1,diagnosis:q("reauth_required","oauth",a,"reauth_required")}}let c="No access token";return{valid:!1,error:c,refreshed:!1,diagnosis:q("auth_missing","local",c,"missing_access_token")}}let c=a.accessToken,d=!1,e=null,f=u(a);if(b.refreshable&&f&&a.refreshToken){let b=await t(a);if(b)c=b.accessToken,d=!0,e=b;else{let a="Token expired and refresh failed";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a,refreshFailed:!0})}}}if(b.checkExpiry){if(d)return{valid:!0,error:null,refreshed:d,newTokens:e,diagnosis:q("ok","oauth",null,null)};if(f){let a="Token expired";return{valid:!1,error:a,refreshed:!1,diagnosis:r({error:a})}}return{valid:!0,error:null,refreshed:!1,newTokens:null,diagnosis:q("ok","local",null,null)}}try{let f={[b.authHeader]:`${b.authPrefix}${c}`,...b.extraHeaders},g=await fetch(b.url,{method:b.method,headers:f});if(g.ok)return{valid:!0,error:null,refreshed:d,newTokens:e,diagnosis:q("ok","upstream",null,null)};if((401===g.status||403===g.status)&&!d&&u(a)&&a.refreshToken&&"string"==typeof a.refreshToken){let c=await t(a);if(c){let a=await fetch(b.url,{method:b.method,headers:{[b.authHeader]:`${b.authPrefix}${c.accessToken}`,...b.extraHeaders}});if(a.ok)return{valid:!0,error:null,refreshed:!0,newTokens:c,diagnosis:q("ok","upstream",null,null)};let d=`API returned ${a.status} after token refresh`;return{valid:!1,error:d,refreshed:!0,statusCode:a.status,diagnosis:r({error:d,statusCode:a.status})}}let d="Token expired and refresh failed";return{valid:!1,error:d,refreshed:!1,statusCode:401,diagnosis:r({error:d,statusCode:401,refreshFailed:!0})}}let h=401===g.status?"Token invalid or revoked":403===g.status?"Access denied":`API returned ${g.status}`;return{valid:!1,error:h,refreshed:d,statusCode:g.status,diagnosis:r({error:h,statusCode:g.status})}}catch(b){let a=p(b?.message,"Connection test failed");return{valid:!1,error:a,refreshed:d,diagnosis:r({error:a})}}}async function x(a){if(!a.apiKey){let a="Missing API key";return{valid:!1,error:a,diagnosis:q("auth_missing","local",a,"missing_api_key")}}let b=await (0,i.j)({provider:a.provider,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData});if(b.unsupported){let a="Provider test not supported";return{valid:!1,error:a,diagnosis:r({error:a,unsupported:!0})}}let c=b.valid?null:b.error||"Invalid API key",d=b.valid?q("ok","upstream",null,null):r({error:c});return{valid:!!b.valid,error:c,diagnosis:d}}async function y(a){let b,c=await (0,f.Mc)(a);if(!c)return{valid:!1,error:"Connection not found",diagnosis:null,latencyMs:0};let d="string"==typeof c.provider?c.provider:"";if(!d)return{valid:!1,error:"Connection provider is invalid",diagnosis:q("validation_error","local","Connection provider is invalid","provider_invalid"),latencyMs:0};let e=null;try{e=await (0,f.YD)(a)}catch(b){console.log(`[ConnectionTest] Failed to resolve proxy for ${a}:`,b?.message)}let g=Date.now(),h=await s(d);b=h?.diagnosis?{valid:!1,error:h.error,refreshed:!1,diagnosis:h.diagnosis}:"apikey"===c.authType?await (0,n.jf)(e?.proxy||null,()=>x(c)):await (0,n.jf)(e?.proxy||null,()=>w(c));let i=Date.now()-g,j=new Date().toISOString(),k=b.diagnosis||(b.valid?q("ok","local",null,null):r({error:b.error,statusCode:b.statusCode})),o={testStatus:b.valid?"active":"error",lastError:b.valid?null:b.error,lastErrorAt:b.valid?null:j,lastTested:j,lastErrorType:b.valid?null:k.type,lastErrorSource:b.valid?null:k.source,errorCode:b.valid?null:k.code||b.statusCode||null,rateLimitedUntil:b.valid?null:c.rateLimitedUntil||null};b.valid&&(o.backoffLevel=0),b.refreshed&&b.newTokens&&(o.accessToken=b.newTokens.accessToken,b.newTokens.refreshToken&&(o.refreshToken=b.newTokens.refreshToken),b.newTokens.expiresIn&&(o.expiresAt=new Date(Date.now()+1e3*b.newTokens.expiresIn).toISOString())),await (0,f.rj)(a,o),b.refreshed&&await v();try{(0,l.gK)({method:"POST",path:"/api/providers/test",status:b.valid?200:b.statusCode||401,model:"connection-test",provider:d,connectionId:a,duration:i,error:b.valid?null:b.error||null,sourceFormat:"test",targetFormat:"test"}).catch(()=>{})}catch{}try{(0,m.pq)({status:b.valid?"success":"error",proxy:e?.proxy||null,level:e?.level||"provider-test",levelId:e?.levelId||null,provider:d,targetUrl:`${d}/connection-test`,latencyMs:i,error:b.valid?null:b.error||null,connectionId:a,comboId:null,account:a?.slice(0,8)||null,tlsFingerprint:!1})}catch{}return{valid:b.valid,error:b.error,refreshed:b.refreshed||!1,diagnosis:k,latencyMs:i,statusCode:b.statusCode||null,runtime:h||null,testedAt:j}}async function z(a,{params:b}){try{let{id:a}=await b,c=await y(a);if("Connection not found"===c.error)return e.NextResponse.json({error:"Connection not found"},{status:404});return e.NextResponse.json(c)}catch(a){return console.log("Error testing connection:",a),e.NextResponse.json({error:"Test failed"},{status:500})}}d()}catch(a){d(a)}})},17916:(a,b,c)=>{c.d(b,{CU:()=>t,MG:()=>v,V5:()=>w,XH:()=>x,hl:()=>u});var d=c(79748),e=c.n(d),f=c(21820),g=c.n(f),h=c(33873),i=c.n(h),j=c(79646);let k=new Set(["auto","host","container"]),l=new Set(["0","false","no","off"]),m={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/config.toml"}}},n=(a,b,{env:c,timeoutMs:d=3e3}={})=>new Promise(e=>{let f="",g="",h=!1,i=!1,k=(0,j.spawn)(a,b,{env:c,stdio:["ignore","pipe","pipe"]}),l=setTimeout(()=>{h=!0,k.kill("SIGKILL")},d),m=a=>{i||(i=!0,clearTimeout(l),e(a))};k.stdout.on("data",a=>{f+=a.toString()}),k.stderr.on("data",a=>{g+=a.toString()}),k.on("error",a=>{m({ok:!1,code:null,stdout:f.trim(),stderr:g.trim(),timedOut:h,error:a?.message||"spawn_error"})}),k.on("close",a=>{m({ok:!h&&0===a,code:a,stdout:f.trim(),stderr:g.trim(),timedOut:h,error:h?"timeout":null})})}),o=["&","|",";","<",">","(",")","`","$","^","%","!"],p=async a=>{if(!(!(!a||!i().isAbsolute(a)||o.some(b=>a.includes(b)))&&1))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await e().access(a,e().constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await e().access(a,e().constants.X_OK),{installed:!0,commandPath:a,reason:null}}catch{return{installed:!0,commandPath:a,reason:"not_executable"}}},q=async(a,b)=>{if(!a)return{installed:!1,commandPath:null,reason:"missing_command"};if(a.includes("/")||a.includes("\\"))return p(a);if("win32"===process.platform){let c=await n("where",[a],{env:b,timeoutMs:3e3});if(!c.ok||!c.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||null;return{installed:!!d,commandPath:d,reason:d?null:"not_found"}}let c=await n("sh",["-c",'command -v -- "$1"',"sh",a],{env:b,timeoutMs:3e3});if(!c.ok||!c.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||null;return{installed:!!d,commandPath:d,reason:d?null:"not_found"}},r=async(a,b)=>{if(!Array.isArray(a)||0===a.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};for(let c of a){let a=await q(c,b);if(a.installed||"not_found"!==a.reason)return{command:c,...a}}return{command:a[0],installed:!1,commandPath:null,reason:"not_found"}},s=async(a,b,c=4e3)=>{for(let d of[["--version"],["-v"]])if((await n(a,d,{env:b,timeoutMs:c})).ok)return{runnable:!0,reason:null};return{runnable:!1,reason:"healthcheck_failed"}},t=()=>((a,b=!0)=>null==a||""===a?b:!l.has(String(a).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)",u=a=>{let b=m[a];if(!b)return null;let c=String(process.env.CLI_CONFIG_HOME||"").trim()||g().homedir();return Object.fromEntries(Object.entries(b.paths).map(([a,b])=>[a,i().join(c,b)]))},v=a=>{let b=u(a);if(!b)return null;let c=Object.keys(b)[0];return c?b[c]:null},w=async a=>{let b,c,d,e=m[a],f=(b=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),k.has(b)?b:"auto");if(!e)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:f,requiresBinary:!1};let g=(c={...process.env},(d=String(process.env.CLI_EXTRA_PATHS||"").split(i().delimiter).map(a=>a.trim()).filter(Boolean)).length>0&&(c.PATH=[...d,c.PATH||""].filter(Boolean).join(i().delimiter)),c),h=(a=>{let b=m[a];if(!b)return[];let c=String(process.env[b.envBinKey]||"").trim();return c?[c]:Array.isArray(b.defaultCommands)&&b.defaultCommands.length>0?b.defaultCommands.filter(Boolean):b.defaultCommand?[b.defaultCommand]:[]})(a),j=!1!==e.requiresBinary;if(!j&&0===h.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:f,requiresBinary:j};let l=await r(h,g),n=l.command;if(!l.installed)return{installed:!1,runnable:!1,command:n,commandPath:null,reason:l.reason||"not_found",runtimeMode:f,requiresBinary:j};if("not_executable"===l.reason)return{installed:!0,runnable:!1,command:n,commandPath:l.commandPath,reason:"not_executable",runtimeMode:f,requiresBinary:j};let o=await s(l.commandPath,g,Number(e.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:o.runnable,command:n,commandPath:l.commandPath,reason:o.reason,runtimeMode:f,requiresBinary:j}},x=Object.keys(m)},34493:(a,b,c)=>{c.d(b,{GL:()=>j,XT:()=>k,pq:()=>i});var d=c(94755),e=c(42910);let f=!e.m1&&!e.I8,g=parseInt(process.env.PROXY_LOG_MAX_ENTRIES||"200",10),h=[];if(f)try{for(let a of(0,e.sm)().prepare("SELECT * FROM proxy_logs ORDER BY timestamp DESC LIMIT ?").all(g))h.push({id:a.id,timestamp:a.timestamp,status:a.status||"success",proxy:a.proxy_host?{type:a.proxy_type,host:a.proxy_host,port:a.proxy_port}:null,level:a.level||"direct",levelId:a.level_id||null,provider:a.provider||null,targetUrl:a.target_url||null,publicIp:a.public_ip||null,latencyMs:a.latency_ms||0,error:a.error||null,connectionId:a.connection_id||null,comboId:a.combo_id||null,account:a.account||null,tlsFingerprint:1===a.tls_fingerprint});h.length>0&&console.log(`[proxyLogger] Loaded ${h.length} proxy logs from SQLite`)}catch(a){console.warn("[proxyLogger] Failed to load from DB:",a.message)}function i(a){let b={id:(0,d.A)(),timestamp:new Date().toISOString(),status:a.status||"success",proxy:a.proxy||null,level:a.level||"direct",levelId:a.levelId||null,provider:a.provider||null,targetUrl:a.targetUrl||null,publicIp:a.publicIp||null,latencyMs:a.latencyMs||0,error:a.error||null,connectionId:a.connectionId||null,comboId:a.comboId||null,account:a.account||null,tlsFingerprint:a.tlsFingerprint||!1};if(h.unshift(b),h.length>g&&(h.length=g),f)try{let a=(0,e.sm)();a.prepare(`INSERT INTO proxy_logs (id, timestamp, status, proxy_type, proxy_host, proxy_port,
2
2
  level, level_id, provider, target_url, public_ip, latency_ms, error,
3
3
  connection_id, combo_id, account, tls_fingerprint)
4
4
  VALUES (@id, @timestamp, @status, @proxyType, @proxyHost, @proxyPort,
5
5
  @level, @levelId, @provider, @targetUrl, @publicIp, @latencyMs, @error,
6
6
  @connectionId, @comboId, @account, @tlsFingerprint)`).run({id:b.id,timestamp:b.timestamp,status:b.status,proxyType:b.proxy?.type||null,proxyHost:b.proxy?.host||null,proxyPort:b.proxy?.port?Number(b.proxy.port):null,level:b.level,levelId:b.levelId,provider:b.provider,targetUrl:b.targetUrl,publicIp:b.publicIp,latencyMs:b.latencyMs,error:b.error,connectionId:b.connectionId,comboId:b.comboId,account:b.account,tlsFingerprint:+!!b.tlsFingerprint});let c=a.prepare("SELECT COUNT(*) as cnt FROM proxy_logs").get()?.cnt||0;c>g&&a.prepare(`DELETE FROM proxy_logs WHERE id IN (
7
7
  SELECT id FROM proxy_logs ORDER BY timestamp ASC LIMIT ?
8
- )`).run(c-g)}catch(a){console.warn("[proxyLogger] Failed to persist:",a.message)}return b}function j(a={}){let b=[...h];if(a.status&&(b="ok"===a.status?b.filter(a=>"success"===a.status):b.filter(b=>b.status===a.status)),a.type&&(b=b.filter(b=>b.proxy?.type===a.type)),a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.level&&(b=b.filter(b=>b.level===a.level)),a.search){let c=a.search.toLowerCase();b=b.filter(a=>(a.proxy?.host||"").toLowerCase().includes(c)||(a.provider||"").toLowerCase().includes(c)||(a.targetUrl||"").toLowerCase().includes(c)||(a.publicIp||"").toLowerCase().includes(c)||(a.level||"").toLowerCase().includes(c)||(a.error||"").toLowerCase().includes(c)||(a.account||"").toLowerCase().includes(c))}let c=a.limit||300;return b.slice(0,c)}function k(){if(h.length=0,f)try{(0,e.sm)().prepare("DELETE FROM proxy_logs").run()}catch(a){console.warn("[proxyLogger] Failed to clear DB:",a.message)}}},44963:(a,b,c)=>{c.d(b,{AF:()=>j,of:()=>e,u9:()=>i});var d=c(22901);let e=process.env.CLOUD_URL||"https://cloud.omniroute.online",f=Number(process.env.CLOUD_SYNC_TIMEOUT_MS||12e3);function g(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function h(a){if("string"==typeof a||"number"==typeof a||a instanceof Date){let b=new Date(a).getTime();return Number.isFinite(b)?b:0}return 0}async function i(a,b={},c=f){let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}}async function j(a,b=null){let c;if(!e)return{error:"NEXT_PUBLIC_CLOUD_URL is not configured"};let f=await (0,d.getProviderConnections)(),g=await (0,d.OM)(),h=await (0,d.Uv)(),l=await (0,d.PX)();try{c=await i(`${e}/sync/${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providers:f,modelAliases:g,combos:h,apiKeys:l})})}catch(a){return{error:a?.name==="AbortError"?"Cloud sync timeout":"Cloud sync request failed"}}if(!c.ok){let a=await c.text(),b=a.length>200?a.slice(0,200)+"…":a;return console.log(`Cloud sync failed (${c.status}):`,b),{error:"Cloud sync failed"}}let m=await c.json();m.data&&m.data.providers&&await k(m.data.providers);let n={success:!0,message:"Synced successfully",changes:m.changes};return b&&(n.createdKey=b),n}async function k(a){let b=g(a);for(let a of(await (0,d.getProviderConnections)())){var c;let e=g(a),f="string"==typeof(c=e.id)&&c.trim().length>0?c:null;if(!f)continue;let i=g(b[f]);if(0!==Object.keys(i).length){if(h(i.updatedAt)>h(e.updatedAt)){let a={accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,expiresIn:i.expiresIn,providerSpecificData:i.providerSpecificData||e.providerSpecificData,testStatus:i.status||"active",lastError:i.lastError,lastErrorAt:i.lastErrorAt,errorCode:i.errorCode,rateLimitedUntil:i.rateLimitedUntil,updatedAt:i.updatedAt};await (0,d.rj)(f,a)}}}}},76340:(a,b,c)=>{let d,e;c.d(b,{Wk:()=>t,jf:()=>q,qT:()=>s});var f=c(16698),g=c(79522);try{let a=c(22546);d="function"==typeof a.createSession?a.createSession:null}catch{d=null}class h{constructor(){this.session=null,this.available=!!d}async getSession(){if(!this.available)return null;if(this.session)return this.session;let a=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy||void 0,b={browser:"chrome_124",os:"macos"};return a&&(b.proxy=a,console.log(`[TlsClient] Using proxy: ${a}`)),this.session=await d(b),console.log("[TlsClient] Session created (Chrome 124 TLS fingerprint)"),this.session}async fetch(a,b={}){let c=await this.getSession();if(!c)throw Error("wreq-js not available");let d={method:(b.method||"GET").toUpperCase(),headers:function(a){if(!a)return;if(a instanceof Headers)return Object.fromEntries(a.entries());if(Array.isArray(a))return Object.fromEntries(a.map(([a,b])=>[a,String(b)]));let b={};for(let[c,d]of Object.entries(a))"string"==typeof d&&(b[c]=d);return b}(b.headers),body:b.body,redirect:"manual"===b.redirect?"manual":"follow"};return b.signal&&(d.signal=b.signal),await c.fetch(a,d)}async exit(){this.session&&(await this.session.close(),this.session=null)}}let i=new h;function j(){return"true"===process.env.ENABLE_TLS_FINGERPRINT}let k=new f.AsyncLocalStorage,l="u">typeof caches&&"object"==typeof caches,m=Symbol.for("omniroute.proxyFetch.state"),n=((e=globalThis)[m]||(e[m]={originalFetch:globalThis.fetch,proxyContext:new f.AsyncLocalStorage,isPatched:!1}),e[m]),o=n.originalFetch,p=n.proxyContext;async function q(a,b){if("function"!=typeof b)throw TypeError("runWithProxyContext requires a callback function");let c=a?(0,g.HN)(a):null;return p.run(a||null,async()=>(c&&console.log(`[ProxyFetch] Applied request proxy context: ${(0,g.OK)(c)}`),b()))}async function r(a,b={}){let c;if(b?.dispatcher)return o(a,b);let d="string"==typeof a?a:a&&"string"==typeof a.url?a.url:String(a);try{c=function(a){let b=p.getStore();if(b)return{source:"context",proxyUrl:(0,g.HN)(b)};let c=function(a){let b;if(function(a){let b,c=process.env.NO_PROXY||process.env.no_proxy;if(!c)return!1;try{b=new URL(a)}catch{return!1}let d=b.hostname.toLowerCase(),e=b.port||("https:"===b.protocol?"443":"80");return c.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>{if("*"===a)return!0;let[b,c]=a.split(":");return(!c||c===e)&&!!b&&(b.startsWith(".")?d.endsWith(b)||d===b.slice(1):d===b||d.endsWith(`.${b}`))})}(a))return null;try{b=new URL(a).protocol}catch{return null}let c="https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy;return c?(0,g.zP)(c,"environment proxy"):null}(a);return c?{source:"env",proxyUrl:c}:{source:"direct",proxyUrl:null}}(d)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`[ProxyFetch] Proxy configuration error: ${a}`),b}let{source:e,proxyUrl:f}=c;if(!f){if(j()&&i.available)try{let a=k.getStore();return a&&(a.used=!0),await i.fetch(d,{...b,headers:b.headers})}catch(c){let a=c instanceof Error?c.message:String(c);console.warn(`[ProxyFetch] TLS fingerprint failed, falling back to native fetch: ${a}`);let b=k.getStore();b&&(b.used=!1)}return o(a,b)}try{let c=(0,g.I_)(f);return await o(a,{...b,dispatcher:c})}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`[ProxyFetch] Proxy request failed (${e}, fail-closed): ${a}`),b}}async function s(a){let b={used:!1};return{result:await k.run(b,a),tlsFingerprintUsed:b.used}}function t(){return j()&&i.available}l||n.isPatched||(globalThis.fetch=r,n.isPatched=!0)},79522:(a,b,c)=>{c.d(b,{HN:()=>p,I_:()=>q,L8:()=>i,OK:()=>n,QX:()=>m,zP:()=>o});var d=c(47774),e=c(20406);let f=Symbol.for("omniroute.proxyDispatcher.cache"),g=new Set(["http:","https:","socks5:"]);function h(){let a=globalThis;return a[f]||(a[f]=new Map),a[f]}function i(){h().clear()}function j(a){try{let b=a.match(/:\/\/(?:[^@]*@)?[^:/\s]+:(\d+)/);if(b){let a=Number(b[1]);if(Number.isInteger(a)&&a>=1&&a<=65535)return String(a)}}catch{}return null}function k(a){return"https:"===a||"wss:"===a?"443":"socks5:"===a?"1080":"8080"}function l(a,b){if(!a)return k(b);let c=Number(a);if(!Number.isInteger(c)||c<1||c>65535)throw Error("[ProxyDispatcher] Invalid proxy port");return String(c)}function m(){return"true"===process.env.ENABLE_SOCKS5_PROXY}function n(a){let b=j(a),c=new URL(a),d=b||c.port||k(c.protocol);return`${c.protocol}//${c.hostname}:${d}`}function o(a,b="proxy",{allowSocks5:c=m()}={}){var d;let e,f,h=j(a);try{e=new URL(a)}catch{throw Error(`[ProxyDispatcher] Invalid ${b} URL`)}if(!g.has(e.protocol))throw Error(`[ProxyDispatcher] Unsupported ${b} protocol: ${e.protocol.replace(":","")}`);if("socks5:"===e.protocol&&!c)throw Error("[ProxyDispatcher] SOCKS5 proxy is disabled (set ENABLE_SOCKS5_PROXY=true to enable)");if(!e.hostname)throw Error(`[ProxyDispatcher] Invalid ${b} host`);let i=h||l(e.port,e.protocol);return f=(d=e).username?`${d.username}${d.password?`:${d.password}`:""}@`:"",`${d.protocol}//${f}${d.hostname}:${i}`}function p(a,{allowSocks5:b=m()}={}){if(!a)return null;if("string"==typeof a)return o(a,"context proxy",{allowSocks5:b});if("object"!=typeof a||Array.isArray(a))throw Error("[ProxyDispatcher] Invalid context proxy config");let c=String(a.type||"http").toLowerCase(),d=`${c}:`;if(!g.has(d))throw Error(`[ProxyDispatcher] Unsupported context proxy protocol: ${c}`);if("socks5:"===d&&!b)throw Error("[ProxyDispatcher] SOCKS5 proxy is disabled (set ENABLE_SOCKS5_PROXY=true to enable)");if(!a.host)throw Error("[ProxyDispatcher] Context proxy host is required");let e=l(a.port,d),f=a.username?`${encodeURIComponent(a.username)}:${a.password?encodeURIComponent(a.password):""}@`:"";return o(`${c}://${f}${a.host}:${e}`,"context proxy",{allowSocks5:b})}function q(a){let b=o(a,"proxy dispatcher"),c=h(),f=c.get(b);if(f)return f;let g=new URL(b),i=j(b)||l(g.port,g.protocol);if("socks5:"===g.protocol){let a={type:5,host:g.hostname,port:Number(i)};g.username&&(a.userId=decodeURIComponent(g.username)),g.password&&(a.password=decodeURIComponent(g.password)),f=(0,e.vI)(a)}else f=new d.ProxyAgent(b);return c.set(b,f),f}},90357:(a,b,c)=>{c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}};
8
+ )`).run(c-g)}catch(a){console.warn("[proxyLogger] Failed to persist:",a.message)}return b}function j(a={}){let b=[...h];if(a.status&&(b="ok"===a.status?b.filter(a=>"success"===a.status):b.filter(b=>b.status===a.status)),a.type&&(b=b.filter(b=>b.proxy?.type===a.type)),a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.level&&(b=b.filter(b=>b.level===a.level)),a.search){let c=a.search.toLowerCase();b=b.filter(a=>(a.proxy?.host||"").toLowerCase().includes(c)||(a.provider||"").toLowerCase().includes(c)||(a.targetUrl||"").toLowerCase().includes(c)||(a.publicIp||"").toLowerCase().includes(c)||(a.level||"").toLowerCase().includes(c)||(a.error||"").toLowerCase().includes(c)||(a.account||"").toLowerCase().includes(c))}let c=a.limit||300;return b.slice(0,c)}function k(){if(h.length=0,f)try{(0,e.sm)().prepare("DELETE FROM proxy_logs").run()}catch(a){console.warn("[proxyLogger] Failed to clear DB:",a.message)}}},44963:(a,b,c)=>{c.d(b,{AF:()=>j,of:()=>e,u9:()=>i});var d=c(75585);let e=process.env.CLOUD_URL||"https://cloud.omniroute.online",f=Number(process.env.CLOUD_SYNC_TIMEOUT_MS||12e3);function g(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function h(a){if("string"==typeof a||"number"==typeof a||a instanceof Date){let b=new Date(a).getTime();return Number.isFinite(b)?b:0}return 0}async function i(a,b={},c=f){let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}}async function j(a,b=null){let c;if(!e)return{error:"NEXT_PUBLIC_CLOUD_URL is not configured"};let f=await (0,d.getProviderConnections)(),g=await (0,d.OM)(),h=await (0,d.Uv)(),l=await (0,d.PX)();try{c=await i(`${e}/sync/${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providers:f,modelAliases:g,combos:h,apiKeys:l})})}catch(a){return{error:a?.name==="AbortError"?"Cloud sync timeout":"Cloud sync request failed"}}if(!c.ok){let a=await c.text(),b=a.length>200?a.slice(0,200)+"…":a;return console.log(`Cloud sync failed (${c.status}):`,b),{error:"Cloud sync failed"}}let m=await c.json();m.data&&m.data.providers&&await k(m.data.providers);let n={success:!0,message:"Synced successfully",changes:m.changes};return b&&(n.createdKey=b),n}async function k(a){let b=g(a);for(let a of(await (0,d.getProviderConnections)())){var c;let e=g(a),f="string"==typeof(c=e.id)&&c.trim().length>0?c:null;if(!f)continue;let i=g(b[f]);if(0!==Object.keys(i).length){if(h(i.updatedAt)>h(e.updatedAt)){let a={accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,expiresIn:i.expiresIn,providerSpecificData:i.providerSpecificData||e.providerSpecificData,testStatus:i.status||"active",lastError:i.lastError,lastErrorAt:i.lastErrorAt,errorCode:i.errorCode,rateLimitedUntil:i.rateLimitedUntil,updatedAt:i.updatedAt};await (0,d.rj)(f,a)}}}}},76340:(a,b,c)=>{let d,e;c.d(b,{Wk:()=>t,jf:()=>q,qT:()=>s});var f=c(16698),g=c(79522);try{let a=c(22546);d="function"==typeof a.createSession?a.createSession:null}catch{d=null}class h{constructor(){this.session=null,this.available=!!d}async getSession(){if(!this.available)return null;if(this.session)return this.session;let a=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy||void 0,b={browser:"chrome_124",os:"macos"};return a&&(b.proxy=a,console.log(`[TlsClient] Using proxy: ${a}`)),this.session=await d(b),console.log("[TlsClient] Session created (Chrome 124 TLS fingerprint)"),this.session}async fetch(a,b={}){let c=await this.getSession();if(!c)throw Error("wreq-js not available");let d={method:(b.method||"GET").toUpperCase(),headers:function(a){if(!a)return;if(a instanceof Headers)return Object.fromEntries(a.entries());if(Array.isArray(a))return Object.fromEntries(a.map(([a,b])=>[a,String(b)]));let b={};for(let[c,d]of Object.entries(a))"string"==typeof d&&(b[c]=d);return b}(b.headers),body:b.body,redirect:"manual"===b.redirect?"manual":"follow"};return b.signal&&(d.signal=b.signal),await c.fetch(a,d)}async exit(){this.session&&(await this.session.close(),this.session=null)}}let i=new h;function j(){return"true"===process.env.ENABLE_TLS_FINGERPRINT}let k=new f.AsyncLocalStorage,l="u">typeof caches&&"object"==typeof caches,m=Symbol.for("omniroute.proxyFetch.state"),n=((e=globalThis)[m]||(e[m]={originalFetch:globalThis.fetch,proxyContext:new f.AsyncLocalStorage,isPatched:!1}),e[m]),o=n.originalFetch,p=n.proxyContext;async function q(a,b){if("function"!=typeof b)throw TypeError("runWithProxyContext requires a callback function");let c=a?(0,g.HN)(a):null;return p.run(a||null,async()=>(c&&console.log(`[ProxyFetch] Applied request proxy context: ${(0,g.OK)(c)}`),b()))}async function r(a,b={}){let c;if(b?.dispatcher)return o(a,b);let d="string"==typeof a?a:a&&"string"==typeof a.url?a.url:String(a);try{c=function(a){let b=p.getStore();if(b)return{source:"context",proxyUrl:(0,g.HN)(b)};let c=function(a){let b;if(function(a){let b,c=process.env.NO_PROXY||process.env.no_proxy;if(!c)return!1;try{b=new URL(a)}catch{return!1}let d=b.hostname.toLowerCase(),e=b.port||("https:"===b.protocol?"443":"80");return c.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>{if("*"===a)return!0;let[b,c]=a.split(":");return(!c||c===e)&&!!b&&(b.startsWith(".")?d.endsWith(b)||d===b.slice(1):d===b||d.endsWith(`.${b}`))})}(a))return null;try{b=new URL(a).protocol}catch{return null}let c="https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy;return c?(0,g.zP)(c,"environment proxy"):null}(a);return c?{source:"env",proxyUrl:c}:{source:"direct",proxyUrl:null}}(d)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`[ProxyFetch] Proxy configuration error: ${a}`),b}let{source:e,proxyUrl:f}=c;if(!f){if(j()&&i.available)try{let a=k.getStore();return a&&(a.used=!0),await i.fetch(d,{...b,headers:b.headers})}catch(c){let a=c instanceof Error?c.message:String(c);console.warn(`[ProxyFetch] TLS fingerprint failed, falling back to native fetch: ${a}`);let b=k.getStore();b&&(b.used=!1)}return o(a,b)}try{let c=(0,g.I_)(f);return await o(a,{...b,dispatcher:c})}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`[ProxyFetch] Proxy request failed (${e}, fail-closed): ${a}`),b}}async function s(a){let b={used:!1};return{result:await k.run(b,a),tlsFingerprintUsed:b.used}}function t(){return j()&&i.available}l||n.isPatched||(globalThis.fetch=r,n.isPatched=!0)},79522:(a,b,c)=>{c.d(b,{HN:()=>p,I_:()=>q,L8:()=>i,OK:()=>n,QX:()=>m,zP:()=>o});var d=c(47774),e=c(20406);let f=Symbol.for("omniroute.proxyDispatcher.cache"),g=new Set(["http:","https:","socks5:"]);function h(){let a=globalThis;return a[f]||(a[f]=new Map),a[f]}function i(){h().clear()}function j(a){try{let b=a.match(/:\/\/(?:[^@]*@)?[^:/\s]+:(\d+)/);if(b){let a=Number(b[1]);if(Number.isInteger(a)&&a>=1&&a<=65535)return String(a)}}catch{}return null}function k(a){return"https:"===a||"wss:"===a?"443":"socks5:"===a?"1080":"8080"}function l(a,b){if(!a)return k(b);let c=Number(a);if(!Number.isInteger(c)||c<1||c>65535)throw Error("[ProxyDispatcher] Invalid proxy port");return String(c)}function m(){return"true"===process.env.ENABLE_SOCKS5_PROXY}function n(a){let b=j(a),c=new URL(a),d=b||c.port||k(c.protocol);return`${c.protocol}//${c.hostname}:${d}`}function o(a,b="proxy",{allowSocks5:c=m()}={}){var d;let e,f,h=j(a);try{e=new URL(a)}catch{throw Error(`[ProxyDispatcher] Invalid ${b} URL`)}if(!g.has(e.protocol))throw Error(`[ProxyDispatcher] Unsupported ${b} protocol: ${e.protocol.replace(":","")}`);if("socks5:"===e.protocol&&!c)throw Error("[ProxyDispatcher] SOCKS5 proxy is disabled (set ENABLE_SOCKS5_PROXY=true to enable)");if(!e.hostname)throw Error(`[ProxyDispatcher] Invalid ${b} host`);let i=h||l(e.port,e.protocol);return f=(d=e).username?`${d.username}${d.password?`:${d.password}`:""}@`:"",`${d.protocol}//${f}${d.hostname}:${i}`}function p(a,{allowSocks5:b=m()}={}){if(!a)return null;if("string"==typeof a)return o(a,"context proxy",{allowSocks5:b});if("object"!=typeof a||Array.isArray(a))throw Error("[ProxyDispatcher] Invalid context proxy config");let c=String(a.type||"http").toLowerCase(),d=`${c}:`;if(!g.has(d))throw Error(`[ProxyDispatcher] Unsupported context proxy protocol: ${c}`);if("socks5:"===d&&!b)throw Error("[ProxyDispatcher] SOCKS5 proxy is disabled (set ENABLE_SOCKS5_PROXY=true to enable)");if(!a.host)throw Error("[ProxyDispatcher] Context proxy host is required");let e=l(a.port,d),f=a.username?`${encodeURIComponent(a.username)}:${a.password?encodeURIComponent(a.password):""}@`:"";return o(`${c}://${f}${a.host}:${e}`,"context proxy",{allowSocks5:b})}function q(a){let b=o(a,"proxy dispatcher"),c=h(),f=c.get(b);if(f)return f;let g=new URL(b),i=j(b)||l(g.port,g.protocol);if("socks5:"===g.protocol){let a={type:5,host:g.hostname,port:Number(i)};g.username&&(a.userId=decodeURIComponent(g.username)),g.password&&(a.password=decodeURIComponent(g.password)),f=(0,e.vI)(a)}else f=new d.ProxyAgent(b);return c.set(b,f),f}},90357:(a,b,c)=>{c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=7136,exports.ids=[4755,7136],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};