switchboard-router 0.5.21 → 0.6.0

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 (1233) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +17 -8
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +3 -435
  5. package/app/.next-cli-build/required-server-files.json +9 -2
  6. package/app/.next-cli-build/routes-manifest.json +86 -13
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +2 -2
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +11 -24
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js +2 -2
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +3 -3
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +16 -16
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +4 -4
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +2 -2
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js +2 -2
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  82. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  83. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  88. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  92. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  93. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  94. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  96. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  97. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  98. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  99. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  101. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  103. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  104. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/agent-library/export/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/agent-library/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +5 -11
  121. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +13 -38
  123. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  125. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  129. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +5 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +5 -9
  141. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +5 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +9 -10
  145. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +9 -6
  147. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +8 -10
  149. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +6 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +5 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -2
  155. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  157. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +5 -2
  159. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  181. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  183. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -0
  195. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -0
  196. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route_client-reference-manifest.js +1 -0
  197. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -0
  198. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -0
  199. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route_client-reference-manifest.js +1 -0
  200. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -0
  201. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -0
  202. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route_client-reference-manifest.js +1 -0
  203. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js +1 -0
  204. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -0
  205. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route_client-reference-manifest.js +1 -0
  206. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js +1 -0
  207. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -0
  208. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route_client-reference-manifest.js +1 -0
  209. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js +1 -0
  210. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -0
  211. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route_client-reference-manifest.js +1 -0
  212. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -0
  213. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -0
  214. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route_client-reference-manifest.js +1 -0
  215. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js +1 -0
  216. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -0
  217. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route_client-reference-manifest.js +1 -0
  218. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  237. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -0
  293. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -0
  294. package/app/.next-cli-build/server/app/api/routing/feedback/route_client-reference-manifest.js +1 -0
  295. package/app/.next-cli-build/server/app/api/routing/insights/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/routing/learn/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/routing/stats/route.js +1 -0
  300. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -0
  301. package/app/.next-cli-build/server/app/api/routing/stats/route_client-reference-manifest.js +1 -0
  302. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/skills/[id]/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js +1 -0
  319. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -0
  320. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route_client-reference-manifest.js +1 -0
  321. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  324. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  352. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  366. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  398. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/app/callback.html +1 -1
  401. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  402. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  403. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  405. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  406. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  407. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  409. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  411. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  413. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  414. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  416. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  418. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  421. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  422. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/index.html +1 -1
  424. package/app/.next-cli-build/server/app/index.rsc +4 -4
  425. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  427. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  429. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  431. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  433. package/app/.next-cli-build/server/app/landing.html +1 -1
  434. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  435. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  436. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  437. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  438. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  439. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  441. package/app/.next-cli-build/server/app/login/page.js +2 -2
  442. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  444. package/app/.next-cli-build/server/app/login.html +1 -1
  445. package/app/.next-cli-build/server/app/login.rsc +4 -4
  446. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  447. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  449. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  450. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  451. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  452. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  453. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/page.js +2 -2
  455. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  457. package/app/.next-cli-build/server/app-paths-manifest.json +17 -8
  458. package/app/.next-cli-build/server/chunks/1062.js +64 -0
  459. package/app/.next-cli-build/server/chunks/1064.js +104 -0
  460. package/app/.next-cli-build/server/chunks/1294.js +49 -0
  461. package/app/.next-cli-build/server/chunks/159.js +1 -0
  462. package/app/.next-cli-build/server/chunks/1808.js +1 -0
  463. package/app/.next-cli-build/server/chunks/1814.js +2 -2
  464. package/app/.next-cli-build/server/chunks/194.js +1 -0
  465. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  466. package/app/.next-cli-build/server/chunks/241.js +1 -1
  467. package/app/.next-cli-build/server/chunks/2712.js +3 -0
  468. package/app/.next-cli-build/server/chunks/{9528.js → 2750.js} +2 -3
  469. package/app/.next-cli-build/server/chunks/2925.js +1 -0
  470. package/app/.next-cli-build/server/chunks/3072.js +2 -0
  471. package/app/.next-cli-build/server/chunks/3075.js +1 -0
  472. package/app/.next-cli-build/server/chunks/319.js +3 -3
  473. package/app/.next-cli-build/server/chunks/3535.js +1 -1
  474. package/app/.next-cli-build/server/chunks/3546.js +1 -1
  475. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  476. package/app/.next-cli-build/server/chunks/3675.js +1 -0
  477. package/app/.next-cli-build/server/chunks/369.js +70 -0
  478. package/app/.next-cli-build/server/chunks/3904.js +1 -0
  479. package/app/.next-cli-build/server/chunks/3986.js +49 -14
  480. package/app/.next-cli-build/server/chunks/4126.js +5 -0
  481. package/app/.next-cli-build/server/chunks/{2422.js → 4176.js} +1 -1
  482. package/app/.next-cli-build/server/chunks/4192.js +1 -0
  483. package/app/.next-cli-build/server/chunks/4194.js +1 -1
  484. package/app/.next-cli-build/server/chunks/440.js +26 -0
  485. package/app/.next-cli-build/server/chunks/4646.js +1 -0
  486. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  487. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  488. package/app/.next-cli-build/server/chunks/4776.js +33 -0
  489. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  490. package/app/.next-cli-build/server/chunks/4803.js +9 -0
  491. package/app/.next-cli-build/server/chunks/4904.js +10 -0
  492. package/app/.next-cli-build/server/chunks/507.js +1 -1
  493. package/app/.next-cli-build/server/chunks/5115.js +67 -0
  494. package/app/.next-cli-build/server/chunks/5139.js +1 -0
  495. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  496. package/app/.next-cli-build/server/chunks/5350.js +1 -0
  497. package/app/.next-cli-build/server/chunks/5615.js +3 -3
  498. package/app/.next-cli-build/server/chunks/5821.js +1 -0
  499. package/app/.next-cli-build/server/chunks/6103.js +1 -0
  500. package/app/.next-cli-build/server/chunks/615.js +1 -1
  501. package/app/.next-cli-build/server/chunks/6182.js +3 -3
  502. package/app/.next-cli-build/server/chunks/6252.js +9 -0
  503. package/app/.next-cli-build/server/chunks/6448.js +109 -0
  504. package/app/.next-cli-build/server/chunks/{4206.js → 6470.js} +1 -1
  505. package/app/.next-cli-build/server/chunks/6492.js +1 -0
  506. package/app/.next-cli-build/server/chunks/6844.js +1 -1
  507. package/app/.next-cli-build/server/chunks/698.js +1 -1
  508. package/app/.next-cli-build/server/chunks/7141.js +1 -0
  509. package/app/.next-cli-build/server/chunks/7155.js +1 -0
  510. package/app/.next-cli-build/server/chunks/7250.js +1 -0
  511. package/app/.next-cli-build/server/chunks/7335.js +1 -0
  512. package/app/.next-cli-build/server/chunks/7662.js +1 -0
  513. package/app/.next-cli-build/server/chunks/7753.js +1 -0
  514. package/app/.next-cli-build/server/chunks/7828.js +1 -0
  515. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  516. package/app/.next-cli-build/server/chunks/8062.js +9 -0
  517. package/app/.next-cli-build/server/chunks/8117.js +1 -0
  518. package/app/.next-cli-build/server/chunks/8129.js +1 -0
  519. package/app/.next-cli-build/server/chunks/8400.js +153 -0
  520. package/app/.next-cli-build/server/chunks/8469.js +9 -0
  521. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  522. package/app/.next-cli-build/server/chunks/869.js +1 -0
  523. package/app/.next-cli-build/server/chunks/8775.js +1 -1
  524. package/app/.next-cli-build/server/chunks/8998.js +486 -0
  525. package/app/.next-cli-build/server/chunks/9046.js +1 -0
  526. package/app/.next-cli-build/server/chunks/9062.js +104 -0
  527. package/app/.next-cli-build/server/chunks/9261.js +88 -0
  528. package/app/.next-cli-build/server/chunks/9291.js +1 -0
  529. package/app/.next-cli-build/server/chunks/9397.js +1 -0
  530. package/app/.next-cli-build/server/chunks/9489.js +8 -0
  531. package/app/.next-cli-build/server/chunks/9508.js +45 -0
  532. package/app/.next-cli-build/server/chunks/9696.js +3 -3
  533. package/app/.next-cli-build/server/chunks/995.js +1 -0
  534. package/app/.next-cli-build/server/chunks/static/media/catalog.e7ada387.json +1710 -0
  535. package/app/.next-cli-build/server/instrumentation.js +1 -0
  536. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  537. package/app/.next-cli-build/server/middleware.js +11 -11
  538. package/app/.next-cli-build/server/pages/404.html +1 -1
  539. package/app/.next-cli-build/server/pages/500.html +1 -1
  540. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  541. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  542. package/app/.next-cli-build/server/webpack-runtime.js +1 -1
  543. package/app/.next-cli-build/static/chunks/1321-a44fdd7adfc172fb.js +1 -0
  544. package/app/.next-cli-build/static/chunks/136-b76ff55769d5ecb1.js +1 -0
  545. package/app/.next-cli-build/static/chunks/2280-61262f8359f37a85.js +64 -0
  546. package/app/.next-cli-build/static/chunks/2493-6241eb181f2ecb6e.js +67 -0
  547. package/app/.next-cli-build/static/chunks/5497-aa5f62602eba33e9.js +7 -0
  548. package/app/.next-cli-build/static/chunks/7592-bbf465c7acd2478e.js +1 -0
  549. package/app/.next-cli-build/static/chunks/782-3676be0287313117.js +3 -0
  550. package/app/.next-cli-build/static/chunks/8500-287dd3e5d372ba6f.js +1 -0
  551. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-3eb83b61eb3cbc9f.js +1 -0
  552. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-04509a38b9fd3dcf.js +1 -0
  553. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-fa35870caaeabe20.js +1 -0
  554. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-88244cb193592f8f.js → page-aa9c65a5e73a3f5d.js} +1 -1
  555. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a8d77d24b4c71915.js +1 -0
  556. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-95f09ae849f539d6.js +1 -0
  557. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-6678759c536b4008.js +1 -0
  558. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-59e92d48daea1aed.js +3 -0
  559. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-183cf5498e6d3e42.js +59 -0
  560. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-b67e7e3b9acaf1cc.js +1 -0
  561. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-a4bad553cba810e7.js +4 -0
  562. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/{page-36448aa4e37c7802.js → page-0568602ac2385103.js} +1 -1
  563. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-f6e3507247a819e5.js +1 -0
  564. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-755ed32651028f99.js → page-08fe6612a31239da.js} +1 -1
  565. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-27ae229b00137a0b.js +1 -0
  566. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-a1ab95a02951c91d.js +1 -0
  567. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-0d7fcdbff356b2ab.js +10 -0
  568. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-608cdc11e7047159.js +1 -0
  569. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-ad84a479883e6cc3.js +1 -0
  570. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-f312c1076859630e.js +1 -0
  571. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-90277b8688f387c1.js +1 -0
  572. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-77bb7400c2be9752.js → page-33e127c15efc66a5.js} +1 -1
  573. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-0f74a450b98fa125.js +1 -0
  574. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-ad2eda4b48c9319b.js +1 -0
  575. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-025d20cc7b091120.js +1 -0
  576. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-b06b9aec5dcdf486.js +1 -0
  577. package/app/.next-cli-build/static/chunks/app/_global-error/page-1d242eb898fee31e.js +1 -0
  578. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-1d242eb898fee31e.js +1 -0
  579. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-1d242eb898fee31e.js +1 -0
  580. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-1d242eb898fee31e.js +1 -0
  581. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-1d242eb898fee31e.js +1 -0
  582. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-1d242eb898fee31e.js +1 -0
  583. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-1d242eb898fee31e.js +1 -0
  584. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-1d242eb898fee31e.js +1 -0
  585. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-1d242eb898fee31e.js +1 -0
  586. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-1d242eb898fee31e.js +1 -0
  587. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-1d242eb898fee31e.js +1 -0
  588. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1d242eb898fee31e.js +1 -0
  589. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-1d242eb898fee31e.js +1 -0
  590. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-1d242eb898fee31e.js +1 -0
  591. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-1d242eb898fee31e.js +1 -0
  592. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-1d242eb898fee31e.js +1 -0
  593. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1d242eb898fee31e.js +1 -0
  594. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1d242eb898fee31e.js +1 -0
  595. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-1d242eb898fee31e.js +1 -0
  596. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-1d242eb898fee31e.js +1 -0
  597. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-1d242eb898fee31e.js +1 -0
  598. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-1d242eb898fee31e.js +1 -0
  599. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-1d242eb898fee31e.js +1 -0
  600. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-1d242eb898fee31e.js +1 -0
  601. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-1d242eb898fee31e.js +1 -0
  602. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-1d242eb898fee31e.js +1 -0
  603. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-1d242eb898fee31e.js +1 -0
  604. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-1d242eb898fee31e.js +1 -0
  605. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-1d242eb898fee31e.js +1 -0
  606. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-1d242eb898fee31e.js +1 -0
  607. package/app/.next-cli-build/static/chunks/app/api/combos/route-1d242eb898fee31e.js +1 -0
  608. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-1d242eb898fee31e.js +1 -0
  609. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-1d242eb898fee31e.js +1 -0
  610. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-1d242eb898fee31e.js +1 -0
  611. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-1d242eb898fee31e.js +1 -0
  612. package/app/.next-cli-build/static/chunks/app/api/health/route-1d242eb898fee31e.js +1 -0
  613. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-1d242eb898fee31e.js +1 -0
  614. package/app/.next-cli-build/static/chunks/app/api/keys/route-1d242eb898fee31e.js +1 -0
  615. package/app/.next-cli-build/static/chunks/app/api/locale/route-1d242eb898fee31e.js +1 -0
  616. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-1d242eb898fee31e.js +1 -0
  617. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-1d242eb898fee31e.js +1 -0
  618. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1d242eb898fee31e.js +1 -0
  619. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1d242eb898fee31e.js +1 -0
  620. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-1d242eb898fee31e.js +1 -0
  621. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-1d242eb898fee31e.js +1 -0
  622. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-1d242eb898fee31e.js +1 -0
  623. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-1d242eb898fee31e.js +1 -0
  624. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-1d242eb898fee31e.js +1 -0
  625. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-1d242eb898fee31e.js +1 -0
  626. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-1d242eb898fee31e.js +1 -0
  627. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-1d242eb898fee31e.js +1 -0
  628. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-1d242eb898fee31e.js +1 -0
  629. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-1d242eb898fee31e.js +1 -0
  630. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-1d242eb898fee31e.js +1 -0
  631. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-1d242eb898fee31e.js +1 -0
  632. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-1d242eb898fee31e.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-1d242eb898fee31e.js +1 -0
  634. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-1d242eb898fee31e.js +1 -0
  635. package/app/.next-cli-build/static/chunks/app/api/models/route-1d242eb898fee31e.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/api/models/test/route-1d242eb898fee31e.js +1 -0
  637. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-1d242eb898fee31e.js +1 -0
  638. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-1d242eb898fee31e.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-1d242eb898fee31e.js +1 -0
  640. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-1d242eb898fee31e.js +1 -0
  641. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-1d242eb898fee31e.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-1d242eb898fee31e.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-1d242eb898fee31e.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-1d242eb898fee31e.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-1d242eb898fee31e.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-1d242eb898fee31e.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-1d242eb898fee31e.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-1d242eb898fee31e.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-1d242eb898fee31e.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/pricing/route-1d242eb898fee31e.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-1d242eb898fee31e.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-1d242eb898fee31e.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-1d242eb898fee31e.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-1d242eb898fee31e.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-1d242eb898fee31e.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-1d242eb898fee31e.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-1d242eb898fee31e.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-1d242eb898fee31e.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-1d242eb898fee31e.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-1d242eb898fee31e.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-1d242eb898fee31e.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-1d242eb898fee31e.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-1d242eb898fee31e.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/providers/route-1d242eb898fee31e.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-1d242eb898fee31e.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-1d242eb898fee31e.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-1d242eb898fee31e.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-1d242eb898fee31e.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-1d242eb898fee31e.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-1d242eb898fee31e.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-1d242eb898fee31e.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-1d242eb898fee31e.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-1d242eb898fee31e.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-1d242eb898fee31e.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-1d242eb898fee31e.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/settings/route-1d242eb898fee31e.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-1d242eb898fee31e.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-1d242eb898fee31e.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/tags/route-1d242eb898fee31e.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-1d242eb898fee31e.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-1d242eb898fee31e.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-1d242eb898fee31e.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-1d242eb898fee31e.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-1d242eb898fee31e.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-1d242eb898fee31e.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-1d242eb898fee31e.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-1d242eb898fee31e.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-1d242eb898fee31e.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-1d242eb898fee31e.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-1d242eb898fee31e.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-1d242eb898fee31e.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-1d242eb898fee31e.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-1d242eb898fee31e.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-1d242eb898fee31e.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-1d242eb898fee31e.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-1d242eb898fee31e.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-1d242eb898fee31e.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-1d242eb898fee31e.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-1d242eb898fee31e.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-1d242eb898fee31e.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-1d242eb898fee31e.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-1d242eb898fee31e.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-1d242eb898fee31e.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-1d242eb898fee31e.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-1d242eb898fee31e.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-1d242eb898fee31e.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-1d242eb898fee31e.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-1d242eb898fee31e.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-1d242eb898fee31e.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-1d242eb898fee31e.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/v1/route-1d242eb898fee31e.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-1d242eb898fee31e.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-1d242eb898fee31e.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-1d242eb898fee31e.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-1d242eb898fee31e.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/version/route-1d242eb898fee31e.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-1d242eb898fee31e.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/version/update/route-1d242eb898fee31e.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/callback/page-5c1d863ff86ddc6e.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-4cfc7195d2a8bf0e.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/landing/page-9e06d57d9b215fd7.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/login/page-1d242eb898fee31e.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-1d242eb898fee31e.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/page-1d242eb898fee31e.js +1 -0
  725. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-1d242eb898fee31e.js +1 -0
  726. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-1d242eb898fee31e.js +1 -0
  727. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-1d242eb898fee31e.js +1 -0
  728. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-1d242eb898fee31e.js +1 -0
  729. package/app/.next-cli-build/static/chunks/webpack-57b54315eb9fa808.js +1 -0
  730. package/app/.next-cli-build/static/css/92a5708a6b29ef8c.css +1 -0
  731. package/app/.next-cli-build/static/media/catalog.e7ada387.json +1710 -0
  732. package/app/.next-cli-build/static/sBwyl4vbyME9SYpTbTHkn/_buildManifest.js +1 -0
  733. package/app/custom-server.js +5 -5
  734. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
  735. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
  736. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +23 -9
  737. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +61 -33
  738. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +50 -37
  739. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
  740. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
  741. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +110 -35
  742. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +46 -38
  743. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
  744. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
  745. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
  746. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +41 -20
  747. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
  748. package/app/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
  749. package/app/open-sse/package.json +4 -0
  750. package/app/open-sse/providers/generated/catalog.json +1710 -0
  751. package/app/package.json +22 -10
  752. package/app/public/i18n/literals/zh-CN.json +8 -0
  753. package/app/server.js +1 -1
  754. package/app/src/lib/db/adapters/betterSqliteAdapter.js +2 -3
  755. package/app/src/lib/db/adapters/bunSqliteAdapter.js +0 -2
  756. package/app/src/lib/db/adapters/nodeSqliteAdapter.js +0 -2
  757. package/app/src/lib/db/adapters/sqljsAdapter.js +23 -4
  758. package/app/src/lib/db/migrate.js +15 -4
  759. package/app/src/lib/updater/updater.js +67 -9
  760. package/app/src/shared/utils/apiKey.js +3 -7
  761. package/cli.js +205 -180
  762. package/hooks/sqliteRuntime.js +1 -7
  763. package/package.json +2 -2
  764. package/src/cli/api/client.js +3 -20
  765. package/src/cli/menus/settings.js +3 -62
  766. package/src/cli/tray/tray.js +18 -26
  767. package/src/shared/dataDir.js +61 -0
  768. package/src/shared/disableMitm.js +102 -0
  769. package/src/shared/openBrowser.js +43 -0
  770. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +0 -2
  771. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +0 -1
  772. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +0 -1
  773. package/app/.next-cli-build/server/app/api/init/route.js +0 -1
  774. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +0 -1
  775. package/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +0 -1
  776. package/app/.next-cli-build/server/app/dashboard/agent-library.html +0 -1
  777. package/app/.next-cli-build/server/app/dashboard/agent-library.meta +0 -17
  778. package/app/.next-cli-build/server/app/dashboard/agent-library.rsc +0 -30
  779. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard/agent-library/__PAGE__.segment.rsc +0 -9
  780. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard/agent-library.segment.rsc +0 -5
  781. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  782. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  783. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_full.segment.rsc +0 -30
  784. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_head.segment.rsc +0 -6
  785. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_index.segment.rsc +0 -8
  786. package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_tree.segment.rsc +0 -8
  787. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +0 -1
  788. package/app/.next-cli-build/server/app/dashboard/basic-chat.meta +0 -17
  789. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +0 -27
  790. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +0 -6
  791. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +0 -5
  792. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  793. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  794. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +0 -27
  795. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +0 -6
  796. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +0 -8
  797. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +0 -8
  798. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +0 -1
  799. package/app/.next-cli-build/server/app/dashboard/cli-tools.meta +0 -17
  800. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +0 -28
  801. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +0 -6
  802. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +0 -5
  803. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  804. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  805. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +0 -28
  806. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +0 -6
  807. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +0 -8
  808. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +0 -8
  809. package/app/.next-cli-build/server/app/dashboard/combos/routing.html +0 -1
  810. package/app/.next-cli-build/server/app/dashboard/combos/routing.meta +0 -18
  811. package/app/.next-cli-build/server/app/dashboard/combos/routing.rsc +0 -30
  812. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos/routing/__PAGE__.segment.rsc +0 -9
  813. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos/routing.segment.rsc +0 -5
  814. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -5
  815. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  816. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  817. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_full.segment.rsc +0 -30
  818. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_head.segment.rsc +0 -6
  819. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_index.segment.rsc +0 -8
  820. package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_tree.segment.rsc +0 -8
  821. package/app/.next-cli-build/server/app/dashboard/combos.html +0 -1
  822. package/app/.next-cli-build/server/app/dashboard/combos.meta +0 -17
  823. package/app/.next-cli-build/server/app/dashboard/combos.rsc +0 -28
  824. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +0 -6
  825. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -5
  826. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  827. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  828. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +0 -28
  829. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +0 -6
  830. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +0 -8
  831. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +0 -8
  832. package/app/.next-cli-build/server/app/dashboard/endpoint.html +0 -1
  833. package/app/.next-cli-build/server/app/dashboard/endpoint.meta +0 -17
  834. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +0 -28
  835. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +0 -6
  836. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +0 -5
  837. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  838. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  839. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +0 -28
  840. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +0 -6
  841. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +0 -8
  842. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +0 -8
  843. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +0 -1
  844. package/app/.next-cli-build/server/app/dashboard/media-providers/web.meta +0 -18
  845. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +0 -30
  846. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +0 -9
  847. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +0 -5
  848. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +0 -5
  849. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  850. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  851. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +0 -30
  852. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +0 -6
  853. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +0 -8
  854. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +0 -8
  855. package/app/.next-cli-build/server/app/dashboard/media-providers.html +0 -1
  856. package/app/.next-cli-build/server/app/dashboard/media-providers.meta +0 -17
  857. package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +0 -30
  858. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +0 -9
  859. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +0 -5
  860. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  861. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  862. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +0 -30
  863. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_head.segment.rsc +0 -6
  864. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_index.segment.rsc +0 -8
  865. package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +0 -8
  866. package/app/.next-cli-build/server/app/dashboard/mitm.html +0 -1
  867. package/app/.next-cli-build/server/app/dashboard/mitm.meta +0 -17
  868. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +0 -27
  869. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +0 -6
  870. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +0 -5
  871. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  872. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  873. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +0 -27
  874. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +0 -6
  875. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +0 -8
  876. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +0 -8
  877. package/app/.next-cli-build/server/app/dashboard/profile.html +0 -1
  878. package/app/.next-cli-build/server/app/dashboard/profile.meta +0 -17
  879. package/app/.next-cli-build/server/app/dashboard/profile.rsc +0 -28
  880. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +0 -6
  881. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +0 -5
  882. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  883. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  884. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +0 -28
  885. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +0 -6
  886. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +0 -8
  887. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +0 -8
  888. package/app/.next-cli-build/server/app/dashboard/providers/new.html +0 -1
  889. package/app/.next-cli-build/server/app/dashboard/providers/new.meta +0 -18
  890. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +0 -30
  891. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +0 -9
  892. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +0 -5
  893. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
  894. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  895. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  896. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +0 -30
  897. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +0 -6
  898. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +0 -8
  899. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +0 -8
  900. package/app/.next-cli-build/server/app/dashboard/providers.html +0 -1
  901. package/app/.next-cli-build/server/app/dashboard/providers.meta +0 -17
  902. package/app/.next-cli-build/server/app/dashboard/providers.rsc +0 -28
  903. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +0 -6
  904. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
  905. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  906. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  907. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +0 -28
  908. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +0 -6
  909. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +0 -8
  910. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +0 -8
  911. package/app/.next-cli-build/server/app/dashboard/quota.html +0 -2
  912. package/app/.next-cli-build/server/app/dashboard/quota.meta +0 -17
  913. package/app/.next-cli-build/server/app/dashboard/quota.rsc +0 -28
  914. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +0 -7
  915. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +0 -5
  916. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  917. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  918. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +0 -28
  919. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +0 -6
  920. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +0 -8
  921. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +0 -8
  922. package/app/.next-cli-build/server/app/dashboard/skills.html +0 -1
  923. package/app/.next-cli-build/server/app/dashboard/skills.meta +0 -17
  924. package/app/.next-cli-build/server/app/dashboard/skills.rsc +0 -30
  925. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +0 -9
  926. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +0 -5
  927. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  928. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  929. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +0 -30
  930. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +0 -6
  931. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +0 -8
  932. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +0 -8
  933. package/app/.next-cli-build/server/app/dashboard/token-saver.html +0 -1
  934. package/app/.next-cli-build/server/app/dashboard/token-saver.meta +0 -17
  935. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +0 -27
  936. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +0 -6
  937. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +0 -5
  938. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  939. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  940. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +0 -27
  941. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +0 -6
  942. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +0 -8
  943. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +0 -8
  944. package/app/.next-cli-build/server/app/dashboard/translator.html +0 -1
  945. package/app/.next-cli-build/server/app/dashboard/translator.meta +0 -17
  946. package/app/.next-cli-build/server/app/dashboard/translator.rsc +0 -30
  947. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +0 -9
  948. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +0 -5
  949. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  950. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  951. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +0 -30
  952. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +0 -6
  953. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +0 -8
  954. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +0 -8
  955. package/app/.next-cli-build/server/app/dashboard/usage.html +0 -1
  956. package/app/.next-cli-build/server/app/dashboard/usage.meta +0 -17
  957. package/app/.next-cli-build/server/app/dashboard/usage.rsc +0 -30
  958. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +0 -9
  959. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +0 -5
  960. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  961. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  962. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +0 -30
  963. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +0 -6
  964. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +0 -8
  965. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +0 -8
  966. package/app/.next-cli-build/server/app/dashboard.html +0 -1
  967. package/app/.next-cli-build/server/app/dashboard.meta +0 -16
  968. package/app/.next-cli-build/server/app/dashboard.rsc +0 -28
  969. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +0 -6
  970. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  971. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
  972. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +0 -28
  973. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +0 -6
  974. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +0 -8
  975. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +0 -8
  976. package/app/.next-cli-build/server/chunks/1051.js +0 -1
  977. package/app/.next-cli-build/server/chunks/1220.js +0 -3
  978. package/app/.next-cli-build/server/chunks/1241.js +0 -1
  979. package/app/.next-cli-build/server/chunks/2117.js +0 -1
  980. package/app/.next-cli-build/server/chunks/2280.js +0 -1
  981. package/app/.next-cli-build/server/chunks/2548.js +0 -67
  982. package/app/.next-cli-build/server/chunks/2701.js +0 -10
  983. package/app/.next-cli-build/server/chunks/2768.js +0 -79
  984. package/app/.next-cli-build/server/chunks/3943.js +0 -1
  985. package/app/.next-cli-build/server/chunks/4632.js +0 -1
  986. package/app/.next-cli-build/server/chunks/4827.js +0 -1
  987. package/app/.next-cli-build/server/chunks/5330.js +0 -161
  988. package/app/.next-cli-build/server/chunks/5612.js +0 -1
  989. package/app/.next-cli-build/server/chunks/5655.js +0 -1
  990. package/app/.next-cli-build/server/chunks/5699.js +0 -1
  991. package/app/.next-cli-build/server/chunks/5961.js +0 -28
  992. package/app/.next-cli-build/server/chunks/6040.js +0 -1
  993. package/app/.next-cli-build/server/chunks/6059.js +0 -1
  994. package/app/.next-cli-build/server/chunks/6070.js +0 -1
  995. package/app/.next-cli-build/server/chunks/6150.js +0 -64
  996. package/app/.next-cli-build/server/chunks/6306.js +0 -1
  997. package/app/.next-cli-build/server/chunks/6763.js +0 -1
  998. package/app/.next-cli-build/server/chunks/6777.js +0 -1
  999. package/app/.next-cli-build/server/chunks/6922.js +0 -1
  1000. package/app/.next-cli-build/server/chunks/7651.js +0 -1
  1001. package/app/.next-cli-build/server/chunks/8164.js +0 -67
  1002. package/app/.next-cli-build/server/chunks/8238.js +0 -1
  1003. package/app/.next-cli-build/server/chunks/8860.js +0 -32
  1004. package/app/.next-cli-build/server/chunks/8895.js +0 -67
  1005. package/app/.next-cli-build/server/chunks/8910.js +0 -8
  1006. package/app/.next-cli-build/server/chunks/8920.js +0 -1
  1007. package/app/.next-cli-build/server/chunks/9830.js +0 -73
  1008. package/app/.next-cli-build/static/HFerqnfiKkxdqoMVxOfPW/_buildManifest.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/1321-39ad919b1616c75c.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/1610-cd46c6c47a9aa99a.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/1655-0df56bb46fc3a442.js +0 -73
  1012. package/app/.next-cli-build/static/chunks/2562-ceb69ca00b47af6e.js +0 -64
  1013. package/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/5497-1ebc533b1f404c9f.js +0 -7
  1015. package/app/.next-cli-build/static/chunks/5772-901f1092d831ec37.js +0 -3
  1016. package/app/.next-cli-build/static/chunks/705-012db20bb6a5da8b.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-b6f9c90a614bfb03.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-af2d913820faedae.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-a777baf9c2aa43b4.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-3f5fa0d8e152056f.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ff92eef8e57d1447.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-73628e93426ae624.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-a8d8d0f4bfbcfbae.js +0 -3
  1024. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-a915efd975f6af81.js +0 -59
  1025. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-9cad271042843781.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-8bff15a89ffc3746.js +0 -4
  1027. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-4d2b06f4c8d1b384.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-afeae41f2e9445ec.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ff7973275ee57a96.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-5e44267c26a7e42d.js +0 -10
  1031. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-3afd6ee04180298c.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-4957f02eb9879798.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-14da9269a25bd090.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-95e55b6593bcf3f7.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-54d1bd253432bc6f.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-ef0b203963c2c25e.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-59db0b586ad5ab45.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-58013e7e99d17d70.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/_global-error/page-4ff27935cdf818b5.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-4ff27935cdf818b5.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-4ff27935cdf818b5.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-4ff27935cdf818b5.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-4ff27935cdf818b5.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-4ff27935cdf818b5.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-4ff27935cdf818b5.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-4ff27935cdf818b5.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-4ff27935cdf818b5.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-4ff27935cdf818b5.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-4ff27935cdf818b5.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-4ff27935cdf818b5.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-4ff27935cdf818b5.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-4ff27935cdf818b5.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-4ff27935cdf818b5.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-4ff27935cdf818b5.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-4ff27935cdf818b5.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-4ff27935cdf818b5.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-4ff27935cdf818b5.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-4ff27935cdf818b5.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-4ff27935cdf818b5.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-4ff27935cdf818b5.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-4ff27935cdf818b5.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-4ff27935cdf818b5.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-4ff27935cdf818b5.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-4ff27935cdf818b5.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-4ff27935cdf818b5.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-4ff27935cdf818b5.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-4ff27935cdf818b5.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-4ff27935cdf818b5.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-4ff27935cdf818b5.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/app/api/combos/route-4ff27935cdf818b5.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-4ff27935cdf818b5.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-4ff27935cdf818b5.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-4ff27935cdf818b5.js +0 -1
  1074. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-4ff27935cdf818b5.js +0 -1
  1075. package/app/.next-cli-build/static/chunks/app/api/health/route-4ff27935cdf818b5.js +0 -1
  1076. package/app/.next-cli-build/static/chunks/app/api/init/route-4ff27935cdf818b5.js +0 -1
  1077. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-4ff27935cdf818b5.js +0 -1
  1078. package/app/.next-cli-build/static/chunks/app/api/keys/route-4ff27935cdf818b5.js +0 -1
  1079. package/app/.next-cli-build/static/chunks/app/api/locale/route-4ff27935cdf818b5.js +0 -1
  1080. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-4ff27935cdf818b5.js +0 -1
  1081. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-4ff27935cdf818b5.js +0 -1
  1082. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-4ff27935cdf818b5.js +0 -1
  1083. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-4ff27935cdf818b5.js +0 -1
  1084. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-4ff27935cdf818b5.js +0 -1
  1085. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-4ff27935cdf818b5.js +0 -1
  1086. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-4ff27935cdf818b5.js +0 -1
  1087. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-4ff27935cdf818b5.js +0 -1
  1088. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-4ff27935cdf818b5.js +0 -1
  1089. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-4ff27935cdf818b5.js +0 -1
  1090. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-4ff27935cdf818b5.js +0 -1
  1091. package/app/.next-cli-build/static/chunks/app/api/models/route-4ff27935cdf818b5.js +0 -1
  1092. package/app/.next-cli-build/static/chunks/app/api/models/test/route-4ff27935cdf818b5.js +0 -1
  1093. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-4ff27935cdf818b5.js +0 -1
  1094. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-4ff27935cdf818b5.js +0 -1
  1095. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-4ff27935cdf818b5.js +0 -1
  1096. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-4ff27935cdf818b5.js +0 -1
  1097. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-4ff27935cdf818b5.js +0 -1
  1098. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-4ff27935cdf818b5.js +0 -1
  1099. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-4ff27935cdf818b5.js +0 -1
  1100. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-4ff27935cdf818b5.js +0 -1
  1101. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-4ff27935cdf818b5.js +0 -1
  1102. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-4ff27935cdf818b5.js +0 -1
  1103. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-4ff27935cdf818b5.js +0 -1
  1104. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-4ff27935cdf818b5.js +0 -1
  1105. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-4ff27935cdf818b5.js +0 -1
  1106. package/app/.next-cli-build/static/chunks/app/api/pricing/route-4ff27935cdf818b5.js +0 -1
  1107. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-4ff27935cdf818b5.js +0 -1
  1108. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-4ff27935cdf818b5.js +0 -1
  1109. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-4ff27935cdf818b5.js +0 -1
  1110. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-4ff27935cdf818b5.js +0 -1
  1111. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-4ff27935cdf818b5.js +0 -1
  1112. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-4ff27935cdf818b5.js +0 -1
  1113. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-4ff27935cdf818b5.js +0 -1
  1114. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-4ff27935cdf818b5.js +0 -1
  1115. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-4ff27935cdf818b5.js +0 -1
  1116. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-4ff27935cdf818b5.js +0 -1
  1117. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-4ff27935cdf818b5.js +0 -1
  1118. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-4ff27935cdf818b5.js +0 -1
  1119. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-4ff27935cdf818b5.js +0 -1
  1120. package/app/.next-cli-build/static/chunks/app/api/providers/route-4ff27935cdf818b5.js +0 -1
  1121. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-4ff27935cdf818b5.js +0 -1
  1122. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-4ff27935cdf818b5.js +0 -1
  1123. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-4ff27935cdf818b5.js +0 -1
  1124. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-4ff27935cdf818b5.js +0 -1
  1125. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-4ff27935cdf818b5.js +0 -1
  1126. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-4ff27935cdf818b5.js +0 -1
  1127. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-4ff27935cdf818b5.js +0 -1
  1128. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-4ff27935cdf818b5.js +0 -1
  1129. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-4ff27935cdf818b5.js +0 -1
  1130. package/app/.next-cli-build/static/chunks/app/api/settings/route-4ff27935cdf818b5.js +0 -1
  1131. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-4ff27935cdf818b5.js +0 -1
  1132. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-4ff27935cdf818b5.js +0 -1
  1133. package/app/.next-cli-build/static/chunks/app/api/tags/route-4ff27935cdf818b5.js +0 -1
  1134. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-4ff27935cdf818b5.js +0 -1
  1135. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-4ff27935cdf818b5.js +0 -1
  1136. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-4ff27935cdf818b5.js +0 -1
  1137. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-4ff27935cdf818b5.js +0 -1
  1138. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-4ff27935cdf818b5.js +0 -1
  1139. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-4ff27935cdf818b5.js +0 -1
  1140. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-4ff27935cdf818b5.js +0 -1
  1141. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-4ff27935cdf818b5.js +0 -1
  1142. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-4ff27935cdf818b5.js +0 -1
  1143. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-4ff27935cdf818b5.js +0 -1
  1144. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-4ff27935cdf818b5.js +0 -1
  1145. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-4ff27935cdf818b5.js +0 -1
  1146. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-4ff27935cdf818b5.js +0 -1
  1147. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-4ff27935cdf818b5.js +0 -1
  1148. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-4ff27935cdf818b5.js +0 -1
  1149. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-4ff27935cdf818b5.js +0 -1
  1150. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-4ff27935cdf818b5.js +0 -1
  1151. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-4ff27935cdf818b5.js +0 -1
  1152. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-4ff27935cdf818b5.js +0 -1
  1153. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-4ff27935cdf818b5.js +0 -1
  1154. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-4ff27935cdf818b5.js +0 -1
  1155. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-4ff27935cdf818b5.js +0 -1
  1156. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-4ff27935cdf818b5.js +0 -1
  1157. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-4ff27935cdf818b5.js +0 -1
  1158. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-4ff27935cdf818b5.js +0 -1
  1159. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-4ff27935cdf818b5.js +0 -1
  1160. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-4ff27935cdf818b5.js +0 -1
  1161. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-4ff27935cdf818b5.js +0 -1
  1162. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-4ff27935cdf818b5.js +0 -1
  1163. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-4ff27935cdf818b5.js +0 -1
  1164. package/app/.next-cli-build/static/chunks/app/api/v1/route-4ff27935cdf818b5.js +0 -1
  1165. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-4ff27935cdf818b5.js +0 -1
  1166. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-4ff27935cdf818b5.js +0 -1
  1167. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-4ff27935cdf818b5.js +0 -1
  1168. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-4ff27935cdf818b5.js +0 -1
  1169. package/app/.next-cli-build/static/chunks/app/api/version/route-4ff27935cdf818b5.js +0 -1
  1170. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-4ff27935cdf818b5.js +0 -1
  1171. package/app/.next-cli-build/static/chunks/app/api/version/update/route-4ff27935cdf818b5.js +0 -1
  1172. package/app/.next-cli-build/static/chunks/app/callback/page-64f2a90493720740.js +0 -1
  1173. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-2c2051aa3be879d6.js +0 -1
  1174. package/app/.next-cli-build/static/chunks/app/landing/page-8c76c0ea58e06a53.js +0 -1
  1175. package/app/.next-cli-build/static/chunks/app/login/page-4ff27935cdf818b5.js +0 -1
  1176. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-4ff27935cdf818b5.js +0 -1
  1177. package/app/.next-cli-build/static/chunks/app/page-4ff27935cdf818b5.js +0 -1
  1178. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-4ff27935cdf818b5.js +0 -1
  1179. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-4ff27935cdf818b5.js +0 -1
  1180. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-4ff27935cdf818b5.js +0 -1
  1181. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-4ff27935cdf818b5.js +0 -1
  1182. package/app/.next-cli-build/static/chunks/webpack-868e94e9a2c8d9a9.js +0 -1
  1183. package/app/.next-cli-build/static/css/20c5585d3269ee43.css +0 -1
  1184. package/app/cli/.build-home/.switchboard/auth/machine-id-salt +0 -1
  1185. package/app/cli/.build-home/.switchboard/db/data.sqlite +0 -0
  1186. package/app/cli/.build-home/.switchboard/machine-id +0 -1
  1187. package/app/public/i18n/literals/ar.json +0 -195
  1188. package/app/public/i18n/literals/bn.json +0 -195
  1189. package/app/public/i18n/literals/cs.json +0 -195
  1190. package/app/public/i18n/literals/da.json +0 -195
  1191. package/app/public/i18n/literals/de.json +0 -195
  1192. package/app/public/i18n/literals/el.json +0 -195
  1193. package/app/public/i18n/literals/es.json +0 -195
  1194. package/app/public/i18n/literals/fa.json +0 -195
  1195. package/app/public/i18n/literals/fi.json +0 -195
  1196. package/app/public/i18n/literals/fr.json +0 -195
  1197. package/app/public/i18n/literals/he.json +0 -195
  1198. package/app/public/i18n/literals/hi.json +0 -195
  1199. package/app/public/i18n/literals/hu.json +0 -195
  1200. package/app/public/i18n/literals/id.json +0 -195
  1201. package/app/public/i18n/literals/it.json +0 -195
  1202. package/app/public/i18n/literals/ja.json +0 -195
  1203. package/app/public/i18n/literals/ko.json +0 -195
  1204. package/app/public/i18n/literals/nl.json +0 -195
  1205. package/app/public/i18n/literals/no.json +0 -195
  1206. package/app/public/i18n/literals/pl.json +0 -195
  1207. package/app/public/i18n/literals/pt-BR.json +0 -195
  1208. package/app/public/i18n/literals/pt-PT.json +0 -195
  1209. package/app/public/i18n/literals/ro.json +0 -195
  1210. package/app/public/i18n/literals/ru.json +0 -195
  1211. package/app/public/i18n/literals/sv.json +0 -195
  1212. package/app/public/i18n/literals/th.json +0 -195
  1213. package/app/public/i18n/literals/tl.json +0 -195
  1214. package/app/public/i18n/literals/tr.json +0 -195
  1215. package/app/public/i18n/literals/uk.json +0 -195
  1216. package/app/public/i18n/literals/ur.json +0 -195
  1217. package/app/public/i18n/literals/vi.json +0 -195
  1218. package/app/public/i18n/literals/zh-TW.json +0 -195
  1219. package/app/.next-cli-build/static/{HFerqnfiKkxdqoMVxOfPW → sBwyl4vbyME9SYpTbTHkn}/_ssgManifest.js +0 -0
  1220. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
  1221. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
  1222. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
  1223. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
  1224. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
  1225. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
  1226. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
  1227. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
  1228. package/app/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
  1229. /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
  1230. /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
  1231. /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
  1232. /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
  1233. /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5139,exports.ids=[5139],exports.modules={2364:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>C,OPTIONS:()=>B,buildModelsList:()=>A});var d=c(81329),e=c(40615),f=c(44776),g=c(16655),h=c(58569),i=c(86925),j=c(9155),k=c(89843),l=c(28730),m=c(41029);let n=new Map;async function o(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,k.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${l.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${l.x0.COPILOT_CHAT_VERSION}`,"user-agent":l.x0.USER_AGENT,"x-github-api-version":l.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function p(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=n.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await o(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,m.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await o(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(n.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var q=c(40694),r=c(58255),s=c(67828),t=c(43904);let u={kiro:async(a,b={})=>{let c=await (0,h.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal});return c?.models?.length?{models:c.models}:null},qoder:async(a,b={})=>{let c=await (0,j.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}},{signal:b.signal});return c?.models?.length?{models:c.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async(a,b={})=>{let c=await (0,i.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal});return c?.models?.length?{models:c.models}:null},github:async(a,b={})=>{let c=await p({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal,onCredentialsRefreshed:async b=>{await (0,s.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},clinepass:async(a,b={})=>{let c=await (0,q.P)({accessToken:a.accessToken,apiKey:a.apiKey},{signal:b.signal});return c?.models?.length?{models:c.models}:null}},v=/[-_][0-9a-f]{8,}$/i,w={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function x(a){let b=a?.kind||a?.type;return b&&w[b]||"llm"}async function y(a,b=null){if(!a?.apiKey)return[];let c="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!c)return[];let d=`${c}/models`,f={"Content-Type":"application/json"};if((0,e.mq)(a.provider))f.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];d.endsWith("/messages/models")?d=d.slice(0,-9):d.endsWith("/messages")&&(d=`${d.slice(0,-9)}/models`),f["x-api-key"]=a.apiKey,f["anthropic-version"]="2023-06-01",f.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,c=setTimeout(()=>a.abort(),5e3);b&&"function"!=typeof AbortSignal.any&&b.addEventListener("abort",()=>{clearTimeout(c),a.abort(b.reason)},{once:!0});let e=b&&"function"==typeof AbortSignal.any?AbortSignal.any([b,a.signal]):a.signal;try{var g;let a=await fetch(d,{method:"GET",headers:f,cache:"no-store",signal:e});if(!a.ok)return[];let b=(g=await a.json(),Array.isArray(g)?g:g?.data||g?.models||g?.results||[]);return Array.from(new Set(b.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}finally{clearTimeout(c)}}catch{return[]}}function z(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function A(a,{signal:b=null}={}){let c=[];try{c=(c=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let h=[];try{h=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let j={};try{j=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let k={};try{k=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let l=(a,b)=>Array.isArray(k[a])&&k[a].includes(b),m=new Map;for(let a of c){if(b?.aborted)break;m.has(a.provider)||m.set(a.provider,a)}let n=[];for(let b of h){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),n.push(c)}if(0===c.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.PROVIDER_MODELS))if(z(b[c]||c,a))for(let b of e)a.includes(x(b))&&(l(c,b.id)||n.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&n.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[c,f]of m.entries()){if(b?.aborted)break;if(!z(c,a))continue;let g=d.Xg[c]||c,h=(f?.providerSpecificData?.prefix||(0,e.wG)(c)||g).trim(),k=d.PROVIDER_MODELS[g]||[],m=f?.providerSpecificData?.enabledModels,o=Array.isArray(m)&&m.length>0,p=(0,e.mq)(c)||(0,e.gb)(c),q=new Map(k.map(a=>[a.id,x(a)])),s=new Map,w=new Map,A=o?Array.from(new Set(m.filter(a=>"string"==typeof a&&""!==a.trim()))):k.map(a=>a.id);p&&0===A.length&&!v.test(c)&&(A=await y(f,b));let B=u[c];if(B&&!o)try{let a=await B(f,{signal:b});a?.models?.length&&(A=a.models.map(a=>a.id),s=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,x(a)])),w=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${c}: ${a?.message||a}`)}if(!B&&!o)try{let a=await (0,r.Mz)(f,{signal:b});a?.models?.length&&(A=a.models.map(a=>a.id),s=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,x(a)])),w=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Generic live model fetch failed for ${c}: ${a?.message||a}`)}let C=A.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${c}/`)?a.slice(c.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),D=new Map;for(let b of Array.from(new Set([...C,...i.filter(b=>{if(!b?.id)return!1;let e=(0,d.CP)(b)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=b.providerAlias;return f===g||f===h||f===c}).map(a=>{let b=String(a.id).trim();return b&&D.set(b,(0,d.CP)(a)||"llm"),b}).filter(a=>""!==a),...Object.values(j||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${c}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${c}/`)?a.slice(c.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let c=D.get(b),d=s.get(b),e=c||d||q.get(b)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(b),f="imageToText"===e&&a.includes("llm");if(!a.includes(e)&&!f||l(h,b)||l(g,b))continue;let i={id:`${h}/${b}`,object:"model",owned_by:h},j=w.get(b)||(0,t.a0)(c||d);j&&(i.capabilities=j),n.push(i)}let E=e.AI_PROVIDERS[c];a.includes("webSearch")&&E?.searchConfig&&n.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&E?.fetchConfig&&n.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let o=[],p=new Set;for(let a of n)!a?.id||p.has(a.id)||(p.add(a.id),o.push(a));return o}async function B(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function C(a){try{let b=await A(["llm"],{signal:a?.signal});return Response.json({object:"list",data:b},{})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(44776)},19225:(a,b,c)=>{a.exports=c(44870)},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5258,exports.ids=[5258],exports.modules={25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(63775);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}"function"==typeof g.unref&&g.unref();let i=()=>h();return process.once("beforeExit",i),process.once("SIGINT",()=>{i(),process.exit(0)}),process.once("SIGTERM",()=>{i(),process.exit(0)}),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(b),get:(a,b=[])=>d(a).get(b),all:(a,b=[])=>d(a).all(b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
1
+ "use strict";exports.id=5258,exports.ids=[5258],exports.modules={25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(63775);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof g.unref&&g.unref(),process.once("beforeExit",()=>h()),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(b),get:(a,b=[])=>d(a).get(b),all:(a,b=[])=>d(a).all(b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
2
  PRAGMA journal_mode = WAL;
3
3
  PRAGMA synchronous = NORMAL;
4
4
  PRAGMA temp_store = MEMORY;
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
6
6
  PRAGMA cache_size = -64000;
7
7
  PRAGMA foreign_keys = ON;
8
8
  PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
9
+ `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",requestId:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},fetchCache:{columns:{cacheKey:"TEXT PRIMARY KEY",kind:"TEXT",url:"TEXT",content:"TEXT NOT NULL",contentType:"TEXT",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt)","CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt)"]},vault_entries:{columns:{id:"TEXT PRIMARY KEY",conversationId:"TEXT NOT NULL",toolName:"TEXT",content:"TEXT NOT NULL",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId)","CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt)","CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt)"]},vault_chunks:{columns:{entryId:"TEXT NOT NULL",chunkIndex:"INTEGER NOT NULL",conversationId:"TEXT NOT NULL",text:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (entryId, chunkIndex)",indexes:["CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5350,exports.ids=[5350],exports.modules={6595:(a,b,c)=>{function d(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}c.d(b,{g5:()=>h,gr:()=>i,pk:()=>g,Kq:()=>f});let e=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${d(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${d(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${d(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${d(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${d(a[1])}`]];function f(a){return"string"!=typeof a?a:a.replace(/(\d)-(\d)/g,"$1.$2")}function g(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of e){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}function h(a){return a?.strip||[]}function i(a){return a?.targetFormat||null}},45350:(a,b,c)=>{c.d(b,{xq:()=>p,B$:()=>s,vq:()=>q,sr:()=>r});var d=c(67141),e=c(60290);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};var g=c(6595);let h={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},i=(...a)=>a.map(a=>({...h[a],type:"tts"})),j=i("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),k=i("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),l=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),m={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":k,"tts-1":j,"tts-1-hd":j},allVoices:k},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":k,"openai/tts-1":j,"openai/tts-1-hd":j},allVoices:k},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":l,"gemini-2.5-flash-preview-tts":l,"gemini-2.5-pro-preview-tts":l},allVoices:l}},n=["clientId","clientSecret","tokenUrl"],o=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),p={},q={},r={},s={};for(let a of d.A){a.transport&&(p[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of n)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(p[a.id].transports=a.transports)),void 0!==a.models&&(q[a.alias||a.id]=a.models.map(g.pk)),a.oauth&&(r[a.id]=a.oauth);let b={};for(let c of o)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(s[a.id]=b)}Object.assign(q,function(){let a={};for(let[b,c]of Object.entries(m))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=m.openai.allVoices,a["openrouter-tts-voices"]=m.openrouter.allVoices,a}())},60290:(a,b,c)=>{c.d(b,{C8:()=>q,DR:()=>p,IK:()=>k,Uc:()=>l,Z1:()=>i,cI:()=>n,eo:()=>m,gx:()=>e,mY:()=>o,pH:()=>j,v1:()=>f,wg:()=>d,xM:()=>h}),c(87252);let d=3,e={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},f={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,dnsCacheMaxSize:256,proxyDispatchersMaxSize:20};function g(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}let h=g("STREAM_STALL_TIMEOUT_MS",36e4),i=g("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5),j=g("FETCH_CONNECT_TIMEOUT_MS",6e4),k=g("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),l=64e3,m=32e3,n={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}},o=2e4;function p(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let q=["Please write a 5-10 word title for the following conversation:"]},87252:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3,shouldFallback:!1},{text:"improperly formed request",cooldownMs:12e4,shouldFallback:!1},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4,shouldFallback:!1},{status:429,backoff:!0}]}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(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()}}},22898:(a,b,c)=>{c.d(b,{Hd:()=>m,IF:()=>r,Pd:()=>h,Y0:()=>q,ZP:()=>w,_V:()=>v,cn:()=>n,dR:()=>o,jl:()=>y,nu:()=>z,uw:()=>x});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
1
+ "use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(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()}}},22898:(a,b,c)=>{c.d(b,{Hd:()=>o,IF:()=>t,Pd:()=>h,Y0:()=>s,ZP:()=>y,_V:()=>x,cn:()=>p,dR:()=>q,jl:()=>A,nu:()=>B,uw:()=>z});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8">
@@ -35,9 +35,9 @@
35
35
  }, 1000);
36
36
  </script>
37
37
  </body>
38
- </html>`),a(b)}else c.writeHead(404),c.end("Not found")});g.listen(b||0,"127.0.0.1",()=>{let{port:a}=g.address();c({server:g,port:a,close:()=>g.close()})}),g.on("error",a=>{"EADDRINUSE"===a.code&&b?d(Error(`Port ${b} is already in use. Please close other applications using this port.`)):d(a)})})}let i=null,j=null,k=g.DI.fixedPort,l=new Map;function m({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(l.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function n(a){return l.get(a)||null}function o(a){l.delete(a)}function p(a,b){let c=a?"Authentication Successful":"Authentication Failed",d=String(b).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");return`<!DOCTYPE html>
38
+ </html>`),a(b)}else c.writeHead(404),c.end("Not found")});g.listen(b||0,"127.0.0.1",()=>{let{port:a}=g.address();c({server:g,port:a,close:()=>g.close()})}),g.on("error",a=>{"EADDRINUSE"===a.code&&b?d(Error(`Port ${b} is already in use. Please close other applications using this port.`)):d(a)})})}let i=null,j=null,k=g.DI.fixedPort,l=new Map;function m(a){for(let b of a.values())if("pending"===b.status)return!0;return!1}function n(a,b){let c=Date.now();for(let[d,e]of a)c-e.createdAt>b&&a.delete(d)}function o({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(n(l,3e5),l.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function p(a){return l.get(a)||null}function q(a){l.delete(a)}function r(a,b){let c=a?"Authentication Successful":"Authentication Failed",d=String(b).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");return`<!DOCTYPE html>
39
39
  <html><head><meta charset="utf-8"><title>${c}</title>
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 q(a){return new Promise(b=>{if(i)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?l.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(8920),c.e(6306),c.e(6922),c.e(2701),c.e(2768),c.e(5330),c.e(8895),c.e(1241)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(p(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(p(!1,a.message))}finally{r()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),r()});d.listen(k,"127.0.0.1",()=>{i=d,j=setTimeout(()=>r(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function r(){j&&(clearTimeout(j),j=null),i&&(i.close(),i=null)}let s=null,t=null,u=new Map;function v({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(u.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function w(a){return u.get(a)||null}function x(a){u.delete(a)}function y(a){return new Promise(b=>{if(s)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?u.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(8920),c.e(6306),c.e(6922),c.e(2701),c.e(2768),c.e(5330),c.e(8895),c.e(1241)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(p(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(p(!1,a.message))}finally{z()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),z()});d.listen(56121,"127.0.0.1",()=>{s=d,t=setTimeout(()=>z(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function z(){t&&(clearTimeout(t),t=null),s&&(s.close(),s=null)}},73159:(a,b,c)=>{c.d(b,{U:()=>k,o:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/switchboard",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>B,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,t:()=>u,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);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.w3,...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=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B=3e5}};
43
+ </div></body></html>`}function s(a){return new Promise(b=>{if(i)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?l.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(4646),c.e(3904),c.e(9261),c.e(4904),c.e(8400),c.e(369),c.e(159)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{m(l)||t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),m(l)||t()});d.listen(k,"127.0.0.1",()=>{i=d,j=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){j&&(clearTimeout(j),j=null),i&&(i.close(),i=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(n(w,3e5),w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(4646),c.e(3904),c.e(9261),c.e(4904),c.e(8400),c.e(369),c.e(159)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{m(w)||B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),m(w)||B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}},73159:(a,b,c)=>{c.d(b,{U:()=>k,o:()=>l});var d=c(45350);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/switchboard",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>B,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,t:()=>u,w1:()=>x});var d=c(21820),e=c(92675),f=c(45350);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.w3,...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=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B=3e5}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5821,exports.ids=[5821],exports.modules={25821:(a,b,c)=>{c.d(b,{rb:()=>d,rn:()=>j,v4:()=>g,CM:()=>f,aS:()=>s,a7:()=>p,m1:()=>q});let d={defaultConcurrency:4,maxConcurrency:16,defaultBatchSize:50,maxBatchSize:200,defaultTimeoutMs:2e4,maxTimeoutMs:6e4};function e(a,b,c){let d=Number(a);return Number.isFinite(d)?Math.max(1,Math.min(c,Math.floor(d))):b}function f(a={}){return{concurrency:e(a.concurrency,d.defaultConcurrency,d.maxConcurrency),batchSize:e(a.batchSize,d.defaultBatchSize,d.maxBatchSize),timeoutMs:e(a.timeoutMs,d.defaultTimeoutMs,d.maxTimeoutMs)}}function g(a,b=""){let c=String(a||"").trim();if(!c)return"";c=(c=c.replace(/\s+/g,"")).replace(/^models\//i,"");let d=String(b||"").trim();return d&&c.toLowerCase().startsWith(`${d.toLowerCase()}/`)&&(c=c.slice(d.length+1)),(c=c.replace(/\/{2,}/g,"/").replace(/^\/+|\/+$/g,"")).toLowerCase()}var h=c(77598);let i=["provider","authType","apiType","baseUrl","resourceUrl","region","projectId","accountId","azureEndpoint","apiVersion","deployment","organization","chatgptAccountId","workspaceId","tenantId"];function j(a={}){let b={...a.providerSpecificData||{},...a};delete b.providerSpecificData;let c={};for(let a of i){let d=function(a){if("string"!=typeof a)return null==a?null:String(a);let b=a.trim();return b?/^https?:\/\//i.test(b)?b.replace(/\/+$/g,"").toLowerCase():b:null}(b[a]);null!=d&&(c[a]=d)}let d=JSON.stringify(c,Object.keys(c).sort()),e=(0,h.createHash)("sha256").update(d).digest("hex").slice(0,24);return`pmp:v1:${e}`}var k=c(38238);function l(a){if(a?.ok===!0)return{status:"ok",failureClass:null};let b=a?"string"==typeof a?a:String(a.error||a.message||a.failureMessage||""):"",c=b.toLowerCase(),d=function(a,b){let c=Number(a?.status||a?.statusCode||a?.httpStatus);if(Number.isFinite(c)&&c>0)return c;let d=String(b||"").match(/\bHTTP\s+(\d{3})\b/i);return d?Number(d[1]):null}(a,b),e=String(a?.name||"").toLowerCase();return e.includes("abort")||e.includes("timeout")||c.includes("abortsignal.timeout")||c.includes("timed out")||c.includes("timeout")||c.includes("etimedout")?{status:"retryable",failureClass:"timeout"}:c.includes("fetch failed")||c.includes("network")||c.includes("econnreset")||c.includes("econnrefused")||c.includes("enotfound")||c.includes("socket hang up")?{status:"retryable",failureClass:"unknown"}:401===d?{status:"retryable",failureClass:"auth"}:429===d?{status:"retryable",failureClass:"throttled"}:d>=500?{status:"retryable",failureClass:"server_error"}:404===d||c.includes("model not found")||c.includes("no such model")||c.includes("unknown model")||c.includes("does not exist")||c.includes("not a valid model")||c.includes("invalid model")?{status:"dead",failureClass:"not_found"}:403===d||c.includes("access denied")||c.includes("permission denied")||c.includes("forbidden")||c.includes("not permitted")||c.includes("not authorized for model")?{status:"dead",failureClass:"access_denied"}:{status:"retryable",failureClass:"unknown"}}function m(a){return a?.name||a?.id||a?.modelId||a?.model||""}async function n(a,b){let c=String(a?.id||a?.modelId||a?.model||a?.name||"").trim(),d=String(a?.kind||a?.type||"llm").trim()||"llm",e=g(c,b.providerAlias),f=a.fullModel||`${b.providerAlias}/${c}`,h=new Date().toISOString(),i=Date.now();try{let g=await b.ping(f,d,b.baseUrl,{timeoutMs:b.timeoutMs}),j=l(g);return{modelId:c,canonicalId:e,name:m(a)||c,kind:d,fullModel:f,ok:!0===g.ok,latencyMs:g.latencyMs??Date.now()-i,status:g.status??null,error:g.error||null,probeStatus:j.status,failureClass:j.failureClass,failureMessage:g.error||null,checkedAt:h}}catch(g){let b=l(g);return{modelId:c,canonicalId:e,name:m(a)||c,kind:d,fullModel:f,ok:!1,latencyMs:Date.now()-i,status:null,error:g?.message||"Probe failed",probeStatus:b.status,failureClass:b.failureClass,failureMessage:g?.message||"Probe failed",checkedAt:h}}}async function o(a,b){let c=Array(a.length),d=0,e=Array.from({length:Math.min(b.concurrency,a.length)},async()=>{for(;d<a.length;){let e=d;d+=1,c[e]=await n(a[e],b)}});return await Promise.all(e),c}async function p(a){let b=f(a||{}),c=(Array.isArray(a?.models)?a.models:[]).slice(0,b.batchSize),d={...b,providerAlias:a.providerAlias,baseUrl:a.baseUrl,ping:a.ping||k.P};if(!d.providerAlias)throw Error("providerAlias required");if(0===c.length)return{results:[],caps:b};if(a.warmup&&c.length>1){let[a,...e]=c;return{results:[await n(a,d),...await o(e,d)],caps:b}}return{results:await o(c,d),caps:b}}async function q(a){let b=f(a||{}),c=Array.isArray(a?.models)?a.models:[],d=[];for(let e=0;e<c.length;e+=b.batchSize){let f=c.slice(e,e+b.batchSize),g=await p({...a,...b,models:f,warmup:a.warmup&&0===e});d.push(...g.results)}return{results:d,caps:b}}function r(a,b){return`${a||"llm"}|${b}`}function s(a){let b=Array.isArray(a?.models)?a.models:[],c=Array.isArray(a?.probes)?a.probes:[],d=a?.providerAlias||"",e=Math.max(0,Number(a?.freshOkMs||0)),f=a?.skipFreshOk===!0&&e>0,h=Date.now(),i=new Map;for(let a of c)a?.modelId&&i.set(r(a.kind||"llm",a.modelId),a);let j=new Set,k=[],l=[],m=[],n=[],o=0,p=0;for(let a of b){let b=String("string"==typeof a?a:a?.id||a?.modelId||a?.model||a?.name||"").trim();if(!b){o+=1;continue}let c=String(("string"==typeof a?"llm":a?.kind||a?.type||"llm")||"llm").trim()||"llm",q=g(b,d);if(!q){o+=1;continue}let s=r(c,q);if(j.has(s)){p+=1;continue}j.add(s);let t=i.get(s),u={id:b,modelId:b,canonicalId:q,name:"string"==typeof a?b:a?.name||a?.displayName||a?.display_name||b,kind:c,type:c,fullModel:"object"==typeof a?a.fullModel:void 0};if(t?.status==="dead"){l.push({...u,checkedAt:t.checkedAt,failureClass:t.failureClass||null});continue}if(t?.status==="ok"){n.push({...u,latencyMs:t.latencyMs??null,checkedAt:t.checkedAt});let a=t.checkedAt?Date.parse(t.checkedAt):NaN;if(f&&Number.isFinite(a)&&h-a<=e){m.push({...u,latencyMs:t.latencyMs??null,checkedAt:t.checkedAt});continue}}k.push(u)}return{eligible:k,skippedDead:l,skippedFreshOk:m,cachedOk:n,stats:{total:b.length,invalid:o,duplicates:p,skippedDead:l.length,skippedFreshOk:m.length,cachedOk:n.length,eligible:k.length}}}},38238:(a,b,c)=>{c.d(b,{P:()=>h});var d=c(44776),e=c(30869),f=c(41460);async function g(){let a=null;try{let b=await (0,d.PX)();a=b.find(a=>!1!==a.isActive)?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b[f.nF]=await (0,f.cb)(),b}async function h(a,b,c=`http://127.0.0.1:${process.env.PORT||e.h0.appPort}`,d={}){var f;let i,j=await g(),k=Date.now(),l=(i=Number.isFinite(Number(f=d.timeoutMs||15e3))?Number(f):15e3,AbortSignal.timeout(Math.max(1,Math.floor(i))));if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:j,body:JSON.stringify({model:a,input:"test"}),signal:l}),d=Date.now()-k,e=await b.text().catch(()=>""),f=null;try{f=e?JSON.parse(e):null}catch{}if(!b.ok){let a=f?.error?.message||f?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(f?.data)&&f.data.length>0&&Array.isArray(f.data[0]?.embedding)?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:j,body:JSON.stringify({model:a,prompt:"test"}),signal:l}),d=Date.now()-k,e=await b.text().catch(()=>""),f=null;try{f=e?JSON.parse(e):null}catch{}if(!b.ok){let a=f?.error?.message||f?.msg||f?.message||f?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(f?.data)&&f.data.length>0?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,d,e,f,g=new FormData,h=(e=new DataView(d=new ArrayBuffer(44+(b=2*Math.max(1,Math.floor(4e3))))),(f=(a,b)=>{for(let c=0;c<b.length;c+=1)e.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),e.setUint32(4,36+b,!0),f(8,"WAVE"),f(12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,16e3,!0),e.setUint32(28,32e3,!0),e.setUint16(32,2,!0),e.setUint16(34,16,!0),f(36,"data"),e.setUint32(40,b,!0),new Blob([d],{type:"audio/wav"}));g.append("file",h,"test.wav"),g.append("model",a);let i=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(j).filter(([a])=>"content-type"!==a.toLowerCase())),body:g,signal:l}),m=Date.now()-k,n=await i.text().catch(()=>""),o=null;try{o=n?JSON.parse(n):null}catch{}if(!i.ok){let a=o?.error?.message||o?.msg||o?.message||o?.error||n;return{ok:!1,latencyMs:m,error:`HTTP ${i.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:i.status}}return("string"==typeof o?.text?o.text:"").trim()?{ok:!0,latencyMs:m,error:null,status:i.status}:{ok:!1,latencyMs:m,status:i.status,error:"Provider returned no transcription text for this model"}}let m=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:j,body:JSON.stringify({model:a,max_tokens:16,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:l}),n=Date.now()-k,o=await m.text().catch(()=>""),p=null;try{p=o?JSON.parse(o):null}catch{}if(!m.ok){let a=p?.error?.message||p?.msg||p?.message||p?.error||o;return{ok:!1,latencyMs:n,error:`HTTP ${m.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:m.status}}let q=p?.status,r=p?.msg||p?.message;if(null!=q&&"200"!==String(q)&&"0"!==String(q)&&r)return{ok:!1,latencyMs:n,status:m.status,error:`Provider status ${q}: ${String(r).slice(0,240)}`};if(p?.error){let a=p?.error?.message||p?.error||"Provider returned an error";return{ok:!1,latencyMs:n,status:m.status,error:String(a).slice(0,240)}}return Array.isArray(p?.choices)&&p.choices.length>0?{ok:!0,latencyMs:n,error:null,status:m.status}:{ok:!1,latencyMs:n,status:m.status,error:"Provider returned no completion choices for this model"}}},41460:(a,b,c)=>{c.d(b,{cb:()=>h,gN:()=>i,nF:()=>f});var d=c(54603),e=c(38044);let f="x-switchboard-cli-token",g=null;async function h(){return g||(g=await (0,d.Xj)("switchboard-cli-auth")),g}async function i(a){let b=a?.headers?.get?.(f);return!!b&&(0,e.lO)(b,await h())}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.nJ,"machine-id"),m=h().join(k.nJ,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||function(){if(process.env.MACHINE_ID_SALT)return process.env.MACHINE_ID_SALT;let a=h().join(m,"machine-id-salt");try{let b=f().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(a,b,{mode:384})}catch{}return b}(),c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.nJ,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="switchboard-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6103,exports.ids=[6103],exports.modules={86103:(a,b,c)=>{c.d(b,{generateApiKeyWithMachine:()=>l});var d=c(55511),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(53859);let k=function(){if(process.env.API_KEY_SECRET)return process.env.API_KEY_SECRET;let a=i().join(j.nJ,"auth","api-key-secret");try{let b=g().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=e().randomBytes(32).toString("hex");try{g().mkdirSync(i().dirname(a),{recursive:!0,mode:448}),g().writeFileSync(a,b,{mode:384})}catch{}return b}();function l(a){let b=e().randomBytes(16).toString("hex"),c=e().createHmac("sha256",k).update(a+b).digest("hex").slice(0,8);return{key:`sk-${a}-${b}-${c}`,keyId:b}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=615,exports.ids=[615],exports.modules={40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(52280);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)}};
1
+ "use strict";exports.id=615,exports.ids=[615],exports.modules={40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(67141);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.aliases?.length?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)}};
@@ -50,8 +50,8 @@ ${c}
50
50
  `.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="switchboard";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function l(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function m(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(m(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:a.headers,body:i??b.toString("utf8")},null,2)),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(m(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,n={},o=[];return{writeHeader:(a,b)=>{i=a,n=b||{}},writeChunk:a=>{null!=a&&o.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(o),b=n["content-encoding"]||n["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(k.test(c))return;let e={...n};delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
51
51
  HEADERS: ${JSON.stringify(e,null,2)}
52
52
  ---BODY---
53
- ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:20128";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=g.join(C,".mitm.lock"),L=[5e3,1e4,2e4,3e4,6e4],M=0,N=0,O=!1;function P(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function Q(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let R=Q(P()),S="aes-256-gcm",T="switchboard-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+T).digest()}catch{return l.createHash("sha256").update(T).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(),d=l.randomBytes(12),e=l.createCipheriv(S,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{let a=await _();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=$(),f=l.createDecipheriv(S,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&R)try{let b=R.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ak(){let a=null!==U&&!U.killed,b=V;if(!a)try{if(h.existsSync(J)){let c=parseInt(h.readFileSync(J,"utf-8").trim(),10);c&&Y(c)?(a=!0,b=c):h.unlinkSync(J)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function al(a){if(O)return;if(O=!0,Date.now()-N>=6e4&&(M=0),M>=5){E("Max restart attempts reached. Giving up."),O=!1;return}let b=L[Math.min(M,L.length-1)];M++,D(`Restarting in ${b/1e3}s... (${M}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=_?await _():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),O=!1;return}let c=W()||await ad();if(!c&&!v){E("No cached password, cannot auto-restart"),O=!1;return}await an(a,c),D("\uD83D\uDD04 Restarted successfully"),M=0,O=!1}catch(b){E(`Restart attempt ${M}/5 failed: ${b.message}`),O=!1,al(a)}}async function am(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function an(a,b,l=!1){if(!U||U.killed)try{if(h.existsSync(J)){let a=parseInt(h.readFileSync(J,"utf-8").trim(),10);if(a&&Y(a))return V=a,D(`♻️ Reusing existing process (PID: ${a})`),await ab(!0,b),b&&X(b),{running:!0,pid:a};h.unlinkSync(J)}}catch{}if(U&&!U.killed)throw Error("MITM server is already running");try{h.writeFileSync(K,String(process.pid),{flag:"wx"})}catch(a){if("EEXIST"===a.code){let a=!1;try{let b=parseInt(h.readFileSync(K,"utf-8").trim(),10);a=!b||!Y(b)}catch{a=!0}if(!a)throw Error("MITM server is already starting (lock contention)");try{h.unlinkSync(K)}catch{}h.writeFileSync(K,String(process.pid),{flag:"wx"})}else throw a}try{if(await aj(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ai(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(l)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await am(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let m=g.join(C,"rootCA.crt"),n=g.join(C,"rootCA.key"),o=h.existsSync(m)&&h.existsSync(n);if(!o||A(m)){if(o){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||W()||await ad();try{await z(a,m)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:p}=c(9631),r=await p(m),u=!v&&!w&&!s();if(r)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||W()||await ad();if(u)D(`🔐 Cert: skipping system trust (no sudo). Install ${m} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,m),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let B=R;if((!B||!h.existsSync(B))&&(D(`[MITM] server.js missing at ${B} → recopying`),!(B=Q(P()))||!h.existsSync(B)))throw Error(`MITM server.js not found at ${B}. Reinstall switchboard.`);let G=await I();if(D(`🚀 Starting server... (router: ${G})`),v){let c=await ai(b);if(c)if(l)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await am(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}U=e(process.execPath,[B],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:G}}),aa&&await aa({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){let c=[`HOME=${H(i.homedir())}`,`ROUTER_API_KEY=${H(a)}`,`MITM_ROUTER_BASE=${H(G)}`,"NODE_ENV=production",H(process.execPath),H(B)].join(" ");(U=e("sudo",["-S","-E","sh","-c",c],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
54
- `),U.stdin.end()}else U=e(process.execPath,[B],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:G}});if(U&&(V=U.pid,h.writeFileSync(J,String(V)),N=Date.now()),w){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?D(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):D(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(v){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?D(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):D("[setx] NODE_EXTRA_CA_CERTS set for current user")})}let L=null;U&&(U.stdout.on("data",a=>{process.stdout.write(a)}),U.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),L=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(X(null),ac(),O=!0)}),U.on("exit",b=>{D(`Server exited (code: ${b})`),U=null,V=null;try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}0===b||O||al(a)}));let M=await function(a=443){return new Promise(b=>{let c=Date.now()+8e3,d=()=>{let e=k.request({hostname:"127.0.0.1",port:a,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let c="";a.on("data",a=>{c+=a}),a.on("end",()=>{try{let a=JSON.parse(c);b(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{b(null)}})});e.on("error",()=>{Date.now()<c?setTimeout(d,500):b(null)}),e.end()};d()})}(443);if(!M){if(U&&!U.killed){try{U.kill()}catch{}U=null}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${F} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=L||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}aa&&await aa({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${V||M.pid})`);let S=q();for(let[a,b]of Object.entries(S))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);await ab(!0,b),b&&X(b);try{h.unlinkSync(K)}catch{}return{running:!0,pid:V}}catch(a){try{h.unlinkSync(K)}catch{}throw a}}async function ao(a){O=!0,M=0,D("⏹ Stopping server...");let b=U,e=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(J,"utf-8").trim(),10)}catch{return null}})();if(e&&Y(e)&&(D(`Killing server (PID: ${e})...`),Z(e,!1,a),await new Promise(a=>setTimeout(a,1e3)),Y(e)&&Z(e,!0,a)),U=null,V=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
53
+ ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:20128";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=g.join(C,".mitm.lock"),L=[5e3,1e4,2e4,3e4,6e4],M=0,N=0,O=!1;function P(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function Q(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let R=Q(P()),S="aes-256-gcm",T="switchboard-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+T).digest()}catch{return l.createHash("sha256").update(T).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(),d=l.randomBytes(12),e=l.createCipheriv(S,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{let a=await _();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=$(),f=l.createDecipheriv(S,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&R)try{let b=H(R);if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function ak(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=()=>{let a=k.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1,timeout:2e3},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{try{let a=JSON.parse(b);c(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{c(null)}})});a.on("timeout",()=>a.destroy(Error("health check timed out"))),a.on("error",()=>{Date.now()<d?setTimeout(e,500):c(null)}),a.end()};e()})}async function al(){let a=null!==U&&!U.killed,b=V;if(!a)try{if(h.existsSync(J)){let c=parseInt(h.readFileSync(J,"utf-8").trim(),10);c&&Y(c)?(a=!0,b=c):h.unlinkSync(J)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function am(a){if(O)return;if(O=!0,Date.now()-N>=6e4&&(M=0),M>=5){E("Max restart attempts reached. Giving up."),O=!1;return}let b=L[Math.min(M,L.length-1)];M++,D(`Restarting in ${b/1e3}s... (${M}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=_?await _():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),O=!1;return}let c=W()||await ad();if(!c&&!v){E("No cached password, cannot auto-restart"),O=!1;return}await ao(a,c),D("\uD83D\uDD04 Restarted successfully"),M=0,O=!1}catch(b){E(`Restart attempt ${M}/5 failed: ${b.message}`),O=!1,am(a)}}async function an(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ao(a,b,k=!1){if(!U||U.killed)try{if(h.existsSync(J)){let a=parseInt(h.readFileSync(J,"utf-8").trim(),10);if(a&&Y(a))return V=a,D(`♻️ Reusing existing process (PID: ${a})`),await ab(!0,b),b&&X(b),{running:!0,pid:a};h.unlinkSync(J)}}catch{}if(U&&!U.killed)throw Error("MITM server is already running");try{h.writeFileSync(K,String(process.pid),{flag:"wx"})}catch(a){if("EEXIST"===a.code){let a=!1;try{let b=parseInt(h.readFileSync(K,"utf-8").trim(),10);a=!b||!Y(b)}catch{a=!0}if(!a)throw Error("MITM server is already starting (lock contention)");try{h.unlinkSync(K)}catch{}h.writeFileSync(K,String(process.pid),{flag:"wx"})}else throw a}try{if(await aj(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ai(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(k)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await an(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let l=g.join(C,"rootCA.crt"),m=g.join(C,"rootCA.key"),n=h.existsSync(l)&&h.existsSync(m);if(!n||A(l)){if(n){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||W()||await ad();try{await z(a,l)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:o}=c(9631),p=await o(l),r=!v&&!w&&!s();if(p)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||W()||await ad();if(r)D(`🔐 Cert: skipping system trust (no sudo). Install ${l} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,l),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let u=R;if((!u||!h.existsSync(u))&&(D(`[MITM] server.js missing at ${u} → recopying`),!(u=Q(P()))||!h.existsSync(u)))throw Error(`MITM server.js not found at ${u}. Reinstall switchboard.`);let B=await I();if(D(`🚀 Starting server... (router: ${B})`),v){let c=await ai(b);if(c)if(k)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await an(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}U=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}}),aa&&await aa({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){let c=[`HOME=${H(i.homedir())}`,`ROUTER_API_KEY=${H(a)}`,`MITM_ROUTER_BASE=${H(B)}`,"NODE_ENV=production",H(process.execPath),H(u)].join(" ");U=e("sudo",["-S","-E","sh","-c",c],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]}),b&&U.stdin.write(`${b}
54
+ `),U.stdin.end()}else U=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}});if(U&&(V=U.pid,h.writeFileSync(J,String(V)),N=Date.now()),w){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?D(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):D(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(v){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?D(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):D("[setx] NODE_EXTRA_CA_CERTS set for current user")})}let G=null;U&&(U.stdout.on("data",a=>{process.stdout.write(a)}),U.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),G=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(X(null),ac(),O=!0)}),U.on("exit",b=>{D(`Server exited (code: ${b})`),U=null,V=null;try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}0===b||O||am(a)}));let L=await ak(8e3,443);if(!L){if(U&&!U.killed){try{U.kill()}catch{}U=null}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${F} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=G||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}aa&&await aa({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${V||L.pid})`);let M=q();for(let[a,b]of Object.entries(M))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);await ab(!0,b),b&&X(b);try{h.unlinkSync(K)}catch{}return{running:!0,pid:V}}catch(a){try{h.unlinkSync(K)}catch{}throw a}}async function ap(a){O=!0,M=0,D("⏹ Stopping server...");let b=U,e=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(J,"utf-8").trim(),10)}catch{return null}})();if(e&&Y(e)&&(D(`Killing server (PID: ${e})...`),Z(e,!1,a),await new Promise(a=>setTimeout(a,1e3)),Y(e)&&Z(e,!0,a)),U=null,V=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
55
55
  $hosts = @(${c})
56
56
  $lines = Get-Content -LiteralPath ${f(a)}
57
57
  $filtered = $lines | Where-Object {
@@ -60,4 +60,4 @@ ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.e
60
60
  }
61
61
  Set-Content -LiteralPath ${f(a)} -Value $filtered
62
62
  ipconfig /flushdns | Out-Null
63
- `;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ab(!1,null),O=!1,{running:!1,pid:null}}async function ap(a,b){if(!(await ak()).running)throw Error("MITM server is not running. Start the server first.");let c=b||W()||await ad();return await m(a,c),await ae(a,!0),{success:!0}}a.exports={getMitmStatus:ak,startServer:an,stopServer:ao,enableToolDNS:ap,disableToolDNS:async function a(a,b){let c=b||W()||await ad();return await n(a,c),await ae(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||W()||await ad();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&X(e)},startMitm:an,stopMitm:ao,getCachedPassword:W,setCachedPassword:X,loadEncryptedPassword:ad,clearEncryptedPassword:ac,isSudoPasswordRequired:t,initDbHooks:function(a,b){_=a,aa=b},restoreToolDNS:ag,hasDnsPrivilege:ah,removeAllDNSEntriesSync:p}}};
63
+ `;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ab(!1,null),O=!1,{running:!1,pid:null}}async function aq(a,b){if(!(await al()).running)throw Error("MITM server is not running. Start the server first.");let c=b||W()||await ad();return await m(a,c),await ae(a,!0),{success:!0}}a.exports={pollMitmHealth:ak,getMitmStatus:al,startServer:ao,stopServer:ap,enableToolDNS:aq,disableToolDNS:async function a(a,b){let c=b||W()||await ad();return await n(a,c),await ae(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||W()||await ad();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&X(e)},startMitm:ao,stopMitm:ap,getCachedPassword:W,setCachedPassword:X,loadEncryptedPassword:ad,clearEncryptedPassword:ac,isSudoPasswordRequired:t,initDbHooks:function(a,b){_=a,aa=b},restoreToolDNS:ag,hasDnsPrivilege:ah,removeAllDNSEntriesSync:p}}};
@@ -0,0 +1,9 @@
1
+ "use strict";exports.id=6252,exports.ids=[6252],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
+ PRAGMA journal_mode = WAL;
3
+ PRAGMA synchronous = NORMAL;
4
+ PRAGMA temp_store = MEMORY;
5
+ PRAGMA mmap_size = 30000000;
6
+ PRAGMA cache_size = -64000;
7
+ PRAGMA foreign_keys = ON;
8
+ PRAGMA busy_timeout = 5000;
9
+ `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",requestId:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},fetchCache:{columns:{cacheKey:"TEXT PRIMARY KEY",kind:"TEXT",url:"TEXT",content:"TEXT NOT NULL",contentType:"TEXT",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt)","CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt)"]},vault_entries:{columns:{id:"TEXT PRIMARY KEY",conversationId:"TEXT NOT NULL",toolName:"TEXT",content:"TEXT NOT NULL",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId)","CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt)","CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt)"]},vault_chunks:{columns:{entryId:"TEXT NOT NULL",chunkIndex:"INTEGER NOT NULL",conversationId:"TEXT NOT NULL",text:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (entryId, chunkIndex)",indexes:["CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},66252:(a,b,c)=>{c.d(b,{createSqlJsAdapter:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(46293),i=c.n(h),j=c(34050);let k=null;async function l(){return k||(k=await i()())}async function m(a){let b=await l(),c=e().existsSync(a)?e().readFileSync(a):null,d=new b.Database(c);d.exec(j.oG);let f=!1,h=null;function i(){let b,c=d.export(),h=a+".tmp";e().writeFileSync(h,Buffer.from(c));let i=e().openSync(h,"r");try{e().fsyncSync(i)}finally{e().closeSync(i)}e().renameSync(h,a);try{b=e().openSync(g().dirname(a),"r"),e().fsyncSync(b)}catch{}finally{void 0!==b&&e().closeSync(b)}f=!1}function k(){f=!0,h&&clearTimeout(h),h=setTimeout(()=>{if(h=null,f)try{i()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function m(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}return process.on("beforeExit",()=>{if(f)try{i()}catch{}}),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(m(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return k(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(m(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(m(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),k()},transaction:function(a){let b=`sp_${Math.random().toString(36).slice(2)}`;d.exec(`SAVEPOINT ${b}`);try{let c=a();return d.exec(`RELEASE ${b}`),k(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){h&&clearTimeout(h),f&&i(),d.close()},raw:d}}}};
@@ -0,0 +1,109 @@
1
+ "use strict";exports.id=6448,exports.ids=[6448],exports.modules={5781:(a,b,c)=>{c.r(b),c.d(b,{DEFAULT_QUOTA_FRESH_MS:()=>h,cleanupProviderConnections:()=>y,connToRow:()=>n,createProviderConnection:()=>t,deleteProviderConnection:()=>v,deleteProviderConnectionsByProvider:()=>w,getProviderConnectionById:()=>q,getProviderConnections:()=>p,getProviderQuotaHeadroom:()=>r,redactSecrets:()=>l,reorderProviderConnections:()=>x,updateProviderConnection:()=>u});var d=c(47293),e=c(36366),f=c(644),g=c(38044);let h=2*c(30869).oc.tickIntervalMs,i=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt"],j=new Set(["accessToken","refreshToken","idToken","apiKey","copilotToken","cookies","clientSecret","secretAccessKey"]);function k(a,b,c=!1){return"string"==typeof a?c&&a?b(a):a:c&&null!==a&&"object"!=typeof a?void 0:Array.isArray(a)?a.map(a=>k(a,b,c)):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).map(([a,d])=>[a,k(d,b,c||j.has(a))])):a}function l(a){return k(a,()=>void 0)}function m(a){return a?{...k((0,f.q)(a.data,{}),a=>(0,g.wu)(a)??a),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function n(a){let{id:b,provider:c,authType:d,name:e,email:h,priority:i,isActive:j,createdAt:l,updatedAt:m,...n}=a,o=k(n,g.MG);return{id:b,provider:c,authType:d,name:e??null,email:h??null,priority:i??null,isActive:+(!1!==j),data:(0,f.s)(o),createdAt:l,updatedAt:m}}function o(a,b){let c=n(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
2
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
3
+ ON CONFLICT(id) DO UPDATE SET
4
+ provider=excluded.provider, authType=excluded.authType, name=excluded.name,
5
+ email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
6
+ data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function p(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(m);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function q(a){return m((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}async function r(a=h){try{let b=Object.create(null),c=Number.isFinite(a)?a:h,d=Date.now();for(let a of(await p())){let e=a.lastQuota,f=Number(e?.at),g=Number(e?.remainingPercentage);if(!Number.isFinite(f)||d-f>c||!Number.isFinite(g))continue;let h=b[a.provider];(!Number.isFinite(h)||g>h)&&(b[a.provider]=g)}return b}catch{return{}}}function s(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(m);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function t(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{let e=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(m),g=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;g=e.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(g=e.find(b=>"apikey"===b.authType&&b.name===a.name));if(g){let d={...g,...a,updatedAt:f};o(c,d),b=d;return}let h=a.name||null;h||"oauth"!==a.authType&&"access_token"!==a.authType||(h=a.email||`Account ${e.length+1}`);let j=a.priority;j||(j=e.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let k={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:h,priority:j,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of i)void 0!==a[b]&&null!==a[b]&&(k[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(k.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(k.email=a.email),o(c,k),s(c,a.provider),b=k}),b}async function u(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=m(e),g={...f,...b,updatedAt:new Date().toISOString()};o(d,g),void 0!==b.priority&&s(d,f.provider),c=g}),c}async function v(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),s(b,d.provider),c=!0)}),c}async function w(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function x(a){let b=await (0,e.c)();b.transaction(()=>s(b,a))}async function y(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=m(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&o(a,e)}}),c}},36448:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>A});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(95658),i=c(63775);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"routing-auto",up(a){a.exec(`
7
+ CREATE TABLE IF NOT EXISTS routing_events (
8
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
9
+ timestamp TEXT NOT NULL,
10
+ comboName TEXT NOT NULL,
11
+ sessionId TEXT,
12
+ requestFingerprint TEXT,
13
+ cluster TEXT,
14
+ routerModel TEXT,
15
+ pickedWorker TEXT,
16
+ alternates TEXT,
17
+ routerReason TEXT,
18
+ routerConfidence TEXT,
19
+ routerLatencyMs INTEGER,
20
+ workerStatus INTEGER,
21
+ workerLatencyMs INTEGER,
22
+ fallbackUsed INTEGER DEFAULT 0,
23
+ retries INTEGER DEFAULT 0,
24
+ tokensIn INTEGER,
25
+ tokensOut INTEGER,
26
+ outcomeScore REAL,
27
+ objective TEXT,
28
+ learningVersionId TEXT,
29
+ meta TEXT
30
+ );
31
+ CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC);
32
+ CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName);
33
+ CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker);
34
+
35
+ CREATE TABLE IF NOT EXISTS router_learning_versions (
36
+ id TEXT PRIMARY KEY,
37
+ comboName TEXT NOT NULL,
38
+ version INTEGER NOT NULL,
39
+ createdAt TEXT NOT NULL,
40
+ source TEXT,
41
+ banditTable TEXT,
42
+ learnedRules TEXT,
43
+ fewShots TEXT,
44
+ evalScore REAL,
45
+ prevVersionId TEXT,
46
+ promoted INTEGER DEFAULT 0,
47
+ notes TEXT
48
+ );
49
+ CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName);
50
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version);
51
+ `)}},{version:3,name:"routing-request-id",up(a){new Set((a.all("PRAGMA table_info(routing_events)")||[]).map(a=>a.name)).has("requestId")||a.exec("ALTER TABLE routing_events ADD COLUMN requestId TEXT"),a.exec("CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)")}},{version:4,name:"provider-model-probe",up(a){a.exec(`
52
+ CREATE TABLE IF NOT EXISTS provider_model_probe (
53
+ provider_id TEXT NOT NULL,
54
+ scope_key TEXT NOT NULL,
55
+ model_id TEXT NOT NULL,
56
+ kind TEXT NOT NULL DEFAULT 'llm',
57
+ status TEXT NOT NULL,
58
+ latency_ms INTEGER,
59
+ failure_class TEXT,
60
+ failure_message TEXT,
61
+ checked_at TEXT NOT NULL,
62
+ PRIMARY KEY (provider_id, scope_key, kind, model_id)
63
+ )
64
+ `),a.exec("CREATE INDEX IF NOT EXISTS idx_pmp_provider_scope ON provider_model_probe(provider_id, scope_key)"),a.exec("CREATE INDEX IF NOT EXISTS idx_pmp_status ON provider_model_probe(provider_id, scope_key, status)")}},{version:5,name:"usage-request-id",up(a){(a.all("PRAGMA table_info(usageHistory)")||[]).some(a=>"requestId"===a.name)||a.exec("ALTER TABLE usageHistory ADD COLUMN requestId TEXT"),a.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL")}},{version:6,name:"fetch-cache",up(a){a.exec(`
65
+ CREATE TABLE IF NOT EXISTS fetchCache (
66
+ cacheKey TEXT PRIMARY KEY,
67
+ kind TEXT,
68
+ url TEXT,
69
+ content TEXT NOT NULL,
70
+ contentType TEXT,
71
+ sizeBytes INTEGER,
72
+ createdAt TEXT NOT NULL,
73
+ expiresAt TEXT NOT NULL,
74
+ lastAccessedAt TEXT NOT NULL
75
+ );
76
+ CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt);
77
+ CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt);
78
+ `)}},{version:7,name:"rtk-vault",up(a){a.exec(`
79
+ CREATE TABLE IF NOT EXISTS vault_entries (
80
+ id TEXT PRIMARY KEY,
81
+ conversationId TEXT NOT NULL,
82
+ toolName TEXT,
83
+ content TEXT NOT NULL,
84
+ sizeBytes INTEGER,
85
+ createdAt TEXT NOT NULL,
86
+ expiresAt TEXT NOT NULL,
87
+ lastAccessedAt TEXT NOT NULL
88
+ );
89
+ CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId);
90
+ CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt);
91
+ CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt);
92
+
93
+ CREATE TABLE IF NOT EXISTS vault_chunks (
94
+ entryId TEXT NOT NULL,
95
+ chunkIndex INTEGER NOT NULL,
96
+ conversationId TEXT NOT NULL,
97
+ text TEXT NOT NULL,
98
+ PRIMARY KEY (entryId, chunkIndex)
99
+ );
100
+ CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId);
101
+ `)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}function o(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function p(a,b,c=null){if(!e().existsSync(a))return null;let d=c||g().basename(a),f=g().join(b,d);return e().copyFileSync(a,f),f}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(5))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(644),s=c(5781),t=c(38044);let u=g().join(h.HG,".migrated-from-json"),v=new WeakSet;class w extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function x(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new w(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function y(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}function z(a){try{a.checkpoint?.()}catch{}}async function A(a){if(v.has(a))return;v.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a),c=function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return{applied:0,from:b,to:b};let c=j.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),d=b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);return{applied:c.length,from:b,to:d}}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}let d=e().existsSync(u),f=y(h.Or.main),g=y(h.Or.usage),m=y(h.Or.disabled),A=y(h.Or.details);if(b&&(f||g||m||A)&&!d){let b=Date.now(),c=o("migrate-from-json");for(let a of Object.values(h.Or))p(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),x(a,"providerConnections",f.providerConnections||[],b=>{let c=(0,s.connToRow)(b);a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.provider,c.authType||"oauth",c.name,c.email,c.priority,c.isActive,c.data,c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),x(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),x(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),x(a,"apiKeys",f.apiKeys||[],b=>{let c="string"==typeof b.key&&(0,t.BA)(b.key).legacy?(0,t.ws)(b.key):b.key;a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,c,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),x(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(g&&"object"==typeof g){for(let b of g.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(g.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof g.totalRequestsLifetime&&l(a,"totalRequestsLifetime",g.totalRequestsLifetime)}if(m&&"object"==typeof m.disabled)for(let[b,c]of Object.entries(m.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(A&&Array.isArray(A.records))for(let b of A.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof w)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(u,new Date().toISOString())}catch{}q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void l(a,"appVersion",n());let B=k(a,"appVersion",null),C=n();if(B&&B!==C){z(a);let b=o(`upgrade-${B}-to-${C}`);try{p(h.AL,b)}catch{}l(a,"appVersion",C),q(),console.log(`[DB][migrate] App ${B} → ${C} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){z(a);let b=o(`schema-${c.from}-to-${c.to}`);try{p(h.AL,b)}catch{}q()}}},38044:(a,b,c)=>{c.d(b,{BA:()=>v,MG:()=>q,kk:()=>s,lO:()=>w,ws:()=>u,wu:()=>r});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(49120);let k="aes-256-gcm",l="enc:v1:",m=i().join(j.nJ,"auth","data-key"),n="switchboard-at-rest-v1",o=null;function p(){if(o)return o;try{let a=g().readFileSync(m);if(32===a.length)return o=a}catch{}try{let a=i().join(j.nJ,"machine-id"),b=n;try{b=g().readFileSync(a,"utf8").trim()+n}catch{}o=b===n?e().randomBytes(32):e().createHash("sha256").update(b).digest()}catch{o=e().randomBytes(32)}try{g().mkdirSync(i().dirname(m),{recursive:!0,mode:448}),g().writeFileSync(m,o,{mode:384})}catch{}return o}function q(a){if(null==a||""===a||"string"!=typeof a||a.startsWith(l))return a;let b=p(),c=e().randomBytes(12),d=e().createCipheriv(k,b,c),f=Buffer.concat([d.update(a,"utf8"),d.final()]),g=d.getAuthTag();return`${l}${c.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`}function r(a){if(null==a||""===a||"string"!=typeof a||!a.startsWith(l))return a;try{let[b,c,d]=a.slice(l.length).split(":");if(!b||!c||!d)return null;let f=p(),g=e().createDecipheriv(k,f,Buffer.from(b,"hex"));return g.setAuthTag(Buffer.from(c,"hex")),g.update(Buffer.from(d,"hex"),void 0,"utf8")+g.final("utf8")}catch{return null}}function s(a){return e().createHash("sha256").update(`sb-key:${a}`).digest("hex")}function t(a){return a&&"string"==typeof a?a.length<=12?a.slice(0,4)+"…":a.slice(0,10)+"…":""}function u(a){return`v1:${t(a)}:${s(a)}`}function v(a){if(!a||"string"!=typeof a)return{prefix:"",hash:null,legacy:!0,raw:a};if(a.startsWith("v1:")){let b=a.split(":");if(b.length>=3)return{prefix:b[1],hash:b.slice(2).join(":"),legacy:!1,raw:null}}return{prefix:t(a),hash:null,legacy:!0,raw:a}}function w(a,b){if("string"!=typeof a||"string"!=typeof b)return!1;let c=e().createHash("sha256").update(a).digest(),d=e().createHash("sha256").update(b).digest();return e().timingSafeEqual(c,d)}},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
102
+ PRAGMA journal_mode = WAL;
103
+ PRAGMA synchronous = NORMAL;
104
+ PRAGMA temp_store = MEMORY;
105
+ PRAGMA mmap_size = 30000000;
106
+ PRAGMA cache_size = -64000;
107
+ PRAGMA foreign_keys = ON;
108
+ PRAGMA busy_timeout = 5000;
109
+ `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",requestId:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},fetchCache:{columns:{cacheKey:"TEXT PRIMARY KEY",kind:"TEXT",url:"TEXT",content:"TEXT NOT NULL",contentType:"TEXT",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt)","CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt)"]},vault_entries:{columns:{id:"TEXT PRIMARY KEY",conversationId:"TEXT NOT NULL",toolName:"TEXT",content:"TEXT NOT NULL",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId)","CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt)","CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt)"]},vault_chunks:{columns:{entryId:"TEXT NOT NULL",chunkIndex:"INTEGER NOT NULL",conversationId:"TEXT NOT NULL",text:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (entryId, chunkIndex)",indexes:["CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};