@techysy/10router 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1006) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +13 -11
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/required-server-files.json +3 -0
  6. package/app/.next-cli-build/routes-manifest.json +18 -8
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page.js +1 -1
  77. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
  107. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  115. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  135. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  145. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -0
  175. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -0
  176. package/app/.next-cli-build/server/app/api/keys/rotate/route_client-reference-manifest.js +1 -0
  177. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +4 -4
  184. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  220. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -0
  240. package/app/.next-cli-build/server/app/api/{providers/[id]/json-models → oauth/xiaomi-mimo/api-key}/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -0
  242. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +4 -0
  243. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
  244. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
  245. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  278. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  280. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  284. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  286. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  288. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  290. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  292. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  294. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  296. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  298. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  300. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  318. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  360. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  374. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  414. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  416. package/app/.next-cli-build/server/app/callback.html +1 -1
  417. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  418. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  419. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  421. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  423. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -6
  424. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  425. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  427. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  428. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
  429. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  430. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  431. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  433. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +6 -6
  434. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  435. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  438. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -6
  439. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  440. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  443. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +6 -6
  444. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  445. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  447. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  448. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -6
  449. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  450. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  452. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  453. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +6 -6
  454. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  455. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  457. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  458. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +6 -6
  459. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  460. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  462. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  463. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +6 -6
  464. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  465. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  467. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  468. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +6 -6
  469. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  470. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  472. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  473. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +6 -6
  474. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  475. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  476. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  477. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +7 -7
  479. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  480. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  482. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  486. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  487. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  489. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  491. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +6 -6
  492. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  493. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  496. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  497. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  498. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  499. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  501. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +6 -6
  502. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  503. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  505. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  506. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
  507. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  508. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  510. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  511. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -6
  512. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  513. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  514. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  515. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  516. package/app/.next-cli-build/server/app/index.html +1 -1
  517. package/app/.next-cli-build/server/app/index.rsc +4 -4
  518. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  519. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  520. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  521. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  522. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  523. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  524. package/app/.next-cli-build/server/app/landing.html +1 -1
  525. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  526. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  527. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  528. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  529. package/app/.next-cli-build/server/app/login/page.js +1 -1
  530. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  531. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  532. package/app/.next-cli-build/server/app/login.html +1 -1
  533. package/app/.next-cli-build/server/app/login.rsc +5 -5
  534. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  535. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  537. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  538. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/app/page.js +1 -1
  540. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  541. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  542. package/app/.next-cli-build/server/app-paths-manifest.json +13 -11
  543. package/app/.next-cli-build/server/chunks/1260.js +1 -1
  544. package/app/.next-cli-build/server/chunks/1377.js +1 -1
  545. package/app/.next-cli-build/server/chunks/1636.js +1 -1
  546. package/app/.next-cli-build/server/chunks/1937.js +1 -1
  547. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  548. package/app/.next-cli-build/server/chunks/2132.js +1 -0
  549. package/app/.next-cli-build/server/chunks/2179.js +1 -1
  550. package/app/.next-cli-build/server/chunks/2391.js +1 -1
  551. package/app/.next-cli-build/server/chunks/241.js +1 -1
  552. package/app/.next-cli-build/server/chunks/2732.js +1 -1
  553. package/app/.next-cli-build/server/chunks/2765.js +1 -0
  554. package/app/.next-cli-build/server/chunks/295.js +1 -1
  555. package/app/.next-cli-build/server/chunks/318.js +13 -13
  556. package/app/.next-cli-build/server/chunks/3212.js +1 -1
  557. package/app/.next-cli-build/server/chunks/3535.js +1 -1
  558. package/app/.next-cli-build/server/chunks/3662.js +1 -0
  559. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  560. package/app/.next-cli-build/server/chunks/3962.js +1 -1
  561. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  562. package/app/.next-cli-build/server/chunks/4049.js +1 -0
  563. package/app/.next-cli-build/server/chunks/412.js +1 -1
  564. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  565. package/app/.next-cli-build/server/chunks/4152.js +1 -0
  566. package/app/.next-cli-build/server/chunks/4293.js +1 -0
  567. package/app/.next-cli-build/server/chunks/4665.js +1 -1
  568. package/app/.next-cli-build/server/chunks/4755.js +1 -0
  569. package/app/.next-cli-build/server/chunks/4985.js +1 -0
  570. package/app/.next-cli-build/server/chunks/5182.js +1 -1
  571. package/app/.next-cli-build/server/chunks/525.js +1 -0
  572. package/app/.next-cli-build/server/chunks/5612.js +1 -1
  573. package/app/.next-cli-build/server/chunks/5615.js +3 -3
  574. package/app/.next-cli-build/server/chunks/5781.js +2 -2
  575. package/app/.next-cli-build/server/chunks/595.js +1 -1
  576. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  577. package/app/.next-cli-build/server/chunks/615.js +1 -1
  578. package/app/.next-cli-build/server/chunks/6306.js +1 -1
  579. package/app/.next-cli-build/server/chunks/6326.js +1 -1
  580. package/app/.next-cli-build/server/chunks/6457.js +1 -1
  581. package/app/.next-cli-build/server/chunks/653.js +1 -1
  582. package/app/.next-cli-build/server/chunks/6763.js +1 -1
  583. package/app/.next-cli-build/server/chunks/6844.js +1 -1
  584. package/app/.next-cli-build/server/chunks/6871.js +1 -0
  585. package/app/.next-cli-build/server/chunks/6922.js +1 -0
  586. package/app/.next-cli-build/server/chunks/7211.js +1 -1
  587. package/app/.next-cli-build/server/chunks/7239.js +2 -2
  588. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  589. package/app/.next-cli-build/server/chunks/7322.js +2 -2
  590. package/app/.next-cli-build/server/chunks/7774.js +3 -3
  591. package/app/.next-cli-build/server/chunks/7805.js +24 -0
  592. package/app/.next-cli-build/server/chunks/7828.js +1 -1
  593. package/app/.next-cli-build/server/chunks/{8038.js → 7913.js} +8 -8
  594. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  595. package/app/.next-cli-build/server/chunks/8363.js +1 -0
  596. package/app/.next-cli-build/server/chunks/8444.js +1 -1
  597. package/app/.next-cli-build/server/chunks/8499.js +8 -8
  598. package/app/.next-cli-build/server/chunks/8546.js +1 -0
  599. package/app/.next-cli-build/server/chunks/869.js +1 -1
  600. package/app/.next-cli-build/server/chunks/8838.js +1 -1
  601. package/app/.next-cli-build/server/chunks/8895.js +10 -8
  602. package/app/.next-cli-build/server/chunks/8910.js +1 -1
  603. package/app/.next-cli-build/server/chunks/8920.js +1 -1
  604. package/app/.next-cli-build/server/chunks/8990.js +1 -0
  605. package/app/.next-cli-build/server/chunks/9609.js +1 -1
  606. package/app/.next-cli-build/server/chunks/9896.js +1 -0
  607. package/app/.next-cli-build/server/instrumentation.js +1 -1
  608. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  609. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  610. package/app/.next-cli-build/server/middleware.js +8 -8
  611. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/pages/404.html +1 -1
  613. package/app/.next-cli-build/server/pages/500.html +1 -1
  614. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  615. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  616. package/app/.next-cli-build/static/chunks/1243-a9f0940294c15c24.js +3 -0
  617. package/app/.next-cli-build/static/chunks/1321-0167273f2d678ede.js +1 -0
  618. package/app/.next-cli-build/static/chunks/{5116-4618105f24431c4a.js → 3346-0ae97d50d86ac1f7.js} +10 -10
  619. package/app/.next-cli-build/static/chunks/5497-a55c9d3d9f5b5cbf.js +7 -0
  620. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-272386fb26fd75c3.js +1 -0
  621. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-f098adefd36910e1.js +1 -0
  622. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a2a6c56b7776af70.js +1 -0
  623. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-d4b67cdea67b89d0.js +1 -0
  624. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-cd93d4f0b910293c.js +1 -0
  625. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-60c620ec082ed541.js +14 -0
  626. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-c1757ed34595dcdb.js +1 -0
  627. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c7ef8300ebeb4889.js +1 -0
  628. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-a52d19cb5aacd04f.js → layout-1cffa0a228a79ad6.js} +1 -1
  629. package/app/.next-cli-build/static/chunks/app/_global-error/page-f5ad4d359abeda22.js +1 -0
  630. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-f5ad4d359abeda22.js +1 -0
  631. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-f5ad4d359abeda22.js +1 -0
  632. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-f5ad4d359abeda22.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-f5ad4d359abeda22.js +1 -0
  634. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-f5ad4d359abeda22.js +1 -0
  635. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-f5ad4d359abeda22.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-f5ad4d359abeda22.js +1 -0
  637. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-f5ad4d359abeda22.js +1 -0
  638. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-f5ad4d359abeda22.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-f5ad4d359abeda22.js +1 -0
  640. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-f5ad4d359abeda22.js +1 -0
  641. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-f5ad4d359abeda22.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f5ad4d359abeda22.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-f5ad4d359abeda22.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-f5ad4d359abeda22.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-f5ad4d359abeda22.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-f5ad4d359abeda22.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-f5ad4d359abeda22.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-f5ad4d359abeda22.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-f5ad4d359abeda22.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-f5ad4d359abeda22.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-f5ad4d359abeda22.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-f5ad4d359abeda22.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-f5ad4d359abeda22.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-f5ad4d359abeda22.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-f5ad4d359abeda22.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-f5ad4d359abeda22.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-f5ad4d359abeda22.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-f5ad4d359abeda22.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-f5ad4d359abeda22.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-f5ad4d359abeda22.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/combos/route-f5ad4d359abeda22.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-f5ad4d359abeda22.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-f5ad4d359abeda22.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-f5ad4d359abeda22.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-f5ad4d359abeda22.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-f5ad4d359abeda22.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-f5ad4d359abeda22.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/health/route-f5ad4d359abeda22.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/init/route-f5ad4d359abeda22.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-f5ad4d359abeda22.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-f5ad4d359abeda22.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/keys/route-f5ad4d359abeda22.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/locale/route-f5ad4d359abeda22.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-f5ad4d359abeda22.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-f5ad4d359abeda22.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-f5ad4d359abeda22.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f5ad4d359abeda22.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-f5ad4d359abeda22.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-f5ad4d359abeda22.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-f5ad4d359abeda22.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-f5ad4d359abeda22.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-f5ad4d359abeda22.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-f5ad4d359abeda22.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-f5ad4d359abeda22.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/models/route-f5ad4d359abeda22.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/models/test/route-f5ad4d359abeda22.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-f5ad4d359abeda22.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-f5ad4d359abeda22.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-f5ad4d359abeda22.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-f5ad4d359abeda22.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-f5ad4d359abeda22.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-f5ad4d359abeda22.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-f5ad4d359abeda22.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-f5ad4d359abeda22.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-f5ad4d359abeda22.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-f5ad4d359abeda22.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-f5ad4d359abeda22.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-f5ad4d359abeda22.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-f5ad4d359abeda22.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-f5ad4d359abeda22.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-f5ad4d359abeda22.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-f5ad4d359abeda22.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-f5ad4d359abeda22.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-f5ad4d359abeda22.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/pricing/route-f5ad4d359abeda22.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-f5ad4d359abeda22.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-f5ad4d359abeda22.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-f5ad4d359abeda22.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-f5ad4d359abeda22.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-f5ad4d359abeda22.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-f5ad4d359abeda22.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-f5ad4d359abeda22.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-f5ad4d359abeda22.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-f5ad4d359abeda22.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/providers/route-f5ad4d359abeda22.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-f5ad4d359abeda22.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-f5ad4d359abeda22.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-f5ad4d359abeda22.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-f5ad4d359abeda22.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-f5ad4d359abeda22.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-f5ad4d359abeda22.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-f5ad4d359abeda22.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-f5ad4d359abeda22.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-f5ad4d359abeda22.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-f5ad4d359abeda22.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-f5ad4d359abeda22.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-f5ad4d359abeda22.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-f5ad4d359abeda22.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-f5ad4d359abeda22.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-f5ad4d359abeda22.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-f5ad4d359abeda22.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-f5ad4d359abeda22.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-f5ad4d359abeda22.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-f5ad4d359abeda22.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-f5ad4d359abeda22.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-f5ad4d359abeda22.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/settings/route-f5ad4d359abeda22.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-f5ad4d359abeda22.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/tags/route-f5ad4d359abeda22.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-f5ad4d359abeda22.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-f5ad4d359abeda22.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-f5ad4d359abeda22.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-f5ad4d359abeda22.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-f5ad4d359abeda22.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-f5ad4d359abeda22.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-f5ad4d359abeda22.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-f5ad4d359abeda22.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-f5ad4d359abeda22.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-f5ad4d359abeda22.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-f5ad4d359abeda22.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-f5ad4d359abeda22.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-f5ad4d359abeda22.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-f5ad4d359abeda22.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-f5ad4d359abeda22.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-f5ad4d359abeda22.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-f5ad4d359abeda22.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-f5ad4d359abeda22.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-f5ad4d359abeda22.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-f5ad4d359abeda22.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-f5ad4d359abeda22.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-f5ad4d359abeda22.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-f5ad4d359abeda22.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-f5ad4d359abeda22.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-f5ad4d359abeda22.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-f5ad4d359abeda22.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-f5ad4d359abeda22.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-f5ad4d359abeda22.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-f5ad4d359abeda22.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-f5ad4d359abeda22.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-f5ad4d359abeda22.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-f5ad4d359abeda22.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-f5ad4d359abeda22.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-f5ad4d359abeda22.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-f5ad4d359abeda22.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-f5ad4d359abeda22.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-f5ad4d359abeda22.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/v1/route-f5ad4d359abeda22.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-f5ad4d359abeda22.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-f5ad4d359abeda22.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-f5ad4d359abeda22.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-f5ad4d359abeda22.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-f5ad4d359abeda22.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-f5ad4d359abeda22.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-f5ad4d359abeda22.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-f5ad4d359abeda22.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/version/route-f5ad4d359abeda22.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-f5ad4d359abeda22.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/version/update/route-f5ad4d359abeda22.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-f5ad4d359abeda22.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/page-f5ad4d359abeda22.js +1 -0
  791. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-f5ad4d359abeda22.js +1 -0
  792. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-f5ad4d359abeda22.js +1 -0
  793. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-f5ad4d359abeda22.js +1 -0
  794. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-f5ad4d359abeda22.js +1 -0
  795. package/app/.next-cli-build/static/rBJbR_XYSlh3OgKbcSSXs/_buildManifest.js +1 -0
  796. package/app/package.json +5 -3
  797. package/app/public/i18n/changelog/en.md +179 -114
  798. package/app/public/i18n/changelog/zh-CN.md +177 -112
  799. package/app/public/i18n/changelog/zh-TW.md +179 -114
  800. package/app/public/i18n/literals/zh-CN.json +1620 -1519
  801. package/app/public/i18n/literals/zh-TW.json +414 -307
  802. package/app/public/providers/amd.png +0 -0
  803. package/app/public/providers/xiaomi-mimo.png +0 -0
  804. package/app/server.js +1 -1
  805. package/app/src/lib/oauth/providers/xiaomi-mimo.js +169 -0
  806. package/app/src/mitm/server.js +23 -23
  807. package/app/src/shared/utils/apiKey.js +82 -24
  808. package/app/src/sse/services/backgroundTokenRefresh.js +35 -32
  809. package/package.json +2 -2
  810. package/src/cli/i18n/index.js +29 -5
  811. package/src/cli/tray/icon-mono-black.ico +0 -0
  812. package/src/cli/tray/icon-mono-white.ico +0 -0
  813. package/src/cli/tray/icon-template.png +0 -0
  814. package/src/cli/tray/tray.js +13 -8
  815. package/src/cli/tray/trayWin.js +39 -2
  816. package/app/.next-cli-build/server/app/api/providers/[id]/json-models/route.js +0 -1
  817. package/app/.next-cli-build/server/app/api/providers/[id]/json-models/route_client-reference-manifest.js +0 -1
  818. package/app/.next-cli-build/server/chunks/1129.js +0 -4
  819. package/app/.next-cli-build/server/chunks/1332.js +0 -1
  820. package/app/.next-cli-build/server/chunks/1564.js +0 -1
  821. package/app/.next-cli-build/server/chunks/3350.js +0 -1
  822. package/app/.next-cli-build/server/chunks/4452.js +0 -1
  823. package/app/.next-cli-build/server/chunks/6212.js +0 -1
  824. package/app/.next-cli-build/server/chunks/7598.js +0 -1
  825. package/app/.next-cli-build/server/chunks/7914.js +0 -1
  826. package/app/.next-cli-build/server/chunks/8162.js +0 -6
  827. package/app/.next-cli-build/server/chunks/9140.js +0 -13
  828. package/app/.next-cli-build/server/chunks/9463.js +0 -1
  829. package/app/.next-cli-build/server/chunks/9703.js +0 -17
  830. package/app/.next-cli-build/static/chunks/1243-53ff028412802304.js +0 -3
  831. package/app/.next-cli-build/static/chunks/1321-656ff6a3f06c59ae.js +0 -1
  832. package/app/.next-cli-build/static/chunks/5497-7b21d4160c9e592e.js +0 -7
  833. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-a217fda9e3b75a4c.js +0 -1
  834. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-5db6b536a4ab4991.js +0 -1
  835. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-1049c48c632926aa.js +0 -1
  836. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-56ceed313e85c919.js +0 -1
  837. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ddb08251c0405731.js +0 -1
  838. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a2431d795923337a.js +0 -14
  839. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-595256b6306fa952.js +0 -1
  840. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-568a544f8e220d5b.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/_global-error/page-610e2a51edf6ccba.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-610e2a51edf6ccba.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-610e2a51edf6ccba.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-610e2a51edf6ccba.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-610e2a51edf6ccba.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-610e2a51edf6ccba.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-610e2a51edf6ccba.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-610e2a51edf6ccba.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-610e2a51edf6ccba.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-610e2a51edf6ccba.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-610e2a51edf6ccba.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-610e2a51edf6ccba.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-610e2a51edf6ccba.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-610e2a51edf6ccba.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-610e2a51edf6ccba.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-610e2a51edf6ccba.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-610e2a51edf6ccba.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-610e2a51edf6ccba.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-610e2a51edf6ccba.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-610e2a51edf6ccba.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-610e2a51edf6ccba.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-610e2a51edf6ccba.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-610e2a51edf6ccba.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-610e2a51edf6ccba.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-610e2a51edf6ccba.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-610e2a51edf6ccba.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-610e2a51edf6ccba.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-610e2a51edf6ccba.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-610e2a51edf6ccba.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-610e2a51edf6ccba.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-610e2a51edf6ccba.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-610e2a51edf6ccba.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/combos/route-610e2a51edf6ccba.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-610e2a51edf6ccba.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-610e2a51edf6ccba.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-610e2a51edf6ccba.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-610e2a51edf6ccba.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-610e2a51edf6ccba.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-610e2a51edf6ccba.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/health/route-610e2a51edf6ccba.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/init/route-610e2a51edf6ccba.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-610e2a51edf6ccba.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/keys/route-610e2a51edf6ccba.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/locale/route-610e2a51edf6ccba.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-610e2a51edf6ccba.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-610e2a51edf6ccba.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-610e2a51edf6ccba.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-610e2a51edf6ccba.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-610e2a51edf6ccba.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-610e2a51edf6ccba.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-610e2a51edf6ccba.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-610e2a51edf6ccba.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-610e2a51edf6ccba.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-610e2a51edf6ccba.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-610e2a51edf6ccba.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/models/route-610e2a51edf6ccba.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/models/test/route-610e2a51edf6ccba.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-610e2a51edf6ccba.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-610e2a51edf6ccba.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-610e2a51edf6ccba.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-610e2a51edf6ccba.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-610e2a51edf6ccba.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-610e2a51edf6ccba.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-610e2a51edf6ccba.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-610e2a51edf6ccba.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-610e2a51edf6ccba.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-610e2a51edf6ccba.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-610e2a51edf6ccba.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-610e2a51edf6ccba.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-610e2a51edf6ccba.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-610e2a51edf6ccba.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-610e2a51edf6ccba.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-610e2a51edf6ccba.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/pricing/route-610e2a51edf6ccba.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-610e2a51edf6ccba.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-610e2a51edf6ccba.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-610e2a51edf6ccba.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/json-models/route-610e2a51edf6ccba.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-610e2a51edf6ccba.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-610e2a51edf6ccba.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-610e2a51edf6ccba.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-610e2a51edf6ccba.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-610e2a51edf6ccba.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-610e2a51edf6ccba.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/providers/route-610e2a51edf6ccba.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-610e2a51edf6ccba.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-610e2a51edf6ccba.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-610e2a51edf6ccba.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-610e2a51edf6ccba.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-610e2a51edf6ccba.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-610e2a51edf6ccba.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-610e2a51edf6ccba.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-610e2a51edf6ccba.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-610e2a51edf6ccba.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-610e2a51edf6ccba.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-610e2a51edf6ccba.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-610e2a51edf6ccba.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-610e2a51edf6ccba.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-610e2a51edf6ccba.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-610e2a51edf6ccba.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-610e2a51edf6ccba.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-610e2a51edf6ccba.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-610e2a51edf6ccba.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-610e2a51edf6ccba.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-610e2a51edf6ccba.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-610e2a51edf6ccba.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/settings/route-610e2a51edf6ccba.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-610e2a51edf6ccba.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/tags/route-610e2a51edf6ccba.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-610e2a51edf6ccba.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-610e2a51edf6ccba.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-610e2a51edf6ccba.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-610e2a51edf6ccba.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-610e2a51edf6ccba.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-610e2a51edf6ccba.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-610e2a51edf6ccba.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-610e2a51edf6ccba.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-610e2a51edf6ccba.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-610e2a51edf6ccba.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-610e2a51edf6ccba.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-610e2a51edf6ccba.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-610e2a51edf6ccba.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-610e2a51edf6ccba.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-610e2a51edf6ccba.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-610e2a51edf6ccba.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-610e2a51edf6ccba.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-610e2a51edf6ccba.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-610e2a51edf6ccba.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-610e2a51edf6ccba.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-610e2a51edf6ccba.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-610e2a51edf6ccba.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-610e2a51edf6ccba.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-610e2a51edf6ccba.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-610e2a51edf6ccba.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-610e2a51edf6ccba.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-610e2a51edf6ccba.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-610e2a51edf6ccba.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-610e2a51edf6ccba.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-610e2a51edf6ccba.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-610e2a51edf6ccba.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-610e2a51edf6ccba.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-610e2a51edf6ccba.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-610e2a51edf6ccba.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-610e2a51edf6ccba.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-610e2a51edf6ccba.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-610e2a51edf6ccba.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/v1/route-610e2a51edf6ccba.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-610e2a51edf6ccba.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-610e2a51edf6ccba.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-610e2a51edf6ccba.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-610e2a51edf6ccba.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-610e2a51edf6ccba.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-610e2a51edf6ccba.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-610e2a51edf6ccba.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-610e2a51edf6ccba.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/version/route-610e2a51edf6ccba.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-610e2a51edf6ccba.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/version/update/route-610e2a51edf6ccba.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-610e2a51edf6ccba.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/page-610e2a51edf6ccba.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-610e2a51edf6ccba.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-610e2a51edf6ccba.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-610e2a51edf6ccba.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-610e2a51edf6ccba.js +0 -1
  1005. package/app/.next-cli-build/static/rPl9WrF0GIBOKSW3yAMMs/_buildManifest.js +0 -1
  1006. /package/app/.next-cli-build/static/{rPl9WrF0GIBOKSW3yAMMs → rBJbR_XYSlh3OgKbcSSXs}/_ssgManifest.js +0 -0
@@ -1,15 +1,72 @@
1
1
  import crypto from "crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { DATA_DIR } from "@/lib/dataDir";
5
+ import { getSettings } from "@/lib/db/index.js";
2
6
 
3
- const API_KEY_SECRET = process.env.API_KEY_SECRET || "endpoint-proxy-api-key-secret";
7
+ const LEGACY_FALLBACK_SECRET = "endpoint-proxy-api-key-secret";
8
+ let _generatedSecretCache = null;
9
+
10
+ // Opt-in experimental secret rotation (settings.apiKeyRotation, or env
11
+ // API_KEY_ROTATION=true). Default OFF: enabling regenerates the HMAC secret,
12
+ // which invalidates every existing API key's CRC — that migration must never
13
+ // happen silently. When on, same contract as JWT_SECRET (dashboardSession):
14
+ // env wins, else a random secret is auto-generated to
15
+ // $DATA_DIR/api-key-secret (mode 0600).
16
+ async function isRotationEnabled() {
17
+ if (process.env.API_KEY_SECRET) return false; // explicit env secret always wins
18
+ if (process.env.API_KEY_ROTATION === "true") return true;
19
+ try {
20
+ const settings = await getSettings();
21
+ return settings?.apiKeyRotation === true;
22
+ } catch {
23
+ return false; // DB unavailable → legacy behavior
24
+ }
25
+ }
26
+
27
+ function ensureGeneratedSecret() {
28
+ if (_generatedSecretCache) return _generatedSecretCache;
29
+ const file = path.join(DATA_DIR, "api-key-secret");
30
+ try {
31
+ _generatedSecretCache = fs.readFileSync(file, "utf8").trim();
32
+ return _generatedSecretCache;
33
+ } catch {}
34
+ fs.mkdirSync(DATA_DIR, { recursive: true });
35
+ _generatedSecretCache = crypto.randomBytes(32).toString("hex");
36
+ fs.writeFileSync(file, _generatedSecretCache, { mode: 0o600 });
37
+ return _generatedSecretCache;
38
+ }
39
+
40
+ // Resolved per call (cheap after first rotation): env secret → generated
41
+ // secret (rotation on) → legacy fallback (rotation off, production warns).
42
+ async function resolveApiKeySecret() {
43
+ const fromEnv = process.env.API_KEY_SECRET;
44
+ if (fromEnv) return fromEnv;
45
+ if (await isRotationEnabled()) return ensureGeneratedSecret();
46
+ if (process.env.NODE_ENV === "production" && !process.env.API_KEY_ROTATION) {
47
+ // Warn once per process — the built-in secret is public knowledge.
48
+ if (!resolveApiKeySecret._warned) {
49
+ resolveApiKeySecret._warned = true;
50
+ console.warn(
51
+ "[auth] API_KEY_SECRET is unset — falling back to a well-known built-in secret. " +
52
+ "Set API_KEY_SECRET, or enable key rotation in Endpoint settings (experimental; " +
53
+ "existing API keys will need to be re-issued after enabling).",
54
+ );
55
+ }
56
+ }
57
+ return LEGACY_FALLBACK_SECRET;
58
+ }
4
59
 
5
60
  /**
6
- * Generate 6-char random keyId
61
+ * Generate 6-char random keyId (crypto-grade randomness — key material
62
+ * must not come from Math.random)
7
63
  */
8
64
  function generateKeyId() {
9
65
  const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
66
+ const bytes = crypto.randomBytes(6);
10
67
  let result = "";
11
68
  for (let i = 0; i < 6; i++) {
12
- result += chars.charAt(Math.floor(Math.random() * chars.length));
69
+ result += chars.charAt(bytes[i] % chars.length);
13
70
  }
14
71
  return result;
15
72
  }
@@ -17,9 +74,10 @@ function generateKeyId() {
17
74
  /**
18
75
  * Generate CRC (8-char HMAC)
19
76
  */
20
- function generateCrc(machineId, keyId) {
77
+ async function generateCrc(machineId, keyId) {
78
+ const secret = await resolveApiKeySecret();
21
79
  return crypto
22
- .createHmac("sha256", API_KEY_SECRET)
80
+ .createHmac("sha256", secret)
23
81
  .update(machineId + keyId)
24
82
  .digest("hex")
25
83
  .slice(0, 8);
@@ -29,11 +87,11 @@ function generateCrc(machineId, keyId) {
29
87
  * Generate API key with machineId embedded
30
88
  * Format: sk-{machineId}-{keyId}-{crc8}
31
89
  * @param {string} machineId - 16-char machine ID
32
- * @returns {{ key: string, keyId: string }}
90
+ * @returns {Promise<{ key: string, keyId: string }>}
33
91
  */
34
- export function generateApiKeyWithMachine(machineId) {
92
+ export async function generateApiKeyWithMachine(machineId) {
35
93
  const keyId = generateKeyId();
36
- const crc = generateCrc(machineId, keyId);
94
+ const crc = await generateCrc(machineId, keyId);
37
95
  const key = `sk-${machineId}-${keyId}-${crc}`;
38
96
  return { key, keyId };
39
97
  }
@@ -44,44 +102,44 @@ export function generateApiKeyWithMachine(machineId) {
44
102
  * - New: sk-{machineId}-{keyId}-{crc8}
45
103
  * - Old: sk-{random8}
46
104
  * @param {string} apiKey
47
- * @returns {{ machineId: string, keyId: string, isNewFormat: boolean } | null}
105
+ * @returns {Promise<{ machineId: string, keyId: string, isNewFormat: boolean } | null>}
48
106
  */
49
- export function parseApiKey(apiKey) {
107
+ export async function parseApiKey(apiKey) {
50
108
  if (!apiKey || !apiKey.startsWith("sk-")) return null;
51
109
 
52
110
  const parts = apiKey.split("-");
53
-
111
+
54
112
  // New format: sk-{machineId}-{keyId}-{crc8} = 4 parts
55
113
  if (parts.length === 4) {
56
114
  const [, machineId, keyId, crc] = parts;
57
-
115
+
58
116
  // Validate CRC
59
- const expectedCrc = generateCrc(machineId, keyId);
117
+ const expectedCrc = await generateCrc(machineId, keyId);
60
118
  if (crc !== expectedCrc) return null;
61
-
119
+
62
120
  return { machineId, keyId, isNewFormat: true };
63
121
  }
64
-
122
+
65
123
  // Old format: sk-{random8} = 2 parts
66
124
  if (parts.length === 2) {
67
125
  return { machineId: null, keyId: parts[1], isNewFormat: false };
68
126
  }
69
-
127
+
70
128
  return null;
71
129
  }
72
130
 
73
131
  /**
74
132
  * Verify API key CRC (only for new format)
75
133
  * @param {string} apiKey
76
- * @returns {boolean}
134
+ * @returns {Promise<boolean>}
77
135
  */
78
- export function verifyApiKeyCrc(apiKey) {
79
- const parsed = parseApiKey(apiKey);
136
+ export async function verifyApiKeyCrc(apiKey) {
137
+ const parsed = await parseApiKey(apiKey);
80
138
  if (!parsed) return false;
81
-
139
+
82
140
  // Old format doesn't have CRC, always valid if parsed
83
141
  if (!parsed.isNewFormat) return true;
84
-
142
+
85
143
  // New format already verified in parseApiKey
86
144
  return true;
87
145
  }
@@ -89,10 +147,10 @@ export function verifyApiKeyCrc(apiKey) {
89
147
  /**
90
148
  * Check if API key is new format (contains machineId)
91
149
  * @param {string} apiKey
92
- * @returns {boolean}
150
+ * @returns {Promise<boolean>}
93
151
  */
94
- export function isNewFormatKey(apiKey) {
95
- const parsed = parseApiKey(apiKey);
152
+ export async function isNewFormatKey(apiKey) {
153
+ const parsed = await parseApiKey(apiKey);
96
154
  return parsed?.isNewFormat === true;
97
155
  }
98
156
 
@@ -9,6 +9,8 @@ import { getCredentialExpiryMs } from "open-sse/services/oauthCredentialManager.
9
9
  export const BACKGROUND_REFRESH_LEAD_MS = 30 * 60 * 1000;
10
10
  const DEFAULT_INTERVAL_MS = 5 * 60 * 1000;
11
11
  const INITIAL_DELAY_MS = 10 * 1000;
12
+ // Google Cloud flags bursty token endpoint traffic as anti-abuse; stagger refreshes.
13
+ const SENSITIVE_PROVIDERS = new Set(["antigravity", "gemini-cli"]);
12
14
 
13
15
  let started = false;
14
16
  let intervalHandle = null;
@@ -87,47 +89,48 @@ async function refreshOne(connection) {
87
89
  * @param {{ loadConnections?: Function, refreshConnection?: Function }} [deps]
88
90
  */
89
91
  export async function runBackgroundTokenRefreshTick(deps = {}) {
90
- if (tickRunning) {
91
- log.debug("BG_TOKEN_REFRESH", "Tick already running, skip");
92
- return;
93
- }
92
+ if (tickRunning) return;
94
93
  tickRunning = true;
95
94
  try {
96
95
  const load = deps.loadConnections || loadActiveConnections;
97
96
  const refresh = deps.refreshConnection || refreshOne;
97
+ const sleep = deps.sleep || ((ms) => new Promise((res) => setTimeout(res, ms)));
98
98
 
99
99
  const connections = await load();
100
100
  const due = selectConnectionsNeedingRefresh(connections, Date.now());
101
101
 
102
- if (due.length === 0) {
103
- log.debug("BG_TOKEN_REFRESH", "No connections due for refresh", {
104
- active: Array.isArray(connections) ? connections.length : 0,
105
- });
106
- return;
102
+ if (due.length === 0) return;
103
+
104
+ const baseSensitiveDelay = Number(process.env.BG_REFRESH_GOOGLE_DELAY_MS) || 12_000;
105
+ const baseNormalDelay = Number(process.env.BG_REFRESH_DELAY_MS) || 1_500;
106
+
107
+ for (let i = 0; i < due.length; i++) {
108
+ const conn = due[i];
109
+ try {
110
+ await refresh(conn);
111
+ log.info("BG_TOKEN_REFRESH", "Connection refresh finished", {
112
+ id: conn.id,
113
+ email: conn.email || conn.name || conn.id,
114
+ provider: conn.provider,
115
+ });
116
+ } catch (err) {
117
+ log.warn("BG_TOKEN_REFRESH", "Connection refresh failed (swallowed)", {
118
+ id: conn?.id,
119
+ email: conn?.email || conn?.name || conn?.id,
120
+ provider: conn?.provider,
121
+ error: err?.message ?? String(err),
122
+ });
123
+ }
124
+
125
+ // Sequential delay between accounts to prevent bursting upstream
126
+ // providers (especially Google Cloud) with simultaneous token refreshes.
127
+ if (i < due.length - 1) {
128
+ const isSensitive = SENSITIVE_PROVIDERS.has(conn.provider);
129
+ const baseDelay = isSensitive ? baseSensitiveDelay : baseNormalDelay;
130
+ const jitter = isSensitive ? Math.floor(Math.random() * 4000) : 200;
131
+ await sleep(baseDelay + jitter);
132
+ }
107
133
  }
108
-
109
- log.info("BG_TOKEN_REFRESH", "Refreshing due OAuth connections", {
110
- due: due.length,
111
- ids: due.map((c) => c.id).filter(Boolean),
112
- });
113
-
114
- await Promise.allSettled(
115
- due.map(async (conn) => {
116
- try {
117
- await refresh(conn);
118
- log.info("BG_TOKEN_REFRESH", "Connection refresh finished", {
119
- id: conn.id,
120
- provider: conn.provider,
121
- });
122
- } catch (err) {
123
- log.warn("BG_TOKEN_REFRESH", "Connection refresh failed (swallowed)", {
124
- id: conn?.id,
125
- provider: conn?.provider,
126
- error: err?.message ?? String(err),
127
- });
128
- }
129
- })
130
- );
131
134
  } catch (err) {
132
135
  log.warn("BG_TOKEN_REFRESH", "Tick failed (swallowed)", {
133
136
  error: err?.message ?? String(err),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techysy/10router",
3
- "version": "1.0.6",
3
+ "version": "1.1.0",
4
4
  "description": "10Router CLI - Start and manage 10Router server",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -19,7 +19,7 @@
19
19
  "scripts": {
20
20
  "dev": "nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js",
21
21
  "build": "node scripts/build-cli.js",
22
- "pack:cli": "npm run build && npm pack --pack-destination ../..",
22
+ "pack:cli": "npm run build && npm pack --pack-destination ..",
23
23
  "publish:cli": "npm run build && npm publish --registry https://registry.npmjs.org",
24
24
  "postinstall": "node hooks/postinstall.js || exit 0",
25
25
  "prepublishOnly": "npm run build"
@@ -2,10 +2,13 @@
2
2
  * CLI i18n — 系统语言检测 + 轻量字典查找(零依赖)
3
3
  *
4
4
  * 语言解析优先级:
5
- * 1. TENROUTER_LANG 环境变量显式覆盖(如 zh-CN / zh-TW / en)
6
- * 2. LC_ALL / LANG(posix 惯例)
7
- * 3. ICU 默认 locale(Node 全量 ICU Windows 上取自系统 UI 语言)
8
- * 4. 回退 en
5
+ * 1. TENROUTER_LANG / LC_ALL 环境变量显式覆盖(如 zh-CN / zh-TW / en)
6
+ * 2. macOS: `defaults read -g AppleLocale`(系统 UI 语言的权威来源)——
7
+ * mac Terminal LANG 常年是 en_US/C 与系统语言脱节,GUI 启动的进程
8
+ * 甚至没有 LANG,只查 env/ICU 会让中文 mac 用户看到英文界面
9
+ * 3. LANG(posix 惯例)
10
+ * 4. ICU 默认 locale(Node 全量 ICU 在 Windows 上取自系统 UI 语言)
11
+ * 5. 回退 en
9
12
  *
10
13
  * 字典按源文件分片存放在 locales/<lang>/*.json(index.js 合并加载),
11
14
  * 缺失键回退链:当前语言 → en → 键名本身。占位符用 {name} 语法。
@@ -27,11 +30,32 @@ function normalize(raw) {
27
30
  return null;
28
31
  }
29
32
 
33
+ // macOS 系统 UI 语言(AppleLocale 形如 zh_CN / zh_Hant_TW / en_US);读不到返回 null
34
+ function macAppleLocale() {
35
+ try {
36
+ const { execSync } = require("child_process");
37
+ const out = execSync("defaults read -g AppleLocale", {
38
+ encoding: "utf8",
39
+ timeout: 2000,
40
+ stdio: ["ignore", "pipe", "ignore"],
41
+ });
42
+ return normalize(out);
43
+ } catch {
44
+ return null; // key 不存在/超时/非 mac:静默跳过
45
+ }
46
+ }
47
+
30
48
  function detectLocale() {
31
- for (const envKey of ["TENROUTER_LANG", "LC_ALL", "LANG"]) {
49
+ for (const envKey of ["TENROUTER_LANG", "LC_ALL"]) {
32
50
  const hit = normalize(process.env[envKey]);
33
51
  if (hit) return hit;
34
52
  }
53
+ if (process.platform === "darwin") {
54
+ const hit = macAppleLocale();
55
+ if (hit) return hit;
56
+ }
57
+ const langHit = normalize(process.env.LANG);
58
+ if (langHit) return langHit;
35
59
  try {
36
60
  const hit = normalize(Intl.DateTimeFormat().resolvedOptions().locale);
37
61
  if (hit) return hit;
Binary file
Binary file
Binary file
@@ -8,10 +8,12 @@ let isWinTray = false;
8
8
 
9
9
  /**
10
10
  * Get icon base64 from file — used for systray (mac/linux)
11
+ * macOS uses the monochrome template glyph (alpha = artwork): menu bar renders
12
+ * it black/white with the system appearance, matching native menu bar icons.
11
13
  */
12
14
  function getIconBase64() {
13
- const isWin = process.platform === "win32";
14
- const iconFile = isWin ? "icon.ico" : "icon.png";
15
+ const platform = process.platform;
16
+ const iconFile = platform === "darwin" ? "icon-template.png" : platform === "win32" ? "icon.ico" : "icon.png";
15
17
  try {
16
18
  const iconPath = path.join(__dirname, iconFile);
17
19
  if (fs.existsSync(iconPath)) {
@@ -115,8 +117,8 @@ function handleClick(index, options, onAutostartToggle) {
115
117
  function initWindowsTray(options) {
116
118
  const { port } = options;
117
119
  try {
118
- const { initWinTray } = require("./trayWin");
119
- const iconPath = path.join(__dirname, "icon.ico");
120
+ const { initWinTray, winTrayIconPath } = require("./trayWin");
121
+ const iconPath = winTrayIconPath();
120
122
  const autostartEnabled = getAutostartEnabled();
121
123
  const items = buildMenuItems(port, autostartEnabled);
122
124
 
@@ -200,10 +202,13 @@ function initUnixTray(options) {
200
202
 
201
203
  const menu = {
202
204
  icon: getIconBase64(),
203
- // The bundled icon.png is a full-color RGBA logo. Don't mark it as a
204
- // template icon: macOS would then render it as a solid white square
205
- // because template mode only uses the alpha channel.
206
- isTemplateIcon: false,
205
+ // macOS: template mode icon-template.png's alpha channel IS the artwork
206
+ // (rounded outline + "10"), so the menu bar tints it to match light/dark
207
+ // appearance. The colored icon.png must NOT be a template (its alpha is a
208
+ // filled square → solid blob), which is why template is darwin-only and
209
+ // paired with the dedicated monochrome asset. Linux panels have no
210
+ // template convention → keep the colored logo.
211
+ isTemplateIcon: process.platform === "darwin",
207
212
  title: "",
208
213
  tooltip: t("tray.tooltip", { port }),
209
214
  items
@@ -1,5 +1,6 @@
1
- const { spawn } = require("child_process");
1
+ const { spawn, execSync } = require("child_process");
2
2
  const path = require("path");
3
+ const fs = require("fs");
3
4
  const readline = require("readline");
4
5
 
5
6
  // PowerShell-based tray for Windows (AV-safe, zero binary deps)
@@ -7,6 +8,42 @@ const readline = require("readline");
7
8
  let psProcess = null;
8
9
  let clickHandler = null;
9
10
 
11
+ /**
12
+ * Windows tray background theme: true = light, false = dark (default).
13
+ * 任务栏颜色跟随「Windows 模式」(SystemUsesLightTheme),不是「应用模式」
14
+ * (AppsUseLightTheme)——自定义主题下两者可不同,优先读任务栏自己的值。
15
+ * Direct registry read — cheap, and works before the PowerShell process starts.
16
+ */
17
+ function isWindowsLightTheme() {
18
+ const key = 'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize';
19
+ try {
20
+ const out = execSync(`reg query "${key}" /v SystemUsesLightTheme`, {
21
+ encoding: "utf8", timeout: 2000, windowsHide: true
22
+ });
23
+ return /0x1\b/.test(out);
24
+ } catch (e) { /* fall through to app mode */ }
25
+ try {
26
+ const out = execSync(`reg query "${key}" /v AppsUseLightTheme`, {
27
+ encoding: "utf8", timeout: 2000, windowsHide: true
28
+ });
29
+ return /0x1\b/.test(out);
30
+ } catch (e) {
31
+ return false;
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Monochrome tray icon matching the system theme (white glyph on the default
37
+ * dark taskbar, black on light). Falls back to the colored brand icon.
38
+ */
39
+ function winTrayIconPath() {
40
+ const mono = path.join(__dirname, isWindowsLightTheme() ? "icon-mono-black.ico" : "icon-mono-white.ico");
41
+ try {
42
+ if (fs.existsSync(mono)) return mono;
43
+ } catch (e) {}
44
+ return path.join(__dirname, "icon.ico");
45
+ }
46
+
10
47
  /**
11
48
  * Send JSON command to PowerShell tray process via stdin
12
49
  */
@@ -86,4 +123,4 @@ function initWinTray(options) {
86
123
  };
87
124
  }
88
125
 
89
- module.exports = { initWinTray };
126
+ module.exports = { initWinTray, isWindowsLightTheme, winTrayIconPath };
@@ -1 +0,0 @@
1
- (()=>{var a={};a.id=6054,a.ids=[615,1998,6054,8838],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3662:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},4573:a=>{"use strict";a.exports=require("node:buffer")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},8191:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/providers/[id]/json-models/route",pathname:"/api/providers/[id]/json-models",filename:"route",bundlePath:"app/api/providers/[id]/json-models/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"F:\\Files\\GitHub Files\\10router\\src\\app\\api\\providers\\[id]\\json-models\\route.js",nextConfigOutput:"standalone",userland:()=>c(47092),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/json-models/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16655:(a,b,c)=>{"use strict";c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(9140)},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},39326:(a,b,c)=>{"use strict";c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},39609:(a,b,c)=>{"use strict";c.d(b,{proxyAwareFetch:()=>q});var d=c(27910),e=c(41004);let f=globalThis.fetch,g=new Map,h=new Map,i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],j=["8.8.8.8","8.8.4.4"];function k(a){return null==a?"":String(a).trim()}async function l(a){let b=h.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(j);let g=d(f.resolve4.bind(f)),i=await g(a);return h.set(a,{ip:i[0],expiry:Date.now()+e.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function m(a,b){let c,d=k(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function n(a){let b=k(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function o(a){let b=n(a);if(!b)return null;if(!g.has(b)){g.size>=e.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));g.set(b,new a({uri:b}))}return g.get(b)}async function p(a,b,e){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,path:a.pathname+a.search,method:e.method||"POST",headers:{...e.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:d.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),e.body&&i.write("string"==typeof e.body?e.body:JSON.stringify(e.body)),i.end()}),g.on("error",f)})}async function q(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=k(c?.vercelRelayUrl);if(e){let a=new URL(d),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return f(e,{...b,headers:c})}let g=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=k(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=k(b?.noProxy??b?.connectionNoProxy);return d&&m(a,d)?null:n(c)}(d,c),h=g?null:n(function(a){let b;if(m(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),j=g||h;if(function(a){try{let b=new URL(a).hostname;return i.some(a=>b.includes(a))}catch{return!1}}(d)){if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),c=await l(a.hostname);if(c)return await p(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function r(a,b={}){return q(a,b,null)}globalThis.fetch!==r&&(globalThis.fetch=r)},40610:a=>{"use strict";a.exports=require("node:dns")},40615:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(59463);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...a.topologyHiddenByDefault?{topologyHiddenByDefault:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.community?{community:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.modelsJsonUrl?{modelsJsonUrl:a.modelsJsonUrl}:{},...a.fallbackModelsJsonUrl?{fallbackModelsJsonUrl:a.fallbackModelsJsonUrl}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{"use strict";a.exports=require("sql.js")},47092:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>l,POST:()=>m,PUT:()=>n});var d=c(23211),e=c(40615),f=c(71998),g=c(39609),h=c(39326),i=c(16655);async function j(a,b,c=null){let d,e={Accept:"application/json"};c&&(e.Authorization=`Bearer ${c}`);try{d=await (0,g.proxyAwareFetch)(a,{method:"GET",headers:e,cache:"no-store"},b)}catch(a){throw Object.assign(Error(`Failed to reach model JSON: ${a.message}`),{status:502})}if(!d.ok)throw Object.assign(Error(`Model JSON returned HTTP ${d.status}`),{status:502});let f=await d.json().catch(()=>null);if(!f)throw Object.assign(Error("Invalid model JSON response"),{status:502});let h,i=f;if(f&&"string"==typeof f.content&&"base64"===f.encoding&&(i=JSON.parse(Buffer.from(f.content,"base64").toString("utf8"))),i&&Array.isArray(i.models))h=i.models;else if(i&&Array.isArray(i.data))h=i.data.map(a=>"string"==typeof a?{id:a}:a);else throw Object.assign(Error("Invalid model JSON: expected { models: [...] } or { data: [...] }"),{status:502});return h.filter(a=>a&&"object"==typeof a&&"string"==typeof a.id&&""!==a.id.trim()).map(a=>{let b={id:a.id.trim(),name:"string"==typeof a.name&&a.name.trim()?a.name.trim():a.id.trim(),type:"string"==typeof a.type&&a.type.trim()?a.type.trim():"llm"};return"boolean"==typeof a.vision&&(b.vision=a.vision),"boolean"==typeof a.reasoning&&(b.reasoning=a.reasoning),"number"==typeof a.contextWindow&&Number.isFinite(a.contextWindow)&&(b.contextWindow=a.contextWindow),"number"==typeof a.maxOutput&&Number.isFinite(a.maxOutput)&&(b.maxOutput=a.maxOutput),"string"==typeof a.thinkingFormat&&a.thinkingFormat.trim()&&(b.thinkingFormat=a.thinkingFormat.trim()),b})}async function k(a){let b=e.AI_PROVIDERS[a]?.modelsJsonUrl,c=e.AI_PROVIDERS[a]?.fallbackModelsJsonUrl;if(!b){let d=await (0,f.Qu)(a).catch(()=>null);b=d?.modelsJsonUrl||"",c=d?.fallbackModelsJsonUrl||""}if(!b)throw Object.assign(Error("Provider does not expose a model JSON source"),{status:400});let d=await (0,f.P)({provider:a,isActive:!0}),g=d.length?await (0,h.B)(d[0].providerSpecificData||{}):{},i=!(b.startsWith("https://raw.githubusercontent.com")||b.startsWith("https://api.github.com")||b.startsWith("https://gitee.com"))&&d[0]?.apiKey?d[0].apiKey:null;try{return{models:await j(b,g,i),source:b}}catch(b){let a=c;if(a)try{return{models:await j(a,g,i),source:a}}catch(a){throw Object.assign(Error(`Primary source failed (${b.message}); fallback also failed (${a.message})`),{status:502})}throw b}}async function l(a,{params:b}){try{let{id:a}=await b,{models:c}=await k(a),e=await (0,f.iX)(a),g=new Map((e||[]).map(a=>[a.id,a]));for(let a of c){let b=g.get(a.id);b&&(a.enabled=b.enabled)}return d.NextResponse.json({models:c})}catch(a){return d.NextResponse.json({error:a.message||"Failed to fetch provider model JSON"},{status:a.status||500})}}async function m(a,{params:b}){try{let{id:a}=await b,{models:c}=await k(a);if(0===c.length)return d.NextResponse.json({error:"No models returned"},{status:422});let e=await (0,f.iX)(a),g=new Set((e||[]).filter(a=>!1!==a.enabled).map(a=>a.id));for(let a of c)!a.enabled&&g.has(a.id)?a.enabled=!0:void 0===a.enabled&&(a.enabled=g.has(a.id));await (0,f.kW)(a,c);let h=c.filter(a=>g.has(a.id)).length;return d.NextResponse.json({models:c,added:h,total:c.length})}catch(a){return d.NextResponse.json({error:a.message||"Failed to import provider model JSON"},{status:a.status||500})}}async function n(a,{params:b}){try{let{id:c}=await b,{modelId:g,enabled:h,all:j}=await a.json();if("boolean"!=typeof h)return d.NextResponse.json({error:"enabled (boolean) required"},{status:400});if(!0===j){let a=await (0,f.Oo)(c,h);if(h){await (0,i.oF)(c,[]);let a=(0,e.wG)(c);a&&a!==c&&await (0,i.oF)(a,[])}return d.NextResponse.json({success:!0,changed:a})}if(!g)return d.NextResponse.json({error:"modelId required (or all: true for bulk)"},{status:400});let k=await (0,f.FS)(c,g,h);if(h){await (0,i.oF)(c,[g]);let a=(0,e.wG)(c);a&&a!==c&&await (0,i.oF)(a,[g])}return d.NextResponse.json({success:!0,changed:k})}catch(a){return d.NextResponse.json({error:a.message||"Failed to update provider model JSON"},{status:a.status||500})}}},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()}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71998:(a,b,c)=>{"use strict";c.d(b,{FS:()=>d.FS,Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,Oo:()=>d.Oo,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,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iX:()=>d.iX,kW:()=>d.kW,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},78474:a=>{"use strict";a.exports=require("node:events")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,FS:()=>d.FS,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,Oo:()=>d.Oo,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,getSettings:()=>d.mt,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,iX:()=>d.iX,jd:()=>d.jd,kW:()=>d.kW,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(9140)},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},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:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,9703,9140,9463],()=>b(b.s=8191));module.exports=c})();
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/[id]/json-models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"F:\\Files\\GitHub Files\\10router\\src\\app\\api\\providers\\[id]\\json-models\\route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,4 +0,0 @@
1
- "use strict";exports.id=1129,exports.ids=[1129],exports.modules={1129:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
2
- VALUES(?, ?, ?, ?, ?, ?)
3
- ON CONFLICT(id) DO UPDATE SET
4
- type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},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)}}};