vansrouter 0.91.21 → 0.91.22

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 (626) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +17 -17
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/react-loadable-manifest.json +6 -6
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  69. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  70. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  71. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  73. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  83. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  86. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  88. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  93. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  95. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  101. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  119. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/providers/bulk/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/providers/bulk/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  246. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  272. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  308. package/app/.next-cli-build/server/app/callback.html +1 -1
  309. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  310. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  311. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  313. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  314. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  318. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  319. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  323. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  328. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  329. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  332. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  333. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  335. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  338. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  339. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  342. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  343. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  345. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  348. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  349. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  352. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  353. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  355. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  358. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  359. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  364. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  366. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  369. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  373. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  374. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  379. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  380. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  383. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  384. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  386. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  388. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  389. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  394. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  395. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  397. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  400. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  405. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  407. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.html +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.rsc +5 -5
  410. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness/__PAGE__.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness.segment.rsc +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_full.segment.rsc +5 -5
  415. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_head.segment.rsc +1 -1
  416. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_index.segment.rsc +3 -3
  417. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_tree.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  420. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  425. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  427. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  430. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  431. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  435. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  437. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  440. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  441. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  445. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  447. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  452. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  453. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  455. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  462. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  463. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  467. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  468. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  469. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  472. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  473. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  477. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  479. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  482. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  483. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  487. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  489. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  492. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  493. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  497. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  498. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  499. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  500. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  502. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  503. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  506. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  508. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  510. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  511. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  512. package/app/.next-cli-build/server/app/landing.html +1 -1
  513. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  514. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  515. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  517. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  518. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  520. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  521. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  522. package/app/.next-cli-build/server/app/login.html +1 -1
  523. package/app/.next-cli-build/server/app/login.rsc +4 -4
  524. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  525. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  527. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  528. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  531. package/app/.next-cli-build/server/app/masuk/page.js +1 -1
  532. package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
  533. package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
  534. package/app/.next-cli-build/server/app-paths-manifest.json +17 -17
  535. package/app/.next-cli-build/server/chunks/1685.js +2 -2
  536. package/app/.next-cli-build/server/chunks/1688.js +2 -2
  537. package/app/.next-cli-build/server/chunks/2411.js +1 -1
  538. package/app/.next-cli-build/server/chunks/2445.js +1 -1
  539. package/app/.next-cli-build/server/chunks/2549.js +1 -0
  540. package/app/.next-cli-build/server/chunks/2557.js +4 -10
  541. package/app/.next-cli-build/server/chunks/2764.js +1 -1
  542. package/app/.next-cli-build/server/chunks/2927.js +2 -2
  543. package/app/.next-cli-build/server/chunks/3040.js +2 -2
  544. package/app/.next-cli-build/server/chunks/32.js +2 -2
  545. package/app/.next-cli-build/server/chunks/3405.js +1 -1
  546. package/app/.next-cli-build/server/chunks/3519.js +1 -1
  547. package/app/.next-cli-build/server/chunks/3736.js +1 -1
  548. package/app/.next-cli-build/server/chunks/3787.js +1 -1
  549. package/app/.next-cli-build/server/chunks/4004.js +1 -1
  550. package/app/.next-cli-build/server/chunks/4029.js +2 -2
  551. package/app/.next-cli-build/server/chunks/4105.js +1 -1
  552. package/app/.next-cli-build/server/chunks/4502.js +13 -13
  553. package/app/.next-cli-build/server/chunks/4539.js +2 -2
  554. package/app/.next-cli-build/server/chunks/4574.js +44 -44
  555. package/app/.next-cli-build/server/chunks/4836.js +1 -1
  556. package/app/.next-cli-build/server/chunks/5006.js +1 -1
  557. package/app/.next-cli-build/server/chunks/5009.js +1 -1
  558. package/app/.next-cli-build/server/chunks/5050.js +1 -1
  559. package/app/.next-cli-build/server/chunks/5198.js +1 -1
  560. package/app/.next-cli-build/server/chunks/5302.js +1 -1
  561. package/app/.next-cli-build/server/chunks/5538.js +1 -0
  562. package/app/.next-cli-build/server/chunks/5598.js +1 -1
  563. package/app/.next-cli-build/server/chunks/6165.js +1 -1
  564. package/app/.next-cli-build/server/chunks/622.js +1 -0
  565. package/app/.next-cli-build/server/chunks/635.js +1 -0
  566. package/app/.next-cli-build/server/chunks/6385.js +1 -1
  567. package/app/.next-cli-build/server/chunks/6723.js +1 -1
  568. package/app/.next-cli-build/server/chunks/7006.js +2 -2
  569. package/app/.next-cli-build/server/chunks/7104.js +1 -1
  570. package/app/.next-cli-build/server/chunks/7425.js +1 -1
  571. package/app/.next-cli-build/server/chunks/7693.js +2 -2
  572. package/app/.next-cli-build/server/chunks/7938.js +2 -2
  573. package/app/.next-cli-build/server/chunks/7950.js +1 -1
  574. package/app/.next-cli-build/server/chunks/8691.js +2 -2
  575. package/app/.next-cli-build/server/chunks/8695.js +1 -1
  576. package/app/.next-cli-build/server/chunks/8772.js +1 -0
  577. package/app/.next-cli-build/server/chunks/912.js +1 -1
  578. package/app/.next-cli-build/server/chunks/9770.js +1 -0
  579. package/app/.next-cli-build/server/chunks/9784.js +1 -1
  580. package/app/.next-cli-build/server/chunks/9808.js +7 -0
  581. package/app/.next-cli-build/server/chunks/9974.js +1 -1
  582. package/app/.next-cli-build/server/chunks/9984.js +1 -1
  583. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  584. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  585. package/app/.next-cli-build/server/middleware.js +3 -3
  586. package/app/.next-cli-build/server/pages/404.html +1 -1
  587. package/app/.next-cli-build/server/pages/500.html +1 -1
  588. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  589. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  590. package/app/.next-cli-build/static/chunks/1049.aa4f733370082c0d.js +7 -0
  591. package/app/.next-cli-build/static/chunks/{2940-b6dd0c5879412cea.js → 2940-0706a20a7c56dae1.js} +1 -1
  592. package/app/.next-cli-build/static/chunks/4385-8a145d343c888113.js +1 -0
  593. package/app/.next-cli-build/static/chunks/4964.6c8742ba86d45244.js +7 -0
  594. package/app/.next-cli-build/static/chunks/{5331.049b1512362de1f4.js → 5331.6cd97e3af09b08eb.js} +1 -1
  595. package/app/.next-cli-build/static/chunks/5479-0397a316e918cfaf.js +1 -0
  596. package/app/.next-cli-build/static/chunks/{9131-f4afa0414d45c1d1.js → 9131-e475ca6f20af6320.js} +1 -1
  597. package/app/.next-cli-build/static/chunks/{webpack-81a7adaed327dd6b.js → webpack-092d669f441fbd84.js} +1 -1
  598. package/app/custom-server.js +37 -37
  599. package/app/package.json +1 -3
  600. package/app/src/lib/db/adapters/betterSqliteAdapter.js +12 -4
  601. package/app/src/lib/db/adapters/nodeSqliteAdapter.js +12 -3
  602. package/app/src/lib/db/adapters/sqljsAdapter.js +13 -6
  603. package/app/src/lib/db/migrate.js +299 -299
  604. package/app/src/shared/services/quotaAutoPing.js +313 -313
  605. package/hooks/sqliteRuntime.js +188 -188
  606. package/package.json +1 -1
  607. package/src/cli/api/client.js +556 -556
  608. package/src/cli/commands/xaiVideo.js +300 -300
  609. package/src/cli/menus/combos.js +0 -103
  610. package/src/cli/menus/providers.js +868 -858
  611. package/src/cli/menus/settings.js +204 -204
  612. package/src/cli/utils/modelSelector.js +189 -51
  613. package/app/.next-cli-build/server/chunks/2732.js +0 -1
  614. package/app/.next-cli-build/server/chunks/3539.js +0 -1
  615. package/app/.next-cli-build/server/chunks/4816.js +0 -1
  616. package/app/.next-cli-build/server/chunks/6793.js +0 -1
  617. package/app/.next-cli-build/server/chunks/6931.js +0 -1
  618. package/app/.next-cli-build/server/chunks/9162.js +0 -1
  619. package/app/.next-cli-build/server/chunks/9614.js +0 -7
  620. package/app/.next-cli-build/server/chunks/9787.js +0 -1
  621. package/app/.next-cli-build/static/chunks/1049.adc9916d5a6b95f8.js +0 -7
  622. package/app/.next-cli-build/static/chunks/4385-ce7b55264de51d47.js +0 -1
  623. package/app/.next-cli-build/static/chunks/5479-20746781c1de7eb2.js +0 -1
  624. package/app/.next-cli-build/static/chunks/9078.ea6aeb4af0c25e5d.js +0 -7
  625. /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_buildManifest.js +0 -0
  626. /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=4004,exports.ids=[4004],exports.modules={12286:(a,b,c)=>{c.d(b,{Ut:()=>e,a_:()=>f,bC:()=>d});let d={STOP:"stop",LENGTH:"length",TOOL_CALLS:"tool_calls",CONTENT_FILTER:"content_filter"},e={END_TURN:"end_turn",MAX_TOKENS:"max_tokens",TOOL_USE:"tool_use",STOP_SEQUENCE:"stop_sequence"},f={STOP:"STOP",MAX_TOKENS:"MAX_TOKENS",SAFETY:"SAFETY",RECITATION:"RECITATION",BLOCKLIST:"BLOCKLIST",PROHIBITED_CONTENT:"PROHIBITED_CONTENT"}},19602:(a,b,c)=>{c.d(b,{Du:()=>f,R4:()=>e,m8:()=>g,x4:()=>d});let d={TEXT:"text",IMAGE_URL:"image_url",IMAGE:"image",INPUT_AUDIO:"input_audio",AUDIO_URL:"audio_url",FILE:"file",FUNCTION:"function"},e={TEXT:"text",IMAGE:"image",DOCUMENT:"document",TOOL_USE:"tool_use",TOOL_RESULT:"tool_result",THINKING:"thinking",REDACTED_THINKING:"redacted_thinking"},f={MESSAGE:"message",FUNCTION_CALL:"function_call",FUNCTION_CALL_OUTPUT:"function_call_output",REASONING:"reasoning",OUTPUT_TEXT:"output_text",INPUT_TEXT:"input_text",INPUT_IMAGE:"input_image",SUMMARY_TEXT:"summary_text"},g=[d.TEXT,d.IMAGE_URL,d.IMAGE,d.INPUT_AUDIO,d.AUDIO_URL,d.FILE];d.TEXT,d.IMAGE_URL,d.IMAGE,e.TOOL_RESULT},37808:(a,b,c)=>{c.d(b,{N:()=>d});function d(a,b){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}},44004:(a,b,c)=>{c.d(b,{Pr:()=>r,UP:()=>p,Vu:()=>q,ZO:()=>i,vt:()=>t});var d=c(5505),e=c(15261),f=c(92398),g=c(99974),h=c(83712);function i(a){return"string"!=typeof a?a:a.startsWith("combo/")?a.slice(6):a}let j=new Set(["vision","pdf","audioInput","videoInput"]),k="[Called tools: ",l="[Tool result: ";function m(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${l}${(0,h.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,h.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${k}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,h.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${k}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${l}${d.join("\n")}]`),{...e,content:f}}}return a})}let n=new Map;function o(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function p(a){a?n.delete(a):n.clear()}function q(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function r({body:a,models:b,handleSingleModel:c,log:h,comboName:i,comboStrategy:k,comboStickyLimit:l=1,autoSwitch:m=!0,signal:p=null,timeoutMs:q=f.oy,queueDepth:s=null}){let t=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=n.get(f),i="number"==typeof h?{index:h,consecutiveUseCount:0}:h||{index:0,consecutiveUseCount:0},j=i.index%a.length,k=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,j),l=i.consecutiveUseCount+1;return l>=g?n.set(f,{index:(j+1)%a.length,consecutiveUseCount:0}):n.set(f,{index:j,consecutiveUseCount:l}),k}(b,i,k,l);if(m){let b=function(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{if(!a||"object"!=typeof a)return;let c=a.type;("image_url"===c||"image"===c||"input_image"===c)&&b.add("vision"),("file"===c||"document"===c||"input_file"===c)&&b.add("pdf");let d=a.inlineData?.mimeType||a.fileData?.mimeType;"string"==typeof d&&d.startsWith("image/")&&b.add("vision"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)},e=a=>{if(!a||"object"!=typeof a)return;Array.isArray(a.images)&&a.images.length&&b.add("vision");let c=a.experimental_attachments||a.attachments;if(Array.isArray(c))for(let a of c){let c=a?.contentType||a?.mediaType||("string"==typeof a?.url?a.url.match(/^data:([^;,]+)/)?.[1]:null);c?.startsWith("image/")?b.add("vision"):c?.startsWith("audio/")?b.add("audioInput"):"application/pdf"===c?b.add("pdf"):(a?.url||a?.data)&&b.add("vision")}(a.image_url||a.image)&&b.add("vision"),(a.audio_url||a.audio)&&b.add("audioInput"),d(a.content),"string"==typeof a.content&&(a.content.includes("data:image/")&&b.add("vision"),a.content.includes("data:audio/")&&b.add("audioInput"),a.content.includes("data:application/pdf")&&b.add("pdf"))};for(let b of o(a.messages))e(b);for(let b of o(a.input))d(b.content);for(let b of o(a.contents||a.request?.contents))d(b.parts);if(Array.isArray(a.tools)){for(let c of a.tools)if(c?.type==="web_search"){b.add("search");break}}return b}(a);if(b.size>0){let a=function(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>j.has(a)),d=[...b].filter(a=>!j.has(a)),e=a.map((a,b)=>{let e,f,h,i;return{m:a,i:b,t:(f=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,g.getCapabilitiesForModel)(f,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}});return e.every(a=>2===a.t)?a:e.sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(t,b);a[0]!==t[0]&&h.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),t=a}}let u=null,v=null,w=null;for(let b=0;b<t.length;b++){let e=t[b];if(p?.aborted)return h.info("COMBO","External signal aborted — stopping combo fallback"),new Response(JSON.stringify({error:{message:"Client disconnected"}}),{status:499,headers:{"Content-Type":"application/json"}});h.info("COMBO",`Trying model ${b+1}/${t.length}: ${e}`);try{let b;if(!Number.isFinite(q)||q<=0)b=await c(a,e);else{let d,f=new AbortController,g=!1,i=function(...a){let b=a.filter(a=>a&&"function"==typeof a.addEventListener);if(0===b.length)return null;if(1===b.length)return b[0];let c=new AbortController,d=()=>c.abort(),e=!1;for(let a of b){if(a.aborted){e=!0;break}a.addEventListener("abort",d,{once:!0})}return e&&c.abort(),c.signal}(p,f.signal),j={};i&&(j.signal=i),null!=s&&(j.maxQueueSize=s);let k=new Promise(a=>{d=setTimeout(()=>{g=!0,h.warn("COMBO",`Model ${e} exceeded ${q}ms timeout — falling back`),f.abort(Error("combo-per-model-timeout")),a(new Response(JSON.stringify({error:{message:`Model ${e} timed out`}}),{status:524,headers:{"Content-Type":"application/json"}}))},q)});try{b=await Promise.race([Promise.resolve(c(a,e,Object.keys(j).length>0?j:void 0)).catch(a=>{if(g)return new Response(null,{status:599});throw a}),k])}finally{clearTimeout(d)}}if(b.ok)return h.info("COMBO",`Model ${e} succeeded`),b;let f=b.statusText||"",g=null;try{let a=await b.clone().json();f=a?.error?.message||a?.error||a?.message||f,g=a?.retryAfter||null}catch{}if(g&&(!v||new Date(g)<new Date(v))&&(v=g),"string"!=typeof f)try{f=JSON.stringify(f)}catch{f=String(f)}let{shouldFallback:i,cooldownMs:j}=(0,d.hk)(b.status,f);if(!i)return h.warn("COMBO",`Model ${e} failed (no fallback)`,{status:b.status}),b;j&&j>0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(h.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),u=f||String(b.status),w||(w=b.status),h.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){u=a.message||String(a),w||(w=500),h.warn("COMBO",`Model ${e} threw error, trying next`,{error:u})}}let x=u&&u.toLowerCase().includes("no credentials")?503:w||503,y=u||"All combo models unavailable";if(v){let a=(0,d.Qo)(v);return h.warn("COMBO",`All models failed | ${y} (${a})`),(0,e.wO)(x,y,v,a)}return h.warn("COMBO",`All models failed | ${y}`),new Response(JSON.stringify({error:{message:y}}),{status:x,headers:{"Content-Type":"application/json"}})}let s={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};async function t({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g}){var i;let j,k,l=Array.isArray(b)?b.filter(Boolean):[];if(0===l.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===l.length)return c(a,l[0]);let n={...s,...g||{}},o=Math.min(Math.max(2,n.minPanel),l.length),p=f&&f.trim()?f.trim():l[0];d.info("FUSION",`Combo "${e}" | panel=${l.length} [${l.join(", ")}] | judge=${p} | quorum=${o}`);let{tools:q,tool_choice:r,stream_options:u,...v}=a,w={...v,stream:!1};Array.isArray(w.messages)?w.messages=m(w.messages):Array.isArray(w.input)&&(w.input=m(w.input));let x=Date.now(),y=l.map(a=>{var b,d;return b=c(w,a,!0),d=n.panelHardTimeoutMs,new Promise(a=>{let c=setTimeout(()=>a({__timeout:!0}),d);Promise.resolve(b).then(b=>{clearTimeout(c),a(b)}).catch(b=>{clearTimeout(c),a({__error:b})})})}),z=await function(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d}){return new Promise(e=>{let f=Array(a.length),g=0,h=0,i=!1,j=null,k=()=>{i||(i=!0,clearTimeout(l),j&&clearTimeout(j),e(f))},l=setTimeout(k,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{f[e]=a}).catch(a=>{f[e]={__error:a}}).finally(()=>{if(g++,f[e]&&f[e].ok&&h++,g===a.length)return k();h>=b&&!j&&(j=setTimeout(k,c))})})})}(y,{...n,minPanel:o});d.info("FUSION",`fan-out collected in ${Date.now()-x}ms`);let A=[];for(let a=0;a<z.length;a++){let b=z[a],c=l[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,h.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,h.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}(a);e?(A.push({model:c,text:e}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===A.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===A.length)return d.info("FUSION",`Only ${A[0].model} succeeded — answering directly (no fusion)`),c(a,A[0].model);let B=(j=A.map((a,b)=>`[Source ${b+1}]
2
- ${a.text}`).join("\n\n"),i=[`You are the JUDGE in a model-fusion panel. ${A.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",j,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),k={...a},Array.isArray(a.messages)?k.messages=[...a.messages,{role:"user",content:i}]:Array.isArray(a.input)?k.input=[...a.input,{role:"user",content:i}]:Array.isArray(a.contents)?k.contents=[...a.contents,{role:"user",parts:[{text:i}]}]:k.messages=[{role:"user",content:i}],k);return d.info("FUSION",`Judging ${A.length} answers with ${p}`),c(B,p)}},54215:(a,b,c)=>{c.d(b,{R:()=>e,z:()=>d});let d={USER:"user",ASSISTANT:"assistant",TOOL:"tool",SYSTEM:"system",DEVELOPER:"developer"},e={USER:"user",MODEL:"model"}},69455:(a,b,c)=>{c.d(b,{R4:()=>e.R4,BY:()=>h,a_:()=>f.a_,RV:()=>d.R,rP:()=>g,x4:()=>e.x4,bC:()=>f.bC,Du:()=>e.Du,z7:()=>d.z,m8:()=>e.m8});var d=c(54215),e=c(19602),f=c(12286);let g="unknown",h="image/png"},83712:(a,b,c)=>{c.d(b,{KZ:()=>k,S6:()=>h,Yr:()=>o,f6:()=>l,fc:()=>g,kU:()=>i,pT:()=>j,w_:()=>m});var d=c(37808),e=c(69455);let f=["minLength","maxLength","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","format","multipleOf","uniqueItems","contains","unevaluatedProperties","unevaluatedItems","contentSchema","default","examples","$schema","$defs","definitions","const","$ref","$comment","deprecated","readOnly","writeOnly","additionalProperties","propertyNames","patternProperties","enumDescriptions","anyOf","oneOf","allOf","not","dependencies","dependentSchemas","dependentRequired","title","optional","deprecated","if","then","else","contentMediaType","contentEncoding","cornerRadius","fillColor","fontFamily","fontSize","fontWeight","gap","padding","strokeColor","strokeThickness","textColor"],g=[{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"OFF"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"OFF"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"OFF"},{category:"HARM_CATEGORY_HARASSMENT",threshold:"OFF"},{category:"HARM_CATEGORY_CIVIC_INTEGRITY",threshold:"OFF"}];function h(a){let b=[];if("string"==typeof a)b.push({text:a});else if(Array.isArray(a)){for(let c of a)if(c.type===e.x4.TEXT)b.push({text:c.text});else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url?.startsWith("data:")){let a=c.image_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url&&(c.image_url.url.startsWith("http://")||c.image_url.url.startsWith("https://")))b.push({fileData:{fileUri:c.image_url.url,mimeType:"image/*"}});else if(c.type===e.x4.INPUT_AUDIO&&c.input_audio?.data){let a=c.input_audio.format||"wav",d="mp3"===a?"audio/mpeg":`audio/${a}`;b.push({inlineData:{mime_type:d,data:c.input_audio.data}})}else if(c.type===e.x4.AUDIO_URL&&c.audio_url?.url?.startsWith("data:")){let a=c.audio_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.FILE&&c.file?.file_data?.startsWith("data:")){let a=c.file.file_data,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d).split(";")[0],e=a.substring(d+1);b.push({inlineData:{mime_type:c,data:e}})}}}return b}function i(a,b=""){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a.type===e.x4.TEXT).map(a=>a.text).join(b):""}function j(a){return(0,d.N)(a,null)}function k(){return`agent-${crypto.randomUUID()}`}function l(){return crypto.randomUUID()+Date.now().toString()}function m(){let a=["useful","bright","swift","calm","bold"],b=["fuze","wave","spark","flow","core"],c=a[Math.floor(Math.random()*a.length)],d=b[Math.floor(Math.random()*b.length)];return`${c}-${d}-${crypto.randomUUID().slice(0,5)}`}function n(a){let b=0,c=-1;for(let d=0;d<a.length;d++){let e=a[d],f=0,g=e.type;"object"===g||e.properties?f=3:"array"===g||e.items?f=2:g&&"null"!==g&&(f=1),f>c&&(c=f,b=d)}return b}function o(a){return a&&"object"==typeof a&&(!function a(b){if(b&&"object"==typeof b)for(let c of(void 0===b.const||b.enum||(b.enum=[b.const],delete b.const),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.enum&&Array.isArray(b.enum)&&(b.enum=b.enum.map(a=>String(a)),b.type||(b.type="string")),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b){if(b.allOf&&Array.isArray(b.allOf)){let a={};for(let c of b.allOf)if(c.properties&&(a.properties||(a.properties={}),Object.assign(a.properties,c.properties)),c.required&&Array.isArray(c.required))for(let b of(a.required||(a.required=[]),c.required))a.required.includes(b)||a.required.push(b);delete b.allOf,a.properties&&(b.properties={...b.properties,...a.properties}),a.required&&(b.required=[...b.required||[],...a.required])}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.anyOf&&Array.isArray(b.anyOf)&&b.anyOf.length>0){let a=b.anyOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.anyOf,Object.assign(b,d)}}if(b.oneOf&&Array.isArray(b.oneOf)&&b.oneOf.length>0){let a=b.oneOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.oneOf,Object.assign(b,d)}}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.type&&Array.isArray(b.type)){let a=b.type.filter(a=>"null"!==a);b.type=a.length>0?a[0]:"string"}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.properties&&!b.type&&(b.type="object"),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b,c){if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.keys(b)){if(c.includes(d)||d.startsWith("x-")){delete b[d];continue}let e=b[d];e&&"object"==typeof e&&a(e,c)}}}(a,f),!function a(b){if(b&&"object"==typeof b){if(b.required&&Array.isArray(b.required)&&b.properties){let a=b.required.filter(a=>Object.prototype.hasOwnProperty.call(b.properties,a));0===a.length?delete b.required:b.required=a}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(0===Object.keys(b).length){b.type="object",b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"];return}for(let c of("object"!==b.type||b.properties&&0!==Object.keys(b.properties).length||(b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"]),Object.values(b)))c&&"object"==typeof c&&a(c)}}(a)),a}}};
2
+ ${a.text}`).join("\n\n"),i=[`You are the JUDGE in a model-fusion panel. ${A.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",j,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),k={...a},Array.isArray(a.messages)?k.messages=[...a.messages,{role:"user",content:i}]:Array.isArray(a.input)?k.input=[...a.input,{role:"user",content:i}]:Array.isArray(a.contents)?k.contents=[...a.contents,{role:"user",parts:[{text:i}]}]:k.messages=[{role:"user",content:i}],k);return d.info("FUSION",`Judging ${A.length} answers with ${p}`),c(B,p)}},54215:(a,b,c)=>{c.d(b,{R:()=>e,z:()=>d});let d={USER:"user",ASSISTANT:"assistant",TOOL:"tool",SYSTEM:"system",DEVELOPER:"developer"},e={USER:"user",MODEL:"model"}},69455:(a,b,c)=>{c.d(b,{R4:()=>e.R4,BY:()=>h,a_:()=>f.a_,RV:()=>d.R,rP:()=>g,x4:()=>e.x4,bC:()=>f.bC,Du:()=>e.Du,z7:()=>d.z,m8:()=>e.m8});var d=c(54215),e=c(19602),f=c(12286);let g="unknown",h="image/png"},83712:(a,b,c)=>{c.d(b,{$J:()=>p,KZ:()=>k,S6:()=>h,Yr:()=>o,f6:()=>l,fc:()=>g,kU:()=>i,pT:()=>j,w_:()=>m});var d=c(37808),e=c(69455);let f=["minLength","maxLength","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","format","multipleOf","uniqueItems","contains","unevaluatedProperties","unevaluatedItems","contentSchema","default","examples","$schema","$defs","definitions","const","$ref","$comment","deprecated","readOnly","writeOnly","additionalProperties","propertyNames","patternProperties","enumDescriptions","anyOf","oneOf","allOf","not","dependencies","dependentSchemas","dependentRequired","title","optional","deprecated","if","then","else","contentMediaType","contentEncoding","cornerRadius","fillColor","fontFamily","fontSize","fontWeight","gap","padding","strokeColor","strokeThickness","textColor"],g=[{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"OFF"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"OFF"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"OFF"},{category:"HARM_CATEGORY_HARASSMENT",threshold:"OFF"},{category:"HARM_CATEGORY_CIVIC_INTEGRITY",threshold:"OFF"}];function h(a){let b=[];if("string"==typeof a)b.push({text:a});else if(Array.isArray(a)){for(let c of a)if(c.type===e.x4.TEXT)b.push({text:c.text});else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url?.startsWith("data:")){let a=c.image_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url&&(c.image_url.url.startsWith("http://")||c.image_url.url.startsWith("https://")))b.push({fileData:{fileUri:c.image_url.url,mimeType:"image/*"}});else if(c.type===e.x4.INPUT_AUDIO&&c.input_audio?.data){let a=c.input_audio.format||"wav",d="mp3"===a?"audio/mpeg":`audio/${a}`;b.push({inlineData:{mime_type:d,data:c.input_audio.data}})}else if(c.type===e.x4.AUDIO_URL&&c.audio_url?.url?.startsWith("data:")){let a=c.audio_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.FILE&&c.file?.file_data?.startsWith("data:")){let a=c.file.file_data,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d).split(";")[0],e=a.substring(d+1);b.push({inlineData:{mime_type:c,data:e}})}}}return b}function i(a,b=""){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a.type===e.x4.TEXT).map(a=>a.text).join(b):""}function j(a){return(0,d.N)(a,null)}function k(){return`agent-${crypto.randomUUID()}`}function l(){return crypto.randomUUID()+Date.now().toString()}function m(){let a=["useful","bright","swift","calm","bold"],b=["fuze","wave","spark","flow","core"],c=a[Math.floor(Math.random()*a.length)],d=b[Math.floor(Math.random()*b.length)];return`${c}-${d}-${crypto.randomUUID().slice(0,5)}`}function n(a){let b=0,c=-1;for(let d=0;d<a.length;d++){let e=a[d],f=0,g=e.type;"object"===g||e.properties?f=3:"array"===g||e.items?f=2:g&&"null"!==g&&(f=1),f>c&&(c=f,b=d)}return b}function o(a){return a&&"object"==typeof a&&(!function a(b){if(b&&"object"==typeof b)for(let c of(void 0===b.const||b.enum||(b.enum=[b.const],delete b.const),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.enum&&Array.isArray(b.enum)&&(b.enum=b.enum.map(a=>String(a)),b.type||(b.type="string")),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b){if(b.allOf&&Array.isArray(b.allOf)){let a={};for(let c of b.allOf)if(c.properties&&(a.properties||(a.properties={}),Object.assign(a.properties,c.properties)),c.required&&Array.isArray(c.required))for(let b of(a.required||(a.required=[]),c.required))a.required.includes(b)||a.required.push(b);delete b.allOf,a.properties&&(b.properties={...b.properties,...a.properties}),a.required&&(b.required=[...b.required||[],...a.required])}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.anyOf&&Array.isArray(b.anyOf)&&b.anyOf.length>0){let a=b.anyOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.anyOf,Object.assign(b,d)}}if(b.oneOf&&Array.isArray(b.oneOf)&&b.oneOf.length>0){let a=b.oneOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.oneOf,Object.assign(b,d)}}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.type&&Array.isArray(b.type)){let a=b.type.filter(a=>"null"!==a);b.type=a.length>0?a[0]:"string"}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.properties&&!b.type&&(b.type="object"),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b,c){if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.keys(b)){if(c.includes(d)||d.startsWith("x-")){delete b[d];continue}let e=b[d];e&&"object"==typeof e&&a(e,c)}}}(a,f),!function a(b){if(b&&"object"==typeof b){if(b.required&&Array.isArray(b.required)&&b.properties){let a=b.required.filter(a=>Object.prototype.hasOwnProperty.call(b.properties,a));0===a.length?delete b.required:b.required=a}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(0===Object.keys(b).length){b.type="object",b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"];return}for(let c of("object"!==b.type||b.properties&&0!==Object.keys(b.properties).length||(b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"]),Object.values(b)))c&&"object"==typeof c&&a(c)}}(a)),a}function p(a){let b=[];for(let c of a||[]){if(!c?.role||!Array.isArray(c.parts))continue;let a=c.parts.filter(a=>a&&Object.keys(a).length>0);if(0===a.length)continue;let d=b.at(-1);d?.role===c.role?d.parts.push(...a):b.push({...c,parts:[...a]})}return b.length>0&&"user"!==b[0].role&&b.unshift({role:"user",parts:[{text:"..."}]}),b}}};
@@ -1,7 +1,7 @@
1
- "use strict";exports.id=4029,exports.ids=[4029,9614],exports.modules={14029:(a,b,c)=>{c.r(b),c.d(b,{default:()=>l});var d=c(66238),e=c(71183),f=c(34455),g=c(75814),h=c(93864),i=c(99614);let j=/^[a-zA-Z0-9_.\-]+$/;function k({index:a,model:b,isFirst:c,isLast:f,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(b);p!==b&&(q(b),o(null));let r=n??b,s=()=>{let a=r.trim();a&&a!==b?g(a):o(null),m(!1)};return(0,d.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,d.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:a+1}),l?(0,d.jsx)("input",{value:r,onChange:a=>o(a.target.value),onBlur:s,onKeyDown:a=>{"Enter"===a.key&&s(),"Escape"===a.key&&(o(null),m(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20","aria-label":`Edit model ${a+1}`}):(0,d.jsx)("button",{type:"button",className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main text-left hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>m(!0),title:"Click to edit","aria-label":`Edit model: ${b}`,children:b}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,d.jsx)("button",{type:"button",onClick:h,disabled:c,className:`p-0.5 rounded ${c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,d.jsx)("button",{type:"button",onClick:i,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,d.jsx)("button",{type:"button",onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function l({isOpen:a,combo:b,onClose:c,onSave:m,activeProviders:n,kindFilter:o=null,forcePrefix:p="",title:q}){let r=b?.name?p&&b.name.startsWith(p)?b.name.slice(p.length):b.name:"",[s,t]=(0,e.useState)(r),[u,v]=(0,e.useState)(b?.models||[]),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)({});(0,e.useRef)(!1);let E=a=>{if(!a.trim())return B("Name is required"),!1;let b=p+a;return j.test(b)?(B(""),!0):(B("Only letters, numbers, -, _ and . allowed"),!1)},F=a=>{let b=a.target.value;p&&b.startsWith(p)&&(b=b.slice(p.length)),t(b),b?E(b):B("")},G=async()=>{E(s)&&(z(!0),await m({name:p+s.trim(),models:u}),z(!1))},H=!!b;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.A,{isOpen:a,onClose:c,title:q||(H?"Edit Combo":"Create Combo"),children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{children:[p?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("label",{htmlFor:"combo-name-input",className:"text-sm font-medium mb-1 block",children:"Combo Name"}),(0,d.jsxs)("div",{className:"flex items-stretch",children:[(0,d.jsx)("span",{className:"inline-flex items-center px-2 rounded-l border border-r-0 border-black/10 dark:border-white/10 bg-black/[0.04] dark:bg-white/[0.04] text-text-muted font-mono text-sm",children:p}),(0,d.jsx)("input",{id:"combo-name-input",value:s,onChange:F,placeholder:"my-combo",className:"flex-1 min-w-0 rounded-r border border-black/10 dark:border-white/10 bg-white dark:bg-black/20 px-2 py-1.5 font-mono text-sm outline-none focus:border-primary"})]}),A&&(0,d.jsx)("p",{className:"text-[11px] text-red-500 mt-0.5",children:A})]}):(0,d.jsx)(g.A,{label:"Combo Name",value:s,onChange:F,placeholder:"my-combo",error:A}),(0,d.jsxs)("p",{className:"text-[10px] text-text-muted mt-0.5",children:[p?`Auto-prefixed with "${p}". `:"","Only letters, numbers, -, _ and . allowed"]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===u.length?(0,d.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,d.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:u.map((a,b)=>(0,d.jsx)(k,{index:b,model:a,isFirst:0===b,isLast:b===u.length-1,onEdit:a=>{let c=[...u];c[b]=a,v(c)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...u];[b[a-1],b[a]]=[b[a],b[a-1]],v(b)})(b),onMoveDown:()=>(a=>{if(a===u.length-1)return;let b=[...u];[b[a],b[a+1]]=[b[a+1],b[a]],v(b)})(b),onRemove:()=>v(u.filter((a,c)=>c!==b))},a))}),(0,d.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,d.jsx)(h.A,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,d.jsx)(h.A,{onClick:G,fullWidth:!0,size:"sm",disabled:!s.trim()||!!A||y,children:y?"Saving...":H?"Save":"Create"})]})]})}),w&&(0,d.jsx)(i.default,{isOpen:w,onClose:()=>x(!1),onSelect:a=>{u.includes(a.value)||v([...u,a.value])},onDeselect:a=>{v(u.filter(b=>b!==a.value))},activeProviders:n,modelAliases:C,title:"Add Model to Combo",kindFilter:o,addedModelValues:u,closeOnSelect:!1,onBack:()=>x(!1)})]})}},99614:(a,b,c)=>{c.r(b),c.d(b,{default:()=>n});var d=c(66238),e=c(71183),f=c(34455),g=c(95988),h=c(42148),i=c(55009),j=c(47953),k=c(53207);let l=[...Object.keys(k.zN),...Object.keys(k.IS),...Object.keys(k.nJ),...Object.keys(k.fg)],m=Object.keys(k.IS).filter(a=>k.IS[a].noAuth);function n({isOpen:a,onClose:b,onSelect:c,onDeselect:o,selectedModel:p,activeProviders:q=[],title:r="Select Model",modelAliases:s={},kindFilter:t=null,addedModelValues:u=[],closeOnSelect:v=!0}){let w=(0,e.useMemo)(()=>t?q.filter(a=>{let b=k.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(t)}):q,[q,t]),{getCaps:x}=(0,i.y)(),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)([]),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)({}),[I,J]=(0,e.useState)([]);(0,e.useMemo)(()=>q.filter(a=>"cursor"===a.provider&&a.id).map(a=>a.id),[q]);let K=(0,e.useMemo)(()=>({...k.zN,...k.IS,...k.nJ,...k.fg}),[]),L=(0,e.useMemo)(()=>{let a={},b=new Set(["webSearch","webFetch"]),c=new Set(["image","tts","stt","embedding","imageToText"]),d=new Set(["tts","image","webFetch"]);return[...new Set([...w.map(a=>a.provider),...t?m.filter(a=>(k.Q2[a]?.serviceKinds||["llm"]).includes(t)):m])].sort((a,b)=>{let c=l.indexOf(a),d=l.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)}).forEach(e=>{let f=(0,k.wG)(e),g=K[e]||{name:e,color:"#666"},h=(0,k.mq)(e)||(0,k.gb)(e);if(t&&b.has(t)){a[e]={name:g.name,alias:f,color:g.color,models:[{id:e,name:g.name,value:e}]};return}if(g.passthroughModels){let b=Object.entries(s).filter(([,a])=>a.startsWith(`${f}/`)).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b})),h=E.filter(a=>a.providerAlias===f).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,kind:(0,j.CP)(a),isCustom:!0})),i=b;if(t&&c.has(t)){let a=h.filter(a=>(0,j.CP)(a)===t);0===(i=[...a,...(0,j.KC)(e).filter(a=>(0,j.CP)(a)===t).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,j.CP)(a)})).filter(b=>!a.some(a=>a.value===b.value))]).length&&d.has(t)&&(g.serviceKinds||["llm"]).includes(t)&&(i=[{id:e,name:g.name,value:f}])}else{let a=h.filter(a=>!(0,j.CP)(a)||"llm"===(0,j.CP)(a)),c=new Set([...b,...a].map(a=>a.value)),d=(0,j.KC)(e).filter(a=>!(0,j.CP)(a)||"llm"===(0,j.CP)(a)).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,j.CP)(a)})).filter(a=>!c.has(a.value));i=[...a,...b.filter(b=>!a.some(a=>a.value===b.value)),...d]}if(i.length>0){let b=C.find(a=>a.id===e),c=b?.name||g.name;a[e]={name:c,alias:f,color:g.color,models:i}}}else if(h){if(t&&c.has(t))return;let b=q.find(a=>a.provider===e),d=C.find(a=>a.id===e),f=d?.name||b?.name||g.name,h=b?.providerSpecificData?.prefix||d?.prefix||e,i=Object.entries(s).filter(([,a])=>a.startsWith(`${e}/`)).map(([a,b])=>({id:b.replace(`${e}/`,""),name:a,value:`${h}/${b.replace(`${e}/`,"")}`})),j=E.filter(a=>a.providerAlias===e).map(a=>({id:a.id,name:a.name||a.id,value:`${h}/${a.id}`,isCustom:!0})),k=new Set(i.map(a=>a.value)),l=[...i,...j.filter(a=>!k.has(a.value))],m=l.length>0?l:[{id:`__placeholder__${e}`,name:`${h}/model-id`,value:`${h}/model-id`,isPlaceholder:!0}];a[e]={name:f,alias:h,color:g.color,models:m,isCustom:!0,hasModels:l.length>0}}else{var i;let b="cursor"===e&&I.length>0?I:(0,j.KC)(e),h=new Set(b.map(a=>a.id)),k=b.length>0,l=Object.entries(s).filter(([a,b])=>b.startsWith(`${f}/`)&&(!k||a===b.replace(`${f}/`,""))&&!h.has(b.replace(`${f}/`,""))).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b,isCustom:!0})),m=new Set(l.map(a=>a.id)),n=E.filter(a=>a.providerAlias===f&&!h.has(a.id)&&!m.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isCustom:!0})),o=[...b.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,j.CP)(a)})),...l,...n],p=new Set,q=(i=o.filter(a=>!p.has(a.value)&&(p.add(a.value),!0)),t?c.has(t)?i.filter(a=>a.isPlaceholder||(0,j.CP)(a)===t):i:i.filter(a=>a.isPlaceholder||a.isCustom||!(0,j.CP)(a)||"llm"===(0,j.CP)(a)));0===q.length&&t&&d.has(t)&&(g.serviceKinds||["llm"]).includes(t)&&(q=[{id:e,name:g.name,value:f}]),q.length>0&&(a[e]={name:g.name,alias:f,color:g.color,models:q})}}),Object.entries(a).forEach(([b,c])=>{let d=new Set([...G[(0,k.wG)(b)]||[],...G[b]||[]]);0!==d.size&&(c.models=c.models.filter(a=>!d.has(a.id)),0===c.models.length&&delete a[b])}),a},[w,s,K,C,E,G,t,q,I]),M=(0,e.useMemo)(()=>{if(t)return[];if(!y.trim())return A;let a=y.toLowerCase();return A.filter(b=>b.name.toLowerCase().includes(a))},[A,y,t]),N=(0,e.useMemo)(()=>{let a=y.trim().toLowerCase(),b={};return Object.entries(L).forEach(([c,d])=>{var e;let f=d.models;if(a){let b=d.name.toLowerCase().includes(a);if(0===(f=f.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a))).length&&!b)return}b[c]={...d,models:[...(e=f).filter(a=>u.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),...e.filter(a=>!u.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name))]}}),b},[L,y,u]),O=a=>{let d=a?.value||a?.name||a;u.includes(d)&&o?o(a):c(a),v&&(b(),z(""))};return(0,d.jsxs)(f.A,{isOpen:a,onClose:()=>{b(),z("")},title:r,size:"md",className:"p-4!",footer:null,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,d.jsx)("span",{children:"Click to add, click again to remove. Changes are saved automatically."})]}),(0,d.jsx)("div",{className:"mb-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search...",value:y,onChange:a=>z(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]})}),(0,d.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[M.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:"Combos"}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",M.length,")"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:M.map(a=>{let b=p===a.name;return(0,d.jsxs)("button",{onClick:()=>O({id:a.name,name:a.name,value:a.name}),className:`
1
+ "use strict";exports.id=4029,exports.ids=[4029,9808],exports.modules={14029:(a,b,c)=>{c.r(b),c.d(b,{default:()=>l});var d=c(66238),e=c(71183),f=c(34455),g=c(75814),h=c(93864),i=c(19808);let j=/^[a-zA-Z0-9_.\-]+$/;function k({index:a,model:b,isFirst:c,isLast:f,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(b);p!==b&&(q(b),o(null));let r=n??b,s=()=>{let a=r.trim();a&&a!==b?g(a):o(null),m(!1)};return(0,d.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,d.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:a+1}),l?(0,d.jsx)("input",{value:r,onChange:a=>o(a.target.value),onBlur:s,onKeyDown:a=>{"Enter"===a.key&&s(),"Escape"===a.key&&(o(null),m(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20","aria-label":`Edit model ${a+1}`}):(0,d.jsx)("button",{type:"button",className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main text-left hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>m(!0),title:"Click to edit","aria-label":`Edit model: ${b}`,children:b}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,d.jsx)("button",{type:"button",onClick:h,disabled:c,className:`p-0.5 rounded ${c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,d.jsx)("button",{type:"button",onClick:i,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,d.jsx)("button",{type:"button",onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function l({isOpen:a,combo:b,onClose:c,onSave:m,activeProviders:n,kindFilter:o=null,forcePrefix:p="",title:q}){let r=b?.name?p&&b.name.startsWith(p)?b.name.slice(p.length):b.name:"",[s,t]=(0,e.useState)(r),[u,v]=(0,e.useState)(b?.models||[]),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(""),[C,D]=(0,e.useState)({});(0,e.useRef)(!1);let E=a=>{if(!a.trim())return B("Name is required"),!1;let b=p+a;return j.test(b)?(B(""),!0):(B("Only letters, numbers, -, _ and . allowed"),!1)},F=a=>{let b=a.target.value;p&&b.startsWith(p)&&(b=b.slice(p.length)),t(b),b?E(b):B("")},G=async()=>{E(s)&&(z(!0),await m({name:p+s.trim(),models:u}),z(!1))},H=!!b;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.A,{isOpen:a,onClose:c,title:q||(H?"Edit Combo":"Create Combo"),children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{children:[p?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("label",{htmlFor:"combo-name-input",className:"text-sm font-medium mb-1 block",children:"Combo Name"}),(0,d.jsxs)("div",{className:"flex items-stretch",children:[(0,d.jsx)("span",{className:"inline-flex items-center px-2 rounded-l border border-r-0 border-black/10 dark:border-white/10 bg-black/[0.04] dark:bg-white/[0.04] text-text-muted font-mono text-sm",children:p}),(0,d.jsx)("input",{id:"combo-name-input",value:s,onChange:F,placeholder:"my-combo",className:"flex-1 min-w-0 rounded-r border border-black/10 dark:border-white/10 bg-white dark:bg-black/20 px-2 py-1.5 font-mono text-sm outline-none focus:border-primary"})]}),A&&(0,d.jsx)("p",{className:"text-[11px] text-red-500 mt-0.5",children:A})]}):(0,d.jsx)(g.A,{label:"Combo Name",value:s,onChange:F,placeholder:"my-combo",error:A}),(0,d.jsxs)("p",{className:"text-[10px] text-text-muted mt-0.5",children:[p?`Auto-prefixed with "${p}". `:"","Only letters, numbers, -, _ and . allowed"]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===u.length?(0,d.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,d.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:u.map((a,b)=>(0,d.jsx)(k,{index:b,model:a,isFirst:0===b,isLast:b===u.length-1,onEdit:a=>{let c=[...u];c[b]=a,v(c)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...u];[b[a-1],b[a]]=[b[a],b[a-1]],v(b)})(b),onMoveDown:()=>(a=>{if(a===u.length-1)return;let b=[...u];[b[a],b[a+1]]=[b[a+1],b[a]],v(b)})(b),onRemove:()=>v(u.filter((a,c)=>c!==b))},a))}),(0,d.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,d.jsx)(h.A,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,d.jsx)(h.A,{onClick:G,fullWidth:!0,size:"sm",disabled:!s.trim()||!!A||y,children:y?"Saving...":H?"Save":"Create"})]})]})}),w&&(0,d.jsx)(i.default,{isOpen:w,onClose:()=>x(!1),onSelect:a=>{u.includes(a.value)||v([...u,a.value])},onDeselect:a=>{v(u.filter(b=>b!==a.value))},activeProviders:n,modelAliases:C,title:"Add Model to Combo",kindFilter:o,addedModelValues:u,closeOnSelect:!1,onBack:()=>x(!1)})]})}},19808:(a,b,c)=>{c.r(b),c.d(b,{default:()=>n});var d=c(66238),e=c(71183),f=c(34455),g=c(95988),h=c(42148),i=c(55009),j=c(53207),k=c(47953);let l=[...Object.keys(j.zN),...Object.keys(j.IS),...Object.keys(j.nJ),...Object.keys(j.fg)],m=Object.keys(j.IS).filter(a=>j.IS[a].noAuth);function n({isOpen:a,onClose:b,onSelect:c,onDeselect:o,selectedModel:p,activeProviders:q=[],title:r="Select Model",modelAliases:s={},kindFilter:t=null,addedModelValues:u=[],closeOnSelect:v=!0}){let w=(0,e.useMemo)(()=>t?q.filter(a=>{let b=j.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(t)}):q,[q,t]),{getCaps:x}=(0,i.y)(),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)([]),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)({}),[I,J]=(0,e.useState)([]);(0,e.useMemo)(()=>q.filter(a=>"cursor"===a.provider&&a.id).map(a=>a.id),[q]);let K=(0,e.useMemo)(()=>({...j.zN,...j.IS,...j.nJ,...j.fg}),[]),L=(0,e.useMemo)(()=>(function({filteredActiveProviders:a,activeProviders:b,kindFilter:c,providerNodes:d,customModels:e,disabledModels:f,modelAliases:g,allProviders:h,cursorModels:i=[]}){let n={},o=new Set(["webSearch","webFetch"]),p=new Set(["image","tts","stt","embedding","imageToText","video"]),q=new Set(["tts","image","webFetch"]);return[...new Set([...a.map(a=>a.provider),...c?m.filter(a=>(j.Q2[a]?.serviceKinds||["llm"]).includes(c)):m])].toSorted((a,b)=>{let c=l.indexOf(a),d=l.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)}).forEach(a=>{let f=(0,j.wG)(a),l=h[a]||{name:a,color:"#666"},m=(0,j.mq)(a)||(0,j.gb)(a);if(c&&o.has(c)){n[a]={name:l.name,alias:f,color:l.color,models:[{id:a,name:l.name,value:a}]};return}if(l.passthroughModels){let b=Object.entries(g).reduce((a,[b,c])=>(c.startsWith(`${f}/`)&&a.push({id:c.replace(`${f}/`,""),name:b,value:c}),a),[]),h=e.filter(a=>a.providerAlias===f).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,kind:(0,k.CP)(a),isCustom:!0})),i=b;if(c&&p.has(c)){let b=h.filter(a=>(0,k.CP)(a)===c);0===(i=[...b,...(0,k.KC)(a).filter(a=>(0,k.CP)(a)===c).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,k.CP)(a)})).filter(a=>!b.some(b=>b.value===a.value))]).length&&q.has(c)&&(l.serviceKinds||["llm"]).includes(c)&&(i=[{id:a,name:l.name,value:f}])}else{let c=h.filter(a=>!(0,k.CP)(a)||"llm"===(0,k.CP)(a)),d=new Set([...b,...c].map(a=>a.value)),e=(0,k.KC)(a).filter(a=>!(0,k.CP)(a)||"llm"===(0,k.CP)(a)).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,k.CP)(a)})).filter(a=>!d.has(a.value));i=[...c,...b.filter(a=>!c.some(b=>b.value===a.value)),...e]}if(i.length>0){let b=d.find(b=>b.id===a),c=b?.name||l.name;n[a]={name:c,alias:f,color:l.color,models:i}}}else if(m){if(c&&p.has(c))return;let f=b.find(b=>b.provider===a),h=d.find(b=>b.id===a),i=h?.name||f?.name||l.name,j=f?.providerSpecificData?.prefix||h?.prefix||a,k=Object.entries(g).reduce((b,[c,d])=>(d.startsWith(`${a}/`)&&b.push({id:d.replace(`${a}/`,""),name:c,value:`${j}/${d.replace(`${a}/`,"")}`}),b),[]),m=e.filter(b=>b.providerAlias===a).map(a=>({id:a.id,name:a.name||a.id,value:`${j}/${a.id}`,isCustom:!0})),o=new Set(k.map(a=>a.value)),q=[...k,...m.filter(a=>!o.has(a.value))],r=q.length>0?q:[{id:`__placeholder__${a}`,name:`${j}/model-id`,value:`${j}/model-id`,isPlaceholder:!0}];n[a]={name:i,alias:j,color:l.color,models:r,isCustom:!0,hasModels:q.length>0}}else{var r;let b="cursor"===a&&i.length>0?i:(0,k.KC)(a),d=new Set(b.map(a=>a.id)),h=b.length>0,j=Object.entries(g).reduce((a,[b,c])=>{if(!c.startsWith(`${f}/`))return a;let e=c.replace(`${f}/`,"");return h&&b!==e||d.has(e)||a.push({id:e,name:b,value:c,isCustom:!0}),a},[]),m=new Set(j.map(a=>a.id)),o=e.reduce((a,b)=>(b.providerAlias!==f||d.has(b.id)||m.has(b.id)||a.push({id:b.id,name:b.name||b.id,value:`${f}/${b.id}`,isCustom:!0}),a),[]),s=[...b.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,k.CP)(a)})),...j,...o],t=new Set,u=(r=s.filter(a=>!t.has(a.value)&&(t.add(a.value),!0)),c?p.has(c)?r.filter(a=>a.isPlaceholder||(0,k.CP)(a)===c):r:r.filter(a=>a.isPlaceholder||a.isCustom||!(0,k.CP)(a)||"llm"===(0,k.CP)(a)));0===u.length&&c&&q.has(c)&&(l.serviceKinds||["llm"]).includes(c)&&(u=[{id:a,name:l.name,value:f}]),u.length>0&&(n[a]={name:l.name,alias:f,color:l.color,models:u})}}),Object.entries(n).forEach(([a,b])=>{let c=new Set([...f[(0,j.wG)(a)]||[],...f[a]||[]]);0!==c.size&&(b.models=b.models.filter(a=>!c.has(a.id)),0===b.models.length&&delete n[a])}),n})({filteredActiveProviders:w,activeProviders:q,kindFilter:t,providerNodes:C,customModels:E,disabledModels:G,modelAliases:s,allProviders:K,cursorModels:I}),[w,q,t,C,E,G,s,K,I]),M=(0,e.useMemo)(()=>{if(t)return[];if(!y.trim())return A;let a=y.toLowerCase();return A.filter(b=>b.name.toLowerCase().includes(a))},[A,y,t]),N=(0,e.useMemo)(()=>{let a=y.trim().toLowerCase(),b={};return Object.entries(L).forEach(([c,d])=>{var e;let f=d.models;if(a){let b=d.name.toLowerCase().includes(a);if(0===(f=f.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a))).length&&!b)return}b[c]={...d,models:[...(e=f).filter(a=>u.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),...e.filter(a=>!u.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name))]}}),b},[L,y,u]),O=a=>{let d=a?.value||a?.name||a;u.includes(d)&&o?o(a):c(a),v&&(b(),z(""))};return(0,d.jsxs)(f.A,{isOpen:a,onClose:()=>{b(),z("")},title:r,size:"md",className:"p-4!",footer:null,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,d.jsx)("span",{children:"Click to add, click again to remove. Changes are saved automatically."})]}),(0,d.jsx)("div",{className:"mb-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search...",value:y,onChange:a=>z(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]})}),(0,d.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[M.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:"Combos"}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",M.length,")"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:M.map(a=>{let b=p===a.name;return(0,d.jsxs)("button",{onClick:()=>O({id:a.name,name:a.name,value:a.name}),className:`
2
2
  px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer flex items-center gap-1
3
3
  ${b?"bg-primary text-white border-primary":u.includes(a.name)?"bg-primary border-primary text-white hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
4
4
  `,children:[u.includes(a.name)&&(0,d.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),a.name]},a.id)})})]}),Object.entries(N).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)(g.A,{src:`/providers/${a}.webp`,alt:b.name,size:14,fallbackText:(b.name||a).slice(0,2).toUpperCase(),fallbackColor:b.color}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:b.name}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",b.models.length,")"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:b.models.map(a=>{let b=p===a.value,c=a.isPlaceholder;return(0,d.jsx)("button",{onClick:()=>O(a),title:c?"Select to pre-fill, then edit model ID in the input":void 0,className:`
5
5
  px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer
6
6
  ${c?"border-dashed border-border text-text-muted hover:border-primary/50 hover:text-primary bg-surface italic":b?"bg-primary text-white border-primary":u.includes(a.value)?"bg-primary border-primary text-white hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
7
- `,children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[u.includes(a.value)&&!c&&(0,d.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),a.name]}):a.isCustom?(0,d.jsxs)(d.Fragment,{children:[a.name,(0,d.jsx)("span",{className:"text-[9px] opacity-60 font-normal",children:"custom"}),(0,d.jsx)(h.A,{caps:x(a.value)})]}):(0,d.jsxs)(d.Fragment,{children:[a.name,(0,d.jsx)(h.A,{caps:x(a.value)})]})]})},a.value)})})]},a)),0===Object.keys(N).length&&0===M.length&&(0,d.jsxs)("div",{className:"text-center py-4 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1 block",children:"search_off"}),(0,d.jsx)("p",{className:"text-xs",children:"No models found"})]})]})]})}}};
7
+ `,children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[u.includes(a.value)&&!c&&(0,d.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),a.name]}):a.isCustom?(0,d.jsxs)(d.Fragment,{children:[a.name,(0,d.jsx)("span",{className:"text-[9px] opacity-60 font-normal",children:"custom"}),(0,d.jsx)(h.A,{caps:x(a.value)})]}):(0,d.jsxs)(d.Fragment,{children:[a.name,(0,d.jsx)(h.A,{caps:x(a.value)})]})]})},a.value)})})]},a)),0===Object.keys(N).length&&0===M.length&&(0,d.jsxs)("div",{className:"text-center py-4 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1 block",children:"search_off"}),(0,d.jsx)("p",{className:"text-xs",children:"No models found"})]})]})]})}[...Object.keys(j.zN),...Object.keys(j.IS),...Object.keys(j.nJ),...Object.keys(j.fg)],Object.keys(j.IS).filter(a=>j.IS[a].noAuth)}};
@@ -40,4 +40,4 @@
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 r(a){return new Promise(b=>{if(j)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}if(!h(b.headers.origin)){d.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,"Cross-origin callback rejected"));return}let g=e.searchParams.get("code"),i=e.searchParams.get("state"),j=e.searchParams.get("error"),k=i?m.get(i):null;if(k){try{if(j)throw Error(e.searchParams.get("error_description")||j);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(3398),c.e(1725),c.e(7010),c.e(9974),c.e(2445),c.e(6415),c.e(5300),c.e(32),c.e(4502),c.e(4574),c.e(2557),c.e(5198)]).then(c.bind(c,96975)),{createProviderConnection:b}=await Promise.resolve().then(c.bind(c,46820)),f=await a("codex",g,k.redirectUri,k.codeVerifier,i),h=f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,l=await b({provider:"codex",authType:"oauth",...f,expiresAt:h,testStatus:"active"});k.status="done",k.connectionId=l.id,k.email=l.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{s()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),s()});d.listen(l,"127.0.0.1",()=>{j=d,k=setTimeout(()=>s(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function s(){k&&(clearTimeout(k),k=null),j&&(j.close(),j=null)}let t=null,u=null,v=new Map;function w({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(v.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function x(a){return v.get(a)||null}function y(a){v.delete(a)}function z(a){return new Promise(b=>{if(t)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}if(!h(b.headers.origin)){d.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,"Cross-origin callback rejected"));return}let g=e.searchParams.get("code"),i=e.searchParams.get("state"),j=e.searchParams.get("error"),k=i?v.get(i):null;if(k){try{if(j)throw Error(e.searchParams.get("error_description")||j);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(3398),c.e(1725),c.e(7010),c.e(9974),c.e(2445),c.e(6415),c.e(5300),c.e(32),c.e(4502),c.e(4574),c.e(2557),c.e(5198)]).then(c.bind(c,96975)),{createProviderConnection:b}=await Promise.resolve().then(c.bind(c,46820)),f=await a("xai",g,k.redirectUri,k.codeVerifier,i),h=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});k.status="done",k.connectionId=h.id,k.email=h.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{A()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),A()});d.listen(56121,"127.0.0.1",()=>{t=d,u=setTimeout(()=>A(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function A(){u&&(clearTimeout(u),u=null),t&&(t.close(),t=null)}},26254:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},59824:(a,b,c)=>{c.d(b,{Bq:()=>C,DI:()=>i,DV:()=>y,Hp:()=>k,LT:()=>j,MZ:()=>t,Nl:()=>x,Nu:()=>p,OV:()=>h,Op:()=>z,Td:()=>A,Tx:()=>q,WN:()=>r,Ww:()=>D,YT:()=>n,ZL:()=>m,aV:()=>s,cD:()=>o,f7:()=>w,hF:()=>l,lB:()=>u,qp:()=>B,w1:()=>v});var d=c(21820),e=c(24567),f=c(17863);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},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={...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"}},s={...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},t={...f.sr.kilocode},u={...f.sr.cline},v={...f.sr.clinepass},w={...f.sr.gitlab},x={...f.sr["codebuddy-cn"]},y={...f.sr["codebuddy-intl"]},z={...f.sr.zcode},A={...f.sr.kimchi},B={...f.sr["grok-cli"]},C={...f.sr.freebuff},D=3e5}};
43
+ </div></body></html>`}function r(a){return new Promise(b=>{if(j)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}if(!h(b.headers.origin)){d.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,"Cross-origin callback rejected"));return}let g=e.searchParams.get("code"),i=e.searchParams.get("state"),j=e.searchParams.get("error"),k=i?m.get(i):null;if(k){try{if(j)throw Error(e.searchParams.get("error_description")||j);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(3398),c.e(1725),c.e(7010),c.e(9974),c.e(6415),c.e(5300),c.e(2445),c.e(32),c.e(4502),c.e(4574),c.e(2557),c.e(5198)]).then(c.bind(c,96975)),{createProviderConnection:b}=await Promise.resolve().then(c.bind(c,46820)),f=await a("codex",g,k.redirectUri,k.codeVerifier,i),h=f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,l=await b({provider:"codex",authType:"oauth",...f,expiresAt:h,testStatus:"active"});k.status="done",k.connectionId=l.id,k.email=l.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{s()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),s()});d.listen(l,"127.0.0.1",()=>{j=d,k=setTimeout(()=>s(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function s(){k&&(clearTimeout(k),k=null),j&&(j.close(),j=null)}let t=null,u=null,v=new Map;function w({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(v.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function x(a){return v.get(a)||null}function y(a){v.delete(a)}function z(a){return new Promise(b=>{if(t)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}if(!h(b.headers.origin)){d.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,"Cross-origin callback rejected"));return}let g=e.searchParams.get("code"),i=e.searchParams.get("state"),j=e.searchParams.get("error"),k=i?v.get(i):null;if(k){try{if(j)throw Error(e.searchParams.get("error_description")||j);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(3398),c.e(1725),c.e(7010),c.e(9974),c.e(6415),c.e(5300),c.e(2445),c.e(32),c.e(4502),c.e(4574),c.e(2557),c.e(5198)]).then(c.bind(c,96975)),{createProviderConnection:b}=await Promise.resolve().then(c.bind(c,46820)),f=await a("xai",g,k.redirectUri,k.codeVerifier,i),h=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});k.status="done",k.connectionId=h.id,k.email=h.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{A()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),A()});d.listen(56121,"127.0.0.1",()=>{t=d,u=setTimeout(()=>A(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function A(){u&&(clearTimeout(u),u=null),t&&(t.close(),t=null)}},26254:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},59824:(a,b,c)=>{c.d(b,{Bq:()=>C,DI:()=>i,DV:()=>y,Hp:()=>k,LT:()=>j,MZ:()=>t,Nl:()=>x,Nu:()=>p,OV:()=>h,Op:()=>z,Td:()=>A,Tx:()=>q,WN:()=>r,Ww:()=>D,YT:()=>n,ZL:()=>m,aV:()=>s,cD:()=>o,f7:()=>w,hF:()=>l,lB:()=>u,qp:()=>B,w1:()=>v});var d=c(21820),e=c(24567),f=c(17863);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},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={...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"}},s={...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},t={...f.sr.kilocode},u={...f.sr.cline},v={...f.sr.clinepass},w={...f.sr.gitlab},x={...f.sr["codebuddy-cn"]},y={...f.sr["codebuddy-intl"]},z={...f.sr.zcode},A={...f.sr.kimchi},B={...f.sr["grok-cli"]},C={...f.sr.freebuff},D=3e5}};