@rabbi696/ezrouter 0.6.3 → 0.6.5

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 (1316) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +44 -32
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +72 -0
  5. package/app/.next-cli-build/routes-manifest.json +81 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js +2 -2
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js +2 -0
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js.nft.json +1 -0
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page_client-reference-manifest.js +1 -0
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js +2 -0
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js.nft.json +1 -0
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page_client-reference-manifest.js +1 -0
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js +2 -0
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js.nft.json +1 -0
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page_client-reference-manifest.js +1 -0
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js +2 -2
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  93. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  94. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  96. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  97. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  99. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  103. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  105. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  107. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  108. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  109. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  110. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  111. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  112. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  113. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  114. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  115. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +2 -2
  128. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
  130. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/auth/status/route.js +2 -2
  136. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
  140. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  142. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  144. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js +2 -2
  154. package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
  156. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  162. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  168. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  172. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  176. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  180. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/combos/export/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/combos/import/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/combos/import/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/combos/test/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/combos/test/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/convoy/rules/route.js +2 -2
  198. package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  226. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js +1 -0
  228. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js.nft.json +1 -0
  229. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route_client-reference-manifest.js +1 -0
  230. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js +1 -0
  231. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js.nft.json +1 -0
  232. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route_client-reference-manifest.js +1 -0
  233. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js +1 -0
  234. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js.nft.json +1 -0
  235. package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route_client-reference-manifest.js +1 -0
  236. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js +1 -0
  237. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js.nft.json +1 -0
  238. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route_client-reference-manifest.js +1 -0
  239. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js +1 -0
  240. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js.nft.json +1 -0
  241. package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route_client-reference-manifest.js +1 -0
  242. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js +4 -0
  243. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js.nft.json +1 -0
  244. package/app/.next-cli-build/server/app/api/mcp-gateway/message/route_client-reference-manifest.js +1 -0
  245. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js +5 -0
  246. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js.nft.json +1 -0
  247. package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route_client-reference-manifest.js +1 -0
  248. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js +1 -0
  249. package/app/.next-cli-build/server/app/api/mcp-gateway/route.js.nft.json +1 -0
  250. package/app/.next-cli-build/server/app/api/mcp-gateway/route_client-reference-manifest.js +1 -0
  251. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js +4 -0
  252. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js.nft.json +1 -0
  253. package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route_client-reference-manifest.js +1 -0
  254. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/oauth/callback/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/oauth/callback/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  287. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +19 -9
  343. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +16 -5
  345. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +16 -5
  349. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  351. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  355. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  357. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  361. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  363. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  365. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/routing-health/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/routing-health/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js +2 -2
  383. package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  389. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/usage/error-logs/route.js +3 -3
  419. package/app/.next-cli-build/server/app/api/usage/error-logs/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  433. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js +1 -1
  449. package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  463. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  469. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  471. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  472. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  473. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  474. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  475. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  476. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  477. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  478. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  479. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  481. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  483. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  484. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  485. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  487. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  488. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  489. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  490. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  491. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  493. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  494. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  495. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  496. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  497. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  498. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  499. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  500. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  501. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  502. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  503. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  504. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  505. package/app/.next-cli-build/server/app/callback.html +1 -1
  506. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  507. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  508. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  510. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  511. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  512. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  514. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  515. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  516. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  517. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  518. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  519. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  520. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  521. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  522. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  523. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  524. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  525. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  526. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  528. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  530. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  531. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  532. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  533. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  534. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  535. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  536. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  538. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  539. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  540. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  541. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  542. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  543. package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
  544. package/app/.next-cli-build/server/app/dashboard/convoy.rsc +6 -6
  545. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
  546. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  548. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  549. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +6 -6
  550. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
  551. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +4 -4
  552. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +2 -2
  553. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  554. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  555. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  556. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  557. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  558. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  559. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  560. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  561. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  562. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  563. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.html +1 -0
  564. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.meta +18 -0
  565. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.rsc +27 -0
  566. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys/__PAGE__.segment.rsc +9 -0
  567. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys.segment.rsc +5 -0
  568. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +6 -0
  569. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  570. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  571. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_full.segment.rsc +27 -0
  572. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_head.segment.rsc +6 -0
  573. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_index.segment.rsc +8 -0
  574. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_tree.segment.rsc +4 -0
  575. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.html +1 -0
  576. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.meta +18 -0
  577. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.rsc +27 -0
  578. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers/__PAGE__.segment.rsc +9 -0
  579. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers.segment.rsc +5 -0
  580. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +6 -0
  581. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  582. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  583. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_full.segment.rsc +27 -0
  584. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_head.segment.rsc +6 -0
  585. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_index.segment.rsc +8 -0
  586. package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_tree.segment.rsc +4 -0
  587. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.html +1 -0
  588. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.meta +17 -0
  589. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.rsc +27 -0
  590. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/__PAGE__.segment.rsc +9 -0
  591. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +6 -0
  592. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  593. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  594. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_full.segment.rsc +27 -0
  595. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_head.segment.rsc +6 -0
  596. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_index.segment.rsc +8 -0
  597. package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_tree.segment.rsc +4 -0
  598. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  599. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  600. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  601. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  602. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  603. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  604. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  605. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  606. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  607. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  608. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  609. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  610. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  611. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  612. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  613. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  614. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  615. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  616. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  617. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  618. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  619. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  620. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  621. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  622. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  623. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  624. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  625. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  626. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  627. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  628. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  629. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  630. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  631. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  632. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  633. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  634. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  635. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  636. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  637. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  638. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  639. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  640. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  641. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  642. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  643. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  644. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  645. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  646. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  647. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  648. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  649. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  650. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  651. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  652. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  653. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  655. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  656. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  657. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  658. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  659. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  660. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  661. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  662. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  663. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  664. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  665. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  666. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  667. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  668. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  669. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  670. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  671. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  672. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  673. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  674. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  675. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  676. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  677. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  678. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  679. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  680. package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
  681. package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +6 -6
  682. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
  683. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
  684. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  685. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  686. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +6 -6
  687. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
  688. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +4 -4
  689. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +2 -2
  690. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  691. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  692. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  693. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  694. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  695. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  696. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  697. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  698. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  699. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  700. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  701. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  702. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  703. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  704. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  705. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  706. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  707. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  708. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  709. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  710. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  711. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  712. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  713. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  714. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  715. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  716. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  717. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  718. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  719. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  720. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  721. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  722. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  723. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  724. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  725. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  726. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  727. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  728. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  729. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  730. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  731. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  732. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  733. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  734. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  735. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  736. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  737. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  738. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  739. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  740. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  741. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  742. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  743. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  744. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  745. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  746. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  747. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  748. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  749. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  750. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  751. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  752. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  753. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  754. package/app/.next-cli-build/server/app/index.html +1 -1
  755. package/app/.next-cli-build/server/app/index.rsc +4 -4
  756. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  757. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  758. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  759. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  760. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  761. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  762. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  763. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  764. package/app/.next-cli-build/server/app/landing.html +1 -1
  765. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  766. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  767. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  768. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  769. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  770. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  771. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  772. package/app/.next-cli-build/server/app/login/page.js +2 -2
  773. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  774. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  775. package/app/.next-cli-build/server/app/login.html +1 -1
  776. package/app/.next-cli-build/server/app/login.rsc +5 -5
  777. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  778. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  779. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  780. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  781. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  782. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  783. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  784. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  785. package/app/.next-cli-build/server/app/page.js +2 -2
  786. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  787. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  788. package/app/.next-cli-build/server/app-paths-manifest.json +44 -32
  789. package/app/.next-cli-build/server/chunks/1012.js +1 -0
  790. package/app/.next-cli-build/server/chunks/1133.js +1 -1
  791. package/app/.next-cli-build/server/chunks/1482.js +2 -2
  792. package/app/.next-cli-build/server/chunks/1531.js +1 -1
  793. package/app/.next-cli-build/server/chunks/1847.js +1 -1
  794. package/app/.next-cli-build/server/chunks/2021.js +1 -0
  795. package/app/.next-cli-build/server/chunks/2221.js +300 -0
  796. package/app/.next-cli-build/server/chunks/2348.js +1 -0
  797. package/app/.next-cli-build/server/chunks/2892.js +1 -1
  798. package/app/.next-cli-build/server/chunks/2898.js +2 -2
  799. package/app/.next-cli-build/server/chunks/3148.js +1 -1
  800. package/app/.next-cli-build/server/chunks/3245.js +1 -0
  801. package/app/.next-cli-build/server/chunks/3311.js +9 -0
  802. package/app/.next-cli-build/server/chunks/3433.js +6 -6
  803. package/app/.next-cli-build/server/chunks/3547.js +1 -1
  804. package/app/.next-cli-build/server/chunks/3583.js +3 -0
  805. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  806. package/app/.next-cli-build/server/chunks/369.js +29 -23
  807. package/app/.next-cli-build/server/chunks/3698.js +9 -0
  808. package/app/.next-cli-build/server/chunks/3886.js +1 -1
  809. package/app/.next-cli-build/server/chunks/3977.js +2 -0
  810. package/app/.next-cli-build/server/chunks/412.js +1 -1
  811. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  812. package/app/.next-cli-build/server/chunks/4485.js +1 -1
  813. package/app/.next-cli-build/server/chunks/4574.js +1 -1
  814. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  815. package/app/.next-cli-build/server/chunks/4755.js +1 -0
  816. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  817. package/app/.next-cli-build/server/chunks/4803.js +2 -2
  818. package/app/.next-cli-build/server/chunks/4807.js +1 -1
  819. package/app/.next-cli-build/server/chunks/4827.js +1 -0
  820. package/app/.next-cli-build/server/chunks/4878.js +1 -0
  821. package/app/.next-cli-build/server/chunks/5011.js +1 -1
  822. package/app/.next-cli-build/server/chunks/507.js +2 -2
  823. package/app/.next-cli-build/server/chunks/5209.js +3 -0
  824. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  825. package/app/.next-cli-build/server/chunks/5364.js +1 -0
  826. package/app/.next-cli-build/server/chunks/5681.js +1 -0
  827. package/app/.next-cli-build/server/chunks/5822.js +1 -0
  828. package/app/.next-cli-build/server/chunks/5875.js +1 -1
  829. package/app/.next-cli-build/server/chunks/595.js +1 -1
  830. package/app/.next-cli-build/server/chunks/6030.js +1 -0
  831. package/app/.next-cli-build/server/chunks/615.js +1 -1
  832. package/app/.next-cli-build/server/chunks/6252.js +2 -2
  833. package/app/.next-cli-build/server/chunks/6535.js +1 -1
  834. package/app/.next-cli-build/server/chunks/6790.js +1 -0
  835. package/app/.next-cli-build/server/chunks/6816.js +40 -0
  836. package/app/.next-cli-build/server/chunks/6892.js +1 -0
  837. package/app/.next-cli-build/server/chunks/6947.js +1 -1
  838. package/app/.next-cli-build/server/chunks/698.js +2 -2
  839. package/app/.next-cli-build/server/chunks/7239.js +2 -2
  840. package/app/.next-cli-build/server/chunks/7306.js +221 -0
  841. package/app/.next-cli-build/server/chunks/7321.js +1 -0
  842. package/app/.next-cli-build/server/chunks/7362.js +2 -2
  843. package/app/.next-cli-build/server/chunks/7603.js +1 -1
  844. package/app/.next-cli-build/server/chunks/7677.js +1 -0
  845. package/app/.next-cli-build/server/chunks/7775.js +1 -1
  846. package/app/.next-cli-build/server/chunks/7828.js +1 -1
  847. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  848. package/app/.next-cli-build/server/chunks/8062.js +2 -2
  849. package/app/.next-cli-build/server/chunks/8129.js +1 -1
  850. package/app/.next-cli-build/server/chunks/823.js +1 -0
  851. package/app/.next-cli-build/server/chunks/8243.js +4 -4
  852. package/app/.next-cli-build/server/chunks/8306.js +1 -0
  853. package/app/.next-cli-build/server/chunks/8459.js +1 -0
  854. package/app/.next-cli-build/server/chunks/8469.js +2 -2
  855. package/app/.next-cli-build/server/chunks/8520.js +2 -2
  856. package/app/.next-cli-build/server/chunks/8586.js +9 -0
  857. package/app/.next-cli-build/server/chunks/880.js +30 -0
  858. package/app/.next-cli-build/server/chunks/8946.js +1 -1
  859. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  860. package/app/.next-cli-build/server/chunks/9062.js +1 -0
  861. package/app/.next-cli-build/server/chunks/9217.js +1 -1
  862. package/app/.next-cli-build/server/chunks/9303.js +1 -1
  863. package/app/.next-cli-build/server/chunks/9485.js +1 -1
  864. package/app/.next-cli-build/server/chunks/{7054.js → 9637.js} +1 -1
  865. package/app/.next-cli-build/server/chunks/9718.js +1 -1
  866. package/app/.next-cli-build/server/chunks/9865.js +1 -0
  867. package/app/.next-cli-build/server/functions-config-manifest.json +5 -0
  868. package/app/.next-cli-build/server/instrumentation.js +1 -1
  869. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  870. package/app/.next-cli-build/server/middleware.js +6 -6
  871. package/app/.next-cli-build/server/pages/404.html +1 -1
  872. package/app/.next-cli-build/server/pages/500.html +1 -1
  873. package/app/.next-cli-build/static/chunks/{1321-04a5de50abe02d2f.js → 1321-a626f5925042a939.js} +1 -1
  874. package/app/.next-cli-build/static/chunks/{2595-2d703efb995163a7.js → 2595-96495a92ee7de154.js} +7 -7
  875. package/app/.next-cli-build/static/chunks/5497-f328c487bfcc0d0e.js +17 -0
  876. package/app/.next-cli-build/static/chunks/8105-b488efe0a830e2a7.js +1 -0
  877. package/app/.next-cli-build/static/chunks/9227-bb7d883d6cd67632.js +3 -0
  878. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-69c121887e473261.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mcp-gateway/error-8838c952fdd7eda6.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mcp-gateway/keys/page-f08a0a114048e6a2.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mcp-gateway/page-5d48568153ad3d87.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mcp-gateway/servers/page-64874ce3b8ea9143.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-85950757e9505005.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-c2fb956227849ef3.js +27 -0
  885. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-73fe7ee1ecd1bd52.js → page-e38b4f8ebf6a3d47.js} +1 -1
  886. package/app/.next-cli-build/static/chunks/app/_global-error/page-25eef5877853a92d.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-25eef5877853a92d.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-25eef5877853a92d.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-25eef5877853a92d.js +1 -0
  890. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-25eef5877853a92d.js +1 -0
  891. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-25eef5877853a92d.js +1 -0
  892. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-25eef5877853a92d.js +1 -0
  893. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-25eef5877853a92d.js +1 -0
  894. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-25eef5877853a92d.js +1 -0
  895. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-25eef5877853a92d.js +1 -0
  896. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-25eef5877853a92d.js +1 -0
  897. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-25eef5877853a92d.js +1 -0
  898. package/app/.next-cli-build/static/chunks/app/api/changelog/route-25eef5877853a92d.js +1 -0
  899. package/app/.next-cli-build/static/chunks/app/api/cli/providers/codex/route-25eef5877853a92d.js +1 -0
  900. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-25eef5877853a92d.js +1 -0
  901. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-25eef5877853a92d.js +1 -0
  902. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-25eef5877853a92d.js +1 -0
  903. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-25eef5877853a92d.js +1 -0
  904. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-25eef5877853a92d.js +1 -0
  905. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/models/route-25eef5877853a92d.js +1 -0
  906. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/readiness/route-25eef5877853a92d.js +1 -0
  907. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-25eef5877853a92d.js +1 -0
  908. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-25eef5877853a92d.js +1 -0
  909. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-25eef5877853a92d.js +1 -0
  910. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-25eef5877853a92d.js +1 -0
  911. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-25eef5877853a92d.js +1 -0
  912. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-25eef5877853a92d.js +1 -0
  913. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-25eef5877853a92d.js +1 -0
  914. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-25eef5877853a92d.js +1 -0
  915. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-25eef5877853a92d.js +1 -0
  916. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-25eef5877853a92d.js +1 -0
  917. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-25eef5877853a92d.js +1 -0
  918. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-25eef5877853a92d.js +1 -0
  919. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-25eef5877853a92d.js +1 -0
  920. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-25eef5877853a92d.js +1 -0
  921. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-25eef5877853a92d.js +1 -0
  922. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-25eef5877853a92d.js +1 -0
  923. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/test/route-25eef5877853a92d.js +1 -0
  924. package/app/.next-cli-build/static/chunks/app/api/combos/export/route-25eef5877853a92d.js +1 -0
  925. package/app/.next-cli-build/static/chunks/app/api/combos/import/route-25eef5877853a92d.js +1 -0
  926. package/app/.next-cli-build/static/chunks/app/api/combos/route-25eef5877853a92d.js +1 -0
  927. package/app/.next-cli-build/static/chunks/app/api/combos/test/route-25eef5877853a92d.js +1 -0
  928. package/app/.next-cli-build/static/chunks/app/api/convoy/rules/route-25eef5877853a92d.js +1 -0
  929. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-25eef5877853a92d.js +1 -0
  930. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-25eef5877853a92d.js +1 -0
  931. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-25eef5877853a92d.js +1 -0
  932. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-25eef5877853a92d.js +1 -0
  933. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-25eef5877853a92d.js +1 -0
  934. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-25eef5877853a92d.js +1 -0
  935. package/app/.next-cli-build/static/chunks/app/api/health/route-25eef5877853a92d.js +1 -0
  936. package/app/.next-cli-build/static/chunks/app/api/init/route-25eef5877853a92d.js +1 -0
  937. package/app/.next-cli-build/static/chunks/app/api/internal/codex-native/lease/[action]/route-25eef5877853a92d.js +1 -0
  938. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-25eef5877853a92d.js +1 -0
  939. package/app/.next-cli-build/static/chunks/app/api/keys/route-25eef5877853a92d.js +1 -0
  940. package/app/.next-cli-build/static/chunks/app/api/locale/route-25eef5877853a92d.js +1 -0
  941. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-25eef5877853a92d.js +1 -0
  942. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-25eef5877853a92d.js +1 -0
  943. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/route-25eef5877853a92d.js +1 -0
  944. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/[id]/test/route-25eef5877853a92d.js +1 -0
  945. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/instances/route-25eef5877853a92d.js +1 -0
  946. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/[id]/route-25eef5877853a92d.js +1 -0
  947. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/keys/route-25eef5877853a92d.js +1 -0
  948. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/message/route-25eef5877853a92d.js +1 -0
  949. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/oauth/[id]/[action]/route-25eef5877853a92d.js +1 -0
  950. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/route-25eef5877853a92d.js +1 -0
  951. package/app/.next-cli-build/static/chunks/app/api/mcp-gateway/sse/route-25eef5877853a92d.js +1 -0
  952. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-25eef5877853a92d.js +1 -0
  953. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-25eef5877853a92d.js +1 -0
  954. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-25eef5877853a92d.js +1 -0
  955. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-25eef5877853a92d.js +1 -0
  956. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-25eef5877853a92d.js +1 -0
  957. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-25eef5877853a92d.js +1 -0
  958. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-25eef5877853a92d.js +1 -0
  959. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-25eef5877853a92d.js +1 -0
  960. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-25eef5877853a92d.js +1 -0
  961. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-25eef5877853a92d.js +1 -0
  962. package/app/.next-cli-build/static/chunks/app/api/models/route-25eef5877853a92d.js +1 -0
  963. package/app/.next-cli-build/static/chunks/app/api/models/test/route-25eef5877853a92d.js +1 -0
  964. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-25eef5877853a92d.js +1 -0
  965. package/app/.next-cli-build/static/chunks/app/api/oauth/callback/route-25eef5877853a92d.js +1 -0
  966. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-25eef5877853a92d.js +1 -0
  967. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-25eef5877853a92d.js +1 -0
  968. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-25eef5877853a92d.js +1 -0
  969. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-25eef5877853a92d.js +1 -0
  970. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-25eef5877853a92d.js +1 -0
  971. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-25eef5877853a92d.js +1 -0
  972. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-25eef5877853a92d.js +1 -0
  973. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-25eef5877853a92d.js +1 -0
  974. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-25eef5877853a92d.js +1 -0
  975. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-25eef5877853a92d.js +1 -0
  976. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-25eef5877853a92d.js +1 -0
  977. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-25eef5877853a92d.js +1 -0
  978. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-25eef5877853a92d.js +1 -0
  979. package/app/.next-cli-build/static/chunks/app/api/pricing/route-25eef5877853a92d.js +1 -0
  980. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-25eef5877853a92d.js +1 -0
  981. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-25eef5877853a92d.js +1 -0
  982. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-25eef5877853a92d.js +1 -0
  983. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-25eef5877853a92d.js +1 -0
  984. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/refresh-profile/route-25eef5877853a92d.js +1 -0
  985. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-25eef5877853a92d.js +1 -0
  986. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-25eef5877853a92d.js +1 -0
  987. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-25eef5877853a92d.js +1 -0
  988. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-25eef5877853a92d.js +1 -0
  989. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-25eef5877853a92d.js +1 -0
  990. package/app/.next-cli-build/static/chunks/app/api/providers/route-25eef5877853a92d.js +1 -0
  991. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-25eef5877853a92d.js +1 -0
  992. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-25eef5877853a92d.js +1 -0
  993. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-25eef5877853a92d.js +1 -0
  994. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-25eef5877853a92d.js +1 -0
  995. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-25eef5877853a92d.js +1 -0
  996. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-25eef5877853a92d.js +1 -0
  997. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-25eef5877853a92d.js +1 -0
  998. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-25eef5877853a92d.js +1 -0
  999. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-25eef5877853a92d.js +1 -0
  1000. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-25eef5877853a92d.js +1 -0
  1001. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-25eef5877853a92d.js +1 -0
  1002. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-25eef5877853a92d.js +1 -0
  1003. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-25eef5877853a92d.js +1 -0
  1004. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-25eef5877853a92d.js +1 -0
  1005. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-25eef5877853a92d.js +1 -0
  1006. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-25eef5877853a92d.js +1 -0
  1007. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-25eef5877853a92d.js +1 -0
  1008. package/app/.next-cli-build/static/chunks/app/api/routing-health/route-25eef5877853a92d.js +1 -0
  1009. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-25eef5877853a92d.js +1 -0
  1010. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-25eef5877853a92d.js +1 -0
  1011. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-25eef5877853a92d.js +1 -0
  1012. package/app/.next-cli-build/static/chunks/app/api/settings/route-25eef5877853a92d.js +1 -0
  1013. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-25eef5877853a92d.js +1 -0
  1014. package/app/.next-cli-build/static/chunks/app/api/tags/route-25eef5877853a92d.js +1 -0
  1015. package/app/.next-cli-build/static/chunks/app/api/token-saver/stats/route-25eef5877853a92d.js +1 -0
  1016. package/app/.next-cli-build/static/chunks/app/api/token-saver/stream/route-25eef5877853a92d.js +1 -0
  1017. package/app/.next-cli-build/static/chunks/app/api/tool-disclosure/stats/route-25eef5877853a92d.js +1 -0
  1018. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-25eef5877853a92d.js +1 -0
  1019. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-25eef5877853a92d.js +1 -0
  1020. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-25eef5877853a92d.js +1 -0
  1021. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-25eef5877853a92d.js +1 -0
  1022. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-25eef5877853a92d.js +1 -0
  1023. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-25eef5877853a92d.js +1 -0
  1024. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-25eef5877853a92d.js +1 -0
  1025. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-25eef5877853a92d.js +1 -0
  1026. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-25eef5877853a92d.js +1 -0
  1027. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-25eef5877853a92d.js +1 -0
  1028. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-25eef5877853a92d.js +1 -0
  1029. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-25eef5877853a92d.js +1 -0
  1030. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-25eef5877853a92d.js +1 -0
  1031. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-25eef5877853a92d.js +1 -0
  1032. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-25eef5877853a92d.js +1 -0
  1033. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-25eef5877853a92d.js +1 -0
  1034. package/app/.next-cli-build/static/chunks/app/api/usage/error-logs/route-25eef5877853a92d.js +1 -0
  1035. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-25eef5877853a92d.js +1 -0
  1036. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-25eef5877853a92d.js +1 -0
  1037. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-25eef5877853a92d.js +1 -0
  1038. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-25eef5877853a92d.js +1 -0
  1039. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-25eef5877853a92d.js +1 -0
  1040. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-25eef5877853a92d.js +1 -0
  1041. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-25eef5877853a92d.js +1 -0
  1042. package/app/.next-cli-build/static/chunks/app/api/v1/alpha/search/route-25eef5877853a92d.js +1 -0
  1043. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-25eef5877853a92d.js +1 -0
  1044. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-25eef5877853a92d.js +1 -0
  1045. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-25eef5877853a92d.js +1 -0
  1046. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-25eef5877853a92d.js +1 -0
  1047. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-25eef5877853a92d.js +1 -0
  1048. package/app/.next-cli-build/static/chunks/app/api/v1/codex/alpha/search/route-25eef5877853a92d.js +1 -0
  1049. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/edits/route-25eef5877853a92d.js +1 -0
  1050. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/generations/route-25eef5877853a92d.js +1 -0
  1051. package/app/.next-cli-build/static/chunks/app/api/v1/codex/memories/trace_summarize/route-25eef5877853a92d.js +1 -0
  1052. package/app/.next-cli-build/static/chunks/app/api/v1/codex/models/route-25eef5877853a92d.js +1 -0
  1053. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/compact/route-25eef5877853a92d.js +1 -0
  1054. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/route-25eef5877853a92d.js +1 -0
  1055. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-25eef5877853a92d.js +1 -0
  1056. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-25eef5877853a92d.js +1 -0
  1057. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-25eef5877853a92d.js +1 -0
  1058. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-25eef5877853a92d.js +1 -0
  1059. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-25eef5877853a92d.js +1 -0
  1060. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-25eef5877853a92d.js +1 -0
  1061. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-25eef5877853a92d.js +1 -0
  1062. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-25eef5877853a92d.js +1 -0
  1063. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-25eef5877853a92d.js +1 -0
  1064. package/app/.next-cli-build/static/chunks/app/api/v1/route-25eef5877853a92d.js +1 -0
  1065. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-25eef5877853a92d.js +1 -0
  1066. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-25eef5877853a92d.js +1 -0
  1067. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-25eef5877853a92d.js +1 -0
  1068. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-25eef5877853a92d.js +1 -0
  1069. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-25eef5877853a92d.js +1 -0
  1070. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-25eef5877853a92d.js +1 -0
  1071. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-25eef5877853a92d.js +1 -0
  1072. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-25eef5877853a92d.js +1 -0
  1073. package/app/.next-cli-build/static/chunks/app/api/version/route-25eef5877853a92d.js +1 -0
  1074. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-25eef5877853a92d.js +1 -0
  1075. package/app/.next-cli-build/static/chunks/app/api/version/update/route-25eef5877853a92d.js +1 -0
  1076. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-25eef5877853a92d.js +1 -0
  1077. package/app/.next-cli-build/static/chunks/app/page-25eef5877853a92d.js +1 -0
  1078. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-25eef5877853a92d.js +1 -0
  1079. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-25eef5877853a92d.js +1 -0
  1080. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-25eef5877853a92d.js +1 -0
  1081. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-25eef5877853a92d.js +1 -0
  1082. package/app/.next-cli-build/static/css/23be8b98c2bbb37d.css +1 -0
  1083. package/app/.next-cli-build/static/qsXzWv5JlaT6jDweqTxnT/_buildManifest.js +1 -0
  1084. package/app/CHANGELOG.md +22 -0
  1085. package/app/package.json +5 -3
  1086. package/app/public/CHANGELOG.md +22 -0
  1087. package/app/src/lib/mcp/gateway/aggregator.js +96 -0
  1088. package/app/src/lib/tokenizer.js +104 -0
  1089. package/app/src/lib/updater/updater.js +1 -1
  1090. package/app/src/mitm/server.js +1 -1
  1091. package/app/src/sse/services/backgroundTokenRefresh.js +28 -17
  1092. package/package.json +1 -1
  1093. package/src/cli/menus/providers.js +2 -1
  1094. package/app/.next-cli-build/server/chunks/1329.js +0 -1
  1095. package/app/.next-cli-build/server/chunks/1714.js +0 -1
  1096. package/app/.next-cli-build/server/chunks/2177.js +0 -1
  1097. package/app/.next-cli-build/server/chunks/2382.js +0 -1
  1098. package/app/.next-cli-build/server/chunks/2547.js +0 -30
  1099. package/app/.next-cli-build/server/chunks/290.js +0 -1
  1100. package/app/.next-cli-build/server/chunks/3647.js +0 -1
  1101. package/app/.next-cli-build/server/chunks/4562.js +0 -1
  1102. package/app/.next-cli-build/server/chunks/4611.js +0 -9
  1103. package/app/.next-cli-build/server/chunks/4704.js +0 -3
  1104. package/app/.next-cli-build/server/chunks/476.js +0 -1
  1105. package/app/.next-cli-build/server/chunks/4928.js +0 -1
  1106. package/app/.next-cli-build/server/chunks/4999.js +0 -1
  1107. package/app/.next-cli-build/server/chunks/5083.js +0 -9
  1108. package/app/.next-cli-build/server/chunks/5129.js +0 -39
  1109. package/app/.next-cli-build/server/chunks/6112.js +0 -1
  1110. package/app/.next-cli-build/server/chunks/6436.js +0 -1
  1111. package/app/.next-cli-build/server/chunks/7413.js +0 -2
  1112. package/app/.next-cli-build/server/chunks/7438.js +0 -221
  1113. package/app/.next-cli-build/server/chunks/7467.js +0 -1
  1114. package/app/.next-cli-build/server/chunks/7734.js +0 -1
  1115. package/app/.next-cli-build/server/chunks/7785.js +0 -9
  1116. package/app/.next-cli-build/server/chunks/8326.js +0 -1
  1117. package/app/.next-cli-build/server/chunks/88.js +0 -1
  1118. package/app/.next-cli-build/server/chunks/8901.js +0 -300
  1119. package/app/.next-cli-build/server/chunks/9043.js +0 -1
  1120. package/app/.next-cli-build/server/chunks/9276.js +0 -1
  1121. package/app/.next-cli-build/static/GcwAw1-IZk3PMzf0bTeWl/_buildManifest.js +0 -1
  1122. package/app/.next-cli-build/static/chunks/5497-675887789aaf2c43.js +0 -17
  1123. package/app/.next-cli-build/static/chunks/8105-e46089480e63b1a9.js +0 -1
  1124. package/app/.next-cli-build/static/chunks/9227-8c6b5f001d34748c.js +0 -3
  1125. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-78c78a3108fbe60e.js +0 -1
  1126. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-e996175d559e9e5a.js +0 -1
  1127. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-f3d9a84f9e04119e.js +0 -27
  1128. package/app/.next-cli-build/static/chunks/app/_global-error/page-b71f397798104162.js +0 -1
  1129. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-b71f397798104162.js +0 -1
  1130. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-b71f397798104162.js +0 -1
  1131. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-b71f397798104162.js +0 -1
  1132. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-b71f397798104162.js +0 -1
  1133. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-b71f397798104162.js +0 -1
  1134. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-b71f397798104162.js +0 -1
  1135. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-b71f397798104162.js +0 -1
  1136. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-b71f397798104162.js +0 -1
  1137. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-b71f397798104162.js +0 -1
  1138. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-b71f397798104162.js +0 -1
  1139. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-b71f397798104162.js +0 -1
  1140. package/app/.next-cli-build/static/chunks/app/api/changelog/route-b71f397798104162.js +0 -1
  1141. package/app/.next-cli-build/static/chunks/app/api/cli/providers/codex/route-b71f397798104162.js +0 -1
  1142. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-b71f397798104162.js +0 -1
  1143. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b71f397798104162.js +0 -1
  1144. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-b71f397798104162.js +0 -1
  1145. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-b71f397798104162.js +0 -1
  1146. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-b71f397798104162.js +0 -1
  1147. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/models/route-b71f397798104162.js +0 -1
  1148. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-native/readiness/route-b71f397798104162.js +0 -1
  1149. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-b71f397798104162.js +0 -1
  1150. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-b71f397798104162.js +0 -1
  1151. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b71f397798104162.js +0 -1
  1152. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b71f397798104162.js +0 -1
  1153. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-b71f397798104162.js +0 -1
  1154. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b71f397798104162.js +0 -1
  1155. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-b71f397798104162.js +0 -1
  1156. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-b71f397798104162.js +0 -1
  1157. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-b71f397798104162.js +0 -1
  1158. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-b71f397798104162.js +0 -1
  1159. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-b71f397798104162.js +0 -1
  1160. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-b71f397798104162.js +0 -1
  1161. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-b71f397798104162.js +0 -1
  1162. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-b71f397798104162.js +0 -1
  1163. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-b71f397798104162.js +0 -1
  1164. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-b71f397798104162.js +0 -1
  1165. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/test/route-b71f397798104162.js +0 -1
  1166. package/app/.next-cli-build/static/chunks/app/api/combos/export/route-b71f397798104162.js +0 -1
  1167. package/app/.next-cli-build/static/chunks/app/api/combos/import/route-b71f397798104162.js +0 -1
  1168. package/app/.next-cli-build/static/chunks/app/api/combos/route-b71f397798104162.js +0 -1
  1169. package/app/.next-cli-build/static/chunks/app/api/combos/test/route-b71f397798104162.js +0 -1
  1170. package/app/.next-cli-build/static/chunks/app/api/convoy/rules/route-b71f397798104162.js +0 -1
  1171. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-b71f397798104162.js +0 -1
  1172. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-b71f397798104162.js +0 -1
  1173. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-b71f397798104162.js +0 -1
  1174. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-b71f397798104162.js +0 -1
  1175. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-b71f397798104162.js +0 -1
  1176. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-b71f397798104162.js +0 -1
  1177. package/app/.next-cli-build/static/chunks/app/api/health/route-b71f397798104162.js +0 -1
  1178. package/app/.next-cli-build/static/chunks/app/api/init/route-b71f397798104162.js +0 -1
  1179. package/app/.next-cli-build/static/chunks/app/api/internal/codex-native/lease/[action]/route-b71f397798104162.js +0 -1
  1180. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-b71f397798104162.js +0 -1
  1181. package/app/.next-cli-build/static/chunks/app/api/keys/route-b71f397798104162.js +0 -1
  1182. package/app/.next-cli-build/static/chunks/app/api/locale/route-b71f397798104162.js +0 -1
  1183. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-b71f397798104162.js +0 -1
  1184. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-b71f397798104162.js +0 -1
  1185. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b71f397798104162.js +0 -1
  1186. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b71f397798104162.js +0 -1
  1187. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-b71f397798104162.js +0 -1
  1188. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-b71f397798104162.js +0 -1
  1189. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-b71f397798104162.js +0 -1
  1190. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-b71f397798104162.js +0 -1
  1191. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-b71f397798104162.js +0 -1
  1192. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-b71f397798104162.js +0 -1
  1193. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-b71f397798104162.js +0 -1
  1194. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-b71f397798104162.js +0 -1
  1195. package/app/.next-cli-build/static/chunks/app/api/models/route-b71f397798104162.js +0 -1
  1196. package/app/.next-cli-build/static/chunks/app/api/models/test/route-b71f397798104162.js +0 -1
  1197. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-b71f397798104162.js +0 -1
  1198. package/app/.next-cli-build/static/chunks/app/api/oauth/callback/route-b71f397798104162.js +0 -1
  1199. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-b71f397798104162.js +0 -1
  1200. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-b71f397798104162.js +0 -1
  1201. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-b71f397798104162.js +0 -1
  1202. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-b71f397798104162.js +0 -1
  1203. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-b71f397798104162.js +0 -1
  1204. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-b71f397798104162.js +0 -1
  1205. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-b71f397798104162.js +0 -1
  1206. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-b71f397798104162.js +0 -1
  1207. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-b71f397798104162.js +0 -1
  1208. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-b71f397798104162.js +0 -1
  1209. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b71f397798104162.js +0 -1
  1210. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-b71f397798104162.js +0 -1
  1211. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-b71f397798104162.js +0 -1
  1212. package/app/.next-cli-build/static/chunks/app/api/pricing/route-b71f397798104162.js +0 -1
  1213. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-b71f397798104162.js +0 -1
  1214. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-b71f397798104162.js +0 -1
  1215. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-b71f397798104162.js +0 -1
  1216. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-b71f397798104162.js +0 -1
  1217. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/refresh-profile/route-b71f397798104162.js +0 -1
  1218. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-b71f397798104162.js +0 -1
  1219. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-b71f397798104162.js +0 -1
  1220. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-b71f397798104162.js +0 -1
  1221. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-b71f397798104162.js +0 -1
  1222. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-b71f397798104162.js +0 -1
  1223. package/app/.next-cli-build/static/chunks/app/api/providers/route-b71f397798104162.js +0 -1
  1224. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-b71f397798104162.js +0 -1
  1225. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-b71f397798104162.js +0 -1
  1226. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-b71f397798104162.js +0 -1
  1227. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-b71f397798104162.js +0 -1
  1228. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-b71f397798104162.js +0 -1
  1229. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b71f397798104162.js +0 -1
  1230. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-b71f397798104162.js +0 -1
  1231. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-b71f397798104162.js +0 -1
  1232. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-b71f397798104162.js +0 -1
  1233. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-b71f397798104162.js +0 -1
  1234. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-b71f397798104162.js +0 -1
  1235. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-b71f397798104162.js +0 -1
  1236. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-b71f397798104162.js +0 -1
  1237. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-b71f397798104162.js +0 -1
  1238. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-b71f397798104162.js +0 -1
  1239. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-b71f397798104162.js +0 -1
  1240. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-b71f397798104162.js +0 -1
  1241. package/app/.next-cli-build/static/chunks/app/api/routing-health/route-b71f397798104162.js +0 -1
  1242. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-b71f397798104162.js +0 -1
  1243. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-b71f397798104162.js +0 -1
  1244. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-b71f397798104162.js +0 -1
  1245. package/app/.next-cli-build/static/chunks/app/api/settings/route-b71f397798104162.js +0 -1
  1246. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-b71f397798104162.js +0 -1
  1247. package/app/.next-cli-build/static/chunks/app/api/tags/route-b71f397798104162.js +0 -1
  1248. package/app/.next-cli-build/static/chunks/app/api/token-saver/stats/route-b71f397798104162.js +0 -1
  1249. package/app/.next-cli-build/static/chunks/app/api/token-saver/stream/route-b71f397798104162.js +0 -1
  1250. package/app/.next-cli-build/static/chunks/app/api/tool-disclosure/stats/route-b71f397798104162.js +0 -1
  1251. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-b71f397798104162.js +0 -1
  1252. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-b71f397798104162.js +0 -1
  1253. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-b71f397798104162.js +0 -1
  1254. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-b71f397798104162.js +0 -1
  1255. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-b71f397798104162.js +0 -1
  1256. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-b71f397798104162.js +0 -1
  1257. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-b71f397798104162.js +0 -1
  1258. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-b71f397798104162.js +0 -1
  1259. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-b71f397798104162.js +0 -1
  1260. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-b71f397798104162.js +0 -1
  1261. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-b71f397798104162.js +0 -1
  1262. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-b71f397798104162.js +0 -1
  1263. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-b71f397798104162.js +0 -1
  1264. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b71f397798104162.js +0 -1
  1265. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-b71f397798104162.js +0 -1
  1266. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-b71f397798104162.js +0 -1
  1267. package/app/.next-cli-build/static/chunks/app/api/usage/error-logs/route-b71f397798104162.js +0 -1
  1268. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-b71f397798104162.js +0 -1
  1269. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-b71f397798104162.js +0 -1
  1270. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-b71f397798104162.js +0 -1
  1271. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-b71f397798104162.js +0 -1
  1272. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-b71f397798104162.js +0 -1
  1273. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-b71f397798104162.js +0 -1
  1274. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-b71f397798104162.js +0 -1
  1275. package/app/.next-cli-build/static/chunks/app/api/v1/alpha/search/route-b71f397798104162.js +0 -1
  1276. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-b71f397798104162.js +0 -1
  1277. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-b71f397798104162.js +0 -1
  1278. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-b71f397798104162.js +0 -1
  1279. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-b71f397798104162.js +0 -1
  1280. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-b71f397798104162.js +0 -1
  1281. package/app/.next-cli-build/static/chunks/app/api/v1/codex/alpha/search/route-b71f397798104162.js +0 -1
  1282. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/edits/route-b71f397798104162.js +0 -1
  1283. package/app/.next-cli-build/static/chunks/app/api/v1/codex/images/generations/route-b71f397798104162.js +0 -1
  1284. package/app/.next-cli-build/static/chunks/app/api/v1/codex/memories/trace_summarize/route-b71f397798104162.js +0 -1
  1285. package/app/.next-cli-build/static/chunks/app/api/v1/codex/models/route-b71f397798104162.js +0 -1
  1286. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/compact/route-b71f397798104162.js +0 -1
  1287. package/app/.next-cli-build/static/chunks/app/api/v1/codex/responses/route-b71f397798104162.js +0 -1
  1288. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-b71f397798104162.js +0 -1
  1289. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-b71f397798104162.js +0 -1
  1290. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-b71f397798104162.js +0 -1
  1291. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-b71f397798104162.js +0 -1
  1292. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-b71f397798104162.js +0 -1
  1293. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-b71f397798104162.js +0 -1
  1294. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-b71f397798104162.js +0 -1
  1295. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-b71f397798104162.js +0 -1
  1296. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-b71f397798104162.js +0 -1
  1297. package/app/.next-cli-build/static/chunks/app/api/v1/route-b71f397798104162.js +0 -1
  1298. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-b71f397798104162.js +0 -1
  1299. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-b71f397798104162.js +0 -1
  1300. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-b71f397798104162.js +0 -1
  1301. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-b71f397798104162.js +0 -1
  1302. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-b71f397798104162.js +0 -1
  1303. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-b71f397798104162.js +0 -1
  1304. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-b71f397798104162.js +0 -1
  1305. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-b71f397798104162.js +0 -1
  1306. package/app/.next-cli-build/static/chunks/app/api/version/route-b71f397798104162.js +0 -1
  1307. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-b71f397798104162.js +0 -1
  1308. package/app/.next-cli-build/static/chunks/app/api/version/update/route-b71f397798104162.js +0 -1
  1309. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-b71f397798104162.js +0 -1
  1310. package/app/.next-cli-build/static/chunks/app/page-b71f397798104162.js +0 -1
  1311. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-b71f397798104162.js +0 -1
  1312. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-b71f397798104162.js +0 -1
  1313. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-b71f397798104162.js +0 -1
  1314. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-b71f397798104162.js +0 -1
  1315. package/app/.next-cli-build/static/css/abc246bcd6eb079c.css +0 -1
  1316. /package/app/.next-cli-build/static/{GcwAw1-IZk3PMzf0bTeWl → qsXzWv5JlaT6jDweqTxnT}/_ssgManifest.js +0 -0
@@ -4,4 +4,4 @@
4
4
  data: ${d}
5
5
 
6
6
  `)}catch{}}}),f.stderr.on("data",b=>console.log(`[mcp:${a}]`,b.toString().trim())),f.on("exit",c=>{console.log(`[mcp:${a}] exited`,c),b.delete(a)}),c}a.exports={getOrSpawn:j,registerSession:function(a,b){let c=j(a),d=e.randomUUID();return c.sessions.set(d,b),d},unregisterSession:function(a,b){let c=h().get(a);if(c&&(c.sessions.delete(b),0===c.sessions.size)){try{c.proc.kill()}catch{}h().delete(a)}},sendToChild:function(a,b){let c=h().get(a);if(!c?.proc?.stdin?.writable)throw Error(`Bridge not running: ${a}`);c.proc.stdin.write(`${JSON.stringify(b)}
7
- `)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"ezrouter"):g().join(i().homedir(),".ezrouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>w,Zh:()=>v});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(17302),k=c(96182),l=c(76476),m=c(17113),n=c(16329);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Volumes/Files/Projects/EzRouter/EzRouter/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let o=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function p(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!o.tunnelAutoResumed&&(o.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!o.tailscaleAutoResumed&&(o.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),q(b)),v(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(2892),c.e(1522),c.e(4646),c.e(1329),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(4928),c.e(7353),c.e(9276),c.e(2547),c.e(7438),c.e(369),c.e(3547),c.e(1714)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(2892),c.e(1522),c.e(8946),c.e(8129),c.e(2177)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function q(a){if(!o.mitmStartInProgress){o.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,k.getMitmStatus)()).running)return;let b=await (0,k.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,i.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,k.startMitm)(c?.key||"sk_ezrouter",b),console.log("[InitApp] MITM auto-started");try{await (0,k.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{o.mitmStartInProgress=!1}}}let r=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function s(a){let b=(0,j.Qn)();if(!(await (0,i.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=r.test(a);if(!(0,j.nN)()){if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,j.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function t(a){let b=(0,j.oN)();if(!(await (0,i.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,j.hp)():(0,j.Kp)()))return;if((0,j.si)()&&b.activeLocalPort){try{await (0,j.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=r.test(a);if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,j.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function u(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!j.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function v(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!o.watchdogInterval&&(o.watchdogInterval=setInterval(()=>{s("watchdog").catch(()=>{}),t("watchdog").catch(()=>{})},j.DA),o.watchdogInterval.unref&&o.watchdogInterval.unref()),!o.networkMonitorInterval&&(o.lastNetworkFingerprint=u(),o.lastWatchdogTick=Date.now(),o.lastOnline=null,o.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-o.lastWatchdogTick;o.lastWatchdogTick=a;let c=u(),d=c!==o.lastNetworkFingerprint,e=b>6*j.rI;d&&(o.lastNetworkFingerprint=c);let f=await (0,j.u7)(),g=!1===o.lastOnline;if(o.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,j.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";s(h).catch(()=>{}),t(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},j.rI),o.networkMonitorInterval.unref&&o.networkMonitorInterval.unref());return}o.watchdogInterval&&(clearInterval(o.watchdogInterval),o.watchdogInterval=null),o.networkMonitorInterval&&(clearInterval(o.networkMonitorInterval),o.networkMonitorInterval=null,o.lastNetworkFingerprint=null,o.lastOnline=null)}let w=async function a(){try{o.signalHandlersRegistered||((0,n.Bb)(()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}try{(0,m.killAllBridges)()}catch{}(0,j.ss)()},-100),process.on("exit",()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}}),o.signalHandlersRegistered=!0),(0,j.X$)(()=>{s("unexpected-exit").catch(()=>{})}),setTimeout(()=>{p().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
7
+ `)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"ezrouter"):g().join(i().homedir(),".ezrouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>w,Zh:()=>v});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(17302),k=c(96182),l=c(76476),m=c(17113),n=c(16329);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Volumes/Files/Projects/EzRouter/EzRouter/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let o=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function p(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!o.tunnelAutoResumed&&(o.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!o.tailscaleAutoResumed&&(o.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),q(b)),v(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(1522),c.e(4646),c.e(1847),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(5822),c.e(9865),c.e(7353),c.e(2021),c.e(7677),c.e(880),c.e(7306),c.e(369),c.e(3547),c.e(9062)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(1522),c.e(8946),c.e(8129),c.e(8459)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function q(a){if(!o.mitmStartInProgress){o.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,k.getMitmStatus)()).running)return;let b=await (0,k.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,i.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,k.startMitm)(c?.key||"sk_ezrouter",b),console.log("[InitApp] MITM auto-started");try{await (0,k.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{o.mitmStartInProgress=!1}}}let r=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function s(a){let b=(0,j.Qn)();if(!(await (0,i.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=r.test(a);if(!(0,j.nN)()){if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,j.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function t(a){let b=(0,j.oN)();if(!(await (0,i.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,j.hp)():(0,j.Kp)()))return;if((0,j.si)()&&b.activeLocalPort){try{await (0,j.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=r.test(a);if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,j.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function u(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!j.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function v(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!o.watchdogInterval&&(o.watchdogInterval=setInterval(()=>{s("watchdog").catch(()=>{}),t("watchdog").catch(()=>{})},j.DA),o.watchdogInterval.unref&&o.watchdogInterval.unref()),!o.networkMonitorInterval&&(o.lastNetworkFingerprint=u(),o.lastWatchdogTick=Date.now(),o.lastOnline=null,o.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-o.lastWatchdogTick;o.lastWatchdogTick=a;let c=u(),d=c!==o.lastNetworkFingerprint,e=b>6*j.rI;d&&(o.lastNetworkFingerprint=c);let f=await (0,j.u7)(),g=!1===o.lastOnline;if(o.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,j.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";s(h).catch(()=>{}),t(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},j.rI),o.networkMonitorInterval.unref&&o.networkMonitorInterval.unref());return}o.watchdogInterval&&(clearInterval(o.watchdogInterval),o.watchdogInterval=null),o.networkMonitorInterval&&(clearInterval(o.networkMonitorInterval),o.networkMonitorInterval=null,o.lastNetworkFingerprint=null,o.lastOnline=null)}let w=async function a(){try{o.signalHandlersRegistered||((0,n.Bb)(()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}try{(0,m.killAllBridges)()}catch{}(0,j.ss)()},-100),process.on("exit",()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}}),o.signalHandlersRegistered=!0),(0,j.X$)(()=>{s("unexpected-exit").catch(()=>{})}),setTimeout(()=>{p().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
@@ -1 +1 @@
1
- exports.id=4485,exports.ids=[4485,9718],exports.modules={49190:(a,b,c)=>{"use strict";c.d(b,{HM:()=>g,cL:()=>d});let d="latency-aware",e={windowSize:20,minSamples:3,latencyWeight:.5,errorWeight:.5,latencyToleranceRatio:1,explorationRate:.15,circuitErrorRate:.5,circuitMinSamples:4,circuitCooldownMs:6e4,sampleTtlMs:9e5},f={windowSize:{min:5,max:200},minSamples:{min:1,max:50},latencyWeight:{min:0,max:1},errorWeight:{min:0,max:1},latencyToleranceRatio:{min:.1,max:10},explorationRate:{min:0,max:1},circuitErrorRate:{min:.1,max:1},circuitMinSamples:{min:2,max:100},circuitCooldownMs:{min:1e3,max:18e5},sampleTtlMs:{min:6e4,max:864e5}};function g(a=null){let b={...e};if(!a||"object"!=typeof a)return b;for(let c of Object.keys(e))void 0!==a[c]&&null!==a[c]&&""!==a[c]&&(b[c]=function(a,b,c){let d=Number(a);return Number.isFinite(d)?c?Math.min(c.max,Math.max(c.min,d)):d:b}(a[c],e[c],f[c]));return b}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},58336:(a,b,c)=>{"use strict";c.d(b,{JL:()=>k,Sn:()=>j,Z2:()=>l});var d=c(49190);function e(){return globalThis.__9routerHealthStore||(globalThis.__9routerHealthStore=new Map),globalThis.__9routerHealthStore}function f(a,b=null){return b?`${a}\0${b}`:String(a)}function g(a){let b=a.indexOf("\0");return -1===b?{connectionId:a,model:null}:{connectionId:a.slice(0,b),model:a.slice(b+1)}}function h(a,b){let c=a?function(a,b){let c=Date.now()-b.sampleTtlMs,{samples:d}=a,e=0;for(;e<d.length&&d[e].at<c;)e++;return e>0&&d.splice(0,e),d}(a,b):[],d=c.length;if(0===d)return{samples:0,successes:0,failures:0,errorRate:0,avgLatencyMs:0,p95LatencyMs:0,lastFailureAt:a?.lastFailureAt||0,lastSampleAt:0};let e=0,f=[];for(let a of c)a.ok?f.push(a.latencyMs):e++;let g=f.length,h=g>0?f.reduce((a,b)=>a+b,0)/g:0;return{samples:d,successes:g,failures:e,errorRate:e/d,avgLatencyMs:Math.round(h),p95LatencyMs:Math.round(function(a){if(0===a.length)return 0;let b=Math.min(a.length-1,Math.floor(.95*a.length));return a[b]}([...f].sort((a,b)=>a-b))),lastFailureAt:a.lastFailureAt||0,lastSampleAt:c[c.length-1].at}}function i(a,b=null){let c=(0,d.HM)(b);return!!a&&!(a.samples<c.circuitMinSamples)&&!(a.errorRate<c.circuitErrorRate)&&!!a.lastFailureAt&&Date.now()-a.lastFailureAt<c.circuitCooldownMs}function j(a,{model:b=null,config:c=null,random:g=Math.random}={}){let k=Array.isArray(a)?a.filter(Boolean):[];if(0===k.length)return{connection:null,reason:"no-candidates",scored:[]};if(1===k.length)return{connection:k[0],reason:"only-candidate",scored:[]};let l=(0,d.HM)(c),m=k.map(a=>({connection:a,health:function(a,b=null,c=null){let g=(0,d.HM)(c),j=e(),k=null,l=!1;if(b){let c=h(j.get(f(a,b)),g);c.samples>=g.minSamples&&(k=c,l=!0)}return k||(k=h(j.get(f(a)),g)),{...k,scoped:l,circuitOpen:i(k,g)}}(a.id,b,l)})),n=m.filter(a=>a.health.samples<l.minSamples);if(n.length>0)return{connection:n.sort((a,b)=>a.health.samples-b.health.samples||(a.connection.priority||999)-(b.connection.priority||999))[0].connection,reason:"probe-unproven",scored:m};let o=m.filter(a=>!a.health.circuitOpen),p="best-score";0===o.length&&(o=m,p="all-circuits-open");let q=o.map(a=>a.health.avgLatencyMs).filter(a=>a>0),r=q.length>0?Math.min(...q):0;for(let a of o)a.score=function(a,b,c){let d=0;b>0&&a.avgLatencyMs>b&&(d=Math.min(1,(a.avgLatencyMs/b-1)/c.latencyToleranceRatio));let e=c.latencyWeight+c.errorWeight;return e<=0?0:(c.latencyWeight*d+c.errorWeight*a.errorRate)/e}(a.health,r,l);let s=[...o].sort((a,b)=>a.score-b.score||(a.connection.priority||999)-(b.connection.priority||999));if(s.length>1&&l.explorationRate>0&&g()<l.explorationRate){let a=s.slice(1);return{connection:a[Math.floor(g()*a.length)%a.length].connection,reason:"explore",scored:m}}return{connection:s[0].connection,reason:p,scored:m}}function k(a=null){let b=(0,d.HM)(a),c=e(),f=[];for(let[a,d]of c.entries()){let{connectionId:c,model:e}=g(a),j=h(d,b);0!==j.samples&&f.push({connectionId:c,model:e,provider:d.provider||null,connectionName:d.connectionName||null,...j,circuitOpen:i(j,b)})}return f.sort((a,b)=>!!a.model-!!b.model||b.errorRate-a.errorRate||b.avgLatencyMs-a.avgLatencyMs)}function l(a=null){let b=e();if(!a)return void b.clear();for(let c of[...b.keys()])g(c).connectionId===a&&b.delete(c)}},78335:()=>{},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mV:()=>d.mV,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y7:()=>d.y7,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(5129)},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},96487:()=>{}};
1
+ exports.id=4485,exports.ids=[4485,4755,9718],exports.modules={49190:(a,b,c)=>{"use strict";c.d(b,{HM:()=>g,cL:()=>d});let d="latency-aware",e={windowSize:20,minSamples:3,latencyWeight:.5,errorWeight:.5,latencyToleranceRatio:1,explorationRate:.15,circuitErrorRate:.5,circuitMinSamples:4,circuitCooldownMs:6e4,sampleTtlMs:9e5},f={windowSize:{min:5,max:200},minSamples:{min:1,max:50},latencyWeight:{min:0,max:1},errorWeight:{min:0,max:1},latencyToleranceRatio:{min:.1,max:10},explorationRate:{min:0,max:1},circuitErrorRate:{min:.1,max:1},circuitMinSamples:{min:2,max:100},circuitCooldownMs:{min:1e3,max:18e5},sampleTtlMs:{min:6e4,max:864e5}};function g(a=null){let b={...e};if(!a||"object"!=typeof a)return b;for(let c of Object.keys(e))void 0!==a[c]&&null!==a[c]&&""!==a[c]&&(b[c]=function(a,b,c){let d=Number(a);return Number.isFinite(d)?c?Math.min(c.max,Math.max(c.min,d)):d:b}(a[c],e[c],f[c]));return b}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},58336:(a,b,c)=>{"use strict";c.d(b,{JL:()=>k,Sn:()=>j,Z2:()=>l});var d=c(49190);function e(){return globalThis.__9routerHealthStore||(globalThis.__9routerHealthStore=new Map),globalThis.__9routerHealthStore}function f(a,b=null){return b?`${a}\0${b}`:String(a)}function g(a){let b=a.indexOf("\0");return -1===b?{connectionId:a,model:null}:{connectionId:a.slice(0,b),model:a.slice(b+1)}}function h(a,b){let c=a?function(a,b){let c=Date.now()-b.sampleTtlMs,{samples:d}=a,e=0;for(;e<d.length&&d[e].at<c;)e++;return e>0&&d.splice(0,e),d}(a,b):[],d=c.length;if(0===d)return{samples:0,successes:0,failures:0,errorRate:0,avgLatencyMs:0,p95LatencyMs:0,lastFailureAt:a?.lastFailureAt||0,lastSampleAt:0};let e=0,f=[];for(let a of c)a.ok?f.push(a.latencyMs):e++;let g=f.length,h=g>0?f.reduce((a,b)=>a+b,0)/g:0;return{samples:d,successes:g,failures:e,errorRate:e/d,avgLatencyMs:Math.round(h),p95LatencyMs:Math.round(function(a){if(0===a.length)return 0;let b=Math.min(a.length-1,Math.floor(.95*a.length));return a[b]}([...f].sort((a,b)=>a-b))),lastFailureAt:a.lastFailureAt||0,lastSampleAt:c[c.length-1].at}}function i(a,b=null){let c=(0,d.HM)(b);return!!a&&!(a.samples<c.circuitMinSamples)&&!(a.errorRate<c.circuitErrorRate)&&!!a.lastFailureAt&&Date.now()-a.lastFailureAt<c.circuitCooldownMs}function j(a,{model:b=null,config:c=null,random:g=Math.random}={}){let k=Array.isArray(a)?a.filter(Boolean):[];if(0===k.length)return{connection:null,reason:"no-candidates",scored:[]};if(1===k.length)return{connection:k[0],reason:"only-candidate",scored:[]};let l=(0,d.HM)(c),m=k.map(a=>({connection:a,health:function(a,b=null,c=null){let g=(0,d.HM)(c),j=e(),k=null,l=!1;if(b){let c=h(j.get(f(a,b)),g);c.samples>=g.minSamples&&(k=c,l=!0)}return k||(k=h(j.get(f(a)),g)),{...k,scoped:l,circuitOpen:i(k,g)}}(a.id,b,l)})),n=m.filter(a=>a.health.samples<l.minSamples);if(n.length>0)return{connection:n.sort((a,b)=>a.health.samples-b.health.samples||(a.connection.priority||999)-(b.connection.priority||999))[0].connection,reason:"probe-unproven",scored:m};let o=m.filter(a=>!a.health.circuitOpen),p="best-score";0===o.length&&(o=m,p="all-circuits-open");let q=o.map(a=>a.health.avgLatencyMs).filter(a=>a>0),r=q.length>0?Math.min(...q):0;for(let a of o)a.score=function(a,b,c){let d=0;b>0&&a.avgLatencyMs>b&&(d=Math.min(1,(a.avgLatencyMs/b-1)/c.latencyToleranceRatio));let e=c.latencyWeight+c.errorWeight;return e<=0?0:(c.latencyWeight*d+c.errorWeight*a.errorRate)/e}(a.health,r,l);let s=[...o].sort((a,b)=>a.score-b.score||(a.connection.priority||999)-(b.connection.priority||999));if(s.length>1&&l.explorationRate>0&&g()<l.explorationRate){let a=s.slice(1);return{connection:a[Math.floor(g()*a.length)%a.length].connection,reason:"explore",scored:m}}return{connection:s[0].connection,reason:p,scored:m}}function k(a=null){let b=(0,d.HM)(a),c=e(),f=[];for(let[a,d]of c.entries()){let{connectionId:c,model:e}=g(a),j=h(d,b);0!==j.samples&&f.push({connectionId:c,model:e,provider:d.provider||null,connectionName:d.connectionName||null,...j,circuitOpen:i(j,b)})}return f.sort((a,b)=>!!a.model-!!b.model||b.errorRate-a.errorRate||b.avgLatencyMs-a.avgLatencyMs)}function l(a=null){let b=e();if(!a)return void b.clear();for(let c of[...b.keys()])g(c).connectionId===a&&b.delete(c)}},78335:()=>{},89718:(a,b,c)=>{"use strict";c.d(b,{$e:()=>d.$e,CF:()=>d.CF,CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,Ko:()=>d.Ko,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q6:()=>d.Q6,Q_:()=>d.Q_,Qu:()=>d.Qu,RT:()=>d.RT,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,__:()=>d.__,aQ:()=>d.aQ,bI:()=>d.bI,c:()=>d.c,dA:()=>d.dA,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,lk:()=>d.lk,mV:()=>d.mV,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,pO:()=>d.pO,qr:()=>d.qr,r4:()=>d.r4,sZ:()=>d.sZ,t$:()=>d.t$,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,xN:()=>d.xN,y7:()=>d.y7,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(6816)},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=4574,exports.ids=[4574,9718],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mV:()=>d.mV,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,y7:()=>d.y7,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(5129)},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ "use strict";exports.id=4574,exports.ids=[4574,4755,9718],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv,xN:()=>d.xN});var d=c(89718)},89718:(a,b,c)=>{c.d(b,{$e:()=>d.$e,CF:()=>d.CF,CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,Ko:()=>d.Ko,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q6:()=>d.Q6,Q_:()=>d.Q_,Qu:()=>d.Qu,RT:()=>d.RT,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,__:()=>d.__,aQ:()=>d.aQ,bI:()=>d.bI,c:()=>d.c,dA:()=>d.dA,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,lk:()=>d.lk,mV:()=>d.mV,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,pO:()=>d.pO,qr:()=>d.qr,r4:()=>d.r4,sZ:()=>d.sZ,t$:()=>d.t$,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,xN:()=>d.xN,y7:()=>d.y7,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(6816)},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=4739,exports.ids=[4739],exports.modules={16329:(a,b,c)=>{c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},24739:(a,b,c)=>{c.d(b,{createBunSqliteAdapter:()=>f});var d=c(63775),e=c(16329);async function f(a){let{Database:b}=await Promise.resolve().then(c.t.bind(c,81787,23)),f=new b(a,{create:!0});f.exec(d.oG);let g=new Map;function h(a){let b=g.get(a);return b||(b=f.prepare(a),g.set(a,b)),b}let i=setInterval(()=>{try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function j(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{g.clear()}catch{}try{f.close()}catch{}}return"function"==typeof i.unref&&i.unref(),(0,e.Bb)(j,100),{driver:"bun:sqlite",run(a,b=[]){let c=h(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>h(a).get(...b),all:(a,b=[])=>h(a).all(...b),exec:a=>f.exec(a),transaction:a=>f.transaction(a)(),checkpoint(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(i),j()},raw:f}}},63775:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
1
+ "use strict";exports.id=4739,exports.ids=[4739],exports.modules={16329:(a,b,c)=>{c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},24739:(a,b,c)=>{c.d(b,{createBunSqliteAdapter:()=>f});var d=c(63775),e=c(16329);async function f(a){let{Database:b}=await Promise.resolve().then(c.t.bind(c,81787,23)),f=new b(a,{create:!0});f.exec(d.oG);let g=new Map;function h(a){let b=g.get(a);return b||(b=f.prepare(a),g.set(a,b)),b}let i=setInterval(()=>{try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function j(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{g.clear()}catch{}try{f.close()}catch{}}return"function"==typeof i.unref&&i.unref(),(0,e.Bb)(j,100),{driver:"bun:sqlite",run(a,b=[]){let c=h(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>h(a).get(...b),all:(a,b=[])=>h(a).all(...b),exec:a=>f.exec(a),transaction:a=>f.transaction(a)(),checkpoint(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(i),j()},raw:f}}},63775:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=6,e=`
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
- `,f={_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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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
+ `,f={_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",scope:"TEXT"},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",config:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},mcpInstances:{columns:{id:"TEXT PRIMARY KEY",slug:"TEXT UNIQUE NOT NULL",title:"TEXT",kind:"TEXT NOT NULL",transport:"TEXT NOT NULL",url:"TEXT",command:"TEXT",args:"TEXT",env:"TEXT",headers:"TEXT",oauth:"INTEGER DEFAULT 0",oauthTokens:"TEXT",enabled:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_inst_slug ON mcpInstances(slug)","CREATE INDEX IF NOT EXISTS idx_mcp_inst_enabled ON mcpInstances(enabled)"]},mcpGatewayKeys:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT",key:"TEXT UNIQUE NOT NULL",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_gwkey ON mcpGatewayKeys(key)"]},mcpKeyGrants:{columns:{keyId:"TEXT NOT NULL",instanceId:"TEXT NOT NULL",toolAllowlist:"TEXT"},primaryKey:"PRIMARY KEY (keyId, instanceId)",indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_grant_key ON mcpKeyGrants(keyId)"]},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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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=4755,exports.ids=[4755],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=4780,exports.ids=[4780],exports.modules={34780:(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(76040);c(85612);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,i=0;function k(){let b,c=d.export(),h=g().dirname(a),j=g().join(h,`.${g().basename(a)}.tmp-${process.pid}-${i++}`);try{b=e().openSync(j,"w"),e().writeFileSync(b,Buffer.from(c)),e().fsyncSync(b)}catch(a){if(void 0!==b)try{e().closeSync(b)}catch{}try{e().unlinkSync(j)}catch{}throw a}e().closeSync(b);try{e().renameSync(j,a)}catch(a){try{e().unlinkSync(j)}catch{}throw a}f=!1}function m(){f=!0,h&&clearTimeout(h),h=setTimeout(()=>{if(h=null,f)try{k()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function n(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}let o=()=>{if(f)try{k()}catch{}},p=()=>{o(),process.exit(0)};return process.once("beforeExit",o),process.once("SIGINT",p),process.once("SIGTERM",p),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(n(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return m(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(n(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(n(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),m()},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}`),m(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){h&&clearTimeout(h),f&&k(),d.close()},raw:d}}},76040:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
1
+ "use strict";exports.id=4780,exports.ids=[4780],exports.modules={34780:(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(76040);c(85612);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,i=0;function k(){let b,c=d.export(),h=g().dirname(a),j=g().join(h,`.${g().basename(a)}.tmp-${process.pid}-${i++}`);try{b=e().openSync(j,"w"),e().writeFileSync(b,Buffer.from(c)),e().fsyncSync(b)}catch(a){if(void 0!==b)try{e().closeSync(b)}catch{}try{e().unlinkSync(j)}catch{}throw a}e().closeSync(b);try{e().renameSync(j,a)}catch(a){try{e().unlinkSync(j)}catch{}throw a}f=!1}function m(){f=!0,h&&clearTimeout(h),h=setTimeout(()=>{if(h=null,f)try{k()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function n(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}let o=()=>{if(f)try{k()}catch{}},p=()=>{o(),process.exit(0)};return process.once("beforeExit",o),process.once("SIGINT",p),process.once("SIGTERM",p),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(n(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return m(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(n(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(n(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),m()},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}`),m(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){h&&clearTimeout(h),f&&k(),d.close()},raw:d}}},76040:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=6,e=`
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
- `,f={_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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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
+ `,f={_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",scope:"TEXT"},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",config:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},mcpInstances:{columns:{id:"TEXT PRIMARY KEY",slug:"TEXT UNIQUE NOT NULL",title:"TEXT",kind:"TEXT NOT NULL",transport:"TEXT NOT NULL",url:"TEXT",command:"TEXT",args:"TEXT",env:"TEXT",headers:"TEXT",oauth:"INTEGER DEFAULT 0",oauthTokens:"TEXT",enabled:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_inst_slug ON mcpInstances(slug)","CREATE INDEX IF NOT EXISTS idx_mcp_inst_enabled ON mcpInstances(enabled)"]},mcpGatewayKeys:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT",key:"TEXT UNIQUE NOT NULL",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_gwkey ON mcpGatewayKeys(key)"]},mcpKeyGrants:{columns:{keyId:"TEXT NOT NULL",instanceId:"TEXT NOT NULL",toolAllowlist:"TEXT"},primaryKey:"PRIMARY KEY (keyId, instanceId)",indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_grant_key ON mcpKeyGrants(keyId)"]},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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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(", ")})`}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=4803,exports.ids=[4803],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
1
+ "use strict";exports.id=4803,exports.ids=[4803],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=6,e=`
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
- `,f={_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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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(", ")})`}},54803:(a,b,c)=>{c.d(b,{createNodeSqliteAdapter:()=>f});var d=c(34050),e=c(11356);async function f(a){let b=process.emit;process.emit=function(a,c,...d){return!("warning"===a&&c?.name==="ExperimentalWarning"&&/SQLite/i.test(c.message||""))&&b.call(process,a,c,...d)};let f=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(a);f.exec(d.oG);let g=new Map;function h(a){let b=g.get(a);return b||(b=f.prepare(a),g.set(a,b)),b}let i=setInterval(()=>{try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function j(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{g.clear()}catch{}try{f.close()}catch{}}return"function"==typeof i.unref&&i.unref(),(0,e.Bb)(j,100),{driver:"node:sqlite",run(a,b=[]){let c=h(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>h(a).get(...b),all:(a,b=[])=>h(a).all(...b),exec:a=>f.exec(a),transaction(a){let b=`sp_${Math.random().toString(36).slice(2)}`;f.exec(`SAVEPOINT ${b}`);try{let c=a();return f.exec(`RELEASE ${b}`),c}catch(a){try{f.exec(`ROLLBACK TO ${b}`),f.exec(`RELEASE ${b}`)}catch{}throw a}},checkpoint(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(i),j()},raw:f}}}};
9
+ `,f={_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",scope:"TEXT"},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",config:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},mcpInstances:{columns:{id:"TEXT PRIMARY KEY",slug:"TEXT UNIQUE NOT NULL",title:"TEXT",kind:"TEXT NOT NULL",transport:"TEXT NOT NULL",url:"TEXT",command:"TEXT",args:"TEXT",env:"TEXT",headers:"TEXT",oauth:"INTEGER DEFAULT 0",oauthTokens:"TEXT",enabled:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_inst_slug ON mcpInstances(slug)","CREATE INDEX IF NOT EXISTS idx_mcp_inst_enabled ON mcpInstances(enabled)"]},mcpGatewayKeys:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT",key:"TEXT UNIQUE NOT NULL",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_gwkey ON mcpGatewayKeys(key)"]},mcpKeyGrants:{columns:{keyId:"TEXT NOT NULL",instanceId:"TEXT NOT NULL",toolAllowlist:"TEXT"},primaryKey:"PRIMARY KEY (keyId, instanceId)",indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_grant_key ON mcpKeyGrants(keyId)"]},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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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(", ")})`}},54803:(a,b,c)=>{c.d(b,{createNodeSqliteAdapter:()=>f});var d=c(34050),e=c(11356);async function f(a){let b=process.emit;process.emit=function(a,c,...d){return!("warning"===a&&c?.name==="ExperimentalWarning"&&/SQLite/i.test(c.message||""))&&b.call(process,a,c,...d)};let f=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(a);f.exec(d.oG);let g=new Map;function h(a){let b=g.get(a);return b||(b=f.prepare(a),g.set(a,b)),b}let i=setInterval(()=>{try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function j(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{g.clear()}catch{}try{f.close()}catch{}}return"function"==typeof i.unref&&i.unref(),(0,e.Bb)(j,100),{driver:"node:sqlite",run(a,b=[]){let c=h(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>h(a).get(...b),all:(a,b=[])=>h(a).all(...b),exec:a=>f.exec(a),transaction(a){let b=`sp_${Math.random().toString(36).slice(2)}`;f.exec(`SAVEPOINT ${b}`);try{let c=a();return f.exec(`RELEASE ${b}`),c}catch(a){try{f.exec(`ROLLBACK TO ${b}`),f.exec(`RELEASE ${b}`)}catch{}throw a}},checkpoint(){try{f.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(i),j()},raw:f}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4807,exports.ids=[4807],exports.modules={74807:(a,b,c)=>{c.d(b,{checkAndRefreshToken:()=>s});var d=c(87886),e=c(70321),f=c(10793);let g=new Map,h=new Map,i=null;async function j(a,b,c="gemini-cli"){if(!a||!b)return null;let d=g.get(a);if(d&&Date.now()-d.fetchedAt<36e5)return d.projectId;if(h.has(a))return h.get(a).promise;let e=new AbortController,f=(async()=>{try{let d=await k(b,e.signal,c);if(d)return g.set(a,{projectId:d,fetchedAt:Date.now()}),d;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{h.delete(a)}})();return h.set(a,{promise:f,controller:e,startedAt:Date.now()}),f}async function k(a,b,c){let d=f.nZ[c]||f.nZ["gemini-cli"],e="antigravity"===c?f.j5:f.Ic,g=await fetch(d.loadCodeAssist,{method:"POST",headers:{...e,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:f.zv}),signal:b});if(!g.ok){let a=await g.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${g.status} ${a.slice(0,200)}`)}let h=await g.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(h);if(i)return i;let j="legacy-tier";if(Array.isArray(h.allowedTiers)){for(let a of h.allowedTiers)if(a&&"object"==typeof a&&!0===a.isDefault&&a.id&&"string"==typeof a.id&&a.id.trim()){j=a.id.trim();break}}return l(a,j,b,d,c)}async function l(a,b,c,d,e){console.log(`[ProjectId] Onboarding user with tier: ${b}`);let g={tierId:b,metadata:f.zv},h="antigravity"===e?f.j5:f.Ic;for(let b=1;b<=5&&!c?.aborted;b++){let e=new AbortController,f=setTimeout(()=>e.abort(),3e4),i=()=>e.abort();c?.addEventListener("abort",i);try{let c=await fetch(d.onboardUser,{method:"POST",headers:{...h,Authorization:`Bearer ${a}`},body:JSON.stringify(g),signal:e.signal});if(clearTimeout(f),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let i=await c.json();if(!0===i.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(i);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;return console.warn("[ProjectId] onboardUser finished without a project ID (account not provisioned)"),null}console.log(`[ProjectId] Onboard attempt ${b}/5: not done yet, waiting...`),await new Promise(a=>setTimeout(a,2e3))}catch(a){if(clearTimeout(f),"AbortError"===a.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(5===b)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${a.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${a.message}, retrying...`),await new Promise(a=>setTimeout(a,2e3))}finally{clearTimeout(f),c?.removeEventListener("abort",i)}}return null}i=setInterval(()=>{try{let a=Date.now();for(let[b,c]of g)(!c||a-c.fetchedAt>=36e5)&&g.delete(b);for(let[b,c]of h){if(!c||"number"!=typeof c.startedAt){h.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}h.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),i?.unref?.();var m=c(44855),n=c(98976);let o=m.oD;function p(a){return new Date(Date.now()+1e3*a).toISOString()}function q(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}async function r(a,b){try{let c={};if(b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.idToken&&(c.idToken=b.idToken),b.lastRefreshAt&&(c.lastRefreshAt=b.lastRefreshAt),b.expiresAt&&(c.expiresAt=b.expiresAt),b.expiresIn)c.expiresAt=p(b.expiresIn),c.expiresIn=b.expiresIn;else if(b.expiresAt){let a=q(b.expiresAt);a&&(c.expiresAt=a,c.expiresIn=Math.max(1,Math.floor((new Date(a).getTime()-Date.now())/1e3)))}if(b.providerSpecificData&&(c.providerSpecificData={...b.existingProviderSpecificData||{},...b.providerSpecificData}),b.refreshToken){let a=c.providerSpecificData||b.existingProviderSpecificData;a&&(c.providerSpecificData={...a,refreshToken:b.refreshToken})}(b.copilotToken||b.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||b.existingProviderSpecificData||{},...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),b.projectId&&(c.projectId=b.projectId);let f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function s(a,b,c={}){let e=c&&"function"==typeof c.needsRefresh?c:null,f=c&&"object"==typeof c&&!e?c:{},g={...b};if(!g.connectionId&&g.id&&(g.connectionId=g.id),f?.force===!0||(e?e.needsRefresh(g):(0,n.fp)(a,g))){let b=g.expiresAt?new Date(g.expiresAt).getTime():null,c=b?b-Date.now():null,e=(0,m.Og)(a);d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===c?null:Math.round(c/1e3),refreshLeadMs:e,lastRefreshAt:g.lastRefreshAt||null});let f=await (0,n.Vq)(a,g,d);if(f?.accessToken||f?.apiKey||f?.copilotToken){let b={...f,existingProviderSpecificData:g.providerSpecificData};await r(g.connectionId,b),(g={...g,...f,expiresAt:f.expiresIn?p(f.expiresIn):q(f.expiresAt)||f.expiresAt||g.expiresAt,providerSpecificData:f.providerSpecificData?{...g.providerSpecificData,...f.providerSpecificData}:g.providerSpecificData}).projectId||function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&j(b,c,a).then(a=>{a&&r(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})})}(a,g.connectionId,g.accessToken)}}if("github"===a){let b=g.providerSpecificData?.copilotToken,c=(g.providerSpecificData?.copilotTokenExpiresAt?1e3*g.providerSpecificData.copilotTokenExpiresAt:0)-Date.now();if(!b||c<o){let e;d.info("TOKEN_REFRESH","Copilot token expiring soon or missing, refreshing proactively",{provider:a,expiresIn:b?Math.round(c/1e3):"missing"});let f=await (e=g.accessToken,(0,m.jR)(e,d));if(f){let a={...g.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await r(g.connectionId,{providerSpecificData:a}),g.providerSpecificData=a,g.copilotToken=f.token}}}return g}}};
1
+ "use strict";exports.id=4807,exports.ids=[4807],exports.modules={74807:(a,b,c)=>{c.d(b,{checkAndRefreshToken:()=>s});var d=c(87886),e=c(70321),f=c(10793);let g=new Map,h=new Map,i=null;async function j(a,b,c="gemini-cli"){if(!a||!b)return null;let d=g.get(a);if(d&&Date.now()-d.fetchedAt<36e5)return d.projectId;if(h.has(a))return h.get(a).promise;let e=new AbortController,f=(async()=>{try{let d=await k(b,e.signal,c);if(d)return g.set(a,{projectId:d,fetchedAt:Date.now()}),d;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{h.delete(a)}})();return h.set(a,{promise:f,controller:e,startedAt:Date.now()}),f}async function k(a,b,c){let d=f.nZ[c]||f.nZ["gemini-cli"],e="antigravity"===c?f.j5:f.Ic,g=await fetch(d.loadCodeAssist,{method:"POST",headers:{...e,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:f.zv}),signal:b});if(!g.ok){let a=await g.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${g.status} ${a.slice(0,200)}`)}let h=await g.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(h);if(i)return i;let j="legacy-tier";if(Array.isArray(h.allowedTiers)){for(let a of h.allowedTiers)if(a&&"object"==typeof a&&!0===a.isDefault&&a.id&&"string"==typeof a.id&&a.id.trim()){j=a.id.trim();break}}return l(a,j,b,d,c)}async function l(a,b,c,d,e){console.log(`[ProjectId] Onboarding user with tier: ${b}`);let g={tierId:b,metadata:f.zv},h="antigravity"===e?f.j5:f.Ic,i=Number(process.env.ONBOARD_MAX_ATTEMPTS)||2,j=Number(process.env.ONBOARD_RETRY_DELAY_MS)||12e3;for(let b=1;b<=i&&!c?.aborted;b++){let e=new AbortController,f=setTimeout(()=>e.abort(),3e4),k=()=>e.abort();c?.addEventListener("abort",k);try{let c=await fetch(d.onboardUser,{method:"POST",headers:{...h,Authorization:`Bearer ${a}`},body:JSON.stringify(g),signal:e.signal});if(clearTimeout(f),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let k=await c.json();if(!0===k.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(k);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;return console.warn("[ProjectId] onboardUser finished without a project ID (account not provisioned)"),null}let l=Math.floor(5e3*Math.random());console.log(`[ProjectId] Onboard attempt ${b}/${i}: not done yet, waiting...`),await new Promise(a=>setTimeout(a,j+l))}catch(d){if(clearTimeout(f),"AbortError"===d.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(b===i)return console.warn(`[ProjectId] onboardUser failed after ${i} attempts: ${d.message}`),null;let a=Math.floor(5e3*Math.random());console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${d.message}, retrying...`),await new Promise(b=>setTimeout(b,j+a))}finally{clearTimeout(f),c?.removeEventListener("abort",k)}}return null}i=setInterval(()=>{try{let a=Date.now();for(let[b,c]of g)(!c||a-c.fetchedAt>=36e5)&&g.delete(b);for(let[b,c]of h){if(!c||"number"!=typeof c.startedAt){h.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}h.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),i?.unref?.();var m=c(44855),n=c(98976);let o=m.oD;function p(a){return new Date(Date.now()+1e3*a).toISOString()}function q(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}async function r(a,b){try{let c={};if(b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.idToken&&(c.idToken=b.idToken),b.lastRefreshAt&&(c.lastRefreshAt=b.lastRefreshAt),b.expiresAt&&(c.expiresAt=b.expiresAt),b.expiresIn)c.expiresAt=p(b.expiresIn),c.expiresIn=b.expiresIn;else if(b.expiresAt){let a=q(b.expiresAt);a&&(c.expiresAt=a,c.expiresIn=Math.max(1,Math.floor((new Date(a).getTime()-Date.now())/1e3)))}if(b.providerSpecificData&&(c.providerSpecificData={...b.existingProviderSpecificData||{},...b.providerSpecificData}),b.refreshToken){let a=c.providerSpecificData||b.existingProviderSpecificData;a&&(c.providerSpecificData={...a,refreshToken:b.refreshToken})}(b.copilotToken||b.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||b.existingProviderSpecificData||{},...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),b.projectId&&(c.projectId=b.projectId);let f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function s(a,b,c={}){let e=c&&"function"==typeof c.needsRefresh?c:null,f=c&&"object"==typeof c&&!e?c:{},h={...b};if(!h.connectionId&&h.id&&(h.connectionId=h.id),f?.force===!0||(e?e.needsRefresh(h):(0,n.fp)(a,h))){let b=h.expiresAt?new Date(h.expiresAt).getTime():null,c=b?b-Date.now():null,e=(0,m.Og)(a);d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===c?null:Math.round(c/1e3),refreshLeadMs:e,lastRefreshAt:h.lastRefreshAt||null});let f=await (0,n.Vq)(a,h,d);if(f?.accessToken||f?.apiKey||f?.copilotToken){let b={...f,existingProviderSpecificData:h.providerSpecificData};await r(h.connectionId,b),(h={...h,...f,expiresAt:f.expiresIn?p(f.expiresIn):q(f.expiresAt)||f.expiresAt||h.expiresAt,providerSpecificData:f.providerSpecificData?{...h.providerSpecificData,...f.providerSpecificData}:h.providerSpecificData}).projectId||function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&(g.delete(b),"true"===process.env.EAGER_PROJECT_ID_REFRESH&&j(b,c,a).then(a=>{a&&r(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,h.connectionId,h.accessToken)}}if("github"===a){let b=h.providerSpecificData?.copilotToken,c=(h.providerSpecificData?.copilotTokenExpiresAt?1e3*h.providerSpecificData.copilotTokenExpiresAt:0)-Date.now();if(!b||c<o){let e;d.info("TOKEN_REFRESH","Copilot token expiring soon or missing, refreshing proactively",{provider:a,expiresIn:b?Math.round(c/1e3):"missing"});let f=await (e=h.accessToken,(0,m.jR)(e,d));if(f){let a={...h.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await r(h.connectionId,{providerSpecificData:a}),h.providerSpecificData=a,h.copilotToken=f.token}}}return h}}};
@@ -0,0 +1 @@
1
+ exports.id=4827,exports.ids=[615,4827,9485],exports.modules={4630:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(39141);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},8382:(a,b,c)=>{"use strict";c.d(b,{d5:()=>d,nh:()=>e});let d="-review";function e(a){if(!a||"string"!=typeof a)return!1;let b=a.replace(/\([^()]+\)\s*$/,"").trim(),c=b.includes("/")?b.split("/").pop():b;return/^muse[-_]?spark(?:$|[-_:.\s])/i.test(c)}},16329:(a,b,c)=>{"use strict";c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},19956:(a,b,c)=>{"use strict";c.d(b,{h:()=>d,t:()=>e});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",VERTEX:"vertex",CODEX:"codex",ANTIGRAVITY:"antigravity",KIRO:"kiro",CURSOR:"cursor",OLLAMA:"ollama",COMMANDCODE:"commandcode"};function e(a,b){return a.includes("/v1/responses")?d.OPENAI_RESPONSES:a.includes("/v1/messages")?d.CLAUDE:a.includes("/v1/chat/completions")&&Array.isArray(b?.input)?d.OPENAI:null}},21719:(a,b,c)=>{"use strict";c.d(b,{g:()=>n,l:()=>m});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(30869),l=c(16329);async function m(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","ezrouter"):f().join(j().homedir(),".ezrouter"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("9router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("9router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function n(a=k.h0.npmPackageName){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"ezrouter"):f().join(j().homedir(),".ezrouter"),"runtime","updater"),c=f().join(b,"updater.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{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:a,UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(process.env.PORT||k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>(0,l.Om)(0),k.h0.exitDelayMs)}},29485:(a,b,c)=>{"use strict";c.d(b,{KC:()=>u,OA:()=>q,PROVIDER_MODELS:()=>f.vq,SM:()=>j,Xg:()=>t,cY:()=>v,ez:()=>p,fZ:()=>k,kt:()=>r,ux:()=>o});var d=c(4630),e=c(32892),f=c(39141),g=c(6595),h=c(8382),i=c(19956);function j(a){return f.vq[a]||[]}function k(a){let b=f.vq[a];return b?.[0]?.id||null}let l=new Set(["kr","kiro"]),m=new Map;for(let[a,b]of Object.entries(f.vq)){if(!Array.isArray(b))continue;let c=new Map,d=new Map;for(let e of b)if(e?.id!=null&&(c.set(e.id,e),l.has(a))){let a=(0,g.Kq)(e.id);a!==e.id&&d.set(a,e)}m.set(a,{exact:c,normalized:d})}function n(a,b,c){if(!a)return;let d="string"==typeof b?b.replace(/\([^()]+\)\s*$/,"").trim():b,e=m.get(c);if(e){let a=e.exact.get(d);return a||(e.normalized.size?e.normalized.get(d):void 0)}let f=a.find(a=>a.id===d);if(f)return f;if(!l.has(c))return;let h=(0,g.Kq)(d);if(h!==d)return a.find(a=>a.id===h)}function o(a,b){if((!a||"oc"===a||"opencode"===a)&&(0,h.nh)(b))return i.h.OPENAI_RESPONSES;let c=t[a]||a,d=f.vq[c]||f.vq[a];return d?(0,g.gr)(n(d,b,c)):null}function p(a,b){let c=t[a]||a,d=f.vq[c]||f.vq[a];return d?(0,g.ec)(n(d,b,c)):null}function q(a,b){let c=t[a]||a,d=f.vq[c]||f.vq[a];if(!d)return null;let e=n(d,b,c);return e?.kind||e?.type||null}function r(a,b){let c=t[a]||a,d="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,e=d?d[0]:"",g=e?b.slice(0,d.index).trim():b,i=n(f.vq[c]||f.vq[a],g,c),j=i?.upstreamModelId||i?.id;if(j){let a=j.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?j.slice(0,a.index).trim():j)+(e||b)}return"cx"===c&&"string"==typeof g&&g.endsWith(h.d5)?g.slice(0,-h.d5.length)+e:g+e}let s=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),t=Object.fromEntries(Object.keys(d.xq).map(a=>[a,s[a]||a]));function u(a){let b=t[a]||a;return f.vq[b]||[]}function v(a,b){return(0,g.g5)(n(f.vq[a],b,a))}},30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rabbi696/ezrouter",installCmd:"npm i -g @rabbi696/ezrouter",installCmdLatest:"npm i -g @rabbi696/ezrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20126},h={maxLines:200,pollIntervalMs:1e3,streamTimeoutMs:5e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingInactiveSession:!0,inactiveMinPingIntervalMs:18e6,pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{"use strict";a.exports={rE:"0.6.5"}},40615:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>u,js:()=>B,DI:()=>n,fg:()=>k,Pd:()=>o,Vj:()=>p,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>D,wb:()=>C,br:()=>l,wG:()=>A,zt:()=>v,gb:()=>r,gC:()=>s,AR:()=>t,mq:()=>q,YI:()=>x,rs:()=>w,p5:()=>z});var d=c(32892);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.baseUrlField?{baseUrlField:a.baseUrlField}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.models?{models:a.models}:{},...a.authModes?{authModes:a.authModes}:{},...a.features?{features:{...a.features}}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-",p="custom-video-";function q(a){return"string"==typeof a&&a.startsWith(m)}function r(a){return"string"==typeof a&&a.startsWith(n)}function s(a){return"string"==typeof a&&a.startsWith(o)}function t(a){return"string"==typeof a&&a.startsWith(p)}let u={...h,...i,...j,...k,...l};function v(a){for(let b of Object.values(u))if(b.alias===a||b.id===a)return b;return null}function w(a){let b=v(a);return b?.id||a}function x(a){return!!a&&(!!v(a)||q(a)||r(a))}let y={nvidia:40};function z(a,b){let c=(a?.rpmByProvider||{})[b];if(0===c||"0"===c)return 0;let d=Number(c);return Number.isFinite(d)&&d>0?d:y[b]||0}function A(a){let b=u[a];return b?.alias||a}let B=Object.values(u).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(u).reduce((a,b)=>(a[b.id]=b.alias,a),{});let C=d.default.filter(a=>a.features?.usage).map(a=>a.id),D=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},78335:()=>{},81329:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,bs:()=>g,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(29485);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b,g={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},96487:()=>{}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=4878,exports.ids=[4878],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,debugEnabled:()=>w,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}let w=e<=d.DEBUG},19225:(a,b,c)=>{a.exports=c(44870)},23433:(a,b,c)=>{c.d(b,{Pt:()=>x,Tr:()=>y,c1:()=>v,kI:()=>B,vk:()=>w,$A:()=>A});var d=c(89718),e=c(39326),f=c(49263),g=c(87252),h=c(49190),i=c(58336),j=c(40615),k=c(79963),l=c(75233),m=c(6165);let n=new Map;function o(a,b){if(!a||!b)return null;let c="number"==typeof b?b:new Date(b).getTime();return!Number.isFinite(c)||Date.now()-c>=12e4?null:a}async function p(a){let b=await (0,e.B)(a.providerSpecificData||{}).then(a=>({connectionProxyEnabled:!0===a.connectionProxyEnabled,connectionProxyUrl:a.connectionProxyUrl||"",connectionNoProxy:a.connectionNoProxy||"",vercelRelayUrl:a.vercelRelayUrl||"",strictProxy:!1})),c=(0,l.my)(a,b,{}),d=new Promise((a,b)=>setTimeout(()=>b(Error("quota fetch timeout")),3e3)),f=await Promise.race([c,d]),g=(0,m.wi)(a.provider,f);return g||null}async function q(a){var b,c;if(!Object.values((0,m.fo)(a)).some(a=>Number(a)>0&&100>=Number(a)))return{paused:!1,reason:"disabled",snapshot:null};if(!(0,m.Kr)(a))return{paused:!1,reason:"ineligible",snapshot:null};let e=function(a){let b=n.get(a.id);if(b){let a=o(b.snapshot,b.fetchedAt);if(a)return a}let c=a.lastQuotaSnapshot;if(c){let a=o(c,c.fetchedAt);if(a)return a}return null}(a);if(!e){try{e=await p(a)}catch{e=null}e&&(b=a.id,c=e,n.set(b,{snapshot:c,fetchedAt:Date.now()}),(0,d.updateProviderConnection)(b,{lastQuotaSnapshot:c}).catch(()=>{}))}let f=(0,m.RU)({...a,lastQuotaSnapshot:e});return{paused:f,reason:f?"below-threshold":e?"ok":"no-data",snapshot:e}}var r=c(45974),s=c(7803);let t=Promise.resolve(),u=new Set([...Object.keys(j.IS),...Object.keys(j.nJ)]);async function v(a,b=null,c=null,g={}){let l,m=b instanceof Set?b:b?new Set([b]):new Set,n=g?.preferredConnectionId||null,o=t;t=new Promise(a=>{l=a});try{let b;await o;let g=(0,j.rs)(a);if(j.IS[g]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[g]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,g)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let l=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(s.debug("AUTH",`${a} | total connections: ${l.length}, excludeIds: ${m.size>0?[...m].join(","):"none"}, model: ${c||"any"}`),0===l.length)return s.warn("AUTH",`No credentials for ${a}`),null;let p=await (0,d.mt)(),t=(0,j.p5)(p,g),u="antigravity"===g,v=u&&c?(0,r.d0)():null,w=l.filter(a=>{if(m.has(a.id)||(0,f.Bl)(a,c)||(0,k.kM)(a.id,t))return!1;if(u&&c&&v){let b=v.get(a.id)?.[c];if(b&&b.remainingPercentage<=0&&b.resetAt&&new Date(b.resetAt).getTime()>Date.now()){let d=a.id?.slice(0,8)||"unknown";return s.info("AG_QUOTA",`${d} | CACHE_BLOCK ${c} — skip upstream until ${b.resetAt}`),!1}}return!0}),x=(await Promise.all(w.map(async b=>(await q(b)).paused?(s.info("AUTH",`${a} | ${b.id?.slice(0,8)} skipped: quota paused (window below per-window threshold)`),null):b))).filter(Boolean);if(s.debug("AUTH",`${a} | available: ${x.length}/${l.length}`),l.forEach(a=>{let b=m.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);s.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===x.length){let b=l.filter(a=>(0,f.Bl)(a,c)),d=b.map(a=>(0,f.kJ)(a)).filter(Boolean);u&&c&&v&&l.forEach(a=>{let b=v.get(a.id)?.[c]?.resetAt;b&&new Date(b).getTime()>Date.now()&&d.push(b)});let e=d.sort()[0]||null;if(e){let d=b.find(a=>(0,f.kJ)(a)===e)||b[0],g=!!d?.lastErrorModel&&d.lastErrorModel===(c||null),h=g&&d?.lastError||null,i=g&&d?.errorCode||null;return s.warn("AUTH",`${a} | all ${l.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${g?d?.lastError?.slice(0,50):`<withheld: belongs to ${d?.lastErrorModel||"unknown"}>`}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:h,lastErrorCode:i}}let g=l.map(a=>(0,k.Vs)(a.id,t)).filter(a=>null!=a);if(g.length===l.length&&g.length>0){let b=Math.min(...g),c=new Date(Date.now()+b).toISOString();return s.warn("AUTH",`${a} | all ${l.length} accounts at the ${t} RPM cap (${Math.ceil(b/1e3)}s)`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:`Local ${t} RPM cap reached for every ${a} account`,lastErrorCode:null}}return s.warn("AUTH",`${a} | all ${l.length} accounts unavailable`),null}let y=(p.providerStrategies||{})[g]||{},z=y.fallbackStrategy||p.fallbackStrategy||"fill-first";if(n&&(b=x.find(a=>a.id===n))&&s.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if(z===h.cL){let{connection:e,reason:f}=(0,i.Sn)(w,{model:c,config:p.latencyAwareConfig});b=e||w[0],s.debug("AUTH",`${a} | latency-aware → ${b.id?.slice(0,8)} (${f})`),await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else if("round-robin"===z){let a=y.stickyRoundRobinLimit||p.stickyRoundRobinLimit||3,c=[...x].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...x].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else b=x[0];t>0&&(0,k.Vi)(b.id);let A=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:A.connectionProxyEnabled,connectionProxyUrl:A.connectionProxyUrl,connectionNoProxy:A.connectionNoProxy,connectionProxyPoolId:A.proxyPoolId||null,vercelRelayUrl:A.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{l&&l()}}async function w(a,b,c,e=null,h=null,i=null){let k,l,m;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let n=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),o=n?.backoffLevel||0,p=(0,j.rs)(e),q=null;try{let a=await (0,d.mt)(),b=a?.retryDelayByProvider?.[p];if(null!=b&&"auto"!==b){let a=Number(b);Number.isFinite(a)&&a>0&&(q=Math.min(1e3*a,g.fh))}}catch{}let r=(0,f.hk)(b,c,o);if(r.shouldFallback&&i&&i>Date.now()?(k=!0,l="antigravity"===(0,j.rs)(e)?i-Date.now():Math.min(i-Date.now(),g.fh),m=0):({shouldFallback:k,cooldownMs:l,newBackoffLevel:m}=r,k&&null==(0,f.Ib)(c)&&(null!=q?(l=q,m=0):l>6e4&&u.has(p)&&(l=6e4))),!k)return{shouldFallback:!1,cooldownMs:0};let t=function(a){let b=a=>String(a).replace(/\s+/g," ").trim().slice(0,100);if("string"==typeof a)return a.slice(0,100);if(!a||"object"!=typeof a)return"Provider error";let c="string"==typeof a.code?a.code:"string"==typeof a.cause?.code?a.cause.code:null;if(a instanceof Error){let d=a.message?b(a.message):a.name||"Provider error";return c&&!d.includes(c)?b(`${d} (${c})`):d}for(let d of[a.error?.message,a.message,"string"==typeof a.error?a.error:null,a.detail,a.reason])if("string"==typeof d&&d.trim())return b(c&&!d.includes(c)?`${d} (${c})`:d);return c?b(`Provider error (${c})`):"Provider error"}(c),v=(0,f.S5)(h,l);await (0,d.updateProviderConnection)(a,{...v,testStatus:"unavailable",lastError:t,errorCode:b,lastErrorModel:h||null,lastErrorAt:new Date().toISOString(),backoffLevel:m??o});let x=Object.keys(v)[0],y=n?.displayName||n?.name||n?.email||a.slice(0,8);return s.warn("AUTH",`${y} locked ${x} for ${Math.round(l/1e3)}s [${b}]`),e&&b&&t&&console.error(`❌ ${e} [${b}]: ${t}`),{shouldFallback:!0,cooldownMs:l}}async function x(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,errorCode:null,lastErrorModel:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function y(a){return z(a)[0]||null}function z(a){let b=[],c=a=>{a&&!b.includes(a)&&b.push(a)},d=a.headers.get("Authorization");return d?.startsWith("Bearer ")&&c(d.slice(7)),c(a.headers.get("x-api-key")),b}async function A(a){let b=z(a);for(let a of b)if(await (0,d.ek)(a))return{apiKey:a,valid:!0};return{apiKey:b[0]||null,valid:!1}}async function B(a){return!!a&&await (0,d.ek)(a)}},45974:(a,b,c)=>{c.d(b,{XJ:()=>p,d0:()=>m,vO:()=>l});var d=c(39326),e=c(58121),f=c(7803);let g=new Map,h=new Map,i=new Map,j=new Map,k=new Map;function l(a,b){let c=`${a}|${b}`;j.delete(c);let d=k.get(c);if(void 0===d)return;k.delete(c);let e=g.get(a);e?.[b]?.resetAt===new Date(d).toISOString()&&(delete e[b],g.set(a,e))}function m(){return g}async function n(a,b,c){let d=Date.now(),e=i.get(a);if(e)return e;let j=h.get(a)||0;if(d-j<3e4)return f.debug("AG_QUOTA",`${a.slice(0,8)} | skip refresh (${Math.round((d-j)/1e3)}s ago)`),g.get(a)||null;h.set(a,d);let k=o(a,b,c,d);i.set(a,k);try{return await k}finally{i.delete(a)}}async function o(a,b,c,h){try{let f=await (0,d.B)(c||{}),h={connectionProxyEnabled:!0===f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl||"",connectionNoProxy:f.connectionNoProxy||"",vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy},i=await (0,e.c)(b,c,h);if(!i?.quotas||i.message)return null;return g.set(a,function(a,b){let c=Date.now();for(let[d,e]of k)if(d.startsWith(`${a}|`)){if(e<=c){k.delete(d);continue}b[d.slice(a.length+1)]={remainingPercentage:0,resetAt:new Date(e).toISOString()}}return b}(a,i.quotas)),i.quotas}catch(b){return f.warn("AG_QUOTA",`${a.slice(0,8)} | refresh failed: ${b.message}`),null}}async function p(a,b,c,d,e){f.info("AG_QUOTA",`${a.slice(0,8)} | ${b} on ${c} — refreshing quota`);let h=(await n(a,d,e))?.[c];if(!h||h.remainingPercentage>0){let d=`${a}|${c}`,e=Date.now(),i=j.get(d),l=i&&e-i.windowStart<=6e4?i.windowStart:e,m=i&&l===i.windowStart?i.count+1:1;if(j.set(d,{count:m,windowStart:l}),m>=3){j.delete(d);let i=e+9e5,l=h?`${Math.round(h.remainingPercentage)}%`:"unknown";f.warn("AG_QUOTA",`${a.slice(0,8)} | STRIKE_${b} ${c} — ${m}x 429 (quota ${l}); CACHE_BLOCK 15m`);let n=g.get(a)||{};return n[c]={remainingPercentage:0,resetAt:new Date(i).toISOString()},g.set(a,n),k.set(d,i),i}return null}if(j.delete(`${a}|${c}`),!h.resetAt)return null;let i=new Date(h.resetAt).getTime();return i<=Date.now()?null:(f.warn("AG_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — quota exhausted; CACHE_BLOCK until ${h.resetAt}`),i)}},79963:(a,b,c)=>{c.d(b,{CI:()=>f,Vi:()=>h,Vs:()=>i,kM:()=>g});let d=new Map;function e(a,b){let c=d.get(a);if(!c)return[];let e=b-6e4,f=0;for(;f<c.length&&c[f].t<=e;)f+=1;let g=0===f?c:c.slice(f);return g.length?d.set(a,g):d.delete(a),g}function f(a,b=Date.now()){return e(a,b).reduce((a,b)=>a+b.n,0)}function g(a,b,c=Date.now()){return!!b&&!(b<=0)&&f(a,c)>=b}function h(a,b=1,c){if(!a)return;let f=1,g=Date.now();if(void 0!==c?(f=b,g=c):"number"==typeof b&&(b>=1e6?(f=1,g=b):(f=b,g=Date.now())),!(f>0))return;let i=e(a,g);i.push({t:g,n:f}),d.set(a,i)}function i(a,b,c=Date.now()){if(!g(a,b,c))return null;let e=(d.get(a)||[])[0];return e?Math.max(0,e.t+6e4-c):null}},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 +1 @@
1
- "use strict";exports.id=5011,exports.ids=[5011],exports.modules={79963:(a,b,c)=>{c.d(b,{CI:()=>f,Vi:()=>h,Vs:()=>i,kM:()=>g});let d=new Map;function e(a,b){let c=d.get(a);if(!c)return[];let e=b-6e4,f=0;for(;f<c.length&&c[f].t<=e;)f+=1;let g=0===f?c:c.slice(f);return g.length?d.set(a,g):d.delete(a),g}function f(a,b=Date.now()){return e(a,b).reduce((a,b)=>a+b.n,0)}function g(a,b,c=Date.now()){return!!b&&!(b<=0)&&f(a,c)>=b}function h(a,b=1,c){if(!a)return;let f=1,g=Date.now();if(void 0!==c?(f=b,g=c):"number"==typeof b&&(b>=1e6?(f=1,g=b):(f=b,g=Date.now())),!(f>0))return;let i=e(a,g);i.push({t:g,n:f}),d.set(a,i)}function i(a,b,c=Date.now()){if(!g(a,b,c))return null;let e=(d.get(a)||[])[0];return e?Math.max(0,e.t+6e4-c):null}},95011:(a,b,c)=>{c.d(b,{keyUsageSnapshot:()=>f});var d=c(5129),e=c(79963);function f(a,b=Date.now()){let c,g;return{rpmUsed:(0,e.CI)((c=a.id,`key:${c}:rpm`),b),tpmUsed:(0,e.CI)((g=a.id,`key:${g}:tpm`),b),spendUsed:function(a,b=Date.now()){let c=(0,d.Ld)(a.budgetPeriod),e=a.budgetStartedAt?Date.parse(a.budgetStartedAt):null;return c&&e&&b-e>=c?0:a.spend||0}(a,b)}}}};
1
+ "use strict";exports.id=5011,exports.ids=[5011],exports.modules={79963:(a,b,c)=>{c.d(b,{CI:()=>f,Vi:()=>h,Vs:()=>i,kM:()=>g});let d=new Map;function e(a,b){let c=d.get(a);if(!c)return[];let e=b-6e4,f=0;for(;f<c.length&&c[f].t<=e;)f+=1;let g=0===f?c:c.slice(f);return g.length?d.set(a,g):d.delete(a),g}function f(a,b=Date.now()){return e(a,b).reduce((a,b)=>a+b.n,0)}function g(a,b,c=Date.now()){return!!b&&!(b<=0)&&f(a,c)>=b}function h(a,b=1,c){if(!a)return;let f=1,g=Date.now();if(void 0!==c?(f=b,g=c):"number"==typeof b&&(b>=1e6?(f=1,g=b):(f=b,g=Date.now())),!(f>0))return;let i=e(a,g);i.push({t:g,n:f}),d.set(a,i)}function i(a,b,c=Date.now()){if(!g(a,b,c))return null;let e=(d.get(a)||[])[0];return e?Math.max(0,e.t+6e4-c):null}},95011:(a,b,c)=>{c.d(b,{keyUsageSnapshot:()=>f});var d=c(6816),e=c(79963);function f(a,b=Date.now()){let c,g;return{rpmUsed:(0,e.CI)((c=a.id,`key:${c}:rpm`),b),tpmUsed:(0,e.CI)((g=a.id,`key:${g}:tpm`),b),spendUsed:function(a,b=Date.now()){let c=(0,d.Ld)(a.budgetPeriod),e=a.budgetStartedAt?Date.parse(a.budgetStartedAt):null;return c&&e&&b-e>=c?0:a.spend||0}(a,b)}}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=507,exports.ids=[507],exports.modules={76040:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
1
+ "use strict";exports.id=507,exports.ids=[507],exports.modules={76040:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=6,e=`
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
- `,f={_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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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(", ")})`}},90507:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>h});var d=c(87550),e=c.n(d),f=c(76040),g=c(85612);function h(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 h=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof h.unref&&h.unref(),(0,g.Bb)(i,100),{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(h),i()},raw:b}}}};
9
+ `,f={_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",scope:"TEXT"},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",config:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},mcpInstances:{columns:{id:"TEXT PRIMARY KEY",slug:"TEXT UNIQUE NOT NULL",title:"TEXT",kind:"TEXT NOT NULL",transport:"TEXT NOT NULL",url:"TEXT",command:"TEXT",args:"TEXT",env:"TEXT",headers:"TEXT",oauth:"INTEGER DEFAULT 0",oauthTokens:"TEXT",enabled:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_inst_slug ON mcpInstances(slug)","CREATE INDEX IF NOT EXISTS idx_mcp_inst_enabled ON mcpInstances(enabled)"]},mcpGatewayKeys:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT",key:"TEXT UNIQUE NOT NULL",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_gwkey ON mcpGatewayKeys(key)"]},mcpKeyGrants:{columns:{keyId:"TEXT NOT NULL",instanceId:"TEXT NOT NULL",toolAllowlist:"TEXT"},primaryKey:"PRIMARY KEY (keyId, instanceId)",indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_grant_key ON mcpKeyGrants(keyId)"]},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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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(", ")})`}},90507:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>h});var d=c(87550),e=c.n(d),f=c(76040),g=c(85612);function h(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 h=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof h.unref&&h.unref(),(0,g.Bb)(i,100),{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(h),i()},raw:b}}}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=5209,exports.ids=[5209],exports.modules={55209:(a,b,c)=>{c.d(b,{$V:()=>A});var d=c(89718),e=c(87907);async function f(a,b={}){let c,d=b.maxAttempts??3,e=b.isTransient??g,h=b.onRetry;for(let f=0;f<d;f++)try{return await a()}catch(g){if(c=g,!e(g)||f>=d-1)throw g;let a=function(a,b={}){let c=b.baseDelayMs??100,d=b.backoffFactor??2,e=b.jitterRatio??.25,f=b.maxDelayMs??2e3,g=c*Math.pow(d,a),h=(g=Math.min(g,f))*e*(2*Math.random()-1);return Math.floor(g=Math.max(0,g+h))}(f,b);h&&h(g,f,a),await function(a){return new Promise(b=>setTimeout(b,a))}(a)}throw c}function g(a){if(!a)return!1;let b=("string"==typeof a.message?a.message:"").toLowerCase(),c="string"==typeof a.code?a.code:"",d="number"==typeof a.status?a.status:0;return"McpAuthError"!==a.name&&401!==d&&403!==d&&400!==d&&404!==d&&(!!(b.includes("timeout")||b.includes("timed out")||b.includes("econnrefused")||b.includes("econnreset")||b.includes("network")||b.includes("fetch failed"))||"ECONNREFUSED"===c||"ECONNRESET"===c||"ETIMEDOUT"===c||"ENETUNREACH"===c||d>=500&&d<600||429===d||!1)}var h=c(15059);let i="2025-06-18",j="__ezrouterGatewayHttpSessions";function k(){return globalThis[j]||(globalThis[j]=new Map),globalThis[j]}class l extends Error{constructor(a,{status:b,slug:c,body:d}={}){super(a),this.name="McpAuthError",this.status=b,this.slug=c,this.body=d}}function m(a){if(!a)return null;try{return JSON.parse(a)}catch{return null}}async function n(a,b,c={}){let g=async()=>{if(!a?.url)throw Error(`instance ${a?.slug??"?"} has no url`);let f=a,g=f.url;if(f.oauth){let a=(0,e.Dm)(f.oauthTokens);if(f=await (0,e.y3)(f,a),f.oauthTokens?.needsReauth)throw new l(`upstream requires re-login: ${f.slug}`,{status:401,...void 0!==f.slug?{slug:f.slug}:{}});f.url&&(g=f.url)}let j=new AbortController,k=c.timeoutMs??3e4,n=setTimeout(()=>j.abort(),k);try{let a=function(a){let b={"Content-Type":"application/json",Accept:"application/json, text/event-stream","MCP-Protocol-Version":i};if(a.headers&&"object"==typeof a.headers)for(let[c,d]of Object.entries(a.headers)){let a=c.toLowerCase();"content-type"===a||"accept"===a||a.startsWith("mcp-")||(b[c]=String(d))}let c=function(a){let b=a?.oauthTokens;if(!b||"object"!=typeof b||b.needsReauth)return null;let c=b.access_token??b.accessToken;return"string"==typeof c?c:null}(a);return c&&(b.Authorization=`Bearer ${c}`),b}(f);c.sessionId&&(a["mcp-session-id"]=c.sessionId);let e=await fetch(g,{method:"POST",headers:a,body:JSON.stringify(b),signal:j.signal});if(401===e.status||403===e.status){let a=await e.text().catch(()=>"");if(f.oauth&&f.id){let a=e.headers.get("www-authenticate");await (0,d.$e)(f.id,{oauthTokens:{...f.oauthTokens??{},needsReauth:!0,...a?{_lastChallenge:a}:{}}}).catch(()=>{})}throw new l(`upstream ${e.status} for ${f.slug}`,{status:e.status,...void 0!==f.slug?{slug:f.slug}:{},body:a.slice(0,500)})}if(!e.ok){let a=await e.text().catch(()=>""),b=Error(`upstream ${e.status} for ${f.slug}: ${a.slice(0,200)}`);throw b.status=e.status,b}let k=await e.text(),n=function(a,b){if((a.headers.get("content-type")??"").includes("text/event-stream")){let a=[];for(let c of b.split("\n").filter(a=>a.startsWith("data:"))){let b=m(c.replace(/^data:\s*/,""));b&&a.push(b)}return a}let c=m(b);return null!==c?[c]:[]}(e,k),o=e.headers.get("mcp-session-id")??c.sessionId??null,p="id"in b?b.id:void 0,q=n.find(a=>(0,h.tq)(a)&&a.id===p);return q||(q=n.find(a=>(0,h.tq)(a)&&("result"in a||"error"in a))),q||(q=n[n.length-1]??{jsonrpc:"2.0",id:p,result:null}),{...q,sessionId:o}}catch(a){if(a instanceof Error&&"AbortError"===a.name)throw Error(`upstream ${f.slug} timed out after ${k}ms`);throw a}finally{clearTimeout(n)}};return c.skipRetry?g():f(g,{maxAttempts:3,baseDelayMs:100,onRetry:(b,c,d)=>{let e=b instanceof Error?b.message:String(b);console.log(`[mcp-http:${a.slug}] transient retry ${c+1} after ${d}ms: ${e}`)}})}async function o(a,b={}){let c,d=((c=k()).has(a.id)||c.set(a.id,{sessionId:null,protocolVersion:null,serverInfo:null,initPromise:null}),c.get(a.id));return d.sessionId&&d.protocolVersion&&d.serverInfo?{protocolVersion:d.protocolVersion,serverInfo:d.serverInfo,sessionId:d.sessionId}:(d.initPromise||(d.initPromise=(async()=>{try{let c={protocolVersion:b.protocolVersion??i,capabilities:{},clientInfo:{name:"ezrouter-gateway",version:"1"}},e=await n(a,{jsonrpc:"2.0",id:0,method:"initialize",params:c});if("error"in e&&void 0!==e.error){let b=e.error,c=(0,h.u4)(b)&&"string"==typeof b.message?b.message:JSON.stringify(b);throw Error(`initialize failed for ${a.slug}: ${c}`)}await n(a,{jsonrpc:"2.0",method:"notifications/initialized",params:{}},{...e.sessionId?{sessionId:e.sessionId}:{},timeoutMs:5e3,skipRetry:!0}).catch(()=>{});let f="result"in e?e.result:null,g=(0,h.u4)(f)?f:null,j=g?.serverInfo,k={protocolVersion:((0,h.u4)(g)&&"string"==typeof g.protocolVersion?g.protocolVersion:null)??c.protocolVersion,serverInfo:(0,h.u4)(j)&&"string"==typeof j.name?{name:j.name,..."string"==typeof j.version?{version:j.version}:{}}:null,...e.sessionId?{sessionId:e.sessionId}:{}};return d.sessionId=k.sessionId??null,d.protocolVersion=k.protocolVersion,d.serverInfo=k.serverInfo,d.initPromise=null,k}catch(b){throw k().delete(a.id),b}})()),d.initPromise)}async function p(a,b={}){let c=await o(a,b),d=await n(a,{jsonrpc:"2.0",id:1,method:"tools/list",params:b.params??{}},{...void 0!==c.sessionId?{sessionId:c.sessionId}:{}});if("error"in d&&void 0!==d.error){let b=d.error,c=(0,h.u4)(b)&&"string"==typeof b.message?b.message:JSON.stringify(b);throw Error(`tools/list failed for ${a.slug}: ${c}`)}let e="result"in d?d.result:void 0;return e?.tools??[]}async function q(a,b,c,d={}){let e=await o(a,d),f=await n(a,{jsonrpc:"2.0",id:2,method:"tools/call",params:{name:b,arguments:c??{}}},{...void 0!==e.sessionId?{sessionId:e.sessionId}:{}});if("error"in f&&void 0!==f.error){let b=f.error,c=Error((0,h.u4)(b)&&"string"==typeof b.message?b.message:`tools/call failed for ${a.slug}`);throw(0,h.u4)(b)&&void 0!==b.code&&(c.code=b.code),(0,h.u4)(b)&&void 0!==b.data&&(c.data=b.data),c}return"result"in f?f.result:void 0}var r=c(31421),s=c(78474);let t="__ezrouterGatewayStdio",u="2025-06-18";function v(){return globalThis[t]||(globalThis[t]=new Map),globalThis[t]}class w{constructor(a){this.instance=a,this.proc=null,this.buffer="",this.nextId=1,this.pending=new Map,this.events=new s.EventEmitter,this.initializing=null,this.initialized=!1,this.initPromise=null,this.initInfo=null,this.lastSpawnError=null,this.spawning=null}isAlive(){return this.proc&&!this.proc.killed&&null===this.proc.exitCode}async ensure(){if(!this.isAlive()){if(this.spawning)return void await this.spawning;this.spawning=(async()=>{try{await f(async()=>{this.spawn(),await this.initializing},{maxAttempts:3,baseDelayMs:200,isTransient:a=>{let b=a?.code||a?.cause?.code||"";return"ENOENT"!==b&&"EACCES"!==b},onRetry:(a,b,c)=>{console.log(`[mcp-stdio:${this.instance.slug}] spawn retry ${b+1} after ${c}ms: ${a instanceof Error?a.message:String(a)}`)}})}finally{this.spawning=null}})(),await this.spawning}}spawn(){let a,{command:b,args:c,env:d}=this.instance;if(!b)throw this.initializing=Promise.reject(Error(`instance ${this.instance.slug} has no command`)),this.initializing.catch(()=>{}),this.initializing;let e=function(a){if(Array.isArray(a))return a;if("string"==typeof a){if(!a.trim())return[];try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return a.split(/\s+/).filter(Boolean)}}return[]}(c),f=function(a){if(!a)return{};if("string"==typeof a)try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}return"object"==typeof a?a:{}}(d);try{a=(0,r.spawn)(b,e,{stdio:["pipe","pipe","pipe"],env:{...process.env,...f}})}catch(c){let a=Error(`failed to spawn ${b}: ${c instanceof Error?c.message:String(c)}`);throw this.initializing=Promise.reject(a),this.initializing.catch(()=>{}),a}this.proc=a,this.buffer="",this.pending.clear(),this.initialized=!1,this.initPromise=null,this.initInfo=null;let g=new Promise((c,d)=>{let e=a=>d(Error(`${b} spawn error: ${a.message}`));a.once("error",e),setImmediate(()=>{a.removeListener("error",e),c()})});this.initializing=g,a.stdout.on("data",a=>this.onData(a)),a.stderr.on("data",a=>{let b=a.toString().trim();b&&console.log(`[mcp-gw:${this.instance.slug}]`,b)}),a.on("exit",(a,b)=>{this.proc=null;let c=Error(`upstream ${this.instance.slug} exited (code=${a}, signal=${b})`);for(let{reject:a,timer:b}of this.pending.values())clearTimeout(b),a(c);this.pending.clear(),this.events.emit("exit")}),a.on("error",a=>{let b=Error(`upstream ${this.instance.slug} error: ${a.message}`);for(let{reject:a,timer:c}of this.pending.values())clearTimeout(c),a(b);this.pending.clear()})}onData(a){let b;for(this.buffer+=a.toString("utf8");(b=this.buffer.indexOf("\n"))>=0;){let a,c=this.buffer.slice(0,b).trim();if(this.buffer=this.buffer.slice(b+1),c){try{a=JSON.parse(c)}catch{continue}if((0,h.u4)(a)&&void 0!==a.id&&this.pending.has(a.id)){let b=this.pending.get(a.id);if(!b)continue;let{resolve:c,timer:d}=b;clearTimeout(d),this.pending.delete(a.id),c(a)}}}}request(a,b,{timeoutMs:c=6e4,skipRetry:d=!1}={}){let e=async()=>new Promise((d,e)=>{if(!this.isAlive())return e(Error(`upstream ${this.instance.slug} not running`));let f=this.nextId++,g=setTimeout(()=>{this.pending.has(f)&&(this.pending.delete(f),e(Error(`upstream ${this.instance.slug} request ${a} timed out`)))},c);this.pending.set(f,{resolve:d,reject:e,timer:g});try{this.proc.stdin.write(`${JSON.stringify({jsonrpc:"2.0",id:f,method:a,params:b||{}})}
2
+ `)}catch(a){clearTimeout(g),this.pending.delete(f),e(Error(`write to ${this.instance.slug} failed: ${a instanceof Error?a.message:String(a)}`))}});return d?e():f(e,{maxAttempts:2,baseDelayMs:50,onRetry:(a,b,c)=>{console.log(`[mcp-stdio:${this.instance.slug}] request retry ${b+1} after ${c}ms: ${a instanceof Error?a.message:String(a)}`)}})}async ensureInitialized(){return this.initialized?this.initInfo:(this.initPromise||(this.initPromise=(async()=>{try{let a=await this.request("initialize",{protocolVersion:u,capabilities:{},clientInfo:{name:"ezrouter-gateway",version:"1"}},{timeoutMs:1e4});if(a.error)throw Error(`initialize failed: ${a.error.message||JSON.stringify(a.error)}`);try{this.proc.stdin.write(`${JSON.stringify({jsonrpc:"2.0",method:"notifications/initialized",params:{}})}
3
+ `)}catch{}return this.initInfo={protocolVersion:a.result?.protocolVersion||u,serverInfo:a.result?.serverInfo||null},this.initialized=!0,this.initInfo}catch(a){throw this.initialized=!1,this.initPromise=null,this.initInfo=null,v().delete(this.instance.id),a}})()),this.initPromise)}}function x(a){let b=v(),c=b.get(a.id);return c||(c=new w(a),b.set(a.id,c)),c}async function y(a){let b=x(a);try{await b.ensure(),await b.ensureInitialized();let a=await b.request("tools/list",{});if(a.error)throw Error(`tools/list failed: ${a.error.message||JSON.stringify(a.error)}`);return a.result?.tools||[]}catch(c){throw b.isAlive()||v().delete(a.id),c}}async function z(a,b,c){let d=x(a);try{await d.ensure(),await d.ensureInitialized();let a=await d.request("tools/call",{name:b,arguments:c||{}});if(a.error){let b=Error(a.error.message||"tools/call failed");throw b.code=a.error.code,b.data=a.error.data,b}return a.result}catch(b){throw d.isAlive()||v().delete(a.id),b}}function A(a){let b=(a?.transport||"").toLowerCase();if("http"===b||"sse"===b)return{listTools:p,callTool:q};if("stdio"===b)return{listTools:y,callTool:z};throw Error(`unknown transport: ${a?.transport} for ${a?.slug||"?"}`)}},87907:(a,b,c)=>{c.d(b,{Dm:()=>g,Ex:()=>j,y3:()=>h});var d=c(89718),e=c(15059);let f="__ezrouterGatewayRefresh";function g(a){if(!a)return null;let b=a.token_endpoint??a.as?.token_endpoint??null,c=a.client?.clientId??a.client_id??null,d=a.client?.clientSecret??a.client_secret??null,e=a.resource??null;return b&&c?{tokenEndpoint:b,clientId:c,clientSecret:d??null,resource:e}:null}async function h(a,b){var c;if(c=a.oauthTokens,c?.access_token&&!c.needsReauth&&(void 0===c.expires_at||Date.now()<c.expires_at-6e4))return a;if(!b?.tokenEndpoint||!b?.clientId)return{...a,oauthTokens:{...a.oauthTokens??{},needsReauth:!0}};let d=(globalThis[f]||(globalThis[f]=new Map),globalThis[f]),e=d.get(a.id);if(e)return e;let g=i(a,b).then(b=>({...a,oauthTokens:b})).catch(b=>{let c=b instanceof Error?b.message:String(b);return console.warn(`[mcp-gw] refresh failed for ${a.slug}: ${c}`),{...a,oauthTokens:{...a.oauthTokens??{},needsReauth:!0}}}).finally(()=>{d.delete(a.id)});return d.set(a.id,g),g}async function i(a,{tokenEndpoint:b,clientId:c,clientSecret:f,resource:g}){let h=a.oauthTokens?.refresh_token;if(!h)throw Error("no refresh_token — re-login required");let j=new URLSearchParams({grant_type:"refresh_token",refresh_token:h,client_id:c});f&&j.set("client_secret",f),g&&j.set("resource",g);let k=await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString()});if(!k.ok){let a=await k.text().catch(()=>"");throw Error(`refresh ${k.status}: ${a.slice(0,200)}`)}let l=await k.json().catch(()=>null);if(!(0,e.u4)(l)||"string"!=typeof l.access_token)throw Error("refresh response missing access_token");let m={...a.oauthTokens??{},access_token:l.access_token,refresh_token:"string"==typeof l.refresh_token?l.refresh_token:h,token_type:"string"==typeof l.token_type?l.token_type:a.oauthTokens?.token_type??"Bearer",scope:"string"==typeof l.scope?l.scope:a.oauthTokens?.scope,expires_at:"number"==typeof l.expires_in?Date.now()+1e3*l.expires_in:a.oauthTokens?.expires_at,needsReauth:!1,fetched_at:Date.now()};return await (0,d.$e)(a.id,{oauthTokens:m}),m}async function j(a,b){let c={needsReauth:!1,fetched_at:Date.now(),...b};return await (0,d.$e)(a,{oauthTokens:c}),c}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5258,exports.ids=[5258],exports.modules={16329:(a,b,c)=>{c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>h});var d=c(87550),e=c.n(d),f=c(63775),g=c(16329);function h(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 h=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof h.unref&&h.unref(),(0,g.Bb)(i,100),{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(h),i()},raw:b}}},63775:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
1
+ "use strict";exports.id=5258,exports.ids=[5258],exports.modules={16329:(a,b,c)=>{c.d(b,{Bb:()=>e,Om:()=>g});let d=globalThis.__9routerShutdownState??={flushers:new Set,priorities:new Map,shutdownPromise:null,signalHandler:null,beforeExitHandler:null};function e(a,b=0){if("function"!=typeof a)throw TypeError("shutdown flusher must be a function");return d.flushers.add(a),d.priorities.set(a,Number.isFinite(b)?b:0),d.signalHandler??=()=>g(0),d.beforeExitHandler??=()=>f(),process.listeners("SIGINT").includes(d.signalHandler)||process.once("SIGINT",d.signalHandler),process.listeners("SIGTERM").includes(d.signalHandler)||process.once("SIGTERM",d.signalHandler),process.listeners("beforeExit").includes(d.beforeExitHandler)||process.once("beforeExit",d.beforeExitHandler),()=>{d.flushers.delete(a),d.priorities.delete(a)}}function f(){return d.shutdownPromise||(d.shutdownPromise=(async()=>{let a=new Map;for(let b of d.flushers){let c=d.priorities.get(b)??0;a.has(c)||a.set(c,[]),a.get(c).push(b)}for(let b of[...a.keys()].sort((a,b)=>a-b))for(let c of(await Promise.allSettled(a.get(b).map(a=>Promise.resolve().then(a)))))"rejected"===c.status&&console.error("[Shutdown] flusher failed:",c.reason?.message||c.reason)})()),d.shutdownPromise}async function g(a=0){await f(),process.exit(a)}},25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>h});var d=c(87550),e=c.n(d),f=c(63775),g=c(16329);function h(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 h=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof h.unref&&h.unref(),(0,g.Bb)(i,100),{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(h),i()},raw:b}}},63775:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=6,e=`
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
- `,f={_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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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
+ `,f={_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",scope:"TEXT"},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",config:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},mcpInstances:{columns:{id:"TEXT PRIMARY KEY",slug:"TEXT UNIQUE NOT NULL",title:"TEXT",kind:"TEXT NOT NULL",transport:"TEXT NOT NULL",url:"TEXT",command:"TEXT",args:"TEXT",env:"TEXT",headers:"TEXT",oauth:"INTEGER DEFAULT 0",oauthTokens:"TEXT",enabled:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_inst_slug ON mcpInstances(slug)","CREATE INDEX IF NOT EXISTS idx_mcp_inst_enabled ON mcpInstances(enabled)"]},mcpGatewayKeys:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT",key:"TEXT UNIQUE NOT NULL",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_gwkey ON mcpGatewayKeys(key)"]},mcpKeyGrants:{columns:{keyId:"TEXT NOT NULL",instanceId:"TEXT NOT NULL",toolAllowlist:"TEXT"},primaryKey:"PRIMARY KEY (keyId, instanceId)",indexes:["CREATE INDEX IF NOT EXISTS idx_mcp_grant_key ON mcpKeyGrants(keyId)"]},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)"]},errorLogs:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",endpoint:"TEXT",provider:"TEXT",model:"TEXT",connectionId:"TEXT",comboName:"TEXT",statusCode:"TEXT",errorMessage:"TEXT",request:"TEXT",providerRequest:"TEXT",providerResponse:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_el_ts ON errorLogs(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_el_provider ON errorLogs(provider)","CREATE INDEX IF NOT EXISTS idx_el_model ON errorLogs(model)","CREATE INDEX IF NOT EXISTS idx_el_conn ON errorLogs(connectionId)","CREATE INDEX IF NOT EXISTS idx_el_combo ON errorLogs(comboName)"]},tokenSaverDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},convoyRules:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT NOT NULL",enabled:"INTEGER DEFAULT 1",priority:"INTEGER DEFAULT 0",matchType:"TEXT NOT NULL DEFAULT 'literal'",action:"TEXT NOT NULL DEFAULT 'replace'",pattern:"TEXT NOT NULL",replacement:"TEXT DEFAULT ''",caseSensitive:"INTEGER DEFAULT 1",providerIds:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_cr_enabled ON convoyRules(enabled)","CREATE INDEX IF NOT EXISTS idx_cr_priority ON convoyRules(enabled, priority)"]}};function g(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=5364,exports.ids=[5364],exports.modules={85364:(a,b,c)=>{c.d(b,{aggregateTools:()=>f,dispatchToolCall:()=>g});var d=c(55209),e=c(15059);async function f(a,b=[]){let c=[],g=[],h=await Promise.allSettled(a.map(async a=>({slug:a.slug,tools:await (0,d.$V)(a).listTools(a)})));for(let b=0;b<h.length;b++){let d=h[b];if(!d)continue;let f=a[b]?.slug||"?";if("fulfilled"===d.status)for(let a of Array.isArray(d.value.tools)?d.value.tools:[]){if(!(0,e.u4)(a)||!a.name)continue;let b=a.name;"string"==typeof b&&c.push({name:`${f}__${b}`,description:"string"==typeof a.description?a.description:"",inputSchema:a.inputSchema||{type:"object",properties:{}},_instance:f})}else{let a=d.reason,b=(0,e.u4)(a)&&"string"==typeof a.message?a.message:String(a);g.push({slug:f,message:b}),console.warn(`[mcp-gw] listTools failed for ${f}: ${b}`)}}return{tools:function(a,b){if(!Array.isArray(a)||!Array.isArray(b)||0===b.length)return[];let c=new Map;for(let a of b)a.slug?c.set(a.slug,a):a.instanceId&&c.set(a.instanceId,a);return a.filter(a=>{let b=a.name.indexOf("__");if(b<=0)return!1;let d=a.name.slice(0,b),e=a.name.slice(b+2),f=c.get(d);return!!f&&(!f.toolAllowlist||f.toolAllowlist.includes(e))})}(c,b),errors:g}}async function g(a,b,c,e){let f,g=(f=c.indexOf("__"))<=0?null:{slug:c.slice(0,f),bareName:c.slice(f+2)};if(!g){let a=Error(`unknown tool: ${c} (missing __ separator)`);throw a.code=-32602,a}let{slug:h,bareName:i}=g,j=a.find(a=>a.slug===h);if(!j){let a=Error(`unknown tool: ${c} (no instance with slug "${h}")`);throw a.code=-32602,a}if(b&&b.length>0&&!function(a,b,c){if(!Array.isArray(c)||0===c.length)return!1;let d=c.find(a=>a.slug===b||a.instanceId===b);return!!d&&(!d.toolAllowlist||d.toolAllowlist.includes(a))}(i,h,b)){let a=Error(`not authorized for tool: ${i}`);throw a.code=-32602,a}let k=await (0,d.$V)(j).callTool(j,i,e);return{instance:j,result:k}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5681,exports.ids=[5681],exports.modules={8382:(a,b,c)=>{c.d(b,{d5:()=>d,nh:()=>e});let d="-review";function e(a){if(!a||"string"!=typeof a)return!1;let b=a.replace(/\([^()]+\)\s*$/,"").trim(),c=b.includes("/")?b.split("/").pop():b;return/^muse[-_]?spark(?:$|[-_:.\s])/i.test(c)}},15210:(a,b,c)=>{c.d(b,{g:()=>A,s:()=>B});var d=c(23433),e=c(89718),f=c(29273),g=c(40615),h=c(38775),i=c(89865),j=c(60290),k=c(85640),l=c(39141);let m={queued:"pending",running:"processing",succeeded:"done",failed:"failed",cancelled:"cancelled"};function n(a){return{error:(0,i.A1)(j.gx.BAD_REQUEST,a)}}let o=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),p=new Set(["generations","edits","extensions"]);function q(a,b=null){let c=l.B$[a]?.videoConfig;if(c)return c;let d=b?.providerSpecificData?.baseUrl;return d?{baseUrl:d}:null}function r(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function s({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:g,signal:h,timeoutMs:l=o,log:t,onCredentialsRefreshed:u}){let v,w,x=q(a,g);if(!x)return(0,i.A1)(j.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!p.has(b))return(0,i.A1)(j.gx.BAD_REQUEST,`Unknown video action: ${b}`);let y=function(a,b){var c,d;let e;if("minimax-v2"===a.format)return function(a,{action:b,requestId:c,rawBody:d,contentType:e}){let f;if(c)return{method:"GET",url:`${a.queryUrl.replace(/\/$/,"")}/${encodeURIComponent(c)}`,body:void 0,contentType:null};if("generations"!==b)return n("MiniMax video generation supports the generations action only");if(!e?.includes("application/json"))return n("MiniMax video generation requires an application/json request body");try{f=JSON.parse(String(d||""))}catch{return n("Invalid JSON body")}let g="string"==typeof f.prompt?f.prompt.trim():"";if(!g)return n("MiniMax video generation requires a prompt");if(g.length>a.maxPromptCharacters)return n(`MiniMax video generation prompts must not exceed ${a.maxPromptCharacters} characters`);let h=f.model||a.defaultModel;if(!a.models.includes(h))return n(`Unsupported MiniMax video model: ${h}`);let i=f.resolution;if(!a.resolutions.includes(i))return n(`MiniMax video resolution must be one of: ${a.resolutions.join(", ")}`);let j=f.duration;if(!Number.isInteger(j)||j<a.duration.min||j>a.duration.max)return n(`MiniMax video duration must be an integer from ${a.duration.min} to ${a.duration.max} seconds`);let k=f.ratio||f.aspect_ratio;if(!a.textToVideoRatios.includes(k))return n(`MiniMax text-to-video ratio must be one of: ${a.textToVideoRatios.join(", ")}`);let l={model:h,content:[{type:"text",text:g}],resolution:i,duration:j,ratio:k};return"string"==typeof f.callback_url&&f.callback_url&&(l.callback_url=f.callback_url),a.supportsAigcWatermark&&"boolean"==typeof f.aigc_watermark&&(l.aigc_watermark=f.aigc_watermark),{method:"POST",url:a.createUrl,body:JSON.stringify(l),contentType:"application/json"}}(a,b);let f=b.requestId?"GET":"POST";return{method:f,url:(c=b.action,d=b.requestId,e=a.baseUrl.replace(/\/$/,""),d?`${e}/${encodeURIComponent(d)}`:`${e}/${c}`),body:"POST"===f?b.rawBody:void 0,contentType:"POST"===f?b.contentType:null}}(x,{action:b,requestId:c,rawBody:d,contentType:e});if(y.error)return y.error;let{method:z,url:A}=y,B=(w="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(l):null,h&&w&&"function"==typeof AbortSignal.any?AbortSignal.any([h,w]):h||w||void 0),C=a=>fetch(A,{method:z,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:a,contentType:y.contentType,idempotencyKey:"POST"===z?f:null}),body:y.body,signal:B});try{v=await C(g?.accessToken||g?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,i.A1)(j.gx.REQUEST_TIMEOUT,`[${a}] video ${z} aborted: ${b.message}`);return(0,i.A1)(j.gx.BAD_GATEWAY,r(`[${a}] video upstream fetch failed: ${b.message}`,g))}if((v.status===j.gx.UNAUTHORIZED||v.status===j.gx.FORBIDDEN)&&g?.refreshToken){let b=null;try{b=await (0,k.$B)(a,g,t)}catch(b){t?.warn?.("TOKEN",`${a} | video refresh error: ${r(b.message,g)}`)}if(b?.accessToken){t?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${z}`),Object.assign(g,b),u&&await u(b);try{await v.body?.cancel?.()}catch{}try{v=await C(g.accessToken||g.apiKey)}catch(b){return(0,i.A1)(j.gx.BAD_GATEWAY,r(`[${a}] video retry after refresh failed: ${b.message}`,g))}}else t?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let D=await v.text().catch(()=>"");if(!v.ok){let b=r(D||`HTTP ${v.status}`,g);return(0,i.A1)(v.status,`[${a}] ${b.slice(0,2e3)}`)}let E=D;if("minimax-v2"===x.format){let a=function(a,b=null){let c;try{c=JSON.parse(a)}catch{return{error:(0,i.A1)(j.gx.BAD_GATEWAY,"MiniMax returned an invalid video response")}}if(!b)return c?.task_id?{bodyText:JSON.stringify({request_id:c.task_id})}:{error:(0,i.A1)(j.gx.BAD_GATEWAY,"MiniMax did not return a video task id")};let d=c?.task;if(!d?.status)return{error:(0,i.A1)(j.gx.BAD_GATEWAY,"MiniMax did not return a video task status")};let e={request_id:d.id||b,status:m[d.status]||d.status};return d.content?.url&&(e.video={url:d.content.url,...Number.isInteger(d.duration)?{duration:d.duration}:{},...d.resolution?{resolution:d.resolution}:{},...d.ratio?{aspect_ratio:d.ratio}:{}}),d.error&&(e.error=d.error),d.usage&&(e.usage=d.usage),{bodyText:JSON.stringify(e)}}(D,c);if(a.error)return a.error;E=a.bodyText}return{success:!0,response:new Response(E,{status:v.status,headers:{"Content-Type":v.headers.get("content-type")||"application/json","Access-Control-Allow-Origin":"*"}})}}var t=c(67828),u=c(7803);let v=new Set([j.gx.UNAUTHORIZED,j.gx.FORBIDDEN,j.gx.RATE_LIMITED]);async function w(a){if((await (0,e.mt)()).requireApiKey){let{apiKey:b,valid:c}=await (0,d.$A)(a);if(!b)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!c)return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}return null}async function x(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function y(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,h.mA)(b);return c.provider?(0,g.AR)(c.provider)?{provider:c.provider,model:c.model}:q(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,i.yj)(j.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,i.yj)(j.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function z(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-9router-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function A(a,b){let c=await w(a);if(c)return c;let e=await x(a);if(e.error)return e.error;let g=await y(e.parsed);if(g.error)return g.error;let{provider:h,model:k}=g,l=await (0,f.K)(a,{model:k?`${h}/${k}`:"__implicit_video_model__"});if(l.error)return l.error;let m=e.raw;e.parsed&&k&&e.parsed.model!==k&&(m=JSON.stringify({...e.parsed,model:k}));let n=a.headers.get("x-connection-id")||null,o=a.headers.get("idempotency-key")||null,p=new Set,q=null,A=null;for(;;){let c=await (0,d.c1)(h,p,k,{preferredConnectionId:n});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=q||c.lastError||"Unavailable",b=A||Number(c.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(b,`[${h}/${k||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===p.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${h}`);return(0,i.yj)(A||j.gx.SERVICE_UNAVAILABLE,q||"All accounts unavailable")}let f=await (0,t.checkAndRefreshToken)(h,c),g=await s({provider:h,action:b,rawBody:m,contentType:e.contentType||null,idempotencyKey:o,credentials:f,signal:a.signal,log:u,onCredentialsRefreshed:async a=>{await (0,t.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(g.success)return await (0,d.Pt)(c.connectionId,c,k),u.info("VIDEO",`${h.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),z(g.response,c.connectionId);let{shouldFallback:l}=await (0,d.vk)(c.connectionId,g.status,r(g.error,f),h,k);if(l&&v.has(g.status)){p.add(c.connectionId),q=g.error,A=g.status;continue}return g.response}}async function B(a,b){let c=await w(a);if(c)return c;if(!b)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing video request id");let f=a.headers.get("x-connection-id")||null,h="xai";if(f){let a=await (0,e.Mc)(f);a?.provider&&(q(a.provider)||(0,g.AR)(a.provider))&&(h=a.provider)}let k=await (0,d.c1)(h,null,null,{preferredConnectionId:f});if(!k||k.allRateLimited)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${h}`);let l=await (0,t.checkAndRefreshToken)(h,k),m=await s({provider:h,requestId:b,credentials:l,signal:a.signal,log:u,onCredentialsRefreshed:async a=>{await (0,t.vN)(k.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return m.success?(await (0,d.Pt)(k.connectionId,k,null),z(m.response,k.connectionId)):(await (0,d.vk)(k.connectionId,m.status,r(m.error,l),h,null),m.response)}},19956:(a,b,c)=>{c.d(b,{h:()=>d,t:()=>e});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",VERTEX:"vertex",CODEX:"codex",ANTIGRAVITY:"antigravity",KIRO:"kiro",CURSOR:"cursor",OLLAMA:"ollama",COMMANDCODE:"commandcode"};function e(a,b){return a.includes("/v1/responses")?d.OPENAI_RESPONSES:a.includes("/v1/messages")?d.CLAUDE:a.includes("/v1/chat/completions")&&Array.isArray(b?.input)?d.OPENAI:null}},29273:(a,b,c)=>{c.d(b,{K:()=>h});var d=c(89718),e=c(23433),f=c(89865),g=c(60290);async function h(a,{model:b,body:c,reserveTokens:i=!1}={}){var j;let k,l=await (0,d.mt)(),m=(0,e.Tr)(a);if(!m)return l.requireApiKey?{error:(0,f.yj)(g.gx.UNAUTHORIZED,"Missing API key")}:{apiKey:null,body:c};let n=await (0,d.y7)(m),o=n?.expiresAt&&new Date(n.expiresAt).getTime()<=Date.now();if(!n?.isActive||o)return{error:(0,f.yj)(g.gx.UNAUTHORIZED,"Invalid API key")};if(Array.isArray(n.allowedModels)&&n.allowedModels.length&&b){let a="string"==typeof c?.model?c.model:null;if(!n.allowedModels.includes(b)&&!n.allowedModels.includes(a))return{error:(0,f.yj)(g.gx.FORBIDDEN,"This API key is not allowed to use the selected model")}}if(!i||null==n.tokenLimit)return{apiKey:m,key:n,body:c};let p=n.tokenLimit-n.tokensUsed-n.tokensReserved,q=Math.max(1,Math.ceil(JSON.stringify(c?.messages||c?.input||c?.prompt||c?.query||"").length/4));if(p<=q)return{error:(0,f.yj)(g.gx.FORBIDDEN,"API key token quota exceeded")};let r=(j=Math.max(0,p-q),null==(k=c?.max_completion_tokens??c?.max_tokens??c?.max_output_tokens)?j:Math.min(j,Math.max(1,Number(k)||1))),s=await (0,d.mV)(m,q+r);return s.ok?{apiKey:m,key:n,body:c?.max_completion_tokens!=null?{...c,max_completion_tokens:r}:c?.max_output_tokens!=null?{...c,max_output_tokens:r}:{...c,max_tokens:r},reservation:s.reserved}:{error:(0,f.yj)(g.gx.FORBIDDEN,s.error)}}},29485:(a,b,c)=>{c.d(b,{KC:()=>u,OA:()=>q,PROVIDER_MODELS:()=>f.vq,SM:()=>j,Xg:()=>t,cY:()=>v,ez:()=>p,fZ:()=>k,kt:()=>r,ux:()=>o});var d=c(4630),e=c(32892),f=c(39141),g=c(6595),h=c(8382),i=c(19956);function j(a){return f.vq[a]||[]}function k(a){let b=f.vq[a];return b?.[0]?.id||null}let l=new Set(["kr","kiro"]),m=new Map;for(let[a,b]of Object.entries(f.vq)){if(!Array.isArray(b))continue;let c=new Map,d=new Map;for(let e of b)if(e?.id!=null&&(c.set(e.id,e),l.has(a))){let a=(0,g.Kq)(e.id);a!==e.id&&d.set(a,e)}m.set(a,{exact:c,normalized:d})}function n(a,b,c){if(!a)return;let d="string"==typeof b?b.replace(/\([^()]+\)\s*$/,"").trim():b,e=m.get(c);if(e){let a=e.exact.get(d);return a||(e.normalized.size?e.normalized.get(d):void 0)}let f=a.find(a=>a.id===d);if(f)return f;if(!l.has(c))return;let h=(0,g.Kq)(d);if(h!==d)return a.find(a=>a.id===h)}function o(a,b){if((!a||"oc"===a||"opencode"===a)&&(0,h.nh)(b))return i.h.OPENAI_RESPONSES;let c=t[a]||a,d=f.vq[c]||f.vq[a];return d?(0,g.gr)(n(d,b,c)):null}function p(a,b){let c=t[a]||a,d=f.vq[c]||f.vq[a];return d?(0,g.ec)(n(d,b,c)):null}function q(a,b){let c=t[a]||a,d=f.vq[c]||f.vq[a];if(!d)return null;let e=n(d,b,c);return e?.kind||e?.type||null}function r(a,b){let c=t[a]||a,d="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,e=d?d[0]:"",g=e?b.slice(0,d.index).trim():b,i=n(f.vq[c]||f.vq[a],g,c),j=i?.upstreamModelId||i?.id;if(j){let a=j.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?j.slice(0,a.index).trim():j)+(e||b)}return"cx"===c&&"string"==typeof g&&g.endsWith(h.d5)?g.slice(0,-h.d5.length)+e:g+e}let s=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),t=Object.fromEntries(Object.keys(d.xq).map(a=>[a,s[a]||a]));function u(a){let b=t[a]||a;return f.vq[b]||[]}function v(a,b){return(0,g.g5)(n(f.vq[a],b,a))}},38775:(a,b,c)=>{c.d(b,{d_:()=>j,mA:()=>h,pe:()=>k});var d=c(89718),e=c(66451),f=c(99471);c(32892);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"};async function h(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model};let f=(await (0,d.Fh)({type:"custom-video"})).find(a=>a.prefix===c.providerAlias);return f?{provider:f.id,model:c.model}:{provider:c.provider,model:c.model}}if(await (0,d.Dj)(c.model))return{provider:null,model:c.model};let f=await i(c.model);return f||(0,e.js)(a,d.OM)}async function i(a){try{let b=(await (0,d.uv)()).find(b=>b&&b.id===a&&("llm"===b.type||!b.type));if(b&&b.providerAlias)return{provider:(0,e.g2)(b.providerAlias),model:b.id}}catch{}try{let b=await (0,d.OM)(),c=(0,e.sc)(a,b);if(c)return c}catch{}let b=(0,e.PN)(a);if(b)return{provider:b,model:a};try{let b=await (0,f.w)(a);if(b)return b}catch{}return null}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}async function k(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b?{models:b.models||[],members:b.members||(b.models||[]).map(a=>({id:a,weight:1})),policy:b.policy||null,accountPolicy:b.accountPolicy||null,fusion:b.fusion||null,config:b.config||null,name:b.name,kind:b.kind}:null}},66451:(a,b,c)=>{c.d(b,{PN:()=>j,Xh:()=>k,g2:()=>i,js:()=>m,sc:()=>l});var d=c(32892),e=c(29485);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.default)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i(a){return f[a]||a}function j(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return i(b[0]);let c=b.find(b=>a.startsWith(b));return c?i(c):null}function k(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:i(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function l(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:i(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:i(c.provider),model:c.model}:null}async function m(a,b){let c=k(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=l(c.model,d)||l(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":n.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let n=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},68001:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(38071);let e=["big-pickle"],f=new Set(["deepseek-v4-flash-free"]),g={"openrouter-free":a=>a.filter(a=>a.pricing?.prompt==="0"&&a.pricing?.completion==="0"&&a.context_length>=2e5).map(a=>({id:a.id,name:a.name,contextLength:a.context_length})).sort((a,b)=>b.contextLength-a.contextLength),"opencode-free":a=>a.filter(a=>(a.id?.endsWith("-free")||e.includes(a.id))&&!f.has(a.id)).map(a=>({id:a.id,name:a.id})),"mimo-free":a=>(Array.isArray(a)?a:[]).filter(a=>a.id?.startsWith("mimo")||a.name?.toLowerCase().includes("mimo")).map(a=>({id:a.id,name:a.name||a.id})),"nous-free":d.pD}},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,V1:()=>C,WN:()=>t,Ww:()=>D,YT:()=>n,ZL:()=>m,aV:()=>u,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,qp:()=>B,w1:()=>x});var d=c(21820),e=c(92675),f=c(39141);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder};({...f.sr["qoderwork-cn"]});let m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B={...f.sr["grok-cli"]};({...f.sr["codebuddy-intl"]});let C={...f.sr["frontier-for-all"]},D=3e5},99471:(a,b,c)=>{c.d(b,{Y:()=>k,w:()=>j});var d=c(68001);let e=null,f=0,g=null;async function h(){let a=new AbortController,b=setTimeout(()=>a.abort(),5e3);try{let b=await fetch("https://opencode.ai/zen/v1/models",{signal:a.signal});if(!b.ok)return e||[];let c=await b.json(),g=c.data??c.models??c,h=d.S["opencode-free"](Array.isArray(g)?g:[]);return e=h,f=Date.now(),h}catch{return e||[]}finally{clearTimeout(b)}}async function i(){if(e&&Date.now()-f<6e5)return e;if(!g){g=h();try{return await g}finally{g=null}}return g}async function j(a){let b=(await i()).find(b=>b&&b.id===a);return b?{provider:"opencode",model:b.id}:"big-pickle"===a||String(a).endsWith("-free")?{provider:"opencode",model:a}:null}async function k(){return await i()}}};