@rabbi696/ezrouter 0.6.8 → 0.6.10

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 (1364) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +4 -3
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/required-server-files.json +2 -1
  5. package/app/.next-cli-build/routes-manifest.json +6 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js +2 -2
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js +2 -2
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js +2 -2
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js +2 -2
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +4 -4
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +6 -6
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js +2 -2
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  93. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  94. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  96. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  97. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  99. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  103. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  105. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  107. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  108. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  109. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  110. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  111. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  112. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  113. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  114. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  115. package/app/.next-cli-build/server/app/api/auth/login/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
  140. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  142. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  172. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  176. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  180. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  182. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/combos/export/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/combos/import/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/combos/import/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/combos/test/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/combos/test/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/convoy/rules/route.js +2 -2
  198. package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  226. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js +2 -2
  238. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js +2 -2
  240. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js +2 -2
  244. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/models/enabled/route.js +1 -0
  266. package/app/.next-cli-build/server/app/api/models/enabled/route.js.nft.json +1 -0
  267. package/app/.next-cli-build/server/app/api/models/enabled/route_client-reference-manifest.js +1 -0
  268. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/callback/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/callback/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  281. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  305. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +14 -14
  341. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +14 -14
  343. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +3 -3
  347. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  349. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  351. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  355. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  357. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  361. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  363. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/routing-health/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/routing-health/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js +2 -2
  381. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  387. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  409. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/usage/error-logs/route.js +2 -2
  417. package/app/.next-cli-build/server/app/api/usage/error-logs/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  431. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js +1 -1
  449. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
  461. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  463. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  469. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  471. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  472. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  473. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  474. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  475. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  476. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  477. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  478. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  479. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  481. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  483. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  484. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  485. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  487. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  488. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  489. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  490. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  491. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  493. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  494. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  495. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  496. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  497. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  498. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  499. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  500. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  501. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  502. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  503. package/app/.next-cli-build/server/app/callback.html +1 -1
  504. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  505. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  506. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  508. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  509. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  510. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  511. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  513. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  514. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  515. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  518. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  520. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  521. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  523. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  524. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  525. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  527. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  528. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  530. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  531. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  533. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  534. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  537. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  538. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  539. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  540. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  541. package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
  542. package/app/.next-cli-build/server/app/dashboard/convoy.rsc +6 -6
  543. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
  544. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
  545. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  546. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  547. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +6 -6
  548. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
  549. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +4 -4
  550. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +2 -2
  551. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  552. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  553. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  554. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  555. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  556. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  557. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  558. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  560. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  561. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.html +1 -1
  562. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.rsc +6 -6
  563. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys/__PAGE__.segment.rsc +2 -2
  564. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys.segment.rsc +1 -1
  565. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  566. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  567. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  568. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_full.segment.rsc +6 -6
  569. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_head.segment.rsc +1 -1
  570. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_index.segment.rsc +4 -4
  571. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_tree.segment.rsc +2 -2
  572. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.html +1 -1
  573. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.rsc +6 -6
  574. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers/__PAGE__.segment.rsc +2 -2
  575. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers.segment.rsc +1 -1
  576. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  577. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  578. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  579. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_full.segment.rsc +6 -6
  580. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_head.segment.rsc +1 -1
  581. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_index.segment.rsc +4 -4
  582. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_tree.segment.rsc +2 -2
  583. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.html +1 -1
  584. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.rsc +6 -6
  585. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/__PAGE__.segment.rsc +2 -2
  586. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
  587. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  588. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  589. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_full.segment.rsc +6 -6
  590. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_head.segment.rsc +1 -1
  591. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_index.segment.rsc +4 -4
  592. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_tree.segment.rsc +2 -2
  593. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  594. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  595. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  596. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  597. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  598. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  599. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  600. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  601. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  602. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  603. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  604. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  605. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  606. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  607. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  608. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  609. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  610. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  611. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  612. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  613. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  614. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  615. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  616. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  617. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  618. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  619. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  620. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  621. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  622. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  623. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  624. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  625. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  626. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  627. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  628. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  629. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  630. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  631. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  632. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  633. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  634. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  635. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  636. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  637. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  638. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  639. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  640. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  641. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  642. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  643. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  644. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  645. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  646. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  647. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  648. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  649. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  650. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  651. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  652. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  653. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  654. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  655. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  656. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  657. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  658. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  659. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  660. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  661. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  662. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  663. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  664. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  665. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  666. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  667. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  668. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  669. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  670. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  671. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  672. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  673. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  674. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  675. package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
  676. package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +6 -6
  677. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
  678. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
  679. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  680. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  681. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +6 -6
  682. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
  683. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +4 -4
  684. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +2 -2
  685. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  686. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  687. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  688. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  689. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  690. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  691. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  692. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  693. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  694. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  695. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  696. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  697. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  698. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  699. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  700. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  701. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  702. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  703. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  704. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  705. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  706. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  707. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  708. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  709. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  710. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  711. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  712. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  713. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  714. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  715. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  716. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  717. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  718. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  719. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  720. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  721. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  722. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  723. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  724. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  725. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  726. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  727. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  728. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  729. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  730. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  731. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  732. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  733. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  734. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  735. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  736. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  737. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  738. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  739. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  740. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  741. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  742. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  743. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  744. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  745. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  746. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  747. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  748. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  749. package/app/.next-cli-build/server/app/index.html +1 -1
  750. package/app/.next-cli-build/server/app/index.rsc +4 -4
  751. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  752. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  753. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  754. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  755. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  756. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  757. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  758. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  759. package/app/.next-cli-build/server/app/landing.html +1 -1
  760. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  761. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  762. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  763. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  764. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  765. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  766. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  767. package/app/.next-cli-build/server/app/login/page.js +2 -2
  768. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  769. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  770. package/app/.next-cli-build/server/app/login.html +1 -1
  771. package/app/.next-cli-build/server/app/login.rsc +5 -5
  772. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  773. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  774. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  775. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  776. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  777. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  778. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  779. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  780. package/app/.next-cli-build/server/app/page.js +2 -2
  781. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  782. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  783. package/app/.next-cli-build/server/app-paths-manifest.json +4 -3
  784. package/app/.next-cli-build/server/chunks/1133.js +1 -1
  785. package/app/.next-cli-build/server/chunks/1253.js +1 -1
  786. package/app/.next-cli-build/server/chunks/1273.js +1 -1
  787. package/app/.next-cli-build/server/chunks/1522.js +1 -1
  788. package/app/.next-cli-build/server/chunks/1764.js +225 -0
  789. package/app/.next-cli-build/server/chunks/1847.js +1 -1
  790. package/app/.next-cli-build/server/chunks/2021.js +1 -1
  791. package/app/.next-cli-build/server/chunks/2269.js +1 -1
  792. package/app/.next-cli-build/server/chunks/2348.js +1 -1
  793. package/app/.next-cli-build/server/chunks/2461.js +1 -0
  794. package/app/.next-cli-build/server/chunks/2750.js +1 -31
  795. package/app/.next-cli-build/server/chunks/2898.js +3 -3
  796. package/app/.next-cli-build/server/chunks/3245.js +1 -1
  797. package/app/.next-cli-build/server/chunks/3252.js +1 -1
  798. package/app/.next-cli-build/server/chunks/3267.js +40 -0
  799. package/app/.next-cli-build/server/chunks/3433.js +4 -4
  800. package/app/.next-cli-build/server/chunks/3547.js +1 -1
  801. package/app/.next-cli-build/server/chunks/3583.js +2 -2
  802. package/app/.next-cli-build/server/chunks/369.js +24 -24
  803. package/app/.next-cli-build/server/chunks/3814.js +55 -5
  804. package/app/.next-cli-build/server/chunks/3886.js +1 -1
  805. package/app/.next-cli-build/server/chunks/3977.js +1 -1
  806. package/app/.next-cli-build/server/chunks/412.js +2 -2
  807. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  808. package/app/.next-cli-build/server/chunks/4208.js +252 -0
  809. package/app/.next-cli-build/server/chunks/436.js +1 -1
  810. package/app/.next-cli-build/server/chunks/4485.js +1 -1
  811. package/app/.next-cli-build/server/chunks/4574.js +1 -1
  812. package/app/.next-cli-build/server/chunks/4646.js +1 -1
  813. package/app/.next-cli-build/server/chunks/4827.js +1 -1
  814. package/app/.next-cli-build/server/chunks/4878.js +1 -1
  815. package/app/.next-cli-build/server/chunks/5011.js +1 -1
  816. package/app/.next-cli-build/server/chunks/5130.js +1 -1
  817. package/app/.next-cli-build/server/chunks/5614.js +1 -1
  818. package/app/.next-cli-build/server/chunks/576.js +1 -1
  819. package/app/.next-cli-build/server/chunks/5849.js +1 -1
  820. package/app/.next-cli-build/server/chunks/5875.js +1 -1
  821. package/app/.next-cli-build/server/chunks/5948.js +1 -0
  822. package/app/.next-cli-build/server/chunks/615.js +1 -1
  823. package/app/.next-cli-build/server/chunks/6502.js +28 -0
  824. package/app/.next-cli-build/server/chunks/6958.js +1 -1
  825. package/app/.next-cli-build/server/chunks/717.js +1 -0
  826. package/app/.next-cli-build/server/chunks/7239.js +1 -1
  827. package/app/.next-cli-build/server/chunks/7353.js +1 -1
  828. package/app/.next-cli-build/server/chunks/7362.js +1 -1
  829. package/app/.next-cli-build/server/chunks/7512.js +31 -0
  830. package/app/.next-cli-build/server/chunks/7677.js +1 -1
  831. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  832. package/app/.next-cli-build/server/chunks/7774.js +7 -7
  833. package/app/.next-cli-build/server/chunks/7775.js +1 -1
  834. package/app/.next-cli-build/server/chunks/8129.js +1 -1
  835. package/app/.next-cli-build/server/chunks/823.js +1 -1
  836. package/app/.next-cli-build/server/chunks/8243.js +3 -3
  837. package/app/.next-cli-build/server/chunks/8251.js +2 -2
  838. package/app/.next-cli-build/server/chunks/8306.js +1 -1
  839. package/app/.next-cli-build/server/chunks/8421.js +1 -1
  840. package/app/.next-cli-build/server/chunks/8459.js +1 -1
  841. package/app/.next-cli-build/server/chunks/8851.js +55 -5
  842. package/app/.next-cli-build/server/chunks/8946.js +1 -1
  843. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  844. package/app/.next-cli-build/server/chunks/9062.js +1 -1
  845. package/app/.next-cli-build/server/chunks/9303.js +1 -1
  846. package/app/.next-cli-build/server/chunks/9485.js +1 -1
  847. package/app/.next-cli-build/server/chunks/9718.js +1 -1
  848. package/app/.next-cli-build/server/chunks/9865.js +1 -1
  849. package/app/.next-cli-build/server/instrumentation.js +1 -1
  850. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  851. package/app/.next-cli-build/server/middleware.js +3 -3
  852. package/app/.next-cli-build/server/pages/404.html +1 -1
  853. package/app/.next-cli-build/server/pages/500.html +1 -1
  854. package/app/.next-cli-build/static/ZZzFJY8XwYUO3V74IjHEa/_buildManifest.js +1 -0
  855. package/app/.next-cli-build/static/chunks/1321-3959048b066ab2a8.js +1 -0
  856. package/app/.next-cli-build/static/chunks/{5497-a2c327d5099234f0.js → 5497-3d7a0fb93236c34a.js} +4 -4
  857. package/app/.next-cli-build/static/chunks/8105-24cfa2e10ca68766.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-adc0e63e21c1fd33.js → page-3dee12d2790214bb.js} +1 -1
  859. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-85950757e9505005.js → page-63e73261a2a83714.js} +1 -1
  860. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-173efeab4037cc9a.js +27 -0
  861. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-7ec974bc6ee445f1.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/_global-error/page-539411a7543bc680.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-539411a7543bc680.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-539411a7543bc680.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-539411a7543bc680.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-539411a7543bc680.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-539411a7543bc680.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-539411a7543bc680.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-539411a7543bc680.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-539411a7543bc680.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-539411a7543bc680.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-539411a7543bc680.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-539411a7543bc680.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/changelog/route-539411a7543bc680.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/cli/providers/codex/route-539411a7543bc680.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-539411a7543bc680.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-539411a7543bc680.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-539411a7543bc680.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-539411a7543bc680.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-539411a7543bc680.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/models/route-539411a7543bc680.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/readiness/route-539411a7543bc680.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-539411a7543bc680.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-539411a7543bc680.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-539411a7543bc680.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-539411a7543bc680.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-539411a7543bc680.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-539411a7543bc680.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-539411a7543bc680.js +1 -0
  890. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-539411a7543bc680.js +1 -0
  891. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-539411a7543bc680.js +1 -0
  892. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-539411a7543bc680.js +1 -0
  893. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-539411a7543bc680.js +1 -0
  894. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-539411a7543bc680.js +1 -0
  895. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-539411a7543bc680.js +1 -0
  896. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-539411a7543bc680.js +1 -0
  897. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-539411a7543bc680.js +1 -0
  898. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-539411a7543bc680.js +1 -0
  899. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/test/route-539411a7543bc680.js +1 -0
  900. package/app/.next-cli-build/static/chunks/app/api/combos/export/route-539411a7543bc680.js +1 -0
  901. package/app/.next-cli-build/static/chunks/app/api/combos/import/route-539411a7543bc680.js +1 -0
  902. package/app/.next-cli-build/static/chunks/app/api/combos/route-539411a7543bc680.js +1 -0
  903. package/app/.next-cli-build/static/chunks/app/api/combos/test/route-539411a7543bc680.js +1 -0
  904. package/app/.next-cli-build/static/chunks/app/api/convoy/rules/route-539411a7543bc680.js +1 -0
  905. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-539411a7543bc680.js +1 -0
  906. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-539411a7543bc680.js +1 -0
  907. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-539411a7543bc680.js +1 -0
  908. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-539411a7543bc680.js +1 -0
  909. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-539411a7543bc680.js +1 -0
  910. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-539411a7543bc680.js +1 -0
  911. package/app/.next-cli-build/static/chunks/app/api/health/route-539411a7543bc680.js +1 -0
  912. package/app/.next-cli-build/static/chunks/app/api/init/route-539411a7543bc680.js +1 -0
  913. package/app/.next-cli-build/static/chunks/app/api/internal/codex-native/lease/[action]/route-539411a7543bc680.js +1 -0
  914. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-539411a7543bc680.js +1 -0
  915. package/app/.next-cli-build/static/chunks/app/api/keys/route-539411a7543bc680.js +1 -0
  916. package/app/.next-cli-build/static/chunks/app/api/locale/route-539411a7543bc680.js +1 -0
  917. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-539411a7543bc680.js +1 -0
  918. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-539411a7543bc680.js +1 -0
  919. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/route-539411a7543bc680.js +1 -0
  920. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/test/route-539411a7543bc680.js +1 -0
  921. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/route-539411a7543bc680.js +1 -0
  922. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/[id]/route-539411a7543bc680.js +1 -0
  923. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/route-539411a7543bc680.js +1 -0
  924. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/message/route-539411a7543bc680.js +1 -0
  925. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/oauth/[id]/[action]/route-539411a7543bc680.js +1 -0
  926. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/route-539411a7543bc680.js +1 -0
  927. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/sse/route-539411a7543bc680.js +1 -0
  928. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-539411a7543bc680.js +1 -0
  929. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-539411a7543bc680.js +1 -0
  930. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-539411a7543bc680.js +1 -0
  931. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-539411a7543bc680.js +1 -0
  932. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-539411a7543bc680.js +1 -0
  933. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-539411a7543bc680.js +1 -0
  934. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-539411a7543bc680.js +1 -0
  935. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-539411a7543bc680.js +1 -0
  936. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-539411a7543bc680.js +1 -0
  937. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-539411a7543bc680.js +1 -0
  938. package/app/.next-cli-build/static/chunks/app/api/models/enabled/route-539411a7543bc680.js +1 -0
  939. package/app/.next-cli-build/static/chunks/app/api/models/route-539411a7543bc680.js +1 -0
  940. package/app/.next-cli-build/static/chunks/app/api/models/test/route-539411a7543bc680.js +1 -0
  941. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-539411a7543bc680.js +1 -0
  942. package/app/.next-cli-build/static/chunks/app/api/oauth/callback/route-539411a7543bc680.js +1 -0
  943. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-539411a7543bc680.js +1 -0
  944. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-539411a7543bc680.js +1 -0
  945. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-539411a7543bc680.js +1 -0
  946. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-539411a7543bc680.js +1 -0
  947. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-539411a7543bc680.js +1 -0
  948. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-539411a7543bc680.js +1 -0
  949. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-539411a7543bc680.js +1 -0
  950. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-539411a7543bc680.js +1 -0
  951. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-539411a7543bc680.js +1 -0
  952. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-539411a7543bc680.js +1 -0
  953. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-539411a7543bc680.js +1 -0
  954. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-539411a7543bc680.js +1 -0
  955. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-539411a7543bc680.js +1 -0
  956. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-539411a7543bc680.js +1 -0
  957. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-539411a7543bc680.js +1 -0
  958. package/app/.next-cli-build/static/chunks/app/api/pricing/route-539411a7543bc680.js +1 -0
  959. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-539411a7543bc680.js +1 -0
  960. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-539411a7543bc680.js +1 -0
  961. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-539411a7543bc680.js +1 -0
  962. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-539411a7543bc680.js +1 -0
  963. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/refresh-profile/route-539411a7543bc680.js +1 -0
  964. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-539411a7543bc680.js +1 -0
  965. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-539411a7543bc680.js +1 -0
  966. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-539411a7543bc680.js +1 -0
  967. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-539411a7543bc680.js +1 -0
  968. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-539411a7543bc680.js +1 -0
  969. package/app/.next-cli-build/static/chunks/app/api/providers/route-539411a7543bc680.js +1 -0
  970. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-539411a7543bc680.js +1 -0
  971. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-539411a7543bc680.js +1 -0
  972. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-539411a7543bc680.js +1 -0
  973. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-539411a7543bc680.js +1 -0
  974. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-539411a7543bc680.js +1 -0
  975. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-539411a7543bc680.js +1 -0
  976. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-539411a7543bc680.js +1 -0
  977. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-539411a7543bc680.js +1 -0
  978. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-539411a7543bc680.js +1 -0
  979. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-539411a7543bc680.js +1 -0
  980. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-539411a7543bc680.js +1 -0
  981. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-539411a7543bc680.js +1 -0
  982. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-539411a7543bc680.js +1 -0
  983. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-539411a7543bc680.js +1 -0
  984. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-539411a7543bc680.js +1 -0
  985. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-539411a7543bc680.js +1 -0
  986. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-539411a7543bc680.js +1 -0
  987. package/app/.next-cli-build/static/chunks/app/api/routing-health/route-539411a7543bc680.js +1 -0
  988. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-539411a7543bc680.js +1 -0
  989. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-539411a7543bc680.js +1 -0
  990. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-539411a7543bc680.js +1 -0
  991. package/app/.next-cli-build/static/chunks/app/api/settings/route-539411a7543bc680.js +1 -0
  992. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-539411a7543bc680.js +1 -0
  993. package/app/.next-cli-build/static/chunks/app/api/tags/route-539411a7543bc680.js +1 -0
  994. package/app/.next-cli-build/static/chunks/app/api/token-saver/stats/route-539411a7543bc680.js +1 -0
  995. package/app/.next-cli-build/static/chunks/app/api/token-saver/stream/route-539411a7543bc680.js +1 -0
  996. package/app/.next-cli-build/static/chunks/app/api/tool-disclosure/stats/route-539411a7543bc680.js +1 -0
  997. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-539411a7543bc680.js +1 -0
  998. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-539411a7543bc680.js +1 -0
  999. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-539411a7543bc680.js +1 -0
  1000. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-539411a7543bc680.js +1 -0
  1001. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-539411a7543bc680.js +1 -0
  1002. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-539411a7543bc680.js +1 -0
  1003. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-539411a7543bc680.js +1 -0
  1004. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-539411a7543bc680.js +1 -0
  1005. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-539411a7543bc680.js +1 -0
  1006. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-539411a7543bc680.js +1 -0
  1007. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-539411a7543bc680.js +1 -0
  1008. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-539411a7543bc680.js +1 -0
  1009. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-539411a7543bc680.js +1 -0
  1010. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-539411a7543bc680.js +1 -0
  1011. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-539411a7543bc680.js +1 -0
  1012. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-539411a7543bc680.js +1 -0
  1013. package/app/.next-cli-build/static/chunks/app/api/usage/error-logs/route-539411a7543bc680.js +1 -0
  1014. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-539411a7543bc680.js +1 -0
  1015. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-539411a7543bc680.js +1 -0
  1016. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-539411a7543bc680.js +1 -0
  1017. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-539411a7543bc680.js +1 -0
  1018. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-539411a7543bc680.js +1 -0
  1019. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-539411a7543bc680.js +1 -0
  1020. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-539411a7543bc680.js +1 -0
  1021. package/app/.next-cli-build/static/chunks/app/api/v1/alpha/search/route-539411a7543bc680.js +1 -0
  1022. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-539411a7543bc680.js +1 -0
  1023. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-539411a7543bc680.js +1 -0
  1024. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-539411a7543bc680.js +1 -0
  1025. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-539411a7543bc680.js +1 -0
  1026. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-539411a7543bc680.js +1 -0
  1027. package/app/.next-cli-build/static/chunks/app/api/v1/codex/alpha/search/route-539411a7543bc680.js +1 -0
  1028. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/edits/route-539411a7543bc680.js +1 -0
  1029. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/generations/route-539411a7543bc680.js +1 -0
  1030. package/app/.next-cli-build/static/chunks/app/api/v1/codex/memories/trace_summarize/route-539411a7543bc680.js +1 -0
  1031. package/app/.next-cli-build/static/chunks/app/api/v1/codex/models/route-539411a7543bc680.js +1 -0
  1032. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/compact/route-539411a7543bc680.js +1 -0
  1033. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/route-539411a7543bc680.js +1 -0
  1034. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-539411a7543bc680.js +1 -0
  1035. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-539411a7543bc680.js +1 -0
  1036. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-539411a7543bc680.js +1 -0
  1037. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-539411a7543bc680.js +1 -0
  1038. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-539411a7543bc680.js +1 -0
  1039. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-539411a7543bc680.js +1 -0
  1040. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-539411a7543bc680.js +1 -0
  1041. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-539411a7543bc680.js +1 -0
  1042. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-539411a7543bc680.js +1 -0
  1043. package/app/.next-cli-build/static/chunks/app/api/v1/route-539411a7543bc680.js +1 -0
  1044. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-539411a7543bc680.js +1 -0
  1045. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-539411a7543bc680.js +1 -0
  1046. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-539411a7543bc680.js +1 -0
  1047. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-539411a7543bc680.js +1 -0
  1048. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-539411a7543bc680.js +1 -0
  1049. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-539411a7543bc680.js +1 -0
  1050. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-539411a7543bc680.js +1 -0
  1051. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-539411a7543bc680.js +1 -0
  1052. package/app/.next-cli-build/static/chunks/app/api/version/route-539411a7543bc680.js +1 -0
  1053. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-539411a7543bc680.js +1 -0
  1054. package/app/.next-cli-build/static/chunks/app/api/version/update/route-539411a7543bc680.js +1 -0
  1055. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-539411a7543bc680.js +1 -0
  1056. package/app/.next-cli-build/static/chunks/app/page-539411a7543bc680.js +1 -0
  1057. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-539411a7543bc680.js +1 -0
  1058. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-539411a7543bc680.js +1 -0
  1059. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-539411a7543bc680.js +1 -0
  1060. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-539411a7543bc680.js +1 -0
  1061. package/app/.next-cli-build/static/css/b15914d61d9425a2.css +1 -0
  1062. package/app/CHANGELOG.md +55 -0
  1063. package/app/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +131 -0
  1064. package/app/node_modules/@aws/lambda-invoke-store/package.json +55 -0
  1065. package/app/node_modules/@aws-sdk/core/client.js +5 -0
  1066. package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +984 -0
  1067. package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +349 -0
  1068. package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +2949 -0
  1069. package/app/node_modules/@aws-sdk/core/httpAuthSchemes.js +5 -0
  1070. package/app/node_modules/@aws-sdk/core/package.json +146 -0
  1071. package/app/node_modules/@aws-sdk/core/protocols.js +5 -0
  1072. package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/index.js +202 -0
  1073. package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/loadCognitoIdentity-v413cIIq.js +4 -0
  1074. package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +59 -0
  1075. package/app/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +39 -0
  1076. package/app/node_modules/@aws-sdk/credential-provider-env/package.json +63 -0
  1077. package/app/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +179 -0
  1078. package/app/node_modules/@aws-sdk/credential-provider-http/package.json +75 -0
  1079. package/app/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +229 -0
  1080. package/app/node_modules/@aws-sdk/credential-provider-ini/package.json +73 -0
  1081. package/app/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +290 -0
  1082. package/app/node_modules/@aws-sdk/credential-provider-login/package.json +66 -0
  1083. package/app/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +166 -0
  1084. package/app/node_modules/@aws-sdk/credential-provider-node/package.json +71 -0
  1085. package/app/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +76 -0
  1086. package/app/node_modules/@aws-sdk/credential-provider-process/package.json +63 -0
  1087. package/app/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +192 -0
  1088. package/app/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BGYXHf8s.js +3 -0
  1089. package/app/node_modules/@aws-sdk/credential-provider-sso/package.json +67 -0
  1090. package/app/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -0
  1091. package/app/node_modules/@aws-sdk/credential-provider-web-identity/package.json +71 -0
  1092. package/app/node_modules/@aws-sdk/credential-providers/dist-cjs/index.js +284 -0
  1093. package/app/node_modules/@aws-sdk/credential-providers/dist-cjs/loadSts-C4jOcYxJ.js +3 -0
  1094. package/app/node_modules/@aws-sdk/credential-providers/package.json +85 -0
  1095. package/app/node_modules/@aws-sdk/nested-clients/cognito-identity.js +5 -0
  1096. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +616 -0
  1097. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +590 -0
  1098. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +468 -0
  1099. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +674 -0
  1100. package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +878 -0
  1101. package/app/node_modules/@aws-sdk/nested-clients/package.json +121 -0
  1102. package/app/node_modules/@aws-sdk/nested-clients/signin.js +5 -0
  1103. package/app/node_modules/@aws-sdk/nested-clients/sso-oidc.js +5 -0
  1104. package/app/node_modules/@aws-sdk/nested-clients/sso.js +5 -0
  1105. package/app/node_modules/@aws-sdk/nested-clients/sts.js +5 -0
  1106. package/app/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +155 -0
  1107. package/app/node_modules/@aws-sdk/signature-v4-multi-region/package.json +60 -0
  1108. package/app/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +158 -0
  1109. package/app/node_modules/@aws-sdk/token-providers/package.json +69 -0
  1110. package/app/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +372 -0
  1111. package/app/node_modules/@aws-sdk/xml-builder/package.json +63 -0
  1112. package/app/node_modules/@smithy/core/cbor.js +5 -0
  1113. package/app/node_modules/@smithy/core/checksum.js +5 -0
  1114. package/app/node_modules/@smithy/core/client.js +5 -0
  1115. package/app/node_modules/@smithy/core/config.js +5 -0
  1116. package/app/node_modules/@smithy/core/dist-cjs/index.js +344 -0
  1117. package/app/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +2565 -0
  1118. package/app/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +577 -0
  1119. package/app/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +1156 -0
  1120. package/app/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +779 -0
  1121. package/app/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +878 -0
  1122. package/app/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +924 -0
  1123. package/app/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1058 -0
  1124. package/app/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +848 -0
  1125. package/app/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +701 -0
  1126. package/app/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +1765 -0
  1127. package/app/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js +189 -0
  1128. package/app/node_modules/@smithy/core/endpoints.js +5 -0
  1129. package/app/node_modules/@smithy/core/event-streams.js +5 -0
  1130. package/app/node_modules/@smithy/core/package.json +258 -0
  1131. package/app/node_modules/@smithy/core/protocols.js +5 -0
  1132. package/app/node_modules/@smithy/core/retry.js +5 -0
  1133. package/app/node_modules/@smithy/core/schema.js +5 -0
  1134. package/app/node_modules/@smithy/core/serde.js +5 -0
  1135. package/app/node_modules/@smithy/core/transport.js +5 -0
  1136. package/app/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +370 -0
  1137. package/app/node_modules/@smithy/credential-provider-imds/package.json +57 -0
  1138. package/app/node_modules/@smithy/node-http-handler/dist-cjs/index.js +859 -0
  1139. package/app/node_modules/@smithy/node-http-handler/package.json +56 -0
  1140. package/app/node_modules/@smithy/signature-v4/dist-cjs/index.js +582 -0
  1141. package/app/node_modules/@smithy/signature-v4/package.json +53 -0
  1142. package/app/node_modules/@smithy/types/dist-cjs/index.js +96 -0
  1143. package/app/node_modules/@smithy/types/package.json +50 -0
  1144. package/app/node_modules/bowser/es5.js +1 -0
  1145. package/app/node_modules/bowser/package.json +93 -0
  1146. package/app/package.json +3 -1
  1147. package/app/public/CHANGELOG.md +55 -0
  1148. package/app/public/providers/bedrock.png +0 -0
  1149. package/app/server.js +1 -1
  1150. package/package.json +1 -1
  1151. package/app/.next-cli-build/server/chunks/1744.js +0 -221
  1152. package/app/.next-cli-build/server/chunks/2892.js +0 -1
  1153. package/app/.next-cli-build/server/chunks/3148.js +0 -51
  1154. package/app/.next-cli-build/server/chunks/6330.js +0 -1
  1155. package/app/.next-cli-build/server/chunks/6399.js +0 -300
  1156. package/app/.next-cli-build/server/chunks/6816.js +0 -40
  1157. package/app/.next-cli-build/server/chunks/7603.js +0 -1
  1158. package/app/.next-cli-build/server/chunks/880.js +0 -30
  1159. package/app/.next-cli-build/server/chunks/9217.js +0 -1
  1160. package/app/.next-cli-build/static/8dPzxL-dxwdChBbLdLZmV/_buildManifest.js +0 -1
  1161. package/app/.next-cli-build/static/chunks/1321-e4660a6601ad3949.js +0 -1
  1162. package/app/.next-cli-build/static/chunks/8105-9b78b79b9ec0bad7.js +0 -1
  1163. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e43920245a9a5e37.js +0 -27
  1164. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-065d2cde7176b5fc.js +0 -1
  1165. package/app/.next-cli-build/static/chunks/app/_global-error/page-116cfb93931e646f.js +0 -1
  1166. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-116cfb93931e646f.js +0 -1
  1167. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-116cfb93931e646f.js +0 -1
  1168. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-116cfb93931e646f.js +0 -1
  1169. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-116cfb93931e646f.js +0 -1
  1170. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-116cfb93931e646f.js +0 -1
  1171. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-116cfb93931e646f.js +0 -1
  1172. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-116cfb93931e646f.js +0 -1
  1173. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-116cfb93931e646f.js +0 -1
  1174. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-116cfb93931e646f.js +0 -1
  1175. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-116cfb93931e646f.js +0 -1
  1176. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-116cfb93931e646f.js +0 -1
  1177. package/app/.next-cli-build/static/chunks/app/api/changelog/route-116cfb93931e646f.js +0 -1
  1178. package/app/.next-cli-build/static/chunks/app/api/cli/providers/codex/route-116cfb93931e646f.js +0 -1
  1179. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-116cfb93931e646f.js +0 -1
  1180. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-116cfb93931e646f.js +0 -1
  1181. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-116cfb93931e646f.js +0 -1
  1182. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-116cfb93931e646f.js +0 -1
  1183. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-116cfb93931e646f.js +0 -1
  1184. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/models/route-116cfb93931e646f.js +0 -1
  1185. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/readiness/route-116cfb93931e646f.js +0 -1
  1186. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-116cfb93931e646f.js +0 -1
  1187. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-116cfb93931e646f.js +0 -1
  1188. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-116cfb93931e646f.js +0 -1
  1189. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-116cfb93931e646f.js +0 -1
  1190. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-116cfb93931e646f.js +0 -1
  1191. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-116cfb93931e646f.js +0 -1
  1192. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-116cfb93931e646f.js +0 -1
  1193. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-116cfb93931e646f.js +0 -1
  1194. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-116cfb93931e646f.js +0 -1
  1195. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-116cfb93931e646f.js +0 -1
  1196. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-116cfb93931e646f.js +0 -1
  1197. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-116cfb93931e646f.js +0 -1
  1198. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-116cfb93931e646f.js +0 -1
  1199. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-116cfb93931e646f.js +0 -1
  1200. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-116cfb93931e646f.js +0 -1
  1201. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-116cfb93931e646f.js +0 -1
  1202. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/test/route-116cfb93931e646f.js +0 -1
  1203. package/app/.next-cli-build/static/chunks/app/api/combos/export/route-116cfb93931e646f.js +0 -1
  1204. package/app/.next-cli-build/static/chunks/app/api/combos/import/route-116cfb93931e646f.js +0 -1
  1205. package/app/.next-cli-build/static/chunks/app/api/combos/route-116cfb93931e646f.js +0 -1
  1206. package/app/.next-cli-build/static/chunks/app/api/combos/test/route-116cfb93931e646f.js +0 -1
  1207. package/app/.next-cli-build/static/chunks/app/api/convoy/rules/route-116cfb93931e646f.js +0 -1
  1208. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-116cfb93931e646f.js +0 -1
  1209. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-116cfb93931e646f.js +0 -1
  1210. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-116cfb93931e646f.js +0 -1
  1211. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-116cfb93931e646f.js +0 -1
  1212. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-116cfb93931e646f.js +0 -1
  1213. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-116cfb93931e646f.js +0 -1
  1214. package/app/.next-cli-build/static/chunks/app/api/health/route-116cfb93931e646f.js +0 -1
  1215. package/app/.next-cli-build/static/chunks/app/api/init/route-116cfb93931e646f.js +0 -1
  1216. package/app/.next-cli-build/static/chunks/app/api/internal/codex-native/lease/[action]/route-116cfb93931e646f.js +0 -1
  1217. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-116cfb93931e646f.js +0 -1
  1218. package/app/.next-cli-build/static/chunks/app/api/keys/route-116cfb93931e646f.js +0 -1
  1219. package/app/.next-cli-build/static/chunks/app/api/locale/route-116cfb93931e646f.js +0 -1
  1220. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-116cfb93931e646f.js +0 -1
  1221. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-116cfb93931e646f.js +0 -1
  1222. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/route-116cfb93931e646f.js +0 -1
  1223. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/test/route-116cfb93931e646f.js +0 -1
  1224. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/route-116cfb93931e646f.js +0 -1
  1225. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/[id]/route-116cfb93931e646f.js +0 -1
  1226. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/route-116cfb93931e646f.js +0 -1
  1227. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/message/route-116cfb93931e646f.js +0 -1
  1228. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/oauth/[id]/[action]/route-116cfb93931e646f.js +0 -1
  1229. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/route-116cfb93931e646f.js +0 -1
  1230. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/sse/route-116cfb93931e646f.js +0 -1
  1231. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-116cfb93931e646f.js +0 -1
  1232. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-116cfb93931e646f.js +0 -1
  1233. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-116cfb93931e646f.js +0 -1
  1234. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-116cfb93931e646f.js +0 -1
  1235. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-116cfb93931e646f.js +0 -1
  1236. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-116cfb93931e646f.js +0 -1
  1237. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-116cfb93931e646f.js +0 -1
  1238. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-116cfb93931e646f.js +0 -1
  1239. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-116cfb93931e646f.js +0 -1
  1240. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-116cfb93931e646f.js +0 -1
  1241. package/app/.next-cli-build/static/chunks/app/api/models/route-116cfb93931e646f.js +0 -1
  1242. package/app/.next-cli-build/static/chunks/app/api/models/test/route-116cfb93931e646f.js +0 -1
  1243. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-116cfb93931e646f.js +0 -1
  1244. package/app/.next-cli-build/static/chunks/app/api/oauth/callback/route-116cfb93931e646f.js +0 -1
  1245. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-116cfb93931e646f.js +0 -1
  1246. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-116cfb93931e646f.js +0 -1
  1247. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-116cfb93931e646f.js +0 -1
  1248. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-116cfb93931e646f.js +0 -1
  1249. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-116cfb93931e646f.js +0 -1
  1250. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-116cfb93931e646f.js +0 -1
  1251. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-116cfb93931e646f.js +0 -1
  1252. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-116cfb93931e646f.js +0 -1
  1253. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-116cfb93931e646f.js +0 -1
  1254. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-116cfb93931e646f.js +0 -1
  1255. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-116cfb93931e646f.js +0 -1
  1256. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-116cfb93931e646f.js +0 -1
  1257. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-116cfb93931e646f.js +0 -1
  1258. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-116cfb93931e646f.js +0 -1
  1259. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-116cfb93931e646f.js +0 -1
  1260. package/app/.next-cli-build/static/chunks/app/api/pricing/route-116cfb93931e646f.js +0 -1
  1261. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-116cfb93931e646f.js +0 -1
  1262. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-116cfb93931e646f.js +0 -1
  1263. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-116cfb93931e646f.js +0 -1
  1264. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-116cfb93931e646f.js +0 -1
  1265. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/refresh-profile/route-116cfb93931e646f.js +0 -1
  1266. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-116cfb93931e646f.js +0 -1
  1267. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-116cfb93931e646f.js +0 -1
  1268. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-116cfb93931e646f.js +0 -1
  1269. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-116cfb93931e646f.js +0 -1
  1270. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-116cfb93931e646f.js +0 -1
  1271. package/app/.next-cli-build/static/chunks/app/api/providers/route-116cfb93931e646f.js +0 -1
  1272. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-116cfb93931e646f.js +0 -1
  1273. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-116cfb93931e646f.js +0 -1
  1274. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-116cfb93931e646f.js +0 -1
  1275. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-116cfb93931e646f.js +0 -1
  1276. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-116cfb93931e646f.js +0 -1
  1277. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-116cfb93931e646f.js +0 -1
  1278. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-116cfb93931e646f.js +0 -1
  1279. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-116cfb93931e646f.js +0 -1
  1280. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-116cfb93931e646f.js +0 -1
  1281. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-116cfb93931e646f.js +0 -1
  1282. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-116cfb93931e646f.js +0 -1
  1283. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-116cfb93931e646f.js +0 -1
  1284. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-116cfb93931e646f.js +0 -1
  1285. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-116cfb93931e646f.js +0 -1
  1286. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-116cfb93931e646f.js +0 -1
  1287. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-116cfb93931e646f.js +0 -1
  1288. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-116cfb93931e646f.js +0 -1
  1289. package/app/.next-cli-build/static/chunks/app/api/routing-health/route-116cfb93931e646f.js +0 -1
  1290. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-116cfb93931e646f.js +0 -1
  1291. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-116cfb93931e646f.js +0 -1
  1292. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-116cfb93931e646f.js +0 -1
  1293. package/app/.next-cli-build/static/chunks/app/api/settings/route-116cfb93931e646f.js +0 -1
  1294. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-116cfb93931e646f.js +0 -1
  1295. package/app/.next-cli-build/static/chunks/app/api/tags/route-116cfb93931e646f.js +0 -1
  1296. package/app/.next-cli-build/static/chunks/app/api/token-saver/stats/route-116cfb93931e646f.js +0 -1
  1297. package/app/.next-cli-build/static/chunks/app/api/token-saver/stream/route-116cfb93931e646f.js +0 -1
  1298. package/app/.next-cli-build/static/chunks/app/api/tool-disclosure/stats/route-116cfb93931e646f.js +0 -1
  1299. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-116cfb93931e646f.js +0 -1
  1300. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-116cfb93931e646f.js +0 -1
  1301. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-116cfb93931e646f.js +0 -1
  1302. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-116cfb93931e646f.js +0 -1
  1303. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-116cfb93931e646f.js +0 -1
  1304. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-116cfb93931e646f.js +0 -1
  1305. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-116cfb93931e646f.js +0 -1
  1306. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-116cfb93931e646f.js +0 -1
  1307. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-116cfb93931e646f.js +0 -1
  1308. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-116cfb93931e646f.js +0 -1
  1309. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-116cfb93931e646f.js +0 -1
  1310. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-116cfb93931e646f.js +0 -1
  1311. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-116cfb93931e646f.js +0 -1
  1312. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-116cfb93931e646f.js +0 -1
  1313. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-116cfb93931e646f.js +0 -1
  1314. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-116cfb93931e646f.js +0 -1
  1315. package/app/.next-cli-build/static/chunks/app/api/usage/error-logs/route-116cfb93931e646f.js +0 -1
  1316. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-116cfb93931e646f.js +0 -1
  1317. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-116cfb93931e646f.js +0 -1
  1318. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-116cfb93931e646f.js +0 -1
  1319. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-116cfb93931e646f.js +0 -1
  1320. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-116cfb93931e646f.js +0 -1
  1321. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-116cfb93931e646f.js +0 -1
  1322. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-116cfb93931e646f.js +0 -1
  1323. package/app/.next-cli-build/static/chunks/app/api/v1/alpha/search/route-116cfb93931e646f.js +0 -1
  1324. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-116cfb93931e646f.js +0 -1
  1325. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-116cfb93931e646f.js +0 -1
  1326. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-116cfb93931e646f.js +0 -1
  1327. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-116cfb93931e646f.js +0 -1
  1328. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-116cfb93931e646f.js +0 -1
  1329. package/app/.next-cli-build/static/chunks/app/api/v1/codex/alpha/search/route-116cfb93931e646f.js +0 -1
  1330. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/edits/route-116cfb93931e646f.js +0 -1
  1331. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/generations/route-116cfb93931e646f.js +0 -1
  1332. package/app/.next-cli-build/static/chunks/app/api/v1/codex/memories/trace_summarize/route-116cfb93931e646f.js +0 -1
  1333. package/app/.next-cli-build/static/chunks/app/api/v1/codex/models/route-116cfb93931e646f.js +0 -1
  1334. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/compact/route-116cfb93931e646f.js +0 -1
  1335. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/route-116cfb93931e646f.js +0 -1
  1336. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-116cfb93931e646f.js +0 -1
  1337. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-116cfb93931e646f.js +0 -1
  1338. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-116cfb93931e646f.js +0 -1
  1339. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-116cfb93931e646f.js +0 -1
  1340. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-116cfb93931e646f.js +0 -1
  1341. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-116cfb93931e646f.js +0 -1
  1342. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-116cfb93931e646f.js +0 -1
  1343. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-116cfb93931e646f.js +0 -1
  1344. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-116cfb93931e646f.js +0 -1
  1345. package/app/.next-cli-build/static/chunks/app/api/v1/route-116cfb93931e646f.js +0 -1
  1346. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-116cfb93931e646f.js +0 -1
  1347. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-116cfb93931e646f.js +0 -1
  1348. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-116cfb93931e646f.js +0 -1
  1349. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-116cfb93931e646f.js +0 -1
  1350. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-116cfb93931e646f.js +0 -1
  1351. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-116cfb93931e646f.js +0 -1
  1352. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-116cfb93931e646f.js +0 -1
  1353. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-116cfb93931e646f.js +0 -1
  1354. package/app/.next-cli-build/static/chunks/app/api/version/route-116cfb93931e646f.js +0 -1
  1355. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-116cfb93931e646f.js +0 -1
  1356. package/app/.next-cli-build/static/chunks/app/api/version/update/route-116cfb93931e646f.js +0 -1
  1357. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-116cfb93931e646f.js +0 -1
  1358. package/app/.next-cli-build/static/chunks/app/page-116cfb93931e646f.js +0 -1
  1359. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-116cfb93931e646f.js +0 -1
  1360. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-116cfb93931e646f.js +0 -1
  1361. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-116cfb93931e646f.js +0 -1
  1362. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-116cfb93931e646f.js +0 -1
  1363. package/app/.next-cli-build/static/css/3eaed7d6a98582e3.css +0 -1
  1364. /package/app/.next-cli-build/static/{8dPzxL-dxwdChBbLdLZmV → ZZzFJY8XwYUO3V74IjHEa}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2898,exports.ids=[2898],exports.modules={22898:(a,b,c)=>{c.d(b,{Ag:()=>Y,DJ:()=>ab,E1:()=>W,ET:()=>Z,GJ:()=>au,Hd:()=>o,IF:()=>t,Ln:()=>_,Pd:()=>i,Rb:()=>X,S3:()=>aq,Sy:()=>aa,U0:()=>ak,VZ:()=>G,Xd:()=>O,Xe:()=>ac,Y0:()=>s,ZP:()=>y,_V:()=>x,ag:()=>at,ai:()=>ah,b7:()=>ae,cn:()=>p,dR:()=>q,dW:()=>I,hj:()=>J,i7:()=>j,jl:()=>A,mh:()=>aj,n3:()=>ap,nu:()=>B,og:()=>H,rd:()=>R,uw:()=>z,wl:()=>P,z$:()=>ai,zg:()=>ar,zq:()=>Q});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a){return!a||/^http:\/\/(127\.0\.0\.1|localhost)(:\d+)?$/.test(a)}function i(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
1
+ "use strict";exports.id=2898,exports.ids=[2898],exports.modules={22898:(a,b,c)=>{c.d(b,{Ag:()=>_,DJ:()=>ae,E1:()=>Z,ET:()=>aa,Ex:()=>G,GJ:()=>ax,Hd:()=>o,IF:()=>t,Jm:()=>Y,Ln:()=>ac,Pd:()=>i,Rb:()=>$,S3:()=>at,Sy:()=>ad,U0:()=>an,VZ:()=>H,Xd:()=>Q,Xe:()=>af,Y0:()=>s,ZP:()=>y,_V:()=>x,ag:()=>aw,ai:()=>ak,b7:()=>ah,cn:()=>p,dR:()=>q,dW:()=>J,hj:()=>K,i7:()=>j,jl:()=>A,mh:()=>am,n3:()=>as,nu:()=>B,og:()=>I,rd:()=>T,uw:()=>z,wl:()=>R,wq:()=>P,z$:()=>al,zg:()=>au,zq:()=>S});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a){return!a||/^http:\/\/(127\.0\.0\.1|localhost)(:\d+)?$/.test(a)}function i(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
@@ -40,7 +40,7 @@
40
40
  <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
41
41
  </head><body><div class="c"><div class="i">${a?"&#10003;":"&#10007;"}</div><h1>${c}</h1><p>${d}</p><p>Closing in <span id="cd">3</span>s...</p>
42
42
  <script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);</script>
43
- </div></body></html>`}function s(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?n.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:b}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),t()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:b}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}let C=null,D=null,E=null,F=null;function G(a){return!F||a&&F.state!==a?null:F}function H(a){(!a||F&&F.state===a)&&(F=null)}function I(){return new Promise(a=>{if(C)return void a({success:!0,port:E,callbackUrl:`http://127.0.0.1:${E}${g.SK.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.SK.callbackPath&&"/auth/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=F;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Trae login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(i&&e.state&&i!==e.state){e.status="error",e.error="Trae callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),J();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:d}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),f=await a("trae",j),g=await d({provider:"trae",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{J()}});b.listen(0,"127.0.0.1",()=>{C=b,E=b.address().port,D=setTimeout(()=>J(),g.SK.oauthTimeoutMs),a({success:!0,port:E,callbackUrl:`http://127.0.0.1:${E}${g.SK.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function J(){D&&(clearTimeout(D),D=null),C&&(C.close(),C=null),E=null}let K=null,L=null,M=null,N=null;function O(a){return!N||a&&N.state!==a?null:N}function P(a){(!a||N&&N.state===a)&&(N=null)}function Q(){return new Promise(a=>{if(K)return void a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=N;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Windsurf login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(!i||!e.state||i!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),R();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:d}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{R()}});b.listen(0,"127.0.0.1",()=>{K=b,M=b.address().port,L=setTimeout(()=>R(),g.eD.oauthTimeoutMs),a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function R(){L&&(clearTimeout(L),L=null),K&&(K.close(),K=null),M=null}let S=null,T=null,U=null,V=null;function W(a){return!V||a&&V.state!==a?null:V}function X(a){(!a||V&&V.state===a)&&(V=null)}function Y(a=0){return new Promise(b=>{if(S)return void b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`});let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=V;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Zed login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:d}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),e=await a("zed",i,null,g.codeVerifier,g.state),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{Z()}}),i=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==i?(console.log(`[Zed proxy] port ${i} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>Z(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(i,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),Z()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})})}function Z(){console.log(`[Zed proxy] stopping (port ${U||"-"})`),T&&(clearTimeout(T),T=null),S&&(S.close(),S=null),U=null}let $=new Map;function _({provider:a,state:b,codeVerifier:c,redirectUri:d,meta:e}){if(!b)return!1;let f=Date.now()-6e5;for(let[a,b]of $)b.createdAt<f&&$.delete(a);return $.set(b,{provider:a,codeVerifier:c,redirectUri:d,meta:e,status:"pending",createdAt:Date.now()}),!0}function aa(a){return a&&$.get(a)||null}function ab(a,b){if(!a)return;let c=$.get(a);c&&$.set(a,{...c,...b})}function ac(a){if(!a)return;let b=$.get(a);b&&"done"===b.status?setTimeout(()=>{$.delete(a)},6e4):$.delete(a)}let ad=new Map;async function ae(a,b,d,e,f,g){let h=f||b,i=f?$.get(f):null;if(i&&"done"===i.status&&i.connectionId)return{success:!0,alreadyDone:!0,connection:{id:i.connectionId,provider:i.provider||a,email:i.email,displayName:i.displayName}};if(h&&ad.has(h))return await ad.get(h);let j=(async()=>{try{i&&(i.status="processing");let{exchangeTokens:h}=await Promise.all([c.e(7774),c.e(6816),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(1744),c.e(369),c.e(6330),c.e(4755)]).then(c.bind(c,74177)),{createProviderConnection:j}=await Promise.all([c.e(6816),c.e(4574)]).then(c.bind(c,71998)),k=d||i?.redirectUri,l=e||i?.codeVerifier,m=g||i?.meta,n=await h(a,b,k,l,f,m),o=await j({provider:a,authType:"oauth",...n,expiresAt:n.expiresIn?new Date(Date.now()+1e3*n.expiresIn).toISOString():null,testStatus:"active"});return i?(i.status="done",i.connectionId=o.id,i.email=o.email,i.displayName=o.displayName):f&&$.set(f,{provider:a,status:"done",connectionId:o.id,email:o.email,displayName:o.displayName,createdAt:Date.now()}),{success:!0,connection:{id:o.id,provider:o.provider,email:o.email,displayName:o.displayName}}}catch(a){throw i&&(i.status="error",i.error=a.message),a}finally{h&&ad.delete(h)}})();return h&&ad.set(h,j),await j}let af=new Map;function ag(a,b){return`${a}::${b}`}function ah({instanceId:a,state:b,codeVerifier:c,redirectUri:d,resource:e,clientId:f}){return!!a&&!!b&&!!c&&!!d&&!!f&&(af.set(ag(a,b),{codeVerifier:c,clientId:f,redirectUri:d,resource:e,scope:void 0,status:"pending",error:void 0,tokens:void 0,createdAt:Date.now()}),!0)}function ai(a,b){return af.get(ag(a,b))||null}function aj(a,b,c){let d=ag(a,b),e=af.get(d);return!!e&&(void 0!==c.status&&(e.status=c.status),void 0!==c.error&&(e.error=c.error),void 0!==c.tokens&&(e.tokens=c.tokens),!0)}function ak(a,b){af.delete(ag(a,b))}let al=null,am=null,an=null,ao=new Map;function ap({state:a,privateKeyDer:b}){return!!a&&!!b&&(ao.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function aq(a){let b=ao.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function ar(a){ao.delete(a)}function as(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
43
+ </div></body></html>`}function s(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?n.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:b}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),t()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:b}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}let C=null,D=null,E=null,F=null;function G({state:a}){return!!a&&(F={state:a,status:"pending",createdAt:Date.now()},!0)}function H(a){return!F||a&&F.state!==a?null:F}function I(a){(!a||F&&F.state===a)&&(F=null)}function J(){return new Promise(a=>{if(C)return void a({success:!0,port:E,callbackUrl:`http://127.0.0.1:${E}${g.SK.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.SK.callbackPath&&"/auth/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=F;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Trae login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(i&&e.state&&i!==e.state){e.status="error",e.error="Trae callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),K();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:d}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),f=await a("trae",j),g=await d({provider:"trae",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{K()}});b.listen(0,"127.0.0.1",()=>{C=b,E=b.address().port,D=setTimeout(()=>K(),g.SK.oauthTimeoutMs),a({success:!0,port:E,callbackUrl:`http://127.0.0.1:${E}${g.SK.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function K(){D&&(clearTimeout(D),D=null),C&&(C.close(),C=null),E=null}let L=null,M=null,N=null,O=null;function P({state:a}){return!!a&&(O={state:a,status:"pending",createdAt:Date.now()},!0)}function Q(a){return!O||a&&O.state!==a?null:O}function R(a){(!a||O&&O.state===a)&&(O=null)}function S(){return new Promise(a=>{if(L)return void a({success:!0,port:N,callbackUrl:`http://127.0.0.1:${N}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=O;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Windsurf login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(!i||!e.state||i!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),T();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:d}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{T()}});b.listen(0,"127.0.0.1",()=>{L=b,N=b.address().port,M=setTimeout(()=>T(),g.eD.oauthTimeoutMs),a({success:!0,port:N,callbackUrl:`http://127.0.0.1:${N}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function T(){M&&(clearTimeout(M),M=null),L&&(L.close(),L=null),N=null}let U=null,V=null,W=null,X=null;function Y({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(X={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function Z(a){return!X||a&&X.state!==a?null:X}function $(a){(!a||X&&X.state===a)&&(X=null)}function _(a=0){return new Promise(b=>{if(U){V&&clearTimeout(V),V=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),aa()},g.RY.oauthTimeoutMs),b({success:!0,port:W,callbackUrl:`http://127.0.0.1:${W}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=X;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Zed login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let i=d.searchParams;if(!(i.has("user_id")||i.has("userId")||i.has("access_token")||i.has("accessToken")||i.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:d}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window.")),aa()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}}),i=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==i?(console.log(`[Zed proxy] port ${i} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{U=d,W=d.address().port,V=setTimeout(()=>aa(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${W}`),b({success:!0,port:W,callbackUrl:`http://127.0.0.1:${W}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(i,"127.0.0.1",()=>{U=d,W=d.address().port,V=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),aa()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${W}`),b({success:!0,port:W,callbackUrl:`http://127.0.0.1:${W}/`})})})}function aa(){console.log(`[Zed proxy] stopping (port ${W||"-"})`),V&&(clearTimeout(V),V=null),U&&(U.close(),U=null),W=null}let ab=new Map;function ac({provider:a,state:b,codeVerifier:c,redirectUri:d,meta:e}){if(!b)return!1;let f=Date.now()-6e5;for(let[a,b]of ab)b.createdAt<f&&ab.delete(a);return ab.set(b,{provider:a,codeVerifier:c,redirectUri:d,meta:e,status:"pending",createdAt:Date.now()}),!0}function ad(a){return a&&ab.get(a)||null}function ae(a,b){if(!a)return;let c=ab.get(a);c&&ab.set(a,{...c,...b})}function af(a){if(!a)return;let b=ab.get(a);b&&"done"===b.status?setTimeout(()=>{ab.delete(a)},6e4):ab.delete(a)}let ag=new Map;async function ah(a,b,d,e,f,g){let h=f||b,i=f?ab.get(f):null;if(i&&"done"===i.status&&i.connectionId)return{success:!0,alreadyDone:!0,connection:{id:i.connectionId,provider:i.provider||a,email:i.email,displayName:i.displayName}};if(h&&ag.has(h))return await ag.get(h);let j=(async()=>{try{i&&(i.status="processing");let{exchangeTokens:h}=await Promise.all([c.e(7774),c.e(3267),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(576),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(6502),c.e(1764),c.e(369),c.e(5948),c.e(4755)]).then(c.bind(c,71907)),{createProviderConnection:j}=await Promise.all([c.e(3267),c.e(4574)]).then(c.bind(c,71998)),k=d||i?.redirectUri,l=e||i?.codeVerifier,m=g||i?.meta,n=await h(a,b,k,l,f,m),o=await j({provider:a,authType:"oauth",...n,expiresAt:n.expiresIn?new Date(Date.now()+1e3*n.expiresIn).toISOString():null,testStatus:"active"});return i?(i.status="done",i.connectionId=o.id,i.email=o.email,i.displayName=o.displayName):f&&ab.set(f,{provider:a,status:"done",connectionId:o.id,email:o.email,displayName:o.displayName,createdAt:Date.now()}),{success:!0,connection:{id:o.id,provider:o.provider,email:o.email,displayName:o.displayName}}}catch(a){throw i&&(i.status="error",i.error=a.message),a}finally{h&&ag.delete(h)}})();return h&&ag.set(h,j),await j}let ai=new Map;function aj(a,b){return`${a}::${b}`}function ak({instanceId:a,state:b,codeVerifier:c,redirectUri:d,resource:e,clientId:f}){return!!a&&!!b&&!!c&&!!d&&!!f&&(ai.set(aj(a,b),{codeVerifier:c,clientId:f,redirectUri:d,resource:e,scope:void 0,status:"pending",error:void 0,tokens:void 0,createdAt:Date.now()}),!0)}function al(a,b){return ai.get(aj(a,b))||null}function am(a,b,c){let d=aj(a,b),e=ai.get(d);return!!e&&(void 0!==c.status&&(e.status=c.status),void 0!==c.error&&(e.error=c.error),void 0!==c.tokens&&(e.tokens=c.tokens),!0)}function an(a,b){ai.delete(aj(a,b))}let ao=null,ap=null,aq=null,ar=new Map;function as({state:a,privateKeyDer:b}){return!!a&&!!b&&(ar.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function at(a){let b=ar.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function au(a){ar.delete(a)}function av(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
44
44
  <html>
45
45
  <head><meta charset="utf-8"><title>${c}</title>
46
46
  <style>
@@ -59,4 +59,4 @@
59
59
  ${a?"<script>setTimeout(() => window.close(), 3000);<\/script>":""}
60
60
  </div>
61
61
  </body>
62
- </html>`}function at(){return new Promise(a=>{if(al)return void a({success:!0,port:am,callbackUrl:`http://127.0.0.1:${am}/`});let b=e().createServer(async(a,b)=>{if(!h(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(as(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ao.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(as(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ao.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(as(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(as(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{al=b,am=b.address().port,an=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),au()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${am}`),a({success:!0,port:am,callbackUrl:`http://127.0.0.1:${am}/`})})})}function au(){console.log(`[xiaomi-mimo oauth] stopping (port ${am||"-"})`),an&&(clearTimeout(an),an=null),al&&(al.close(),al=null),am=null,ao.clear()}}};
62
+ </html>`}function aw(){return new Promise(a=>{if(ao)return void a({success:!0,port:ap,callbackUrl:`http://127.0.0.1:${ap}/`});let b=e().createServer(async(a,b)=>{if(!h(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(av(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ar.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(av(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ar.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(av(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(av(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{ao=b,ap=b.address().port,aq=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),ax()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${ap}`),a({success:!0,port:ap,callbackUrl:`http://127.0.0.1:${ap}/`})})})}function ax(){console.log(`[xiaomi-mimo oauth] stopping (port ${ap||"-"})`),aq&&(clearTimeout(aq),aq=null),ao&&(ao.close(),ao=null),ap=null,ar.clear()}}};
@@ -1 +1 @@
1
- exports.id=3245,exports.ids=[3245],exports.modules={18080:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>j,uo:()=>k});var d=c(92990);let e=new Set(["login.microsoftonline.com","login.microsoft.com","login.windows.net"]);function f(a){return"string"==typeof a?a.trim():""}function g(a){let b,c=f(a);if(!c)throw Error("token_endpoint is required");try{b=new URL(c)}catch{throw Error("token_endpoint must be a valid URL")}if("https:"!==b.protocol)throw Error("token_endpoint must use https");let d=b.hostname.toLowerCase();if(!e.has(d))throw Error("token_endpoint must be a Microsoft login endpoint");return b.toString()}function h(a){return Array.isArray(a)?a.map(f).filter(Boolean).join(" "):f(a)}function i(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4;return JSON.parse(Buffer.from(`${c}${"=".repeat(d)}`,"base64").toString("utf8"))}catch{return null}}function j(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{throw Error("CLIProxyAPI auth JSON is invalid")}if(!b||"object"!=typeof b)throw Error("CLIProxyAPI auth JSON is required");let c=f(b.auth_method||b.authMethod);if(c&&"external_idp"!==c)throw Error("Only external_idp Kiro auth is supported by this importer");let e=f(b.access_token||b.accessToken),j=f(b.refresh_token||b.refreshToken),k=f(b.client_id||b.clientId),l=g(b.token_endpoint||b.tokenEndpoint),m=f(b.profile_arn||b.profileArn),n=f(b.region)||"us-east-1",o=h(b.scopes||b.scope),p=(0,d.S6)(n);if(!e)throw Error("access_token is required");if(!j)throw Error("refresh_token is required");if(!k)throw Error("client_id is required");if(!o)throw Error("scopes is required");if(!m)throw Error("profile_arn is required");let q=i(e),r=b.email||q?.email||q?.preferred_username||q?.upn||q?.sub||null;return{accessToken:e,refreshToken:j,expiresAt:function(a){let b=a.expired||a.expires_at||a.expiresAt;if(b){let a=new Date(b).getTime();if(Number.isFinite(a))return new Date(a).toISOString()}let c=Number(a.expires_in||a.expiresIn||0);if(Number.isFinite(c)&&c>0)return new Date(Date.now()+1e3*c).toISOString();let d=i(a.access_token||a.accessToken);return d?.exp?new Date(1e3*d.exp).toISOString():new Date(Date.now()+36e5).toISOString()}(b),email:r,providerSpecificData:{profileArn:m,region:p,authMethod:"external_idp",provider:"CLIProxyAPI",clientId:k,tokenEndpoint:l,scope:o}}}function k(a,b={}){let c=f(b.clientId||b.client_id),d=g(b.tokenEndpoint||b.token_endpoint),e=h(b.scope||b.scopes);if(!a)throw Error("refresh token is required");if(!c)throw Error("clientId is required for external_idp refresh");if(!e)throw Error("scope is required for external_idp refresh");return{tokenEndpoint:d,body:new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a,scope:e}),providerSpecificData:{...b,authMethod:"external_idp",clientId:c,tokenEndpoint:d,scope:e}}}},37840:(a,b,c)=>{"use strict";c.d(b,{$m:()=>e,nz:()=>d,yg:()=>f});let d="auto",e=["us-east-1","eu-central-1"];function f(a){let b=String(a||"").trim().toLowerCase();if(!e.includes(b))throw Error("Unsupported Kiro runtime region");return b}},62409:(a,b,c)=>{"use strict";c.d(b,{v:()=>h});var d=c(92990),e=c(18080),f=c(37840);let g="https://prod.us-east-1.auth.desktop.kiro.dev";class h{async registerClient(a="us-east-1"){(0,d.S6)(a);let b=`https://oidc.${a}.amazonaws.com/client/register`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientName:d.Tx.clientName,clientType:d.Tx.clientType,scopes:d.Tx.scopes,grantTypes:d.Tx.grantTypes,issuerUrl:d.Tx.issuerUrl})});if(!c.ok){let a=await c.text();throw Error(`Failed to register client: ${a}`)}let e=await c.json();return{clientId:e.clientId,clientSecret:e.clientSecret,clientSecretExpiresAt:e.clientSecretExpiresAt}}async startDeviceAuthorization(a,b,c,e="us-east-1"){(0,d.S6)(e);let f=`https://oidc.${e}.amazonaws.com/device_authorization`,g=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,startUrl:c})});if(!g.ok){let a=await g.text();throw Error(`Failed to start device authorization: ${a}`)}let h=await g.json();return{deviceCode:h.deviceCode,userCode:h.userCode,verificationUri:h.verificationUri,verificationUriComplete:h.verificationUriComplete,expiresIn:h.expiresIn,interval:h.interval||5}}async pollDeviceToken(a,b,c,e="us-east-1"){(0,d.S6)(e);let f=`https://oidc.${e}.amazonaws.com/token`,g=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,deviceCode:c,grantType:"urn:ietf:params:oauth:grant-type:device_code"})}),h=await g.json();return!g.ok||h.error?{success:!1,error:h.error,errorDescription:h.error_description,pending:"authorization_pending"===h.error||"slow_down"===h.error}:{success:!0,tokens:{accessToken:h.accessToken,refreshToken:h.refreshToken,expiresIn:h.expiresIn,tokenType:h.tokenType}}}buildSocialLoginUrl(a,b,c){return`${g}/login?idp=${"google"===a?"Google":"Github"}&redirect_uri=${encodeURIComponent("kiro://kiro.kiroAgent/authenticate-success")}&code_challenge=${b}&code_challenge_method=S256&state=${c}&prompt=select_account`}async exchangeSocialCode(a,b){let c=await fetch(`${g}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,code_verifier:b,redirect_uri:"kiro://kiro.kiroAgent/authenticate-success"})});if(!c.ok){let a=await c.text();throw Error(`Token exchange failed: ${a}`)}let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken,profileArn:d.profileArn,expiresIn:d.expiresIn||3600}}async refreshToken(a,b={}){let{authMethod:c,clientId:f,clientSecret:h,region:i}=b;if("external_idp"===c){let c=(0,e.uo)(a,b),d=await fetch(c.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:c.body});if(!d.ok){let a=await d.text();throw Error(`Token refresh failed for external_idp: ${a}`)}let f=await d.json();return{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in,providerSpecificData:c.providerSpecificData}}if(f&&h){let b=i||"us-east-1";(0,d.S6)(b);let c=`https://oidc.${b}.amazonaws.com/token`,e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:f,clientSecret:h,refreshToken:a,grantType:"refresh_token"})});if(!e.ok){let a=await e.text();throw Error(`Token refresh failed: ${a}`)}let g=await e.json();return{accessToken:g.accessToken,refreshToken:g.refreshToken||a,profileArn:g.profileArn,expiresIn:g.expiresIn}}let j=await fetch(`${g}/refreshToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:a})});if(!j.ok){let a=await j.text();throw Error(`Token refresh failed: ${a}`)}let k=await j.json();return{accessToken:k.accessToken,refreshToken:k.refreshToken||a,profileArn:k.profileArn,expiresIn:k.expiresIn||3600}}async validateImportToken(a){if(!a.startsWith("aorAAAAAG"))throw Error("Invalid token format. Token should start with aorAAAAAG...");try{let b=await this.refreshToken(a);return{accessToken:b.accessToken,refreshToken:b.refreshToken||a,profileArn:b.profileArn,expiresIn:b.expiresIn,authMethod:"imported"}}catch(a){throw Error(`Token validation failed: ${a.message}`)}}async listAvailableProfiles(a,b="us-east-1"){(0,d.S6)(b);let c=`https://codewhisperer.${b}.amazonaws.com`,e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableProfiles",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({maxResults:10})});if(!e.ok){let a=await e.text();throw Error(`Failed to list profiles: ${a}`)}let f=await e.json(),g=Array.isArray(f?.profiles)?f.profiles:[],h=a=>a?.arn||a?.profileArn||null,i=g.find(a=>h(a)?.split(":")[3]===b)||g[0];return h(i)}async listAvailableApiKeyModels(a,b="us-east-1"){b=(0,f.yg)(b);let c=new URLSearchParams({origin:"AI_EDITOR"}),d=`https://q.${b}.amazonaws.com/ListAvailableModels?${c}`,e=await fetch(d,{method:"GET",signal:AbortSignal.timeout(1e4),headers:{Authorization:`Bearer ${a}`,TokenType:"API_KEY",Accept:"application/json","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"}});if(!e.ok){let a=await e.text();throw Error(`Failed to list API-key models: ${a}`)}let g=await e.json(),h=Array.isArray(g?.models)?g.models:[];if(0===h.length)throw Error("API key returned no available models");return h}async validateApiKey(a,b=f.nz){let c;if(!a||"string"!=typeof a||!a.trim())throw Error("API key is required");let d=a.trim(),e=String(b||f.nz).trim().toLowerCase();for(let a of e===f.nz?f.$m:[(0,f.yg)(e)])try{return await this.listAvailableApiKeyModels(d,a),{accessToken:d,refreshToken:null,profileArn:null,region:a,authMethod:"api_key"}}catch(a){c=a}throw Error(`API key validation failed in supported Kiro regions: ${c?.message||"unknown error"}`)}async listAvailableModels(a,b){let c=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableModels",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:b})});if(!c.ok){let a=await c.text();throw Error(`Failed to list models: ${a}`)}return((await c.json()).models||[]).map(a=>({id:a.modelId,name:a.modelName||a.modelId,description:a.description,rateMultiplier:a.rateMultiplier,rateUnit:a.rateUnit,maxInputTokens:a.tokenLimits?.maxInputTokens||0}))}extractEmailFromJWT(a){try{let b=a.split(".");if(3!==b.length)return null;let c=b[1];for(;c.length%4;)c+="=";let d=JSON.parse(atob(c.replace(/-/g,"+").replace(/_/g,"/")));return d.email||d.preferred_username||d.sub}catch{return null}}}},78335:()=>{},92990:(a,b,c)=>{"use strict";c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>F,S6:()=>s,SK:()=>D,Td:()=>A,Tx:()=>q,V1:()=>G,WN:()=>t,Ww:()=>H,YT:()=>n,ZL:()=>m,aV:()=>u,cD:()=>o,eD:()=>E,f7:()=>y,hF:()=>l,lB:()=>w,oe:()=>C,qp:()=>B,w1:()=>x});var d=c(21820),e=c(92675),f=c(39141);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder};({...f.sr["qoderwork-cn"]});let m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B={...f.sr["grok-cli"]};({...f.sr["codebuddy-intl"]});let C={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},D={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},E={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},F={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},G={...f.sr["frontier-for-all"]},H=3e5},96487:()=>{}};
1
+ exports.id=3245,exports.ids=[3245],exports.modules={18080:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>j,uo:()=>k});var d=c(92990);let e=new Set(["login.microsoftonline.com","login.microsoft.com","login.windows.net"]);function f(a){return"string"==typeof a?a.trim():""}function g(a){let b,c=f(a);if(!c)throw Error("token_endpoint is required");try{b=new URL(c)}catch{throw Error("token_endpoint must be a valid URL")}if("https:"!==b.protocol)throw Error("token_endpoint must use https");let d=b.hostname.toLowerCase();if(!e.has(d))throw Error("token_endpoint must be a Microsoft login endpoint");return b.toString()}function h(a){return Array.isArray(a)?a.map(f).filter(Boolean).join(" "):f(a)}function i(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4;return JSON.parse(Buffer.from(`${c}${"=".repeat(d)}`,"base64").toString("utf8"))}catch{return null}}function j(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{throw Error("CLIProxyAPI auth JSON is invalid")}if(!b||"object"!=typeof b)throw Error("CLIProxyAPI auth JSON is required");let c=f(b.auth_method||b.authMethod);if(c&&"external_idp"!==c)throw Error("Only external_idp Kiro auth is supported by this importer");let e=f(b.access_token||b.accessToken),j=f(b.refresh_token||b.refreshToken),k=f(b.client_id||b.clientId),l=g(b.token_endpoint||b.tokenEndpoint),m=f(b.profile_arn||b.profileArn),n=f(b.region)||"us-east-1",o=h(b.scopes||b.scope),p=(0,d.S6)(n);if(!e)throw Error("access_token is required");if(!j)throw Error("refresh_token is required");if(!k)throw Error("client_id is required");if(!o)throw Error("scopes is required");if(!m)throw Error("profile_arn is required");let q=i(e),r=b.email||q?.email||q?.preferred_username||q?.upn||q?.sub||null;return{accessToken:e,refreshToken:j,expiresAt:function(a){let b=a.expired||a.expires_at||a.expiresAt;if(b){let a=new Date(b).getTime();if(Number.isFinite(a))return new Date(a).toISOString()}let c=Number(a.expires_in||a.expiresIn||0);if(Number.isFinite(c)&&c>0)return new Date(Date.now()+1e3*c).toISOString();let d=i(a.access_token||a.accessToken);return d?.exp?new Date(1e3*d.exp).toISOString():new Date(Date.now()+36e5).toISOString()}(b),email:r,providerSpecificData:{profileArn:m,region:p,authMethod:"external_idp",provider:"CLIProxyAPI",clientId:k,tokenEndpoint:l,scope:o}}}function k(a,b={}){let c=f(b.clientId||b.client_id),d=g(b.tokenEndpoint||b.token_endpoint),e=h(b.scope||b.scopes);if(!a)throw Error("refresh token is required");if(!c)throw Error("clientId is required for external_idp refresh");if(!e)throw Error("scope is required for external_idp refresh");return{tokenEndpoint:d,body:new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a,scope:e}),providerSpecificData:{...b,authMethod:"external_idp",clientId:c,tokenEndpoint:d,scope:e}}}},37840:(a,b,c)=>{"use strict";c.d(b,{$m:()=>e,nz:()=>d,yg:()=>f});let d="auto",e=["us-east-1","eu-central-1"];function f(a){let b=String(a||"").trim().toLowerCase();if(!e.includes(b))throw Error("Unsupported Kiro runtime region");return b}},62409:(a,b,c)=>{"use strict";c.d(b,{v:()=>h});var d=c(92990),e=c(18080),f=c(37840);let g="https://prod.us-east-1.auth.desktop.kiro.dev";class h{async registerClient(a="us-east-1"){(0,d.S6)(a);let b=`https://oidc.${a}.amazonaws.com/client/register`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientName:d.Tx.clientName,clientType:d.Tx.clientType,scopes:d.Tx.scopes,grantTypes:d.Tx.grantTypes,issuerUrl:d.Tx.issuerUrl})});if(!c.ok){let a=await c.text();throw Error(`Failed to register client: ${a}`)}let e=await c.json();return{clientId:e.clientId,clientSecret:e.clientSecret,clientSecretExpiresAt:e.clientSecretExpiresAt}}async startDeviceAuthorization(a,b,c,e="us-east-1"){(0,d.S6)(e);let f=`https://oidc.${e}.amazonaws.com/device_authorization`,g=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,startUrl:c})});if(!g.ok){let a=await g.text();throw Error(`Failed to start device authorization: ${a}`)}let h=await g.json();return{deviceCode:h.deviceCode,userCode:h.userCode,verificationUri:h.verificationUri,verificationUriComplete:h.verificationUriComplete,expiresIn:h.expiresIn,interval:h.interval||5}}async pollDeviceToken(a,b,c,e="us-east-1"){(0,d.S6)(e);let f=`https://oidc.${e}.amazonaws.com/token`,g=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,deviceCode:c,grantType:"urn:ietf:params:oauth:grant-type:device_code"})}),h=await g.json();return!g.ok||h.error?{success:!1,error:h.error,errorDescription:h.error_description,pending:"authorization_pending"===h.error||"slow_down"===h.error}:{success:!0,tokens:{accessToken:h.accessToken,refreshToken:h.refreshToken,expiresIn:h.expiresIn,tokenType:h.tokenType}}}buildSocialLoginUrl(a,b,c){return`${g}/login?idp=${"google"===a?"Google":"Github"}&redirect_uri=${encodeURIComponent("kiro://kiro.kiroAgent/authenticate-success")}&code_challenge=${b}&code_challenge_method=S256&state=${c}&prompt=select_account`}async exchangeSocialCode(a,b){let c=await fetch(`${g}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,code_verifier:b,redirect_uri:"kiro://kiro.kiroAgent/authenticate-success"})});if(!c.ok){let a=await c.text();throw Error(`Token exchange failed: ${a}`)}let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken,profileArn:d.profileArn,expiresIn:d.expiresIn||3600}}async refreshToken(a,b={}){let{authMethod:c,clientId:f,clientSecret:h,region:i}=b;if("external_idp"===c){let c=(0,e.uo)(a,b),d=await fetch(c.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:c.body});if(!d.ok){let a=await d.text();throw Error(`Token refresh failed for external_idp: ${a}`)}let f=await d.json();return{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in,providerSpecificData:c.providerSpecificData}}if(f&&h){let b=i||"us-east-1";(0,d.S6)(b);let c=`https://oidc.${b}.amazonaws.com/token`,e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:f,clientSecret:h,refreshToken:a,grantType:"refresh_token"})});if(!e.ok){let a=await e.text();throw Error(`Token refresh failed: ${a}`)}let g=await e.json();return{accessToken:g.accessToken,refreshToken:g.refreshToken||a,profileArn:g.profileArn,expiresIn:g.expiresIn}}let j=await fetch(`${g}/refreshToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:a})});if(!j.ok){let a=await j.text();throw Error(`Token refresh failed: ${a}`)}let k=await j.json();return{accessToken:k.accessToken,refreshToken:k.refreshToken||a,profileArn:k.profileArn,expiresIn:k.expiresIn||3600}}async validateImportToken(a){if(!a.startsWith("aorAAAAAG"))throw Error("Invalid token format. Token should start with aorAAAAAG...");try{let b=await this.refreshToken(a);return{accessToken:b.accessToken,refreshToken:b.refreshToken||a,profileArn:b.profileArn,expiresIn:b.expiresIn,authMethod:"imported"}}catch(a){throw Error(`Token validation failed: ${a.message}`)}}async listAvailableProfiles(a,b="us-east-1"){(0,d.S6)(b);let c=`https://codewhisperer.${b}.amazonaws.com`,e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableProfiles",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({maxResults:10})});if(!e.ok){let a=await e.text();throw Error(`Failed to list profiles: ${a}`)}let f=await e.json(),g=Array.isArray(f?.profiles)?f.profiles:[],h=a=>a?.arn||a?.profileArn||null,i=g.find(a=>h(a)?.split(":")[3]===b)||g[0];return h(i)}async listAvailableApiKeyModels(a,b="us-east-1"){b=(0,f.yg)(b);let c=new URLSearchParams({origin:"AI_EDITOR"}),d=`https://q.${b}.amazonaws.com/ListAvailableModels?${c}`,e=await fetch(d,{method:"GET",signal:AbortSignal.timeout(1e4),headers:{Authorization:`Bearer ${a}`,TokenType:"API_KEY",Accept:"application/json","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"}});if(!e.ok){let a=await e.text();throw Error(`Failed to list API-key models: ${a}`)}let g=await e.json(),h=Array.isArray(g?.models)?g.models:[];if(0===h.length)throw Error("API key returned no available models");return h}async validateApiKey(a,b=f.nz){let c;if(!a||"string"!=typeof a||!a.trim())throw Error("API key is required");let d=a.trim(),e=String(b||f.nz).trim().toLowerCase();for(let a of e===f.nz?f.$m:[(0,f.yg)(e)])try{return await this.listAvailableApiKeyModels(d,a),{accessToken:d,refreshToken:null,profileArn:null,region:a,authMethod:"api_key"}}catch(a){c=a}throw Error(`API key validation failed in supported Kiro regions: ${c?.message||"unknown error"}`)}async listAvailableModels(a,b){let c=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableModels",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:b})});if(!c.ok){let a=await c.text();throw Error(`Failed to list models: ${a}`)}return((await c.json()).models||[]).map(a=>({id:a.modelId,name:a.modelName||a.modelId,description:a.description,rateMultiplier:a.rateMultiplier,rateUnit:a.rateUnit,maxInputTokens:a.tokenLimits?.maxInputTokens||0}))}extractEmailFromJWT(a){try{let b=a.split(".");if(3!==b.length)return null;let c=b[1];for(;c.length%4;)c+="=";let d=JSON.parse(atob(c.replace(/-/g,"+").replace(/_/g,"/")));return d.email||d.preferred_username||d.sub}catch{return null}}}},78335:()=>{},92990:(a,b,c)=>{"use strict";c.d(b,{DI:()=>i,DV:()=>B,LT:()=>j,MZ:()=>u,Nl:()=>y,Nu:()=>o,OV:()=>h,RY:()=>F,S6:()=>r,SK:()=>D,Td:()=>z,Tx:()=>p,V1:()=>G,WN:()=>s,Ww:()=>H,YT:()=>m,ZL:()=>l,aV:()=>t,cD:()=>n,eD:()=>E,f7:()=>x,hF:()=>k,lB:()=>v,oe:()=>C,qp:()=>A,w1:()=>w});var d=c(21820),e=c(92675),f=c(39141);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]};({...f.sr.qwen});let k={...f.sr.qoder};({...f.sr["qoderwork-cn"]});let l={...f.sr.iflow},m={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function n(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let o={...f.sr.github},p={...f.sr.kiro},q=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function r(a){if("string"!=typeof a||!q.test(a))throw Error("Invalid region");return a}let s={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},t={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},u={...f.sr.kilocode},v={...f.sr.cline},w={...f.sr.clinepass},x={...f.sr.gitlab},y={...f.sr["codebuddy-cn"]},z={...f.sr.kimchi},A={...f.sr["grok-cli"]},B={...f.sr["codebuddy-intl"]},C={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},D={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},E={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},F={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},G={...f.sr["frontier-for-all"]},H=3e5},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=3252,exports.ids=[3252],exports.modules={2364:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>P,OPTIONS:()=>O,buildModelsList:()=>L,fetchCompatibleModelIds:()=>G,getCachedModelsList:()=>N,getModelListPolicy:()=>R});var d=c(81329),e=c(40615),f=c(89718),g=c(23433),h=c(99471),i=c(38775),j=c(16655),k=c(74452),l=c(50287),m=c(58569),n=c(86925),o=c(9155),p=c(89843),q=c(28730),r=c(85640),s=c(11847);let t=new Map;async function u(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,p.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${q.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${q.x0.COPILOT_CHAT_VERSION}`,"user-agent":q.x0.USER_AGENT,"x-github-api-version":q.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function v(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=t.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await u(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,r.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await u(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;if(!a||b.has(a))continue;b.add(a);let e=d.capabilities||{},f=e.limits||{},g=e.supports||{},h={...(0,s.getCapabilitiesForModel)("github",a),...Number.isFinite(f.max_context_window_tokens)?{contextWindow:f.max_context_window_tokens}:{},...Number.isFinite(f.max_prompt_tokens)?{maxPrompt:f.max_prompt_tokens}:{},...Number.isFinite(f.max_output_tokens)?{maxOutput:f.max_output_tokens}:{},..."boolean"==typeof g.vision?{vision:g.vision}:{},..."boolean"==typeof g.tool_calls?{tools:g.tool_calls}:{},...!0===g.adaptive_thinking||Array.isArray(g.reasoning_effort)?{reasoning:!0}:{}};c.push({id:a,name:d.name||a,capabilities:h})}return c}(c);return g.length?(t.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var w=c(40694),x=c(63123),y=c(26588);c(49934);var z=c(32892),A=c(67828),B=c(39326);let C={kiro:async a=>{let b=await (0,m.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,o.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async a=>{let b=await (0,n.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},github:async a=>{let b=await v({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,A.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await (0,w.P)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},cline:async a=>{let b=await (0,w.M)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,B.B)(a.providerSpecificData||{}),c=await (0,x.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,A.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,y.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},D="x-9r-internal-models-fetch",E={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function F(a){let b=a?.kind||a?.type;return b&&E[b]||"llm"}async function G(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:{...d,[D]:"1"},cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function H(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}function I(a,b){let c=a?.kind||"llm";return b.includes(c)}let J=["vision","pdf","audioInput","videoInput","imageOutput","audioOutput","search","tools","reasoning","thinkingCanDisable","thinkingEffortSupported"];function K(a,b){let c={id:a.name,object:"model",owned_by:"combo"};if("webSearch"===a.kind||"webFetch"===a.kind)c.kind=a.kind;else{let d=function a(b,c,d=new Set){if(!Array.isArray(b)||0===b.length)return null;let e={...s.DEFAULT_CAPABILITIES},f=!1,g=!1;for(let h of b){let b;if("string"==typeof h){if(h.includes("/")){let{provider:a,model:c}=(0,i.Xh)(h);b=(0,s.getCapabilitiesForModel)(a,c)}else if(c?.has(h)){if(d.has(h))continue;d.add(h),b=a(c.get(h).models,c,d)}else b=(0,s.getCapabilitiesForModel)(null,h);if(b){for(let a of J)b[a]&&(e[a]=!0);null===e.thinkingFormat&&null!=b.thinkingFormat&&(e.thinkingFormat=b.thinkingFormat),null===e.thinkingRange&&null!=b.thinkingRange&&(e.thinkingRange=b.thinkingRange),Number.isFinite(b.contextWindow)&&(e.contextWindow=g?Math.min(e.contextWindow,b.contextWindow):b.contextWindow),Number.isFinite(b.maxOutput)&&(e.maxOutput=g?Math.min(e.maxOutput,b.maxOutput):b.maxOutput),f=!0,g=!0}}}return f?e:null}(a.models,b);d&&(c.capabilities=d,c.context_length=d.contextWindow,c.max_completion_tokens=d.maxOutput)}return c}async function L(a,b={}){let c=!0===b.skipDynamicFetch,g=[],i=!1;try{g=(g=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){i=!0,console.log("Could not fetch providers, returning all models")}let k=[];try{k=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let l=new Map(k.map(a=>[a.name,a])),m={};try{m=await (0,f.mt)()}catch(a){console.log("Could not fetch settings, using defaults")}if(m.exposeComboOnly){let b=new Set,c=[];for(let d of k){if(!I(d,a))continue;let e=K(d,l);b.has(e.id)||(b.add(e.id),c.push(e))}return c}let n=[];try{n=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let o={};try{o=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let p={};try{p=await (0,j.vF)()}catch(a){console.log("Could not fetch disabled models")}let q=(a,b)=>Array.isArray(p[a])&&p[a].includes(b),r=new Map;for(let a of g)r.has(a.provider)||r.set(a.provider,a);let t=[];for(let b of k){if(!I(b,a))continue;let c=K(b,l);t.push(c)}if(0===g.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a])),c=new Set;if(!i)for(let a of z.default)(!0===a.noAuth||a.transport?.noAuth===!0)&&c.add(a.id);for(let[e,f]of Object.entries(d.vq)){let d=b[e]||e;if(H(d,a)&&(i||c.has(d)))for(let b of f)a.includes(F(b))&&(q(e,b.id)||t.push({id:`${e}/${b.id}`,object:"model",owned_by:e}))}for(let b of n){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&t.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,f]of r.entries()){if(!H(b,a))continue;let g=d.Xg[b]||b,h=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||g).trim(),i=d.vq[g]||[],j=f?.providerSpecificData?.enabledModels,k=Array.isArray(j)&&j.length>0,l=(0,e.mq)(b)||(0,e.gb)(b),m=new Map(i.map(a=>[a.id,F(a)])),p=new Map,r=new Map,u=k?Array.from(new Set(j.filter(a=>"string"==typeof a&&""!==a.trim()))):i.map(a=>a.id),v=l&&n.some(a=>{if(!a?.id)return!1;let c=a.providerAlias;return c===g||c===h||c===b});!l||0!==u.length||v||c||(u=await G(f));let w=C[b];if(w&&!k)try{let a=await w(f);a?.models?.length&&(u=a.models.map(a=>a.id),p=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,F(a)])),r=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let x=u.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),y=new Map,z=new Map;for(let c of Array.from(new Set([...x,...n.filter(c=>{if(!c?.id)return!1;let e=(0,d.CP)(c)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=c.providerAlias;return f===g||f===h||f===b}).map(a=>{let b=String(a.id).trim();return b&&(y.set(b,(0,d.CP)(a)||"llm"),a.caps&&"object"==typeof a.caps&&z.set(b,a.caps)),b}).filter(a=>""!==a),...Object.values(o||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=y.get(c),e=p.get(c),f=d||e||m.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),i="imageToText"===f&&a.includes("llm");if(!a.includes(f)&&!i||q(h,c)||q(g,c))continue;let j={id:`${h}/${c}`,object:"model",owned_by:h},k=r.get(c)||(0,s.capabilitiesFromServiceKind)(d||e)||("llm"===f?(0,s.getCapabilitiesForModel)(b,c):null),l=(0,s.withDeclaredCapabilities)(k,z.get(c));if(l&&(j.capabilities=l),"llm"===f||i){let a=l?.contextWindow,d=l?.maxOutput;if(!Number.isFinite(a)||!Number.isFinite(d)){let e=(0,s.getCapabilitiesForModel)(b,c);Number.isFinite(a)||(a=e.contextWindow),Number.isFinite(d)||(d=e.maxOutput)}Number.isFinite(a)&&(j.context_length=a),Number.isFinite(d)&&(j.max_completion_tokens=d)}t.push(j)}let A=e.AI_PROVIDERS[b];a.includes("webSearch")&&A?.searchConfig&&t.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&A?.fetchConfig&&t.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let u=[],v=new Set;for(let a of t)!a?.id||v.has(a.id)||(v.add(a.id),u.push(a));if(a.includes("llm")){let b=new Set;for(let a of g){let c=a.provider,f=d.Xg[c]||c,g=(a?.providerSpecificData?.prefix||(0,e.wG)(c)||f).trim();b.add(g),b.add(f),b.add(c)}for(let c of n){if(!c?.id)continue;let e=(0,d.CP)(c)||"llm",f="imageToText"===e;if(!a.includes(e)&&!f)continue;let g=c.providerAlias;if(!g||b.has(g))continue;let h=String(c.id).trim();if(!h||q(g,h))continue;let i=`${g}/${h}`;if(v.has(i))continue;v.add(i);let j={id:i,object:"model",owned_by:g},k=(0,s.getCapabilitiesForModel)(g,h);k&&(j.capabilities=k),Number.isFinite(k?.contextWindow)&&(j.context_length=k.contextWindow),Number.isFinite(k?.maxOutput)&&(j.max_completion_tokens=k.maxOutput),u.push(j)}for(let a of(await (0,h.Y)())){if(!a?.id)continue;let b=String(a.id).trim();if(!b||q("oc",b))continue;let c=`oc/${b}`;if(v.has(c))continue;v.add(c);let d={id:c,object:"model",owned_by:"oc"},e=(0,s.getCapabilitiesForModel)("oc",b);e&&(d.capabilities=e),Number.isFinite(e?.contextWindow)&&(d.context_length=e.contextWindow),Number.isFinite(e?.maxOutput)&&(d.max_completion_tokens=e.maxOutput),u.push(d)}}let w=b.apiKey,x=w?.allowedModels;return Array.isArray(x)&&0!==x.length?u.filter(a=>x.includes(a.id)):u}let M=new Map;async function N(a,b={}){var c,d;let e=(c=!0===b.skipDynamicFetch,d=b.apiKey?.id,`${c?"internal":"full"}::${d||"public"}::${a.join("|")}`),f=M.get(e);if(!0===b.forceFresh){let c=await L(a,b);return M.set(e,{data:c,builtAt:Date.now()}),c}if(f?.building)return f.data??f.building;if(f&&Date.now()-f.builtAt<3e4)return f.data;let g=L(a,b).then(a=>{let b=M.get(e),c=Array.isArray(b?.data)&&b.data.length>0;return 0===a.length&&c?b.data:(M.set(e,{data:a,builtAt:Date.now()}),a)}).catch(a=>{let b=M.get(e);throw b?.data?M.set(e,{data:b.data,builtAt:b.builtAt}):M.delete(e),a});return(M.set(e,f?{...f,building:g}:{data:null,builtAt:0,building:g}),f)?(g.catch(()=>{}),f.data):g}async function O(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function P(a){try{let b=a?.headers?.get(D)==="1",c=await R(a);if(c.error)return Response.json({error:{message:"Invalid API key",type:"authentication_error"}},{status:401,headers:{"Access-Control-Allow-Origin":"*"}});let d=await N(["llm"],{skipDynamicFetch:b,apiKey:c.key}),e=(0,g.Tr)(a),f=e?await (0,k.getApiKeyScopeByKey)(e):null;return Response.json({object:"list",data:(0,l.C)(d,f)},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}async function Q(a){let b=(0,g.Tr)(a);if(!b)return{present:!1,key:null};let c=await (0,f.y7)(b),d=c?.expiresAt&&new Date(c.expiresAt).getTime()<=Date.now();return{present:!0,key:c?.isActive&&!d?c:null}}async function R(a){let b=await (0,f.mt)(),c=await Q(a);return b.requireApiKey&&!c.key||c.present&&!c.key?{error:!0}:{key:c.key}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(6816)},26588:(a,b,c)=>{c.d(b,{FD:()=>l});var d=c(55511),e=c(73496),f=c(39141),g=c(29790),h=c(33026);let i=new Map;function j(a,b){let c=a.get(b)?.[0]?.value;return c&&"number"!=typeof c?Buffer.from(c).toString("utf8"):""}async function k(a,b){var c;let d,i=a?.accessToken,k=a?.providerSpecificData?.machineId,l=(d=f.sr.cursor,d?.agentEndpoint&&d?.modelsEndpoint?`${d.agentEndpoint.replace(/\/$/,"")}${d.modelsEndpoint}`:null);if(!i||!k||!l)return null;let m={...(0,g.JA)(i,k,a?.providerSpecificData?.ghostMode!==!1),accept:"application/proto","content-type":"application/proto"};delete m["connect-accept-encoding"],delete m["connect-protocol-version"];let n=await (c=new Uint8Array,new Promise((a,d)=>{let f=new URL(l),g=e.connect(`https://${f.host}`),h=[],i={},j=!1,k=a=>(...b)=>{if(!j){j=!0,clearTimeout(n);try{g.close()}catch{}a(...b)}},n=setTimeout(k(()=>{d(Error("Cursor GetUsableModels timed out"))}),1e4);g.on("error",k(d));let o=g.request({":method":"POST",":path":f.pathname,":authority":f.host,":scheme":"https",...m});if(o.on("response",a=>{i=a}),o.on("data",a=>{h.push(a)}),o.on("end",k(()=>{a({status:Number(i[":status"]||0),body:Buffer.concat(h)})})),o.on("error",k(d)),b){let a=k(()=>d(Error("Request aborted")));b.aborted?a():b.addEventListener("abort",a,{once:!0})}o.end(c&&c.length?Buffer.from(c):void 0)}));if(200!==n.status){let a=Error(`Cursor GetUsableModels returned ${n.status}`);throw a.status=n.status,a}return function(a){let b=(0,h.Y8)(a),c=new Set,d=[];for(let a of b.get(1)||[]){if(!a?.value||"number"==typeof a.value)continue;let b=(0,h.Y8)(a.value),e=j(b,1).trim();if(!e||c.has(e))continue;c.add(e);let f=(j(b,4)||j(b,5)||j(b,3)||e).trim();d.push({id:e,name:f})}return d}(new Uint8Array(n.body))}async function l(a,b={}){let c;if(!a?.accessToken||!a?.providerSpecificData?.machineId)return b.log?.debug?.("CURSOR_MODELS","No Cursor access token or machine ID; skipping live fetch"),null;let e=(c=[a?.providerSpecificData?.machineId,a?.accessToken].filter(Boolean).join(":"))?d.createHash("sha256").update(`cursor:${c}`).digest("hex"):"cursor-anonymous",f=Date.now();if(!b.forceRefresh){let a=i.get(e);if(a?.expiresAt>f)return{models:a.models}}try{let c=await k(a,b.signal);if(!c?.length)return null;return i.set(e,{expiresAt:f+3e5,models:c}),{models:c}}catch(a){return b.log?.warn?.("CURSOR_MODELS",`Live model fetch failed: ${a?.message||a}`),null}}},38775:(a,b,c)=>{c.d(b,{Xh:()=>h,d_:()=>k,mA:()=>i,pe:()=>l});var d=c(89718),e=c(66451),f=c(99471);c(32892);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};function h(a){let b=(0,e.Xh)(a);return b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b}async function i(a){let b=h(a);if(!b.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);if(e)return{provider:e.id,model:b.model};let f=(await (0,d.Fh)({type:"custom-video"})).find(a=>a.prefix===b.providerAlias);return f?{provider:f.id,model:b.model}:{provider:b.provider,model:b.model}}if(await (0,d.Dj)(b.model))return{provider:null,model:b.model};let c=await j(b.model);return c||(0,e.js)(a,d.OM)}async function j(a){try{let b=(await (0,d.uv)()).find(b=>b&&b.id===a&&("llm"===b.type||!b.type));if(b&&b.providerAlias)return{provider:(0,e.g2)(b.providerAlias),model:b.id}}catch{}try{let b=await (0,d.OM)(),c=(0,e.sc)(a,b);if(c)return c}catch{}let b=(0,e.PN)(a);if(b)return{provider:b,model:a};try{let b=await (0,f.w)(a);if(b)return b}catch{}return null}async function k(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}async function l(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b?{models:b.models||[],members:b.members||(b.models||[]).map(a=>({id:a,weight:1})),policy:b.policy||null,accountPolicy:b.accountPolicy||null,fusion:b.fusion||null,config:b.config||null,name:b.name,kind:b.kind}:null}},40694:(a,b,c)=>{c.d(b,{M:()=>g,P:()=>f});var d=c(7866);async function e(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let e=new AbortController,f=setTimeout(()=>e.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,d.w$)(c,{Accept:"application/json"}),f=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:e.signal});if(!f.ok)return null;let g=await f.json(),h=Array.isArray(g)?g:g?.data;return Array.isArray(h)?h:null}catch{return null}finally{clearTimeout(f)}}async function f(a){let b=await e(a);if(!b)return null;let c=b.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return c.length?{models:c}:null}async function g(a){let b=await e(a);if(!b)return null;let c=b.filter(a=>"string"==typeof a?.id&&""!==a.id.trim()).map(a=>({id:a.id,name:a.name||a.id}));return c.length?{models:c}:null}},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Ib:()=>e,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(87252);function e(a,b=Date.now()){let c;if(!a)return null;let d="string"==typeof a?a:JSON.stringify(a);if(c=d.match(/"?retry[_-]?delay"?\s*[:=]\s*"?\s*([0-9]+(?:\.[0-9]+)?)\s*s/i))return Math.round(1e3*parseFloat(c[1]));if(c=d.match(/"?(?:resets?_at|x-?ratelimit-?reset|ratelimit-?reset)"?\s*[:=]\s*"?\s*([0-9]{9,})/i)){let a=parseInt(c[1],10);a<1e12&&(a*=1e3);let d=a-b;return d>0?d:null}return(c=d.match(/"?retry[_-]?after"?\s*[:=]\s*"?\s*([0-9]+)\b/i))?1e3*parseInt(c[1],10):null}function f(a,b,c=0){let g=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"",h=g.includes("invalid_encrypted_content")||g.includes("encrypted content")&&(g.includes("could not be verified")||g.includes("could not be decrypted or parsed"));if(400===a&&h)return{shouldFallback:!1,cooldownMs:0};if(d.t2.find(b=>b.status===a&&!1===b.fallback))return{shouldFallback:!1,cooldownMs:0,newBackoffLevel:c};for(let f of d.t2)if(f.pattern&&g&&f.pattern.test(g)||f.text&&g&&g.includes(f.text)||f.status&&f.status===a){if(f.permanent||!1===f.fallback)return{shouldFallback:!1,cooldownMs:0};if(f.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a,b){let c=function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),f=e(b);return null!=f&&f>0?Math.min(Math.max(f,c),d.fh):c}(a,b),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:f.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=Date.now(),d=a=>{if(!a)return!1;let b=new Date(a).getTime();return Number.isFinite(b)&&b>c};return d(a[j(b)])||d(a[i])}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},50287:(a,b,c)=>{c.d(b,{C:()=>e});var d=c(29686);function e(a,b){return b&&Array.isArray(a)?a.filter(a=>(0,d.MH)(b,a?.id)):a}},63123:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(13247),e=c(18129),f=c(89843);let g=`${d.Nr}/models`;async function h(a,b={}){let{fetchFn:c=f.proxyAwareFetch,log:i=console,proxyOptions:j=null,onCredentialsRefreshed:k}=b,l=a?.accessToken;if(!l)return{models:[],warning:"Grok CLI access token is missing."};let m=b=>c(g,{method:"GET",headers:function(a,b={}){let c={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":d.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-version":d.uG,"x-grok-client-identifier":d.rK,"x-grok-client-mode":"headless"},e=b?.email,f=b?.userId||b?.principalId;return e&&(c["x-email"]=e),f&&(c["x-userid"]=f),c}(b,a?.providerSpecificData)},j);try{let b=await m(l);if((401===b.status||403===b.status)&&a?.refreshToken){let c=await (0,e.Vq)("grok-cli",a,i,j);if(c?.accessToken){l=c.accessToken;try{await k?.(c)}catch(a){i?.warn?.("Grok CLI credential persistence failed",a)}b=await m(l)}}if(!b.ok){let a=await b.text().catch(()=>"");return{models:[],warning:`Grok CLI model discovery failed (${b.status})${a?`: ${a.slice(0,160)}`:""}`}}let c=function(a){let b,c=new Set,e=[];for(let[f,g]of(b=Array.isArray(a)?a:a?.data??a?.models??a?.results??[],Array.isArray(b)?b.map(a=>[null,a]):b&&"object"==typeof b?Object.entries(b):[])){let a="string"==typeof g?{id:g}:g;if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=String(a.id??a.model_id??a.modelId??a.model??a.slug??f??a.name??"").trim();if(!b||c.has(b))continue;c.add(b);let h={...a,id:b,name:a.display_name??a.displayName??a.name??b},i=Number(a.context_length??a.contextLength??a.context_window??a.contextWindow),j=Number(a.max_output_tokens??a.maxOutputTokens);Number.isFinite(i)&&i>0&&(h.contextLength=i),Number.isFinite(j)&&j>0&&(h.maxOutputTokens=j),b===d.to&&(h.contextLength||=5e5,h.maxOutputTokens||=64e3),e.push(h)}return e}(await b.json());return c.length?{models:c}:{models:[],warning:"Grok CLI returned no selectable models."}}catch(a){return{models:[],warning:`Grok CLI model discovery failed: ${a.message}`}}}},66451:(a,b,c)=>{c.d(b,{PN:()=>j,Xh:()=>k,g2:()=>i,js:()=>m,sc:()=>l});var d=c(32892),e=c(29485);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.default)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i(a){return f[a]||a}function j(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return i(b[0]);let c=b.find(b=>a.startsWith(b));return c?i(c):null}function k(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:i(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function l(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:i(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:i(c.provider),model:c.model}:null}async function m(a,b){let c=k(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=l(c.model,d)||l(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":n.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let n=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},68001:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(38071);let e=["big-pickle"],f=new Set(["deepseek-v4-flash-free"]),g={"openrouter-free":a=>a.filter(a=>a.pricing?.prompt==="0"&&a.pricing?.completion==="0"&&a.context_length>=2e5).map(a=>({id:a.id,name:a.name,contextLength:a.context_length})).sort((a,b)=>b.contextLength-a.contextLength),"opencode-free":a=>a.filter(a=>(a.id?.endsWith("-free")||e.includes(a.id))&&!f.has(a.id)).map(a=>({id:a.id,name:a.id})),"mimo-free":a=>(Array.isArray(a)?a:[]).filter(a=>a.id?.startsWith("mimo")||a.name?.toLowerCase().includes("mimo")).map(a=>({id:a.id,name:a.name||a.id})),"nous-free":d.pD,"airforce-free":a=>(Array.isArray(a)?a:[]).filter(a=>("free"===a.tier||a.id?.endsWith(":free"))&&!0===a.supports_chat&&(!a.media_type||"chat"===a.media_type||"text"===a.media_type)).map(a=>({id:a.id,name:a.name||a.id,contextLength:a.context_length})).sort((a,b)=>String(a.id).localeCompare(String(b.id)))}},81329:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,bs:()=>g,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(29485);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b,g={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},99471:(a,b,c)=>{c.d(b,{Y:()=>k,w:()=>j});var d=c(68001);let e=null,f=0,g=null;async function h(){let a=new AbortController,b=setTimeout(()=>a.abort(),5e3);try{let b=await fetch("https://opencode.ai/zen/v1/models",{signal:a.signal});if(!b.ok)return e||[];let c=await b.json(),g=c.data??c.models??c,h=d.S["opencode-free"](Array.isArray(g)?g:[]);return e=h,f=Date.now(),h}catch{return e||[]}finally{clearTimeout(b)}}async function i(){if(e&&Date.now()-f<6e5)return e;if(!g){g=h();try{return await g}finally{g=null}}return g}async function j(a){let b=(await i()).find(b=>b&&b.id===a);return b?{provider:"opencode",model:b.id}:"big-pickle"===a||String(a).endsWith("-free")?{provider:"opencode",model:a}:null}async function k(){return await i()}}};
1
+ "use strict";exports.id=3252,exports.ids=[3252],exports.modules={2364:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>Q,OPTIONS:()=>P,buildModelsList:()=>M,fetchCompatibleModelIds:()=>H,getCachedModelsList:()=>O,getModelListPolicy:()=>S});var d=c(81329),e=c(40615),f=c(89718),g=c(23433),h=c(99471),i=c(38775),j=c(16655),k=c(74452),l=c(50287),m=c(72162),n=c(58569),o=c(86925),p=c(9155),q=c(89843),r=c(28730),s=c(85640),t=c(11847);let u=new Map;async function v(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,q.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${r.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${r.x0.COPILOT_CHAT_VERSION}`,"user-agent":r.x0.USER_AGENT,"x-github-api-version":r.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function w(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=u.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await v(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,s.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await v(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set(["auto"]),c=[{id:"auto",name:"Auto"}];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;if(!a||b.has(a))continue;b.add(a);let e=d.capabilities||{},f=e.limits||{},g=e.supports||{},h={...(0,t.getCapabilitiesForModel)("github",a),...Number.isFinite(f.max_context_window_tokens)?{contextWindow:f.max_context_window_tokens}:{},...Number.isFinite(f.max_prompt_tokens)?{maxPrompt:f.max_prompt_tokens}:{},...Number.isFinite(f.max_output_tokens)?{maxOutput:f.max_output_tokens}:{},..."boolean"==typeof g.vision?{vision:g.vision}:{},..."boolean"==typeof g.tool_calls?{tools:g.tool_calls}:{},...!0===g.adaptive_thinking||Array.isArray(g.reasoning_effort)?{reasoning:!0}:{}};c.push({id:a,name:d.name||a,capabilities:h})}return c}(c);return g.length?(u.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var x=c(40694),y=c(63123),z=c(26588);c(49934);var A=c(30717),B=c(67828),C=c(39326);let D={kiro:async a=>{let b=await (0,n.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,p.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async a=>{let b=await (0,o.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},github:async a=>{let b=await w({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,B.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await (0,x.P)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},cline:async a=>{let b=await (0,x.M)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,C.B)(a.providerSpecificData||{}),c=await (0,y.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,B.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,z.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},E="x-9r-internal-models-fetch",F={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function G(a){let b=a?.kind||a?.type;return b&&F[b]||"llm"}async function H(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:{...d,[E]:"1"},cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function I(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}function J(a,b){let c=a?.kind||"llm";return b.includes(c)}let K=["vision","pdf","audioInput","videoInput","imageOutput","audioOutput","search","tools","reasoning","thinkingCanDisable","thinkingEffortSupported"];function L(a,b){let c={id:a.name,object:"model",owned_by:"combo"};if("webSearch"===a.kind||"webFetch"===a.kind)c.kind=a.kind;else{let d=function a(b,c,d=new Set){if(!Array.isArray(b)||0===b.length)return null;let e={...t.DEFAULT_CAPABILITIES},f=!1,g=!1,h=!1;for(let j of b){let b,k="string"==typeof j?j.trim():String(j?.model||j?.id||"").trim();if(k){if(k.includes("/")){let{provider:a,model:c}=(0,i.Xh)(k);b=(0,t.getCapabilitiesForModel)(a,c)}else if(c?.has(k)){if(d.has(k))continue;d.add(k),b=a(c.get(k).models,c,d)}else b=(0,t.getCapabilitiesForModel)(null,k);if(b){for(let a of K)b[a]&&(e[a]=!0);null===e.thinkingFormat&&null!=b.thinkingFormat&&(e.thinkingFormat=b.thinkingFormat),null===e.thinkingRange&&null!=b.thinkingRange&&(e.thinkingRange=b.thinkingRange),Number.isFinite(b.contextWindow)&&b.contextWindow>0&&(e.contextWindow=g?Math.min(e.contextWindow,b.contextWindow):b.contextWindow,g=!0),Number.isFinite(b.maxOutput)&&b.maxOutput>0&&(e.maxOutput=h?Math.min(e.maxOutput,b.maxOutput):b.maxOutput,h=!0),f=!0}}}return f?e:null}(a.models,b);d&&(c.capabilities=d,c.context_length=d.contextWindow,c.max_completion_tokens=d.maxOutput)}return c}async function M(a,b={}){let c=!0===b.skipDynamicFetch,g=[],i=!1;try{g=(g=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){i=!0,console.log("Could not fetch providers, returning all models")}let k=[];try{k=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let l=new Map(k.map(a=>[a.name,a])),n={};try{n=await (0,f.mt)()}catch(a){console.log("Could not fetch settings, using defaults")}if(n.exposeComboOnly){let b=new Set,c=[];for(let d of k){if(!J(d,a))continue;let e=L(d,l);b.has(e.id)||(b.add(e.id),c.push(e))}return c}let o=[];try{o=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let p={};try{p=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let q={};try{q=await (0,j.vF)()}catch(a){console.log("Could not fetch disabled models")}let r=(a,b)=>Array.isArray(q[a])&&q[a].includes(b),s={};try{s=await (0,m.Kz)()}catch(a){console.log("Could not fetch enabled models")}let u=(a,b)=>{let c=d.Xg[a]||a;for(let d of[s[(b?.providerSpecificData?.prefix||(0,e.wG)(a)||c).trim()],s[c],s[a],b?.providerSpecificData?.enabledModels]){if(!Array.isArray(d))continue;let a=Array.from(new Set(d.filter(a=>"string"==typeof a&&""!==a.trim())));if(a.length>0)return a}return[]},v=new Map;for(let a of g)v.has(a.provider)||v.set(a.provider,a);let w=[];for(let b of k){if(!J(b,a))continue;let c=L(b,l);w.push(c)}if(0===g.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a])),c=new Set;if(!i)for(let a of A.default)(!0===a.noAuth||a.transport?.noAuth===!0)&&c.add(a.id);for(let[e,f]of Object.entries(d.vq)){let d=b[e]||e;if(!I(d,a)||!i&&!c.has(d))continue;let g=u(d,null);for(let b of f)a.includes(G(b))&&(!(g.length>0)||g.includes(b.id))&&(r(e,b.id)||w.push({id:`${e}/${b.id}`,object:"model",owned_by:e}))}for(let b of o){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&w.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,f]of v.entries()){if(!I(b,a))continue;let g=d.Xg[b]||b,h=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||g).trim(),i=d.vq[g]||[],j=u(b,f),k=j.length>0,l=(0,e.mq)(b)||(0,e.gb)(b),m=new Map(i.map(a=>[a.id,G(a)])),n=new Map,q=new Map,s=k?j:i.map(a=>a.id),v=l&&o.some(a=>{if(!a?.id)return!1;let c=a.providerAlias;return c===g||c===h||c===b});!l||0!==s.length||v||c||(s=await H(f));let x=D[b];if(x&&!k)try{let a=await x(f);a?.models?.length&&(s=a.models.map(a=>a.id),n=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,G(a)])),q=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let y=s.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),z=new Map,A=new Map;for(let c of Array.from(new Set([...y,...o.filter(c=>{if(!c?.id)return!1;let e=(0,d.CP)(c)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=c.providerAlias;return f===g||f===h||f===b}).map(a=>{let b=String(a.id).trim();return b&&(z.set(b,(0,d.CP)(a)||"llm"),a.caps&&"object"==typeof a.caps&&A.set(b,a.caps)),b}).filter(a=>""!==a),...Object.values(p||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=z.get(c),e=n.get(c),f=d||e||m.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),i="imageToText"===f&&a.includes("llm");if(!a.includes(f)&&!i||r(h,c)||r(g,c))continue;let j={id:`${h}/${c}`,object:"model",owned_by:h},k=q.get(c)||(0,t.capabilitiesFromServiceKind)(d||e)||("llm"===f?(0,t.getCapabilitiesForModel)(b,c):null),l=(0,t.withDeclaredCapabilities)(k,A.get(c));if(l&&(j.capabilities=l),"llm"===f||i){let a=l?.contextWindow,d=l?.maxOutput;if(!Number.isFinite(a)||!Number.isFinite(d)){let e=(0,t.getCapabilitiesForModel)(b,c);Number.isFinite(a)||(a=e.contextWindow),Number.isFinite(d)||(d=e.maxOutput)}Number.isFinite(a)&&(j.context_length=a),Number.isFinite(d)&&(j.max_completion_tokens=d)}w.push(j)}let B=e.AI_PROVIDERS[b];a.includes("webSearch")&&B?.searchConfig&&w.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&B?.fetchConfig&&w.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let x=[],y=new Set;for(let a of w)!a?.id||y.has(a.id)||(y.add(a.id),x.push(a));if(a.includes("llm")){let b=new Set;for(let a of g){let c=a.provider,f=d.Xg[c]||c,g=(a?.providerSpecificData?.prefix||(0,e.wG)(c)||f).trim();b.add(g),b.add(f),b.add(c)}for(let c of o){if(!c?.id)continue;let e=(0,d.CP)(c)||"llm",f="imageToText"===e;if(!a.includes(e)&&!f)continue;let g=c.providerAlias;if(!g||b.has(g))continue;let h=String(c.id).trim();if(!h||r(g,h))continue;let i=`${g}/${h}`;if(y.has(i))continue;y.add(i);let j={id:i,object:"model",owned_by:g},k=(0,t.getCapabilitiesForModel)(g,h);k&&(j.capabilities=k),Number.isFinite(k?.contextWindow)&&(j.context_length=k.contextWindow),Number.isFinite(k?.maxOutput)&&(j.max_completion_tokens=k.maxOutput),x.push(j)}for(let a of(await (0,h.Y)())){if(!a?.id)continue;let b=String(a.id).trim();if(!b||r("oc",b))continue;let c=`oc/${b}`;if(y.has(c))continue;y.add(c);let d={id:c,object:"model",owned_by:"oc"},e=(0,t.getCapabilitiesForModel)("oc",b);e&&(d.capabilities=e),Number.isFinite(e?.contextWindow)&&(d.context_length=e.contextWindow),Number.isFinite(e?.maxOutput)&&(d.max_completion_tokens=e.maxOutput),x.push(d)}}let z=b.apiKey,B=z?.allowedModels;return Array.isArray(B)&&0!==B.length?x.filter(a=>B.includes(a.id)):x}let N=new Map;async function O(a,b={}){var c,d;let e=(c=!0===b.skipDynamicFetch,d=b.apiKey?.id,`${c?"internal":"full"}::${d||"public"}::${a.join("|")}`),f=N.get(e);if(!0===b.forceFresh){let c=await M(a,b);return N.set(e,{data:c,builtAt:Date.now()}),c}if(f?.building)return f.data??f.building;if(f&&Date.now()-f.builtAt<3e4)return f.data;let g=M(a,b).then(a=>{let b=N.get(e),c=Array.isArray(b?.data)&&b.data.length>0;return 0===a.length&&c?b.data:(N.set(e,{data:a,builtAt:Date.now()}),a)}).catch(a=>{let b=N.get(e);throw b?.data?N.set(e,{data:b.data,builtAt:b.builtAt}):N.delete(e),a});return(N.set(e,f?{...f,building:g}:{data:null,builtAt:0,building:g}),f)?(g.catch(()=>{}),f.data):g}async function P(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function Q(a){try{let b=a?.headers?.get(E)==="1",c=await S(a);if(c.error)return Response.json({error:{message:"Invalid API key",type:"authentication_error"}},{status:401,headers:{"Access-Control-Allow-Origin":"*"}});let d=await O(["llm"],{skipDynamicFetch:b,apiKey:c.key}),e=(0,g.Tr)(a),f=e?await (0,k.getApiKeyScopeByKey)(e):null;return Response.json({object:"list",data:(0,l.C)(d,f)},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}async function R(a){let b=(0,g.Tr)(a);if(!b)return{present:!1,key:null};let c=await (0,f.y7)(b),d=c?.expiresAt&&new Date(c.expiresAt).getTime()<=Date.now();return{present:!0,key:c?.isActive&&!d?c:null}}async function S(a){let b=await (0,f.mt)(),c=await R(a);return b.requireApiKey&&!c.key||c.present&&!c.key?{error:!0}:{key:c.key}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(53267)},26588:(a,b,c)=>{c.d(b,{FD:()=>l});var d=c(55511),e=c(73496),f=c(39141),g=c(29790),h=c(33026);let i=new Map;function j(a,b){let c=a.get(b)?.[0]?.value;return c&&"number"!=typeof c?Buffer.from(c).toString("utf8"):""}async function k(a,b){var c;let d,i=a?.accessToken,k=a?.providerSpecificData?.machineId,l=(d=f.sr.cursor,d?.agentEndpoint&&d?.modelsEndpoint?`${d.agentEndpoint.replace(/\/$/,"")}${d.modelsEndpoint}`:null);if(!i||!k||!l)return null;let m={...(0,g.JA)(i,k,a?.providerSpecificData?.ghostMode!==!1),accept:"application/proto","content-type":"application/proto"};delete m["connect-accept-encoding"],delete m["connect-protocol-version"];let n=await (c=new Uint8Array,new Promise((a,d)=>{let f=new URL(l),g=e.connect(`https://${f.host}`),h=[],i={},j=!1,k=a=>(...b)=>{if(!j){j=!0,clearTimeout(n);try{g.close()}catch{}a(...b)}},n=setTimeout(k(()=>{d(Error("Cursor GetUsableModels timed out"))}),1e4);g.on("error",k(d));let o=g.request({":method":"POST",":path":f.pathname,":authority":f.host,":scheme":"https",...m});if(o.on("response",a=>{i=a}),o.on("data",a=>{h.push(a)}),o.on("end",k(()=>{a({status:Number(i[":status"]||0),body:Buffer.concat(h)})})),o.on("error",k(d)),b){let a=k(()=>d(Error("Request aborted")));b.aborted?a():b.addEventListener("abort",a,{once:!0})}o.end(c&&c.length?Buffer.from(c):void 0)}));if(200!==n.status){let a=Error(`Cursor GetUsableModels returned ${n.status}`);throw a.status=n.status,a}return function(a){let b=(0,h.Y8)(a),c=new Set,d=[];for(let a of b.get(1)||[]){if(!a?.value||"number"==typeof a.value)continue;let b=(0,h.Y8)(a.value),e=j(b,1).trim();if(!e||c.has(e))continue;c.add(e);let f=(j(b,4)||j(b,5)||j(b,3)||e).trim();d.push({id:e,name:f})}return d}(new Uint8Array(n.body))}async function l(a,b={}){let c;if(!a?.accessToken||!a?.providerSpecificData?.machineId)return b.log?.debug?.("CURSOR_MODELS","No Cursor access token or machine ID; skipping live fetch"),null;let e=(c=[a?.providerSpecificData?.machineId,a?.accessToken].filter(Boolean).join(":"))?d.createHash("sha256").update(`cursor:${c}`).digest("hex"):"cursor-anonymous",f=Date.now();if(!b.forceRefresh){let a=i.get(e);if(a?.expiresAt>f)return{models:a.models}}try{let c=await k(a,b.signal);if(!c?.length)return null;return i.set(e,{expiresAt:f+3e5,models:c}),{models:c}}catch(a){return b.log?.warn?.("CURSOR_MODELS",`Live model fetch failed: ${a?.message||a}`),null}}},38775:(a,b,c)=>{c.d(b,{Xh:()=>h,d_:()=>k,mA:()=>i,pe:()=>l});var d=c(89718),e=c(66451),f=c(99471);c(30717);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};function h(a){let b=(0,e.Xh)(a);return b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b}async function i(a){let b=h(a);if(!b.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);if(e)return{provider:e.id,model:b.model};let f=(await (0,d.Fh)({type:"custom-video"})).find(a=>a.prefix===b.providerAlias);return f?{provider:f.id,model:b.model}:{provider:b.provider,model:b.model}}if(await (0,d.Dj)(b.model))return{provider:null,model:b.model};let c=await j(b.model);return c||(0,e.js)(a,d.OM)}async function j(a){try{let b=(await (0,d.uv)()).find(b=>b&&b.id===a&&("llm"===b.type||!b.type));if(b&&b.providerAlias)return{provider:(0,e.g2)(b.providerAlias),model:b.id}}catch{}try{let b=await (0,d.OM)(),c=(0,e.sc)(a,b);if(c)return c}catch{}let b=(0,e.PN)(a);if(b)return{provider:b,model:a};try{let b=await (0,f.w)(a);if(b)return b}catch{}return null}async function k(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}async function l(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b?{models:b.models||[],members:b.members||(b.models||[]).map(a=>({id:a,weight:1})),policy:b.policy||null,accountPolicy:b.accountPolicy||null,fusion:b.fusion||null,config:b.config||null,name:b.name,kind:b.kind}:null}},40694:(a,b,c)=>{c.d(b,{M:()=>g,P:()=>f});var d=c(7866);async function e(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let e=new AbortController,f=setTimeout(()=>e.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,d.w$)(c,{Accept:"application/json"}),f=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:e.signal});if(!f.ok)return null;let g=await f.json(),h=Array.isArray(g)?g:g?.data;return Array.isArray(h)?h:null}catch{return null}finally{clearTimeout(f)}}async function f(a){let b=await e(a);if(!b)return null;let c=b.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id,name:a.name||a.id}));return c.length?{models:c}:null}async function g(a){let b=await e(a);if(!b)return null;let c=b.filter(a=>"string"==typeof a?.id&&""!==a.id.trim()).map(a=>({id:a.id,name:a.name||a.id}));return c.length?{models:c}:null}},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Ib:()=>e,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(87252);function e(a,b=Date.now()){let c;if(!a)return null;let d="string"==typeof a?a:JSON.stringify(a);if(c=d.match(/"?retry[_-]?delay"?\s*[:=]\s*"?\s*([0-9]+(?:\.[0-9]+)?)\s*s/i))return Math.round(1e3*parseFloat(c[1]));if(c=d.match(/"?(?:resets?_at|x-?ratelimit-?reset|ratelimit-?reset)"?\s*[:=]\s*"?\s*([0-9]{9,})/i)){let a=parseInt(c[1],10);a<1e12&&(a*=1e3);let d=a-b;return d>0?d:null}return(c=d.match(/"?retry[_-]?after"?\s*[:=]\s*"?\s*([0-9]+)\b/i))?1e3*parseInt(c[1],10):null}function f(a,b,c=0){let g=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"",h=g.includes("invalid_encrypted_content")||g.includes("encrypted content")&&(g.includes("could not be verified")||g.includes("could not be decrypted or parsed"));if(400===a&&h)return{shouldFallback:!1,cooldownMs:0};if(d.t2.find(b=>b.status===a&&!1===b.fallback))return{shouldFallback:!1,cooldownMs:0,newBackoffLevel:c};for(let f of d.t2)if(f.pattern&&g&&f.pattern.test(g)||f.text&&g&&g.includes(f.text)||f.status&&f.status===a){if(f.permanent||!1===f.fallback)return{shouldFallback:!1,cooldownMs:0};if(f.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a,b){let c=function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),f=e(b);return null!=f&&f>0?Math.min(Math.max(f,c),d.fh):c}(a,b),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:f.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=Date.now(),d=a=>{if(!a)return!1;let b=new Date(a).getTime();return Number.isFinite(b)&&b>c};return d(a[j(b)])||d(a[i])}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},50287:(a,b,c)=>{c.d(b,{C:()=>e});var d=c(29686);function e(a,b){return b&&Array.isArray(a)?a.filter(a=>(0,d.MH)(b,a?.id)):a}},63123:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(13247),e=c(18129),f=c(89843);let g=`${d.Nr}/models`;async function h(a,b={}){let{fetchFn:c=f.proxyAwareFetch,log:i=console,proxyOptions:j=null,onCredentialsRefreshed:k}=b,l=a?.accessToken;if(!l)return{models:[],warning:"Grok CLI access token is missing."};let m=b=>c(g,{method:"GET",headers:function(a,b={}){let c={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":d.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-version":d.uG,"x-grok-client-identifier":d.rK,"x-grok-client-mode":"headless"},e=b?.email,f=b?.userId||b?.principalId;return e&&(c["x-email"]=e),f&&(c["x-userid"]=f),c}(b,a?.providerSpecificData)},j);try{let b=await m(l);if((401===b.status||403===b.status)&&a?.refreshToken){let c=await (0,e.Vq)("grok-cli",a,i,j);if(c?.accessToken){l=c.accessToken;try{await k?.(c)}catch(a){i?.warn?.("Grok CLI credential persistence failed",a)}b=await m(l)}}if(!b.ok){let a=await b.text().catch(()=>"");return{models:[],warning:`Grok CLI model discovery failed (${b.status})${a?`: ${a.slice(0,160)}`:""}`}}let c=function(a){let b,c=new Set,e=[];for(let[f,g]of(b=Array.isArray(a)?a:a?.data??a?.models??a?.results??[],Array.isArray(b)?b.map(a=>[null,a]):b&&"object"==typeof b?Object.entries(b):[])){let a="string"==typeof g?{id:g}:g;if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=String(a.id??a.model_id??a.modelId??a.model??a.slug??f??a.name??"").trim();if(!b||c.has(b))continue;c.add(b);let h={...a,id:b,name:a.display_name??a.displayName??a.name??b},i=Number(a.context_length??a.contextLength??a.context_window??a.contextWindow),j=Number(a.max_output_tokens??a.maxOutputTokens);Number.isFinite(i)&&i>0&&(h.contextLength=i),Number.isFinite(j)&&j>0&&(h.maxOutputTokens=j),b===d.to&&(h.contextLength||=5e5,h.maxOutputTokens||=64e3),e.push(h)}return e}(await b.json());return c.length?{models:c}:{models:[],warning:"Grok CLI returned no selectable models."}}catch(a){return{models:[],warning:`Grok CLI model discovery failed: ${a.message}`}}}},66451:(a,b,c)=>{c.d(b,{PN:()=>j,Xh:()=>k,g2:()=>i,js:()=>m,sc:()=>l});var d=c(30717),e=c(29485);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.default)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i(a){return f[a]||a}function j(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return i(b[0]);let c=b.find(b=>a.startsWith(b));return c?i(c):null}function k(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:i(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function l(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:i(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:i(c.provider),model:c.model}:null}async function m(a,b){let c=k(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=l(c.model,d)||l(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":n.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let n=[[/^codex-auto-review$/,"codex"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},68001:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(38071);let e=["big-pickle"],f=new Set(["deepseek-v4-flash-free"]),g={"openrouter-free":a=>a.filter(a=>a.pricing?.prompt==="0"&&a.pricing?.completion==="0"&&a.context_length>=2e5).map(a=>({id:a.id,name:a.name,contextLength:a.context_length})).sort((a,b)=>b.contextLength-a.contextLength),"opencode-free":a=>a.filter(a=>(a.id?.endsWith("-free")||e.includes(a.id))&&!f.has(a.id)).map(a=>({id:a.id,name:a.id})),"mimo-free":a=>(Array.isArray(a)?a:[]).filter(a=>a.id?.startsWith("mimo")||a.name?.toLowerCase().includes("mimo")).map(a=>({id:a.id,name:a.name||a.id})),"nous-free":d.pD,"airforce-free":a=>(Array.isArray(a)?a:[]).filter(a=>("free"===a.tier||a.id?.endsWith(":free"))&&!0===a.supports_chat&&(!a.media_type||"chat"===a.media_type||"text"===a.media_type)).map(a=>({id:a.id,name:a.name||a.id,contextLength:a.context_length})).sort((a,b)=>String(a.id).localeCompare(String(b.id)))}},72162:(a,b,c)=>{c.d(b,{Kz:()=>d.Kz,gy:()=>d.gy});var d=c(53267)},81329:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,bs:()=>g,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(29485);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b,g={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},99471:(a,b,c)=>{c.d(b,{Y:()=>k,w:()=>j});var d=c(68001);let e=null,f=0,g=null;async function h(){let a=new AbortController,b=setTimeout(()=>a.abort(),5e3);try{let b=await fetch("https://opencode.ai/zen/v1/models",{signal:a.signal});if(!b.ok)return e||[];let c=await b.json(),g=c.data??c.models??c,h=d.S["opencode-free"](Array.isArray(g)?g:[]);return e=h,f=Date.now(),h}catch{return e||[]}finally{clearTimeout(b)}}async function i(){if(e&&Date.now()-f<6e5)return e;if(!g){g=h();try{return await g}finally{g=null}}return g}async function j(a){let b=(await i()).find(b=>b&&b.id===a);return b?{provider:"opencode",model:b.id}:"big-pickle"===a||String(a).endsWith("-free")?{provider:"opencode",model:a}:null}async function k(){return await i()}}};
@@ -0,0 +1,40 @@
1
+ "use strict";exports.id=3267,exports.ids=[615,3267],exports.modules={644:(a,b,c)=>{function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})},1129:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
2
+ VALUES(?, ?, ?, ?, ?, ?)
3
+ ON CONFLICT(id) DO UPDATE SET
4
+ type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,clientIdentityProfile:a.clientIdentityProfile,clientIdentityHeaders:a.clientIdentityHeaders,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},5781:(a,b,c)=>{c.r(b),c.d(b,{cleanupProviderConnections:()=>s,createProviderConnection:()=>n,deleteProviderConnection:()=>p,deleteProviderConnectionsByProvider:()=>q,getProviderConnectionById:()=>l,getProviderConnections:()=>k,reorderProviderConnections:()=>r,updateProviderConnection:()=>o});var d=c(94755),e=c(36366),f=c(644);let g=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt"];function h(a,b){if(b?.testStatus!=="active")return b;let c={...b,testStatus:"active",lastError:Object.hasOwn(b,"lastError")?b.lastError:null,lastErrorAt:Object.hasOwn(b,"lastErrorAt")?b.lastErrorAt:null,errorCode:null,rateLimitedUntil:null,backoffLevel:0};for(let b of Object.keys(a||{}))b.startsWith("modelLock_")&&(c[b]=null);return c}function i(a){return a?{...(0,f.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function j(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=a;return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:h??null,isActive:+(!1!==i),data:(0,f.s)(l),createdAt:j,updatedAt:k}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
5
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
6
+ ON CONFLICT(id) DO UPDATE SET
7
+ provider=excluded.provider, authType=excluded.authType, name=excluded.name,
8
+ email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
9
+ data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),l=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;l=k.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(l=k.find(b=>"apikey"===b.authType&&b.name===a.name));if(l){let d=h(l,a),e="codex"===a.provider&&"oauth"===a.authType&&a.accessToken?function(a,b,c){let d={...a,...b,updatedAt:c,isActive:!0,testStatus:"active"};for(let a of["lastError","lastErrorAt","errorCode","backoffLevel"])delete d[a];for(let a of Object.keys(d))a.startsWith("modelLock_")&&delete d[a];return d}(l,d,f):{...l,...d,updatedAt:f};j(c,e),b=e;return}let n=a.name||null;n||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${k.length+1}`,n="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let o=a.priority;o||(o=k.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let p={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:n,priority:o,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(p[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(p.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(p.email=a.email),j(c,p),m(c,a.provider),b=p}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},9460:(a,b,c)=>{c.d(b,{L9:()=>r,OM:()=>j,S8:()=>o,fv:()=>l,getMitmAlias:()=>q,o5:()=>k,uL:()=>p,uv:()=>n});var d=c(36366),e=c(644),f=c(22846);let g=(0,f.U)("modelAliases"),h=(0,f.U)("customModels"),i=(0,f.U)("mitmAlias");async function j(){return await g.getAll()}async function k(a,b){await g.set(a,b)}async function l(a){await g.remove(a)}function m(a,b,c){return`${a}|${b}|${c}`}async function n(){return Object.values(await h.getAll())}async function o({providerAlias:a,id:b,type:c="llm",name:f,caps:g}){let h=m(a,b,c),i=await (0,d.c)(),j=!1;return i.transaction(()=>{let d=i.get("SELECT value FROM kv WHERE scope = 'customModels' AND key = ?",[h]);if(d){let a={...(0,e.q)(d.value)||{},...f?{name:f}:{},...g?{caps:g}:{}};i.run("UPDATE kv SET value = ? WHERE scope = 'customModels' AND key = ?",[(0,e.s)(a),h]);return}let k=(0,e.s)({providerAlias:a,id:b,type:c,name:f||b,...g?{caps:g}:{}});i.run("INSERT INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[h,k]),j=!0}),j}async function p({providerAlias:a,id:b,type:c="llm"}){await h.remove(m(a,b,c))}async function q(a){return a?await i.get(a)||{}:await i.getAll()}async function r(a,b){await i.set(a,b||{})}},16329:(a,b,c)=>{c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},22846:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(36366),e=c(644);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},29686:(a,b,c)=>{c.d(b,{MH:()=>h,Uw:()=>g,s7:()=>i});var d=c(40615);function e(a){return!a||"object"!=typeof a}function f(a){return a&&"string"==typeof a?(0,d.rs)(a):a}function g(a,b,c){if(!function(a,b){if(e(a))return!0;let c=a.providers;if(!Array.isArray(c))return!0;let d=f(b);return c.some(a=>f(a)===d)}(a,b))return!1;if(e(a))return!0;let d=a.models;if(!Array.isArray(d)||0===d.length)return!0;let g=f(b);return d.some(a=>{if("string"!=typeof a||!a.includes("/"))return!1;let b=a.indexOf("/"),d=f(a.slice(0,b)),e=a.slice(b+1);return d===g&&e===c})}function h(a,b){if(e(a))return!0;if("string"!=typeof b||!b.includes("/"))return!1;let c=b.indexOf("/");return g(a,b.slice(0,c),b.slice(c+1))}function i(a){if(null==a||"object"!=typeof a)return null;let b={};return(Array.isArray(a.providers)&&(b.providers=a.providers.filter(a=>"string"==typeof a&&""!==a.trim())),Array.isArray(a.models)&&(b.models=a.models.filter(a=>"string"==typeof a&&a.includes("/"))),"providers"in b||"models"in b)?b:null}},36366:(a,b,c)=>{c.d(b,{c:()=>k});var d=c(95658);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(a){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4739).then(c.bind(c,24739));return await a(d.AL)}catch(b){return process.env.DEBUG_DB&&console.warn(`[DB] bun:sqlite unavailable: ${b.message}`),a&&a.push(`bun:sqlite: ${b.message}`),null}}async function g(a){if(process.versions.bun)return null;let[b]=process.versions.node.split(".").map(Number);if(b>=24)return null;try{let{createBetterSqliteAdapter:a}=await c.e(5258).then(c.bind(c,25258));return a(d.AL)}catch(b){return process.env.DEBUG_DB&&console.warn(`[DB] better-sqlite3 unavailable: ${b.message}`),a&&a.push(`better-sqlite3: ${b.message}`),null}}async function h(a){if(process.versions.bun)return null;let[b,e]=process.versions.node.split(".").map(Number);if(b<22||22===b&&e<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(8520).then(c.bind(c,88520));return await a(d.AL)}catch(b){return process.env.DEBUG_DB&&console.warn(`[DB] node:sqlite unavailable: ${b.message}`),a&&a.push(`node:sqlite: ${b.message}`),null}}async function i(a){try{let{createSqlJsAdapter:a}=await c.e(3593).then(c.bind(c,53593));return await a(d.AL)}catch(b){return process.env.DEBUG_DB&&console.warn(`[DB] sql.js unavailable: ${b.message}`),a&&a.push(`sql.js: ${b.message}`),null}}async function j(){(0,d.Jh)();let a=[],b=await f(a);if(b||(b=await g(a)),b||(b=await h(a)),b||(b=await i(a)),!b)throw Error(`[DB] No SQLite driver available (bun/better/node/sql.js all failed):
10
+ ${a.join("\n")}`);e.logged||(console.log(`[DB] Driver: ${b.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:j}=await c.e(8586).then(c.bind(c,58586));return await j(b),b}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>u,js:()=>B,DI:()=>n,fg:()=>k,Pd:()=>o,Vj:()=>p,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>D,wb:()=>C,br:()=>l,wG:()=>A,zt:()=>v,gb:()=>r,gC:()=>s,AR:()=>t,mq:()=>q,YI:()=>x,rs:()=>w,p5:()=>z});var d=c(30717);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.fastMode?{fastMode:a.fastMode}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.baseUrlField?{baseUrlField:a.baseUrlField}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.models?{models:a.models}:{},...a.authModes?{authModes:a.authModes}:{},...a.features?{features:{...a.features}}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.apiKeyOptionalWith?{apiKeyOptionalWith:a.apiKeyOptionalWith}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-",p="custom-video-";function q(a){return"string"==typeof a&&a.startsWith(m)}function r(a){return"string"==typeof a&&a.startsWith(n)}function s(a){return"string"==typeof a&&a.startsWith(o)}function t(a){return"string"==typeof a&&a.startsWith(p)}let u={...h,...i,...j,...k,...l};function v(a){for(let b of Object.values(u))if(b.alias===a||b.id===a)return b;return null}function w(a){let b=v(a);return b?.id||a}function x(a){return!!a&&(!!v(a)||q(a)||r(a))}let y={nvidia:40};function z(a,b){let c=(a?.rpmByProvider||{})[b];if(0===c||"0"===c)return 0;let d=Number(c);return Number.isFinite(d)&&d>0?d:y[b]||0}function A(a){let b=u[a];return b?.alias||a}let B=Object.values(u).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(u).reduce((a,b)=>(a[b.id]=b.alias,a),{});let C=d.default.filter(a=>a.features?.usage).map(a=>a.id),D=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},42655:(a,b,c)=>{c.d(b,{Xx:()=>j,exportSettings:()=>k,getSettings:()=>i});var d=c(36366),e=c(644);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},latencyAwareConfig:{},quotaVisibility:{},retryDelayByProvider:{},rpmByProvider:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},exposeComboOnly:!1,requireLogin:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:ezrouter:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20126",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!0,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!0,cavemanLevel:"full",ponytailEnabled:!0,ponytailLevel:"full",customSystemPromptEnabled:!1,customSystemPrompt:"",pxpipeEnabled:!1,pxpipeAutoInstall:!1,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,toolDisclosureEnabled:!1,toolDisclosureFilterEnabled:!1,toolDisclosureMaxTools:20,toolHistoryPruning:{enabled:!0,maxToolTurns:15,maxCharsPerResult:3e4,maxTotalChars:15e4,preserveErrors:!0}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}function h(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return h(await g())}async function j(a){let b,c=await (0,d.c)();return c.transaction(()=>{let d=c.get("SELECT data FROM settings WHERE id = 1");b={...d?(0,e.q)(d.data,{}):{},...a},c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),h(b)}async function k(){return await g()}},49120:(a,b,c)=>{c.d(b,{n:()=>l});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="ezrouter";function k(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}let l=function(){let a=process.env.DATA_DIR;if(!a)return k();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),k();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),k();throw b}}()},53267:(a,b,c)=>{c.d(b,{S8:()=>R.S8,E5:()=>av,Ld:()=>q.budgetPeriodMs,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>w,Ko:()=>M,Q_:()=>G,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>y,uL:()=>R.uL,RT:()=>N,pO:()=>I,fv:()=>R.fv,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>V,oF:()=>W,zP:()=>aR,rg:()=>aq,yg:()=>q.getApiKeyById,y7:()=>q.getApiKeyByValue,PX:()=>q.getApiKeys,j$:()=>au,L:()=>u,Dj:()=>v,Uv:()=>t,uv:()=>R.uv,vF:()=>U,Lk:()=>aK,lk:()=>F,Kz:()=>Y,Q6:()=>L,t$:()=>K,qr:()=>P,aQ:()=>E,dA:()=>D,c:()=>R.getMitmAlias,OM:()=>R.OM,r4:()=>S.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>aw,SL:()=>aJ,mt:()=>f.getSettings,wV:()=>aP,BY:()=>at,K1:()=>aS,mV:()=>q.reserveApiKeyTokens,VT:()=>S.VT,yF:()=>S.yF,QB:()=>aQ.QB,ox:()=>aI,sZ:()=>ar,gy:()=>Z,__:()=>Q,L9:()=>R.L9,o5:()=>R.o5,_V:()=>ai,uw:()=>ao,XW:()=>q.updateApiKey,oG:()=>x,$e:()=>H,KJ:()=>S.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,xN:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey,CF:()=>O});var d=c(36366),e=c(644),f=c(42655),g=c(5781),h=c(1129),i=c(94755);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
11
+ VALUES(?, ?, ?, ?, ?, ?)
12
+ ON CONFLICT(id) DO UPDATE SET
13
+ isActive=excluded.isActive, testStatus=excluded.testStatus,
14
+ data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.isActive,c.testStatus,c.data,c.createdAt,c.updatedAt])}async function l(a={}){let b=await (0,d.c)(),c=[],e=[];void 0!==a.isActive&&(c.push("isActive = ?"),e.push(+!!a.isActive)),a.testStatus&&(c.push("testStatus = ?"),e.push(a.testStatus));let f=`SELECT * FROM proxyPools${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,e).map(j);return g.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0)),g}async function m(a){return j((await (0,d.c)()).get("SELECT * FROM proxyPools WHERE id = ?",[a]))}async function n(a){let b=await (0,d.c)(),c=new Date().toISOString(),e={id:a.id||(0,i.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return k(b,e),e}async function o(a,b){let c=await (0,d.c)(),e=null;return c.transaction(()=>{let d=c.get("SELECT * FROM proxyPools WHERE id = ?",[a]);if(!d)return;let f={...j(d),...b,updatedAt:new Date().toISOString()};k(c,f),e=f}),e}async function p(a){let b=await (0,d.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM proxyPools WHERE id = ?",[a]);d&&(c=j(d),b.run("DELETE FROM proxyPools WHERE id = ?",[a]))}),c}var q=c(74452);function r(a){if(!a)return null;let b=a.config?(0,e.q)(a.config,null):null;return{id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),config:b||void 0,members:Array.isArray(b?.members)?b.members:(0,e.q)(a.models,[]).map(a=>({id:a,weight:1})),policy:b?.policy||void 0,accountPolicy:b?.accountPolicy||void 0,fusion:b?.fusion||void 0,createdAt:a.createdAt,updatedAt:a.updatedAt}}function s(a){if(!a||"object"!=typeof a)return null;let b={};return Array.isArray(a.members)&&(b.members=a.members),a.policy&&"object"==typeof a.policy&&(b.policy=a.policy),a.accountPolicy&&"object"==typeof a.accountPolicy&&(b.accountPolicy=a.accountPolicy),a.fusion&&"object"==typeof a.fusion&&(b.fusion=a.fusion),a.capacity&&"object"==typeof a.capacity&&(b.capacity=a.capacity),Object.keys(b).length?b:null}async function t(){return(await (0,d.c)()).all("SELECT * FROM combos ORDER BY createdAt ASC").map(r)}async function u(a){return r((await (0,d.c)()).get("SELECT * FROM combos WHERE id = ?",[a]))}async function v(a){return r((await (0,d.c)()).get("SELECT * FROM combos WHERE name = ?",[a]))}async function w(a){let b=await (0,d.c)(),c=new Date().toISOString(),f=s(a.config),g=null;Array.isArray(a.members)?g=a.members:Array.isArray(f?.members)&&(g=f.members);let h=Array.isArray(g)?g.map(a=>"string"==typeof a?a:a.id).filter(Boolean):a.models||[];Array.isArray(g)&&(f={...f||{},members:g});let j=f||null,k={id:(0,i.A)(),name:a.name,kind:a.kind||null,models:h,config:j,createdAt:c,updatedAt:c};b.run("INSERT INTO combos(id, name, kind, models, config, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[k.id,k.name,k.kind,(0,e.s)(k.models),j?(0,e.s)(j):null,k.createdAt,k.updatedAt]);let l=k.config||null;return{...k,members:l?.members||k.models.map(a=>({id:a,weight:1})),policy:l?.policy||void 0,accountPolicy:l?.accountPolicy||void 0,fusion:l?.fusion||void 0}}async function x(a,b){let c=await (0,d.c)(),f=null;return c.transaction(()=>{let d=c.get("SELECT * FROM combos WHERE id = ?",[a]);if(!d)return;let g=r(d),h=void 0!==b.config||void 0!==b.members||void 0!==b.policy||void 0!==b.accountPolicy||void 0!==b.fusion,i=g.config||null;if(h)if(void 0!==b.config)i=s(b.config);else{let a={...i||{}};void 0!==b.members&&(a.members=b.members),void 0!==b.policy&&(a.policy=b.policy),void 0!==b.accountPolicy&&(a.accountPolicy=b.accountPolicy),void 0!==b.fusion&&(a.fusion=b.fusion),void 0!==b.capacity&&(a.capacity=b.capacity),i=s(a)}let j=Array.isArray(b.models)?b.models:Array.isArray(b.members)?b.members.map(a=>"string"==typeof a?a:a.id).filter(Boolean):g.models;Array.isArray(b.members)&&b.models;let k={...g,...b,models:j,config:i||void 0,updatedAt:new Date().toISOString()};if(k.config&&!Array.isArray(b.members)&&Array.isArray(b.models)){let a=new Map((g.config?.members||[]).map(a=>[a.id,a]));k.config={...k.config,members:k.models.map(b=>a.get(b)||{id:b,weight:1})}}c.run("UPDATE combos SET name = ?, kind = ?, models = ?, config = ?, updatedAt = ? WHERE id = ?",[k.name,k.kind,(0,e.s)(k.models||[]),k.config?(0,e.s)(k.config):null,k.updatedAt,a]),f={...k,members:k.config?.members||k.models.map(a=>({id:a,weight:1}))}}),f}async function y(a){let b=(await (0,d.c)()).run("DELETE FROM combos WHERE id = ?",[a]);return(b?.changes??0)>0}let z=["args","env","headers","oauthTokens"];function A(a){if(!a)return null;let b={...a};for(let c of z)b[c]=(0,e.q)(a[c],null);return b.oauth=1===a.oauth||!0===a.oauth,b.enabled=1===a.enabled||!0===a.enabled,b}function B(a){let b={...a};for(let a of z)a in b&&(b[a]=null!=b[a]?(0,e.s)(b[a]):null);return"oauth"in b&&(b.oauth=+!!b.oauth),"enabled"in b&&(b.enabled=+(!1!==b.enabled)),b}function C(a){let b=a&&"object"==typeof a&&"message"in a?String(a.message):"";return/UNIQUE constraint failed/i.test(b)}async function D(){return(await (0,d.c)()).all("SELECT * FROM mcpInstances ORDER BY createdAt ASC").map(A).filter(a=>null!==a)}async function E(a){return A((await (0,d.c)()).get("SELECT * FROM mcpInstances WHERE id = ?",[a]))}async function F(a){if(!a.length)return[];let b=await (0,d.c)(),c=a.map(()=>"?").join(",");return b.all(`SELECT * FROM mcpInstances WHERE enabled = 1 AND id IN (${c})`,a).map(A).filter(a=>null!==a)}async function G(a){let b=await (0,d.c)(),c=new Date().toISOString(),e={...a,id:a.id??(0,i.A)(),enabled:!1!==a.enabled,oauth:!0===a.oauth,createdAt:c},f=B(e);try{b.run(`INSERT INTO mcpInstances(id, slug, title, kind, transport, url, command, args, env, headers, oauth, oauthTokens, enabled, createdAt)
15
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[f.id,f.slug,f.title??null,f.kind,f.transport,f.url??null,f.command??null,f.args??null,f.env??null,f.headers??null,f.oauth,f.oauthTokens??null,f.enabled,f.createdAt])}catch(a){if(C(a))throw Error(`Slug '${e.slug}' already exists`);throw a}return A(b.get("SELECT * FROM mcpInstances WHERE id = ?",[e.id]))}async function H(a,b){let c=await (0,d.c)(),e=null;return c.transaction(()=>{let d=c.get("SELECT * FROM mcpInstances WHERE id = ?",[a]);if(!d)return;let f=B({...A(d),...b});try{c.run("UPDATE mcpInstances SET slug=?, title=?, kind=?, transport=?, url=?, command=?, args=?, env=?, headers=?, oauth=?, oauthTokens=?, enabled=? WHERE id=?",[f.slug,f.title??null,f.kind,f.transport,f.url??null,f.command??null,f.args??null,f.env??null,f.headers??null,f.oauth,f.oauthTokens??null,f.enabled,a])}catch(a){if(C(a))throw Error(`Slug '${f.slug}' already exists`);throw a}e=A(c.get("SELECT * FROM mcpInstances WHERE id = ?",[a]))}),e}async function I(a){let b=(await (0,d.c)()).run("DELETE FROM mcpInstances WHERE id = ?",[a]);return(b?.changes??0)>0}function J(a){return a?{id:a.id,name:a.name??null,key:a.key,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt}:null}async function K(){return(await (0,d.c)()).all("SELECT * FROM mcpGatewayKeys ORDER BY createdAt ASC").map(J)}async function L(a){return J((await (0,d.c)()).get("SELECT * FROM mcpGatewayKeys WHERE id = ?",[a]))}async function M(a,b){if(!b)throw Error("machineId is required");let e=await (0,d.c)(),{generateApiKeyWithMachine:f}=await c.e(6844).then(c.bind(c,86844)),{key:g}=f(b),h={id:(0,i.A)(),name:a??null,key:g,machineId:b,isActive:!0,createdAt:new Date().toISOString()};return e.run("INSERT INTO mcpGatewayKeys(id, name, key, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[h.id,h.name,h.key,h.machineId,1,h.createdAt]),h}async function N(a){let b=await (0,d.c)();b.run("DELETE FROM mcpKeyGrants WHERE keyId = ?",[a]);let c=b.run("DELETE FROM mcpGatewayKeys WHERE id = ?",[a]);return(c?.changes??0)>0}async function O(a){if(!a||"string"!=typeof a)return null;let b=(await (0,d.c)()).get("SELECT * FROM mcpGatewayKeys WHERE key = ?",[a]);return b&&(1===b.isActive||!0===b.isActive)?J(b):null}async function P(a){return(await (0,d.c)()).all("SELECT instanceId, toolAllowlist FROM mcpKeyGrants WHERE keyId = ?",[a]).map(a=>{let b=null,c=a.toolAllowlist;if(null!=c&&""!==c){let a=(0,e.q)(c,null);Array.isArray(a)&&(b=a.map(String))}return{instanceId:a.instanceId,toolAllowlist:b}})}async function Q(a,b,c){let f=await (0,d.c)();f.transaction(()=>{f.run("DELETE FROM mcpKeyGrants WHERE keyId = ?",[a]),Array.isArray(b)&&b.length>0&&b.forEach((b,d)=>{let g=c?.[d],h=Array.isArray(g)&&g.length>0?(0,e.s)(g.map(String)):null;f.run("INSERT OR IGNORE INTO mcpKeyGrants(keyId, instanceId, toolAllowlist) VALUES(?, ?, ?)",[a,b,h])})})}var R=c(9460),S=c(97914);let T="disabledModels";async function U(){let a=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[T]),b={};for(let c of a)b[c.key]=(0,e.q)(c.value,[]);return b}async function V(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.c)();c.transaction(()=>{let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[T,a]),f=[...new Set([...d&&(0,e.q)(d.value,[])||[],...b])];c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[T,a,(0,e.s)(f)])})}async function W(a,b){if(!a)return;let c=await (0,d.c)();c.transaction(()=>{if(!Array.isArray(b)||0===b.length)return void c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[T,a]);let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[T,a]),f=d&&(0,e.q)(d.value,[])||[],g=new Set(b),h=f.filter(a=>!g.has(a));0===h.length?c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[T,a]):c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[T,a,(0,e.s)(h)])})}let X="enabledModels";async function Y(){let a=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[X]),b={};for(let c of a)b[c.key]=(0,e.q)(c.value,[]);return b}async function Z(a,b){if(!a)return;let c=await (0,d.c)(),f=Array.isArray(b)?[...new Set(b.filter(a=>"string"==typeof a&&""!==a.trim()).map(a=>a.trim()))]:[];c.transaction(()=>{0===f.length?c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[X,a]):c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[X,a,(0,e.s)(f)])})}var $=c(77598),_=c(94735);function aa(a){return a&&"string"==typeof a?a.length<=8?a.charAt(0)+"***":a.slice(0,8)+"***":null}function ab(a,b){return a&&"string"==typeof a?b?.id?b.id:"anon-"+(0,$.createHash)("sha256").update(a).digest("hex").slice(0,12):"local-no-key"}c(62674);global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new _.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null});let ac=global._pendingRequests,ad=global._lastErrorProvider,ae=global._pendingTimers,af=global._recentRing,ag=global._connectionMapCache,ah=global._statsEmitTimers,ai=global._statsEmitter;function aj(a,b=150){let c="update"===a?"update":"pending";ah[c]||(ah[c]=setTimeout(()=>{ah[c]=null,ai.emit(a)},b),ah[c]?.unref?.())}function ak(a,b,c){a[b]||(a[b]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),a[b].requests+=c.requests||1,a[b].promptTokens+=c.promptTokens||0,a[b].completionTokens+=c.completionTokens||0,a[b].cachedTokens+=c.cachedTokens||0,a[b].cost+=c.cost||0,c.meta&&Object.assign(a[b],c.meta)}async function al(){if(Date.now()-ag.ts<3e4)return ag.map;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,5781)),b=await a(),d={};for(let a of b)d[a.id]=a.name||a.email||a.id;ag.map=d,ag.ts=Date.now()}catch{}return ag.map}async function am(){if(!af.initialized){af.initialized=!0;try{af.items=(await (0,d.c)()).all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, cost, status, tokens, meta FROM usageHistory ORDER BY id DESC LIMIT ?",[50]).reverse().map(a=>({timestamp:a.timestamp,provider:a.provider,model:a.model,connectionId:a.connectionId,apiKey:a.apiKey,endpoint:a.endpoint,cost:a.cost,status:a.status,tokens:(0,e.q)(a.tokens,{}),requestedModel:a.meta&&(0,e.q)(a.meta,{}).requestedModel||null}))}catch{}}}async function an(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.resolve().then(c.bind(c,97914)),f=await e(a,b);if(!f)return 0;let{calculateCostFromTokens:g}=await c.e(4646).then(c.bind(c,84646));return g(d,f)}catch(a){return console.error("Error calculating cost:",a),0}}function ao(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a,g=`${c}|${f}`;ac.byModel[f]||(ac.byModel[f]=0),ac.byModel[f]=Math.max(0,ac.byModel[f]+(d?1:-1)),0===ac.byModel[f]&&delete ac.byModel[f],c&&(ac.byAccount[c]||(ac.byAccount[c]={}),ac.byAccount[c][f]||(ac.byAccount[c][f]=0),ac.byAccount[c][f]=Math.max(0,ac.byAccount[c][f]+(d?1:-1)),0===ac.byAccount[c][f]&&(delete ac.byAccount[c][f],0===Object.keys(ac.byAccount[c]).length&&delete ac.byAccount[c])),d?(clearTimeout(ae[g]),ae[g]=setTimeout(()=>{delete ae[g],ac.byModel[f]>0&&(ac.byModel[f]=0),c&&ac.byAccount[c]?.[f]>0&&(ac.byAccount[c][f]=0),aj("pending")},6e4)):(clearTimeout(ae[g]),delete ae[g]),!d&&e&&b&&(ad.provider=b.toLowerCase(),ad.ts=Date.now()),aj("pending")}function ap(a){let b="string"==typeof a.tokens?(0,e.q)(a.tokens,{}):a.tokens||{},c=a.requestedModel||a.meta&&(0,e.q)(a.meta,{}).requestedModel||null;return{timestamp:a.timestamp,model:a.model||"",requestedModel:c||null,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,status:a.status||"ok"}}async function aq(){let a=[],b=await al();for(let[c,d]of Object.entries(ac.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/);a.push({model:g?g[1]:e,provider:g?g[2]:"unknown",account:d,count:f})}await am();let c=new Set;return{activeRequests:a,recentRequests:[...af.items].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(ap).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",d=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!c.has(d)&&(c.add(d),!0)}).slice(0,20),errorProvider:Date.now()-ad.ts<1e4?ad.provider:""}}async function ar(a){try{let b=await (0,d.c)();a.timestamp||(a.timestamp=new Date().toISOString()),a.cost=await an(a.provider,a.model,a.tokens);let c=a.tokens||{},f=c.prompt_tokens||c.input_tokens||0,g=c.completion_tokens||c.output_tokens||0,h=!1;(b.transaction(()=>{var d;let i,j,k,l,m,n,o,p,q,r,s,t=a.endpoint?b.get(`SELECT id FROM usageHistory
16
+ WHERE timestamp = ?
17
+ AND COALESCE(provider, '') = COALESCE(?, '')
18
+ AND COALESCE(model, '') = COALESCE(?, '')
19
+ AND COALESCE(connectionId, '') = COALESCE(?, '')
20
+ AND COALESCE(apiKey, '') = COALESCE(?, '')
21
+ AND promptTokens = ?
22
+ AND completionTokens = ?
23
+ AND COALESCE(endpoint, '') = ''
24
+ ORDER BY id DESC LIMIT 1`,[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,f,g]):null;if(t)return void b.run("UPDATE usageHistory SET endpoint = ? WHERE id = ?",[a.endpoint,t.id]);b.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,a.endpoint||null,f,g,a.cost||0,a.status||"ok",(0,e.s)(c),(0,e.s)({requestedModel:a.requestedModel||null})]);let u=(i=(d=a.timestamp)?new Date(d):new Date,`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`),v=b.get("SELECT data FROM usageDaily WHERE dateKey = ?",[u]),w=v?(0,e.q)(v.data,{}):{requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}};j=a.tokens?.prompt_tokens||a.tokens?.input_tokens||0,k=a.tokens?.completion_tokens||a.tokens?.output_tokens||0,l=a.tokens?.cached_tokens||a.tokens?.cache_read_input_tokens||0,m=a.cost||0,n={promptTokens:j,completionTokens:k,cachedTokens:l,cost:m},w.requests=(w.requests||0)+1,w.promptTokens=(w.promptTokens||0)+j,w.completionTokens=(w.completionTokens||0)+k,w.cachedTokens=(w.cachedTokens||0)+l,w.cost=(w.cost||0)+m,w.byProvider||={},w.byModel||={},w.byAccount||={},w.byApiKey||={},w.byEndpoint||={},a.provider&&ak(w.byProvider,a.provider,n),o=a.provider?`${a.model}|${a.provider}`:a.model,ak(w.byModel,o,{...n,meta:{rawModel:a.model,provider:a.provider}}),a.connectionId&&ak(w.byAccount,a.connectionId,{...n,meta:{rawModel:a.model,provider:a.provider}}),p=a.apiKey&&"string"==typeof a.apiKey?a.apiKey:"local-no-key",q=`${p}|${a.model}|${a.provider||"unknown"}`,ak(w.byApiKey,q,{...n,meta:{rawModel:a.model,provider:a.provider,apiKey:a.apiKey||null}}),r=a.endpoint||"Unknown",s=`${r}|${a.model}|${a.provider||"unknown"}`,ak(w.byEndpoint,s,{...n,meta:{endpoint:r,rawModel:a.model,provider:a.provider}}),b.run("INSERT INTO usageDaily(dateKey, data) VALUES(?, ?) ON CONFLICT(dateKey) DO UPDATE SET data = excluded.data",[u,(0,e.s)(w)]);let x=b.get("SELECT value FROM _meta WHERE key = 'totalRequestsLifetime'"),y=(x?parseInt(x.value,10):0)+1;b.run("INSERT INTO _meta(key, value) VALUES('totalRequestsLifetime', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[String(y)]),h=!0}),h)&&(af.items.push(a),af.items.length>50&&(af.items=af.items.slice(-50)),aj("update",250))}catch(a){console.error("Failed to save usage stats:",a)}}function as(a,b){if(null==b)return a.all("SELECT dateKey, data FROM usageDaily");let c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()-b+1),e=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`;return a.all("SELECT dateKey, data FROM usageDaily WHERE dateKey >= ?",[e])}async function at(a="all"){let b=await (0,d.c)(),[{getProviderConnections:f},{getApiKeys:g},{getProviderNodes:h}]=await Promise.all([Promise.resolve().then(c.bind(c,5781)),Promise.resolve().then(c.bind(c,74452)),Promise.resolve().then(c.bind(c,1129))]),i=[];try{i=await f()}catch{}let j={};for(let a of i)j[a.id]=a.name||a.email||a.id;let k={};try{for(let a of(await h()))a.id&&a.name&&(k[a.id]=a.name)}catch{}let l=[];try{l=await g()}catch{}let m={};for(let a of l)m[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let n=b.all("SELECT timestamp, provider, model, tokens, status, meta FROM usageHistory ORDER BY id DESC LIMIT 100"),o=new Set,p={totalRequests:0,totalPromptTokens:0,totalCompletionTokens:0,totalCachedTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:ac,activeRequests:[],recentRequests:n.map(ap).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!o.has(c)&&(o.add(c),!0)}).slice(0,20),errorProvider:Date.now()-ad.ts<1e4?ad.provider:""};for(let[a,b]of Object.entries(ac.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=j[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);p.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let q=new Date,r=new Date(6e4*Math.floor(q.getTime()/6e4)),s=new Date(r.getTime()-54e4),t={};for(let a=0;a<10;a++){let b=r.getTime()-(9-a)*6e4;t[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},p.last10Minutes.push(t[b])}for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ? AND timestamp <= ?",[s.toISOString(),q.toISOString()])){let b=6e4*Math.floor(new Date(a.timestamp).getTime()/6e4);t[b]&&(t[b].requests++,t[b].promptTokens+=a.promptTokens||0,t[b].completionTokens+=a.completionTokens||0,t[b].cost+=a.cost||0)}if("24h"!==a&&"today"!==a){let c={"7d":7,"30d":30,"60d":60,"90d":90,"180d":180,"365d":365}[a]||null;for(let a of as(b,c)){let b=a.dateKey,c=(0,e.q)(a.data,{});for(let[a,b]of(p.totalPromptTokens+=c.promptTokens||0,p.totalCompletionTokens+=c.completionTokens||0,p.totalCachedTokens+=c.cachedTokens||0,p.totalCost+=c.cost||0,Object.entries(c.byProvider||{})))p.byProvider[a]||(p.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a].requests+=b.requests||0,p.byProvider[a].promptTokens+=b.promptTokens||0,p.byProvider[a].completionTokens+=b.completionTokens||0,p.byProvider[a].cachedTokens+=b.cachedTokens||0,p.byProvider[a].cost+=b.cost||0;for(let[a,d]of Object.entries(c.byModel||{})){let c=d.rawModel||a.split("|")[0],e=d.provider||a.split("|")[1]||"",f=e?`${c} (${e})`:c,g=k[e]||e;p.byModel[f]||(p.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:g,lastUsed:b}),p.byModel[f].requests+=d.requests||0,p.byModel[f].promptTokens+=d.promptTokens||0,p.byModel[f].completionTokens+=d.completionTokens||0,p.byModel[f].cachedTokens+=d.cachedTokens||0,p.byModel[f].cost+=d.cost||0,b>(p.byModel[f].lastUsed||"")&&(p.byModel[f].lastUsed=b)}for(let[a,d]of Object.entries(c.byAccount||{})){let c=j[a]||`Account ${a.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=k[f]||f,h=`${e} (${f} - ${c})`;p.byAccount[h]||(p.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:e,provider:g,connectionId:a,accountName:c,lastUsed:b}),p.byAccount[h].requests+=d.requests||0,p.byAccount[h].promptTokens+=d.promptTokens||0,p.byAccount[h].completionTokens+=d.completionTokens||0,p.byAccount[h].cachedTokens+=d.cachedTokens||0,p.byAccount[h].cost+=d.cost||0,b>(p.byAccount[h].lastUsed||"")&&(p.byAccount[h].lastUsed=b)}for(let[,a]of Object.entries(c.byApiKey||{})){let c=a.rawModel||"",d=a.provider||"",e=k[d]||d,f=a.apiKey,g=f?m[f]:null,h=g?.name||(f?f.slice(0,8)+"...":"Local (No API Key)"),i=aa(f),j=i||"local-no-key",l=`${ab(f,g)}|${c}|${d||"unknown"}`;p.byApiKey[l]||(p.byApiKey[l]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:e,apiKeyMasked:i,keyName:h,apiKeyKey:j,lastUsed:b}),p.byApiKey[l].requests+=a.requests||0,p.byApiKey[l].promptTokens+=a.promptTokens||0,p.byApiKey[l].completionTokens+=a.completionTokens||0,p.byApiKey[l].cachedTokens+=a.cachedTokens||0,p.byApiKey[l].cost+=a.cost||0,b>(p.byApiKey[l].lastUsed||"")&&(p.byApiKey[l].lastUsed=b)}for(let[a,d]of Object.entries(c.byEndpoint||{})){let c=d.endpoint||a.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=k[f]||f;p.byEndpoint[a]||(p.byEndpoint[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:c,rawModel:e,provider:g,lastUsed:b}),p.byEndpoint[a].requests+=d.requests||0,p.byEndpoint[a].promptTokens+=d.promptTokens||0,p.byEndpoint[a].completionTokens+=d.completionTokens||0,p.byEndpoint[a].cachedTokens+=d.cachedTokens||0,p.byEndpoint[a].cost+=d.cost||0,b>(p.byEndpoint[a].lastUsed||"")&&(p.byEndpoint[a].lastUsed=b)}}let d=c?Date.now()-864e5*c:0;for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint FROM usageHistory WHERE timestamp >= ?",[new Date(d).toISOString()])){let b=a.timestamp,c=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[c]&&new Date(b)>new Date(p.byModel[c].lastUsed)&&(p.byModel[c].lastUsed=b),a.connectionId){let c=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;p.byAccount[d]&&new Date(b)>new Date(p.byAccount[d].lastUsed)&&(p.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${ab(a.apiKey,m[a.apiKey])}|${a.model}|${a.provider||"unknown"}`:"local-no-key";p.byApiKey[d]&&new Date(b)>new Date(p.byApiKey[d].lastUsed)&&(p.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",f=`${e}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[f]&&new Date(b)>new Date(p.byEndpoint[f].lastUsed)&&(p.byEndpoint[f].lastUsed=b)}}else{let c;if("today"===a){let a=new Date;a.setHours(0,0,0,0),c=a.toISOString()}else c=new Date(Date.now()-864e5).toISOString();for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, tokens FROM usageHistory WHERE timestamp >= ?",[c])){let b=(0,e.q)(a.tokens,{})||{},c=a.promptTokens||b.prompt_tokens||b.input_tokens||0,d=a.completionTokens||b.completion_tokens||b.output_tokens||0,f=b.cached_tokens||b.cache_read_input_tokens||0,g=a.cost||0,h=k[a.provider]||a.provider;p.totalPromptTokens+=c,p.totalCompletionTokens+=d,p.totalCachedTokens+=f,p.totalCost+=g,p.byProvider[a.provider]||(p.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a.provider].requests++,p.byProvider[a.provider].promptTokens+=c,p.byProvider[a.provider].completionTokens+=d,p.byProvider[a.provider].cachedTokens+=f,p.byProvider[a.provider].cost+=g;let i=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[i]||(p.byModel[i]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,lastUsed:a.timestamp}),p.byModel[i].requests++,p.byModel[i].promptTokens+=c,p.byModel[i].completionTokens+=d,p.byModel[i].cachedTokens+=f,p.byModel[i].cost+=g,new Date(a.timestamp)>new Date(p.byModel[i].lastUsed)&&(p.byModel[i].lastUsed=a.timestamp),a.connectionId){let b=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,e=`${a.model} (${a.provider} - ${b})`;p.byAccount[e]||(p.byAccount[e]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,connectionId:a.connectionId,accountName:b,lastUsed:a.timestamp}),p.byAccount[e].requests++,p.byAccount[e].promptTokens+=c,p.byAccount[e].completionTokens+=d,p.byAccount[e].cachedTokens+=f,p.byAccount[e].cost+=g,new Date(a.timestamp)>new Date(p.byAccount[e].lastUsed)&&(p.byAccount[e].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let b=m[a.apiKey],e=b?.name||a.apiKey.slice(0,8)+"...",i=aa(a.apiKey),j=`${ab(a.apiKey,b)}|${a.model}|${a.provider||"unknown"}`;p.byApiKey[j]||(p.byApiKey[j]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,apiKeyMasked:i,keyName:e,apiKeyKey:i,lastUsed:a.timestamp});let k=p.byApiKey[j];k.requests++,k.promptTokens+=c,k.completionTokens+=d,k.cachedTokens+=f,k.cost+=g,new Date(a.timestamp)>new Date(k.lastUsed)&&(k.lastUsed=a.timestamp)}let l=a.endpoint||"Unknown",n=`${l}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[n]||(p.byEndpoint[n]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:l,rawModel:a.model,provider:h,lastUsed:a.timestamp});let o=p.byEndpoint[n];o.requests++,o.promptTokens+=c,o.completionTokens+=d,o.cachedTokens+=f,o.cost+=g,new Date(a.timestamp)>new Date(o.lastUsed)&&(o.lastUsed=a.timestamp)}}return p.totalRequests=Object.values(p.byProvider).reduce((a,b)=>a+(b.requests||0),0),p}async function au(a="7d",b){let c=await (0,d.c)(),f=Date.now(),g=!function(a){if(!a||"string"!=typeof a)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:a}),!0}catch{return!1}}(b)?void 0:b;if("today"===a){var h;let a,b,d,e,i=g?(h=new Date(f),b=Date.UTC((a=new Intl.DateTimeFormat("en-US",{timeZone:g,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).formatToParts(h).reduce((a,b)=>(a[b.type]=b.value,a),{})).year,a.month-1,a.day,a.hour,a.minute,a.second)-h.getTime(),(d=new Date(h.getTime()+b)).setUTCHours(0,0,0,0),d.getTime()-b):((e=new Date).setHours(0,0,0,0),e.getTime()),j=i+864e5,k=Array.from({length:24},(a,b)=>({label:new Date(i+36e5*b).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,...g?{timeZone:g}:{}}),tokens:0,cost:0}));for(let a of c.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(i).toISOString()])){let b=new Date(a.timestamp).getTime();if(b<i||b>=j)continue;let c=Math.floor((b-i)/36e5);c>=0&&c<24&&(k[c].tokens+=(a.promptTokens||0)+(a.completionTokens||0),k[c].cost+=a.cost||0)}return k}if("24h"===a){let a=f-864e5,b=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,...g?{timeZone:g}:{}}),tokens:0,cost:0}));for(let d of c.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(a).toISOString()])){let c=new Date(d.timestamp).getTime();if(c<a||c>f)continue;let e=Math.min(Math.floor((c-a)/36e5),23);b[e].tokens+=(d.promptTokens||0)+(d.completionTokens||0),b[e].cost+=d.cost||0}return b}let i=new Date,j=a=>a.toLocaleDateString("en-US",{month:"short",day:"numeric"});if("all"===a){let a=as(c,null).sort((a,b)=>a.dateKey.localeCompare(b.dateKey));return 0===a.length?[]:a.map(a=>{let b=(0,e.q)(a.data,{}),[c,d,f]=a.dateKey.split("-").map(Number);return{label:j(new Date(c,d-1,f)),tokens:b?(b.promptTokens||0)+(b.completionTokens||0):0,cost:b&&b.cost||0}})}let k={"7d":7,"30d":30,"60d":60,"90d":90,"180d":180,"365d":365}[a]||7,l=as(c,k),m={};for(let a of l)m[a.dateKey]=(0,e.q)(a.data,{});return Array.from({length:k},(a,b)=>{let c=new Date(i);c.setDate(c.getDate()-(k-1-b));let d=m[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:j(c),tokens:d?(d.promptTokens||0)+(d.completionTokens||0):0,cost:d&&d.cost||0}})}async function av(){}async function aw(a=200){try{let b=(await (0,d.c)()).all("SELECT timestamp, provider, model, connectionId, promptTokens, completionTokens, status, tokens, meta FROM usageHistory ORDER BY id DESC LIMIT ?",[a]);if(!b.length)return[];let f={};try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,5781));for(let b of(await a()))f[b.id]=b.name||b.email||""}catch{}return b.map(a=>{let b=function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${b(a.getDate())}-${b(a.getMonth()+1)}-${a.getFullYear()} ${b(a.getHours())}:${b(a.getMinutes())}:${b(a.getSeconds())}`}(new Date(a.timestamp)),c=a.provider?.toUpperCase()||"-",d=(a.meta?(0,e.q)(a.meta,{}):{}).requestedModel||null,g=d&&d!==a.model?`${d} → ${a.model}`:a.model||"-",h=f[a.connectionId]||(a.connectionId?a.connectionId.slice(0,8):"-"),i=a.tokens?(0,e.q)(a.tokens,{}):{},j=a.promptTokens??i.prompt_tokens??"-",k=a.completionTokens??i.completion_tokens??"-";return`${b} | ${g} | ${c} | ${h} | ${j} | ${k} | ${a.status||"-"}`})}catch(a){return console.error("[usageRepo] getRecentLogs failed:",a.message),[]}}var ax=c(16329);let ay=null,az=0;function aA(a,b){let c=a[b];return void 0===c||""===c.trim()?null:"true"===c.trim().toLowerCase()}async function aB(){if(ay&&Date.now()-az<5e3)return ay;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,42655)),b=await a();ay={enabled:function(a,b=process.env){let c=aA(b,"OBSERVABILITY_ENABLED");if(null!==c)return c;let d=aA(b,"ENABLE_REQUEST_LOGS");return null!==d?d:a?.enableObservability===!0}(b),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{ay={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return az=Date.now(),ay}let aC=[],aD=null,aE=!1;function aF(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}function aG(a,b){let c=aF(a,b);return c?._truncated&&a&&"object"==typeof a&&void 0!==a.tools?{...c,tools:aF(a.tools,65536)}:c}async function aH(){if(!aE&&0!==aC.length){aE=!0;try{for(;aC.length>0;){let a=aC.splice(0,aC.length),b=await (0,d.c)(),c=await aB();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:aG(d.request,c.maxJsonSize),providerRequest:aG(d.providerRequest,c.maxJsonSize),providerResponse:aF(d.providerResponse,c.maxJsonSize),response:aF(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0,convoy:d.convoy||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{aE=!1}}}async function aI(a){let b=await aB();b.enabled&&(aC.push(a),aC.length>=b.batchSize?(aD&&(clearTimeout(aD),aD=null),aH().catch(a=>console.error("[requestDetailsRepo] flush err:",a))):aD||(aD=setTimeout(()=>{aD=null,aH().catch(()=>{})},b.flushIntervalMs)))}async function aJ(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.status&&(c.push("status = ?"),f.push(a.status)),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=b.get(`SELECT COUNT(*) as c FROM requestDetails ${g}`,f),i=h?h.c:0,j=a.page||1,k=a.pageSize||50,l=Math.ceil(i/k);return{details:b.all(`SELECT data FROM requestDetails ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,k,(j-1)*k]).map(a=>(0,e.q)(a.data,{})),pagination:{page:j,pageSize:k,totalItems:i,totalPages:l,hasNext:j<l,hasPrev:j>1}}}async function aK(){return(await (0,d.c)()).all("SELECT DISTINCT provider FROM requestDetails WHERE provider IS NOT NULL ORDER BY provider ASC").map(a=>a.provider)}let aL=async()=>{aD&&(clearTimeout(aD),aD=null),aC.length>0&&await aH()};(0,ax.Bb)(aL);let aM=new Set(["today","24h","7d","30d","60d","365d"]);function aN(a){return`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`}function aO(){return{requestsObserved:0,rtk:{requestsWithHits:0,hits:0,bytesBefore:0,bytesAfter:0,bytesSaved:0},headroom:{compressed:0,skipped:0,disabled:0,tokensBefore:0,tokensAfter:0,tokensSaved:0,bodyBytesBefore:0,bodyBytesAfter:0,messageBytesBefore:0,messageBytesAfter:0,phantomSavings:0,skipReasons:{}},totals:{actualBytesSaved:0}}}async function aP(a="7d"){if(!aM.has(a))throw Error(`Invalid period: ${a}`);let b=await (0,d.c)(),c={today:1,"24h":1,"7d":7,"30d":30,"60d":60,"365d":365}[a],f=function(a,b){if(!b)return a.all("SELECT dateKey, data FROM tokenSaverDaily");let c=new Date;c.setDate(c.getDate()-(b-1));let d=aN(c);return a.all("SELECT dateKey, data FROM tokenSaverDaily WHERE dateKey >= ?",[d])}(b,c),g=aO();for(let a of f){let b=(0,e.q)(a.data,aO());if(!function(a,b){a.requestsObserved+=b.requestsObserved,a.rtk.requestsWithHits+=b.rtk.requestsWithHits,a.rtk.hits+=b.rtk.hits,a.rtk.bytesBefore+=b.rtk.bytesBefore,a.rtk.bytesAfter+=b.rtk.bytesAfter,a.rtk.bytesSaved+=b.rtk.bytesSaved;let c=a.headroom;if(c.compressed+=b.headroom.compressed,c.skipped+=b.headroom.skipped,c.disabled+=b.headroom.disabled,c.tokensBefore+=b.headroom.tokensBefore,c.tokensAfter+=b.headroom.tokensAfter,c.tokensSaved+=b.headroom.tokensSaved,c.bodyBytesBefore+=b.headroom.bodyBytesBefore,c.bodyBytesAfter+=b.headroom.bodyBytesAfter,c.messageBytesBefore+=b.headroom.messageBytesBefore,c.messageBytesAfter+=b.headroom.messageBytesAfter,c.phantomSavings+=b.headroom.phantomSavings,b.headroom.skipReasonKey){let a=b.headroom.skipReasonKey;c.skipReasons[a]=(c.skipReasons[a]||0)+1}let d=a.rtk.bytesSaved||0,e=Math.max(0,(a.headroom.bodyBytesBefore||0)-(a.headroom.bodyBytesAfter||0));a.totals.actualBytesSaved=d+e}(g,{state:"compressed",requestsObserved:b.requestsObserved||0,rtk:b.rtk||{},headroom:{...b.headroom,compressed:b.headroom?.compressed||0,skipped:b.headroom?.skipped||0,disabled:b.headroom?.disabled||0,tokensBefore:b.headroom?.tokensBefore||0,tokensAfter:b.headroom?.tokensAfter||0,tokensSaved:b.headroom?.tokensSaved||0,bodyBytesBefore:b.headroom?.bodyBytesBefore||0,bodyBytesAfter:b.headroom?.bodyBytesAfter||0,messageBytesBefore:b.headroom?.messageBytesBefore||0,messageBytesAfter:b.headroom?.messageBytesAfter||0,phantomSavings:b.headroom?.phantomSavings||0,skipReasonKey:null}}),b.headroom?.skipReasons)for(let[a,c]of Object.entries(b.headroom.skipReasons))g.headroom.skipReasons[a]=(g.headroom.skipReasons[a]||0)+(c||0)}let h=Object.fromEntries(f.map(a=>[a.dateKey,(0,e.q)(a.data,aO())])),i=Array.from({length:c},(a,b)=>{let d=new Date;d.setHours(0,0,0,0),d.setDate(d.getDate()-(c-1-b));let e=h[aN(d)]||aO();return{dateKey:aN(d),actualBytesSaved:Math.max(0,(e.rtk?.bytesSaved||0)+((e.headroom?.bodyBytesBefore||0)-(e.headroom?.bodyBytesAfter||0))),rtkBytesSaved:e.rtk?.bytesSaved||0,headroomBytesSaved:Math.max(0,(e.headroom?.bodyBytesBefore||0)-(e.headroom?.bodyBytesAfter||0)),headroomCompressed:e.headroom?.compressed||0}});return{requestsObserved:g.requestsObserved,rtk:g.rtk,headroom:g.headroom,totals:g.totals,dailyPoints:i}}var aQ=c(57473);async function aR(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,42655)),f={settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,expiresAt:a.expiresAt||null,tokenLimit:null==a.tokenLimit?null:Number(a.tokenLimit),tokensUsed:Number(a.tokensUsed||0),tokensReserved:Number(a.tokensReserved||0),allowedModels:(0,e.q)(a.allowedModels,null),scope:a.scope?(0,e.q)(a.scope,null):null,createdAt:a.createdAt})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),config:a.config?(0,e.q)(a.config,null):void 0,createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],mitmAlias:{},pricing:{}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))f.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))f.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'mitmAlias'"))f.mitmAlias[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))f.pricing[b.key]=(0,e.q)(b.value);return f}async function aS(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let b=await (0,d.c)();return b.transaction(()=>{for(let c of(b.run("DELETE FROM settings"),b.run("DELETE FROM providerConnections"),b.run("DELETE FROM providerNodes"),b.run("DELETE FROM proxyPools"),b.run("DELETE FROM apiKeys"),b.run("DELETE FROM combos"),b.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing')"),a.settings&&b.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=c;b.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),(0,e.s)(m),k||new Date().toISOString(),l||new Date().toISOString()])}for(let c of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.apiKeys||[])b.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, expiresAt, tokenLimit, tokensUsed, tokensReserved, allowedModels, createdAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.key,c.name||null,c.machineId||null,+(!1!==c.isActive),c.expiresAt||null,null==c.tokenLimit?null:Number(c.tokenLimit),Number(c.tokensUsed||0),Number(c.tokensReserved||0),(0,e.s)(c.allowedModels||null),c.createdAt||new Date().toISOString()]);for(let c of a.combos||[])b.run("INSERT OR REPLACE INTO combos(id, name, kind, models, config, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[c.id,c.name,c.kind||null,(0,e.s)(c.models||[]),c.config?(0,e.s)(c.config):null,c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()]);for(let[c,d]of Object.entries(a.modelAliases||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[c,(0,e.s)(d)]);for(let c of a.customModels||[]){let a=`${c.providerAlias}|${c.id}|${c.type||"llm"}`;b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(c)])}for(let[c,d]of Object.entries(a.mitmAlias||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[c,(0,e.s)(d||{})]);for(let[c,d]of Object.entries(a.pricing||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[c,(0,e.s)(d||{})])}),await aR()}},57473:(a,b,c)=>{c.d(b,{Nb:()=>j,QB:()=>h,oH:()=>i});var d=c(36366),e=c(644),f=c(94755);function g(a,b){if(null==a)return null;let c="string"==typeof a?a:JSON.stringify(a);if(Buffer.byteLength(c,"utf8")<=b)return c;let d=c.slice(0,b);return`${d}…`}async function h(a){let b=await (0,d.c)(),c=a.id||(0,f.A)(),h={id:c,timestamp:a.timestamp||new Date().toISOString(),endpoint:a.endpoint||null,provider:a.provider||null,model:a.model||null,connectionId:a.connectionId||null,comboName:a.comboName||null,statusCode:null!=a.statusCode?String(a.statusCode):null,errorMessage:"string"==typeof a.errorMessage?a.errorMessage:a.errorMessage?JSON.stringify(a.errorMessage):null,request:g(a.request,5120),providerRequest:g(a.providerRequest,5120),providerResponse:g(a.providerResponse,5120),meta:(0,e.s)({latency:a.latency||{},tokens:a.tokens||{},retryAfter:a.retryAfter||null,retryAfterHuman:a.retryAfterHuman||null,fallback:!!a.fallback,fallbackReason:a.fallbackReason||null,extra:a.meta||{}})};b.run(`INSERT INTO errorLogs(
25
+ id, timestamp, endpoint, provider, model, connectionId, comboName,
26
+ statusCode, errorMessage, request, providerRequest, providerResponse, meta
27
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
28
+ ON CONFLICT(id) DO UPDATE SET
29
+ timestamp = excluded.timestamp,
30
+ endpoint = excluded.endpoint,
31
+ provider = excluded.provider,
32
+ model = excluded.model,
33
+ connectionId = excluded.connectionId,
34
+ comboName = excluded.comboName,
35
+ statusCode = excluded.statusCode,
36
+ errorMessage = excluded.errorMessage,
37
+ request = excluded.request,
38
+ providerRequest = excluded.providerRequest,
39
+ providerResponse = excluded.providerResponse,
40
+ meta = excluded.meta`,[h.id,h.timestamp,h.endpoint,h.provider,h.model,h.connectionId,h.comboName,h.statusCode,h.errorMessage,h.request,h.providerRequest,h.providerResponse,h.meta]);let i=b.get("SELECT COUNT(*) c FROM errorLogs"),j=i?.c||0;return j>200&&b.run("DELETE FROM errorLogs WHERE id IN (SELECT id FROM errorLogs ORDER BY timestamp ASC LIMIT ?)",[j-200]),c}async function i(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.comboName&&(c.push("comboName = ?"),f.push(a.comboName)),a.statusCode&&(c.push("statusCode = ?"),f.push(String(a.statusCode))),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=a.page&&a.page>0?a.page:1,j=a.pageSize&&a.pageSize>0?Math.min(a.pageSize,100):20,k=b.get(`SELECT COUNT(*) c FROM errorLogs ${g}`,f),l=k?.c||0,m=Math.ceil(l/j)||1;return{details:b.all(`SELECT * FROM errorLogs ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,j,(h-1)*j]).map(a=>({id:a.id,timestamp:a.timestamp,endpoint:a.endpoint,provider:a.provider,model:a.model,connectionId:a.connectionId,comboName:a.comboName,statusCode:a.statusCode,errorMessage:a.errorMessage,request:(0,e.q)(a.request,null),providerRequest:(0,e.q)(a.providerRequest,null),providerResponse:(0,e.q)(a.providerResponse,null),meta:(0,e.q)(a.meta,{})})),pagination:{page:h,pageSize:j,totalItems:l,totalPages:m,hasNext:h<m,hasPrev:h>1}}}async function j(a){let b=(await (0,d.c)()).get("SELECT * FROM errorLogs WHERE id = ?",[a]);return b?{id:b.id,timestamp:b.timestamp,endpoint:b.endpoint,provider:b.provider,model:b.model,connectionId:b.connectionId,comboName:b.comboName,statusCode:b.statusCode,errorMessage:b.errorMessage,request:(0,e.q)(b.request,null),providerRequest:(0,e.q)(b.providerRequest,null),providerResponse:(0,e.q)(b.providerResponse,null),meta:(0,e.q)(b.meta,{})}:null}},62674:(a,b,c)=>{function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(36366)},74452:(a,b,c)=>{c.r(b),c.d(b,{addKeySpend:()=>u,budgetPeriodMs:()=>t,createApiKey:()=>o,deleteApiKey:()=>q,getApiKeyById:()=>m,getApiKeyBySecret:()=>s,getApiKeyByValue:()=>n,getApiKeyScopeByKey:()=>x,getApiKeys:()=>l,reserveApiKeyTokens:()=>v,settleApiKeyTokens:()=>w,updateApiKey:()=>p,validateApiKey:()=>r});var d=c(94755),e=c(36366),f=c(29686);function g(a){if(!a)return null;try{let b=JSON.parse(a);return b&&"object"==typeof b?b:null}catch{return null}}function h(a){if(!Array.isArray(a))return null;let b=[...new Set(a.filter(a=>"string"==typeof a&&a.trim()).map(a=>a.trim()))];return b.length?b:null}function i(a){if(null==a||""===a)return null;let b=Number(a);if(!Number.isSafeInteger(b)||b<1)throw Error("tokenLimit must be a positive integer");return b}function j(a){if(null==a||""===a)return null;let b=new Date(a);if(Number.isNaN(b.getTime()))throw Error("expiresAt must be a valid date");return b.toISOString()}function k(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,expiresAt:a.expiresAt||null,tokenLimit:null==a.tokenLimit?null:Number(a.tokenLimit),tokensUsed:Number(a.tokensUsed||0),tokensReserved:Number(a.tokensReserved||0),allowedModels:(()=>{try{return a.allowedModels?JSON.parse(a.allowedModels):null}catch{return null}})(),createdAt:a.createdAt,scope:g(a.scope)}:null}async function l(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(k)}async function m(a){return k((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function n(a){return k((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE key = ?",[a]))}async function o(a,b,g={}){if(!b)throw Error("machineId is required");let k=await (0,e.c)(),{generateApiKeyWithMachine:l}=await c.e(6844).then(c.bind(c,86844)),m=l(b),n=g&&"object"==typeof g&&"scope"in g?g.scope:g&&("providers"in g||"models"in g)?g:null,p=(0,f.s7)(n),q={id:(0,d.A)(),name:a,key:m.key,machineId:b,isActive:!0,expiresAt:j(g?.expiresAt),tokenLimit:i(g?.tokenLimit),tokensUsed:0,tokensReserved:0,allowedModels:h(g?.allowedModels),createdAt:new Date().toISOString(),scope:p};return k.run("INSERT INTO apiKeys(id, key, name, machineId, isActive, expiresAt, tokenLimit, tokensUsed, tokensReserved, allowedModels, createdAt, scope) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[q.id,q.key,q.name,q.machineId,1,q.expiresAt,q.tokenLimit,0,0,q.allowedModels?JSON.stringify(q.allowedModels):null,q.createdAt,p?JSON.stringify(p):null]),q}async function p(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let g={...k(e),...b};if(void 0!==b.allowedModels&&(g.allowedModels=h(b.allowedModels)),void 0!==b.expiresAt&&(g.expiresAt=j(b.expiresAt)),void 0!==b.tokenLimit&&(g.tokenLimit=i(b.tokenLimit)),void 0!==b.tokenLimitIncrement){let a=i(b.tokenLimitIncrement);if(null==g.tokenLimit)throw Error("Cannot add tokens to an unlimited key; set a token limit first");g.tokenLimit+=a}"scope"in b&&(g.scope=(0,f.s7)(b.scope)),c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, isActive = ?, expiresAt = ?, tokenLimit = ?, tokensUsed = ?, tokensReserved = ?, allowedModels = ?, scope = ? WHERE id = ?",[g.key,g.name,g.machineId,+!!g.isActive,g.expiresAt||null,null==g.tokenLimit?null:Number(g.tokenLimit),Number(g.tokensUsed||0),Number(g.tokensReserved||0),g.allowedModels?JSON.stringify(g.allowedModels):null,g.scope?JSON.stringify(g.scope):null,a]),d=g}),d}async function q(a){let b=await (0,e.c)();return(b.run("DELETE FROM apiKeys WHERE id = ?",[a])?.changes??0)>0}async function r(a){let b=await n(a);return!!b&&b.isActive&&(!b.expiresAt||new Date(b.expiresAt).getTime()>Date.now())}async function s(a){return n(a)}function t(a){switch(a){case"daily":return 864e5;case"weekly":return 6048e5;case"monthly":return 2592e6;default:return null}}async function u(a,b){b&&!(b<=0)&&await n(a)&&(await (0,e.c)()).run("UPDATE apiKeys SET tokensUsed = tokensUsed + ? WHERE key = ?",[Math.round(1e4*b),a])}async function v(a,b){let c=await n(a);if(c?.tokenLimit==null)return{ok:!0,reserved:0};let d=Math.max(0,Math.floor(Number(b)||0)),f=await (0,e.c)(),g=!1;return f.transaction(()=>{let b=f.get("SELECT tokenLimit, tokensUsed, tokensReserved FROM apiKeys WHERE key = ? AND isActive = 1",[a]);!b||null==b.tokenLimit||Number(b.tokensUsed||0)+Number(b.tokensReserved||0)+d>Number(b.tokenLimit)||(f.run("UPDATE apiKeys SET tokensReserved = tokensReserved + ? WHERE key = ?",[d,a]),g=!0)}),g?{ok:!0,reserved:d}:{ok:!1,error:"API key token quota exceeded"}}async function w(a,b,c){if(!b)return;let d=Math.min(b,Math.max(0,Math.floor(Number(c)||0))),f=await (0,e.c)();f.transaction(()=>{f.run("UPDATE apiKeys SET tokensReserved = MAX(0, tokensReserved - ?), tokensUsed = tokensUsed + ? WHERE key = ?",[b,d,a])})}async function x(a){let b=(await (0,e.c)()).get("SELECT scope, isActive FROM apiKeys WHERE key = ?",[a]);return b&&(1===b.isActive||!0===b.isActive)?g(b.scope):null}},95658:(a,b,c)=>{c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(49120);let i=e().join(h.n,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.n,"db.json"),usage:e().join(h.n,"usage.json"),disabled:e().join(h.n,"disabledModels.json"),details:e().join(h.n,"request-details.json")};function m(){for(let a of[h.n,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}},97914:(a,b,c)=>{c.d(b,{KJ:()=>l,VT:()=>n,getPricingForModel:()=>k,r4:()=>j,yF:()=>m});var d=c(36366),e=c(644);let f=(0,c(22846).U)("pricing"),g={value:null,expiresAt:0};function h(){g={value:null,expiresAt:0}}async function i(){return await f.getAll()}async function j(){let a=Date.now();if(g.value&&g.expiresAt>a)return g.value;let b=await i(),{PROVIDER_PRICING:d}=await c.e(4646).then(c.bind(c,84646)),e={};for(let[a,c]of Object.entries(d))if(e[a]={...c},b[a])for(let[c,d]of Object.entries(b[a]))e[a][c]=e[a][c]?{...e[a][c],...d}:d;for(let[a,c]of Object.entries(b))if(e[a])for(let[b,d]of Object.entries(c))e[a][b]||(e[a][b]=d);else e[a]={...c};return g={value:e,expiresAt:a+5e3},e}async function k(a,b){if(!b)return null;let d=await i();if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(4646).then(c.bind(c,84646));return e(a,b)}async function l(a){let b=await (0,d.c)();return b.transaction(()=>{for(let[c,d]of Object.entries(a)){let a=b.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[c]),f={...a&&(0,e.q)(a.value,{})||{}};for(let[a,b]of Object.entries(d))f[a]=b;b.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[c,(0,e.s)(f)])}}),h(),await i()}async function m(a,b){if(!a)return await i();let c=await (0,d.c)();return c.transaction(()=>{if(!b)return void c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]);let d=c.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[a]),f=d&&(0,e.q)(d.value,{})||{};delete f[b],0===Object.keys(f).length?c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]):c.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,(0,e.s)(f)])}),h(),await i()}async function n(){return await f.clear(),h(),{}}}};